:root{--bg:#f2f5fb;--panel:#fff;--panel-2:#f6f8fd;--line:#e3e9f3;--fg:#101b33;--muted:#687794;--accent:#2346b0;--accent-2:#2f6bff;--accent-ink:#fff;--accent-soft:rgba(35,70,176,.09);--brand-red:#e1262d;--red-soft:rgba(225,38,45,.09);--ok:#138a52;--ok-soft:rgba(19,138,82,.1);--warn:#b26b00;--warn-soft:rgba(214,140,0,.12);--bad:#d22a31;--bad-soft:rgba(210,42,49,.1);--info:#2f5bd8;--info-soft:rgba(47,91,216,.1);--hero:linear-gradient(135deg,#2f6bff,#2346b0);--shadow:0 1px 2px rgba(16,27,51,.04),0 6px 24px rgba(16,27,51,.06);--shadow-lg:0 20px 50px rgba(16,27,51,.18);--f-ui:"Onest",system-ui,-apple-system,"Segoe UI",sans-serif;--f-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;--r:16px;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0b1222;--panel:#121b30;--panel-2:#172238;--line:#24314d;--fg:#e8edf8;--muted:#8e9bb6;--accent:#6f8cff;--accent-2:#4a78ff;--accent-ink:#0b1222;--accent-soft:rgba(111,140,255,.14);--brand-red:#ff5a5f;--red-soft:rgba(255,90,95,.14);--ok:#3fcf8e;--ok-soft:rgba(63,207,142,.14);--warn:#f2b441;--warn-soft:rgba(242,180,65,.15);--bad:#ff6b72;--bad-soft:rgba(255,107,114,.14);--info:#8ea7ff;--info-soft:rgba(142,167,255,.15);--hero:linear-gradient(135deg,#3d6dff,#2346b0);--shadow:0 1px 2px rgba(0,0,0,.2),0 6px 24px rgba(0,0,0,.25);--shadow-lg:0 20px 50px rgba(0,0,0,.45);color-scheme:dark}}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-ui);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}h1,h2,h3{text-wrap:balance}.app{display:grid;grid-template-columns:248px 1fr;min-height:100%;background:linear-gradient(to right,var(--panel) 247px,var(--line) 247px 248px,var(--bg) 248px)}.side{background:var(--panel);padding:22px 14px;gap:24px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand,.side{display:flex;flex-direction:column}.brand{gap:6px;padding:4px 8px 0}.brand img{width:180px;height:auto;display:block;filter:drop-shadow(0 2px 6px rgba(35,70,176,.18))}.brand small{color:var(--muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.nav{flex-direction:column;gap:2px}.nav,.nav a{display:flex}.nav a{align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:var(--muted);white-space:nowrap;font-weight:500;position:relative}.nav a:hover{background:var(--panel-2);color:var(--fg)}.nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav a[aria-current=page]:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--brand-red);z-index:1}.nav svg{width:18px;height:18px;flex:none}.nav-label{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:12px 12px 4px}.side-foot{margin-top:auto;color:var(--muted);font-size:11px;padding:0 10px}.main{min-width:0;display:flex;flex-direction:column}.top{justify-content:space-between;gap:12px;padding:12px 28px;background:var(--panel);border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:20}.top,.top-right{display:flex;align-items:center}.top-right{gap:10px}.content{padding:28px 28px 56px;display:flex;flex-direction:column;gap:20px;min-width:0;max-width:1480px;width:100%}.menu{position:relative}.menu>summary{list-style:none;cursor:pointer}.menu>summary::-webkit-details-marker{display:none}.menu-pop{position:absolute;right:0;top:calc(100% + 8px);width:min(360px,calc(100vw - 32px));background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:8px;z-index:40;display:flex;flex-direction:column}.menu-pop a,.menu-pop button{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;border:0;background:none;text-align:left;width:100%}.menu-pop a:hover,.menu-pop button:hover{background:var(--panel-2)}.menu-pop svg{width:17px;height:17px;color:var(--muted);flex:none}.menu-head{padding:10px 10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}.menu-head b{display:block}.menu-head small{color:var(--muted)}.userchip{display:flex;align-items:center;gap:10px;padding:5px 10px 5px 5px;border-radius:999px;border:1px solid var(--line);background:var(--panel)}.userchip b{font-size:13px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.userchip small{display:block;color:var(--muted);font-size:11px}.avatar{width:34px;height:34px;background:var(--hero);color:#fff;place-items:center;font-weight:700;flex:none}.avatar,.bell{border-radius:50%;display:grid}.bell{width:40px;height:40px;place-items:center;border:1px solid var(--line);background:var(--panel);position:relative;color:var(--muted)}.bell svg{width:19px;height:19px}.bell .count{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--brand-red);color:#fff;font-size:10.5px;font-weight:700;display:grid;place-items:center;border:2px solid var(--panel)}.alert-item{display:flex;gap:10px;padding:10px;border-radius:10px;align-items:flex-start}.alert-item:hover{background:var(--panel-2)}.alert-item .dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex:none}.alert-item b{display:block;font-size:13px}.alert-item span{color:var(--muted);font-size:12.5px}.head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap}.head h1{margin:0;font-size:24px;font-weight:700;display:flex;align-items:center;gap:10px}.head p{margin:4px 0 0}.crumbs,.head p{color:var(--muted)}.crumbs{display:flex;gap:6px;align-items:center;font-size:13px;margin-bottom:6px}.crumbs a:hover{color:var(--accent)}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions,.btn{align-items:center}.btn{display:inline-flex;justify-content:center;gap:7px;border:1px solid var(--line);background:var(--panel);padding:9px 15px;border-radius:10px;font-weight:500;white-space:nowrap;transition:border-color .15s,background .15s,color .15s}.btn:hover{color:var(--accent)}.btn.primary,.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);color:var(--accent-ink);font-weight:600;box-shadow:0 6px 16px rgba(35,70,176,.25)}.btn.primary:hover{background:var(--accent-2);border-color:var(--accent-2);color:var(--accent-ink)}.btn.soft{background:var(--accent-soft);border-color:transparent;color:var(--accent);font-weight:600}.btn.danger{color:var(--bad);border-color:var(--bad-soft)}.btn.danger:hover{background:var(--bad-soft)}.btn.sm{padding:6px 11px;font-size:12.5px;border-radius:9px}.btn.icon{padding:7px}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none}.btn svg{width:16px;height:16px}.link{color:var(--accent);font-weight:600;display:inline-flex;align-items:center;gap:5px;font-size:13px}.link svg{width:15px;height:15px}.banner{border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:13px}.banner.ok{border-color:var(--ok-soft);background:var(--ok-soft)}.banner.warn{border-color:var(--warn-soft);background:var(--warn-soft)}.banner.bad{border-color:var(--bad-soft);background:var(--bad-soft)}.banner.token{border-color:var(--accent);background:var(--accent-soft);gap:8px}.banner.token,.card{display:flex;flex-direction:column}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:20px;min-width:0;gap:14px;box-shadow:var(--shadow)}.card-head{justify-content:space-between;flex-wrap:wrap}.card h2,.card-head{display:flex;align-items:center;gap:10px}.card h2{margin:0;font-size:16px;font-weight:650}.card h2 .ico,.ico{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;flex:none}.card h2 svg,.ico svg{width:18px;height:18px}.card p{margin:0;color:var(--muted)}.card.flush{padding:0;gap:0;overflow:hidden}.card.flush>.card-head{padding:18px 20px 14px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:16px;gap:16px}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow)}.kpi strong{font-size:30px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.05;letter-spacing:-.01em}.kpi span{color:var(--muted);font-size:13px}.kpi .row{display:flex;justify-content:space-between;align-items:flex-start}.hero{background:var(--hero);color:#fff;border-radius:var(--r);padding:22px;display:flex;flex-direction:column;gap:14px;box-shadow:0 16px 36px rgba(35,70,176,.32);position:relative;overflow:hidden;min-height:190px}.hero:after{content:"";position:absolute;right:-50px;bottom:-70px;width:220px;height:220px;border-radius:50%;background:hsla(0,0%,100%,.08)}.hero .row{justify-content:space-between;position:relative;z-index:1}.hero .row,.hero .title{display:flex;align-items:center}.hero .title{gap:10px;font-weight:600}.hero .bubble{width:38px;height:38px;border-radius:50%;background:hsla(0,0%,100%,.18);display:grid;place-items:center}.hero .bubble svg{width:19px;height:19px}.hero .go{width:36px;height:36px;border-radius:50%;background:#fff;color:var(--accent);display:grid;place-items:center}.hero .go svg{width:18px;height:18px}.hero .value{font-size:40px;font-weight:750;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;position:relative;z-index:1}.hero .value small{font-size:20px;font-weight:600;margin-left:4px}.hero .when{display:flex;align-items:center;gap:8px;opacity:.92;font-size:13.5px;position:relative;z-index:1;margin-top:auto}.hero .when svg{width:16px;height:16px}.welcome{background:linear-gradient(120deg,var(--accent-soft),rgba(47,107,255,.14));border:1px solid var(--line);border-radius:20px;padding:24px;display:flex;gap:20px;align-items:center;flex-wrap:wrap;position:relative;overflow:hidden}.welcome .badge{width:84px;height:84px;border-radius:50%;background:var(--hero);color:#fff;display:grid;place-items:center;box-shadow:0 0 0 8px rgba(47,107,255,.15);flex:none}.welcome .badge svg{width:38px;height:38px}.welcome h1{margin:0 0 6px;font-size:26px}.welcome .addr{display:flex;align-items:center;gap:6px;color:var(--muted)}.welcome .addr svg{width:15px;height:15px;color:var(--accent)}.pill{display:inline-flex;gap:6px;border:1px solid var(--line);border-radius:999px;padding:7px 14px;margin-top:10px}.pill,.welcome .tip{align-items:center;background:var(--panel);font-size:13.5px}.welcome .tip{margin-left:auto;border-radius:14px;padding:14px 18px;display:flex;gap:12px;max-width:320px;color:var(--muted);font-style:italic}.welcome .tip svg{width:26px;height:26px;color:var(--accent);flex:none}.dash{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1fr);grid-gap:18px;gap:18px;align-items:start}.dash .col{display:flex;flex-direction:column;gap:18px;min-width:0}.grid2{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);grid-gap:18px;gap:18px;align-items:start}.week{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:16px;gap:16px;align-items:stretch}.week .total{font-size:32px;font-weight:750;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.week .total small{font-size:16px;font-weight:600;margin-left:4px}.trend{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:12px;padding:4px 9px;border-radius:8px}.trend svg{width:14px;height:14px}.bars7{display:grid;grid-template-columns:repeat(7,26px);grid-gap:6px;gap:6px;align-items:end;border-left:1px solid var(--line);padding-left:16px}.bars7 .b{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:10.5px;color:var(--muted)}.bars7 .b b{font-size:10.5px;color:var(--fg);font-weight:600}.bars7 .bar{width:18px;border-radius:5px 5px 3px 3px;background:linear-gradient(180deg,var(--accent-2),var(--accent));min-height:3px}.info{display:flex;flex-direction:column}.info div{display:grid;grid-template-columns:22px minmax(110px,.9fr) minmax(0,1.2fr);grid-gap:10px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px dashed var(--line)}.info div:last-child{border-bottom:0}.info svg{width:17px;height:17px;color:var(--muted)}.info span{color:var(--muted);font-size:13px}.info b{font-weight:600;overflow-wrap:anywhere}.map{display:grid;grid-template-columns:minmax(0,1fr) 150px;grid-gap:14px;gap:14px;align-items:start}.map .lines{display:flex;flex-direction:column;gap:4px}.map .ph,.map iframe{width:150px;height:120px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.map .ph{display:grid;place-items:center;color:var(--muted)}.map .ph svg{width:28px;height:28px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.search{flex:1 1 260px;display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:0 12px}.search svg{width:16px;height:16px;color:var(--muted);flex:none}.search input{border:0;background:none;outline:none;padding:10px 0;width:100%;min-width:0}.f{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:10px 12px;width:100%}.f:focus{border-color:var(--accent-2);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.toolbar .f{width:auto}textarea.f{min-height:84px;resize:vertical}.tablewrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow-x:auto;box-shadow:var(--shadow)}.card .tablewrap,.card.flush .tablewrap{border:0;border-radius:0;box-shadow:none}table{width:100%;border-collapse:collapse;min-width:760px}thead th{background:var(--panel-2)}th{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);text-align:left;font-weight:600;white-space:nowrap}td,th{padding:12px 16px;border-bottom:1px solid var(--line)}td{vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--panel-2)}tr.clickable{cursor:pointer}.compact table{min-width:0}.compact td,.compact th{padding:11px 14px}.compact td:first-child,.compact th:first-child{padding-left:20px}.compact td:last-child,.compact th:last-child{padding-right:16px}.mono{font-family:var(--f-mono);font-size:12.5px}h1 .mono{font-size:inherit;letter-spacing:-.01em}.muted,.unset{color:var(--muted)}.unset{font-style:italic;font-size:12.5px}.sub{display:block;color:var(--muted);font-size:12px}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.right{text-align:right}.rowact{gap:6px;justify-content:flex-end}.pager,.rowact{display:flex;align-items:center}.pager{justify-content:space-between;gap:10px;flex-wrap:wrap}.foot-note,.pager{color:var(--muted);font-size:13px}.foot-note{text-align:center;padding:14px;border-top:1px solid var(--line)}.empty{padding:44px 20px;text-align:center;color:var(--muted);display:flex;flex-direction:column;gap:6px;align-items:center}.empty b{color:var(--fg);font-size:15px}.chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:999px;white-space:nowrap}.chip.dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.chip svg{width:13px;height:13px}.c-ok{color:var(--ok);background:var(--ok-soft)}.c-warn{color:var(--warn);background:var(--warn-soft)}.c-bad{color:var(--bad);background:var(--bad-soft)}.c-info{color:var(--info);background:var(--info-soft)}.c-acc{color:var(--accent);background:var(--accent-soft)}.c-red{color:var(--brand-red);background:var(--red-soft)}.c-mut{color:var(--muted);background:var(--panel-2)}.tabs{display:inline-flex;gap:4px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);padding:4px;border-radius:12px;align-self:flex-start}.tabs a{padding:7px 14px;border-radius:9px;color:var(--muted);font-weight:500;font-size:13px;white-space:nowrap}.card-head .tabs{flex-wrap:nowrap}.card-head .tabs a{padding:6px 11px;font-size:12.5px}.tabs a[aria-current=page]{background:var(--accent);color:var(--accent-ink);font-weight:600}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));grid-gap:16px;gap:16px}.mcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow)}.mcard h3{margin:0;font-size:16px}.meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--muted)}.meta b{color:var(--accent);font-weight:600}.form{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px 16px;gap:14px 16px}.form.three{grid-template-columns:repeat(3,1fr)}.field,.form label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--muted);font-weight:500;min-width:0}.form .full{grid-column:1/-1}.form .hint{font-size:11.5px;color:var(--muted);font-weight:400}.form h3{grid-column:1/-1;margin:6px 0 0;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg)}.check{flex-direction:row!important;gap:8px!important;color:var(--fg)!important}.check,.form-foot{align-items:center}.form-foot{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.scrim{position:fixed;inset:0;background:rgba(16,27,51,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:16px;z-index:60}.modal{background:var(--panel);border-radius:18px;box-shadow:var(--shadow-lg);width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto}.modal-head{justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line)}.modal-head,.modal-head h2{display:flex;align-items:center}.modal-head h2{margin:0;font-size:17px;gap:10px}.modal-head h2 svg{width:20px;height:20px;color:var(--accent)}.modal-body{padding:16px 22px 22px;display:grid;grid-template-columns:180px 1fr;grid-gap:10px 16px;gap:10px 16px}.modal-body span{color:var(--muted)}.sec-list{display:flex;flex-direction:column;gap:10px}.sec-item{display:flex;gap:14px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}.sec-item>div:nth-child(2){flex:1 1;min-width:0}.sec-item b{display:block}.sec-item>div>span{color:var(--muted);font-size:13px}.login{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:32px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow-lg)}.login .logo{display:flex;justify-content:center}.login .logo img{width:240px;height:auto;filter:drop-shadow(0 4px 12px rgba(35,70,176,.2))}.login p{margin:0;text-align:center;color:var(--muted)}.codebox{font-family:var(--f-mono);font-size:12.5px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;overflow-x:auto;white-space:pre}.lamp-root{--panel:#121b30;--panel-2:#18233b;--line:#2a3756;--fg:#e8edf8;--muted:#93a1bd;--accent:#7aa2ff;--accent-soft:rgba(122,162,255,.14);--bad:#ff7b82;--bad-soft:rgba(255,123,130,.14);--light:#bae6fd;--light-soft:rgba(186,230,253,.55);color-scheme:dark;color:var(--fg);min-height:100%}.lamp-scene{position:relative;min-height:100vh;overflow:hidden;background:#060a13;transition:background .8s ease}.lamp-scene.is-on{background:#0a1222}.lamp-glow{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .7s ease;background:radial-gradient(520px 420px at var(--lamp-x,32%) 40%,rgba(186,230,253,.28),rgba(56,189,248,.08) 55%,transparent 75%),radial-gradient(900px 600px at var(--lamp-x,32%) 60%,rgba(47,107,255,.12),transparent 70%)}.is-on .lamp-glow{opacity:1}.lamp-lang{left:max(16px,env(safe-area-inset-left,0px))}.lamp-lang,.lamp-sound{position:fixed;top:max(16px,env(safe-area-inset-top,0px));z-index:30}.lamp-sound{right:max(16px,env(safe-area-inset-right,0px));width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:rgba(18,27,48,.7);font-size:18px;display:grid;place-items:center;transition:box-shadow .25s ease,border-color .2s ease,transform .15s ease}.lamp-sound:hover{border-color:#38bdf8;box-shadow:0 0 0 3px rgba(56,189,248,.18),0 0 18px rgba(56,189,248,.35)}.lamp-sound:active{transform:scale(.94)}.lamp-stage{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;gap:clamp(32px,7vw,110px);padding:80px 24px 40px}.lamp{position:relative;width:240px;height:440px;flex:none}.lamp-shade{position:absolute;top:30px;left:20px;width:200px;height:112px;border-radius:110px 110px 16px 16px/100px 100px 16px 16px;background:linear-gradient(180deg,#cfd6e3,#aeb7c8);box-shadow:inset 0 -10px 18px rgba(0,0,0,.25);transition:background .5s ease,box-shadow .5s ease;z-index:2}.is-on .lamp-shade{background:linear-gradient(180deg,#fff,#eaf6ff 70%,#cfeafd);box-shadow:inset 0 -10px 18px rgba(56,189,248,.25),0 0 40px rgba(186,230,253,.75),0 0 110px rgba(56,189,248,.45)}.lamp-bulb{position:absolute;left:50%;bottom:-9px;width:64px;height:18px;margin-left:-32px;border-radius:0 0 40px 40px;background:#8a94a8;transition:background .4s ease,box-shadow .4s ease}.is-on .lamp-bulb{background:#f0fbff;box-shadow:0 0 24px 8px rgba(186,230,253,.9)}.lamp-beam{position:absolute;top:140px;left:-40px;width:320px;height:300px;z-index:1;pointer-events:none;opacity:0;transform-origin:top;transform:scaleY(.85);-webkit-clip-path:polygon(30% 0,70% 0,100% 100%,0 100%);clip-path:polygon(30% 0,70% 0,100% 100%,0 100%);background:linear-gradient(180deg,rgba(186,230,253,.42),rgba(56,189,248,.08) 70%,transparent);transition:opacity .45s ease .05s,transform .6s cubic-bezier(.2,.8,.2,1)}.is-on .lamp-beam{opacity:1;transform:scaleY(1)}.lamp-stem{top:140px;left:112px;width:16px;height:262px;border-radius:8px;background:linear-gradient(90deg,#9aa4b8,#cfd6e3 45%,#8d97ab)}.lamp-base,.lamp-stem{position:absolute;z-index:2}.lamp-base{top:398px;left:45px;width:150px;height:20px;border-radius:10px;background:linear-gradient(180deg,#d6dce8,#9aa4b8);box-shadow:0 10px 24px rgba(0,0,0,.45)}.is-on .lamp-base,.is-on .lamp-stem{filter:brightness(1.15)}.lamp-cord{position:absolute;top:136px;left:168px;width:30px;display:flex;flex-direction:column;align-items:center;z-index:3;transform:rotate(var(--swing,0deg));transform-origin:50% 0;will-change:transform}.lamp-line{width:2px;height:calc(96px + var(--pull, 0px));background:linear-gradient(180deg,#9aa4b8,#c7cfdc);border-radius:1px}.lamp-knob{width:22px;height:22px;border-radius:50%;border:0;padding:0;margin-top:-2px;cursor:-webkit-grab;cursor:grab;touch-action:none;background:radial-gradient(circle at 35% 30%,#ff8a8f,#e1262d 55%,#9c1419);box-shadow:0 3px 8px rgba(0,0,0,.45),0 0 0 0 rgba(225,38,45,.5)}.lamp-knob:active{cursor:-webkit-grabbing;cursor:grabbing}.lamp-knob:focus-visible{outline:2px solid #38bdf8;outline-offset:3px}.lamp-scene:not(.is-on) .lamp-knob{animation:knob 2.2s ease-in-out infinite}@keyframes knob{0%,to{box-shadow:0 3px 8px rgba(0,0,0,.45),0 0 0 0 rgba(225,38,45,.45)}50%{box-shadow:0 3px 8px rgba(0,0,0,.45),0 0 0 10px rgba(225,38,45,0)}}.lamp-hint{position:absolute;top:452px;left:50%;transform:translateX(-50%);width:280px;margin:0;text-align:center;color:var(--muted);font-size:13.5px;animation:hint 2.2s ease-in-out infinite}@keyframes hint{50%{opacity:.55}}.lamp-card{width:min(400px,100%);opacity:0;transform:translateX(24px) scale(.97);filter:blur(6px);pointer-events:none;transition:opacity .6s ease .12s,transform .7s cubic-bezier(.2,.8,.2,1) .12s,filter .6s ease .12s}.is-on .lamp-card{opacity:1;transform:none;filter:none;pointer-events:auto}.lamp-root .login{width:100%;background:linear-gradient(180deg,rgba(24,35,59,.82),rgba(15,23,41,.82));border:1px solid rgba(148,197,255,.18);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 1px rgba(186,230,253,.04),0 0 60px rgba(56,189,248,.1)}.lamp-root .login .logo img{background:#fff;border-radius:14px;padding:8px 12px;width:220px;filter:none;box-shadow:0 6px 24px rgba(0,0,0,.35)}.lamp-root .f{background:hsla(0,0%,100%,.05)}@media (max-width:760px){.lamp-stage{flex-direction:column;justify-content:flex-start;gap:0;padding:72px 16px 32px}.lamp{transform:scale(.62);transform-origin:top center;height:300px;margin-bottom:-10px}.lamp-scene.is-on .lamp{height:285px}.lamp-card{transform:translateY(18px) scale(.97)}.lamp-glow{--lamp-x:50%}.lamp-hint{top:470px;font-size:20px;width:400px}}.portal-top{background:var(--panel);border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:20}.portal-top .inner{max-width:1320px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:16px}.portal-top .logo img{height:44px;width:auto;display:block}.portal-top .slogan{color:var(--muted);border-left:1px solid var(--line);padding-left:16px;font-size:13.5px}.portal-main{max-width:1320px;margin:0 auto;padding:24px 24px 56px;display:flex;flex-direction:column;gap:18px}.sk{background:linear-gradient(90deg,var(--panel-2) 0,var(--line) 50%,var(--panel-2) 100%);background-size:200% 100%;animation:sk 1.2s linear infinite;border-radius:12px}@keyframes sk{to{background-position:-200% 0}}:root{--sky:#38bdf8;--sky-glow:rgba(56,189,248,.35);--gloss:linear-gradient(180deg,#5b95ff,#2f6bff 45%,#2346b0)}.bell,.btn,.lang,.lang-opt,.menu-pop a,.menu-pop button,.nav a,.tabs a,.userchip{position:relative;overflow:hidden;isolation:isolate;transition:transform .15s ease,box-shadow .25s ease,border-color .2s ease,background .25s ease,color .2s ease}.bell:after,.btn:after,.lang-opt:after,.lang:after,.menu-pop a:after,.menu-pop button:after,.nav a:after,.tabs a:after,.userchip:after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:45%;z-index:-1;pointer-events:none;background:linear-gradient(105deg,transparent,hsla(0,0%,100%,.6) 50%,transparent);transform:skewX(-18deg) translateX(-140%);transition:transform .7s cubic-bezier(.2,.7,.2,1)}.bell:hover:after,.btn:focus-visible:after,.btn:hover:after,.lang-opt:hover:after,.lang:hover:after,.menu-pop a:hover:after,.menu-pop button:hover:after,.nav a:hover:after,.tabs a:hover:after,.userchip:hover:after{transform:skewX(-18deg) translateX(420%)}.bell:hover,.btn:hover,.lang:hover,.userchip:hover{border-color:var(--sky);color:var(--accent);box-shadow:0 0 0 3px rgba(56,189,248,.16),0 8px 22px rgba(47,107,255,.18)}.bell:active,.btn:active,.lang-opt:active,.lang:active,.tabs a:active,.userchip:active{transform:translateY(1px) scale(.98);box-shadow:0 0 0 4px var(--sky-glow),0 0 24px rgba(56,189,248,.55)}.btn.primary{background:var(--gloss);border-color:#2346b0;color:#fff;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.45),inset 0 -2px 6px rgba(10,30,90,.25),0 8px 20px rgba(35,70,176,.32)}.btn.primary:before{content:"";position:absolute;left:1px;right:1px;top:1px;height:48%;border-radius:9px 9px 14px 14px/9px 9px 8px 8px;background:linear-gradient(180deg,hsla(0,0%,100%,.38),hsla(0,0%,100%,.06));pointer-events:none;z-index:-1}.btn.primary:hover{background:linear-gradient(180deg,#7db0ff,#3d7bff 45%,#2a52c6);border-color:var(--sky);color:#fff;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.55),0 0 0 3px rgba(56,189,248,.25),0 10px 30px rgba(47,107,255,.45)}.btn.primary:active{box-shadow:inset 0 2px 6px rgba(10,30,90,.35),0 0 0 4px var(--sky-glow),0 0 28px rgba(56,189,248,.6)}.btn.soft:hover{background:linear-gradient(180deg,rgba(56,189,248,.16),rgba(47,107,255,.14))}.btn.danger:hover{border-color:var(--bad);color:var(--bad);box-shadow:0 0 0 3px var(--bad-soft),0 8px 20px rgba(210,42,49,.15)}.tabs a:hover{color:var(--accent);background:var(--accent-soft)}.tabs a[aria-current=page]{background:var(--gloss);color:#fff;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.45),0 4px 12px rgba(47,107,255,.35)}.nav a[aria-current=page]{background:linear-gradient(90deg,rgba(56,189,248,.14),rgba(47,107,255,.1));box-shadow:inset 0 0 0 1px rgba(56,189,248,.25)}.nav a[aria-current=page]:after{z-index:0}.kpi{transition:transform .2s ease,box-shadow .25s ease,border-color .2s ease}a.kpi:hover{transform:translateY(-2px);border-color:rgba(56,189,248,.55);box-shadow:0 0 0 3px rgba(56,189,248,.12),0 14px 30px rgba(47,107,255,.16)}.hero{transition:box-shadow .3s ease}.hero:hover{box-shadow:0 0 0 3px rgba(56,189,248,.3),0 18px 44px rgba(47,107,255,.45)}.hero .go{transition:transform .2s ease,box-shadow .2s ease}.hero .go:hover{transform:scale(1.08);box-shadow:0 0 0 4px hsla(0,0%,100%,.3),0 0 20px rgba(186,230,253,.9)}.lang{display:inline-flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:8px 12px;font-size:13px;font-weight:600;color:var(--fg);cursor:pointer}.lang svg{color:var(--accent)}.lang .lang-name{font-weight:500;color:var(--muted)}.lang-menu[open]>.lang{border-color:var(--sky);box-shadow:0 0 0 3px rgba(56,189,248,.2)}.lang-pop{width:220px;gap:2px}.lang-opt{display:flex!important;align-items:center;gap:12px!important}.lang-opt .flag{font-size:20px;line-height:1}.lang-opt b{display:block;font-size:13.5px}.lang-opt small{color:var(--muted);font-size:11px;letter-spacing:.06em}.lang-opt>span:nth-child(2){flex:1 1}.lang-opt svg{color:var(--accent)!important}.lang-opt:hover{background:linear-gradient(90deg,rgba(56,189,248,.14),rgba(47,107,255,.1))!important;box-shadow:inset 0 0 0 1px rgba(56,189,248,.35)}.lang-opt[aria-current=true]{background:var(--accent-soft)!important}.menu-pop{animation:pop .16s ease-out}@keyframes pop{0%{opacity:0;transform:translateY(-4px) scale(.98)}}.lang-pop[style*=translateX]{animation:none}@media (prefers-color-scheme:dark){.brand img,.login .logo img,.portal-top .logo img{background:#fff;border-radius:12px;padding:6px 8px}}@media (max-width:1180px){.dash{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.dash .col:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}}@media (max-width:860px){.app{grid-template-columns:1fr;background:var(--bg)}.side{position:static;height:auto;flex-direction:row;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line);overflow-x:auto}.brand img{width:118px}.brand small,.nav-label,.side-foot{display:none}.nav{flex-direction:row}.nav a[aria-current=page]:before{display:none}.dash,.dash .col:last-child,.form,.form.three,.grid2{grid-template-columns:1fr;display:flex;flex-direction:column;align-items:stretch}.content,.top{padding-left:16px;padding-right:16px}.portal-top .slogan,.userchip div{display:none}.portal-top .inner{gap:8px}.portal-top .logo img{height:34px}.top-right{gap:6px}.lang .lang-name{display:none}.userchip{padding:3px}.userchip>span:last-child{display:none}.bell{width:36px;height:36px}.portal-main,.portal-top .inner{padding-left:16px;padding-right:16px}.welcome .tip{margin-left:0}.week{grid-template-columns:1fr}.bars7{border-left:0;padding-left:0}.modal-body{grid-template-columns:1fr 1.2fr}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.auth-page{min-height:100%;background:var(--bg);display:flex;flex-direction:column;align-items:center;padding-bottom:40px}.auth-banner{width:100%;background:var(--hero);color:#fff;padding:18px 16px 110px;position:relative;overflow:hidden}.auth-banner:after{content:"";position:absolute;inset:auto -10% -60px;height:140px;background:radial-gradient(60% 100% at 50% 0,hsla(0,0%,100%,.22),transparent 70%);pointer-events:none}.auth-banner-inner{max-width:460px;margin:0 auto;position:relative;z-index:1}.auth-banner-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.auth-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;background:hsla(0,0%,100%,.16);border:1px solid hsla(0,0%,100%,.28);font-weight:700;letter-spacing:.04em;font-size:13px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.auth-banner h1{margin:26px 0 0;font-size:26px;line-height:1.2;font-weight:750;max-width:330px}.auth-banner .lang{background:hsla(0,0%,100%,.16);color:#fff;border-color:hsla(0,0%,100%,.28)}.auth-card{width:calc(100% - 32px);max-width:460px;margin-top:-80px;background:var(--panel);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-lg);padding:28px 24px;display:flex;flex-direction:column;gap:14px;position:relative;z-index:2}.auth-page.plain .auth-card{margin-top:32px}.auth-logo{align-self:center;width:170px;height:auto}.auth-card h1,.auth-card h2{margin:4px 0 0;font-size:22px;text-align:center}.auth-sub{margin:0;color:var(--muted);text-align:center}.auth-form{gap:14px}.auth-field,.auth-form{display:flex;flex-direction:column}.auth-field{gap:7px;font-weight:600;font-size:13.5px}.auth-field .hint{font-weight:400;color:var(--muted);font-size:12.5px}.auth-input{display:flex;align-items:center;gap:10px;border:1.5px solid var(--line);background:var(--panel-2);border-radius:14px;padding:0 12px;color:var(--muted);transition:border-color .15s,box-shadow .15s}.auth-input:focus-within{border-color:var(--accent-2);box-shadow:0 0 0 4px rgba(47,107,255,.14);color:var(--accent)}.auth-input input{flex:1 1;min-width:0;border:0;background:none;outline:none;color:var(--fg);font:inherit;font-weight:500;font-size:15px;padding:13px 0}.auth-eye{border:0;background:none;color:var(--muted);padding:6px;margin-right:-6px;border-radius:8px;cursor:pointer;display:grid;place-items:center}.auth-eye:hover{color:var(--accent)}.auth-check{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--muted);cursor:pointer}.auth-check input{width:18px;height:18px;accent-color:var(--accent-2)}.auth-form .btn.primary{padding-top:13px;padding-bottom:13px;font-size:15px}.auth-divider{height:1px;background:var(--line);margin:4px 0}.auth-register{justify-content:center}.reg-card{max-width:520px}.reg-card h1{text-align:left}.reg-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.reg-head img{width:130px;height:auto}.reg,.reg-box{display:flex;flex-direction:column;gap:14px}.reg-steps{display:flex;align-items:center;gap:6px}.reg-steps span{flex:1 1;height:5px;border-radius:99px;background:var(--line);transition:background .25s}.reg-steps span.on{background:var(--accent-2)}.reg-steps small{color:var(--muted);margin-left:6px;white-space:nowrap}.reg-found{background:var(--ok-soft);color:var(--ok);border-radius:12px;padding:11px 14px;font-weight:600;overflow-wrap:anywhere}.reg-kind{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.reg-kind .btn{justify-content:center}.reg-nav{display:flex;justify-content:space-between;gap:10px}.reg-nav .btn{flex:1 1;justify-content:center}.reg-done{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;padding:8px 0}.reg-done h3{margin:4px 0 0;font-size:20px}.reg-done p{margin:0;color:var(--muted)}.reg-done-icon{width:64px;height:64px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center;font-size:30px;font-weight:700}.reg-login{display:flex;flex-direction:column;gap:2px;background:var(--panel-2);border:1px dashed var(--line);border-radius:14px;padding:12px 24px}.reg-login span{color:var(--muted);font-size:12.5px}.reg-login b{font-size:22px;letter-spacing:.04em}.welcome{background:var(--hero);color:#fff;border:0}.welcome .addr,.welcome .addr svg{color:hsla(0,0%,100%,.85)}.welcome .badge{background:hsla(0,0%,100%,.18);box-shadow:0 0 0 8px hsla(0,0%,100%,.1)}.welcome .pill{background:hsla(0,0%,100%,.16);border-color:hsla(0,0%,100%,.3);color:#fff}.welcome .tip{background:hsla(0,0%,100%,.14);color:hsla(0,0%,100%,.9)}.welcome .tip svg{color:#fff}.welcome>:not(.welcome-wave):not(.welcome-dots){position:relative;z-index:1}.welcome-wave{left:0;right:0;bottom:0;width:100%;height:70px;color:#fff}.welcome-dots,.welcome-wave{position:absolute;pointer-events:none}.welcome-dots{top:16px;right:18px;display:grid;grid-template-columns:repeat(5,6px);grid-gap:6px;gap:6px;opacity:.35}.welcome-dots i{width:6px;height:6px;border-radius:50%;background:#fff}.empty-head{display:flex;justify-content:space-between;padding:10px 4px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.empty-icon{width:64px;height:64px;border-radius:18px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;margin-bottom:4px}.period-select{width:auto;padding:7px 34px 7px 12px;font-size:13px;font-weight:600;border-radius:10px}.addr-lines{display:flex;flex-direction:column;gap:3px}.addr-map{width:100%;height:220px;border:1px solid var(--line);border-radius:14px;display:block;background:var(--panel-2)}.addr-map.ph{display:grid;place-items:center;color:var(--muted);font-size:13px}.app-list{display:flex;flex-direction:column}.app-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:11px 0;border-bottom:1px dashed var(--line)}.app-row:last-child{border-bottom:0}.app-row>div{display:flex;flex-direction:column;gap:2px;min-width:0}.app-row .sub{overflow-wrap:anywhere}.profile h3{display:flex;align-items:center;gap:8px;margin:4px 0 0;font-size:15px}.profile h3 svg{color:var(--accent)}.profile hr{border:0;border-top:1px solid var(--line);margin:6px 0;width:100%}.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:10px;gap:10px}.kv>div{display:flex;flex-direction:column;gap:3px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:10px 14px;min-width:0}.kv span{color:var(--muted);font-size:12.5px}.kv b{font-weight:600;overflow-wrap:anywhere}.menu-label{display:flex;align-items:center;gap:8px;padding:8px 10px 2px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.menu-sep{height:1px;background:var(--line);margin:6px 0}.menu-pop .is-current{color:var(--accent);font-weight:650;background:var(--accent-soft)}.portal-chip{width:42px;height:42px;padding:0;justify-content:center;border-radius:50%}.userchip.portal-chip>.avatar{width:100%;height:100%;display:grid;place-items:center}@media (max-width:860px){.dash .col,.dash .col:last-child{display:contents}.dash>.col>div{min-width:0}.dash .o1{order:1}.dash .o2{order:2}.dash .o3{order:3}.dash .o4{order:4}.dash .o5{order:5}.dash .o6{order:6}.dash{gap:14px}.welcome{padding:20px 18px 34px;flex-direction:column;align-items:flex-start}.welcome .badge{width:60px;height:60px}.welcome .badge svg{width:28px;height:28px}.welcome h1{font-size:21px}.welcome .tip{max-width:none}.kv{grid-template-columns:1fr}}.auth-staff{align-self:center;color:var(--muted);font-size:12.5px;padding:4px 10px;border-radius:8px}.auth-staff:hover{color:var(--accent)}.lamp-back{justify-content:center;margin-top:4px;color:var(--muted);font-size:13px}.auth-banner .lang *,.auth-banner .lang svg{color:#fff}.reg-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.reg .hint{color:var(--muted);font-size:12.5px}@media (max-width:520px){.reg-grid{grid-template-columns:1fr}}.vk-list{margin:6px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:4px}