:root{--navy:#0f2942;--navy-600:#16395c;--navy-500:#1d4b78;--brand:#1c6fb8;--brand-600:#155a97;--brand-050:#eaf3fb;--teal:#0d9488;--green:#16a34a;--amber:#d97706;--red:#dc2626;--purple:#7c3aed;--bg:#f4f6f9;--surface:#fff;--surface-2:#f8fafc;--border:#e2e8f0;--border-strong:#cbd5e1;--text:#1e293b;--text-muted:#64748b;--text-faint:#94a3b8;--radius:12px;--radius-sm:8px;--shadow:0 1px 2px #0f29420f, 0 4px 12px #0f29420f;--shadow-lg:0 8px 30px #0f29421f;--sidebar-w:248px;--header-h:64px;--env-strip-h:0px;color:var(--text);font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit}.demo-banner{color:#713f12;letter-spacing:.03em;text-align:center;text-transform:uppercase;background:repeating-linear-gradient(45deg,#fde68a,#fde68a 12px,#fcd34d 12px 24px);padding:5px 12px;font-size:12px;font-weight:700}.shell{min-height:calc(100vh - var(--env-strip-h));display:flex}.has-env-strip{--env-strip-h:30px}.has-env-strip body{padding-top:var(--env-strip-h);box-sizing:border-box}.env-strip{height:var(--env-strip-h);z-index:70;background:var(--amber);color:#fff;letter-spacing:.02em;justify-content:center;align-items:center;gap:8px;font-size:12.5px;font-weight:700;display:flex;position:fixed;inset:0 0 auto}.env-strip .info__btn{color:#fff;background:#ffffff40}.env-strip .info__btn:hover{color:var(--amber);background:#fff}.sidebar{width:var(--sidebar-w);background:var(--navy);color:#cdd9e5;inset:var(--env-strip-h) auto 0 0;z-index:40;flex-direction:column;transition:transform .2s;display:flex;position:fixed}.sidebar__brand{color:#fff;letter-spacing:.02em;align-items:center;gap:10px;padding:18px 20px;font-size:18px;font-weight:700;display:flex}.sidebar__brand-mark{background:linear-gradient(135deg, var(--brand), var(--teal));color:#fff;border-radius:8px;place-items:center;width:30px;height:30px;font-weight:800;display:grid}.sidebar__nav{flex-direction:column;flex:1;gap:2px;padding:8px;display:flex;overflow-y:auto}.nav-item{border-radius:var(--radius-sm);color:#b8c7d6;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:10px 12px;font-size:14px;font-weight:500;display:flex}.nav-item:hover{background:var(--navy-600);color:#fff}.nav-item.active{background:var(--brand);color:#fff}.nav-item svg{flex-shrink:0}.sidebar__footer{border-top:1px solid var(--navy-600);color:#8ba0b4;padding:14px 18px;font-size:12px}.sidebar__footer strong{color:#dbe6f0;font-size:13px;display:block}.main{margin-left:var(--sidebar-w);flex-direction:column;flex:1;min-width:0;display:flex}.header{height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);top:var(--env-strip-h);z-index:30;align-items:center;gap:16px;padding:0 24px;display:flex;position:sticky}.header__title{margin:0;font-size:18px;font-weight:700}.header__spacer{flex:1}.header__practice{background:var(--brand-050);color:var(--brand-600);border-radius:999px;align-items:center;gap:8px;padding:7px 12px;font-size:13px;font-weight:600;display:flex}.header__icon-btn{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--text-muted);cursor:pointer;border-radius:10px;place-items:center;display:grid;position:relative}.header__icon-btn:hover{background:var(--surface-2);color:var(--text)}.header__badge{background:var(--red);color:#fff;border-radius:999px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:10px;font-weight:700;display:grid;position:absolute;top:-5px;right:-5px}.header__user{align-items:center;gap:10px;display:flex}.avatar{color:#fff;border-radius:999px;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:grid}.header__user-meta{line-height:1.2}.header__user-meta strong{font-size:13px;display:block}.header__user-meta span{color:var(--text-muted);font-size:12px}.hamburger{display:none}.content{width:100%;max-width:1280px;margin:0 auto;padding:24px}.page-head{margin-bottom:20px}.page-head h2{color:var(--text);margin:0 0 4px;font-size:22px}.page-head p{color:var(--text-muted);margin:0;font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card__head{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:16px 18px;display:flex}.card__head h3{margin:0;font-size:15px;font-weight:700}.card__head .header__spacer{flex:1}.card__body{padding:18px}.card__body:has(>.tbl){overflow-x:auto}.grid>*{min-width:0}.grid{gap:16px;display:grid}.grid-kpi{grid-template-columns:repeat(4,1fr)}.grid-2{grid-template-columns:2fr 1fr}.grid-2-even{grid-template-columns:1fr 1fr}.mb-16{margin-bottom:16px}.mt-16{margin-top:16px}.kpi{position:relative}.kpi__icon{border-radius:10px;place-items:center;width:42px;height:42px;margin-bottom:12px;display:grid}.kpi__label{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:4px;font-size:13px;display:flex}.kpi__value{letter-spacing:-.01em;font-size:26px;font-weight:800}.kpi__sub{margin-top:6px;font-size:12px;font-weight:600}.tint-blue{color:var(--brand);background:#e0edfb}.tint-amber{color:var(--amber);background:#fdecd3}.tint-teal{color:var(--teal);background:#d3f2ee}.tint-purple{color:var(--purple);background:#ede3fc}.tint-green{color:var(--green);background:#d6f2df}.tint-red{color:var(--red);background:#fbdcdc}table.tbl{border-collapse:collapse;width:100%;font-size:14px}.tbl th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--text-faint);border-bottom:1px solid var(--border);padding:10px 12px;font-size:12px;font-weight:700}.tbl td{border-bottom:1px solid var(--border);vertical-align:middle;padding:12px}.tbl tr:last-child td{border-bottom:none}.tbl tbody tr.clickable{cursor:pointer}.tbl tbody tr.clickable:hover{background:var(--surface-2)}.person{align-items:center;gap:10px;display:flex}.person small{color:var(--text-muted)}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge__dot{background:currentColor;border-radius:999px;width:7px;height:7px}.badge--blue{color:var(--brand-600);background:#e0edfb}.badge--amber{color:#92500a;background:#fdecd3}.badge--red{color:#a41c1c;background:#fbdcdc}.badge--green{color:#146c33;background:#d6f2df}.badge--teal{color:#0b6c63;background:#d3f2ee}.badge--grey{color:var(--text-muted);background:#eef2f6}.badge--purple{color:#5b21b6;background:#ede3fc}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:14px;font-weight:600;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn--primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn--primary:hover{background:var(--brand-600)}.btn--danger{background:var(--red);border-color:var(--red);color:#fff}.btn--danger:hover{filter:brightness(.94)}.btn--ghost{color:var(--brand-600);background:0 0;border-color:#0000}.btn--ghost:hover{background:var(--brand-050)}.btn--sm{padding:6px 12px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.link{color:var(--brand-600);cursor:pointer;font-weight:600;font-size:inherit;background:0 0;border:none;padding:0}.link:hover{text-decoration:underline}.info{display:inline-flex;position:relative}.info__btn{cursor:pointer;background:var(--brand-050);width:18px;height:18px;color:var(--brand);border:none;border-radius:999px;place-items:center;font-size:11px;font-weight:800;line-height:1;display:grid}.info__btn:hover{background:var(--brand);color:#fff}.info__pop{background:var(--navy);color:#e6eef5;width:260px;box-shadow:var(--shadow-lg);z-index:60;text-align:left;border-radius:10px;padding:12px 14px;font-size:12.5px;font-weight:400;line-height:1.5;position:absolute;top:24px;left:50%;transform:translate(-50%)}.info__pop:before{content:"";border-left:6px solid #0000;border-right:6px solid #0000;border-bottom:6px solid var(--navy);position:absolute;top:-6px;left:50%;transform:translate(-50%)}.info__pop h5{color:#fff;margin:0 0 4px;font-size:12.5px}.info--left .info__pop{left:auto;right:0;transform:none}.info--left .info__pop:before{left:auto;right:6px;transform:none}.stack{flex-direction:column;gap:12px;display:flex}.row{align-items:center;gap:10px;display:flex}.row-wrap{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spacer{flex:1}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.right{text-align:right}.mono{font-variant-numeric:tabular-nums}.big-amount{font-size:20px;font-weight:800}.list-line{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 0;display:flex}.list-line:last-child{border-bottom:none}.timeline{padding-left:26px;position:relative}.timeline__item{padding-bottom:18px;position:relative}.timeline__item:last-child{padding-bottom:0}.timeline__item:before{content:"";background:var(--surface);border:2px solid var(--brand);border-radius:999px;width:12px;height:12px;position:absolute;top:3px;left:-18px}.timeline__item:after{content:"";background:var(--border);width:2px;position:absolute;top:15px;bottom:-3px;left:-13px}.timeline__item:last-child:after{display:none}.timeline__item.done:before{background:var(--green);border-color:var(--green)}.timeline__item.alert:before{background:var(--red);border-color:var(--red)}.timeline__time{color:var(--text-faint);font-size:12px}.timeline__title{font-size:14px;font-weight:600}.callout{border-radius:var(--radius-sm);background:var(--brand-050);border:1px solid #cfe3f6;gap:12px;padding:14px 16px;font-size:13.5px;line-height:1.5;display:flex}.callout--warn{background:#fef6e7;border-color:#f6e2b8}.callout--danger{background:#fdeaea;border-color:#f5c9c9}.callout--ok{background:#eafaf0;border-color:#c4ebd2}.callout strong{margin-bottom:2px;display:block}.practice-changed{margin-bottom:16px}.practice-changed__icon{color:var(--amber);flex-shrink:0}.practice-changed__body{flex:1;gap:8px}.practice-changed .row{flex-wrap:wrap}.field{margin-bottom:14px}.field label{align-items:center;gap:6px;margin-bottom:6px;font-size:13px;font-weight:600;display:flex}.field input,.field select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;padding:9px 12px;font-family:inherit;font-size:14px}.field input:focus,.field select:focus{outline:2px solid var(--brand-050);border-color:var(--brand)}.progress{background:var(--border);border-radius:999px;height:8px;overflow:hidden}.progress__bar{background:var(--brand);border-radius:999px;height:100%}.checklist-item{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:14px 0;display:flex}.checklist-item:last-child{border-bottom:none}.check-dot{border-radius:999px;flex-shrink:0;place-items:center;width:24px;height:24px;margin-top:1px;display:grid}.check-dot--done{background:var(--green);color:#fff}.check-dot--active{background:var(--brand);color:#fff}.check-dot--todo{background:var(--surface-2);border:2px solid var(--border-strong);color:var(--text-faint)}.auth-page{min-height:calc(100vh - var(--env-strip-h));background:var(--bg);place-items:center;padding:24px 16px;display:grid}.auth-card{width:100%;max-width:420px}.auth-card__brand{color:var(--navy);align-items:center;gap:10px;padding:18px 18px 0;font-size:18px;font-weight:800;display:flex}.auth-card__title{margin:0;font-size:18px}.auth-card__submit{justify-content:center;width:100%}.auth-card--wide{max-width:480px}.auth-card__foot{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 20px;font-size:13px;display:flex}.auth-card__foot .muted{overflow-wrap:anywhere}.steps{gap:12px;margin:0 0 16px;padding-left:20px;font-size:14px;display:grid}.qr{border:1px solid var(--border);border-radius:8px;width:200px;max-width:100%;height:auto;margin:10px 0;display:block}.secret{color:var(--text);overflow-wrap:anywhere;margin-top:4px;font-size:13px;display:block}.field .code-input{letter-spacing:.12em;text-align:center;font-size:20px}.check-row{align-items:center;gap:8px;margin-bottom:16px;font-size:14px;display:flex}.check-row label{cursor:pointer;align-items:center;gap:8px;display:flex}.recovery-codes{background:var(--bg);border:1px solid var(--border);border-radius:8px;grid-template-columns:1fr 1fr;gap:8px 16px;margin:0 0 16px;padding:12px 16px;font-size:15px;list-style:none;display:grid}.link-btn{cursor:pointer;color:var(--brand);font:inherit;background:0 0;border:0;margin:14px auto 0;padding:0;font-size:13px;text-decoration:underline;display:block}.practice-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.practice-list__item{text-align:left;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;width:100%;color:var(--text);align-items:center;gap:10px;padding:12px 14px;font-size:14px;display:flex}.practice-list__item:hover{border-color:var(--brand);background:var(--brand-050)}.practice-list__item:disabled{opacity:.6;cursor:wait}.practice-list__name{flex:1;min-width:0;font-weight:600}.switcher{align-items:center;gap:6px;min-width:0;display:flex;position:relative}.switcher .header__practice{min-width:0}.switcher__select{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;min-width:0;max-width:260px;padding:0;font-weight:600}.switcher__error{white-space:nowrap;color:#a41c1c;background:#fdeaea;border-radius:6px;margin-top:4px;padding:4px 8px;font-size:12px;position:absolute;top:100%;right:0}.details{grid-template-columns:max-content 1fr;gap:10px 24px;margin:0;font-size:14px;display:grid}.details dt{color:var(--text-muted);font-weight:600}.details dd{overflow-wrap:anywhere;margin:0}.details__row{display:contents}.search{border:1px solid var(--border-strong);border-radius:var(--radius-sm);min-width:0;color:var(--text-muted);align-items:center;gap:6px;padding:6px 10px;display:flex}.search input{font:inherit;background:0 0;border:none;outline:none;width:200px;min-width:0;font-size:14px}.empty{text-align:center;color:var(--text-muted);padding:24px 0}.check{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.field--error input,.field--error select{border-color:var(--red)}.field__error{color:#a41c1c;margin-top:4px;font-size:12.5px}.text-danger{color:#a41c1c;font-size:13px}@media (width<=1080px){.grid-kpi{grid-template-columns:repeat(2,1fr)}.grid-2,.grid-2-even{grid-template-columns:1fr}}@media (width<=760px){.sidebar{transform:translate(-100%)}.sidebar.open{box-shadow:var(--shadow-lg);transform:translate(0)}.main{margin-left:0}.hamburger{display:grid}.header{padding:0 14px}.header__practice span.long{display:none}.content{padding:16px}.grid-kpi{grid-template-columns:1fr 1fr}.header__user-meta{display:none}.scrim{z-index:35;background:#0f294266;position:fixed;inset:0}}@media (width<=460px){.grid-kpi{grid-template-columns:1fr}.header{flex-wrap:wrap;gap:6px;height:auto;padding:6px 8px}.header__practice{order:1;justify-content:center;width:100%;padding:3px 8px}.header__title{flex:1;min-width:0;font-size:16px}.list-line{flex-wrap:wrap}.switcher{order:1;justify-content:center;width:100%}.switcher .header__practice{width:auto;max-width:calc(100% - 30px)}.switcher__select{max-width:100%}.details{grid-template-columns:1fr;gap:2px}.card__head:has(.search){flex-wrap:wrap}.search,.search input{width:100%}.details dd{margin-bottom:10px}}
