*,:before,:after{box-sizing:border-box}body{margin:0}@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/schibsted-grotesk-latin-ext-wght-normal-hsMS0n0O.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/schibsted-grotesk-latin-wght-normal-Bb8VGrTG.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--n-0:#fff;--n-25:#fafaf7;--n-50:#f3f2ee;--n-100:#e3e2dc;--n-200:#d6d4cc;--n-300:#b5b3aa;--n-400:#74736c;--n-500:#5f5e58;--n-600:#4a4a46;--n-700:#3a3a37;--n-800:#2c2c2a;--n-900:#232323;--p-50:#eef1fc;--p-100:#dce2f8;--p-200:#b9c5f1;--p-500:#2f4bce;--p-600:#2540b0;--p-700:#1f35a0;--p-900:#141f57;--success:#2f4bce;--success-bg:#eef1fc;--warning:#7a6100;--warning-bg:#fcf6c9;--danger:#c9302c;--danger-bg:#fbe9e8;--redo:#8a3d06;--redo-bg:#fdeee2;--redo-border:#e0a172;--info:var(--p-500);--info-bg:var(--p-50);--surface-app:var(--n-25);--surface:var(--n-0);--surface-sunken:var(--n-50);--surface-hover:var(--n-25);--border:var(--n-100);--border-strong:var(--n-200);--scrim:#23232373;--text:var(--n-900);--text-secondary:var(--n-600);--text-muted:var(--n-400);--text-inverse:var(--n-0);--nav-bg:var(--surface);--nav-text:var(--text);--nav-text-dim:var(--text-secondary);--accent:#2f4bce;--focus-ring:0 0 0 3px #2f4bce4d;--radius:4px;--radius-sm:3px;--radius-lg:6px;--shadow:0 1px 2px #2323230f;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--font:"Schibsted Grotesk Variable", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--t-xs:.6875rem;--t-sm:.75rem;--t-md:.8125rem;--t-base:.875rem;--t-lg:1rem;--t-xl:1.25rem;--t-2xl:2.25rem;--highlight:#f5e663;--highlight-text:#232323;--font-mono:"JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, monospace;--nav-hover:var(--surface-hover);--nav-active-bg:var(--highlight);--nav-active-text:var(--highlight-text);--nav-line:var(--border);--nav-chip:var(--surface-sunken);--band-bg:#232323;--band-text:#fafaf7;--band-text-dim:#c9c8c1;font-family:var(--font);-webkit-font-smoothing:antialiased}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--surface-app);min-height:100vh;color:var(--text);font-size:14px;line-height:1.5}:where(button,a,input,select,textarea):focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm);outline:none}.app-shell{grid-template-columns:224px minmax(0,1fr);min-height:100vh;display:grid}.app-rail{background:var(--nav-bg);color:var(--nav-text-dim);border-right:1px solid var(--nav-line);flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.rail-brand{padding:var(--sp-5) var(--sp-5) var(--sp-4);color:var(--nav-text)}.rail-context{font-size:var(--t-sm);color:var(--nav-text-dim);margin-top:var(--sp-1);line-height:1.35}.rail-nav{padding:var(--sp-3) var(--sp-3);flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.rail-item{align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-3) var(--sp-3);border-radius:var(--radius);color:var(--nav-text-dim);font:inherit;font-size:var(--t-base);text-align:left;cursor:pointer;background:0 0;border:none;font-weight:500;transition:background-color .12s,color .12s;display:flex;position:relative}.rail-item:hover{background:var(--nav-hover);color:var(--nav-text)}.rail-item.active{background:var(--nav-active-bg);color:var(--nav-active-text);font-weight:700}.rail-item.active:before{content:"";left:calc(var(--sp-3) * -1 + 3px);background:var(--nav-active-text);border-radius:0 3px 3px 0;width:3px;position:absolute;top:20%;bottom:20%}.rail-item .rail-count{font-size:var(--t-xs);background:var(--nav-chip);font-weight:600;font-family:var(--font-mono);border-radius:999px;margin-left:auto;padding:1px 7px}.rail-item.has-alert .rail-count{background:var(--danger);color:#fff}.rail-foot{border-top:1px solid var(--nav-line);padding:var(--sp-4) var(--sp-4);gap:var(--sp-3);flex-direction:column;display:flex}.rail-user{align-items:center;gap:var(--sp-3);min-width:0;display:flex}.rail-avatar{background:var(--highlight);width:30px;height:30px;color:var(--highlight-text);font-size:var(--t-sm);border-radius:50%;flex:none;place-items:center;font-weight:600;display:grid}.rail-user-name{font-size:var(--t-md);color:var(--nav-text);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.rail-user-role{font-size:var(--t-xs);color:var(--nav-text-dim)}.rail-action{align-items:center;gap:var(--sp-2);width:100%;padding:7px var(--sp-3);border:1px solid var(--nav-line);border-radius:var(--radius);color:var(--nav-text-dim);font:inherit;font-size:var(--t-md);cursor:pointer;background:0 0;transition:background-color .12s,color .12s;display:flex}.rail-action:hover{background:var(--nav-hover);color:var(--nav-text)}.app-main{min-width:0}.main-container{max-width:1180px;padding:var(--sp-8) var(--sp-6) var(--sp-10);margin:0 auto}.page-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-4);margin-bottom:var(--sp-6);flex-wrap:wrap;display:flex}.page-head h1{font-size:var(--t-xl);letter-spacing:-.02em;font-weight:600;line-height:1.2}.page-head .page-sub{font-size:var(--t-base);color:var(--text-secondary);margin-top:var(--sp-1)}.app-topbar,.app-tabbar{display:none}@media (width<=899px){.app-shell{grid-template-columns:minmax(0,1fr)}.app-rail{display:none}.app-topbar{justify-content:space-between;align-items:center;gap:var(--sp-3);background:var(--nav-bg);color:var(--nav-text);padding:var(--sp-3) var(--sp-4);z-index:30;display:flex;position:sticky;top:0}.app-topbar .rail-action{width:auto}.main-container{padding:var(--sp-5) var(--sp-4);padding-bottom:calc(104px + env(safe-area-inset-bottom,0px))}.app-tabbar{left:var(--sp-3);right:var(--sp-3);bottom:calc(var(--sp-3) + env(safe-area-inset-bottom,0px));z-index:40;border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 84%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);border-radius:30px;grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;padding:6px;display:grid;position:fixed;box-shadow:0 10px 30px #00000024}.tabbar-item{min-height:52px;color:var(--text-secondary);font:inherit;font-size:var(--t-xs);cursor:pointer;background:0 0;border:none;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 2px;font-weight:600;transition:background-color .15s,color .15s;display:flex;position:relative}.tabbar-item.active{background:var(--highlight);color:var(--highlight-text);font-weight:700}.tabbar-dot{background:var(--danger);border-radius:50%;width:6px;height:6px;margin-left:15px;position:absolute;top:8px}}.tabs-nav{gap:var(--sp-5);margin-bottom:var(--sp-6);border-bottom:1px solid var(--border);scrollbar-width:none;display:flex;overflow-x:auto}.tabs-nav::-webkit-scrollbar{display:none}.tab-btn{padding:var(--sp-3) 2px;color:var(--text-secondary);cursor:pointer;font:inherit;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;font-size:.875rem;font-weight:500;transition:color .15s,border-color .15s}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--p-600);border-bottom-color:var(--p-500);font-weight:600}.info-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-5);margin-bottom:var(--sp-5)}.info-card h3{align-items:center;gap:var(--sp-3);font-size:var(--t-lg);letter-spacing:-.015em;color:var(--text);margin-bottom:var(--sp-4);font-weight:600;display:flex}.info-card h3:after{content:"";background:var(--border);flex:1;height:1px}.stats-grid{gap:var(--sp-3);margin-bottom:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.stat-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-4);position:relative}.stat-box .stat-value{font-size:var(--t-2xl);letter-spacing:-.035em;color:var(--text);font-weight:600;line-height:1;font-family:var(--font-mono);font-variant-numeric:tabular-nums;display:block}.stat-box.success .stat-value{color:var(--success)}.stat-box.warning .stat-value{color:var(--warning)}.stat-box.danger .stat-value{color:var(--danger)}.stat-box .stat-label{font-size:var(--t-sm);color:var(--text-secondary);margin-top:var(--sp-2);line-height:1.35;display:block}.badge{border-radius:var(--radius-sm);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;border:1px solid #0000;padding:2px 7px;font-size:.6875rem;font-weight:600;display:inline-block}.badge-success{background:var(--success-bg);color:var(--success);border-color:#c7d0f3}.badge-warning{background:var(--warning-bg);color:var(--warning);border-color:#ece08f}.badge-danger{background:var(--danger-bg);color:var(--danger);border-color:#f2c9c7}.badge-info{background:var(--info-bg);color:var(--p-600);border-color:var(--p-100)}.badge-secondary{background:var(--n-50);color:var(--n-600);border-color:var(--n-100)}.table-wrapper{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-x:auto}.info-card .table-wrapper{border:none;border-radius:0}table{border-collapse:collapse;width:100%;font-size:.8125rem}thead th{padding:var(--sp-2) var(--sp-3) var(--sp-3);text-align:left;font-size:var(--t-sm);color:var(--text-secondary);background:var(--surface);border-bottom:1px solid var(--border-strong);z-index:1;white-space:nowrap;font-weight:600;position:sticky;top:0}tbody tr{border-bottom:1px solid var(--border)}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:var(--surface-hover)}tbody tr.urgent td:first-child{box-shadow:inset 3px 0 0 var(--danger)}tbody tr.warn td:first-child{box-shadow:inset 3px 0 0 var(--warning)}tbody td{padding:var(--sp-3);vertical-align:middle}.grade-high{color:var(--success);font-weight:600}.grade-medium{color:var(--warning);font-weight:600}.grade-low{color:var(--danger);font-weight:600}.alert-banner{padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:var(--sp-4);color:var(--text);border-left-width:3px;font-size:.8125rem}.alert-banner.danger{background:var(--danger-bg);border-color:#f2c9c7;border-left-color:var(--danger)}.alert-banner.warning{background:var(--warning-bg);border-color:#ece08f;border-left-color:var(--warning)}.alert-banner.success{background:var(--success-bg);border-color:#c7d0f3;border-left-color:var(--success)}.alert-banner.info{background:var(--info-bg);border-color:var(--p-100);border-left-color:var(--p-500)}.comment-box{font-size:var(--t-base);color:var(--text);padding-left:24px;line-height:1.45;position:relative}.comment-box:before{content:"";color:var(--text-secondary);background:currentColor;width:16px;height:16px;position:absolute;top:2px;left:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 20l4-1 11-11-3-3L5 16l-1 4z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 20l4-1 11-11-3-3L5 16l-1 4z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/contain no-repeat}.validation-outcome{gap:var(--sp-1);padding-top:var(--sp-3);border-top:2px solid var(--text);flex-direction:column;font-weight:700;line-height:1.4;display:flex}.validation-outcome-label{font-size:var(--t-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);font-weight:700}.validation-outcome.is-validated{color:var(--p-500)}.validation-outcome.is-rework{color:var(--danger)}.chart-groups{gap:var(--sp-6);flex-wrap:wrap;display:flex}.chart-group{gap:var(--sp-2);flex-direction:column;display:flex}.chart-group-label{font-size:var(--t-sm);color:var(--text-secondary);font-weight:700}.bar-chart{gap:var(--sp-2);height:170px;display:flex}.bar-chart-section{align-items:flex-end;gap:var(--sp-1);display:flex}.bar-chart-section .section-label{writing-mode:vertical-rl;color:var(--text-muted);margin-bottom:var(--sp-1);font-size:.6875rem}.bar-item{justify-items:center;gap:var(--sp-1);cursor:default;grid-template-rows:auto minmax(0,1fr) auto;height:100%;display:grid}.bar-track{background:var(--n-25);border-radius:3px;align-items:flex-end;width:34px;height:100%;display:flex}.bar-fill{border-radius:3px;width:100%;transition:opacity .15s}.bar-item:hover .bar-fill{opacity:.8}.bar-fill.is-high{background:var(--p-600)}.bar-fill.is-mid{background:var(--p-200)}.bar-fill.is-low{background:var(--danger)}.bar-fill.is-empty{background:0 0}.bar-label{font-size:var(--t-xs);color:var(--text-muted)}.bar-value{font-size:var(--t-sm);color:var(--text);font-weight:600;font-family:var(--font-mono);font-variant-numeric:tabular-nums;min-height:1em}.progress-bar{background:var(--n-100);height:5px;margin-top:var(--sp-1);border-radius:999px;overflow:hidden}.progress-bar-fill{background:var(--p-500);border-radius:999px;height:100%;transition:width .4s}.progress-bar-fill.success{background:var(--success)}.progress-bar-fill.warning{background:var(--warning)}.progress-bar-fill.danger{background:var(--danger)}.progress-bar-fill.info{background:var(--p-500)}.class-cards-grid{gap:var(--sp-3);margin-bottom:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.class-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--n-300);border-radius:var(--radius);padding:var(--sp-4);transition:border-color .15s}.class-card:hover{border-color:var(--border-strong)}.class-card .stat-box,.info-card .class-card .stat-box{background:0 0;border:none;padding:0}.class-card .stats-grid{gap:var(--sp-4);margin-bottom:var(--sp-3)}.class-card.complete{border-left-color:var(--success)}.class-card.critical{border-left-color:var(--danger)}.class-card.warning{border-left-color:var(--warning)}.timeline{padding-left:var(--sp-6);position:relative}.timeline:before{content:"";background:var(--border-strong);width:1px;position:absolute;top:6px;bottom:6px;left:5px}.timeline-item{margin-bottom:var(--sp-5);position:relative}.timeline-item:before{content:"";background:var(--p-500);outline:3px solid var(--surface-app);border-radius:50%;width:7px;height:7px;position:absolute;top:5px;left:-22px}.timeline-date{color:var(--text-muted);margin-bottom:var(--sp-1);font-size:.6875rem}.timeline-content{background:var(--surface-sunken);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);font-size:.8125rem}.btn{align-items:center;gap:var(--sp-2);padding:6px var(--sp-3);border-radius:var(--radius-sm);cursor:pointer;font:inherit;white-space:nowrap;border:1px solid #0000;font-size:.8125rem;font-weight:500;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--p-500);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){background:var(--p-600)}.btn-success{background:var(--success);color:var(--text-inverse)}.btn-success:hover:not(:disabled){background:var(--p-600)}.btn-warning{background:var(--warning);color:var(--text-inverse)}.btn-warning:hover:not(:disabled){background:#5f4b00}.btn-danger{background:var(--danger);color:var(--text-inverse)}.btn-danger:hover:not(:disabled){background:#a3221f}.btn-secondary{background:var(--n-100);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--n-200)}.btn-outline{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-outline:hover:not(:disabled){background:var(--surface-sunken);border-color:var(--n-300)}.filters-bar{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-wrap:wrap;align-items:center;display:flex}.filters-bar select,.filters-bar input{padding:6px var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit;color:var(--text);background:var(--surface);font-size:.8125rem}.filters-bar input::placeholder{color:var(--text-muted)}.themes-grid{gap:var(--sp-3);margin-top:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.theme-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-4);position:relative}.theme-card.warning:before,.theme-card.info:before,.theme-card.success:before{content:"";left:-1px;top:var(--sp-4);bottom:var(--sp-4);border-radius:2px;width:2px;position:absolute}.theme-card.success:before{background:var(--success)}.theme-card.warning:before{background:var(--warning)}.theme-card.info:before{background:var(--p-500)}.theme-card h4{font-size:var(--t-base);letter-spacing:-.01em;color:var(--text);margin-bottom:var(--sp-3);font-weight:600}.theme-card ul{font-size:.8125rem;list-style:none}.theme-card ul li{padding:2px 0}.report-cards-grid{gap:var(--sp-3);margin-bottom:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.report-card{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;padding:var(--sp-4);text-align:left;cursor:pointer;transition:border-color .15s,background-color .15s}.report-card:hover{border-color:var(--n-300)}.report-card-label{font-weight:600;font-size:var(--t-md);display:block}.report-card.active{border-color:var(--p-500);background:var(--p-50);box-shadow:inset 0 0 0 1px var(--p-500)}.report-card .report-icon{color:var(--p-500);margin-bottom:var(--sp-2);display:block}.report-card h4{font-size:.8125rem;font-weight:600}.form-group{margin-bottom:var(--sp-4)}.form-group label:not(.check-row){color:var(--text-secondary);margin-bottom:var(--sp-1);font-size:.8125rem;font-weight:500;display:block}.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit;color:var(--text);background:var(--surface);font-size:.875rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--p-500);box-shadow:var(--focus-ring);outline:none}.login-page{min-height:100vh;padding:var(--sp-4);background:var(--surface-app);justify-content:center;align-items:center;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-8);width:100%;max-width:380px}.login-brand{align-items:center;gap:var(--sp-3);color:var(--text);flex-direction:column;display:flex}.login-card h2{font-size:var(--t-xl);letter-spacing:-.03em;text-align:center;color:var(--text);font-weight:600}.login-card .login-subtitle{text-align:center;color:var(--text-secondary);font-size:var(--t-md);margin:var(--sp-2) 0 var(--sp-6)}.btn-login{background:var(--p-500);width:100%;color:var(--text-inverse);border-radius:var(--radius-sm);font:inherit;cursor:pointer;margin-top:var(--sp-2);border:none;padding:10px;font-size:.875rem;font-weight:600;transition:background-color .15s}.btn-login:hover:not(:disabled){background:var(--p-600)}.btn-login:disabled{opacity:.6;cursor:not-allowed}.error-msg{color:var(--danger);text-align:center;margin-top:var(--sp-3);font-size:.8125rem}.table-wrapper{-webkit-overflow-scrolling:touch;background:linear-gradient(to right, var(--surface) 30%, #fff0) left center, linear-gradient(to left, var(--surface) 30%, #fff0) right center, linear-gradient(to right, #14202c1c, #fff0) left center, linear-gradient(to left, #14202c1c, #fff0) right center;background-repeat:no-repeat;background-size:32px 100%,32px 100%,12px 100%,12px 100%;background-attachment:local,local,scroll,scroll}@media (width<=900px){.stats-grid{grid-template-columns:repeat(auto-fit,minmax(128px,1fr))}}.modal-overlay{background:var(--scrim);padding:var(--sp-4);z-index:1100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:580px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 12px 32px #14202c3d}.modal-card>form{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;overflow-y:auto}.modal-card>form>:last-child:has(button[type=submit]){bottom:calc(var(--sp-6) * -1);margin-bottom:calc(var(--sp-6) * -1);padding:var(--sp-3) 0 var(--sp-6);background:var(--surface);border-top:1px solid var(--border);z-index:1;position:sticky}.modal-card.narrow{max-width:440px}.modal-card.wide{max-width:860px}.modal-header{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.modal-header h3,.modal-header h4{color:var(--text);font-size:.9375rem;font-weight:600}.modal-close{color:var(--text-muted);cursor:pointer;padding:var(--sp-1);border-radius:var(--radius-sm);background:0 0;border:none;transition:color .15s,background-color .15s;display:inline-flex}.modal-close:hover{color:var(--text);background:var(--surface-sunken)}.modal-body{padding:var(--sp-5);flex:1;overflow-y:auto}.modal-footer{justify-content:flex-end;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border);background:var(--surface-sunken);flex-shrink:0;display:flex}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.items-baseline{align-items:baseline}.justify-center{justify-content:center}.w-full{width:100%}.clickable{cursor:pointer}.nowrap{white-space:nowrap}.row{align-items:center;gap:var(--sp-2);display:flex}.row-top{align-items:flex-start}.row-base{align-items:baseline}.between{justify-content:space-between}.end{justify-content:flex-end}.wrap{flex-wrap:wrap}.col{gap:var(--sp-2);flex-direction:column;display:flex}.grow{flex:1}.grow-2{flex:2}.grid-2{gap:var(--sp-4);grid-template-columns:1fr 1fr;display:grid}.gap-0{gap:0}.gap-1{gap:var(--sp-1)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-5{gap:var(--sp-5)}.gap-6{gap:var(--sp-6)}.m-0{margin:0}.mt-1{margin-top:var(--sp-1)}.mb-1{margin-bottom:var(--sp-1)}.mt-2{margin-top:var(--sp-2)}.mb-2{margin-bottom:var(--sp-2)}.mt-3{margin-top:var(--sp-3)}.mb-3{margin-bottom:var(--sp-3)}.mt-4{margin-top:var(--sp-4)}.mb-4{margin-bottom:var(--sp-4)}.mt-5{margin-top:var(--sp-5)}.mb-5{margin-bottom:var(--sp-5)}.mt-6{margin-top:var(--sp-6)}.mb-6{margin-bottom:var(--sp-6)}.ml-2{margin-left:var(--sp-2)}.ml-auto{margin-left:auto}.text-xs{font-size:.6875rem}.text-sm{font-size:.75rem}.text-md{font-size:.8125rem}.text-base{font-size:.875rem}.text-lg{font-size:1rem}.text-xl{letter-spacing:-.01em;font-size:1.25rem}.fw-400{font-weight:400}.fw-500{font-weight:500}.fw-600{font-weight:600}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-danger{color:var(--danger)}.text-primary{color:var(--p-600)}.center{text-align:center}.empty-state{text-align:center;padding:var(--sp-8) var(--sp-4);color:var(--text-secondary);font-size:.8125rem}.p-0{padding:0}.p-3{padding:var(--sp-3)}.p-4{padding:var(--sp-4)}.p-5{padding:var(--sp-5)}.p-6{padding:var(--sp-6)}.p-8{padding:var(--sp-8)}.btn-sm{padding:3px var(--sp-2);font-size:.75rem}.field{width:100%;padding:8px var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit;color:var(--text);background:var(--surface);resize:vertical;font-size:.875rem}.field-pad{padding:8px var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit;background:var(--surface);color:var(--text)}.field-pad:focus,.field:focus{border-color:var(--p-500);box-shadow:var(--focus-ring);outline:none}.callout{background:var(--p-50);border:1px solid var(--p-100);border-radius:var(--radius-sm);padding:var(--sp-3) var(--sp-4);color:var(--text);font-size:.8125rem}.callout-warning{background:var(--warning-bg);border-color:#ece08f;border-left:3px solid var(--warning)}.callout-danger{background:var(--danger-bg);border-color:#f2c9c7;border-left:3px solid var(--danger)}.btn-link{font:inherit;color:var(--p-600);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.btn-link:hover{color:var(--p-700)}.dropzone{border:1px dashed var(--border-strong);border-radius:var(--radius);padding:var(--sp-6) var(--sp-5);text-align:center;cursor:pointer;background:var(--surface-hover);transition:border-color .15s,background-color .15s}.dropzone:hover{border-color:var(--n-300)}.dropzone.is-dragging{border-color:var(--p-500);background:var(--p-50)}.dropzone.has-file{border-color:var(--success);background:var(--success-bg)}.session-card{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-2)}.check-row{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3);margin-bottom:var(--sp-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;transition:border-color .15s,background-color .15s;display:flex}.check-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--success);cursor:pointer;flex:none;margin-top:2px}.check-row:hover{border-color:var(--border-strong)}.check-row.is-checked{border-color:var(--success);background:var(--success-bg)}.sheet-row{justify-content:space-between;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-sunken);flex-wrap:wrap;display:flex}.sheet-row.is-expanded{border-radius:var(--radius) var(--radius) 0 0;background:var(--p-50);border-bottom:none}.sheet-detail{background:var(--p-50);border:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);padding:var(--sp-4);border-top:none}.modal-header.danger{border-bottom:1px solid var(--danger);background:var(--danger-bg)}.modal-header.danger h3,.modal-header.danger .modal-title{color:var(--danger)}.modal-title{font-size:.9375rem;font-weight:600}.modal-subtitle{color:var(--text-secondary);margin-top:2px;font-size:.75rem}.tabs-nav.tabs-inset{gap:var(--sp-4);padding:0 var(--sp-5);background:var(--surface-sunken);flex-shrink:0;margin-bottom:0}.tabs-nav.tabs-inset .tab-btn{padding:var(--sp-3) 2px;font-size:.8125rem}.logo{align-items:center;gap:var(--sp-3);display:inline-flex}.logo-mark{flex:none}.logo-word{font-size:var(--t-lg);letter-spacing:-.035em;white-space:nowrap;font-weight:800}.login-card h2 .logo-word{font-size:inherit}.logo-word-accent{color:inherit}.sheet-grid{gap:var(--sp-5);flex-wrap:wrap;align-items:flex-start;display:flex}.sheet-grid-group{gap:var(--sp-2);flex-direction:column;display:flex}.sheet-grid-legend{align-items:baseline;gap:var(--sp-2);line-height:1;display:flex}.sheet-grid-exam{font-size:var(--t-sm);color:var(--text);letter-spacing:-.01em;font-weight:700}.sheet-grid-code{font-size:var(--t-xs);color:var(--text-muted);letter-spacing:.02em}.sheet-grid-cells{gap:4px;display:flex}.sheet-cell{border-radius:var(--radius-sm);font-size:var(--t-xs);font-weight:600;font-family:var(--font-mono);font-variant-numeric:tabular-nums;border:1px solid #0000;flex:none;place-items:center;padding:0;line-height:1;transition:transform .1s;display:grid}button.sheet-cell{cursor:pointer}button.sheet-cell:hover{transform:translateY(-1px)}.sheet-cell.is-validated{background:var(--p-500);border-color:var(--p-500);color:var(--text-inverse)}.sheet-cell.is-completed{background:var(--highlight);border-color:var(--highlight);color:var(--highlight-text)}.sheet-cell.is-in-progress{background:var(--surface);border-color:var(--text);color:var(--text)}.sheet-cell.is-not-started{border:1px dashed var(--n-200);color:var(--n-300);background:0 0}.sheet-grid-lg .sheet-cell{width:40px;height:40px;font-size:var(--t-base)}.sheet-grid-md .sheet-cell{width:28px;height:28px}.sheet-grid-sm{gap:var(--sp-3)}.sheet-grid-sm .sheet-cell{border-radius:2px;width:13px;height:13px}.sheet-grid-sm .sheet-cell span{display:none}.sheet-grid-sm .sheet-grid-cells{gap:3px}.sheet-ring{vertical-align:middle;flex:none;place-items:center;display:inline-grid;position:relative}.sheet-ring svg{display:block}.ring-seg{stroke:var(--border-strong)}.ring-seg.is-validated{stroke:var(--p-500)}.ring-seg.is-completed{stroke:var(--highlight)}.ring-seg.is-in-progress{stroke:var(--text)}.sheet-ring-count{font-family:var(--font-mono);font-weight:600;font-size:var(--t-xl);letter-spacing:-.03em;place-items:center;display:grid;position:absolute;inset:0}.sheet-ring-total{opacity:.7;font-size:.6em}.hero .ring-seg{stroke:#ffffff38}.hero .ring-seg.is-validated{stroke:var(--band-text)}.hero .ring-seg.is-completed{stroke:var(--highlight)}.hero .ring-seg.is-in-progress{stroke:var(--band-text-dim)}.queue-day{margin-bottom:var(--sp-6)}.queue-day-title{font-size:var(--t-xl);letter-spacing:-.03em;margin-bottom:var(--sp-4);font-weight:800}mark,.queue-day-title mark{background:var(--highlight);color:var(--highlight-text);border-radius:2px;padding:0 .2em}.queue-day-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.queue-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);gap:var(--sp-2);flex-direction:column;display:flex}.queue-card-who{align-items:center;gap:var(--sp-3);display:flex}.queue-card-kind{font-size:var(--t-md);font-weight:700}.queue-card-kind.tone-danger{color:var(--danger)}.queue-card-kind.tone-primary{color:var(--p-500)}.queue-card-kind.tone-neutral{color:var(--text)}.queue-card-detail{font-size:var(--t-base);color:var(--text-secondary);line-height:1.4}.queue-card-action{min-height:36px;color:var(--p-500);font:inherit;font-weight:700;font-size:var(--t-base);cursor:pointer;background:0 0;border:none;align-self:flex-start;margin-top:auto;padding:0}.queue-card-action:hover{text-decoration:underline}.sheet-legend{gap:var(--sp-4);font-size:var(--t-sm);color:var(--text-secondary);flex-wrap:wrap;display:flex}.sheet-legend-item{align-items:center;gap:var(--sp-2);display:inline-flex}.sheet-legend-item .sheet-cell{border-radius:2px;width:12px;height:12px}.sheet-legend-item .sheet-cell span{display:none}.app-shell-solo{grid-template-columns:minmax(0,1fr)}.app-topbar-solo{justify-content:space-between;align-items:center;gap:var(--sp-3);background:var(--nav-bg);color:var(--nav-text);padding:var(--sp-3) var(--sp-5);z-index:30;display:flex;position:sticky;top:0}.app-shell-solo .main-container{padding-bottom:var(--sp-10)}@media (width<=899px){.app-shell-solo .main-container{padding:var(--sp-5) var(--sp-4) var(--sp-8)}}.hero{background:var(--band-bg);color:var(--band-text);border-radius:var(--radius-lg);padding:var(--sp-6);margin-bottom:var(--sp-5);gap:var(--sp-5);flex-direction:column;display:flex}.hero-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-5);flex-wrap:wrap;display:flex}.hero-name{font-size:var(--t-xl);letter-spacing:-.02em;font-weight:600;line-height:1.15}.hero-meta{font-size:var(--t-md);color:var(--band-text-dim);margin-top:var(--sp-1)}.hero-score{align-items:flex-end;gap:var(--sp-2);text-align:right;flex-direction:column;line-height:1;display:flex}.mono{font-family:var(--font-mono)}.hero-score-value{font-size:var(--t-2xl);letter-spacing:-.04em;font-weight:600;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.hero-score-total{font-size:var(--t-xl);color:var(--band-text-dim)}.hero-score-label{font-size:var(--t-sm);color:var(--band-text-dim);margin-top:var(--sp-2);display:block}.hero .sheet-grid-exam{color:var(--band-text)}.hero .sheet-grid-code,.hero .sheet-legend{color:var(--band-text-dim)}.hero .sheet-cell.is-validated{background:var(--band-text);border-color:var(--band-text);color:var(--band-bg)}.hero .sheet-cell.is-completed{background:var(--highlight);border-color:var(--highlight);color:var(--highlight-text)}.hero .sheet-cell.is-in-progress{color:var(--band-text);background:0 0;border-color:#ffffff8c}.hero .sheet-cell.is-not-started{color:#ffffff73;background:0 0;border:1px dashed #ffffff47}@media (width<=600px){.hero{padding:var(--sp-5)}.hero-head{gap:var(--sp-3)}.hero-score{text-align:left;align-items:flex-start}}.metric-row{gap:var(--sp-6);margin:var(--sp-4) 0;display:flex}.metric{align-items:baseline;gap:var(--sp-2);display:flex}.metric-value{font-size:var(--t-xl);letter-spacing:-.03em;font-weight:600;font-family:var(--font-mono);font-variant-numeric:tabular-nums;line-height:1}.metric-label{font-size:var(--t-sm);color:var(--text-secondary)}.class-card.is-clickable{cursor:pointer;transition:transform .15s,border-color .15s}.class-card.is-clickable:hover{border-color:var(--n-300);transform:translateY(-2px)}.attention-list{flex-direction:column;display:flex}.attention-row{align-items:center;gap:var(--sp-4);width:100%;padding:var(--sp-3) var(--sp-2);border:none;border-bottom:1px solid var(--border);font:inherit;text-align:left;cursor:pointer;background:0 0;grid-template-columns:minmax(140px,1.4fr) auto minmax(120px,1fr) auto 16px;transition:background-color .12s;display:grid}.attention-row:last-child{border-bottom:none}.attention-row:hover{background:var(--surface-hover)}.attention-who{flex-direction:column;gap:1px;min-width:0;display:flex}.attention-why{gap:var(--sp-2);flex-wrap:wrap;display:flex}.attention-go{color:var(--text-muted);transform:rotate(180deg)}@media (width<=760px){.attention-row{gap:var(--sp-2) var(--sp-3);padding:var(--sp-3) var(--sp-2);grid-template-columns:1fr auto}.attention-who{grid-column:1}.attention-go{grid-area:1/2}.attention-row .sheet-grid,.attention-why,.attention-when{grid-column:1/-1}}.distribution{gap:var(--sp-3);flex-direction:column;display:flex}.distribution-bar{background:var(--n-50);border-radius:999px;height:10px;display:flex;overflow:hidden}.distribution-seg{height:100%;display:block}.distribution-seg.is-validated{background:var(--p-600)}.distribution-seg.is-completed{background:var(--p-200)}.distribution-seg.is-in-progress{background:var(--n-200)}.distribution-seg.is-not-started{background:var(--n-50);box-shadow:inset 0 0 0 1px var(--n-100)}.distribution-seg.is-unknown{background:repeating-linear-gradient(45deg, var(--n-100) 0 4px, var(--n-50) 4px 8px)}.distribution-legend{gap:var(--sp-4);font-size:var(--t-sm);color:var(--text-secondary);flex-wrap:wrap;display:flex}.distribution-legend-item{align-items:center;gap:var(--sp-2);display:inline-flex}.distribution-legend-item strong{color:var(--text);font-family:var(--font-mono)}.distribution-dot{border-radius:2px;flex:none;width:9px;height:9px}.distribution-dot.is-validated{background:var(--p-600)}.distribution-dot.is-completed{background:var(--p-200)}.distribution-dot.is-in-progress{background:var(--n-200)}.distribution-dot.is-not-started{background:var(--n-0);box-shadow:inset 0 0 0 1px var(--n-200)}.report-block{border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-4);background:var(--surface)}.action-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.action-item{align-items:baseline;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--border);font-size:var(--t-base);display:flex}.action-item:last-child{border-bottom:none}.action-count{min-width:2.5em;font-size:var(--t-lg);letter-spacing:-.02em;font-weight:600;font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;flex:none}.action-item.is-danger .action-count{color:var(--danger)}.action-item.is-warning .action-count{color:var(--warning)}.action-item.is-info .action-count{color:var(--p-600)}.queue-summary{justify-content:space-between;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap;display:flex}.queue-summary-main{align-items:baseline;gap:var(--sp-3);font-size:var(--t-base);color:var(--text-secondary);display:flex}.queue-count{font-size:var(--t-2xl);letter-spacing:-.04em;color:var(--text);font-weight:600;font-family:var(--font-mono);font-variant-numeric:tabular-nums;line-height:1}.queue{flex-direction:column;display:flex}.queue-row{align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-3);border-bottom:1px solid var(--border);border-left:3px solid #0000;grid-template-columns:120px minmax(160px,1fr) auto auto;display:grid}.queue-row:last-child{border-bottom:none}.queue-row.is-warning{border-left-color:var(--warning);background:var(--warning-bg)}.queue-row.is-danger{border-left-color:var(--danger);background:var(--danger-bg)}.queue-wait{flex-direction:column;gap:1px;display:flex}.queue-wait-value{font-size:var(--t-base);font-weight:600;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.queue-row.is-warning .queue-wait-value{color:var(--warning)}.queue-row.is-danger .queue-wait-value{color:var(--danger)}.queue-wait-note{font-size:var(--t-xs);color:var(--text-secondary)}.queue-who{flex-direction:column;gap:1px;min-width:0;display:flex}@media (width<=760px){.queue-row{gap:var(--sp-2) var(--sp-3);grid-template-columns:1fr auto}.queue-wait{align-items:baseline;gap:var(--sp-2);flex-direction:row;grid-area:1/1}.queue-who{grid-column:1/-1}.queue-when{grid-column:1}.queue-row .btn{grid-area:3/2}}.modal-dossier{padding:var(--sp-4) var(--sp-5);background:var(--surface-sunken);border-bottom:1px solid var(--border)}.wall{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.wall-card{align-items:center;gap:var(--sp-3);min-width:0;padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font:inherit;text-align:left;cursor:pointer;animation:.3s ease-out both wall-in;animation-delay:var(--stagger,0s);transition:border-color .15s,transform .15s;display:flex;position:relative}@keyframes wall-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.wall-card:hover{border-color:var(--n-300);transform:translateY(-2px)}.wall-card.is-behind{border-left:3px solid var(--danger)}.wall-card.is-done{border-left:3px solid var(--success)}.wall-name{font-size:var(--t-md);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:600;line-height:1.25;overflow:hidden}.wall-firstname{color:var(--text-secondary);font-weight:400}.wall-body{flex-direction:column;gap:2px;min-width:0;display:flex}.wall-line{font-size:var(--t-sm);color:var(--text-secondary)}.wall-todo{background:var(--highlight);color:var(--highlight-text);border-radius:3px;padding:0 4px;font-weight:600}.wall-card .sheet-ring-count{font-size:var(--t-md)}.wall-card:has(.wall-alert){padding-right:36px}.wall-alert{top:var(--sp-2);right:var(--sp-2);background:var(--danger);color:#fff;font-size:var(--t-xs);border-radius:999px;padding:0 6px;position:absolute}.ring-legend{gap:var(--sp-2) var(--sp-4);font-size:var(--t-sm);color:var(--text-secondary);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.ring-legend li{align-items:center;gap:6px;display:inline-flex}.ring-legend-swatch{background:var(--border-strong);border-radius:3px;width:14px;height:6px}.ring-legend-swatch.is-validated{background:var(--p-500)}.ring-legend-swatch.is-completed{background:var(--highlight)}.ring-legend-swatch.is-in-progress{background:var(--text)}@media (prefers-reduced-motion:reduce){.wall-card{animation:none}.wall-card:hover{transform:none}}.view-switch{background:var(--surface-sunken);border-radius:var(--radius);flex:none;gap:2px;padding:2px;display:inline-flex}.view-switch-btn{align-items:center;gap:var(--sp-2);padding:5px var(--sp-3);border-radius:calc(var(--radius) - 1px);color:var(--text-secondary);font:inherit;font-size:var(--t-md);cursor:pointer;background:0 0;border:none;font-weight:500;transition:background-color .12s,color .12s;display:inline-flex}.view-switch-btn:hover{color:var(--text)}.view-switch-btn.active{background:var(--surface);color:var(--p-600);box-shadow:var(--shadow);font-weight:600}.palette-overlay{z-index:200;background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:12vh var(--sp-4) var(--sp-4);justify-content:center;align-items:flex-start;animation:.12s ease-out fade-in;display:flex;position:fixed;inset:0}.palette{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:560px;animation:.16s ease-out palette-in;overflow:hidden;box-shadow:0 24px 60px #08162659}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes palette-in{0%{opacity:0;transform:translateY(-8px)scale(.99)}to{opacity:1;transform:none}}.palette-field{align-items:center;gap:var(--sp-3);padding:var(--sp-4);border-bottom:1px solid var(--border);display:flex}.palette-field input{font:inherit;font-size:var(--t-lg);color:var(--text);background:0 0;border:none;outline:none;flex:1;min-width:0}.palette-kbd{font:inherit;font-size:var(--t-xs);color:var(--text-muted);background:var(--surface-sunken);border:1px solid var(--border);white-space:nowrap;border-radius:3px;padding:1px 5px;font-weight:600}.palette-list{max-height:46vh;padding:var(--sp-2);overflow-y:auto}.palette-group{font-size:var(--t-xs);color:var(--text-muted);padding:var(--sp-3) var(--sp-3) var(--sp-2);font-weight:600}.palette-item{align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-3);border-radius:var(--radius);font:inherit;text-align:left;cursor:pointer;color:var(--text);background:0 0;border:none;display:flex}.palette-item.active{background:var(--p-50)}.palette-item-icon{color:var(--text-muted);flex:none}.palette-item.active .palette-item-icon{color:var(--p-600)}.palette-item-main{font-size:var(--t-base);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.palette-item-hint{font-size:var(--t-sm);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:45%;padding-left:var(--sp-3);margin-left:auto;overflow:hidden}.palette-empty{padding:var(--sp-5) var(--sp-3);text-align:center;color:var(--text-secondary);font-size:var(--t-base)}.palette-foot{gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);background:var(--surface-sunken);font-size:var(--t-xs);color:var(--text-muted);display:flex}.palette-foot span{align-items:center;gap:4px;display:inline-flex}.rail-search{align-items:center;gap:var(--sp-3);margin:0 var(--sp-3) var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--nav-line);border-radius:var(--radius);background:var(--surface);color:var(--nav-text-dim);font:inherit;font-size:var(--t-md);cursor:pointer;transition:background-color .12s,color .12s;display:flex}.rail-search:hover{background:var(--nav-hover);color:var(--nav-text)}.rail-search .palette-kbd{background:var(--nav-chip);border-color:var(--nav-line);color:var(--nav-text-dim)}@media (prefers-reduced-motion:reduce){.palette-overlay,.palette{animation:none}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--scrim:#000000a8;--n-0:#1f1f1e;--n-25:#171716;--n-50:#2a2a28;--n-100:#353533;--n-200:#454542;--n-300:#5c5c58;--n-400:#8a8983;--n-500:#a9a8a1;--n-600:#c4c3bc;--n-700:#d9d8d1;--n-800:#e9e8e2;--n-900:#f3f2ec;--p-50:#1c2246;--p-100:#252e5e;--p-200:#334185;--p-500:#8ea2ff;--p-600:#a6b6ff;--p-700:#c3ceff;--p-900:#0f1430;--success:#8ea2ff;--success-bg:#1c2246;--warning:#f5e663;--warning-bg:#36321a;--danger:#ff8a80;--danger-bg:#3d1f1d;--redo:#ffb27a;--redo-bg:#3a2414;--redo-border:#9a5424;--surface-app:#121211;--surface:var(--n-0);--surface-sunken:var(--n-25);--surface-hover:var(--n-50);--border:var(--n-100);--border-strong:var(--n-200);--text:var(--n-900);--text-secondary:var(--n-500);--text-muted:var(--n-400);--text-inverse:#121211;--nav-bg:#191918;--accent:#8ea2ff;--focus-ring:0 0 0 3px #8ea2ff66;--shadow:0 1px 2px #0006;--band-bg:#2a2a28}:root[data-theme=dark] .badge-success{border-color:#334185}:root[data-theme=dark] .badge-warning{border-color:#5e5524}:root[data-theme=dark] .badge-danger{border-color:#6b302c}:root[data-theme=dark] .callout-warning{border-color:#5e5524}:root[data-theme=dark] .callout-danger{border-color:#6b302c}:root[data-theme=dark] .app-rail,:root[data-theme=dark] .app-topbar{background:var(--nav-bg)}.screen-enter{animation:.2s ease-out both screen-in}@keyframes screen-in{0%{opacity:0}to{opacity:1}}.hero .sheet-cell{animation:.26s ease-out both cell-in;animation-delay:calc(var(--cell-index,0) * 35ms)}@keyframes cell-in{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.card-head{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.card-head-title{align-items:center;gap:var(--sp-3);font-size:var(--t-lg);letter-spacing:-.015em;color:var(--text);min-width:0;margin:0;font-weight:600;display:flex}.card-head .card-head-title:after{content:none}.badge-row{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.topbar-icon,.topbar-account{border:1px solid var(--nav-line);border-radius:var(--radius);color:var(--nav-text-dim);cursor:pointer;background:0 0;place-items:center;padding:6px;display:grid}.topbar-account{border-color:#0000;padding:0}.topbar-icon:hover{background:var(--nav-hover);color:var(--nav-text)}.sheet-overlay{z-index:210;background:var(--scrim);align-items:flex-end;animation:.12s ease-out fade-in;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;padding:var(--sp-3) var(--sp-4) calc(var(--sp-4) + env(safe-area-inset-bottom,0px));gap:var(--sp-2);flex-direction:column;animation:.2s ease-out sheet-in;display:flex}@keyframes sheet-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.sheet-handle{background:var(--border-strong);width:36px;height:4px;margin:0 auto var(--sp-3);border-radius:999px}.sheet-identity{align-items:center;gap:var(--sp-3);padding-bottom:var(--sp-3);margin-bottom:var(--sp-2);border-bottom:1px solid var(--border);display:flex}.sheet-identity .rail-avatar{background:var(--highlight);color:var(--highlight-text);width:38px;height:38px;font-size:var(--t-base)}.sheet-name{font-size:var(--t-lg);font-weight:600;display:block}.sheet-role{font-size:var(--t-md);color:var(--text-secondary);display:block}.sheet-action{align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-3);border-radius:var(--radius);color:var(--text);font:inherit;font-size:var(--t-base);text-align:left;cursor:pointer;background:0 0;border:none;display:flex}.sheet-action:hover{background:var(--surface-hover)}.sheet-action.is-danger{color:var(--danger)}.sheet-close{margin-top:var(--sp-2);padding:var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text-secondary);font:inherit;font-size:var(--t-base);cursor:pointer;background:0 0;font-weight:500}@media (prefers-reduced-motion:reduce){.sheet-overlay,.sheet{animation:none}}@media (width<=768px){.main-container{padding:var(--sp-4) var(--sp-4) var(--sp-8)}.stats-grid{gap:var(--sp-2);grid-template-columns:repeat(2,1fr)}.stat-box{padding:var(--sp-3)}.stat-box .stat-value{font-size:1.375rem}.class-cards-grid,.report-cards-grid,.themes-grid,.grid-2{grid-template-columns:1fr}.tabs-nav{gap:var(--sp-4)}.tabs-nav.tabs-inset{padding:0 var(--sp-4)}.filters-bar{flex-direction:column;align-items:stretch}.filters-bar select,.filters-bar input,.field,.field-pad{font-size:16px}.info-card{padding:var(--sp-4)}table{font-size:.78125rem}thead th,tbody td{padding:var(--sp-2)}.btn{padding:var(--sp-2) var(--sp-3);min-height:32px}.btn-sm{padding:5px var(--sp-2);min-height:28px}.sheet-row>*{flex:100%}.sheet-row>:last-child{justify-content:flex-end}.modal-overlay{align-items:flex-end;padding:0}.modal-card{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:100%;max-height:92dvh;padding-bottom:env(safe-area-inset-bottom,0px)}.modal-header,.modal-footer{padding-left:var(--sp-4);padding-right:var(--sp-4)}.modal-body{padding:var(--sp-4)}}:is(body:has(.modal-overlay),body:has(.palette-overlay),body:has(.sheet-overlay)){overflow:hidden}:is(body:has(.modal-overlay) .app-tabbar,body:has(.sheet-overlay) .app-tabbar){display:none}.boot-wait{justify-content:center;align-items:center;gap:var(--sp-4);background:var(--bg);min-height:100dvh;color:var(--text-secondary);font-size:var(--t-sm);flex-direction:column;display:flex}.table-scroll{overflow-x:auto}.row-clickable{cursor:pointer}.row-clickable:hover{background:var(--surface-hover)}.text-right{text-align:right}.section-rule{align-items:center;gap:var(--sp-3);margin:var(--sp-5) 0 var(--sp-3);font-size:var(--t-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-weight:600;display:flex}.section-rule:after{content:"";background:var(--border);flex:1;height:1px}.pw-block{padding:var(--sp-3);background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-mono);font-size:var(--t-sm);word-break:break-all;-webkit-user-select:all;user-select:all;display:block}.decision-list{padding-left:var(--sp-5);margin:0}.decision-list li{margin-bottom:var(--sp-2);font-size:var(--t-sm)}.decision-list li:last-child{margin-bottom:0}@media (width<=899px){.btn,.btn-sm,.view-switch-btn,.rail-action,.topbar-icon,.filters-bar select,.filters-bar input,.field-pad,select{min-height:44px}.topbar-icon{min-width:44px}.topbar-account{min-width:44px;min-height:44px}.btn-link{align-items:center;min-height:44px;display:inline-flex}.queue-card-action{min-height:44px}}@media (width<=600px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid>.stat-box:last-child:nth-child(odd){grid-column:1/-1}.tabs-nav{gap:var(--sp-2);border-bottom:none;flex-wrap:wrap;overflow:visible}.tabs-nav .tab-btn{border:1px solid var(--border);padding:var(--sp-2) var(--sp-4);background:var(--surface);border-radius:999px;min-height:40px;margin-bottom:0}.tabs-nav .tab-btn.active{background:var(--highlight);border-color:var(--highlight);color:var(--highlight-text)}.tabs-nav.tabs-inset{padding:var(--sp-4) var(--sp-4) var(--sp-3)}.tabs-nav.tabs-inset .tab-btn{padding:var(--sp-2) var(--sp-3)}.queue-day-grid{scroll-snap-type:x mandatory;scroll-padding-left:var(--sp-4);gap:var(--sp-3);margin:0 calc(var(--sp-4) * -1);padding:0 var(--sp-4) var(--sp-2);scrollbar-width:none;display:flex;overflow-x:auto}.queue-day-grid::-webkit-scrollbar{display:none}.queue-card{scroll-snap-align:start;flex:0 0 78%}.wall{gap:var(--sp-2);grid-template-columns:repeat(2,minmax(0,1fr))}.wall-card{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3);flex-direction:column}.hero-head{flex-wrap:nowrap;align-items:center}.hero-head>:first-child{min-width:0}.hero-score{order:-1;align-items:center}.hero-score-label{display:none}.hero .sheet-legend{gap:var(--sp-2) var(--sp-4);font-size:var(--t-xs)}.class-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin-left:0;display:grid}.class-actions .btn{justify-content:center;width:100%}.class-actions .btn-primary{grid-column:1/-1}.info-card select.field-pad{width:100%}.table-wrapper{background:0 0;border:none;overflow:visible}.table-wrapper table,.table-wrapper tbody,.table-wrapper tr,.table-wrapper td{width:100%;display:block}.table-wrapper thead{display:none}.table-wrapper tr{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-3)}.table-wrapper tbody td{justify-content:space-between;align-items:center;gap:var(--sp-3);text-align:right;overflow-wrap:anywhere;border:none;min-width:0;padding:6px 0;display:flex}.table-wrapper tbody td:before{content:attr(data-label);text-align:left;max-width:45%;font-size:var(--t-sm);color:var(--text-secondary);flex:none}.table-wrapper tbody td[data-label=""]:before{display:none}.table-wrapper tbody td:first-child{text-align:left;font-size:var(--t-lg);padding-bottom:var(--sp-2);justify-content:flex-start}.table-wrapper tbody td:first-child:before{display:none}.table-wrapper tbody tr.urgent td:first-child,.table-wrapper tbody tr.warn td:first-child{box-shadow:none}.table-wrapper tbody tr.urgent{border-color:var(--danger)}.table-wrapper tbody tr.warn{border-color:var(--warning)}.table-wrapper tbody td:empty{display:none}.table-wrapper tbody td:has(button){padding-top:var(--sp-3);flex-wrap:wrap;justify-content:flex-start}.table-wrapper tbody td:has(button):before{display:none}.table-wrapper tbody td:has(button)>button{flex:auto;justify-content:center}.table-wrapper tbody td:has(button) .btn{flex:auto;justify-content:center}}input[type=date],input[type=time],input[type=datetime-local]{appearance:none;text-align:left;width:100%;min-width:0;max-width:100%}input[type=date]::-webkit-date-and-time-value{text-align:left}input[type=time]::-webkit-date-and-time-value{text-align:left}.sheet-row-title.is-empty{font-size:var(--t-md);color:var(--text-muted);font-style:italic}.sheet-row-toggle{border-radius:var(--radius);min-width:36px;min-height:36px;color:var(--p-500);cursor:pointer;background:0 0;border:none;place-items:center;transition:transform .15s;display:inline-grid}.sheet-row-toggle.is-open{transform:rotate(180deg)}@media (width<=600px){.sheet-row-title{flex-basis:100%}.sheet-row-toggle{min-width:44px;min-height:44px}.sheet-row>:last-child{justify-content:flex-start}.sheet-row-count{margin-right:auto}}.btn-dark{background:var(--text);color:var(--text-inverse);border:0}.btn-dark:hover:not(:disabled){opacity:.9}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.text-redo{color:var(--redo)}.review-overlay{justify-content:stretch;align-items:stretch;padding:0}.review-card{background:var(--surface-app);flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.review-head{align-items:center;gap:var(--sp-4);padding:var(--sp-4) max(var(--sp-6), calc((100% - 1320px) / 2));background:var(--surface);border-bottom:1px solid var(--border);display:flex}.review-back{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:44px;height:44px;color:var(--text);cursor:pointer;flex:none;justify-content:center;align-items:center;display:inline-flex}.review-head-main{flex-direction:column;gap:2px;min-width:0;display:flex}.review-code{font-family:var(--font-mono);font-weight:600;font-size:var(--t-sm);border-radius:var(--radius-sm);background:var(--p-50);color:var(--p-700);padding:2px 8px}.review-title{font-size:var(--t-xl);margin:0;line-height:1.25}.review-sub{font-size:var(--t-md);color:var(--text-secondary)}.review-tabs{display:none}.review-body{overscroll-behavior:contain;padding:var(--sp-5) max(var(--sp-6), calc((100% - 1320px) / 2)) var(--sp-8);gap:var(--sp-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.review-columns{gap:var(--sp-6);padding:0 var(--sp-5);font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);grid-template-columns:minmax(0,1fr) 380px;font-weight:700;display:grid}.review-columns .btn-link{text-transform:none;letter-spacing:0;font-size:var(--t-sm)}.review-settled{align-items:center;gap:var(--sp-2);width:100%;min-height:48px;padding:0 var(--sp-5);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);font:inherit;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;font-weight:600;display:flex}.review-settled svg{color:var(--p-500)}.review-row{gap:var(--sp-6);padding:var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:minmax(0,1fr) 380px;display:grid}.review-row.is-redo{border-color:var(--redo-border)}.review-text{gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.review-text h3{font-size:var(--t-base);align-items:center;gap:var(--sp-2);margin:0;display:flex}.review-changed{font-size:var(--t-xs);border-radius:var(--radius-sm);background:var(--highlight);color:var(--highlight-text);padding:1px 6px;font-weight:700}.review-now{font-size:var(--t-lg);white-space:pre-line;margin:0;line-height:1.6}.review-now.is-empty{color:var(--text-muted);font-style:italic}.review-before{white-space:pre-line;color:var(--text-muted);margin:0;line-height:1.5;text-decoration:line-through}.review-asked{font-size:var(--t-sm);color:var(--text-secondary);margin:0}.review-auto{gap:var(--sp-2);font-size:var(--t-sm);color:var(--text-secondary);background:var(--surface-sunken);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);align-items:flex-start;margin:0;line-height:1.5;display:flex}.review-auto svg{flex:none;margin-top:2px}.review-verdict{gap:var(--sp-3);flex-direction:column;min-width:0;display:flex}.review-verdict-label{font-weight:700;display:none}.review-seg{gap:var(--sp-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.review-seg button{border-radius:var(--radius);border:1.5px solid var(--border-strong);background:var(--surface);min-height:44px;color:var(--text-secondary);font:inherit;cursor:pointer;justify-content:center;align-items:center;gap:6px;font-weight:600;display:inline-flex}.review-seg .seg-ok.active{border-color:var(--p-500);background:var(--p-50);color:var(--p-700)}.review-seg .seg-redo.active{border-color:var(--redo);background:var(--redo-bg);color:var(--redo)}.review-comment{font-size:var(--t-sm);color:var(--text-secondary);flex-direction:column;gap:6px;font-weight:600;display:flex}.review-comment textarea{font:inherit;color:var(--text);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--radius);resize:vertical;background:var(--surface);font-weight:400}.review-foot{align-items:center;gap:var(--sp-3) var(--sp-5);padding:var(--sp-4) max(var(--sp-6), calc((100% - 1320px) / 2)) calc(var(--sp-4) + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border-strong);flex-wrap:wrap;display:flex;box-shadow:0 -6px 24px #2323230f}.review-foot-main{align-items:baseline;gap:var(--sp-1) var(--sp-4);flex-wrap:wrap;flex:320px;display:flex}.review-hint{color:var(--text-secondary);font-size:var(--t-md)}.review-grade{align-items:center;gap:var(--sp-2);font-size:var(--t-md);color:var(--text-secondary);display:flex}.review-grade input{width:80px;min-height:44px;font-family:var(--font-mono);padding:0 var(--sp-2);border:1px solid var(--border-strong);border-radius:var(--radius)}.review-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.review-actions .btn{min-height:48px;padding:0 var(--sp-5)}@media (width<=899px){.review-head{padding:var(--sp-3) var(--sp-4)}.review-title{font-size:var(--t-lg)}.review-tabs{background:var(--surface);border-bottom:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.review-tabs button{min-height:48px;font:inherit;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;gap:var(--sp-2);background:0 0;border:0;border-bottom:3px solid #0000;font-weight:500;display:inline-flex}.review-tabs button.active{border-bottom-color:var(--text);color:var(--text);font-weight:700}.review-tab-count{font-family:var(--font-mono);font-size:var(--t-xs);background:var(--redo-bg);color:var(--redo);border-radius:999px;padding:1px 8px}.review-body{padding:var(--sp-4) var(--sp-4) var(--sp-6)}.review-columns{display:none}.review-row{gap:var(--sp-3);padding:var(--sp-4);grid-template-columns:minmax(0,1fr)}.is-tab-fiche .review-verdict,.is-tab-grille .review-text{display:none}.is-tab-grille .review-verdict-label{display:block}.review-foot{padding:var(--sp-3) var(--sp-4) calc(var(--sp-3) + env(safe-area-inset-bottom))}.review-actions{grid-template-columns:minmax(0,1fr);width:100%;display:grid}.review-actions .hide-narrow{display:none}.review-hint{width:100%;font-size:var(--t-sm)}.review-foot{gap:var(--sp-2) var(--sp-4)}}.badge-redo{background:var(--redo-bg);color:var(--redo)}.redo-banner{padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);background:var(--redo-bg);color:var(--text);line-height:1.5}.redo-banner strong{color:var(--redo)}.redo-tag{margin-left:var(--sp-2);font-size:var(--t-xs);border-radius:var(--radius-sm);background:var(--redo-bg);color:var(--redo);padding:1px 6px;font-weight:700}@media (width<=599px){.modal-footer{flex-wrap:wrap}.modal-footer>.btn{flex:1 1 calc(50% - var(--sp-2));min-height:44px}.modal-footer>.btn-primary{flex-basis:100%;order:-1}}.resolve-form{gap:var(--sp-2);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border);flex-direction:column;display:flex}.chip{min-height:36px;padding:0 var(--sp-3);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;font-size:var(--t-md);cursor:pointer;border-radius:999px}.chip.active{border-color:var(--text);background:var(--text);color:var(--text-inverse)}@media (width<=899px){.chip{min-height:44px}}.next-session{padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-4);border:1.5px solid var(--highlight);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;gap:2px;display:flex}.next-session-tag{font-size:var(--t-xs);letter-spacing:.04em;text-transform:uppercase;border-radius:var(--radius-sm);background:var(--highlight);color:var(--highlight-text);align-self:flex-start;margin-bottom:4px;padding:1px 6px;font-weight:700}.data-list{margin:0 0 var(--sp-4);gap:var(--sp-2) var(--sp-4);grid-template-columns:160px minmax(0,1fr);display:grid}.data-list dt{font-weight:700}.data-list dd{color:var(--text-secondary);margin:0;line-height:1.5}@media (width<=599px){.data-list{grid-template-columns:minmax(0,1fr)}.data-list dd{margin-bottom:var(--sp-2)}}.callout-success{background:var(--success-bg);border-left:3px solid var(--success)}.btn-danger-outline{color:var(--danger);border-color:var(--danger)}.stat-box .stat-hint{font-size:var(--t-xs,.75rem);color:var(--text-muted);margin-top:var(--sp-1);display:block}.bars{margin:0}.bars-readout{font-size:var(--t-sm);color:var(--text-secondary);min-height:1.4em;margin-bottom:var(--sp-2)}.bars-readout-value{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.bars-svg{width:100%;height:auto;display:block;overflow:visible}.bars-baseline{stroke:var(--border-strong);stroke-width:1px}.bars-bar{fill:var(--p-500)}.bars-bar.is-hover{fill:var(--p-700)}.bars-tick{fill:var(--text-muted);font-size:8px}.bars-table{margin-top:var(--sp-2);font-size:var(--t-sm)}.bars-table summary{cursor:pointer;color:var(--text-secondary)}.bars-table table{margin-top:var(--sp-2)}.ops-list{gap:var(--sp-2);font-size:var(--t-sm);margin:0;padding:0;list-style:none;display:grid}.ops-list code{white-space:normal;word-break:break-word}.support-banner{z-index:60;align-items:center;gap:var(--sp-2) var(--sp-4);padding:var(--sp-2) var(--sp-4);background:var(--warning-bg);color:var(--text);border-bottom:2px solid var(--warning);font-size:var(--t-sm);flex-wrap:wrap;grid-column:1/-1;display:flex;position:sticky;top:0}.support-banner strong{color:var(--warning)}.support-banner .btn{margin-left:auto}.class-picker{gap:var(--sp-1) var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.signup-card{max-width:520px}.signup-title{font-size:var(--t-lg,1.125rem);margin:0 0 var(--sp-3);text-align:center;font-weight:600}.signup-kinds{gap:var(--sp-3);display:grid}.signup-kind{gap:var(--sp-1);text-align:left;cursor:pointer;padding:var(--sp-4);border:1px solid var(--border-strong);border-radius:var(--radius-sm,6px);background:var(--surface);color:var(--text);font:inherit;display:grid}.signup-kind:hover,.signup-kind:focus-visible{border-color:var(--p-500);background:var(--p-50)}.signup-kind-title{font-weight:600}.signup-kind-text{font-size:var(--t-sm);color:var(--text-secondary)}.login-signup{margin-top:var(--sp-4);text-align:center;font-size:var(--t-sm);color:var(--text-secondary)}
