:root{--navy:#12243f;--indigo:#1e3a64;--gold:#c8923a;--gold-soft:#f3e3c4;--cream:#faf6ee;--paper:#fff;--ink:#1b2433;--muted:#5d6879;--line:#e3dccd;--ok:#1d7a58;--warn:#b4690e;--bad:#b3372a;--info:#2a5fa8;--radius:14px;--shadow:0 1px 2px #12243f14, 0 6px 20px #12243f0f;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--nav-h:64px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--cream:#0e1726;--paper:#16233a;--ink:#eef1f6;--muted:#a2adbf;--line:#2a3a56;--gold-soft:#3a2f1a;--ok:#4cc79a;--warn:#f0b255;--bad:#ff8a7a;--info:#7db2f5}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--cream);color:var(--ink);font:16px/1.5 var(--sans);-webkit-tap-highlight-color:transparent;margin:0}h1,h2,h3{font-family:var(--serif);color:var(--navy);margin:0 0 .5rem;line-height:1.2}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) h1,:root:not([data-theme=light]) h2,:root:not([data-theme=light]) h3{color:#fff}}h1{font-size:1.6rem}h2{font-size:1.25rem}h3{font-size:1.05rem}p{margin:0 0 .75rem}a{color:var(--info)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.shell{min-height:100dvh;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom))}.topbar{z-index:20;padding:.6rem 16px;padding-top:calc(.6rem + env(safe-area-inset-top));background:var(--navy);color:#fff;align-items:center;gap:.75rem;display:flex;position:sticky;top:0}.topbar .brand{font:700 1.15rem var(--serif);letter-spacing:.02em;color:#fff;align-items:center;gap:.5rem;text-decoration:none;display:flex}.topbar .brand i{background:var(--gold);width:28px;height:28px;color:var(--navy);border-radius:8px;place-items:center;font-style:normal;font-weight:800;display:inline-grid}.topbar .sp{flex:1}.topbar .btn.ghost{color:#fff;border-color:#ffffff8c}.topbar .who{opacity:.85;text-overflow:ellipsis;white-space:nowrap;max-width:40vw;font-size:.8rem;overflow:hidden}.main{max-width:980px;margin:0 auto;padding:16px}.nav{z-index:15;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--paper);border-top:1px solid var(--line);display:flex;position:fixed;bottom:0;left:0;right:0}.nav a{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-width:0;font-size:.72rem;text-decoration:none;display:flex}.nav a svg{width:22px;height:22px}.nav a[aria-current=page]{color:var(--navy);font-weight:700}.nav a[aria-current=page] svg{color:var(--gold)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .nav a[aria-current=page]{color:#fff}}@media (min-width:900px){.shell{padding-bottom:0;padding-left:220px}.nav{border-top:0;border-right:1px solid var(--line);flex-direction:column;justify-content:flex-start;width:220px;height:100dvh;padding:70px 10px 10px;top:0;bottom:auto;right:auto}.nav a{border-radius:10px;flex-direction:row;flex:0;justify-content:flex-start;gap:.75rem;padding:.7rem .9rem;font-size:.95rem}.nav a[aria-current=page]{background:var(--gold-soft)}.topbar .brand{z-index:30;background:var(--navy);width:220px;height:52px;padding:0 16px;position:fixed;top:0;left:0}}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;padding:16px}.card.hero{background:linear-gradient(135deg, var(--navy), var(--indigo));color:#fff;border:0}.card.hero h1,.card.hero h2,.card.hero h3{color:#fff}.grid{gap:14px;display:grid}@media (min-width:640px){.grid.c2{grid-template-columns:1fr 1fr}.grid.c3{grid-template-columns:repeat(3,1fr)}.grid.c4{grid-template-columns:repeat(4,1fr)}}.row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.row.sb{justify-content:space-between}.muted{color:var(--muted);font-size:.9rem}.small{font-size:.85rem}.btn{border:1px solid var(--navy);background:var(--navy);color:#fff;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:.4rem;min-height:44px;padding:.55rem 1.1rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.gold{background:var(--gold);border-color:var(--gold);color:#1b1405}.btn.ghost{color:var(--navy);background:0 0}.btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn.sm{min-height:36px;padding:.3rem .8rem;font-size:.9rem}.btn.block{width:100%}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .btn.ghost{color:#fff;border-color:var(--line)}}.card.hero .btn.ghost{color:#fff;border-color:#ffffff80}.field{margin-bottom:12px;display:block}.field>span{margin-bottom:4px;font-size:.88rem;font-weight:600;display:block}.field>span em{color:var(--bad);font-style:normal}.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--paper);border-radius:10px;width:100%;min-height:44px;padding:.55rem .75rem}.field textarea{resize:vertical;min-height:88px}.field.err input,.field.err select,.field.err textarea{border-color:var(--bad)}.field .e{color:var(--bad);margin-top:3px;font-size:.85rem}.field .h{color:var(--muted);margin-top:3px;font-size:.8rem}.pw{position:relative}.pw button{min-height:36px;color:var(--info);cursor:pointer;background:0 0;border:0;padding:0 .7rem;font-weight:600;position:absolute;top:4px;right:4px}.chk{align-items:flex-start;gap:.6rem;margin-bottom:10px;display:flex}.chk input{flex:none;width:22px;height:22px;margin-top:2px}.badge{background:var(--gold-soft);color:#6a4a10;border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:700;display:inline-block}.badge.ok{color:#11593f;background:#d9f1e6}.badge.bad{color:#8a2519;background:#f9dcd7}.badge.info{color:#1b4a85;background:#dce8f9}.badge.mute{color:#444a58;background:#e8e8ec}.alert{border:1px solid;border-radius:10px;margin-bottom:12px;padding:10px 14px;font-size:.93rem}.alert.err{color:#7a2017;background:#fde9e6;border-color:#f2b9b0}.alert.ok{color:#0f5238;background:#e3f5ec;border-color:#a9dcc5}.alert.info{color:#173f73;background:#e6effb;border-color:#b6cdee}.alert.warn{color:#6b4306;background:#fff4e0;border-color:#efce92}.offline{color:#fff;text-align:center;background:#5a3a05;padding:4px 8px;font-size:.85rem}.bar{background:var(--line);border-radius:99px;height:10px;overflow:hidden}.bar>i{background:linear-gradient(90deg, var(--gold), var(--ok));border-radius:99px;height:100%;display:block}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;margin-bottom:14px;display:flex;overflow-x:auto}.tabs button{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;flex:none;padding:0 14px;font-weight:600}.tabs button[aria-selected=true]{color:var(--navy);border-color:var(--gold)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .tabs button[aria-selected=true]{color:#fff}}.steps{gap:6px;margin-bottom:14px;display:flex}.steps i{background:var(--line);border-radius:9px;flex:1;height:6px}.steps i.on{background:var(--gold)}table.t{border-collapse:collapse;width:100%;font-size:.92rem}table.t th,table.t td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:8px 10px}table.t th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.78rem}.scroll{overflow-x:auto}.li{color:inherit;border:1px solid var(--line);background:var(--paper);border-radius:12px;margin-bottom:8px;padding:12px 14px;text-decoration:none;display:block}.li:hover{border-color:var(--gold)}.stat{text-align:center}.stat b{font:700 1.9rem var(--serif);color:var(--navy);display:block}.stat span{color:var(--muted);font-size:.82rem}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .stat b{color:#fff}}.overlay{z-index:50;background:#08101e99;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--paper);width:100%;max-width:520px;max-height:92dvh;padding:20px 16px calc(20px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;overflow:auto}@media (min-width:640px){.overlay{align-items:center}.modal{border-radius:18px}}.toast{left:50%;bottom:calc(var(--nav-h) + 16px + env(safe-area-inset-bottom));z-index:60;background:var(--navy);color:#fff;box-shadow:var(--shadow);border-radius:99px;max-width:92vw;padding:10px 18px;position:fixed;transform:translate(-50%)}.chat{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.bubble{background:var(--paper);border:1px solid var(--line);border-radius:16px;max-width:88%;padding:10px 14px}.bubble.me{background:var(--navy);color:#fff;border-color:var(--navy);align-self:flex-end}.bubble small{opacity:.7;margin-bottom:2px;font-weight:700;display:block}.chip{border:1px dashed var(--gold);cursor:pointer;color:inherit;background:0 0;border-radius:99px;margin:0 6px 6px 0;padding:6px 12px;font-size:.85rem;display:inline-block}.avatar{background:var(--gold);width:48px;height:48px;color:var(--navy);font:800 1.2rem var(--serif);border-radius:50%;flex:none;place-items:center;display:grid}.auth{background:radial-gradient(circle at 20% 0%, var(--indigo), var(--navy) 60%);place-items:center;min-height:100dvh;padding:20px 16px;display:grid}.auth .box{background:var(--paper);border-radius:20px;width:100%;max-width:420px;padding:26px 22px;box-shadow:0 20px 60px #00000059}.logo-card{background:#fff;border-radius:18px;place-items:center;width:-moz-fit-content;width:fit-content;margin:0 auto 14px;padding:10px 18px;display:grid}.logo-card img{max-width:100%;height:auto;display:block}.auth .logo b{font:800 1.9rem var(--serif);color:var(--navy)}.auth .logo span{color:var(--muted);letter-spacing:.05em;font-size:.8rem;display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .auth .logo b{color:#fff}}.kv{grid-template-columns:1fr;gap:2px 14px;margin:0;display:grid}@media (min-width:560px){.kv{grid-template-columns:190px 1fr}}.kv dt{color:var(--muted);font-size:.85rem}.kv dd{word-break:break-word;margin:0 0 8px}@media (prefers-reduced-motion:no-preference){.card,.btn{transition:box-shadow .15s,transform .1s}.btn:active{transform:scale(.98)}}
