:root{color-scheme:dark;--bg:#07111b;--sidebar:#08141e;--surface:#0e1d2b;--surface2:#102332;--surface3:#142b3a;--line:#213848;--text:#e9f5f8;--muted:#87a1af;--accent:#55e3c6;--accent2:#8dbdfb;--danger:#f5a3a0;--shadow:#0004}
:root[data-theme=ocean]{--bg:#071723;--sidebar:#0b2030;--surface:#0c2838;--surface2:#123445;--surface3:#184456;--line:#285365;--text:#e5faff;--muted:#98bdc8;--accent:#7de6ff;--accent2:#70e8c5}
:root[data-theme=light]{color-scheme:light;--bg:#edf4f5;--sidebar:#f6fafb;--surface:#fff;--surface2:#f0f7f8;--surface3:#e8f3f4;--line:#cbdce0;--text:#142d38;--muted:#637c88;--accent:#0a9f8a;--accent2:#2170ba;--shadow:#142d3811}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.5}button,input{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}a:hover{color:var(--accent)}input{color:var(--text)}.ambient{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse 600px 420px at 77% -12%,#43b7ae18,transparent),radial-gradient(ellipse 400px 400px at 5% 85%,#1c6f9d11,transparent);z-index:-1}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.muted,.small-muted{color:var(--muted)}.small-muted{font-size:12px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:.2em;color:var(--accent);text-transform:uppercase}.mint{color:var(--accent)}.brand{display:inline-flex;align-items:center;gap:12px;font-size:21px;letter-spacing:.12em;font-weight:850;line-height:1.1}.brand small{display:block;color:var(--muted);font-size:8px;letter-spacing:.27em;margin-top:5px}.brand-mark{display:grid;place-items:center;color:var(--accent);font-size:31px;border:1px solid #58cbbd50;width:42px;height:42px;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:#173d4270}
.shell{display:grid;grid-template-columns:254px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--sidebar);border-right:1px solid var(--line);padding:30px 18px 24px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.sidebar .brand{margin:0 12px 50px}.side-caption{color:#678696;font-size:10px;font-weight:700;letter-spacing:.2em;padding:0 13px;margin:0 0 15px}.side-caption.inset{margin-top:32px}.side-links{display:flex;flex-direction:column;gap:5px}.side-links a{font-size:13px;color:var(--muted);padding:13px 14px;border:1px solid transparent;border-radius:10px;display:flex;align-items:center;gap:13px}.side-links a:hover{background:var(--surface2);color:var(--text)}.side-links a.active{background:linear-gradient(90deg,#3d988626,transparent);border-color:#58c5af25;color:var(--accent);font-weight:700}.nav-ico{font-size:20px;line-height:1;width:21px;text-align:center}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:20px 13px 0}.side-connection{font-size:10px;letter-spacing:.1em;font-weight:800;color:var(--accent);margin-bottom:8px}.status-dot,.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:7px}.content-shell{min-width:0;display:flex;flex-direction:column}.topbar{height:78px;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(24px,4vw,64px);border-bottom:1px solid var(--line);background:var(--bg)}.crumb{font-size:10px;font-weight:750;letter-spacing:.17em;color:var(--muted)}.crumb span{color:var(--accent);padding:0 10px}.topbar-right{display:flex;align-items:center;gap:13px;font-size:12px}.topbar-tag{font-size:10px;letter-spacing:.12em;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:7px 10px;margin-right:12px}.avatar{width:33px;height:33px;border-radius:9px;background:#25534d;color:#9efce8;display:grid;place-items:center;font-weight:800}.text-button{background:none;border:0;color:var(--muted);padding:8px}.text-button:hover{color:var(--accent)}.main-content{padding:46px clamp(24px,4vw,64px) 65px;flex:1;max-width:1700px;width:100%;margin:0 auto}.portal-footer{font-size:10px;letter-spacing:.05em;color:#698796;border-top:1px solid var(--line);padding:20px clamp(24px,4vw,64px)}.portal-footer span{margin:0 9px}.mobile-menu{display:none}
.page-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:30px}.page-head h1{font-size:clamp(34px,4vw,55px);line-height:1.1;letter-spacing:-.055em;margin:12px 0 12px}.page-head p{margin:0;color:var(--muted);font-size:14px}.head-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.btn{border-radius:9px;padding:12px 17px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px;font-weight:750;transition:background .2s,transform .2s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--accent);color:#05231e}.btn.primary:hover{background:#89f3dc;color:#05231e}.btn.outline{background:transparent;color:var(--text);border-color:var(--line)}.btn.outline:hover{border-color:var(--accent);color:var(--accent)}.btn.quiet{color:var(--muted);background:transparent}.btn.danger{color:#fff;background:#a54048}.btn.full{width:100%}.pill{display:inline-flex;align-items:center;padding:10px 13px;border-radius:8px;border:1px solid var(--line);font-size:10px;font-weight:800;letter-spacing:.09em}.pill.offline{color:#ffbb8b;background:#ffbb8b0c;border-color:#ffbb8b3a}.pill.offline .dot{background:#ffbb8b}.pill.admin-pill{color:var(--accent);background:#55e3c60e;border-color:#55e3c63d}.info-banner{display:flex;gap:16px;align-items:start;padding:19px 22px;border:1px solid #2b5262;background:linear-gradient(100deg,#11303d88,#0e223080);border-radius:13px;margin:0 0 32px}.info-banner strong{font-size:13px}.info-banner p{font-size:12px;color:#9db8c5;margin:4px 0 0;line-height:1.7}.info-icon{display:grid;place-items:center;border-radius:8px;background:#1c4c56;color:var(--accent);width:31px;height:31px;flex:none}.section-label{display:flex;justify-content:space-between;gap:10px;margin:0 0 15px;font-size:10px;letter-spacing:.14em;font-weight:750;color:#b1c5cc}.section-label .muted{letter-spacing:normal;font-weight:400}
.widget-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:28px}.metric-card{border:1px solid var(--line);border-radius:14px;padding:21px;background:linear-gradient(140deg,var(--surface),var(--surface2));min-height:180px;transition:transform .15s,border-color .15s}.metric-card:hover{border-color:#48bda87a;transform:translateY(-2px)}.metric-card.dragging{opacity:.45}.metric-card.widget-hidden{display:none}.metric-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.metric-symbol{color:var(--accent);font-size:22px}.metric-drag{color:#698c99;cursor:grab;font-size:20px}.metric-label{font-size:12px;color:var(--muted);font-weight:650}.metric-reading{font-size:31px;letter-spacing:-.05em;font-weight:750;margin:4px 0 13px}.metric-reading small{font-size:12px;font-weight:400;color:var(--muted);letter-spacing:0}.metric-foot{border-top:1px solid var(--line);padding-top:11px;font-size:10px;color:var(--muted)}.metric-foot .dot{background:#e9aa73;width:6px;height:6px}.lower-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;margin-bottom:20px}.panel{background:linear-gradient(145deg,var(--surface),var(--surface2));border:1px solid var(--line);border-radius:15px;padding:25px;min-width:0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.panel h2{font-size:20px;letter-spacing:-.035em;margin:6px 0 0}.panel-chip{font-size:9px;color:var(--accent);border:1px solid #4fb6a941;padding:7px 10px;border-radius:6px;letter-spacing:.09em;white-space:nowrap}.connection-diagram{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0 14px}.connection-node{border:1px solid var(--line);border-radius:11px;background:var(--surface2);padding:14px 8px;min-width:0;text-align:center;flex:1}.connection-node>span{display:block;font-size:23px;color:var(--accent);margin-bottom:7px}.connection-node strong{font-size:11px;display:block}.connection-node small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.connection-line{color:#568d92;font-size:14px;letter-spacing:.1em}.panel-note{font-size:12px;color:var(--muted);line-height:1.8;margin:14px 0 0}.activity-list{display:flex;flex-direction:column;gap:0}.activity-item{display:flex;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid var(--line)}.activity-item:last-child{border-bottom:0}.activity-icon{width:32px;height:32px;display:grid;place-items:center;background:#2650494a;border:1px solid #337c7160;border-radius:9px;color:var(--accent)}.activity-item strong,.activity-item small{display:block}.activity-item strong{font-size:12px}.activity-item small{font-size:10px;color:var(--muted);margin-top:3px}.location-grid{grid-template-columns:1fr 1fr}.location-actions{display:flex;gap:9px;flex-wrap:wrap;margin:18px 0 12px}.accent-panel{background:radial-gradient(ellipse at 90% 20%,#1a6c6265,transparent 65%),var(--surface);display:flex;flex-direction:column;align-items:flex-start}.accent-panel h2{font-size:29px;line-height:1.18;margin:13px 0}.accent-panel em{font-style:normal;color:var(--accent)}.accent-panel p{color:var(--muted);font-size:12px;line-height:1.7;margin:0 0 25px}.empty-state{padding:20px 0;color:var(--muted);font-size:12px}
.admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:0 0 24px}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:23px}.stat-card>span{display:block;color:var(--muted);font-size:10px;letter-spacing:.11em;font-weight:700}.stat-card strong{font-size:40px;display:block;letter-spacing:-.06em;margin:12px 0 2px}.stat-card small{color:var(--muted);font-size:11px}.admin-panel{margin-bottom:20px}.table-scroll{overflow:auto;max-width:100%}.data-table{border-collapse:collapse;width:100%;font-size:12px;min-width:800px}.data-table th{font-size:10px;letter-spacing:.11em;color:var(--muted);font-weight:750;text-align:left;border-bottom:1px solid var(--line);padding:12px 14px}.data-table td{padding:15px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.data-table tbody tr:hover{background:#55e3c609}.data-table strong,.data-table small,.data-table td>span{display:block}.data-table small{font-size:10px;color:var(--muted);margin-top:4px}.data-table .mono{font-size:11px}.mini-tag{display:inline-block!important;font-size:9px;color:var(--accent);margin-top:4px}.status-label{display:inline-block!important;border-radius:6px;padding:5px 8px;font-size:10px;font-weight:700;white-space:nowrap}.status-label.active{color:#8ce4b4;background:#1c6e3b40}.status-label.pending{color:#f7c485;background:#a36c2e3b}.status-label.suspended{color:#ef9d9d;background:#a02e2e35}.action-button{border:1px solid var(--line);border-radius:7px;background:var(--surface3);color:var(--text);padding:8px 11px;font-size:11px;font-weight:700}.action-button.approve{color:var(--accent)}.action-button.suspend{color:var(--danger)}.search-form{display:flex;gap:7px}.search-form input{border:1px solid var(--line);background:var(--surface2);padding:9px 11px;border-radius:7px;font-size:12px;min-width:180px}.search-form button{border:1px solid var(--line);border-radius:7px;background:var(--surface3);color:var(--text);padding:8px 13px}.admin-disclaimer{font-size:11px;color:var(--muted);line-height:1.7}
.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.bottom-profile{margin-top:18px}.form-stack{display:flex;flex-direction:column;gap:16px}.form-stack label{display:block;font-size:12px;font-weight:650}.form-stack label small{font-size:11px;font-weight:400;color:var(--muted);margin-left:4px}.form-stack input:not([type=checkbox]){display:block;width:100%;margin-top:8px;padding:13px 14px;background:var(--surface2);border:1px solid var(--line);border-radius:9px;outline:0}.form-stack input:focus,.search-form input:focus{border-color:var(--accent)}.form-stack input:disabled{opacity:.65}.form-stack label>small{display:block;margin:6px 0 0}.form-stack .btn{align-self:flex-start;margin-top:5px}.form-stack .btn.full{align-self:stretch}.danger-panel{border-color:#a540484f}.alert{border-radius:9px;padding:13px 15px;margin:14px 0;font-size:12px;line-height:1.6}.alert.error{background:#9e353020;border:1px solid #d45e5960;color:#ffb1ad}.alert.success{background:#168f5e20;border:1px solid #4ab88e55;color:var(--accent)}
.drawer-backdrop{position:fixed;inset:0;background:#0009;z-index:40}.settings-drawer{position:fixed;right:0;top:0;bottom:0;z-index:41;width:min(430px,100%);overflow:auto;background:var(--surface);border-left:1px solid var(--line);padding:30px;transform:translateX(110%);transition:transform .24s ease;box-shadow:-20px 0 70px #0005}.settings-drawer.open{transform:translateX(0)}.drawer-head{display:flex;align-items:start;justify-content:space-between}.drawer-head h2{font-size:25px;margin:8px 0}.icon-button{background:var(--surface2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:7px 11px}.settings-drawer>p{font-size:12px;line-height:1.7}.settings-drawer h3{font-size:13px;margin:28px 0 12px}.theme-options{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.theme-options label{cursor:pointer}.theme-options input{position:absolute;opacity:0}.theme-options span{display:block;border:1px solid var(--line);background:var(--surface2);padding:12px 7px;text-align:center;font-size:11px;border-radius:8px}.theme-options input:checked+span{border-color:var(--accent);color:var(--accent)}.widget-settings{display:flex;flex-direction:column;gap:6px;margin-bottom:24px}.widget-setting{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:var(--surface2)}.widget-setting label{font-size:12px;display:flex;gap:10px;align-items:center;cursor:pointer}.widget-setting input{accent-color:var(--accent)}.reorder{display:flex;gap:5px}.reorder button{background:var(--surface3);color:var(--text);border:1px solid var(--line);border-radius:5px;padding:5px 9px}.toast{position:fixed;bottom:25px;right:25px;z-index:80;max-width:350px;background:#173c3c;border:1px solid #51e2cf60;border-radius:10px;padding:14px 18px;font-size:12px;color:#dcfff5;box-shadow:0 12px 40px #0007;display:none}.toast.visible{display:block}
.auth-nav{display:flex;justify-content:space-between;align-items:center;padding:28px clamp(24px,5vw,90px)}.auth-nav>a:last-child{font-size:12px;color:var(--muted)}.auth-layout{min-height:calc(100vh - 110px);display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:7vw;max-width:1420px;margin:0 auto;padding:30px clamp(24px,5vw,90px) 70px}.auth-intro{position:relative;min-height:550px;padding:65px 0 0;overflow:hidden}.auth-intro h1{font-size:clamp(62px,7vw,104px);line-height:1.04;letter-spacing:-.075em;margin:27px 0 20px}.auth-intro h1 em{font-style:normal;color:var(--accent)}.auth-intro>p{font-size:16px;color:var(--muted);max-width:480px;line-height:1.8;margin-bottom:40px}.auth-feature{padding:13px 0;border-bottom:1px solid var(--line);max-width:400px;color:#b5c9d2;font-size:13px}.auth-feature span{color:var(--accent);font-family:monospace;margin-right:18px}.auth-watermark{position:absolute;bottom:0;left:0;font-size:clamp(40px,6vw,82px);font-weight:900;letter-spacing:-.06em;color:#2c4e5655;white-space:nowrap}.auth-watermark span{color:var(--accent)}.auth-card{border:1px solid var(--line);border-radius:20px;background:linear-gradient(140deg,var(--surface),var(--sidebar));padding:clamp(27px,4vw,46px);box-shadow:0 25px 80px var(--shadow)}.auth-card h2{font-size:34px;letter-spacing:-.045em;margin:13px 0 6px}.auth-card>.muted{font-size:13px;margin:0 0 30px}.auth-card .form-stack{gap:19px}.auth-switch{border-top:1px solid var(--line);padding-top:22px;margin-top:25px;text-align:center;font-size:12px;color:var(--muted)}.auth-switch a,.fineprint a,.checkline a{color:var(--accent)}.fineprint{font-size:11px;color:var(--muted);line-height:1.7;margin-top:22px}.checkline{display:flex!important;gap:12px;align-items:start;font-weight:400!important;line-height:1.6}.checkline input{margin-top:3px;accent-color:var(--accent)}.privacy-public{max-width:880px;margin:40px auto 80px;padding:0 24px}.privacy-public h1{font-size:45px;letter-spacing:-.05em}.privacy-inner{max-width:920px}.privacy-copy{background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:30px}.privacy-copy h2{font-size:18px;margin:25px 0 8px}.privacy-copy h2:first-child{margin-top:0}.privacy-copy p{font-size:13px;line-height:1.9;color:var(--muted)}
@media(max-width:1220px){.widget-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lower-grid{grid-template-columns:1fr}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.top-name{display:none}.connection-line{letter-spacing:0}.profile-grid{grid-template-columns:1fr}}
@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;z-index:50;transform:translateX(-110%);transition:transform .2s;box-shadow:20px 0 70px #0007;width:254px}.sidebar.open{transform:translateX(0)}.mobile-menu{display:block;background:transparent;border:1px solid var(--line);color:var(--text);padding:7px 10px;border-radius:8px;margin-right:12px}.topbar{justify-content:flex-start}.topbar-right{margin-left:auto}.auth-layout{grid-template-columns:1fr;gap:0}.auth-intro{min-height:unset;padding:25px 0 35px}.auth-intro h1{font-size:58px}.auth-watermark{display:none}.auth-feature{display:none}.auth-card{max-width:560px;width:100%;margin:0 auto}.auth-intro>p{margin-bottom:0}}
@media(max-width:620px){.main-content{padding:28px 17px 45px}.topbar{height:66px;padding:0 16px}.topbar-tag{display:none}.crumb{font-size:9px}.topbar-right{gap:7px}.topbar-right .avatar{display:none}.page-head{align-items:start;flex-direction:column}.page-head h1{font-size:37px}.head-actions{width:100%}.widget-grid{gap:10px}.metric-card{padding:16px;min-height:156px}.metric-reading{font-size:26px}.metric-label{font-size:11px}.admin-stats{gap:10px}.stat-card{padding:15px}.stat-card strong{font-size:30px}.panel{padding:19px}.connection-node{padding:9px 4px}.connection-node strong{font-size:9px}.connection-node small{font-size:9px}.connection-line{font-size:9px}.search-form input{min-width:0;width:150px}.auth-nav{padding:18px 20px}.auth-nav .brand{font-size:17px}.auth-nav>a:last-child{font-size:10px}.auth-layout{padding:18px 20px 60px}.auth-intro h1{font-size:50px}.auth-card{padding:25px}.portal-footer{padding:20px 17px}.section-label{font-size:9px}}
