:root{--band:#D6E6F5;--navy:#0D1B3E;--acc:#1B4F8C;--bar:#1B2F5B;--light:#EEF4FA;--red:#D0121A;--bg:#EEF2F7;--surface:#FFFFFF;--surface-2:#F7F9FC;--line:#DCE3EC;--line-strong:#C6D1DE;--text:#1E293B;--text-2:#475569;--text-3:#64748B;--text-inv:#FFFFFF;--ok:#1A7F4B;--ok-bg:#DCFCE7;--warn:#B45309;--warn-bg:#FEF3C7;--bad:#B91C1C;--bad-bg:#FEE2E2;--info-bg:#E0ECF9;--r-sm:6px;--r:10px;--r-lg:14px;--sh-1:0 1px 2px rgba(13,27,62,.06);--sh-2:0 4px 14px rgba(13,27,62,.1);--sh-3:0 18px 40px rgba(13,27,62,.18);--font:"Segoe UI",Inter,Arial,Helvetica,sans-serif;--font-brand:Cambria,Georgia,"Times New Roman",serif;--fs-xs:11px;--fs-sm:12.5px;--fs:14px;--fs-md:15px;--fs-lg:18px;--fs-xl:22px;--fs-2xl:28px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--nav-w:232px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);font-size:var(--fs);line-height:1.45}a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:var(--fs-xl);margin:0 0 var(--sp-4);color:var(--navy);letter-spacing:-.01em}h2{font-size:var(--fs-md);margin:var(--sp-5) 0 var(--sp-2);color:var(--acc);font-weight:700}::selection{background:var(--band)}.app{display:grid;grid-template-columns:var(--nav-w) 1fr;min-height:100vh}nav{background:linear-gradient(180deg,var(--bar) 0%,var(--navy) 100%);color:#fff;padding:var(--sp-4) 0;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;box-shadow:var(--sh-2)}nav .brand{display:flex;align-items:center;gap:10px;padding:2px 18px 14px;border-bottom:1px solid rgba(255,255,255,.14);margin-bottom:8px}nav .brand img{height:30px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}nav .brand b{font-family:var(--font-brand);font-size:16px;letter-spacing:.2px}nav a{display:flex;align-items:center;gap:10px;color:#cfe0f5;padding:9px 18px;font-weight:600;font-size:13.5px;border-left:3px solid transparent;transition:background .15s,color .15s}nav a:hover{background:#ffffff14;color:#fff;text-decoration:none}nav a.on{background:#ffffff24;color:#fff;border-left-color:var(--band)}nav{overflow-y:auto}.navgroup{margin-bottom:4px}.navtitle{display:flex;align-items:center;justify-content:space-between;padding:10px 18px 4px;font-size:10.5px;font-weight:700;letter-spacing:.9px;text-transform:uppercase;color:#8fb3da;cursor:pointer;-webkit-user-select:none;user-select:none}.navtitle:hover{color:#fff}.navtitle .chev{font-size:11px;opacity:.7}.navgroup a{padding:7px 18px 7px 26px;font-size:13px;font-weight:600}nav .user{margin-top:auto;padding:12px 18px;font-size:var(--fs-sm);color:#cfe0f5;border-top:1px solid rgba(255,255,255,.14)}nav .user button{margin-top:6px}main{padding:var(--sp-6) var(--sp-8);min-width:0}.top{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-4)}.top h1{margin:0;flex:1}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-4);box-shadow:var(--sh-1)}.grid{display:grid;gap:var(--sp-3)}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-4) var(--sp-5);box-shadow:var(--sh-1);position:relative;overflow:hidden;color:inherit;text-decoration:none}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--acc);opacity:.85}.stat:hover{text-decoration:none}.stat .l{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.6px;color:var(--text-3);font-weight:700}.stat .v{font-size:var(--fs-2xl);font-weight:700;color:var(--navy);margin-top:4px;line-height:1.15;font-variant-numeric:tabular-nums}.stat .s{font-size:var(--fs-sm);color:var(--text-3);margin-top:3px}.stat.warn:before{background:var(--red)}.stat.warn .v{color:var(--red)}.tbl{overflow:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--sh-1)}table{width:100%;border-collapse:collapse;background:var(--surface)}th{background:var(--light);color:var(--navy);text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap;position:sticky;top:0;z-index:1}td{padding:10px 12px;border-bottom:1px solid #EEF2F7;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--surface-2)}tfoot th{position:static;background:var(--surface-2);border-top:1px solid var(--line);text-transform:none;font-size:var(--fs-sm);letter-spacing:0}td.r,th.r{text-align:right;font-variant-numeric:tabular-nums}.items td{padding:4px 6px}.items input,.items select{padding:6px 8px}label{display:block;font-size:var(--fs-xs);font-weight:700;color:var(--text-2);margin:10px 0 4px;text-transform:uppercase;letter-spacing:.5px}input,select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:9px 11px;font-size:var(--fs);font-family:inherit;background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px #1b4f8c2e}input:disabled,select:disabled{background:var(--surface-2);color:var(--text-3)}textarea{min-height:64px;resize:vertical}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--acc)}.search{max-width:320px}.row{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.row>*{flex:1;min-width:120px}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--bar);color:#fff;border:1px solid transparent;border-radius:var(--r-sm);padding:9px 14px;font-weight:700;cursor:pointer;font-size:13px;font-family:inherit;line-height:1.2;transition:background .15s,box-shadow .15s,transform .05s;text-decoration:none}button:hover,.btn:hover{background:var(--acc);text-decoration:none}button:active,.btn:active{transform:translateY(1px)}button:focus-visible,.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #1b4f8c40}button.sec,.btn.sec{background:var(--surface);color:var(--bar);border-color:var(--line-strong)}button.sec:hover,.btn.sec:hover{background:var(--light)}button.red{background:var(--red)}button.red:hover{background:#a50e15}button.sec.red{background:var(--surface);color:var(--red);border-color:#f3b4b4}button.sec.red:hover{background:var(--bad-bg)}button.sm,.btn.sm{padding:5px 10px;font-size:12px}button:disabled{opacity:.5;cursor:not-allowed;transform:none}.actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:var(--fs-xs);font-weight:700;line-height:1.6;white-space:nowrap}.badge.ok{background:var(--ok-bg);color:#166534}.badge.warn{background:var(--warn-bg);color:#92400e}.badge.bad{background:var(--bad-bg);color:#991b1b}.badge.grey{background:#e2e8f0;color:#334155}.pos{color:var(--red);font-weight:700}.neg{color:var(--ok);font-weight:700}.muted{color:var(--text-3);font-size:var(--fs-sm)}.err{background:var(--bad-bg);color:#991b1b;padding:9px 12px;border-radius:var(--r-sm);margin:8px 0;border-left:4px solid var(--red)}.okmsg{background:var(--ok-bg);color:#166534;padding:9px 12px;border-radius:var(--r-sm);margin:8px 0;border-left:4px solid var(--ok)}td.muted:only-child,td[colspan].muted{text-align:center;padding:26px 12px;color:var(--text-3)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d1b3e80;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--surface);border-radius:var(--r-lg);padding:20px 22px;width:100%;max-width:720px;max-height:92vh;overflow:auto;box-shadow:var(--sh-3);animation:pop .14s ease-out}.modal h2{margin-top:0;color:var(--navy);font-size:var(--fs-lg)}@keyframes pop{0%{transform:translateY(6px);opacity:0}to{transform:none;opacity:1}}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 20% -10%,rgba(214,230,245,.25),transparent 60%),linear-gradient(180deg,var(--bar),var(--navy))}.login .card{width:360px;text-align:center;padding:28px 28px 24px;border:0;box-shadow:var(--sh-3)}.login img{height:46px;margin-bottom:6px}.login h1{font-family:var(--font-brand);font-size:26px;margin-bottom:2px}.login label{text-align:left}.print-only{display:none}@media print{body{background:#fff}.app{display:block}nav,.no-print{display:none!important}main{padding:0}.print-only{display:block}.tbl,.card,.stat{box-shadow:none}th{position:static}@page{size:A4;margin:10mm}}.doc{background:#fff;color:var(--navy);font-size:12px;max-width:190mm;margin:0 auto;border:1px solid var(--line)}.doc .head{background:var(--band);padding:14px 18px;display:flex;gap:16px;align-items:center;border-bottom:3px solid var(--bar)}.doc .head img{height:48px}.doc .head .co{flex:1;text-align:center}.doc .head .co b{font-family:var(--font-brand);font-size:20px;display:block}.doc .head .co div{font-size:11px;margin-top:2px}.doc .title{background:var(--bar);color:#fff;text-align:center;font-weight:700;letter-spacing:1.5px;padding:6px}.doc .meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 18px}.doc .meta b{display:block;font-size:11px;color:var(--text-2);text-transform:uppercase}.doc table{font-size:12px}.doc th{background:var(--light);position:static;font-size:11px}.doc .tot{padding:10px 18px;display:flex;justify-content:flex-end}.doc .tot table{width:auto;min-width:260px}.doc .foot{padding:12px 18px;font-size:11px;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line)}.doc .sign{text-align:right;margin-top:34px;font-weight:700}tr.grouphead td{background:var(--light,#EEF4FA);color:var(--navy,#0D1B3E);font-size:13px;padding:7px 12px;border-top:2px solid var(--band,#D6E6F5);position:sticky;top:0}.ts-brand{display:flex;justify-content:space-between;align-items:center;background:#1b2f5b;color:#fff;padding:8px 12px;border-radius:6px;-webkit-print-color-adjust:exact;print-color-adjust:exact}.ts-brand b{font-family:Cambria,Georgia,serif;font-size:16px}.ts-brand span{font-size:11px;opacity:.9}.docs-grid{display:grid;grid-template-columns:260px 1fr;gap:14px;align-items:start}@media (max-width:860px){.docs-grid{grid-template-columns:1fr}}.docs-list{display:flex;flex-direction:column;gap:6px;max-height:78vh;overflow:auto}.doc-card{display:block;background:#fff;border:1px solid var(--line,#DCE3EC);border-radius:10px;padding:9px 11px;cursor:pointer;color:inherit;text-decoration:none}.doc-card:hover{border-color:#9db7d6}.doc-card.on{border-color:var(--acc,#1B4F8C);background:#eef4fa}.doc-paper{background:#fff;border:1px solid var(--line,#DCE3EC);border-radius:10px;padding:18px 20px;max-width:620px;box-shadow:0 2px 10px #0d1b3e0f}.doc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:12px 0 8px}.doc-title{flex:1;font-size:19px;font-weight:800;color:#0d1b3e;border:0;border-bottom:1px dashed #CBD5E1;padding:3px 2px;background:transparent;margin:0;border-radius:0}.doc-title:focus{outline:none;border-bottom-color:#1b4f8c}.doc-date{text-align:right}.doc-date span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#64748b}.doc-date input{width:150px;padding:4px 6px;margin:0}.print-only-inline{display:none}.doc-table{width:100%;border-collapse:collapse;font-size:13px}.doc-table th{background:#d6e6f5;color:#0d1b3e;font-size:10.5px;text-transform:uppercase;letter-spacing:.3px;padding:6px;border:1px solid #B9CFE6;text-align:left;-webkit-print-color-adjust:exact;print-color-adjust:exact}.doc-table td{border:1px solid #DCE3EC;padding:2px 5px;vertical-align:top;height:28px}.doc-table td.c{text-align:center;vertical-align:middle}.doc-table tr.done .doc-in{text-decoration:line-through;color:#94a3b8}.doc-in{width:100%;border:0;background:transparent;font:inherit;padding:4px 2px;margin:0;color:inherit;resize:none;overflow:hidden;border-radius:0;line-height:1.35}.doc-in:focus{outline:none;background:#eef4fa}.print-box{display:none;font-size:15px;color:#1b2f5b}.print-blank{display:none}.doc-ctl{white-space:nowrap;vertical-align:middle!important}.doc-ctl a{cursor:pointer;padding:0 3px;color:#94a3b8;font-size:12px}.doc-ctl a:hover{color:#1b4f8c}.doc-ctl a.x:hover{color:#b91c1c}.doc-notes{margin-top:14px}.doc-h2{font-weight:800;color:#0d1b3e;margin-bottom:4px;font-size:13px}.doc-notes-in{border:1px solid #DCE3EC;border-radius:6px;padding:6px;min-height:80px;overflow:auto}.print-notes-lines{display:none}.print-notes-lines div{border-bottom:1px solid #CBD5E1;height:22px}.doc-foot{display:flex;justify-content:space-between;margin-top:12px;font-size:11px;color:#64748b}@media print{.docs-wrap .docs-grid{display:block}.docs-wrap .doc-paper{border:0;box-shadow:none;padding:0;max-width:none;border-radius:0}.docs-wrap .doc-date input{display:none}.docs-wrap .print-only-inline{display:inline;font-size:13px;color:#0d1b3e}.docs-wrap .doc-title{border-bottom:0;font-size:16px;padding:0}.docs-wrap .doc-table{font-size:11px}.docs-wrap .doc-table td{height:22px;padding:1px 4px}.docs-wrap .doc-table th{padding:4px}.docs-wrap .print-box{display:inline}.docs-wrap .print-blank{display:table-row}.docs-wrap .doc-in::placeholder{color:transparent}.docs-wrap .doc-in{padding:2px 1px}.docs-wrap .doc-notes-in{border:0;padding:0;min-height:0;height:auto}.docs-wrap .print-notes-lines{display:block}.docs-wrap tr{break-inside:avoid}}:root{--ease:cubic-bezier(.22,.9,.26,1);--ease-back:cubic-bezier(.34,1.45,.5,1);--t-fast:.14s;--t:.24s;--t-slow:.42s;--font:Inter,"Segoe UI",Arial,Helvetica,sans-serif }body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(900px 420px at 110% -10%,rgba(214,230,245,.55),transparent 60%),radial-gradient(700px 380px at -10% 110%,rgba(214,230,245,.35),transparent 60%),var(--bg);background-attachment:fixed}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}@keyframes slideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:-450px 0}to{background-position:450px 0}}@keyframes heroShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes pulseDot{0%,to{box-shadow:0 0 #d0121a73}50%{box-shadow:0 0 0 6px #d0121a00}}.page-anim{animation:rise var(--t-slow) var(--ease) backwards}.page-anim .top{animation:slideDown var(--t) var(--ease) backwards}.grid>*{animation:rise var(--t-slow) var(--ease) backwards}.grid>*:nth-child(2){animation-delay:.05s}.grid>*:nth-child(3){animation-delay:.1s}.grid>*:nth-child(4){animation-delay:.15s}.grid>*:nth-child(5){animation-delay:.2s}.grid>*:nth-child(6){animation-delay:.25s}.grid>*:nth-child(n+7){animation-delay:.3s}form .grid>*,.modal .grid>*{animation:none}.stat{transition:transform var(--t) var(--ease),box-shadow var(--t) var(--ease),border-color var(--t);border-radius:var(--r-lg)}.stat:before{transition:width var(--t) var(--ease)}a.stat:hover,.stat:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:#c9d8ea}a.stat:hover:before{width:7px}.stat .v{letter-spacing:-.02em}.stat.warn .v{animation:none}.card{border-radius:var(--r-lg);transition:box-shadow var(--t) var(--ease)}.card:hover{box-shadow:var(--sh-2)}.hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 24px;margin-bottom:18px;border-radius:18px;color:#fff;overflow:hidden;background:linear-gradient(120deg,#1b2f5b,#1b4f8c,#2a63a6,#1b2f5b);background-size:300% 300%;animation:heroShift 16s ease infinite,rise var(--t-slow) var(--ease) backwards;box-shadow:0 12px 30px #0d1b3e38}.hero:after{content:"";position:absolute;right:-60px;top:-80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(214,230,245,.28),transparent 70%);pointer-events:none}.hero-hi{font-size:22px;font-weight:800;letter-spacing:-.01em}.hero-sub{color:#cfe0f5;font-size:13px;margin-top:2px}.hero-fig{text-align:right;position:relative;z-index:1}.hero-fig>span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:#cfe0f5;font-weight:700}.hero-fig b{font-size:30px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.tbl{border-radius:var(--r-lg)}tbody tr{animation:fadeIn var(--t-slow) var(--ease) both}tbody tr:nth-child(2){animation-delay:.02s}tbody tr:nth-child(3){animation-delay:.04s}tbody tr:nth-child(4){animation-delay:.06s}tbody tr:nth-child(5){animation-delay:.08s}tbody tr:nth-child(6){animation-delay:.1s}tbody tr:nth-child(7){animation-delay:.12s}tbody tr:nth-child(8){animation-delay:.14s}tbody tr:nth-child(n+9){animation-delay:.16s}tbody tr td{transition:background var(--t-fast)}tbody tr:hover td{background:#f1f6fc}button,.btn{transition:background var(--t-fast),transform var(--t-fast) var(--ease),box-shadow var(--t-fast),border-color var(--t-fast);border-radius:9px}button:not(:disabled):hover,.btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #1b2f5b2e}button.sec:not(:disabled):hover,.btn.sec:hover{box-shadow:0 3px 10px #1b2f5b1a}button:not(:disabled):active,.btn:active{transform:translateY(0) scale(.97);box-shadow:none;transition-duration:.06s}.badge{transition:transform var(--t-fast)}tr:hover .badge{transform:scale(1.04)}.badge.bad{position:relative}input,select,textarea{border-radius:9px;transition:border-color var(--t-fast),box-shadow var(--t),background var(--t-fast)}input:hover:not(:focus):not(:disabled),select:hover:not(:focus):not(:disabled){border-color:#afc2d8}.okmsg,.err{animation:slideDown var(--t) var(--ease) backwards;border-radius:10px}.modal-bg{animation:fadeIn var(--t) ease both;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{animation:popIn .3s var(--ease-back) backwards;border-radius:18px}nav a{position:relative;margin:1px 10px;border-radius:9px;border-left:0!important;padding-left:14px;transition:background var(--t) var(--ease),color var(--t-fast),padding var(--t) var(--ease)}.navgroup a{padding:7px 12px 7px 20px}nav a:before{content:"";position:absolute;left:6px;top:50%;width:4px;height:0;border-radius:4px;background:var(--band);transform:translateY(-50%);transition:height var(--t) var(--ease)}nav a.on{background:#ffffff29;box-shadow:inset 0 0 0 1px #ffffff14}nav a.on:before{height:60%}nav a:hover{padding-left:24px}.navgroup a:hover{padding-left:24px}.navtitle .chev{display:inline-block;transition:transform var(--t) var(--ease);transform:rotate(-90deg)}.navgroup.open .chev{transform:none}.navitems{animation:slideDown var(--t) var(--ease) backwards}nav .brand b{background:linear-gradient(90deg,#fff,#d6e6f5);-webkit-background-clip:text;background-clip:text;color:transparent}nav .user{display:flex;align-items:center;gap:10px}nav .user .avatar,.mbar-av{flex:none;width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:var(--navy);background:linear-gradient(135deg,#fff,#d6e6f5);box-shadow:0 2px 6px #00000040}nav .user .who{flex:1;min-width:0;line-height:1.25}nav .user .who b{display:block;color:#fff;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}nav .user .who span{font-size:11px;opacity:.75;text-transform:capitalize}nav .user button{margin:0;padding:6px 10px;background:#ffffff1a;color:#fff;border-color:#fff3}nav .user button:hover{background:#fff3}.login{background-size:200% 200%;animation:heroShift 18s ease infinite}.login .card{animation:popIn .5s var(--ease-back) backwards;border-radius:20px}.skel{background:linear-gradient(90deg,#e6ecf3,#f4f7fb,#e6ecf3 240px);background-size:900px 100%;animation:shimmer 1.2s linear infinite;border-radius:12px}.skel-title{height:28px;width:220px;margin:4px 0 18px}.skel-tile{height:96px}.skel-table{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px}.skel-row{height:18px;margin:12px 6px;border-radius:6px}.num-anim{font-variant-numeric:tabular-nums}.mbar,.nav-scrim{display:none}@media (max-width:900px){.app{display:block}.mbar{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:40;height:56px;padding:0 12px;padding-top:env(safe-area-inset-top);background:linear-gradient(180deg,var(--bar),var(--navy));color:#fff;box-shadow:0 4px 14px #0d1b3e40}.mbar img{height:26px}.mbar b{flex:1;font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mbar-btn{width:42px;height:42px;padding:0;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;border-radius:12px}.mbar-btn span{display:block;width:18px;height:2px;border-radius:2px;background:#fff;transition:transform var(--t) var(--ease),opacity var(--t)}.app.drawer .mbar-btn span:nth-child(1){transform:translateY(6px) rotate(45deg)}.app.drawer .mbar-btn span:nth-child(2){opacity:0}.app.drawer .mbar-btn span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.mbar-btn:hover{transform:none;box-shadow:none}nav{position:fixed;top:0;left:0;bottom:0;width:min(84vw,300px);height:100%;z-index:60;transform:translate(-105%);transition:transform .34s var(--ease);padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:env(safe-area-inset-bottom);box-shadow:0 0 40px #00000059;flex-direction:column;flex-wrap:nowrap;overflow-y:auto}.app.drawer nav{transform:none}.nav-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#0d1b3e73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .3s}.app.drawer .nav-scrim{opacity:1;pointer-events:auto}body.drawer-open{overflow:hidden}nav .brand{flex-basis:auto}nav a{padding:12px 14px;font-size:15px}.navgroup a{padding:11px 14px 11px 22px}.navgroup{display:block}.navtitle{padding:14px 18px 6px;border:0;margin:0}.navtitle .chev{display:inline-block}nav .user{margin-top:auto;padding:14px 16px}main{padding:14px 12px calc(24px + env(safe-area-inset-bottom))}.top{gap:8px}.top h1{flex-basis:100%;font-size:20px}.top>input,.top>select,.top .search{flex:1 1 150px;max-width:none!important;min-width:0}.top>button,.top>.btn,.top>a.btn{flex:1 1 auto}.g4,.g3{grid-template-columns:repeat(2,1fr)}.g2{grid-template-columns:1fr}.stat{padding:12px 14px}.stat .v{font-size:20px}.stat .l{font-size:10px}.hero{padding:16px 18px;border-radius:16px}.hero-hi{font-size:18px}.hero-fig{text-align:left}.hero-fig b{font-size:24px}.tbl{-webkit-overflow-scrolling:touch;border-radius:14px;margin:0 -2px}th,td{padding:10px;white-space:nowrap}td b,td a{white-space:normal}input,select,textarea{font-size:16px;min-height:44px}input[type=checkbox],input[type=radio]{min-height:0}button,.btn{min-height:40px}button.sm,.btn.sm{min-height:34px}.modal-bg{align-items:flex-end;padding:0}.modal{max-width:none!important;width:100%;max-height:92vh;border-radius:20px 20px 0 0;padding:14px 16px calc(18px + env(safe-area-inset-bottom));animation:sheetUp .34s var(--ease) backwards}.modal:before{content:"";display:block;width:44px;height:5px;border-radius:5px;background:#cbd5e1;margin:0 auto 10px}.row>*{min-width:100%}}@media (max-width:420px){.g4,.g3{grid-template-columns:repeat(2,1fr)}.stat .v{font-size:18px}.hero-fig b{font-size:22px}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}@media print{.mbar,.nav-scrim,.hero{display:none!important}*{animation:none!important;transition:none!important}tbody tr{opacity:1!important}}.leaflet-container{isolation:isolate;z-index:0}@media (max-width:900px){.modal .top>button,.modal .top>.btn{flex:0 0 auto}.modal .top{flex-wrap:nowrap}}.whcard{cursor:pointer;transition:transform var(--t) var(--ease),box-shadow var(--t),border-color var(--t)}.whcard:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}.whcard.picked{border-color:var(--acc);box-shadow:0 0 0 3px #1b4f8c29,var(--sh-2)}.whcard.picked:after{content:"Showing items ▾";position:absolute;right:14px;bottom:10px;font-size:11px;font-weight:700;color:var(--acc)}.whcard{position:relative}.whitems{animation:rise var(--t-slow) var(--ease) backwards}
