:root{--bg:#f5f6fa;--surface:#fff;--surface-2:#f0f2f7;--border:#e3e6ee;--text:#141824;--muted:#5d6475;--primary:#2156d9;--primary-ink:#fff;--primary-soft:#e6edfc;--danger:#c62828;--danger-soft:#fdecec;--warning:#b45309;--warning-soft:#fdf3e2;--success:#15803d;--success-soft:#e7f6ec;--radius:14px;--radius-sm:10px;--shadow:0 1px 2px #1418240d, 0 2px 8px #1418240a;--nav-h:64px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f1117;--surface:#171a22;--surface-2:#1f232d;--border:#2b303c;--text:#eef0f5;--muted:#a3a9b8;--primary:#6b9bff;--primary-ink:#0b1020;--primary-soft:#1c2742;--danger:#ff7b7b;--danger-soft:#3a1d1f;--warning:#f5b454;--warning-soft:#3a2c16;--success:#5fd38d;--success-soft:#16301f;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.5}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0 0 12px;line-height:1.25}h1{font-size:26px}h2{font-size:19px}h3{font-size:16px}p{margin:0 0 12px}.muted{color:var(--muted)}.small{font-size:14px}.tiny{font-size:12.5px}.nowrap{white-space:nowrap}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.topbar{z-index:20;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0}.topbar-inner{align-items:center;gap:12px;max-width:1120px;margin:0 auto;padding:10px 16px;display:flex}.brand{color:var(--text);letter-spacing:-.3px;margin-right:8px;font-size:20px;font-weight:800}.brand span{color:var(--primary)}.mainnav{flex:1;gap:4px;display:flex}.mainnav a{color:var(--muted);border-radius:999px;padding:8px 12px;font-size:15px;font-weight:600}.mainnav a:hover{background:var(--surface-2);text-decoration:none}.mainnav a.active{background:var(--primary-soft);color:var(--primary)}.switchers{align-items:center;gap:8px;display:flex}.switchers form{align-items:center;gap:6px;display:flex}.switchers select{min-height:36px;padding:6px 8px;font-size:14px}.container{max-width:1120px;margin:0 auto;padding:20px 16px 40px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:16px;display:flex}.page-head h1{margin:0}.bottomnav{display:none}@media (max-width:760px){.mainnav{display:none}.topbar-inner{flex-wrap:wrap}.switchers{margin-left:auto}.container{padding-bottom:calc(var(--nav-h) + 32px)}.bottomnav{z-index:30;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);display:flex;position:fixed;bottom:0;left:0;right:0}.bottomnav a{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:12px;font-weight:600;display:flex}.bottomnav a.active{color:var(--primary)}.bottomnav svg{width:24px;height:24px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card+.card{margin-top:16px}.grid>.card+.card{margin-top:0}.card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.card-head h2{margin:0}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:900px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.grid-2,.grid-3{grid-template-columns:minmax(0,1fr)}}.stack>*+*{margin-top:12px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spacer{flex:1}.btn{border:1px solid var(--border);background:var(--surface);min-height:40px;color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-2);text-decoration:none}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.btn-primary:hover{background:var(--primary);opacity:.92}.btn-danger{color:var(--danger);border-color:var(--danger);background:0 0}.btn-ghost{background:0 0;border-color:#0000}.btn-sm{min-height:32px;padding:4px 12px;font-size:14px}.btn-block{width:100%}.btn:focus-visible{outline:3px solid var(--primary);outline-offset:2px}a:focus-visible{outline:3px solid var(--primary);outline-offset:2px}input:focus-visible{outline:3px solid var(--primary);outline-offset:2px}select:focus-visible{outline:3px solid var(--primary);outline-offset:2px}textarea:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.badge{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:13px;font-weight:700;display:inline-block}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-success{background:var(--success-soft);color:var(--success)}.badge-primary{background:var(--primary-soft);color:var(--primary)}.dot{vertical-align:middle;border-radius:50%;width:10px;height:10px;display:inline-block}.alert{border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--text);margin-bottom:16px;padding:10px 14px}.alert-danger{background:var(--danger-soft);color:var(--danger)}.alert-success{background:var(--success-soft);color:var(--success)}.empty{text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius-sm);padding:18px}.card.yp{margin-bottom:16px}.yp-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.yp-title{font-size:24px;font-weight:800;line-height:1.15}.yp-title .muted{font-size:18px;font-weight:600}.yp-side{text-align:left;align-items:center;gap:10px;display:flex}.yp-side b{color:var(--primary);font-size:32px;line-height:1}.yp-side span{font-size:13px;font-weight:600;line-height:1.3}.yp-bar{align-items:flex-start;display:flex}.yp-part{flex:1 1 0;min-width:48px;display:flex}.yp-gap{flex:0 0 6px}.yp-gap.wide{flex-basis:16px}.yp-seg-wrap{flex:auto;min-width:0}.yp-seg{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;height:12px;overflow:hidden}.yp-seg.current{border-color:var(--primary)}.yp-fill{background:var(--primary);height:100%}.yp-cap{color:var(--muted);text-align:center;white-space:nowrap;margin-top:4px;font-size:11px}.yp-facts{color:var(--muted);margin-top:10px;font-size:13px}.tv-yp{color:#ffd38a;margin-top:4px;font-size:20px}label{font-size:14px;font-weight:600}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field .hint{color:var(--muted);font-size:13px;font-weight:400}input[type=text],input[type=email],input[type=number],input[type=date],input[type=time],input[type=search],select,textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:44px;color:var(--text);font:inherit;padding:10px 12px;font-size:16px}textarea{resize:vertical;min-height:110px}input[type=color]{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:56px;height:44px;padding:2px}.check{align-items:center;gap:10px;margin-bottom:10px;font-weight:500;display:flex}.check input{width:20px;height:20px}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;display:grid}@media (max-width:640px){.form-row{grid-template-columns:minmax(0,1fr)}}.otp-input{letter-spacing:8px;text-align:center;font-variant-numeric:tabular-nums;font-size:28px!important}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 8px}.table th{color:var(--muted);font-size:13px;font-weight:700}.table-wrap{overflow-x:auto}.alist{margin:0;padding:0;list-style:none}.aitem{border-bottom:1px solid var(--border);align-items:stretch;gap:12px;padding:12px 0;display:flex}.aitem:last-child{border-bottom:0}.abar{border-radius:4px;flex:none;width:5px}.abody{flex:1;min-width:0}.atitle{color:var(--text);overflow-wrap:anywhere;font-weight:700;display:block}.ameta{color:var(--muted);font-size:14px}.aside{flex-direction:column;flex:none;align-items:flex-end;gap:6px;display:flex}.aside form{margin:0}.aitem.is-done .atitle{color:var(--muted);text-decoration:line-through}.bucket-title{align-items:center;gap:8px;margin:0 0 4px;font-size:16px;display:flex}.count{color:var(--muted);font-size:13px;font-weight:600}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.stat b{font-size:28px;line-height:1.1;display:block}.stat span{color:var(--muted);font-size:13px;font-weight:600}.stat.danger b{color:var(--danger)}.stat.warning b{color:var(--warning)}@media (max-width:640px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.filters{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:600;display:inline-flex}.chip:hover{background:var(--surface-2);text-decoration:none}.chip.active{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.cal-head{color:var(--muted);text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:4px;font-size:13px;font-weight:700;display:grid}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.cal-day{background:var(--surface);border:1px solid var(--border);border-radius:10px;min-height:108px;padding:6px;overflow:hidden}.cal-day.other{opacity:.45}.cal-day.today{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.cal-day.holiday{background:var(--warning-soft)}.cal-num{justify-content:space-between;margin-bottom:4px;font-size:13px;font-weight:700;display:flex}.cal-item{background:var(--surface-2);color:var(--text);border-left:3px solid var(--primary);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;margin-bottom:3px;padding:2px 6px;font-size:12px;line-height:1.3;display:block;overflow:hidden}.cal-item:hover{background:var(--primary-soft);text-decoration:none}.cal-item.done{color:var(--muted);text-decoration:line-through}.cal-holiday{color:var(--warning);margin-bottom:3px;font-size:11.5px;font-weight:700}@media (max-width:760px){.cal-day{min-height:64px;padding:4px}.cal-grid .cal-item{background:var(--c,var(--primary));border-left-width:0;height:6px;padding:0;font-size:0}.cal-grid .cal-holiday{background:var(--warning);border-radius:2px;height:4px;font-size:0}}.week-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;display:grid}.week-col{background:var(--surface);border:1px solid var(--border);border-radius:10px;min-height:220px;padding:8px}.week-col.today{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}@media (max-width:900px){.week-grid{grid-template-columns:minmax(0,1fr)}.week-col{min-height:0}}.agenda-day{margin-bottom:18px}.agenda-day h3{margin-bottom:6px;font-size:15px}.kv{grid-template-columns:140px minmax(0,1fr);gap:6px 12px;margin:0;display:grid}.kv dt{color:var(--muted);font-size:14px;font-weight:600}.kv dd{margin:0}.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}.status-steps{flex-wrap:wrap;gap:6px;display:flex}.files{margin:0;padding:0;list-style:none}.files li{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 0;display:flex}.thumb{object-fit:cover;border:1px solid var(--border);border-radius:8px;width:56px;height:56px}.auth-wrap{justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.auth-card{width:100%;max-width:420px}.auth-card .brand{text-align:center;margin:0 0 6px;font-size:30px;display:block}.tv{color:#f4f6fb;background:#0b0d12;min-height:100vh;padding:2.8vh 5vw;font-size:26px;line-height:1.35}.tv a{color:#f4f6fb}.tv .muted{color:#a9b0c2}.tv-head{justify-content:space-between;align-items:center;margin-bottom:3vh;display:flex}.tv-brand{font-size:34px;font-weight:800}.tv-brand span{color:#7aa2ff}.tv-clock{text-align:right;font-size:34px;font-weight:700}.tv-cols{gap:2.4vw;display:flex}.tv-col{flex:1;min-width:0}.tv-col h2{color:#c9d3ec;margin:0 0 1.4vh;font-size:30px}.tv-card{color:#f4f6fb;background:#171b25;border:3px solid #171b25;border-radius:18px;margin-bottom:14px;padding:16px 20px;text-decoration:none;display:block}.tv-card:hover{text-decoration:none}.tv-card:focus,.tv-card.focused{border-color:#7aa2ff;outline:none;transform:scale(1.03)}.tv-card .t{font-size:28px;font-weight:700;display:block}.tv-card .m{color:#a9b0c2;font-size:22px}.tv-card .bar{vertical-align:middle;border-radius:50%;width:14px;height:14px;margin-right:10px;display:inline-block}.tv-badge{color:#dfe5f5;background:#2a3040;border-radius:999px;margin-left:8px;padding:2px 12px;font-size:20px;font-weight:800;display:inline-block}.tv-badge.red{color:#ffb3b3;background:#5a1c1f}.tv-badge.amber{color:#ffd38a;background:#4a3512}.tv-empty{color:#8790a6;padding:12px 0;font-size:24px}.tv-code{letter-spacing:12px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:96px;font-weight:800}.tv-pair{justify-content:center;align-items:center;gap:6vw;min-height:70vh;display:flex}.tv-qr{background:#fff;border-radius:18px;width:340px;height:340px;padding:18px}.tv-qr svg{width:100%;height:100%}.tv-profiles{justify-content:center;gap:3vw;margin-top:8vh;display:flex}.tv-profile{text-align:center;width:240px}.tv-avatar{color:#fff;border-radius:28px;justify-content:center;align-items:center;width:180px;height:180px;margin:0 auto 14px;font-size:84px;font-weight:800;display:flex}.tv-foot{color:#7f889d;justify-content:space-between;margin-top:3vh;font-size:20px;display:flex}.car .tv-cols{flex-direction:column}.car .tv-card{min-height:72px}@media (max-width:900px){.tv{font-size:20px}.tv-cols,.tv-pair{flex-direction:column}.tv-code{font-size:56px}}.tv-link{color:#a9b0c2;font:inherit;cursor:pointer;background:0 0;border:2px solid #0000;border-radius:8px;padding:2px 6px}.tv-link:focus{color:#fff;border-color:#7aa2ff;outline:none}
