:root{--ground: #F2F2F5;--surface: #FFFFFF;--sunk: #ECECF2;--ink: #14162B;--ink-2: #4E5270;--ink-3: #8A8FA8;--line: #E4E4EC;--brand: #1E2145;--brand-2: #2B2F63;--accent: #C31E63;--accent-tint: #FCE9F1;--go: #0E7C57;--go-tint: #E4F3ED;--hold: #A9700A;--hold-tint: #FAF0DC;--stop: #BE3A2C;--stop-tint: #FBEBE9;--sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;--r-card: 16px;--r-ctl: 11px;--shadow: 0 1px 2px rgba(20, 22, 43, .04);--rail: 84px;--bar: 66px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.app{min-height:100%}.rail{position:fixed;inset:0 auto 0 0;width:var(--rail);background:var(--surface);border-right:1px solid var(--line);display:none;flex-direction:column;align-items:center;padding:16px 0 12px;z-index:30}.rail-mark{width:38px;height:38px;border-radius:11px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:800;font-size:17px;letter-spacing:-.02em;margin-bottom:18px;flex:none}.rail-group{width:34px;height:1px;background:var(--line);margin:9px 0;flex:none}.rail-spacer{flex:1}.rail-btn{width:100%;border:0;background:transparent;color:var(--ink-3);display:flex;flex-direction:column;align-items:center;gap:5px;padding:9px 3px;cursor:pointer;overflow:hidden;text-align:center;font-size:10px;font-weight:600;line-height:1.15;letter-spacing:0}.rail-btn:hover{color:var(--ink-2)}.rail-btn[aria-current=page]{color:var(--accent);font-weight:700}.main{padding:0 0 calc(var(--bar) + env(safe-area-inset-bottom) + 18px)}.wrap{max-width:760px;margin:0 auto;padding:0 16px}.topbar{position:sticky;top:0;z-index:20;background:#f2f2f5e6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:env(safe-area-inset-top) 0 0}.topbar-in{max-width:760px;margin:0 auto;padding:13px 16px;display:flex;align-items:center;gap:12px}.wordmark{font-size:19px;font-weight:800;letter-spacing:-.025em;margin:0}.wordmark span{color:var(--accent)}.who{margin-left:auto;display:flex;background:var(--sunk);border-radius:999px;padding:3px;gap:2px}.who button{border:0;background:transparent;color:var(--ink-2);font-size:13px;font-weight:600;padding:6px 15px;border-radius:999px;cursor:pointer}.who button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow);font-weight:700}.page-head{padding:14px 2px 12px}.page-head h1{font-size:21px;font-weight:800;letter-spacing:-.03em;margin:0}.page-head p{margin:2px 0 0;font-size:13.5px;color:var(--ink-3);font-weight:500}@media (min-width: 900px){.page-head{padding:22px 2px 16px}.page-head h1{font-size:26px}.page-head p{font-size:14px}}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:#fffffff2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);display:flex;padding-bottom:env(safe-area-inset-bottom)}.tabbar button{flex:1;border:0;background:none;cursor:pointer;height:var(--bar);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--ink-3);font-size:10.5px;font-weight:600}.tabbar button[aria-current=page]{color:var(--accent);font-weight:700}@media (min-width: 900px){.rail{display:flex}.tabbar{display:none}.app{padding-left:var(--rail)}.main{padding-bottom:56px}.wrap,.topbar-in{max-width:820px}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);padding:20px 22px;margin-bottom:14px}.card.flush{padding:0;overflow:hidden}.eyebrow{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3)}.section-label{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin:24px 4px 10px}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.small{font-size:13px}.lamp{display:inline-flex;align-items:center;gap:8px;border-radius:999px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;padding:7px 15px 7px 12px;font-size:12px}.lamp .bulb{width:9px;height:9px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px color-mix(in srgb,currentColor 22%,transparent)}.lamp.go{background:var(--go-tint);color:var(--go)}.lamp.hold{background:var(--hold-tint);color:var(--hold)}.lamp.stop{background:var(--stop-tint);color:var(--stop)}.lamp.none{background:var(--sunk);color:var(--ink-3)}.lamp.xl{font-size:15.5px;padding:12px 24px 12px 19px;letter-spacing:.15em}.lamp.xl .bulb{width:13px;height:13px;box-shadow:0 0 0 5px color-mix(in srgb,currentColor 26%,transparent)}.verdict{border-radius:var(--r-card);padding:24px 22px;margin-bottom:14px;background:linear-gradient(158deg,var(--brand-2),var(--brand) 68%);color:#fff}.verdict .who-what{display:flex;flex-direction:column-reverse;align-items:flex-start;gap:15px}.verdict .lamp{align-self:flex-start}@media (min-width: 620px){.verdict .who-what{flex-direction:row;align-items:flex-start}.verdict .lamp{margin-left:auto;flex:none;align-self:auto}}.verdict .issuer{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#ffffff8c}.verdict h2{margin:4px 0 0;font-size:25px;font-weight:800;letter-spacing:-.03em;line-height:1.12}.verdict .lamp.go{background:#d9f2e6;color:#0b6446}.verdict .lamp.hold{background:#f8deaa;color:#6e4703}.verdict .lamp.stop{background:#f7c7c1;color:#8a2418}.verdict .offer{margin:9px 0 0;font-size:12.5px;color:#ffffff9e;font-weight:500}.verdict .offer b{color:#ffffffeb;font-weight:700}.verdict .verdict-line{margin:18px 0 0;padding-top:16px;border-top:1px solid rgba(255,255,255,.15);font-size:14.5px;color:#ffffffe0;line-height:1.5}.verdict .date-out{display:block;margin-top:9px;font-size:13px;color:#fff9}.verdict .date-out b{color:#fff;font-weight:700}.verdict-contra{display:flex;gap:10px;align-items:flex-start;margin:15px 0 0;padding:12px 14px;background:#ffffff1c;border-radius:12px;font-size:13.5px;line-height:1.45;color:#fff}.verdict-contra svg{flex:none;margin-top:1px;color:#f8deaa}.check{border:1px solid var(--line);border-radius:14px;padding:15px 16px;margin-bottom:10px;background:var(--surface);box-shadow:var(--shadow)}.check.stop{border-left:4px solid var(--stop)}.check.hold{border-left:4px solid var(--hold)}.check.info{border-left:4px solid var(--ink-3)}.check-top{display:flex;align-items:flex-start;gap:12px}.check-top strong{font-size:15px;font-weight:700;letter-spacing:-.01em}.check p{margin:7px 0 0;font-size:13.5px;color:var(--ink-2);line-height:1.5}.check .clears{margin-left:auto;flex:none;text-align:right;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.check .clears b{display:block;font-family:var(--mono);font-size:13px;letter-spacing:-.02em;text-transform:none;color:var(--ink);font-weight:600;margin-top:2px}.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.chip{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--sunk);color:var(--ink-2)}.chip.warn{background:var(--hold-tint);color:var(--hold)}.chip.bad{background:var(--stop-tint);color:var(--stop)}.chip.good{background:var(--go-tint);color:var(--go)}.caveat{display:flex;gap:9px;margin-top:11px;padding:10px 12px;background:var(--sunk);border-radius:10px;font-size:12.5px;line-height:1.45;color:var(--ink-2)}.caveat svg{flex:none;margin-top:2px;color:var(--ink-3)}.passed{border-top:1px solid var(--line)}.passed-row{display:flex;gap:14px;padding:13px 2px;align-items:baseline}.passed-row .nm{font-weight:600;font-size:14px;min-width:38%}.passed-row .dt{font-size:13px;color:var(--ink-3)}.picker{width:100%;display:flex;align-items:center;gap:12px;background:none;border:0;border-top:1px solid var(--line);padding:16px 20px;cursor:pointer;text-align:left}.picker:first-child{border-top:0}.picker .lbl{font-size:14px;font-weight:500;color:var(--ink-2);flex:none;min-width:78px}.picker .val{margin-left:auto;min-width:0;font-weight:700;font-size:15px;text-align:right;color:var(--ink);letter-spacing:-.01em;line-height:1.3}.picker .val.placeholder{color:var(--accent)}.picker .val.num{font-size:13.5px;font-weight:600}.picker .caret{flex:none;color:var(--ink-3)}.picker:hover{background:#fafafc}.adjust{border-top:1px solid var(--line);padding:15px 20px 17px;background:#fafafc}.adjust-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:flex;flex-direction:column;gap:5px}.field span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3)}.field input{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface);font-size:15px;font-weight:600;width:100%}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#14162b73;z-index:50;display:flex;align-items:flex-end;justify-content:center;animation:fade .16s ease}.sheet{background:var(--surface);width:100%;max-height:86vh;border-radius:20px 20px 0 0;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom);animation:rise .22s cubic-bezier(.22,.9,.3,1)}.sheet-head{padding:17px 20px 13px;border-bottom:1px solid var(--line);flex:none}.sheet-head h3{margin:0 0 11px;font-size:17px;font-weight:800;letter-spacing:-.02em}.sheet-search{width:100%;border:1px solid var(--line);background:var(--sunk);border-radius:11px;padding:11px 13px;font-size:15.5px}.sheet-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:6px 0 14px}.sheet-group{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);padding:15px 20px 5px}.sheet-opt{width:100%;display:flex;align-items:center;gap:11px;text-align:left;border:0;background:none;padding:13px 20px;cursor:pointer;font-size:15px;font-weight:500}.sheet-opt:hover{background:var(--sunk)}.sheet-opt[aria-selected=true]{color:var(--accent);font-weight:700}.sheet-opt .meta{margin-left:auto;font-size:12px;font-weight:600;color:var(--ink-3)}.sheet-opt .tick{flex:none;color:var(--accent)}@keyframes rise{0%{transform:translateY(14px);opacity:.6}to{transform:none;opacity:1}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}@media (min-width: 900px){.scrim{align-items:center}.sheet{max-width:460px;border-radius:16px;max-height:74vh}}.btn{border:0;border-radius:var(--r-ctl);padding:12px 18px;cursor:pointer;font-weight:700;font-size:14.5px;background:var(--sunk);color:var(--ink)}.btn.primary{background:var(--accent);color:#fff}.btn.primary:disabled{opacity:.55;cursor:default}.btn.ghost{background:none;color:var(--ink-2)}.btn.block{width:100%}.empty{border:1px dashed var(--line);border-radius:var(--r-card);padding:34px 22px;text-align:center;color:var(--ink-3);font-size:14px;background:#fafafc}.empty strong{display:block;color:var(--ink-2);font-weight:700;margin-bottom:5px;font-size:15px}.lesson{display:flex;gap:12px;background:var(--stop-tint);border-radius:14px;padding:15px 16px;margin-bottom:12px}.lesson.note{background:var(--sunk)}.lesson svg{flex:none;margin-top:1px;color:var(--stop)}.lesson.note svg{color:var(--ink-3)}.lesson strong{display:block;font-size:14.5px;font-weight:700;margin-bottom:4px}.lesson p{margin:0;font-size:13.5px;line-height:1.5;color:var(--ink-2)}.mini{display:flex;gap:10px}.mini>div{flex:1;background:var(--sunk);border-radius:12px;padding:12px 14px}.mini .v{font-family:var(--mono);font-size:20px;font-weight:600;letter-spacing:-.03em;white-space:nowrap}.mini .k{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin-top:2px}.login{min-height:100%;display:grid;place-items:center;padding:24px;background:var(--brand)}.login-card{background:var(--surface);border-radius:20px;padding:30px 26px;width:100%;max-width:380px;box-shadow:0 20px 50px #00000047}.login-mark{width:46px;height:46px;border-radius:13px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:800;font-size:20px;margin-bottom:18px}.login h1{font-size:23px;font-weight:800;letter-spacing:-.03em;margin:0 0 4px}.login .sub{font-size:13.5px;color:var(--ink-3);margin:0 0 22px}.login .field{margin-bottom:13px}.login .err{background:var(--stop-tint);color:var(--stop);border-radius:10px;padding:10px 12px;font-size:13px;font-weight:600;margin-bottom:13px}.boot{min-height:100%;display:grid;place-items:center;color:var(--ink-3);font-size:14px;font-weight:600}.rows{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);overflow:hidden;margin-bottom:14px}.row{width:100%;display:flex;align-items:center;gap:12px;padding:14px 16px;text-align:left;background:none;border:0;border-top:1px solid var(--line);color:inherit}.row:first-child{border-top:0}button.row{cursor:pointer}button.row:hover{background:#fafafc}.row-main{min-width:0;flex:1}.row .t{font-weight:700;font-size:14.5px;letter-spacing:-.01em}.row .s{font-size:12.5px;color:var(--ink-3);margin-top:2px;line-height:1.4}.row-right{margin-left:auto;text-align:right;flex:none}.row .r{font-size:13.5px;font-weight:700}.row .rs{font-size:11px;color:var(--ink-3);margin-top:1px}.row .chips{margin-top:7px}.stack-head{display:flex;align-items:baseline;gap:8px;margin:24px 4px 10px}.stack-head h2{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin:0}.stack-head p{margin:0 0 0 auto;font-size:12px;color:var(--ink-3);font-weight:600}.stack-note{margin:-4px 4px 10px;font-size:12.5px;color:var(--ink-3);line-height:1.45}.filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:14px 2px 12px}.filter{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer}.filter[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:#fff}.filter-count{margin-left:auto;font-size:12px;font-weight:600;color:var(--ink-3)}.form{padding:4px 20px 8px;display:flex;flex-direction:column;gap:15px}.form .field span{font-size:11px}.form input,.form select,.form textarea{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface);font-size:15.5px;font-weight:500;width:100%;font-family:inherit;resize:vertical}.form .help{font-size:11.5px;color:var(--ink-3);font-style:normal;line-height:1.4}.toggle{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 12px;cursor:pointer}.toggle .knob{width:38px;height:22px;border-radius:999px;background:var(--sunk);position:relative;flex:none;transition:background .15s}.toggle .knob:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000038;transition:transform .15s}.toggle.on .knob{background:var(--accent)}.toggle.on .knob:after{transform:translate(16px)}.toggle em{font-style:normal;font-size:14.5px;font-weight:600}.form-actions{padding:16px 20px 8px;display:flex;flex-direction:column;gap:8px}.btn.danger{background:var(--stop);color:#fff}.confirm{border:1px solid var(--line);border-radius:12px;padding:13px 14px;font-size:13.5px;color:var(--ink-2);line-height:1.45}.confirm>div{display:flex;gap:8px;margin-top:10px}.confirm .btn{flex:1;padding:10px;font-size:14px}.add-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--accent);border-radius:999px;padding:8px 15px 8px 12px;font-size:13.5px;font-weight:700;cursor:pointer}.add-btn:hover{background:var(--accent-tint)}.row-edit{flex:none;border:0;background:none;color:var(--ink-3);padding:6px;cursor:pointer;border-radius:8px}.row-edit:hover{background:var(--sunk);color:var(--accent)}.bank-nav{display:flex;gap:6px;overflow-x:auto;padding:12px 2px 4px;margin:0 -2px}.bank-nav button{flex:none;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.bank-nav button[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:#fff}.bank-nav button .n{opacity:.55;margin-left:5px;font-weight:600}.bank-head{display:flex;align-items:baseline;gap:8px;margin:22px 4px 9px;scroll-margin-top:76px}.bank-head h2{font-size:15px;font-weight:800;letter-spacing:-.02em;margin:0}.bank-head span{font-size:12px;color:var(--ink-3);font-weight:600}.bank-head .rank{font-family:var(--mono);font-size:11px;color:var(--ink-3);background:var(--sunk);border-radius:6px;padding:2px 6px;font-weight:600}.todo{border-left:4px solid var(--ink-3)}.todo.due{border-left-color:var(--hold)}.todo.late{border-left-color:var(--stop)}.todo-when{font-family:var(--mono);font-size:12.5px;font-weight:600}.todo-when.late{color:var(--stop)}
