@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:400;src:url(/app-assets/jost-cyrillic-400-normal-bVZEi0jL.woff2) format("woff2"),url(/app-assets/jost-cyrillic-400-normal-Dk3McGkH.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:400;src:url(/app-assets/jost-latin-ext-400-normal-CpdMQIMr.woff2) format("woff2"),url(/app-assets/jost-latin-ext-400-normal-Dsyb2mtt.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:400;src:url(/app-assets/jost-latin-400-normal-q-RKOgPK.woff2) format("woff2"),url(/app-assets/jost-latin-400-normal-C7S-3Ky6.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:500;src:url(/app-assets/jost-cyrillic-500-normal-DtB2bvF0.woff2) format("woff2"),url(/app-assets/jost-cyrillic-500-normal-DlHwnXyv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:500;src:url(/app-assets/jost-latin-ext-500-normal-BkvHgcKf.woff2) format("woff2"),url(/app-assets/jost-latin-ext-500-normal-Cpxiadwk.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:500;src:url(/app-assets/jost-latin-500-normal-41lBe9I9.woff2) format("woff2"),url(/app-assets/jost-latin-500-normal-B-AtzreL.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/app-assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2) format("woff2"),url(/app-assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/app-assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2) format("woff2"),url(/app-assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/app-assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2) format("woff2"),url(/app-assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/app-assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2) format("woff2"),url(/app-assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/app-assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format("woff2"),url(/app-assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/app-assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/app-assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/app-assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2) format("woff2"),url(/app-assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/app-assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2) format("woff2"),url(/app-assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/app-assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2) format("woff2"),url(/app-assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/app-assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2) format("woff2"),url(/app-assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/app-assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2) format("woff2"),url(/app-assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/app-assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/app-assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/app-assets/cormorant-garamond-cyrillic-ext-600-normal-BMhMHfrj.woff2) format("woff2"),url(/app-assets/cormorant-garamond-cyrillic-ext-600-normal-CsIYWmWK.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/app-assets/cormorant-garamond-cyrillic-600-normal-C2atO-64.woff2) format("woff2"),url(/app-assets/cormorant-garamond-cyrillic-600-normal-FNmA3REe.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/app-assets/cormorant-garamond-vietnamese-600-normal-BoXdMtcr.woff2) format("woff2"),url(/app-assets/cormorant-garamond-vietnamese-600-normal-C4HEjEaf.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/app-assets/cormorant-garamond-latin-ext-600-normal-DaBc-lu7.woff2) format("woff2"),url(/app-assets/cormorant-garamond-latin-ext-600-normal-Dk3-quAP.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/app-assets/cormorant-garamond-latin-600-normal-Co1r35X9.woff2) format("woff2"),url(/app-assets/cormorant-garamond-latin-600-normal-2CBVLo0M.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=dark]{--bg:#0B1220;--side:#0A101D;--card:#131F34;--line:#22324D;--ink:#E8E4D8;--head:#FFFFFF;--muted:#A9B7CC;--accent:#C9A86A;--on-accent:#0B1220;--label:#E5C77F;--ok-bg:#16373A;--ok:#4FD1C0;--warn-bg:#3A2A1B;--warn:#F0A268;--chip:#1B2A44;--field:#0F1A2E;--radius:8px;--radius-lg:14px;--head-font:"Cormorant Garamond",Georgia,serif;--body-font:"IBM Plex Sans",system-ui,sans-serif;--h1:40px;--h-weight:600;--body-weight:400;color-scheme:dark}[data-theme=light]{--bg:#F8F8F7;--side:#FFFFFF;--card:#FFFFFF;--line:#CFCFCC;--ink:#121212;--head:#121212;--muted:#5F5F5D;--accent:#121212;--on-accent:#FFFFFF;--label:#2F4A41;--ok-bg:#E4EAE7;--ok:#2F4A41;--warn-bg:#F6E7D6;--warn:#7A4106;--chip:#EFEFED;--field:#FFFFFF;--radius:0;--radius-lg:0;--head-font:"Jost",system-ui,sans-serif;--body-font:"Jost",system-ui,sans-serif;--h1:36px;--h-weight:500;--body-weight:400;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;background:var(--bg)}body{color:var(--ink);font-family:var(--body-font);font-weight:var(--body-weight);font-size:15px;line-height:1.45}a{color:var(--label)}h1,h2,h3{font-family:var(--head-font);color:var(--head);font-weight:var(--h-weight);margin:0;line-height:1.15}h1{font-size:var(--h1)}h2{font-size:26px}h3{font-size:20px}p{margin:0}:focus-visible{outline:2px solid var(--label);outline-offset:2px}.app{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}.side{background:var(--side);border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:2px}.brand{display:flex;gap:10px;align-items:center;padding:0 8px 10px;color:var(--accent)}.brand b{display:block;font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--ink)}.brand small{display:block;font-size:10px;letter-spacing:.14em;color:var(--muted)}.grp{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:14px 8px 4px}.m{display:flex;align-items:center;min-height:36px;padding:6px 10px;border-radius:var(--radius);color:var(--ink);text-decoration:none}.m:hover{background:var(--chip)}.m.on{background:var(--accent);color:var(--on-accent);font-weight:600}.menu-btn{display:none}.main{padding:24px 28px;display:flex;flex-direction:column;gap:16px;max-width:1240px;width:100%}.top{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px}.sub{color:var(--muted)}.lbl{font-size:12px;color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:12px}.cols{display:grid;grid-template-columns:320px minmax(0,1fr);gap:14px;align-items:start}.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:12px;align-items:end}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field label{font-size:13px;color:var(--muted)}input,select,textarea{width:100%;min-height:44px;padding:8px 10px;background:var(--field);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);font:inherit}textarea{min-height:140px;resize:vertical}input[type=checkbox]{width:20px;min-height:20px;height:20px;flex:none}input[type=file]{padding:9px 10px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 16px;border-radius:var(--radius);border:1px solid var(--accent);background:var(--accent);color:var(--on-accent);font:inherit;font-weight:600;cursor:pointer;text-decoration:none}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn:disabled{opacity:.6;cursor:default}.btn.sm{min-height:36px;padding:4px 10px;font-size:13px}.ce-group{border-left:2px solid var(--line);padding-left:12px;gap:8px}.ce-point{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:8px 0;border-bottom:1px solid var(--line)}.ce-point input:not([type=checkbox]){width:100%}.chip{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.04em;padding:3px 8px;border-radius:calc(var(--radius) / 1.3);background:var(--chip);color:var(--label);white-space:nowrap}.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.mute{color:var(--muted)}.tbl{overflow-x:auto}table{width:100%;border-collapse:collapse}th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px;font-weight:500;white-space:nowrap}td{padding:10px 8px;border-top:1px solid var(--line);vertical-align:middle}.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.tab{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);font:inherit;padding:10px 12px;cursor:pointer;min-height:44px}.tab.on{color:var(--head);border-bottom-color:var(--accent);font-weight:600}.pick{display:block;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:12px 14px;color:var(--ink);font:inherit;cursor:pointer;min-height:44px}.pick.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.pick small{display:block;color:var(--muted);font-size:12px}.meta{display:flex;gap:22px;flex-wrap:wrap}.meta span{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.note{padding:10px 12px;border-radius:var(--radius);border:1px solid var(--line)}.note.err{background:var(--warn-bg);color:var(--warn);border-color:var(--warn)}.note.good{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}.once{border:1px solid var(--accent);border-radius:var(--radius);padding:12px}.once code{font-size:16px;word-break:break-all}.empty{padding:20px;text-align:center;color:var(--muted)}.body-text{white-space:pre-wrap;max-height:420px;overflow:auto;border:1px solid var(--line);padding:12px;border-radius:var(--radius)}.auth{min-height:100vh;display:grid;place-items:center;padding:16px}.auth-card{width:100%;max-width:420px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px;display:flex;flex-direction:column;gap:16px}.qr{background:#fff;padding:8px;width:200px;height:200px;display:block}.top-bar{display:none}.cubes{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.cube{display:flex;flex-direction:column;gap:6px;min-height:110px;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);color:var(--ink);text-decoration:none}.cube:hover,.cube:focus-visible{border-color:var(--accent)}.cube small{font-size:13px;font-weight:600;color:var(--head)}.cube .big{font-family:var(--head-font);font-size:30px;line-height:1.1;color:var(--head)}.cube-wait{align-self:flex-start;margin-top:auto}.stage{font-size:12px;font-weight:600;line-height:1}.stage.not_started{color:var(--stage-not-started)}.stage.gathering{color:var(--stage-gathering)}.stage.screens{color:var(--stage-screens)}.stage.coding{color:var(--stage-coding)}.stage.uat{color:var(--stage-uat)}.stage.live{color:var(--stage-live)}:root,[data-theme=dark]{--stage-not-started:#A9B7CC;--stage-gathering:#F0C36A;--stage-screens:#C4A7FF;--stage-coding:#7FB2FF;--stage-uat:#FF8A80;--stage-live:#5FD38D}[data-theme=light]{--stage-not-started:#5F5F5D;--stage-gathering:#8A5A00;--stage-screens:#6D28D9;--stage-coding:#1D4ED8;--stage-uat:#B91C1C;--stage-live:#15803D}.stage-rows{display:flex;flex-direction:column;gap:18px}.stage-row{display:flex;flex-direction:column;gap:10px;padding-top:14px;border-top:1px solid var(--line)}.arrange{display:flex;flex-direction:column;gap:6px;cursor:grab}.arrange-cube{pointer-events:none}.arrange-tools{gap:4px;flex-wrap:nowrap}.arrange-tools .btn{flex:1;padding:8px 6px}h2.stage-title{font-family:var(--body-font);font-size:16px;font-weight:600;line-height:1.2}.cube.site{min-height:190px;padding:20px}.site-name{font-family:var(--head-font);font-size:28px;font-weight:var(--h-weight);line-height:1.1;color:var(--head)}.block-line{display:block;width:100%;min-height:1.5em;margin:0 0 2px;padding:2px 4px;background:none;border:1px solid transparent;border-radius:var(--radius);color:inherit;font:inherit;text-align:left;cursor:text}.block-line:hover,.block-line:focus-visible{border-color:var(--accent);background:var(--chip)}.learn-nav{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:12px 28px;background:var(--side);border-bottom:1px solid var(--line)}.nav-item{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 16px;background:none;border:0;border-radius:var(--radius);color:var(--ink);font:inherit;text-decoration:none;cursor:pointer}.nav-item:hover{background:var(--chip)}.nav-item.on{background:var(--chip);font-weight:600}.nav-drop{position:absolute;top:100%;left:0;z-index:5;min-width:190px;padding:6px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column}.set-section{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:16px}.set-section h3{margin:0;font-size:18px}.set-question{display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--line);border-radius:14px}.set-q-text{margin:0;white-space:pre-wrap;font-weight:500}.track-chip{flex:none;display:inline-block;min-width:104px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;text-align:center;color:#fff;white-space:nowrap}.track-live{--t:#15803D}.track-passed{--t:#0F766E}.track-built{--t:#1D4ED8}.track-in_progress{--t:#6D28D9}.track-waiting{--t:#B45309}.track-planned{--t:#57534E}.track-failed{--t:#BE123C}.track-on_hold{--t:#C2410C}.track-changed{--t:#A21CAF}.track-dropped{--t:#991B1B}.track-chip{background:var(--t)}.track-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px}.track-count{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:44px;padding:10px 12px;background:var(--card);border:1px solid var(--line);border-top:4px solid var(--t,var(--ink));border-radius:var(--radius);color:var(--ink);font:inherit;font-size:12px;text-align:left;cursor:pointer}.track-count b{font-size:22px;line-height:1}.track-count.on{outline:2px solid var(--t,var(--ink));outline-offset:1px}.track-row{display:flex;flex-direction:column;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.track-row:first-of-type{border-top:0}.track-main{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px 12px}.track-text{flex:1 1 280px;min-width:0}.track-title{font-weight:500}.track-title.struck{text-decoration:line-through;color:var(--muted)}.track-actions{gap:6px}.track-history{display:flex;flex-direction:column;gap:8px;margin:0;padding:8px 12px;list-style:none;background:var(--bg);border-radius:var(--radius)}.report-btn{position:fixed;right:16px;bottom:16px;z-index:40;min-height:44px;padding:8px 18px;background:var(--accent);color:var(--on-accent);border:1px solid var(--line);border-radius:999px;font:inherit;font-weight:600;cursor:pointer}.report-panel{position:fixed;right:16px;bottom:70px;z-index:41;display:flex;flex-direction:column;gap:12px;width:min(420px,calc(100vw - 32px));max-height:calc(100vh - 90px);overflow:auto;padding:16px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-lg)}.report-preview{max-width:100%;max-height:180px;object-fit:contain;border:1px solid var(--line)}.report-list{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}.report-list li{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-top:1px solid var(--line)}.track-report{display:flex;flex-direction:column;gap:6px;margin-top:6px;padding:8px 10px;background:var(--bg);border-radius:var(--radius)}.report-thumb{display:block;max-width:220px;max-height:140px;object-fit:contain;border:1px solid var(--line)}.journey-card{padding:14px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-lg)}.journey{display:flex;flex-wrap:wrap;gap:6px 4px;margin:0;padding:0;list-style:none}.journey-step{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:999px;font-size:13px;color:var(--muted)}.journey-step small{display:block;font-size:11px;line-height:1}.journey-dot{display:inline-flex;align-items:center;justify-content:center;flex:none;width:24px;height:24px;border-radius:50%;background:var(--chip);font-size:12px;font-weight:600}.journey-step.done{color:var(--ok)}.journey-step.done .journey-dot{background:var(--ok-bg);color:var(--ok)}.journey-step.current{background:var(--chip);color:var(--ink);font-weight:600}.journey-step.current .journey-dot{background:var(--accent);color:var(--on-accent)}.journey-step.skipped{color:var(--warn)}.journey-step.skipped .journey-dot{background:var(--warn-bg);color:var(--warn)}.options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.option{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.option:hover{background:var(--chip)}.option:has(input:checked){background:var(--chip);border-color:var(--ink);font-weight:500}.option:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:2px}.option input{flex:none;width:18px;height:18px;min-height:0;margin:0;padding:0}.options.tf{display:flex;gap:8px}.options.tf .option{min-width:76px;justify-content:center;padding:8px 18px;border-radius:999px}.options.tf .option input{position:absolute;width:1px;height:1px;opacity:0}.options.tf .option:has(input:checked){background:var(--ink);color:var(--card);border-color:var(--ink)}@media(max-width:600px){.options{grid-template-columns:minmax(0,1fr)}}.acad-grid{display:grid;grid-template-columns:minmax(260px,300px) minmax(0,1fr);gap:16px;align-items:start}.acad-side{display:flex;flex-direction:column;gap:12px;min-width:0}.bar{height:8px;margin-top:6px;background:var(--chip);border-radius:4px;overflow:hidden}.bar>div{height:100%;background:var(--ok)}.chapter-list{gap:2px;padding:8px}.chapter-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;padding:8px 10px;background:none;border:0;border-radius:var(--radius);color:var(--ink);font:inherit;font-size:14px;text-align:left;cursor:pointer}.chapter-item:hover:not(:disabled){background:var(--chip)}.chapter-item.on{background:var(--chip);font-weight:600}.chapter-item:disabled{color:var(--muted);cursor:default}.medal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:6px;justify-items:center}.medal{flex:none}.medal text{font-family:var(--body-font)}.result{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:var(--radius);color:#fff}.result strong{font-size:20px}.result.pass{background:#15803d}.result.fail{background:#b91c1c}.celebrate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px;background:#000000a6;overflow:hidden}.celebrate-card{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:12px;max-width:440px;width:100%;padding:28px 24px;text-align:center;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-lg)}.celebrate-card h2{font-size:32px;margin:0}.medal-pop{animation:medal-pop .7s cubic-bezier(.2,1.6,.4,1) both}.confetti span{position:absolute;top:-16px;width:10px;height:16px;border-radius:2px;animation:confetti-fall 2.6s linear infinite}@keyframes medal-pop{0%{transform:scale(0) rotate(-25deg)}to{transform:scale(1) rotate(0)}}@keyframes confetti-fall{to{transform:translateY(105vh) rotate(540deg)}}@media(prefers-reduced-motion:reduce){.medal-pop,.confetti span{animation:none}.confetti{display:none}}.certificate{display:flex;flex-direction:column;align-items:center;gap:10px;max-width:760px;width:100%;margin:0 auto;padding:32px 24px;text-align:center;background:#fff;color:#121212;border:6px double #C9A86A}.certificate h1,.certificate h2,.certificate h3{color:#121212;margin:0}.certificate .lbl{color:#5f5f5d}.cert-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 2px;width:100%;margin:2px 0}.cert-badge{display:flex;flex-direction:column;align-items:center;gap:2px;width:74px;font-size:10px;line-height:1.15}@media print{.no-print{display:none!important}.main{padding:0}.certificate{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media(max-width:1000px){.cols{grid-template-columns:1fr}.acad-grid{grid-template-columns:minmax(0,1fr)}.acad-grid>section{order:-1}}@media(max-width:900px){.app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr}.side{display:none;border-right:0;border-bottom:1px solid var(--line)}.side.open{display:flex}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid var(--line);background:var(--side)}.main{padding:16px}}
