@charset "UTF-8";
:root{--blue:#246fe5;--blue-dark:#0b2850;--navy:#0c203f;--cyan:#36c9e3;--green:#16a889;--orange:#e99b26;--red:#e4616b;--purple:#8a6bd3;--text:#243750;--muted:#8a99af;--line:#e7edf5;--bg:#f3f6fb;--shadow:0 4px 24px #17376406}*{box-sizing:border-box}body{margin:0;color:var(--text);font:14px/1.6 Inter,"Microsoft YaHei","PingFang SC",Arial,sans-serif;background:var(--bg)}button,input,select,textarea{font:inherit}a{color:var(--blue);text-decoration:none}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #5b9ffc;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:25px;letter-spacing:.4px;font-weight:650}h2{font-size:16px;font-weight:650}h3{font-size:15px}button{border:0}input,select,textarea{outline:none;border:1px solid #dce5f0;background:#fff;color:var(--text);border-radius:6px;padding:9px 12px;min-height:38px}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #246fe512}select{cursor:pointer}textarea{resize:vertical}input[type=checkbox],input[type=radio]{min-height:auto;accent-color:var(--blue)}.icon{width:20px;height:20px;display:inline-block;vertical-align:middle;flex-shrink:0}.btn{display:inline-flex;justify-content:center;align-items:center;gap:7px;min-height:36px;padding:7px 16px;border-radius:6px;font-size:13px;font-weight:500;white-space:nowrap;transition:background .15s,box-shadow .15s;border:1px solid transparent;line-height:1.5}.btn .icon{width:16px;height:16px}.btn.primary{background:var(--blue);color:#fff;box-shadow:0 3px 8px #1f69db18}.btn.primary:hover{background:#165dc9}.btn.secondary{background:white;color:var(--text);border-color:#dae3ee}.btn.secondary:hover{background:#f3f7ff;border-color:#c4d6ef}.btn.ghost{background:transparent;color:var(--blue)}.btn.ghost:hover{background:#edf4ff}.btn.danger{background:#fff1f2;color:var(--red);border-color:#ffdce0}.badge{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:12px;line-height:1.6;padding:3px 9px;border-radius:4px;background:#edf4ff;color:var(--blue)}.badge:before{content:"";width:4px;height:4px;background:currentColor;border-radius:50%}.badge.green{background:#eaf8f3;color:#149f7b}.badge.orange{background:#fff5e6;color:#d18a1c}.badge.red{background:#fff0f1;color:#db5e6c}.badge.gray{background:#f0f3f7;color:#7f8ca1}.badge.purple{background:#f3effc;color:#8a6bd3}.text-muted,.subtle{color:var(--muted)}.text-small{font-size:12px}.text-primary{color:var(--blue)}.subheading{font-size:14px;font-weight:650;margin:10px 0 16px}.section-kicker{font-size:11px;letter-spacing:1.6px;color:#7fa5ce;text-transform:uppercase}.section-space{margin-top:20px}.stack{display:flex;flex-direction:column;gap:20px}.grid2,.grid3,.grid4{display:grid;gap:20px}.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid4{grid-template-columns:repeat(4,minmax(0,1fr))}.split-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:20px}.grid2>*,.grid3>*,.grid4>*,.split-layout>*{min-width:0}.tag-row{display:flex;flex-wrap:wrap;align-items:center;gap:9px}.list-clean{list-style:none;margin:0;padding:0}.list-clean>li{padding:12px 0;border-bottom:1px solid var(--line)}.list-clean>li:last-child{border:0}.note{display:flex;align-items:flex-start;gap:9px;background:#edf5ff;color:#55769d;padding:12px 16px;border-radius:6px;font-size:13px;margin-bottom:18px}.note .icon{width:17px;margin-top:2px}.note.orange{background:#fff7e9;color:#ab8139}.note.green{background:#edf9f4;color:#358a74}.note.red{background:#fff1f2;color:#b25461}
.sidebar{position:fixed;left:0;top:0;bottom:0;width:226px;background:var(--navy);color:#94a9c6;z-index:60;display:flex;flex-direction:column;border-right:1px solid #061b33}.brand{display:block;padding:21px 20px 16px;color:#fff}.brand-art{background:white url('assets/logo.jpg') no-repeat center 48%;background-size:116% auto;display:block;width:185px;height:67px;border-radius:6px}.brand-caption{display:flex;align-items:center;justify-content:space-between;margin:14px 0 0;font-size:12px;letter-spacing:2px;color:#c1d5ec}.brand-caption small{font-size:9px;letter-spacing:1px;color:#577493}.sidebar-nav{padding:8px 12px;overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:#2b4163 transparent}.nav-group{margin:5px 0}.nav-main{width:100%;display:flex;align-items:center;gap:12px;padding:12px 13px;color:#a8bbd5;border-radius:6px;background:transparent;text-align:left;font-size:14px}.nav-main:hover{background:#172e4c;color:white}.nav-main.active{background:linear-gradient(90deg,#246fe5,#1f66d4);color:#fff;box-shadow:0 4px 16px #0002}.nav-main .nav-arrow{margin-left:auto;width:13px;transition:transform .2s}.nav-group.expanded .nav-arrow{transform:rotate(90deg)}.nav-children{display:none;padding:6px 0 6px 35px}.nav-group.expanded .nav-children{display:block}.nav-children a{display:block;font-size:12px;padding:8px 10px;color:#8fa8c9;border-left:1px solid #2c4467}.nav-children a:hover{color:white}.nav-children a.active{color:#72baff;border-left:2px solid #49a5ff;background:#19375670}.sidebar-bottom{border-top:1px solid #213653;margin:12px 18px 0;padding:16px 0;color:#5e789a;font-size:10px;display:flex;justify-content:space-between;align-items:center}.sidebar-bottom a{color:#a0b8d5;font-size:12px}.shell-main{margin-left:226px;min-height:100vh}.topbar{height:68px;padding:0 30px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px;position:sticky;top:0;z-index:40}.topbar-left,.topbar-right{display:flex;align-items:center;gap:18px}.crumb{font-size:12px;color:#91a0b6;display:flex;align-items:center;gap:10px}.crumb b{font-weight:500;color:#52657e}.crumb .icon{width:13px}.topbar-date{color:#8c9ab0;font-size:12px}.icon-button{background:none;color:#7589a3;padding:6px;position:relative;border-radius:5px}.icon-button:hover{background:#f0f5fd}.icon-button .notice-dot{position:absolute;right:5px;top:4px;width:6px;height:6px;border-radius:50%;background:var(--orange);border:1px solid #fff}.avatar{width:34px;height:34px;border-radius:50%;background:#e9f1ff;color:#356fc4;display:inline-flex;align-items:center;justify-content:center;font-weight:650;font-size:13px}.user-menu{display:flex;gap:10px;align-items:center;border-left:1px solid var(--line);padding-left:18px;color:#47617f;font-size:12px}.menu-toggle{display:none}.page-main{max-width:1820px;padding:26px 30px 20px;margin:0 auto}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}.page-heading p{color:#8a99ae;font-size:12px;margin-top:5px}.heading-right{display:flex;gap:10px;align-items:center}.demo-pill{font-size:11px;color:#8b9aad;border:1px solid #dce5f0;background:white;padding:4px 10px;border-radius:20px;letter-spacing:1px}.page-content{display:flex;flex-direction:column;gap:20px}.page-content>.content-tabs{margin-bottom:0}.page-footer{display:flex;justify-content:space-between;padding:22px 0 4px;color:#a4afbf;font-size:10px}.panel{background:white;border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow);overflow:hidden;min-width:0}.panel-head{padding:16px 20px;display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid #edf1f7;min-height:57px}.panel-head>div{font-size:12px;color:var(--muted)}.panel-head a{font-size:12px}.panel-body{padding:20px}.panel-body>.table-wrap:first-child{margin-top:-4px}.panel-body>.stats-grid{margin-bottom:18px}.stats-grid{display:grid;grid-template-columns:repeat(var(--stats-count,4),minmax(0,1fr));gap:18px}.stat-card{background:white;padding:18px 22px;border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow)}.stat-top{display:flex;justify-content:space-between;align-items:center;color:#7f90a7;font-size:12px;gap:10px}.stat-icon{width:35px;height:35px;display:flex;align-items:center;justify-content:center;border-radius:9px;color:var(--blue);background:#edf4ff}.stat-icon.green{background:#e8f8f2;color:var(--green)}.stat-icon.orange{background:#fff5e5;color:var(--orange)}.stat-icon.purple{background:#f1edfc;color:var(--purple)}.stat-value{font-family:Inter,Arial,sans-serif;font-size:30px;font-weight:650;line-height:1.2;margin:6px 0 10px;letter-spacing:.3px;color:#233b5a}.stat-value small{font:12px "Microsoft YaHei";color:#9aa8ba;margin-left:7px}.stat-change{font-size:11px;color:#95a2b4}.toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}.filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px}.filters>label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:#74879f}.filters input,.filters select{width:164px;font-size:12px;padding:8px 10px}.toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.table-wrap{overflow-x:auto;width:100%;border-radius:5px}.data-table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap;font-size:12px}.data-table th{background:#f5f8fc;color:#7d8da4;font-size:11px;font-weight:500;padding:12px 14px;border-bottom:1px solid #e9eef7}.data-table td{padding:14px;border-bottom:1px solid #edf1f7;color:#536780;vertical-align:middle;line-height:1.7}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#f9fbff}.data-table td:first-child{color:#334e70;font-weight:500}.data-table td .text-small{font-size:10px}.data-table td b{font-weight:550}.table-foot{border-top:1px solid var(--line);padding-top:16px;margin-top:4px;display:flex;justify-content:space-between;align-items:center;gap:12px;color:#98a5b7;font-size:11px}.pagination{display:flex;gap:6px;align-items:center}.pagination button{background:white;border:1px solid #e1e8f2;min-width:28px;height:28px;color:#8a9cb3;border-radius:4px}.pagination .current{background:var(--blue);border-color:var(--blue);color:white}.pagination span{margin-left:8px}.row-actions{display:flex;gap:14px}.row-actions a{font-size:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 28px;max-width:1100px}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field>label{font-size:12px;color:#697c95}.field label em{font-style:normal;color:#e26a77}.field.wide,.info-grid .wide{grid-column:1/-1}.field input:not([type=checkbox]),.field select,.field textarea{width:100%;font-size:13px}.form-actions{display:flex;justify-content:flex-end;gap:12px;padding:20px 0 0;margin-top:22px;border-top:1px solid var(--line)}.checkbox-line{display:flex;align-items:center;gap:9px;min-height:38px}.upload-zone{border:1px dashed #b8cbea;min-height:105px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#6f8bb3!important;background:#f9fbff;border-radius:6px;position:relative;cursor:pointer}.upload-zone small{font-size:10px;color:#a1adbe}.upload-zone input{position:absolute;opacity:0;inset:0;cursor:pointer}.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;gap:22px 24px}.info-grid dt{color:#97a5b7;font-size:11px;margin-bottom:5px}.info-grid dd{margin:0;color:#49617e;font-size:13px;overflow-wrap:anywhere}.content-tabs{display:flex;border-bottom:1px solid #dfe7f2;gap:26px;overflow-x:auto;white-space:nowrap}.content-tabs a{padding:8px 1px 14px;color:#7d8fa6;font-size:13px;border-bottom:2px solid transparent}.content-tabs a.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:600}.steps{display:flex;justify-content:space-between;margin:8px 0 26px;gap:10px}.step{display:flex;align-items:center;gap:10px;flex:1;position:relative;color:#96a5b8}.step:not(:last-child):after{content:"";height:1px;background:#e2e9f3;flex:1;min-width:10px;margin:0 7px}.step>span{width:30px;height:30px;flex-shrink:0;background:#f1f4f9;color:#9aabc0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px}.step b{font-size:12px;font-weight:500;white-space:nowrap}.step small{display:block;font-size:10px;white-space:nowrap}.step.done{color:#5583b9}.step.done>span{background:#eaf4ff;color:var(--blue)}.step.active{color:var(--blue)}.step.active>span{background:var(--blue);color:white;box-shadow:0 0 0 4px #edf3ff}.step .icon{width:16px}.attachment{display:inline-flex;align-items:center;gap:10px;border:1px solid #e0e9f5;border-radius:6px;padding:12px 18px;background:#f9fbff;color:#5a7faa;font-size:12px}.check-list{display:flex;flex-wrap:wrap;gap:20px}.check-list label{display:flex;align-items:center;gap:8px}.timeline{padding:4px 0 4px 10px}.timeline-item{position:relative;border-left:1px solid #dbe7f7;padding:0 0 24px 22px;font-size:12px}.timeline-item:before{position:absolute;content:"";left:-5px;top:5px;width:8px;height:8px;background:#7aaaf0;border-radius:50%;box-shadow:0 0 0 3px white}.timeline-item:last-child{border-color:transparent;padding-bottom:0}.timeline-item p,.timeline-item small{color:#8c9db3}.progress-track,.bar-track{background:#edf2f8;border-radius:10px;height:7px;overflow:hidden}.progress-fill,.bar-fill{background:linear-gradient(90deg,#5199ff,#236ce0);height:100%;border-radius:10px}.bar-fill.green{background:linear-gradient(90deg,#5cceb5,#19a88c)}.bar-fill.orange{background:linear-gradient(90deg,#f4cc7c,#eaa13b)}.bar-chart{display:flex;flex-direction:column;gap:18px;padding:8px 0}.bar-row{display:grid;grid-template-columns:100px 1fr 45px;align-items:center;gap:12px;font-size:12px;color:#8596ad}.bar-row b{font-weight:500;color:#527398;text-align:right}.line-chart{height:205px}.line-chart svg{width:100%;height:100%}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--line);border-top:1px solid var(--line)}.calendar-day{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px;min-height:115px;font-size:12px}.calendar-day.today{background:#f1f6ff}.calendar-day .badge{font-size:10px}.calendar-day>a{display:block;margin-top:5px;padding:4px 6px;border-radius:3px;background:#edf4ff;font-size:10px}.calendar-day.muted{background:#f9fbfd;color:#b1bccb}
.hero{background:linear-gradient(114deg,#112e57,#1c5091);border-radius:10px;color:white;padding:28px 30px;display:flex;justify-content:space-between;align-items:center;position:relative;overflow:hidden;min-height:140px}.hero:after{content:"";position:absolute;right:-100px;top:-160px;width:560px;height:460px;border:1px solid #6e9ed12a;border-radius:50%;box-shadow:0 0 0 35px #6e9ed110,0 0 0 70px #6e9ed109,0 0 0 110px #6e9ed107;pointer-events:none}.hero h2{font-size:23px;letter-spacing:1px;margin:8px 0 5px}.hero p{font-size:12px;color:#a9c5e5}.hero-state{position:relative;z-index:1;display:flex;gap:27px;padding-right:12px}.hero-state>div{border-left:1px solid #799dcb40;padding-left:25px;font-size:11px;color:#97bce8}.hero-state strong{display:block;color:#fff;font-size:21px;letter-spacing:1px;margin:4px 0}.hero-state strong small{font-size:12px}.hero .status-dot{display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:#42ddbb;box-shadow:0 0 10px #42ddbbaa}.dashboard-middle{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr);gap:20px}.map-stage{height:290px;background:linear-gradient(150deg,#f4f9fe,#eef5fc);border:1px solid #e4edf7;border-radius:7px;position:relative;overflow:hidden}.map-stage:before{position:absolute;inset:0;content:"";background-image:linear-gradient(#d8e6f330 1px,transparent 1px),linear-gradient(90deg,#d8e6f330 1px,transparent 1px);background-size:25px 25px}.map-stage>svg{width:100%;height:100%;position:relative}.map-caption{position:absolute;bottom:14px;left:17px;display:flex;gap:17px;align-items:center;font-size:10px;color:#8b9eb4}.map-caption i{width:6px;height:6px;display:inline-block;margin-right:5px;border-radius:50%;background:#2c84e8}.map-caption i.orange{background:#e9a539}.map-tags{position:absolute;top:15px;left:17px;display:flex;gap:8px}.map-tags span{font-size:10px;color:#7193bc;background:#fff9;padding:3px 8px;border:1px solid #e0e9f4;border-radius:4px}.on-duty-person{display:flex;gap:12px;align-items:center;padding:11px 0}.on-duty-person+.on-duty-person{border-top:1px solid #edf2f7}.on-duty-person .avatar{border-radius:8px;width:38px;height:38px;font-size:12px}.on-duty-person b{font-size:12px;font-weight:550;display:block}.on-duty-person p{font-size:10px;color:#97a7bc}.on-duty-person .badge{margin-left:auto}.quick-links{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.quick-link{display:flex;flex-direction:column;gap:8px;align-items:center;color:#7b91ae;font-size:10px;text-align:center;padding:13px 2px}.quick-link:hover{background:#f3f7ff;border-radius:5px;color:var(--blue)}.quick-link .icon{width:21px;height:21px;color:#4f8cde}.device-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.device-meter{display:flex;gap:13px;align-items:center;padding:10px 0}.ring{width:57px;height:57px;border-radius:50%;background:conic-gradient(var(--blue) var(--amount,85%),#edf2fa 0);position:relative;display:flex;align-items:center;justify-content:center;color:#416c9c;font-size:12px;flex-shrink:0}.ring:before{content:"";position:absolute;inset:5px;border-radius:50%;background:white}.ring b{position:relative;font-weight:550}.device-meter p{font-size:11px;color:#94a4b8}.device-meter strong{font-size:15px;font-weight:550}.video-wall{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.camera-scene{position:relative;overflow:hidden;aspect-ratio:16/10;border-radius:7px;background:#10253b;color:#9ab8d7;display:flex;align-items:center;justify-content:center}.camera-scene svg{width:100%;height:100%}.camera-scene .camera-label{position:absolute;top:12px;left:12px;font-size:10px;color:#d1e1ed;display:flex;align-items:center;gap:6px}.camera-scene .camera-label:before{content:"";width:5px;height:5px;background:#2bd0a3;border-radius:50%}.camera-time{position:absolute;bottom:10px;left:12px;font:9px monospace;opacity:.7}.camera-demo{position:absolute;right:10px;bottom:8px;background:#0b1c2db0;font-size:9px;padding:1px 6px;color:#9fbed7}.map-page .map-stage{height:520px}.rule-document{max-width:900px;margin:auto;line-height:2;font-size:13px;color:#647790}.rule-document h2{text-align:center;font-size:22px;color:#263e5c;margin-bottom:12px}.rule-document h3{margin:24px 0 10px;color:#365478}.rule-document p{margin:10px 0}.tree-list{padding:0;list-style:none}.tree-list li{padding:10px;border-radius:5px;font-size:12px}.tree-list li.active{background:#edf4ff;color:var(--blue)}.tree-list li.sub{padding-left:28px;color:#7b91ad}.role-box{border:1px solid #e1e9f4;border-radius:7px;padding:16px}.role-box h3{margin-bottom:12px;font-size:13px}.role-box label{display:flex;align-items:center;gap:8px;padding:7px 0;font-size:12px}.form-section{margin-bottom:24px}.form-section>h3{padding-bottom:12px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.login-page{min-height:100vh;display:grid;grid-template-columns:1.18fr 1fr;background:white}.login-visual{background:radial-gradient(ellipse at 50% 45%,#1b518a 0,#0b2b51 55%,#071e3b 100%);position:relative;overflow:hidden;color:white;padding:40px 54px;display:flex;flex-direction:column;justify-content:space-between}.login-visual:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#6babe609 1px,transparent 1px),linear-gradient(90deg,#6babe609 1px,transparent 1px);background-size:44px 44px;transform:perspective(600px) rotateX(13deg) scale(1.3);pointer-events:none}.login-brand{position:relative;display:flex;align-items:center;gap:16px;font-size:13px;color:#93b3d6}.login-brand .brand-art{width:138px;height:50px;opacity:.95;border-radius:4px}.login-visual-main{position:relative;max-width:700px;width:100%;margin:auto}.login-visual-main .section-kicker{color:#5e9ad3;font-size:11px;letter-spacing:3px}.login-visual h1{font-size:37px;font-weight:600;line-height:1.4;letter-spacing:3px;margin:13px 0}.login-visual p{font-size:13px;color:#80a8d1;letter-spacing:1px}.login-scene{width:100%;height:auto;max-height:370px;margin:24px 0 12px;display:block}.login-features{display:flex;gap:26px;border-top:1px solid #3871a33d;padding-top:22px;position:relative}.login-features div{font-size:10px;color:#7b9dbf;flex:1}.login-features b{font-size:13px;color:#bdd5ec;display:block;margin-bottom:4px;letter-spacing:1px}.login-form-area{display:flex;align-items:center;justify-content:center;position:relative;padding:50px}.login-form-box{max-width:385px;width:100%;margin-top:-20px}.login-form-box>.section-kicker{color:#9aadc5;font-size:10px;letter-spacing:2.5px}.login-form-box h2{font-size:28px;letter-spacing:1px;font-weight:650;margin:12px 0 7px}.login-form-box>p{color:#a0aebf;font-size:12px;margin-bottom:37px}.login-field{display:block;margin-bottom:22px}.login-field>span{display:block;font-size:12px;color:#6a809b;margin-bottom:8px}.login-input{display:flex;position:relative;align-items:center}.login-input>.icon{position:absolute;left:14px;width:18px;color:#a3b6ce}.login-input input{width:100%;padding:13px 42px;background:#fbfcff;border-color:#dfe7f1;height:48px;font-size:13px}.login-input button{position:absolute;right:6px;background:none;color:#a4b5cb;padding:8px}.login-input button .icon{width:17px}.login-options{display:flex;justify-content:space-between;font-size:11px;color:#8a9db6;align-items:center;margin:5px 0 24px}.login-options label{display:flex;gap:6px;align-items:center}.login-submit{width:100%;height:47px;font-size:14px;letter-spacing:2px}.login-error{color:#d66977;font-size:12px;min-height:25px}.login-demo{margin-top:23px;padding:12px;border:1px solid #e7edf5;background:#f8faff;border-radius:6px;text-align:center;font-size:11px;color:#99a8bc}.login-demo b{color:#6982a1;font-weight:500}.login-bottom{position:absolute;bottom:30px;left:0;right:0;text-align:center;color:#a9b6c6;font-size:10px;letter-spacing:.6px}.login-top{position:absolute;top:36px;right:45px}.mobile-workbench{max-width:700px;margin:auto;width:100%}.mobile-hero{background:linear-gradient(120deg,#1760d1,#308bea);padding:28px;color:white;border-radius:13px}.mobile-hero p{font-size:11px;color:#bad8ff;margin-top:6px}.mobile-hero h2{font-size:21px}.mobile-task{display:block;color:var(--text);border-bottom:1px solid var(--line);padding:16px 0}.mobile-task:last-child{border:0}.mobile-task-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.mobile-task h3{font-size:13px}.mobile-task p{color:#93a2b6;font-size:11px;margin-top:8px}.mobile-tools{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.mobile-tool{display:flex;align-items:center;flex-direction:column;gap:10px;padding:17px 5px;border-radius:7px;background:#f6f9ff;font-size:12px}.mobile-tool .icon{width:25px;height:25px}.mobile-bottom{display:none}.not-found{text-align:center;padding:70px 20px}.not-found h1{font-size:55px;color:#abc4e8}.not-found p{margin:15px 0 25px;color:#94a3b7}#toast{position:fixed;top:24px;left:50%;transform:translate(-50%,-20px);padding:12px 22px;background:#1b3656;color:white;font-size:13px;border-radius:7px;z-index:150;box-shadow:0 8px 30px #0c284533;opacity:0;pointer-events:none;transition:.2s;max-width:90%;text-align:center}#toast.visible{opacity:1;transform:translate(-50%,0)}.modal-backdrop{position:fixed;inset:0;background:#102d4a55;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(3px)}.modal{width:560px;max-width:100%;background:#fff;border-radius:10px;box-shadow:0 20px 80px #07182b44;max-height:85vh;overflow:auto}.modal-head{padding:20px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.modal-head button{background:none;font-size:22px;color:#a4b1c2}.modal-body{padding:24px}.nav-mask{display:none}
@media(min-width:1800px){.page-main{padding:30px 38px}.dashboard-middle{grid-template-columns:minmax(0,2fr) minmax(340px,1fr)}.map-stage{height:330px}.stat-value{font-size:34px}.data-table td{padding:16px}.login-visual{padding:54px 80px}.login-visual h1{font-size:44px}}
@media(max-width:1250px){.sidebar{width:205px}.brand{padding:19px 15px}.brand-art{width:173px;height:63px}.shell-main{margin-left:205px}.page-main{padding:22px}.topbar{padding:0 22px}.topbar-date{display:none}.stats-grid{gap:12px}.stat-card{padding:16px}.stat-value{font-size:26px}.dashboard-middle{grid-template-columns:1.6fr 1fr}.hero{padding:23px}.hero-state{gap:10px}.hero-state>div{padding-left:16px}.filters input,.filters select{width:143px}.device-summary{grid-template-columns:repeat(2,1fr)}.login-visual{padding:32px}.login-visual h1{font-size:30px}.login-features{gap:14px}.login-form-area{padding:35px}.grid4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:960px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-middle,.grid3{grid-template-columns:1fr}.hero-state{display:none}.grid2{grid-template-columns:1fr}.sidebar{width:195px}.shell-main{margin-left:195px}.brand-art{width:165px;height:60px}.brand-caption{font-size:11px;letter-spacing:1px}.page-main{padding:20px}.topbar{padding:0 20px}.topbar-right{gap:12px}.page-heading h1{font-size:22px}.split-layout{grid-template-columns:190px 1fr}.info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.steps{flex-wrap:wrap;gap:16px}.step{min-width:130px}.step:after{display:none}.login-page{grid-template-columns:1fr 1fr}.login-visual{padding:25px}.login-brand>span{display:none}.login-visual h1{font-size:25px}.login-visual p{font-size:11px}.login-features{flex-wrap:wrap}.login-features div{min-width:80px}.login-form-area{padding:30px}.login-form-box h2{font-size:24px}.video-wall{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.sidebar{transform:translateX(-100%);transition:.2s;width:226px}.sidebar.open{transform:translateX(0)}.sidebar.open+.nav-mask{display:block;position:fixed;inset:0;background:#08234766;z-index:55}.shell-main{margin-left:0}.topbar{height:57px;padding:0 16px}.topbar-left{gap:8px}.menu-toggle{display:block}.crumb{font-size:11px;gap:6px}.crumb>span:first-child{display:none}.topbar-date,.topbar-right>.demo-pill,.user-menu>span{display:none}.user-menu{padding-left:10px;gap:8px}.topbar-right{gap:8px}.avatar{width:29px;height:29px;font-size:11px}.page-main{padding:18px 14px 78px}.page-heading{margin-bottom:16px;gap:8px;align-items:flex-start}.page-heading h1{font-size:21px}.page-heading p{font-size:11px;max-width:260px}.heading-right{gap:5px}.heading-right .demo-pill{display:none}.heading-right .btn{padding:7px 10px;font-size:11px}.page-content{gap:15px}.stack,.grid2,.grid3,.grid4{gap:15px}.panel-head{padding:14px 16px}.panel-head h2{font-size:14px}.panel-body{padding:16px}.stat-card{padding:13px}.stat-icon{width:29px;height:29px}.stat-icon .icon{width:16px}.stat-top{font-size:10px}.stat-value{font-size:25px;margin:10px 0 8px}.stat-change{font-size:9px}.hero{padding:22px 20px;min-height:125px}.hero h2{font-size:21px}.hero p{font-size:10px}.hero .section-kicker{font-size:9px}.dashboard-middle{gap:15px}.map-stage{height:260px}.device-summary{gap:4px 12px}.ring{width:47px;height:47px}.device-meter{gap:9px}.device-meter strong{font-size:13px}.device-meter p{font-size:9px}.split-layout{grid-template-columns:1fr}.split-layout>.panel:first-child .panel-body{max-height:180px;overflow:auto}.form-grid{grid-template-columns:1fr;gap:18px}.form-actions{justify-content:stretch;flex-wrap:wrap}.form-actions .btn{flex:1}.info-grid{gap:18px 16px}.info-grid dd{font-size:12px}.toolbar{gap:12px}.filters{width:100%;gap:8px}.filters>label{flex:1;min-width:120px}.filters input,.filters select{width:100%}.toolbar-actions{width:100%}.table-foot{font-size:9px;align-items:flex-start}.pagination span{display:none}.data-table th,.data-table td{padding:11px;font-size:11px}.content-tabs{gap:20px}.content-tabs a{font-size:12px}.bar-row{grid-template-columns:78px 1fr 32px;font-size:10px}.calendar-grid{min-width:620px}.calendar-day{padding:7px;font-size:11px;min-height:100px}.login-page{display:block;background:#f9fbff}.login-visual{min-height:300px;padding:25px 28px 35px;justify-content:flex-start}.login-brand .brand-art{width:110px;height:40px}.login-visual-main{margin:26px 0 0}.login-visual h1{font-size:25px}.login-visual p{font-size:11px}.login-scene,.login-features{display:none}.login-form-area{padding:28px 30px 80px;min-height:500px;background:#fff;margin-top:-17px;border-radius:19px 19px 0 0}.login-top{top:19px;right:24px}.login-form-box{margin:0}.login-form-box>.section-kicker{font-size:9px}.login-form-box h2{font-size:23px;margin-top:8px}.login-form-box>p{margin-bottom:23px}.login-bottom{bottom:22px;font-size:9px}.login-demo{margin-top:20px}.login-field{margin-bottom:17px}.mobile-bottom{position:fixed;bottom:0;left:0;right:0;height:62px;background:#ffffffee;border-top:1px solid #e2eaf5;z-index:45;display:flex;justify-content:space-around;align-items:center;backdrop-filter:blur(10px)}.mobile-bottom a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:9px;color:#91a5bf}.mobile-bottom a.active{color:var(--blue)}.mobile-bottom .icon{width:20px;height:20px}.mobile-tools{gap:8px}.mobile-tool{font-size:10px}.video-wall{grid-template-columns:1fr}.map-page .map-stage{height:340px}.page-footer{font-size:9px;flex-direction:column;gap:5px}.mobile-hero{padding:23px}.modal-backdrop{padding:16px}.modal-body{padding:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
