:root{--ink: #1b2431;--ink-soft: #3d4a5c;--muted: #5c697a;--line: #d7dee8;--line-strong: #b9c4d2;--bg: #f3f5f9;--panel: #ffffff;--panel-soft: #f8fafc;--brand: #1f5f9e;--brand-strong: #174a7c;--brand-soft: #e8f1fb;--header-bg: #172333;--header-ink: #f4f7fb;--warn-bg: #fff7e6;--warn-line: #e5b567;--warn-ink: #7a4a00;--danger-bg: #fdecea;--danger-line: #e5a5a0;--danger-ink: #8c1d16;--info-bg: #eaf2fb;--info-line: #a9c6e6;--focus: #2563eb;--radius: 10px;--shadow: 0 1px 2px rgba(18, 32, 52, .08);color-scheme:light}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100vh;background:var(--bg);color:var(--ink);font-family:Segoe UI,Microsoft YaHei,PingFang SC,Noto Sans CJK SC,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.6}h1,h2,h3{line-height:1.3;margin:0 0 .4rem;color:var(--ink)}h1{font-size:1.75rem}h2{font-size:1.2rem}h3{font-size:1.05rem}p{margin:0 0 .6rem}ul,ol{margin:0;padding:0;list-style:none}a{color:var(--brand)}code{font-family:Cascadia Code,Consolas,Courier New,monospace;font-size:.9em;background:var(--panel-soft);border:1px solid var(--line);border-radius:4px;padding:.05rem .3rem;word-break:break-all}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.eyebrow{margin:0 0 .35rem;color:var(--muted);font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.small{font-size:.88rem}.lede{color:var(--ink-soft);max-width:78ch}.button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem .95rem;border:1px solid var(--line-strong);border-radius:8px;background:var(--panel);color:var(--ink);font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.button:disabled{cursor:not-allowed;opacity:.66}.button--primary:hover:not(:disabled){background:var(--brand-strong);color:#fff}.button--quiet{background:transparent;color:var(--header-ink);border-color:#ffffff5c;padding:.35rem .8rem}.button--quiet:hover:not(:disabled){border-color:#fff;color:#fff}.button--block{width:100%;margin-top:.35rem}.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .55rem;border:1px solid rgba(255,255,255,.28);border-radius:999px;color:var(--header-ink);font-size:.82rem;white-space:nowrap}.chip--warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink);font-weight:600}.chip--quiet{border-color:#ffffff29;color:#f4f7fbd1}.badge{display:inline-block;padding:.05rem .45rem;border-radius:6px;background:var(--brand-soft);color:var(--brand-strong);font-family:Cascadia Code,Consolas,monospace;font-size:.82rem;font-weight:700;vertical-align:middle}.tier{display:inline-block;min-width:2.2em;padding:.02rem .4rem;border-radius:6px;border:1px solid var(--line-strong);background:var(--panel-soft);color:var(--ink-soft);font-size:.78rem;font-weight:700;text-align:center}.tier--p0{background:var(--brand-soft);border-color:#b7cfe8;color:var(--brand-strong)}.tier--p1{background:#e8f6f2;border-color:#a9d6c8;color:#14614f}.tier--p2{background:#eceff3;color:var(--muted)}.status{display:inline-block;padding:.05rem .5rem;border-radius:999px;font-size:.8rem;font-weight:700;white-space:nowrap}.banner{border:1px solid var(--line);border-left-width:5px;border-radius:var(--radius);padding:.7rem .9rem;margin:0 0 1rem;color:var(--ink-soft)}.banner--notice{background:var(--info-bg);border-color:var(--info-line);border-left-color:var(--brand)}.banner--warn{background:var(--warn-bg);border-color:var(--warn-line);border-left-color:#b45309;color:var(--warn-ink)}.banner--info{background:var(--info-bg);border-color:var(--info-line);border-left-color:var(--brand)}.banner--stage{background:#fff9f0;border-color:#edd3ab;border-left-color:#b45309}.state-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;min-height:100vh;padding:2rem 1rem;text-align:center}.state-card{width:min(640px,100%);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.6rem;text-align:left}.state-message{font-size:1.05rem;font-weight:600}.spinner{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none;border-top-color:var(--line)}}.error-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.5rem 1rem;margin:1rem 0;padding:.75rem;background:var(--panel-soft);border:1px solid var(--line);border-radius:8px}.error-meta div{min-width:0}.error-meta dt{color:var(--muted);font-size:.8rem}.error-meta dd{margin:0;font-weight:600;word-break:break-all}.error-meta--compact{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin:.6rem 0 0;padding:.55rem}.error-notice{background:var(--danger-bg);border:1px solid var(--danger-line);border-left:5px solid #b42318;border-radius:var(--radius);color:var(--danger-ink);padding:.7rem .9rem;margin-bottom:1rem}.error-notice__title{font-weight:700}.empty-panel{background:var(--panel);border:1px dashed var(--line-strong);border-radius:var(--radius);padding:1.1rem 1.2rem;margin:1rem 0;color:var(--ink-soft)}.empty-panel h2{margin-bottom:.35rem}.login-shell{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:2rem;align-items:start;width:min(1120px,100%);margin:0 auto;padding:3rem 1.5rem}.login-intro h1{font-size:2.1rem;margin-bottom:.6rem}.login-intro .lede{font-size:1.02rem;margin-bottom:1rem}.login-facts{display:grid;gap:.4rem;color:var(--ink-soft);font-size:.92rem}.login-facts li:before{content:"·";margin-right:.45rem;color:var(--brand);font-weight:700}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px #12203414;padding:1.5rem}.login-card h2{margin-bottom:1rem}.login-form__fields{margin:0;padding:0;border:0;min-width:0}.login-form__fields[disabled]{opacity:.85}.field{margin-bottom:1rem}.field label{display:block;margin-bottom:.3rem;font-weight:600}.field select,.field input{width:100%;padding:.55rem .65rem;border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:var(--ink);font:inherit}.field select:focus-visible,.field input:focus-visible{border-color:var(--focus)}.field-hint{margin:.3rem 0 0;color:var(--muted);font-size:.85rem}.login-card__foot{margin:1rem 0 0;color:var(--muted);font-size:.85rem}.admin-shell{display:flex;flex-direction:column;min-height:100vh}.skip-link{position:absolute;left:.75rem;top:-60px;z-index:20;padding:.5rem .9rem;border-radius:8px;background:#fff;border:2px solid var(--focus);font-weight:700;text-decoration:none}.skip-link:focus{top:.75rem}.admin-header{position:sticky;top:0;z-index:10;display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center;justify-content:space-between;padding:.7rem 1.25rem;background:var(--header-bg);color:var(--header-ink);box-shadow:0 2px 8px #0a121e4d}.admin-header__brand{display:flex;align-items:center;gap:.7rem;min-width:0}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--brand);color:#fff;font-weight:800;letter-spacing:.02em}.admin-header__title{margin:0;font-weight:700}.admin-header__subtitle{margin:0;color:#f4f7fbb8;font-size:.82rem}.admin-header__session{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.admin-body{display:flex;flex:1;align-items:stretch;min-height:0}.admin-sidebar{display:flex;flex-direction:column;gap:1rem;width:272px;flex:0 0 272px;padding:1rem .75rem;background:var(--panel);border-right:1px solid var(--line)}.nav-list{display:grid;gap:.2rem}.nav-link{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .65rem;border-radius:8px;color:var(--ink-soft);text-decoration:none;font-weight:600;font-size:.93rem}.nav-link:hover{background:var(--panel-soft);color:var(--brand-strong)}.nav-link--active{background:var(--brand-soft);color:var(--brand-strong);box-shadow:inset 3px 0 0 var(--brand)}.nav-link__meta{color:var(--muted);font-size:.78rem;font-weight:500;white-space:nowrap}.nav-empty{margin:0;padding:.6rem .65rem;border:1px dashed var(--line-strong);border-radius:8px;color:var(--muted);font-size:.86rem}.sidebar-foot{display:grid;gap:.2rem;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--line);color:var(--muted);font-size:.78rem}.admin-main{display:flex;flex-direction:column;flex:1;min-width:0;padding:1rem 1.25rem 0}.admin-main>.banner{margin-bottom:.75rem}.admin-content{flex:1;width:min(1120px,100%);margin:0 auto;padding-bottom:1.5rem}.admin-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;width:min(1120px,100%);margin:0 auto;padding:.75rem 0;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}.page{padding:.5rem 0 1rem}.page-head{margin-bottom:1rem}.page-head h1{margin-bottom:.3rem}.page--state{max-width:720px;padding-top:2rem}.state-code{font-size:2.6rem;font-weight:800;color:var(--line-strong);letter-spacing:.05em}.page--state .button{margin-top:.75rem}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem;margin:0 0 .6rem}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.75rem .9rem;box-shadow:var(--shadow)}.stat-card dt{color:var(--muted);font-size:.82rem}.stat-card dd{margin:.1rem 0 0;font-size:1.5rem;font-weight:700}.stat-card__total{color:var(--muted);font-size:.95rem;font-weight:500}.module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.9rem;margin-top:.75rem}.module-card{display:flex;flex-direction:column;gap:.5rem;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.module-card h3{margin:0}.module-card__meta{margin:0;color:var(--muted);font-size:.85rem}.module-card__link{margin-top:auto;font-weight:600;font-size:.9rem;text-decoration:none}.module-card__link:hover{text-decoration:underline}.feature-chips{display:flex;flex-wrap:wrap;gap:.35rem}.feature-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.12rem .45rem;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);font-size:.8rem;color:var(--ink-soft)}.feature-list{display:grid;gap:.9rem}.feature-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.feature-card__head{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.6rem}.feature-card__title{flex:1 1 220px;margin:0;font-size:1.02rem}.feature-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.4rem 1rem;margin:0 0 .6rem}.feature-meta dt{color:var(--muted);font-size:.78rem}.feature-meta dd{margin:0;font-size:.9rem}.feature-acceptance{margin:0 0 .6rem;color:var(--ink-soft);font-size:.92rem}.feature-details{border-top:1px dashed var(--line);padding-top:.5rem}.feature-details summary{cursor:pointer;color:var(--brand);font-weight:600;font-size:.9rem}.feature-details dl{display:grid;gap:.5rem;margin:.6rem 0 0}.feature-details dt{color:var(--muted);font-size:.8rem;font-weight:600}.feature-details dd{margin:0;font-size:.9rem;color:var(--ink-soft)}@media(max-width:960px){.login-shell{grid-template-columns:1fr;gap:1.25rem;padding:1.5rem 1rem}.admin-body{flex-direction:column}.admin-sidebar{width:100%;flex:0 0 auto;border-right:0;border-bottom:1px solid var(--line)}.nav-list{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.sidebar-foot{margin-top:0}.admin-main{padding:.75rem}}.progress-panel{margin-top:2rem;padding:1rem 1.25rem;border:1px solid var(--border, #d8dde6);border-radius:10px;background:#fff}.progress-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.75rem 0 1rem}.progress-form label{font-weight:600}.progress-form input{flex:1 1 22rem;min-width:16rem;padding:.45rem .6rem;border:1px solid #b9c2cf;border-radius:6px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.progress-table{width:100%;border-collapse:collapse;margin:.75rem 0 1rem;font-size:.9rem}.progress-table th,.progress-table td{border-bottom:1px solid #e2e6ed;padding:.45rem .5rem;text-align:left;vertical-align:top}.progress-table thead th{background:#f4f6f9;font-weight:600}.progress-summary{margin:.5rem 0 .75rem}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(max-width:560px){.admin-header{padding:.65rem .75rem}.admin-header__title{font-size:.95rem}.admin-header__session{width:100%}h1{font-size:1.45rem}}.banner--ok{background:#e9f6ee;border:1px solid #9ccfae;color:#1c5b33}.b4-panel{margin:1.5rem 0;padding:1rem 1.25rem;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.b4-panel h2{margin:0 0 .5rem;font-size:1.15rem}.b4-form{display:flex;flex-direction:column;gap:.6rem;margin:.75rem 0}.b4-form--inline{flex-direction:row;flex-wrap:wrap;align-items:center;gap:.5rem}.b4-form-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.b4-form label{font-size:.85rem;color:var(--ink-soft)}.b4-form input,.b4-form select{padding:.35rem .5rem;border:1px solid var(--line-strong);border-radius:6px;font:inherit;min-width:12rem}.b4-metric-picker{border:1px solid var(--line);border-radius:8px;padding:.5rem .75rem;display:flex;flex-wrap:wrap;gap:.35rem 1rem}.b4-metric-picker legend{font-weight:600;padding:0 .35rem}.b4-metric-check{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem}.b4-snapshot{margin-top:1rem}.b4-snapshot__head p{margin:.2rem 0}.b4-metric-grid{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.75rem;padding:0;margin:.75rem 0}.b4-metric-card{border:1px solid var(--line);border-left:4px solid var(--line-strong);border-radius:8px;padding:.6rem .75rem;background:var(--panel-soft)}.b4-metric-card--good{border-left-color:#2f855a}.b4-metric-card--warn{border-left-color:#b7791f}.b4-metric-card--unknown{border-left-color:#718096;background:#f5f6f8}.b4-metric-card__id{margin:0;font-size:.85rem;color:var(--ink-soft)}.b4-metric-card__value{margin:.3rem 0;font-size:1.25rem;font-weight:700}.b4-table{width:100%;border-collapse:collapse;margin:.75rem 0;font-size:.9rem}.b4-table th,.b4-table td{border-bottom:1px solid var(--line);padding:.4rem .5rem;text-align:left;vertical-align:top}.b4-table th{background:var(--panel-soft);font-weight:600}.b4-row--selected{background:var(--brand-soft)}.b4-state{display:inline-block;padding:.1rem .45rem;border-radius:999px;font-size:.78rem;border:1px solid var(--line-strong);background:var(--panel-soft)}.b4-state--good{background:#e9f6ee;border-color:#9ccfae;color:#1c5b33}.b4-state--danger{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger-ink)}.b4-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}.b4-export-state,.b4-ticket-detail{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--line)}.b4-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.5rem;margin:.5rem 0 .75rem}.b4-facts dt{font-size:.78rem;color:var(--muted)}.b4-facts dd{margin:0}.b4-replies{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem}.b4-reply{border:1px solid var(--line);border-radius:8px;padding:.5rem .75rem;background:var(--panel-soft)}.b4-reply--internal{border-color:var(--warn-line);background:var(--warn-bg)}.b4-reply p{margin:.2rem 0}.b4-notifications{list-style:none;padding:0;margin:.5rem 0;display:flex;flex-direction:column;gap:.4rem}.b4-notification{border:1px solid var(--line);border-radius:8px;padding:.5rem .75rem;background:var(--panel-soft)}.b4-notification--unread{border-color:var(--brand-soft);background:var(--brand-soft)}.b4-notification p{margin:.15rem 0}:root{--ink: #1b2431;--ink-soft: #3d4a5c;--muted: #6b7787;--line: #dfe5ee;--line-strong: #c6cfdb;--bg: #f3f5f9;--panel: #ffffff;--panel-soft: #f7f9fc;--brand: #1f5f9e;--brand-strong: #174a7c;--brand-soft: #e8f1fb;--brand-tint: #f2f7fd;--header-bg: #ffffff;--header-ink: #1b2431;--warn-bg: #fff8ec;--warn-line: #e8cfa4;--warn-ink: #8a5a10;--danger-bg: #fdeeee;--danger-line: #e7b3ae;--danger-ink: #9d2c24;--info-bg: #f0f6fc;--info-line: #bcd6ea;--focus: #2563eb;--radius: 8px;--radius-sm: 4px;--shadow: 0 1px 2px rgba(18, 32, 52, .06);--shadow-hover: 0 6px 18px rgba(18, 32, 52, .08);--ease: cubic-bezier(.32, .72, 0, 1);color-scheme:light}body{font-size:13.5px;line-height:1.55;background:var(--bg)}h1{font-size:20px;font-weight:650;letter-spacing:-.01em}h2{font-size:15px;font-weight:650}h3{font-size:13.5px;font-weight:650}p{line-height:1.6}code{font-family:Cascadia Code,Consolas,Courier New,monospace;font-size:.92em;background:var(--panel-soft);border:1px solid var(--line);border-radius:3px;padding:.02rem .28rem;word-break:break-all}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.admin-header,.admin-shell>.admin-header{background:#fff;color:var(--ink);border-bottom:1px solid var(--line);box-shadow:none;padding:0 18px;gap:10px 16px;min-height:54px;display:flex;align-items:center;justify-content:space-between}.admin-header__brand{gap:9px}.admin-header__brand .brand-mark{width:26px;height:26px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.02em;background:linear-gradient(135deg,#1f5f9e,#3f88c5);box-shadow:0 2px 6px #1f5f9e47}.admin-header__title{font-size:13.5px;font-weight:650;line-height:1.25}.admin-header__subtitle{color:var(--muted);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;line-height:1.4}.admin-header__session{gap:5px}.admin-header .chip{border:1px solid var(--line);background:var(--panel-soft);color:var(--ink-soft);font-size:11px;padding:.14rem .5rem;border-radius:3px;line-height:1.5}.admin-header .chip--warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink);font-weight:600}.admin-header .chip--quiet{border-color:var(--line);color:var(--muted);background:transparent}.admin-header .button--quiet{border:1px solid var(--line);background:#fff;color:var(--ink-soft);font-size:11px;font-weight:500;padding:.3rem .7rem;border-radius:3px}.admin-header .button--quiet:hover{border-color:var(--brand);color:var(--brand)}.admin-shell{background:var(--bg)}.admin-body{min-height:calc(100vh - 54px)}.admin-sidebar{width:232px;flex:0 0 232px;padding:10px 8px 12px;gap:8px;background:#fff;border-right:1px solid var(--line)}.sidebar-label{margin:6px 0 2px;padding:0 10px;color:var(--ink-4, #98a2b3);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase}.nav-list{gap:2px}.nav-link{position:relative;padding:.34rem .62rem;border-radius:4px;color:var(--ink-soft);font-size:12.5px;font-weight:500;gap:6px;transition:background .16s var(--ease),color .16s var(--ease)}.nav-link:hover{background:var(--panel-soft);color:var(--ink)}.nav-link--active{background:var(--brand-soft);color:var(--brand);font-weight:600;box-shadow:none}.nav-link--active:before{content:"";position:absolute;left:-8px;top:6px;bottom:6px;width:2px;border-radius:2px;background:var(--brand)}.nav-link__meta{color:var(--muted);font-size:9.5px;font-family:Cascadia Code,Consolas,monospace;font-weight:500;padding:0 4px;border:1px solid var(--line);border-radius:2px;background:#fff}.nav-link--active .nav-link__meta{border-color:#bcd6ea;color:var(--brand);background:#fff}.nav-empty{padding:.55rem .62rem;border:1px dashed var(--line-strong);border-radius:var(--radius-sm);color:var(--muted);font-size:11px;line-height:1.55}.sidebar-foot{gap:2px;padding-top:8px;border-top:1px solid var(--line);color:var(--muted);font-size:10px;line-height:1.6}.admin-main{padding:12px 16px 0;background:var(--bg)}.admin-content{width:min(1280px,100%);padding-bottom:1.25rem}.admin-footer{width:min(1280px,100%);border-top:1px solid var(--line);padding:.55rem 0;font-size:10px;color:var(--muted)}.banner{border:1px solid var(--line);border-left-width:1px;border-radius:var(--radius-sm);padding:.5rem .7rem;margin:0 0 .75rem;color:var(--ink-soft);font-size:11.5px;line-height:1.6;display:flex;gap:.4rem;flex-wrap:wrap}.banner strong{color:var(--ink)}.banner--notice,.banner--info{background:var(--info-bg);border-color:var(--info-line)}.banner--notice strong,.banner--info strong{color:var(--brand-strong)}.banner--warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}.banner--warn strong{color:var(--warn-ink)}.banner--ok{background:#eef7f2;border-color:#b9ddc9;color:#1c5b3c}.banner--ok strong{color:#14614f}.banner--stage{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}.button{padding:.4rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--line-strong);font-size:12px;font-weight:600;transition:background .16s var(--ease),border-color .16s var(--ease),color .16s var(--ease),transform .16s var(--ease)}.button:hover{border-color:var(--brand);color:var(--brand-strong)}.button:active{transform:translateY(1px)}.button--primary{background:var(--brand);border-color:var(--brand);color:#fff}.button--primary:hover:not(:disabled){background:var(--brand-strong);border-color:var(--brand-strong);color:#fff}.button--quiet{background:transparent;color:var(--ink-soft);border-color:var(--line);font-weight:500;padding:.3rem .7rem}.button--quiet:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.button--block{margin-top:.3rem}.badge{padding:.02rem .4rem;border-radius:3px;font-size:.82em;font-weight:600}.tier{min-width:2em;padding:.02rem .34rem;border-radius:3px;font-size:.78em;font-weight:600;border-width:1px}.tier--p0{background:#fdeeee;border-color:#e7b3ae;color:#9d2c24}.tier--p1{background:#fff8ec;border-color:#e8cfa4;color:#8a5a10}.tier--p2{background:#eef2f7;border-color:#dfe5ee;color:var(--muted)}.status{padding:.04rem .44rem;border-radius:3px;font-size:.78em;font-weight:600}.status--pending{background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn-ink)}.page{animation:v2-fade-up .34s var(--ease) both}.page-head{margin-bottom:.7rem}.page-head__title{display:flex;align-items:center;gap:.5rem;margin:0 0 .3rem}.page-head__icon{width:30px;height:30px;flex:none;display:inline-grid;place-items:center;border-radius:9px;background:var(--brand-soft);color:var(--brand);border:1px solid #d3e4f5}.eyebrow{margin:0 0 .25rem;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.eyebrow .badge{font-size:.85em}.lede{color:var(--muted);font-size:11.5px;line-height:1.6;max-width:82ch}.muted{color:var(--muted)}.small{font-size:11px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:10px;margin:0 0 .9rem}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:9px 11px;min-width:0;transition:border-color .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease)}.stat-card:hover{border-color:#c6cfdb;box-shadow:var(--shadow-hover);transform:translateY(-1px)}.stat-card dt{color:var(--muted);font-size:10.5px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-card dd{margin:2px 0 0;font-size:21px;font-weight:650;letter-spacing:-.015em;line-height:1.15;font-variant-numeric:tabular-nums;color:var(--ink)}.stat-card__total{color:var(--muted);font-size:11px;font-weight:400;letter-spacing:0}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:.4rem 0 1rem}.module-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 11px;display:flex;flex-direction:column;gap:5px;transition:border-color .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease)}.module-card:hover{border-color:#bcd6ea;box-shadow:var(--shadow-hover);transform:translateY(-1px)}.module-card h3{font-size:13px;margin:0}.module-card h3 a{color:var(--ink);text-decoration:none}.module-card h3 a:hover{color:var(--brand)}.module-card__meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0;color:var(--muted);font-size:10.5px}.module-card__link{margin-top:auto;font-size:11px;color:var(--brand);text-decoration:none;display:inline-flex;align-items:center;gap:3px}.module-card__link:hover{color:var(--brand-strong);text-decoration:underline}.module-card__state{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;padding:.04rem .4rem;border-radius:2px;border:1px solid var(--line);color:var(--muted);background:var(--panel-soft);white-space:nowrap}.module-card__state--ok{background:#eef7f2;border-color:#b9ddc9;color:#14614f}.module-card__state--blocked{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}.module-card__state--pending{background:#eef2f7;color:var(--muted)}.feature-chips{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none}.feature-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);background:#fff;border-radius:2px;padding:.02rem .36rem;font-size:9.5px;color:var(--ink-soft);white-space:nowrap}.feature-chip .tier{font-size:8.5px;min-width:auto;padding:0 .24rem}.feature-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:.2rem 0 .7rem}.feature-card{list-style:none;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:9px 11px;min-width:0;transition:border-color .16s var(--ease),box-shadow .16s var(--ease)}.feature-card:hover{border-color:#bcd6ea;box-shadow:var(--shadow)}.feature-card__head{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.feature-card__icon{color:var(--brand);opacity:.72;flex:none;margin-top:1px}.feature-card__title{font-size:12.5px;margin:0;font-weight:650}.feature-card__head .status{margin-left:auto}.feature-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 10px;margin:6px 0 0}.feature-meta div{min-width:0}.feature-meta dt{color:var(--muted);font-size:9.5px;margin:0}.feature-meta dd{margin:0;font-size:10.5px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis}.feature-acceptance{margin:6px 0 0;font-size:10.5px;line-height:1.55;color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.feature-acceptance strong{color:var(--ink)}.feature-details{margin-top:5px}.feature-details summary{cursor:pointer;color:var(--brand);font-size:10px;outline-offset:2px}.feature-details dl{margin:6px 0 0;display:grid;gap:4px}.feature-details dt{color:var(--muted);font-size:9.5px}.feature-details dd{margin:0;font-size:10.5px;line-height:1.5;color:var(--ink-soft)}.b4-panel,.progress-panel,.b4-ticket-detail,.b4-notifications{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;margin:0 0 .9rem}.b4-panel h2,.progress-panel h2{font-size:13px;margin-bottom:.3rem}.b4-panel>p.muted,.progress-panel>p.muted{font-size:10.5px;line-height:1.55}.b4-form{display:flex;flex-direction:column;gap:6px;margin:.5rem 0 .7rem}.progress-form{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:.5rem 0 .7rem}.progress-form label{font-size:10.5px;color:var(--muted)}.progress-form input{flex:0 1 300px;min-width:0;height:26px;padding:0 7px;border:1px solid var(--line);border-radius:3px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}.b4-form-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;color:var(--ink-soft)}.b4-form-row label{color:var(--muted);font-size:10.5px}.b4-panel .empty-panel{margin:.5rem 0 0}.b4-form-row input:not([type=checkbox]):not([type=radio]),.b4-form-row select,.b4-form input:not([type=checkbox]):not([type=radio]),.b4-form select{height:26px;border:1px solid var(--line);border-radius:3px;background:#fff;color:var(--ink);font:inherit;font-size:11px;padding:0 7px;min-width:120px}.b4-form-row input:focus-visible,.b4-form-row select:focus-visible{border-color:var(--focus)}.b4-form--inline{flex-direction:row;flex-wrap:wrap}.b4-metric-picker{margin:0;padding:7px 9px;border:1px solid var(--line);border-radius:var(--radius-sm);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px 10px;align-items:center}.b4-metric-picker legend{padding:0 4px;color:var(--muted);font-size:10px}.b4-metric-check{display:inline-flex;align-items:center;gap:5px;min-width:0;font-size:10px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.b4-metric-check input[type=checkbox],.b4-form input[type=checkbox]{width:13px;height:13px;min-width:0;margin:0;padding:0;accent-color:var(--brand);flex:none}.b4-metric-check span{min-width:0;overflow:hidden;text-overflow:ellipsis}.b4-metric-check code{font-size:9px}.b4-snapshot{margin-top:.4rem}.b4-snapshot__head p{font-size:10.5px;color:var(--ink-soft);line-height:1.6;margin:0 0 3px}.b4-metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:.4rem 0 0;padding:0;list-style:none}.b4-metric-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:6px 8px;min-width:0}.b4-metric-card__id{font-size:9.5px;color:var(--muted);margin:0}.b4-metric-card__value{font-size:16px;font-weight:650;font-variant-numeric:tabular-nums;margin:2px 0;letter-spacing:-.01em}.b4-metric-card .muted.small{font-size:9px;line-height:1.45}.b4-metric-card details summary{font-size:9.5px;color:var(--brand);cursor:pointer}.b4-metric-card details p{font-size:9.5px;line-height:1.5;margin:3px 0 0}.b4-metric-card--ok{border-color:#b9ddc9;background:#f5fbf8}.b4-metric-card--warn{border-color:var(--warn-line);background:var(--warn-bg)}.b4-metric-card--danger{border-color:var(--danger-line);background:var(--danger-bg)}.b4-facts{display:grid;gap:3px;margin:.4rem 0}.b4-facts div{display:flex;gap:6px;font-size:10.5px}.b4-facts dt{color:var(--muted);min-width:84px}.b4-facts dd{margin:0;color:var(--ink-soft)}.b4-table,.progress-table{width:100%;border-collapse:separate;border-spacing:0;font-size:11px}.b4-table th,.progress-table th{text-align:left;font-weight:500;font-size:10px;color:var(--muted);background:#fbfcfe;border-bottom:1px solid var(--line);padding:4px 7px;white-space:nowrap}.b4-table td,.progress-table td{padding:4px 7px;border-bottom:1px solid #f0f3f8;vertical-align:middle;white-space:nowrap}.b4-table tbody tr,.progress-table tbody tr{cursor:pointer;transition:background .14s var(--ease)}.b4-row--selected{background:var(--brand-tint)}.b4-state{display:inline-flex;align-items:center;padding:.02rem .4rem;border-radius:2px;border:1px solid var(--line);background:var(--panel-soft);color:var(--ink-soft);font-size:9.5px;white-space:nowrap}.b4-state--ok{background:#eef7f2;border-color:#b9ddc9;color:#14614f}.b4-state--warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}.b4-state--muted{background:#eef2f7;color:var(--muted)}.b4-ticket-detail h2,.b4-ticket-detail h3{font-size:13px}.b4-notifications{list-style:none;padding:0}.b4-notifications>li,.b4-notification{border-bottom:1px solid #f0f3f8}.b4-notification{padding:6px 8px;font-size:11px;display:flex;gap:8px;align-items:baseline}.b4-notification--unread{background:var(--brand-tint)}.b4-replies{list-style:none;padding:0;margin:.4rem 0;display:grid;gap:4px}.b4-reply{border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 8px;font-size:11px;background:#fff}.b4-reply--internal{background:var(--warn-bg);border-color:var(--warn-line)}.b4-actions{display:flex;gap:6px;flex-wrap:wrap}.b4-export-state{font-size:9.5px}.login-shell{grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:2.4rem;width:min(1080px,100%);min-height:100vh;align-items:center;padding:2rem 1.5rem}.login-intro h1{font-size:26px;letter-spacing:-.02em}.login-intro .lede{font-size:12px}.login-facts{font-size:11.5px;color:var(--ink-soft)}.login-card{border-radius:12px;border:1px solid var(--line);box-shadow:var(--shadow-hover);padding:1.35rem}.login-card h2{font-size:14px}.field label{font-size:11px}.field select,.field input{border-radius:var(--radius-sm);padding:.45rem .55rem;font-size:12.5px}.field-hint,.login-card__foot{font-size:10.5px}.state-screen{background:var(--bg);gap:.6rem}.state-card{border-radius:12px;padding:1.4rem;max-width:620px}.state-message{font-size:13px}.page--state{min-height:60vh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.state-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.15rem 1.3rem 1.25rem;max-width:560px;animation:v2-fade-up .34s var(--ease) both}.state-panel__top{display:flex;align-items:center;gap:.65rem;margin-bottom:.55rem}.state-panel__icon{width:38px;height:38px;flex:none;display:inline-grid;place-items:center;border-radius:10px;background:var(--brand-soft);color:var(--brand);border:1px solid #d3e4f5}.state-code{margin:0;font-size:24px;font-weight:800;line-height:1;letter-spacing:.04em;color:var(--brand)}.state-panel h1{font-size:15.5px;margin:0 0 .35rem}.state-panel p{font-size:11.5px;line-height:1.6;margin:0 0 .4rem}.state-panel__action{margin-top:.55rem}.spinner{width:28px;height:28px;border-width:2.5px}.error-notice{border-left-width:1px;border-radius:var(--radius-sm);font-size:11.5px}.error-meta{border-radius:var(--radius-sm);padding:.6rem;font-size:10.5px}.error-meta dt{font-size:9.5px}.empty-panel{border-radius:var(--radius);padding:.9rem 1rem;font-size:11.5px}.empty-panel h2{font-size:13px}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes v2-fade-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.stat-card,.module-card,.feature-card,.b4-panel{animation:v2-fade-up .36s var(--ease) both}.stat-card:nth-child(2){animation-delay:.03s}.stat-card:nth-child(3){animation-delay:.06s}.stat-card:nth-child(4){animation-delay:.09s}.stat-card:nth-child(5){animation-delay:.12s}.stat-card:nth-child(6){animation-delay:.15s}.stat-card:nth-child(7){animation-delay:.18s}@media(prefers-reduced-motion:reduce){.page,.stat-card,.module-card,.feature-card,.b4-panel,.state-panel{animation:none}.stat-card:hover,.module-card:hover{transform:none}}@media(max-width:1180px){.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.b4-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.admin-sidebar{width:196px;flex-basis:196px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.module-grid,.feature-list{grid-template-columns:minmax(0,1fr)}.feature-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.login-shell{grid-template-columns:minmax(0,1fr);gap:1.2rem;padding:2rem 1rem}}.ico{flex:none;display:inline-block;vertical-align:-2px}.panel-title{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:650;margin:0 0 .35rem}.panel-title .ico{color:var(--brand)}.page-head{margin-bottom:.55rem}.page-head--compact{margin-bottom:.5rem}.page-head__row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;min-width:0}.page-head__row h1{margin:0;font-size:18px}.page-tag{display:inline-flex;align-items:center;height:18px;padding:0 6px;border:1px solid var(--line);border-radius:3px;background:var(--panel-soft);color:var(--ink-3);font-size:9.5px;font-weight:600;white-space:nowrap}.page-head__meta{color:var(--muted);font-size:10.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.caliber{margin:0 0 .6rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:.3rem .55rem;font-size:10.5px;color:var(--ink-3)}.caliber summary{cursor:pointer;color:var(--brand);font-weight:600;outline-offset:2px}.caliber[open] summary{margin-bottom:.25rem}.caliber p{margin:0;line-height:1.6}.b4-panel>p.muted,.progress-panel>p.muted{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.feature-acceptance{-webkit-line-clamp:2}.admin-content,.admin-footer{width:100%;max-width:none}.home-grid{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:8px;margin:0 0 .7rem;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:9px 11px;min-width:0}.panel-hd{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:650;margin-bottom:8px;min-width:0}.panel-hd>.ico{color:var(--brand)}.panel-hd__aux{margin-left:auto;color:var(--muted);font-size:9.5px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mx-wrap{min-width:0}.mx{display:flex;flex-direction:column;gap:3px}.mx-row,.mx-head-row{display:grid;grid-template-columns:128px repeat(5,minmax(0,1fr));gap:3px;align-items:center}.mx-label{display:flex;align-items:center;gap:5px;min-width:0;font-size:10.5px;color:var(--ink-2)}.mx-label--head{color:var(--muted);font-size:9px}.mx-label .badge{font-size:8.5px;padding:0 3px;flex:none}.mx-label .ico{color:var(--ink-3)}.mx-link{color:var(--ink);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mx-link:hover{color:var(--brand);text-decoration:underline}.mx-head{text-align:center;font-family:Cascadia Code,Consolas,monospace;font-size:8.5px;color:var(--ink-4, #98a2b3)}@keyframes v2-pop{0%{opacity:0;transform:scaleY(.4)}to{opacity:1;transform:none}}.mx-cell{height:16px;border-radius:2px;background:#eef2f7;cursor:default;transition:transform .14s var(--ease),filter .14s var(--ease);animation:v2-pop .32s var(--ease) both}.mx-cell:hover{transform:scaleY(1.2);filter:brightness(.96)}.mx-cell--rfc{background:#e8a33d}.mx-cell--pending{background:#dfe5ed}.mx-cell--p2{background:repeating-linear-gradient(135deg,#e9eef4 0 4px,#f6f8fb 4px 8px)}.mx-row--dim .mx-label{opacity:.55}.mx-row--dim .mx-cell{opacity:.4}.mx-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:7px;font-size:9.5px;color:var(--ink-3)}.mx-legend i{width:10px;height:9px;border-radius:2px;display:inline-block;margin-right:4px;vertical-align:-1px}.mx-legend__note{margin-left:auto;color:var(--muted)}.dial{display:flex;align-items:center;gap:10px;margin-bottom:8px}.dial__svg{width:66px;height:66px;flex:none;transform:rotate(-90deg)}.dial__svg .ring-track{fill:none;stroke:#eef2f7;stroke-width:6}.dial__svg .ring-val{fill:none;stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .9s var(--ease)}.dial__num{margin:0;font-size:20px;font-weight:650;letter-spacing:-.015em;font-variant-numeric:tabular-nums;line-height:1.1}.dial__total{color:var(--muted);font-size:11px;font-weight:400}.dial__cap{margin:1px 0 0;font-size:10px;color:var(--muted);line-height:1.5}.dial__cap strong{color:var(--ink);font-variant-numeric:tabular-nums}.catbars__cap{margin:5px 0 4px;font-size:10.5px;font-weight:600;color:var(--ink-2)}.catbars__cap:first-child{margin-top:0}.catbars__cap .muted{font-weight:400}.vbars{display:flex;flex-direction:column;gap:5px}.vbar{display:grid;grid-template-columns:48px minmax(0,1fr) 24px;gap:6px;align-items:center;font-size:10px;color:var(--ink-2)}.vbar__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vbar__track{display:block;height:5px;border-radius:2px;background:#eef2f7;overflow:hidden}.vbar__fill{display:block;height:100%;border-radius:2px;background:var(--brand)}.vbar em{font-style:normal;font-family:Cascadia Code,Consolas,monospace;font-size:9.5px;color:var(--muted);text-align:right}.stack{display:flex;height:9px;border-radius:2px;overflow:hidden;margin-bottom:2px}.stack__seg{display:block;height:100%}.stack__seg--0{background:var(--brand)}.stack__seg--1{background:#5f95c1}.stack__seg--2{background:#c6cfdb}.stat-card dt{display:flex;align-items:center;gap:5px}.stat-card dt .ico{color:var(--ink-4)}.module-card h3 a{display:flex;align-items:center;gap:6px}.nav-link__main{display:flex;align-items:center;gap:6px;min-width:0}.nav-link__main .ico{color:var(--ink-3);transition:color .16s var(--ease)}.nav-link:hover .nav-link__main .ico{color:var(--ink-2)}.nav-link--active .nav-link__main .ico{color:var(--brand)}.sticker-svg{display:inline-block;filter:drop-shadow(0 2px 3px rgba(16,24,40,.16));vertical-align:-8px;margin-left:4px}.login-sticker{vertical-align:-4px}.empty-panel{position:relative}.empty-panel__sticker{position:absolute;right:10px;top:8px}.b4-panel,.progress-panel{margin:0 0 .6rem}.module-grid{margin-bottom:.7rem}.stat-grid{margin-bottom:.55rem}@media(max-width:1100px){.home-grid{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.mx-cell{animation:none}.dial__svg .ring-val{transition:none}}.chart-panel{margin:0 0 .6rem}.chart-duo{display:grid;grid-template-columns:1.1fr 1.1fr .8fr;gap:14px;align-items:start}.lchart--bars{padding-top:2px}.lchart--bars .vbars{gap:6px}.lchart{margin:0;min-width:0}.lchart figcaption{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:600;color:var(--ink-2);margin-bottom:2px}.lchart-svg{width:100%;height:auto;display:block;overflow:visible}.lc-grid{stroke:#eef2f7;stroke-width:1;shape-rendering:crispEdges}.lc-y,.lc-x{fill:var(--muted);font-family:Cascadia Code,Consolas,monospace;font-size:9px}.lc-line{fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:v2-draw .9s var(--ease) forwards}.lc-area,.lc-dot,.lc-enddot,.lc-end{opacity:0;animation:v2-fade-in .4s var(--ease) .75s forwards}.lc-dot{stroke:#fff;stroke-width:1}.lc-end{font-size:10px;font-weight:650;font-variant-numeric:tabular-nums}@keyframes v2-draw{to{stroke-dashoffset:0}}@keyframes v2-fade-in{to{opacity:1}}@media(max-width:1100px){.chart-duo{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.lc-line{animation:none;stroke-dashoffset:0}.lc-area,.lc-dot,.lc-enddot,.lc-end{animation:none;opacity:1}}.b4-table,.progress-table{border-collapse:separate;border-spacing:0;width:100%;border:1px solid var(--line);border-radius:6px;overflow:hidden;font-size:11px;margin:.45rem 0 .6rem}.b4-table th,.progress-table th{position:sticky;top:0;z-index:1;background:linear-gradient(180deg,#fbfcfe,#f5f7fb);border-bottom:1px solid var(--line);padding:6px 9px;font-size:10px;font-weight:600;letter-spacing:.02em;color:var(--ink-3);text-align:left;white-space:nowrap}.b4-table th:first-child,.progress-table th:first-child{border-top-left-radius:6px}.b4-table th:last-child,.progress-table th:last-child{border-top-right-radius:6px}.b4-table td,.progress-table td{padding:6px 9px;border-bottom:1px solid #f1f4f8;vertical-align:middle;white-space:nowrap;color:var(--ink-soft)}.b4-table tbody td:first-child,.progress-table tbody td:first-child{font-weight:600;color:var(--ink)}.b4-table tbody tr:last-child td:first-child,.progress-table tbody tr:last-child td:first-child{border-bottom-left-radius:6px}.b4-table tbody tr:last-child td:last-child,.progress-table tbody tr:last-child td:last-child{border-bottom-right-radius:6px}.b4-table tbody tr,.progress-table tbody tr{transition:background .14s var(--ease)}.b4-table tbody tr:nth-child(2n),.progress-table tbody tr:nth-child(2n){background:#fcfdff}.b4-row--selected{background:var(--brand-tint);box-shadow:inset 2px 0 0 var(--brand)}.b4-metric-picker{gap:4px 6px}.b4-metric-check{border:1px solid var(--line);border-radius:3px;background:#fff;padding:3px 8px 3px 6px;transition:border-color .14s var(--ease),background .14s var(--ease),color .14s var(--ease)}.b4-metric-check:hover{border-color:#9fc3e4}.b4-metric-check:has(input:checked){background:var(--brand-soft);border-color:#9fc3e4;color:var(--brand);font-weight:600}.b4-metric-check:has(input:checked) code{color:var(--brand);border-color:#c9dcf0;background:#fff}.b4-metric-check input[type=checkbox]{accent-color:var(--brand)}.mx-head-row{padding-bottom:4px;border-bottom:1px solid var(--line);margin-bottom:4px}.mx-row{padding:1px 4px;margin:0 -4px;border-radius:4px;transition:background .14s var(--ease)}.mx-row:hover{background:#1f5f9e0b}.mx-row:hover .mx-link{color:var(--brand)}.mx-cell{height:14px;border-radius:3px;box-shadow:inset 0 0 0 1px #1018280d}.mx-cell--covered{background:var(--brand)}.mx-cell--rfc{background:#f0b45c}.mx-cell--pending{background:#e3e9f1}.mx-cell--p2{background:repeating-linear-gradient(135deg,#edf1f7 0 4px,#f8fafc 4px 8px)}.b4-notifications{display:flex;flex-direction:column;gap:6px;margin:0 0 .5rem;padding:0;list-style:none}.b4-notification{border:1px solid var(--line);border-radius:6px;background:#fff;padding:7px 9px;transition:border-color .14s var(--ease),background .14s var(--ease)}.b4-notification:hover{border-color:#c6cfdb}.b4-notification p{margin:0;font-size:11px;line-height:1.5}.b4-notification p+p{margin-top:3px}.b4-notification .badge{font-size:9px;margin-right:4px}.b4-notification--unread{background:var(--brand-tint);border-color:#c9dcf0;box-shadow:inset 2px 0 0 var(--brand)}.b4-form input,.b4-form select,.progress-form input{border-radius:3px;transition:border-color .14s var(--ease),box-shadow .14s var(--ease)}.b4-form input:focus-visible,.b4-form select:focus-visible,.progress-form input:focus-visible{outline:none;border-color:var(--focus);box-shadow:0 0 0 2px #2563eb1a}.b4-form-row .button,.progress-form .button{height:26px;padding:0 10px;font-size:11px}.badge{font-size:.76em;padding:.03rem .34rem}.b4-table,.progress-table{border:0;border-radius:8px;box-shadow:0 1px 2px #1018280f,0 0 0 1px #1018280a;background:#fff;font-size:11.5px}.b4-table th,.b4-table thead th,.progress-table th,.progress-table thead th{background:var(--brand)!important;color:#fff!important;font-weight:600;font-size:10.5px;letter-spacing:.03em;padding:7px 10px;border-bottom:0}.b4-table th:first-child,.progress-table th:first-child{border-top-left-radius:8px}.b4-table th:last-child,.progress-table th:last-child{border-top-right-radius:8px}.b4-table td,.progress-table td{padding:7px 10px;border-bottom:1px solid #eef2f7;font-variant-numeric:tabular-nums}.b4-table tbody tr:nth-child(2n),.progress-table tbody tr:nth-child(2n){background:#f7f9fc}.b4-table tbody tr:hover,.progress-table tbody tr:hover{background:var(--brand-tint)}.b4-table tbody tr:last-child td,.progress-table tbody tr:last-child td{border-bottom:0}.b4-table tbody tr:last-child td:first-child,.progress-table tbody tr:last-child td:first-child{border-bottom-left-radius:8px}.b4-table tbody tr:last-child td:last-child,.progress-table tbody tr:last-child td:last-child{border-bottom-right-radius:8px}.b4-table td code,.progress-table td code{background:transparent;border:0;padding:0;color:var(--ink-2)}.b4-row--selected{background:linear-gradient(90deg,var(--brand) 0%,#3f88c5 100%)!important;box-shadow:0 2px 8px #1f5f9e59}.b4-row--selected td,.b4-row--selected td code{color:#fff!important;font-weight:650}.b4-row--selected .b4-state{background:#ffffff2e;border-color:#ffffff73;color:#fff}.rank-table tbody tr:first-child td{background:linear-gradient(90deg,var(--brand) 0%,#3f88c5 100%);color:#fff;font-weight:650}.rank-table tbody tr:first-child td .rank-link,.rank-table tbody tr:first-child td .ico{color:#fff}.rank-table tbody tr:first-child td .module-card__state{background:#ffffff29;border-color:#fff6;color:#fff}.rank-chip{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;background:var(--panel-soft);border:1px solid var(--line);color:var(--ink-3);font-family:Cascadia Code,Consolas,monospace;font-size:10px;font-weight:600;font-variant-numeric:tabular-nums}.rank-chip--1,.rank-table tbody tr:first-child .rank-chip{background:#fff3;border-color:#ffffff80;color:#fff}.rank-link{display:inline-flex;align-items:center;gap:6px;color:var(--ink);text-decoration:none}.rank-link:hover{color:var(--brand);text-decoration:underline}.rank-link .ico{color:var(--brand)}.rank-table tbody tr:first-child .rank-link:hover{color:#fff}.callout-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:2px 0 8px}.callout-row+.callout-row{margin-top:-4px}.callout{display:flex;align-items:center;gap:7px;min-width:0;border:1px solid var(--line);border-radius:6px;background:var(--panel-soft);padding:6px 9px;font-size:10.5px;color:var(--ink-2);line-height:1.45}.callout .ico{color:var(--brand);flex:none}.callout b{color:var(--ink);font-variant-numeric:tabular-nums}.callout span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-stack{display:grid;gap:8px;min-width:0;align-content:start}@media(max-width:1100px){.callout-row{grid-template-columns:minmax(0,1fr)}}.mx-flex{display:flex;gap:16px;align-items:flex-start;min-width:0}.mx-wrap{flex:0 1 auto;min-width:0}.mx-row,.mx-head-row{grid-template-columns:116px repeat(5,minmax(30px,52px))}.mx-cell{height:16px}.mx-side{flex:1 1 0;min-width:150px;align-self:stretch;display:flex;flex-direction:column;gap:6px;padding:8px 10px;border-left:1px solid var(--line);background:var(--panel-soft);border-radius:0 6px 6px 0}.mx-side__cap{margin:0;font-size:9.5px;font-weight:600;letter-spacing:.06em;color:var(--ink-4, #98a2b3);text-transform:uppercase}.mx-side__cap:not(:first-child){margin-top:4px}.mx-side__legend{display:flex;flex-direction:column;gap:5px;font-size:10.5px;color:var(--ink-2)}.mx-side__legend span{display:flex;align-items:center;gap:6px}.mx-side__legend i{width:22px;height:12px;border-radius:3px;flex:none}.mx-side__note{margin:0;font-size:10px;line-height:1.65;color:var(--ink-3)}@media(max-width:1180px){.mx-flex{flex-direction:column}.mx-side{border-left:0;border-top:1px solid var(--line);border-radius:0 0 6px 6px;padding-top:8px}.mx-side__legend{flex-direction:row;flex-wrap:wrap;gap:6px 12px}}:root{--v3-gap: 8px;--v3-pad: 10px 11px;--v3-radius: 10px}.admin-main{padding:10px 14px 0}.page-head.page-head--compact{margin-bottom:8px}.page-head__row{gap:6px}.page-head h1{font-size:16px;letter-spacing:.01em}.page-tag{font-size:9.5px;padding:1px 6px}.page-head__meta{font-size:10px}.panel{padding:var(--v3-pad);border-radius:var(--v3-radius)}.panel-hd{font-size:11px;font-weight:650;padding-bottom:7px;margin-bottom:8px;border-bottom:1px solid var(--line)}.panel-hd__aux{font-size:9px}.banner{padding:7px 10px;font-size:10.5px;line-height:1.5;border-radius:8px}h2#module-list-heading{font-size:12.5px;margin:10px 0 6px}.module-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--v3-gap)}.module-card{padding:8px 9px;border-radius:var(--v3-radius)}.module-card h3{font-size:11.5px}.module-card__meta{font-size:9.5px}.module-card__link{font-size:10px}.feature-chip{font-size:9.5px}.progress-panel,.b4-panel{border-radius:var(--v3-radius)}.admin-sidebar{width:262px;flex-basis:262px;padding:14px 14px 12px;display:flex;flex-direction:column}.sidebar-label{margin:14px 4px 6px;font-size:9px;letter-spacing:.09em}.sidebar-label:first-child{margin-top:0}.nav-list{gap:4px}.nav-link{padding:10px 11px;border-radius:9px;gap:9px;font-size:12.5px}.nav-link__main{gap:9px}.nav-link__main svg{width:16px;height:16px}.nav-empty{font-size:10.5px}.nav-badge{margin-left:auto;min-width:17px;height:17px;padding:0 5px;border-radius:999px;background:var(--brand);color:#fff;font-size:9.5px;font-weight:700;display:inline-grid;place-items:center;font-variant-numeric:tabular-nums}.side-mini-card{margin-top:14px;border:1px solid var(--line);border-radius:10px;padding:9px 10px 10px;background:#f7fafd}.side-mini-card__cap{margin:0;display:flex;align-items:center;gap:5px;font-size:9.5px;font-weight:650;color:var(--ink-soft)}.side-mini-card__nums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:8px 0 9px}.side-mini-card__nums span{display:grid;gap:1px;font-size:9px;color:var(--muted)}.side-mini-card__nums em{font-style:normal;font-size:15px;font-weight:750;color:var(--ink);line-height:1.1}.side-mini-card__link{font-size:10px;color:var(--brand);text-decoration:none;font-weight:650}.side-mini-card__link:hover{text-decoration:underline}.sidebar-user{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px}.sidebar-user__avatar{width:30px;height:30px;flex:none;display:inline-grid;place-items:center;border-radius:50%;background:var(--brand-soft);color:var(--brand);border:1px solid #d3e4f5;font-size:12px;font-weight:700}.sidebar-user__body{flex:1;min-width:0;display:grid;line-height:1.25}.sidebar-user__body strong{font-size:11.5px}.sidebar-user__body small{font-size:9px;color:var(--muted)}.user-chip{display:inline-flex;align-items:center;gap:5px}.v3-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--v3-gap);margin:8px 0}.v3-span4{grid-column:span 4}.v3-span6{grid-column:span 6}.v3-span7{grid-column:span 7}.v3-span8{grid-column:span 8}.v3-span12{grid-column:span 12}.stat-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--v3-gap);margin:0 0 6px}.stat-card--v3{position:relative;display:flex;align-items:flex-start;gap:8px;padding:9px 10px;border-radius:var(--v3-radius);overflow:hidden}.stat-card--v3:after{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:linear-gradient(180deg,var(--brand),#5f95c1);opacity:0;transition:opacity .2s var(--ease)}.stat-card--v3:hover{border-color:#bcd6ea;box-shadow:var(--shadow);transform:translateY(-1px)}.stat-card--v3:hover:after{opacity:1}.stat-card__main{min-width:0;flex:1}.stat-card--v3 dt{display:flex;align-items:center;gap:5px;font-size:9.5px}.stat-card__ico{width:20px;height:20px;flex:none;display:inline-grid;place-items:center;border-radius:6px;background:var(--brand-soft);color:var(--brand);border:1px solid #d9e7f5}.stat-card--v3 dd{font-size:21px;font-weight:750;line-height:1.15;letter-spacing:-.01em}.stat-card__total{font-size:10.5px;font-weight:550;color:var(--muted)}.sample-chip{display:inline-block;padding:1px 7px;border-radius:999px;border:1px dashed #b9cfe4;background:#f4f9fd;color:var(--brand);font-size:9px;font-weight:650;letter-spacing:.06em}.chart-pair{display:flex;align-items:center;gap:14px}.chart-pair>*{flex:1;min-width:0}.chart-pair>.chart-pair__divider{flex:none;width:1px;align-self:stretch;background:var(--line)}.state-donut{display:flex;align-items:center;gap:10px}.state-donut svg{width:108px;height:108px;flex:none}.state-donut__seg{animation:v3-fade-in .6s .1s var(--ease) both}.state-donut__num{font-size:15px;font-weight:750;fill:var(--ink)}.state-donut__cap{font-size:7.5px;fill:var(--muted)}.state-donut__legend{list-style:none;margin:0;padding:0;display:grid;gap:3px}.state-donut__legend li{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--ink-soft)}.state-donut__legend i{width:8px;height:8px;border-radius:2.5px;flex:none}.state-donut__legend em{font-style:normal;font-weight:750;color:var(--ink);margin-left:auto;font-variant-numeric:tabular-nums}.level-bars{display:grid;gap:7px;align-content:center}.level-bars__row{display:grid;grid-template-columns:26px 1fr 26px;gap:8px;align-items:center}.level-bars__label{font-size:10.5px;font-weight:650;color:var(--ink-soft)}.level-bars__pair{display:grid;gap:3px}.level-bars__track{display:block;height:8px;border-radius:4px;background:#eef3f8;overflow:hidden}.level-bars__fill{display:block;height:100%;border-radius:4px;animation:v3-grow .7s .1s var(--ease) both}.level-bars__fill--practice{background:linear-gradient(90deg,var(--brand),#5f95c1)}.level-bars__fill--exam{background:linear-gradient(90deg,#f0b45c,#f6cd8f)}.level-bars__num{text-align:right;font-size:10.5px;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums}.level-bars__legend{display:flex;gap:14px;margin:2px 0 0 34px;font-size:9px;color:var(--muted)}.level-bars__legend span{display:inline-flex;align-items:center;gap:4px}.level-bars__legend .level-bars__fill{width:10px;height:6px;animation:none}.student-bars{list-style:none;margin:0;padding:0;display:grid;gap:7px}.student-bars li{display:grid;grid-template-columns:52px 1fr 24px;gap:8px;align-items:center}.student-bars__name{font-size:10px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-bars__track{position:relative;display:block;height:12px;border-radius:6px;background:#eef3f8;overflow:hidden}.student-bars__fill{position:absolute;inset:0 auto 0 0;border-radius:6px;background:#cfe2f4;animation:v3-grow .7s .1s var(--ease) both}.student-bars__done{position:absolute;inset:0 auto 0 0;border-radius:6px;background:linear-gradient(90deg,var(--brand),#3f88c5);animation:v3-grow .7s .22s var(--ease) both}.student-bars__num{text-align:right;font-size:10.5px;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums}.button:focus-visible,.rank-link:focus-visible,.mx-link:focus-visible,.module-card h3 a:focus-visible,.page-head__title a:focus-visible{outline:2px solid var(--brand);outline-offset:1px;border-radius:4px}@keyframes v3-pop{0%{opacity:0;transform:translateY(-3px) scale(.97)}to{opacity:1;transform:none}}@keyframes v3-fade-in{0%{opacity:0}to{opacity:1}}@keyframes v3-grow{0%{width:0}}@keyframes v3-cell{0%{opacity:0;transform:scale(.86)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.stat-card--v3:hover{transform:none}.state-donut__seg,.level-bars__fill,.student-bars__fill,.student-bars__done{animation:none}.hm-cell:hover,.xh__cell:hover{transform:none}}@media(max-width:1180px){.v3-span8,.v3-span7{grid-column:span 12}.v3-span6,.v3-span5,.v3-span4{grid-column:span 6}.chart-pair{flex-direction:column;align-items:stretch}.chart-pair__divider{width:auto;height:1px}}@media(max-width:900px){.admin-sidebar{width:200px;flex-basis:200px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.module-grid{grid-template-columns:minmax(0,1fr)}.v3-span6,.v3-span5,.v3-span4{grid-column:span 12}}:root{--brand: #0f62c6;--brand-strong: #0b4ea3;--brand-soft: #eaf2fc;--brand-ink: #0a3d7e;--bg: #f2f4f8;--panel: #ffffff;--line: #e4e9f1;--line-strong: #ccd6e4;--ink: #17202e;--ink-soft: #3c4a5e;--muted: #5f6c80;--ok: #178a50;--ok-bg: #e9f7ef;--warn: #9a5b00;--warn-bg: #fff6e8;--info: #0f62c6;--info-bg: #edf4fd;--radius: 12px;--radius-sm: 9px;--shadow: 0 1px 2px rgba(16, 32, 56, .05), 0 2px 8px rgba(16, 32, 56, .05);--shadow-hover: 0 2px 4px rgba(16, 32, 56, .07), 0 10px 28px rgba(16, 32, 56, .1);--ease: cubic-bezier(.32, .72, 0, 1);--v4-gap: 8px}body{background:radial-gradient(1100px 220px at 70% -160px,rgba(15,98,198,.05),transparent 70%),var(--bg);font-size:14px}h1,h2,h3{letter-spacing:.005em}button,input,select{font:inherit}*{scrollbar-width:thin;scrollbar-color:#c6d2e2 transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:#c6d2e2;border-radius:8px}*::-webkit-scrollbar-track{background:transparent}.page-tag{font-size:12px!important;padding:2px 8px}.page-head__meta{font-size:12px!important}.panel-hd{font-size:13px}.panel-hd__aux{font-size:12px!important;color:var(--muted);font-weight:500}.banner{font-size:12.5px!important;line-height:1.55}.module-card h3{font-size:13px}.module-card__meta,.module-card__link,.feature-chip{font-size:12px!important}.feature-chip .tier{font-size:12px!important;min-width:auto}.badge{font-size:12px!important}.small{font-size:12.5px!important}.sidebar-label{font-size:12px!important;letter-spacing:.05em}.nav-empty{font-size:12px!important}.nav-badge{min-width:19px;height:19px;font-size:12px!important}.side-mini-card__cap,.side-mini-card__nums span,.side-mini-card__link{font-size:12px!important}.sidebar-user__body strong{font-size:13px}.sidebar-user__body small,.stat-card--v3 dt,.stat-card__total{font-size:12px!important}.sample-chip{font-size:12px!important;padding:1.5px 9px}.state-donut__cap{font-size:8.5px;fill:var(--muted)}.state-donut__legend li,.level-bars__label,.level-bars__num,.level-bars__legend,.student-bars__name,.student-bars__num{font-size:12px!important}.b4-panel>p.muted,.progress-panel>p.muted{font-size:12.5px!important}.progress-form label,.b4-form-row label,.b4-metric-check code{font-size:12px!important}.b4-snapshot__head p{font-size:12.5px!important}.b4-metric-card__id{font-size:12px!important}.b4-metric-card .muted.small{font-size:12px!important;line-height:1.5}.b4-metric-card details summary{font-size:12px!important}.b4-metric-card details p{font-size:12px!important}.b4-facts div{font-size:12px!important}.b4-notification,.b4-notification p{font-size:12.5px!important}.b4-notification .badge,.b4-export-state{font-size:12px!important}.login-facts{font-size:12.5px!important}.field label,.field-hint,.login-card__foot{font-size:12px!important}.state-panel p{font-size:13px}.error-notice{font-size:12.5px!important}.error-meta,.error-meta dt{font-size:12px!important}.empty-panel{font-size:13px}.feature-meta dt{font-size:12px!important}.feature-meta dd{font-size:12.5px!important}.feature-details dt{font-size:12px!important}.feature-details dd,.callout{font-size:12.5px!important}.b4-table th,.progress-table th{font-size:12px!important}.b4-table td,.progress-table td{font-size:12.5px!important}.recent-table th{font-size:12px!important}.recent-table td{font-size:12.5px!important}.chip,.admin-header .chip,.admin-header .chip--warn,.admin-header .button--quiet{font-size:12px!important}.admin-header__brand .brand-mark{font-size:12.5px!important}.nav-link__meta,.sidebar-foot,.admin-footer,.eyebrow{font-size:12px!important}.lede{font-size:13px!important}.module-card__state{font-size:12px!important}.feature-card__title{font-size:13px!important}.feature-details summary{font-size:12px!important}.tier,.status{font-size:12px!important}.progress-form input,.b4-form input,.b4-form select,.b4-form-row select,.b4-form-row input{font-size:12.5px!important}.b4-metric-picker legend,.b4-metric-check,.b4-metric-check span,.b4-state,.b4-reply,.caliber{font-size:12px!important}.caliber summary{font-size:12px!important}.admin-header{background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);box-shadow:none}.admin-header__title{font-weight:750;letter-spacing:.01em}.admin-header__subtitle{font-size:12px!important;letter-spacing:.14em;color:var(--muted)}.brand-mark{background:linear-gradient(135deg,#2f7fe0,var(--brand) 55%,var(--brand-strong));box-shadow:0 2px 6px #0f62c659}.admin-header .chip{border-color:var(--line);background:#f7f9fc}.admin-header .user-chip{color:var(--ink-soft);font-weight:600}.admin-header .chip--warn{background:var(--warn-bg);border-color:#ecd3a0;color:var(--warn)}.admin-sidebar{width:276px;flex-basis:276px;padding:16px 14px 14px;background:#fff;border-right:1px solid var(--line)}.admin-sidebar>nav{flex:1}.sidebar-label{margin:18px 8px 7px;color:var(--muted);font-weight:650;display:flex;align-items:center;gap:6px}.sidebar-label:before{content:"";width:4px;height:4px;border-radius:50%;background:#b9cbe2}.sidebar-label:first-child{margin-top:2px}.nav-list{gap:3px}.nav-link{position:relative;padding:10px 12px;border-radius:9px;gap:10px;font-size:13px;color:var(--ink-soft);transition:background .22s var(--ease),color .22s var(--ease),transform .22s var(--ease)}.nav-link:hover{background:#f2f6fc;color:var(--ink);transform:translate(1px)}.nav-link__main svg{color:var(--muted);transition:color .22s var(--ease)}.nav-link:hover .nav-link__main svg{color:var(--brand)}.nav-link--active{background:linear-gradient(90deg,var(--brand-soft),rgba(234,242,252,.35));color:var(--brand-ink);font-weight:650}.nav-link--active .nav-link__main svg{color:var(--brand)}.nav-link--active:before{content:"";position:absolute;inset:8px auto 8px 0;width:3px;border-radius:3px;background:linear-gradient(180deg,#2f7fe0,var(--brand-strong))}.side-mini-card{margin-top:16px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 11px 11px;background:#f7fafd;box-shadow:none}.side-mini-card__nums em{font-size:16px}.sidebar-user{margin-top:14px;padding:12px 10px 4px;border-top:1px solid var(--line)}.sidebar-user__avatar{width:34px;height:34px;background:linear-gradient(135deg,#2f7fe0,var(--brand-strong));color:#fff;border:none;box-shadow:0 2px 6px #0f62c64d}.admin-main{padding:12px 16px 0}.panel{padding:12px 14px 13px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);transition:box-shadow .3s var(--ease),transform .3s var(--ease),border-color .3s var(--ease)}.panel:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px);border-color:#d8e2ef}.panel-hd{display:flex;align-items:center;gap:7px;padding-bottom:8px;margin-bottom:10px;border-bottom:1px solid var(--line)}.panel-hd>.ico{color:var(--brand);flex:none}.panel-hd__aux{margin-left:2px}.panel-hd__link{margin-left:auto;font-size:12px;color:var(--brand);text-decoration:none;font-weight:600}.panel-hd__link:hover{text-decoration:underline}.v4-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--v4-gap);margin:8px 0}.v4-span3{grid-column:span 3}.v4-span4{grid-column:span 4}.v4-span5{grid-column:span 5}.v4-span7{grid-column:span 7}.v4-span8{grid-column:span 8}.v4-span12{grid-column:span 12}.v4-plain{display:grid;gap:var(--v4-gap);align-content:start}.v4-plain>.b4-panel{margin:0}.stat-grid .stat-card,.v4-grid>.panel,.v4-grid>.v4-plain{animation:v4-rise .5s var(--ease) both}.stat-grid .stat-card:nth-child(2){animation-delay:40ms}.stat-grid .stat-card:nth-child(3){animation-delay:80ms}.stat-grid .stat-card:nth-child(4){animation-delay:.12s}.stat-grid .stat-card:nth-child(5){animation-delay:.16s}.stat-grid .stat-card:nth-child(6){animation-delay:.2s}.v4-grid>.panel:nth-child(2),.v4-grid>.v4-plain:nth-child(2){animation-delay:90ms}.v4-grid>.panel:nth-child(3){animation-delay:.15s}.stat-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--v4-gap);margin:0 0 8px}.stat-card--v3{padding:11px 12px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}.stat-card--v3:after{width:3px;border-radius:0 3px 3px 0}.stat-card--v3:hover{transform:translateY(-2px)}.stat-card__ico{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,#eaf2fc,#dcebfb);border:1px solid #d5e5f7;color:var(--brand)}.stat-card--v3 dt{gap:7px;color:var(--muted);font-weight:600}.stat-card--v3 dd{font-size:23px;font-weight:750;letter-spacing:-.015em;font-variant-numeric:tabular-nums}.panel--hero{background:linear-gradient(180deg,#fff,#fbfdff)}.hero-flow{display:flex;align-items:center;gap:16px;min-height:168px}.hero-flow>*{flex:1;min-width:0}.hero-flow__divider{flex:none;width:1px;align-self:stretch;background:var(--line)}.ring-gauge{display:grid;justify-items:center;gap:12px;align-self:center}.ring-gauge__disc{position:relative}.ring-gauge__svg{width:132px;height:132px;display:block}.ring-gauge__arc{stroke-dashoffset:0;animation:v4-sweep .9s .15s var(--ease) both}@keyframes v4-sweep{0%{stroke-dasharray:0 var(--ring-c, 340)}}.ring-gauge__center{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:1px;pointer-events:none}.ring-gauge__num{font-size:27px;font-weight:800;color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}.ring-gauge__num em{font-style:normal;font-size:13px;font-weight:700;color:var(--muted);margin-left:1px}.ring-gauge__empty{font-size:13px;color:var(--muted);font-weight:600}.ring-gauge__cap{font-size:12px;color:var(--muted);font-weight:600}.ring-gauge__facts{list-style:none;margin:0;padding:0;display:grid;gap:6px;width:100%;max-width:230px}.ring-gauge__facts li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:12.5px;color:var(--muted)}.ring-gauge__facts em{font-style:normal;font-weight:700;color:var(--ink);font-size:14px;font-variant-numeric:tabular-nums;margin-left:auto}.hero-flow__cap{margin:0 0 8px;font-size:12px;font-weight:650;color:var(--ink-soft)}.hero-flow__bars{display:grid;gap:8px}.hbar-row{display:grid;grid-template-columns:26px 1fr 26px;gap:9px;align-items:center}.hbar-row__label{font-size:12px;font-weight:650;color:var(--ink-soft)}.hbar-row__track{display:block;height:9px;border-radius:5px;background:#edf1f7;overflow:hidden}.hbar-row__fill{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#2f7fe0,var(--brand));animation:v4-grow .8s .2s var(--ease) both}.hbar-row__num{text-align:right;font-size:12px;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums}.radar-wrap{display:flex;align-items:center;gap:12px}.task-radar{width:216px;height:216px;flex:none}.task-radar__blob{fill:#0f62c629;stroke:var(--brand);stroke-width:2;stroke-linejoin:round;transform-origin:120px 124px;animation:v4-radar-in .8s .15s var(--ease) both}.task-radar__dot{fill:#fff;stroke:var(--brand);stroke-width:2}.task-radar__label{font-size:12.5px;fill:var(--ink-soft);font-weight:600}@keyframes v4-radar-in{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}.radar-note{list-style:none;margin:0;padding:0;display:grid;gap:6px;flex:1;min-width:0}.radar-note li{display:flex;align-items:baseline;gap:8px;font-size:12.5px;color:var(--ink-soft);padding:5px 8px;border-radius:7px;background:#f7fafd;transition:background .2s var(--ease)}.radar-note li:hover{background:var(--brand-soft)}.radar-note em{font-style:normal;margin-left:auto;font-weight:750;color:var(--brand-ink);font-variant-numeric:tabular-nums}.heat{display:grid;gap:10px}.heat__grid{display:grid;gap:4px;align-items:center}.heat__col{font-size:12px;font-weight:650;color:var(--muted);text-align:center;line-height:1.25;white-space:pre-line;padding-bottom:2px}.heat__name{font-size:12px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:6px}.heat__cell{display:block;height:21px;border-radius:5px;border:1px solid transparent;transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s var(--ease);animation:v4-cell .4s var(--ease) both}.heat__cell:hover{transform:scale(1.14);border-color:var(--brand);box-shadow:0 2px 8px #0f62c659;position:relative;z-index:2}.heat__cell--none{background:#eef1f6}.heat__cell--done{border-color:#0b4ea38c;box-shadow:inset 0 0 0 1.5px #ffffff8c}.heat__cell--empty{background:transparent}.heat__legend{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.heat__scale{display:inline-flex;gap:3px}.heat__scale i{width:14px;height:10px;border-radius:3px}.heat__scale i:nth-child(1){background:#0f62c624}.heat__scale i:nth-child(2){background:#0f62c64d}.heat__scale i:nth-child(3){background:#0f62c685}.heat__scale i:nth-child(4){background:#0f62c6c2}.heat__legend__divider{flex:none;width:1px;height:14px;background:var(--line);margin:0 4px}.heat__legend-swatch{width:14px;height:10px;border-radius:3px;background:#0f62c680;border:1.5px solid rgba(11,78,163,.55)}.progress-rank{list-style:none;margin:0;padding:0;display:grid;gap:9px;align-content:start}.progress-rank li{display:grid;grid-template-columns:58px 1fr 40px 46px;gap:9px;align-items:center}.progress-rank__name{font-size:12px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-rank__track{display:block;height:9px;border-radius:5px;background:#edf1f7;overflow:hidden}.progress-rank__fill{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#2f7fe0,var(--brand-strong));animation:v4-grow .75s .15s var(--ease) both}.progress-rank__num{text-align:right;font-size:12px;font-weight:750;color:var(--brand-ink);font-variant-numeric:tabular-nums}.progress-rank__meta{text-align:right;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.recent-table{width:100%;border-collapse:collapse}.recent-table th{text-align:left;font-weight:650;color:var(--muted);padding:4px 10px 7px;border-bottom:1px solid var(--line);white-space:nowrap}.recent-table td{padding:7.5px 10px;border-bottom:1px solid #eef2f8;color:var(--ink-soft);white-space:nowrap}.recent-table tbody tr:last-child td{border-bottom:none}.recent-table tbody tr{transition:background .18s var(--ease)}.recent-table tbody tr:hover{background:#f6f9fd}.recent-table td:first-child{font-weight:650;color:var(--ink)}.state-chip{display:inline-block;padding:1.5px 9px;border-radius:999px;font-size:12px;font-weight:650;border:1px solid transparent}.state-chip--ok{background:var(--ok-bg);color:var(--ok);border-color:#bfe6cf}.state-chip--doing{background:var(--warn-bg);color:var(--warn);border-color:#ecd3a0}.state-chip--run{background:var(--info-bg);color:var(--info);border-color:#c4dcef}.state-chip--idle{background:#f1f4f8;color:var(--muted);border-color:var(--line)}.state-donut svg{width:104px;height:104px}.button{border-radius:8px;transition:background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease),transform .15s var(--ease),box-shadow .2s var(--ease)}.button:hover{border-color:var(--brand);color:var(--brand-strong);box-shadow:var(--shadow)}.button:active{transform:scale(.985)}.button--primary{background:linear-gradient(180deg,#1d6fd2,var(--brand));border-color:var(--brand-strong);color:#fff;box-shadow:0 1px 3px #0f62c666}.button--primary:hover:not(:disabled){background:linear-gradient(180deg,#2f7fe0,var(--brand-strong));color:#fff}.module-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--v4-gap)}.module-card{padding:11px 12px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}.module-card h3 a{display:inline-flex;align-items:center;gap:6px}.module-card h3 a .ico{color:var(--brand)}.module-card__link{color:var(--brand);font-weight:650}.feature-chips{margin-top:6px}.b4-panel,.progress-panel{border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);padding:12px 14px 13px}.b4-notifications{gap:6px}.b4-notification{border-radius:9px;border:1px solid var(--line);background:#fbfcfe;padding:8px 10px}.b4-notification--unread{background:var(--info-bg);border-color:#c4dcef}.progress-form input,.b4-form input,.b4-form select{border-radius:8px}.login-shell{min-height:100vh}.login-intro h1{font-size:26px;letter-spacing:-.01em}.login-sticker{display:inline-block;margin-left:8px;vertical-align:-4px}.login-card{border-radius:16px;border:1px solid var(--line);box-shadow:var(--shadow-hover)}.field input,.field select{border-radius:8px;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}.field input:focus-visible,.field select:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px #0f62c626;outline:none}.admin-footer{color:var(--muted);font-size:12px;padding:10px 4px 14px}.wb-zone{margin:10px 0 6px}.wb-zone__heading{display:flex;align-items:center;gap:6px;font-size:13.5px;margin:12px 0 8px}.wb-zone__heading .ico{color:var(--brand)}.wb-zone__list{display:grid;gap:var(--v4-gap)}.wb{--wb-accent: var(--brand);--wb-soft: var(--brand-soft);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:0 13px;transition:box-shadow .3s var(--ease),border-color .3s var(--ease)}.wb--open{box-shadow:var(--shadow-hover);border-color:#d8e2ef;padding-bottom:12px}.wb__head{display:flex;align-items:flex-start;gap:9px;width:100%;padding:11px 0;cursor:pointer;-webkit-user-select:none;user-select:none;border:none;background:transparent;text-align:left;border-radius:var(--radius)}.wb__head:hover .wb__title h3{color:var(--wb-accent)}.wb__head:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.wb__chev{margin-left:auto;flex:none;align-self:center;color:var(--muted);transition:transform .28s var(--ease),color .2s var(--ease)}.wb__head:hover .wb__chev{color:var(--wb-accent)}.wb__chev--open{transform:rotate(180deg)}.wb__body{animation:v4-rise .32s var(--ease) both}.wb__body-actions{display:flex;justify-content:flex-end;gap:6px;margin:0 0 8px}.wb__btn{padding:4px 10px;font-size:12px;border-radius:7px}.wb__ico{width:28px;height:28px;flex:none;display:inline-grid;place-items:center;border-radius:8px;background:var(--wb-soft);color:var(--wb-accent);border:1px solid color-mix(in srgb,var(--wb-accent) 22%,#ffffff)}.wb__title{flex:1;min-width:0}.wb__title h3{display:flex;align-items:center;gap:7px;font-size:13.5px;margin:0 0 2px;transition:color .2s var(--ease)}.wb__kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0 2px}.wb__kpi{border:1px solid var(--line);border-radius:9px;background:linear-gradient(180deg,#fff,#fafcff);padding:8px 10px;display:grid;gap:2px}.wb__kpi-label{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}.wb__kpi-label .ico{color:var(--wb-accent)}.wb__kpi strong{font-size:19px;font-weight:750;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1}.wb__kpi strong em{font-style:normal;font-size:12px;font-weight:600;color:var(--muted);margin-left:2px}.wb__table-wrap{margin-top:10px;overflow-x:auto}.wb__table{width:100%;border-collapse:collapse}.wb__table th{text-align:left;font-size:12px;font-weight:650;color:var(--muted);padding:4px 9px 7px;border-bottom:1px solid var(--line);white-space:nowrap}.wb__table td{padding:7px 9px;border-bottom:1px solid #eef2f8;font-size:12.5px;color:var(--ink-soft);white-space:nowrap}.wb__table tbody tr:last-child td{border-bottom:none}.wb__table tbody tr{transition:background .18s var(--ease)}.wb__table tbody tr:hover{background:#f6f9fd}.wb__table td:first-child{font-weight:650;color:var(--ink)}.wb__funnel{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}.wb__funnel li{display:grid;grid-template-columns:150px 1fr 44px;gap:10px;align-items:center}.wb__funnel-label{font-size:12.5px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wb__funnel-track{display:block;height:12px;border-radius:6px;background:#edf1f7;overflow:hidden}.wb__funnel-track i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--wb-soft),var(--wb-accent));animation:v4-grow .8s .15s var(--ease) both}.wb__funnel em{text-align:right;font-style:normal;font-size:12px;font-weight:700;color:var(--wb-accent);font-variant-numeric:tabular-nums}.wb__heat{display:grid;gap:5px;margin-top:10px}.wb__heat-row{display:grid;grid-template-columns:150px repeat(10,minmax(0,1fr));gap:4px;align-items:center}.wb__heat-name{font-size:12px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wb__heat-cell{display:block;height:15px;border-radius:3.5px;transition:transform .16s var(--ease)}.wb__heat-cell:hover{transform:scale(1.18)}.wb__heat-cell--0{background:#2b6faf14}.wb__heat-cell--1{background:#2b6faf33}.wb__heat-cell--2{background:#2b6faf61}.wb__heat-cell--3{background:#2b6faf94}.wb__heat-cell--4{background:#2b6fafc7}.wb__timeline{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:0}.wb__timeline li{position:relative;display:flex;gap:10px;padding:7px 0 7px 20px}.wb__timeline li:before{content:"";position:absolute;left:4.5px;top:24px;bottom:-6px;width:2px;background:var(--line)}.wb__timeline li:last-child:before{display:none}.wb__dot{position:absolute;left:0;top:12px;width:11px;height:11px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line-strong)}.wb__dot--ok{background:var(--ok)}.wb__dot--doing{background:#2f7fe0}.wb__dot--warn{background:#f0b45c}.wb__dot--idle{background:#c2cddb}.wb__tl-title{margin:0;font-size:12.5px;font-weight:650;color:var(--ink)}.wb__tl-meta{margin:1px 0 0;font-size:12px;color:var(--muted)}.wb__tl-now{margin-left:auto;align-self:flex-start;padding:1px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand-ink);font-size:12px;font-weight:650}.wb__notice{margin:8px 0 0;font-size:12px;color:var(--warn)}.wb--skeleton{background:linear-gradient(180deg,#fff,#fbfcfe)}.wb__skeleton{display:grid;gap:7px;margin-top:10px}.wb__sk-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.wb__sk-row i{display:block;height:13px;border-radius:5px;background:#e8edf4;animation:v4-pulse 1.6s ease-in-out infinite}.wb__sk-row--dim i{opacity:.62}@keyframes v4-pulse{0%,to{opacity:.55}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.wb__sk-row i{animation:none}}.ov-snapshot-zone{margin-top:4px}.ov-snapshot-zone .b4-snapshot{border:none;background:transparent;padding:0}.ov-form-zone{margin-top:12px;padding:11px 12px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#f8fafd}.ov-form-zone__cap{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:12.5px;font-weight:700;color:var(--ink-soft)}.ov-form-zone__cap .ico{color:var(--brand)}.quality-chip{display:inline-block;padding:.5px 8px;border-radius:999px;font-size:12px;font-weight:650;border:1px solid transparent}.quality-chip--good{background:var(--ok-bg);color:var(--ok);border-color:#bfe6cf}.quality-chip--warn{background:var(--warn-bg);color:var(--warn);border-color:#ecd3a0}.quality-chip--unknown,.quality-chip--neutral{background:#f1f4f8;color:var(--muted);border-color:var(--line)}.b4-metric-card__meta{display:flex;align-items:center;gap:7px;margin:4px 0 0;font-size:12px;color:var(--muted)}.b4-metric-card__asof{margin:2px 0 0!important}.b4-metric-card__value{font-size:21px;font-weight:750;font-variant-numeric:tabular-nums}.button:focus-visible,.nav-link:focus-visible,.panel-hd__link:focus-visible,.module-card h3 a:focus-visible,.module-card__link:focus-visible,.rank-link:focus-visible,.mx-link:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}@keyframes v4-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes v4-grow{0%{width:0}}@keyframes v4-cell{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.stat-card--v3,.v4-grid>.panel,.v4-grid>.v4-plain,.wb__body{animation:none}.ring-gauge__arc,.task-radar__blob,.hbar-row__fill,.progress-rank__fill,.heat__cell{animation:none}.panel:hover,.stat-card--v3:hover,.heat__cell:hover,.nav-link:hover{transform:none}}@media(max-width:1360px){.stat-grid,.module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1180px){.v4-span5,.v4-span7,.v4-span8{grid-column:span 12}.v4-span3,.v4-span4{grid-column:span 6}.hero-flow{flex-direction:column;align-items:stretch}.hero-flow__divider{width:auto;height:1px}.radar-wrap{flex-direction:column}}@media(max-width:900px){.admin-sidebar{width:200px;flex-basis:200px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.module-grid{grid-template-columns:minmax(0,1fr)}.v4-span3,.v4-span4{grid-column:span 12}}
