:root{--navy:#122e34;--ink:#17363b;--muted:#738186;--teal:#087d78;--mint:#e5f3ee;--line:#e3e9e8;--bg:#f5f7f7;--danger:#b54545;--amber:#946218;--shadow:0 12px 38px #193c3510}*{box-sizing:border-box}body{margin:0;font:14px/1.5 "Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:9px;padding:10px 16px;font-weight:600;transition:.18s}button:disabled{opacity:.45;cursor:not-allowed}button:hover:not(:disabled){filter:brightness(.96)}button:focus-visible,a:focus-visible{outline:3px solid #71ccc1;outline-offset:3px}input,select,textarea{border:1px solid #d7e0de;border-radius:8px;padding:10px 12px;background:white;color:var(--ink);max-width:100%;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #add8ce;border-color:var(--teal)}label{display:flex;flex-direction:column;gap:6px;color:#53686b;font-size:12px;font-weight:600}h1,h2,h3,p{margin-top:0}h1{font-size:30px;line-height:1.2;letter-spacing:-.9px;margin-bottom:12px}h2{font-size:19px;letter-spacing:-.3px;margin-bottom:8px}h3{font-size:15px}a{color:var(--teal)}[hidden]{display:none!important}.primary{background:var(--teal);color:white;box-shadow:0 4px 10px #087d7812}.secondary{background:white;border:1px solid var(--line);color:var(--ink)}.quiet{background:transparent;color:var(--muted)}.icon-button{background:transparent;font-size:23px;padding:5px 12px;color:var(--ink)}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:1.9px;color:var(--teal);font-weight:700;margin-bottom:11px}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:white}.login-card{max-width:600px;padding:70px 64px;margin:auto;width:100%}.login-card h1{font-size:35px;line-height:1.25;margin:22px 0}.brand-mark{background:var(--teal);color:white;width:64px;height:64px;display:inline-flex;align-items:center;justify-content:center;font-size:35px;border-radius:17px;font-weight:700;margin-bottom:35px}.brand-mark span{font-size:27px}.brand-mark.small{width:38px;height:38px;font-size:22px;border-radius:11px;margin:0}.login-card form{display:grid;gap:18px;margin-top:35px}.login-card form .primary{display:flex;justify-content:space-between;padding:14px}.login-note{font-size:11px;color:var(--muted);margin-top:28px}.login-art{position:relative;overflow:hidden;background:radial-gradient(ellipse at 80% 30%,#457870,transparent 65%),#123c40;margin:18px;border-radius:26px}.orbit{position:absolute;width:600px;height:600px;border:1px solid #79b7a94d;border-radius:50%;top:-70px;left:80px}.o2{top:100px;left:-160px;width:800px;height:800px;box-shadow:0 0 0 60px #85bbaa0b,0 0 0 120px #85bbaa09}.art-caption{position:absolute;bottom:14%;left:13%;font-size:42px;line-height:1.25;color:#bcdbd3;letter-spacing:-1px}.art-caption strong{color:white;font-weight:500}.art-caption small{display:block;font-size:12px;letter-spacing:1px;margin-top:30px}aside{width:240px;background:var(--navy);color:white;position:fixed;inset:0 auto 0 0;z-index:10;padding:30px 18px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;font-size:12px;white-space:nowrap;margin-bottom:38px}.brand b{display:block;font-weight:700;letter-spacing:1.6px}.brand small{display:block;font-size:8px;letter-spacing:1.6px;color:#91a6a8;margin-top:5px}.nav-label{font-size:9px;font-weight:600;letter-spacing:1.6px;color:#789797;padding-left:15px;margin-bottom:14px}nav{display:grid;gap:3px}nav button{text-align:left;display:flex;gap:12px;align-items:center;background:transparent;color:#bdd0d1;font-size:12px;font-weight:500;padding:11px 15px}nav button.active{background:#255054;color:white;box-shadow:inset 3px 0 #9ed8c6}nav button span{width:19px;font-size:17px}.sidebar-bottom{margin-top:auto;padding:25px 6px 0;font-size:9px;color:#a2babb;border-top:1px solid #345055}.sidebar-bottom small{display:block;padding-top:5px;padding-left:12px;color:#749295}.dot{display:inline-block;width:5px;height:5px;border-radius:100%;background:#95d9b7;margin-right:5px}main{margin-left:240px;min-height:100vh}header{height:77px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px}.breadcrumb{font-size:12px;color:var(--muted)}.breadcrumb span{margin:0 12px;color:#b2bebe}.breadcrumb b{color:var(--ink);font-weight:500}.header-right{display:flex;align-items:center;gap:20px}.connection{font-size:10px;color:var(--teal);border:1px solid #dfebe6;border-radius:20px;padding:5px 10px}.avatar{width:32px;height:32px;border-radius:50%;background:#efece4;display:grid;place-items:center;font-size:10px;font-weight:600}.content{max-width:1580px;margin:auto;padding:33px 38px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:15px}.page-heading p.muted{font-size:12px;margin-bottom:0}.toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:14px;flex-wrap:wrap}.period{display:flex;align-items:center;gap:10px}.period label{flex-direction:row;align-items:center;gap:8px;font-size:11px}.period input{padding:7px 9px;font-size:11px}.period button{padding:8px 12px;font-size:11px}.badge{display:inline-block;border-radius:20px;padding:5px 10px;font-size:10px;color:var(--amber);background:#fbf2dd}.badge.good{background:var(--mint);color:var(--teal)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.metric,.card{background:white;border:1px solid var(--line);border-radius:13px;box-shadow:0 2px 3px #00000001}.metric{padding:21px}.metric-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px}.metric-top i{font-style:normal;border-radius:8px;background:#f0f5f3;width:30px;height:30px;display:grid;place-items:center;color:var(--teal);font-size:15px}.metric strong{font-size:27px;letter-spacing:-1px;display:block;margin:15px 0 4px;font-weight:600}.metric small{font-size:10px;color:var(--muted)}.metric.featured{background:var(--navy);color:white;border-color:var(--navy)}.metric.featured .metric-top,.metric.featured small{color:#a7c3c0}.metric.featured i{background:#285156;color:#b9e6d4}.grid-main{display:grid;grid-template-columns:1.7fr 1fr;gap:22px;margin-bottom:22px}.card{padding:23px;margin-bottom:20px}.grid-main .card{margin-bottom:0}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.card-heading h2{font-size:15px;margin:0}.card-heading small{font-size:10px;color:var(--muted)}.empty{display:flex;min-height:180px;align-items:center;justify-content:center;text-align:center;flex-direction:column;padding:20px;color:var(--muted)}.empty .empty-icon{width:44px;height:44px;border-radius:12px;background:#f0f6f3;color:var(--teal);display:grid;place-items:center;font-size:23px;margin-bottom:12px}.empty h3{color:#526d70;margin-bottom:5px}.empty p{font-size:12px;max-width:410px}.notice{padding:16px 20px;border-radius:10px;background:#edf4f1;border:1px solid #dae9e1;color:#416963;font-size:12px;margin-bottom:20px;line-height:1.65}.notice.warning{background:#fff7e7;border-color:#efdfbd;color:#886428}.table-wrap{overflow:auto;margin:0 -3px}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px;white-space:nowrap}th{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#859394;font-weight:600;padding:13px 12px;background:#f8faf9;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}td{padding:14px 12px;border-bottom:1px solid #edf0ef;max-width:340px}td.wrap{white-space:normal;min-width:220px}.num{text-align:right;font-variant-numeric:tabular-nums}.negative{color:var(--danger)}.positive{color:var(--teal)}td small{display:block;color:var(--muted);font-size:10px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.actions button{font-size:12px}.list-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.list-row:last-child{border:0}.progress{height:6px;background:#edf2ef;border-radius:5px;margin-top:6px;overflow:hidden}.progress span{display:block;height:100%;background:#4f9b85}.steps{counter-reset:step}.step{padding:12px 0;display:flex;gap:13px;align-items:flex-start}.step:before{counter-increment:step;content:counter(step);width:25px;height:25px;display:grid;place-items:center;flex-shrink:0;background:var(--mint);color:var(--teal);border-radius:50%;font-size:11px}.step strong{font-size:12px}.step p{font-size:11px;color:var(--muted);margin:3px 0 0}.chart{height:190px;display:flex;align-items:flex-end;gap:5px;border-bottom:1px solid var(--line);padding:15px 0 0;overflow:hidden}.bar{flex:1;min-width:3px;background:#a4caba;border-radius:4px 4px 0 0;position:relative}.bar:hover{background:var(--teal)}.chart-legend{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;margin-top:8px}footer{padding:15px 0;color:#94a1a2;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.3px}dialog{border:1px solid var(--line);border-radius:16px;padding:26px;width:min(880px,calc(100% - 30px));max-height:90vh;color:var(--ink);box-shadow:var(--shadow)}dialog::backdrop{background:#112f3970;backdrop-filter:blur(3px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modal-heading h2{margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid .full{grid-column:1/-1}.form-note{font-size:11px;color:var(--muted);margin:14px 0}.check{flex-direction:row;align-items:center;gap:10px}.check input{width:16px;height:16px}.map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.upload{padding:22px;background:#f5f9f7;border:1px dashed #b3ccc0;border-radius:10px;margin-bottom:16px}.upload input{width:100%;background:white;margin-top:8px}.error{color:var(--danger);background:#fceeee;padding:12px;border-radius:8px;font-size:12px}.success{color:var(--teal);padding:12px;background:var(--mint);border-radius:8px}#toast{position:fixed;right:25px;bottom:25px;z-index:1000;background:var(--navy);color:white;padding:16px 22px;border-radius:10px;max-width:500px;box-shadow:var(--shadow)}#menu-toggle{display:none}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.settings-grid .card{margin:0}.help{font-size:12px;line-height:1.8;color:#657e80}.code{font-family:Consolas,monospace;font-size:11px;overflow-wrap:anywhere}canvas{width:100%;height:210px}.divider{height:1px;background:var(--line);margin:22px 0}@media(min-width:1500px){.content{padding-top:42px}.metric{padding:25px}}@media(max-width:1100px){aside{width:208px;padding:28px 14px}main{margin-left:208px}.content{padding:25px}header{padding:0 25px}.metrics{grid-template-columns:1fr 1fr}.grid-main{grid-template-columns:1fr}.connection{display:none}.map-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.login-wrap{display:block}.login-art{display:none}.login-card{padding:45px 25px}.login-card h1{font-size:30px}aside{transform:translateX(-100%);transition:.2s;width:235px}aside.open{transform:translateX(0);box-shadow:0 0 0 100vw #12333955}main{margin:0}#menu-toggle{display:block}header{height:65px;padding:0 13px;gap:4px}.breadcrumb{font-size:10px}.breadcrumb span{margin:0 4px}.header-right{gap:3px}.avatar{display:none}.content{padding:24px 15px}h1{font-size:26px}.page-heading{align-items:flex-start}.page-heading .primary{font-size:11px;padding:10px}.metrics{gap:10px}.metric{padding:15px}.metric strong{font-size:23px}.period{flex-wrap:wrap;gap:6px}.period input{max-width:132px}.card{padding:17px}.settings-grid,.form-grid{grid-template-columns:1fr}.map-grid{grid-template-columns:1fr 1fr}.form-grid .full{grid-column:auto}.header-right .quiet{font-size:10px}footer span{display:none}.page-heading .eyebrow{font-size:8px}.badge{font-size:9px}dialog{padding:19px}.chart{height:140px}}
