:root{--bg:#0a0a0c;--surface:#141418;--surface-2:#1c1c21;--line:#ffffff0f;--fg:#f5f5f2;--muted:#8e8f9c;--accent:#d9c296;--on-accent:#0a0a0c;--accent-soft:#d9c29621;--platinum:#e6e7ea;--champagne:#d9c296;--up:#63d68c;--down:#f0647e;--warn:#e8b34b;--s1:#82992a;--s2:#3e7fd6;--s3:#b8842c;--s4:#bc5697;--radius:22px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Inter", sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:var(--font);-webkit-font-smoothing:antialiased;min-height:100dvh;font-size:15px;line-height:1.55}a{color:inherit;text-decoration:none}h1,h2,h3{letter-spacing:-.2px;margin:0 0 .5rem;line-height:1.25}h1{font-size:1.5rem}h2{font-size:1.15rem}h3{font-size:1rem}p{margin:.4rem 0}.hero-num{letter-spacing:-.8px;font-variant-numeric:tabular-nums;color:var(--platinum);font-size:2.35rem;font-weight:800;line-height:1.1}.champagne{color:var(--champagne)}.shell{max-width:1080px;margin:0 auto;padding:0 16px 96px}.topbar{border-bottom:1px solid var(--line);z-index:30;background:color-mix(in srgb, var(--bg) 90%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:10px;margin-bottom:12px;padding:12px 0 10px;display:flex;position:sticky;top:0}.brand{letter-spacing:.2px;align-items:center;gap:8px;font-size:1.08rem;font-weight:800;display:flex}.brand .dot{background:var(--accent);border-radius:50%;width:9px;height:9px;box-shadow:0 0 8px #d9c29673}.topnav{gap:4px;margin-left:auto;margin-right:4px;display:flex}.topnav a{color:var(--muted);border-radius:999px;padding:8px 13px;font-size:.92rem;font-weight:600;transition:background .15s,color .15s}.topnav a:hover{color:var(--fg);background:var(--surface)}.topnav a.on{color:var(--fg);background:var(--surface-2)}.topbar .actions{align-items:center;gap:8px;margin-left:auto;display:flex}.topnav+.actions,.topnav~.actions{margin-left:0}.iconbtn{background:var(--surface-2);width:38px;height:38px;color:var(--fg);border:1px solid var(--line);border-radius:50%;justify-content:center;align-items:center;transition:background .15s;display:inline-flex;position:relative}.iconbtn:hover{background:var(--surface)}.iconbtn svg{width:19px;height:19px;display:block}.avatar{background:var(--accent);width:38px;height:38px;color:var(--on-accent);letter-spacing:.3px;border-radius:50%;justify-content:center;align-items:center;font-size:.88rem;font-weight:800;display:inline-flex}.badge-dot{background:var(--down);color:#fff;text-align:center;border-radius:999px;min-width:17px;height:17px;padding:0 5px;font-size:.7rem;font-weight:700;line-height:17px;display:inline-block}.iconbtn .badge-dot{position:absolute;top:-3px;right:-3px}.tabbar{z-index:40;left:50%;bottom:calc(10px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--surface-2) 94%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:26px;width:min(100% - 20px,560px);padding:8px 10px;transition:width .32s cubic-bezier(.3,.7,.2,1),padding .32s cubic-bezier(.3,.7,.2,1),border-radius .32s cubic-bezier(.3,.7,.2,1),bottom .32s cubic-bezier(.3,.7,.2,1);display:none;position:fixed;transform:translate(-50%);box-shadow:0 10px 34px #00000080}.tabbar a{color:var(--muted);white-space:nowrap;flex-direction:column;flex:1;align-items:center;gap:3px;padding:2px 0;font-size:.66rem;font-weight:600;display:flex;position:relative}.tabbar a .ico{border-radius:999px;justify-content:center;align-items:center;width:46px;height:28px;line-height:0;transition:background .2s,color .2s;display:inline-flex}.tabbar a .ico svg{width:20px;height:20px;display:block}.tabbar a.on{color:var(--fg)}.tabbar a.on .ico{background:var(--accent);color:var(--on-accent)}.tabbar .lab{max-height:16px;transition:opacity .2s,max-height .26s}.tabbar.mini{width:256px;bottom:calc(14px + env(safe-area-inset-bottom));border-radius:999px;padding:6px 8px}.tabbar.mini .lab{opacity:0;max-height:0;overflow:hidden}.tabbar .badge-dot{position:absolute;top:-2px;right:calc(50% - 24px)}@media (max-width:760px){.topnav{display:none}.tabbar{display:flex}.shell{padding-bottom:calc(150px + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.tabbar,.tabbar .lab,.tabbar a .ico{transition:none}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;padding:18px}.card h2{align-items:center;gap:8px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}@media (max-width:760px){.grid2,.grid3{grid-template-columns:1fr}}.muted{color:var(--muted)}.small{font-size:.85rem}.up{color:var(--up)}.down{color:var(--down)}.mono{font-variant-numeric:tabular-nums}.kpi{flex-wrap:wrap;gap:24px;display:flex}.kpi .item .lab{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-size:.8rem}.kpi .item .val{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:800}.kpi .item .sub{font-size:.9rem;font-weight:600}label.f{color:var(--muted);margin-bottom:10px;font-size:.88rem;font-weight:600;display:block}input,select,textarea{background:var(--surface-2);width:100%;color:var(--fg);border:1px solid var(--line);border-radius:14px;margin-top:4px;padding:11px 13px;font-family:inherit;font-size:.95rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.btn{background:var(--accent);color:var(--on-accent);cursor:pointer;border:none;border-radius:14px;padding:11px 18px;font-size:.95rem;font-weight:700;transition:transform 80ms,filter .15s;display:inline-block}.btn:hover{filter:brightness(1.06)}.btn:active{transform:scale(.98)}.btn.ghost{background:var(--surface-2);color:var(--fg);border:1px solid var(--line)}.btn.danger{color:var(--down);border:1px solid var(--down);background:0 0}.btn.sm{border-radius:11px;padding:7px 12px;font-size:.85rem}.row{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.row>*{flex:1;min-width:130px}.row .fit{flex:none;min-width:0}.banner{border-radius:14px;margin-bottom:12px;padding:11px 14px;font-size:.92rem;font-weight:600}.banner.ok{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent)}.banner.err{color:var(--down);border:1px solid var(--down);background:#f0647e1f}.banner.info{color:var(--warn);background:#e8b34b1a;border:1px solid #e8b34b80}.tblwrap{overflow-x:auto}table.tbl{border-collapse:collapse;width:100%;font-size:.92rem}.tbl th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--line);padding:8px 10px;font-size:.78rem}.tbl td{border-bottom:1px solid var(--line);vertical-align:middle;font-variant-numeric:tabular-nums;padding:11px 10px}.tbl tr:last-child td{border-bottom:none}.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:var(--surface-2)}.chip{background:var(--surface-2);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:3px 10px;font-size:.78rem;font-weight:700;display:inline-block}.chip.vert{color:var(--up);border-color:var(--up);background:#63d68c1f}.chip.orange{color:var(--warn);border-color:var(--warn);background:#e8b34b1f}.chip.rouge{color:var(--down);border-color:var(--down);background:#f0647e1f}.chip.iris{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.auth{justify-content:center;align-items:center;min-height:100dvh;padding:20px;display:flex}.auth .box{width:100%;max-width:420px}.auth .box .card{padding:26px}.auth h1{text-align:center;margin-bottom:4px}.auth .sub{text-align:center;color:var(--muted);margin-bottom:18px}.lesson-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 4px;display:flex}.lesson-row:last-child{border-bottom:none}.lesson-row .st{text-align:center;width:28px;font-size:1.2rem}.progressbar{background:var(--surface-2);border-radius:999px;height:8px;overflow:hidden}.progressbar>div{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.qr-box{background:#fff;border-radius:14px;width:190px;padding:10px}.qr-box svg{width:100%;height:auto;display:block}.codes{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid}.codes code{background:var(--surface-2);border:1px solid var(--line);text-align:center;border-radius:8px;padding:6px 8px;font-size:.9rem}.disclaimer{color:var(--muted);border-top:1px solid var(--line);margin-top:14px;padding-top:10px;font-size:.78rem}.empty{text-align:center;color:var(--muted);padding:36px 16px}.empty .big{margin-bottom:8px;font-size:2.2rem}details.fold summary{cursor:pointer;font-weight:700}.term{display:inline-block;position:relative}.term .term-w{color:inherit;-webkit-text-decoration:underline dotted var(--accent);text-decoration:underline dotted var(--accent);text-underline-offset:3px;cursor:help}.term .term-pop{z-index:30;background:var(--surface-2);border:1px solid var(--line);width:min(300px,78vw);color:var(--fg);text-align:left;border-radius:12px;padding:10px 12px;font-size:.82rem;font-weight:400;line-height:1.45;display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000080}.term:hover .term-pop,.term:focus-within .term-pop{display:block}.reco-card{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;margin-top:10px;padding:12px 14px}.reco-card .sentence{margin-top:6px;line-height:1.55}.conf{letter-spacing:2px;font-size:.85rem}.conf .on{color:var(--accent)}.conf .off{color:var(--line)}details.why{border-top:1px dashed var(--line);margin-top:8px;padding-top:8px}details.why summary{cursor:pointer;color:var(--accent);font-weight:700}.why-block{margin-top:8px}.scenario-tabs{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.scenario-tabs a{border:1px solid var(--line);color:var(--muted);background:var(--surface-2);border-radius:999px;padding:5px 11px;font-size:.82rem;font-weight:700}.scenario-tabs a.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.mech-step{border-left:3px solid var(--accent);margin:10px 0;padding:4px 0 4px 12px}.mech-step h4{margin:0 0 4px;font-size:.92rem}.mech-step p{color:var(--muted);margin:0;font-size:.86rem;line-height:1.55}.sugg{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:11px 4px;display:flex}.sugg:last-child{border-bottom:none}.sugg .why{color:var(--muted);margin-top:2px;font-size:.82rem}.form-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));align-items:end;gap:14px 16px;display:grid}.form-grid .field{flex-direction:column;min-width:0;display:flex}.form-grid .field>span{color:var(--muted);align-items:flex-end;min-height:2.4em;margin-bottom:6px;font-size:.82rem;font-weight:600;line-height:1.25;display:flex}.form-grid input,.form-grid select{height:46px;margin-top:0}.form-grid .actions-cell{align-items:flex-end;height:100%;display:flex}.form-grid .actions-cell .btn{width:100%;height:46px}.form-sep{border-top:1px solid var(--line);color:var(--muted);text-transform:uppercase;letter-spacing:.5px;grid-column:1/-1;margin:2px 0 0;padding-top:12px;font-size:.78rem;font-weight:700}.device{border:1px solid var(--line);background:var(--surface-2);border-radius:16px;margin-bottom:12px;padding:14px 16px}.device.expired{opacity:.55}.device .head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.device .head h3{margin:0;font-size:.98rem}.device dl{grid-template-columns:auto 1fr;gap:6px 12px;margin:10px 0 0;font-size:.86rem;display:grid}.device dt{color:var(--muted);font-weight:600}.device dd{margin:0}.map-layout{flex-wrap:wrap;align-items:flex-start;gap:14px;display:flex}.map-aside{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;flex:260px;min-width:240px;max-height:620px;padding:12px 14px;overflow-y:auto}.city-row{border-bottom:1px solid var(--line)}.city-row:last-of-type{border-bottom:none}.city-row summary::-webkit-details-marker{display:none}.city-row[open]{padding-bottom:10px}@media (max-width:720px){.city-cols-wide{display:none}.map-aside{max-height:none}}@media print{body{color:#111;background:#fff}.topbar,.tabbar,.no-print{display:none!important}.shell{max-width:none;padding:0}.card{box-shadow:none;break-inside:avoid;background:#fff;border:1px solid #ddd}.banner{color:#333;background:#f7f7f5;border:1px solid #ccc}.muted{color:#555}.tbl th{color:#333;border-color:#ccc}.tbl td{border-color:#e2e2e2}.up{color:#1a7f4b}.down{color:#b3384f}.hero-num{color:#111}a{color:inherit;text-decoration:none}}
