@import url('/static/fonts.css');
.tower-id{display:block;font-size:9px;margin-top:5px}.integration-list{margin-top:22px}
:root{--bg:#f5f7fa;--ink:#182333;--muted:#758091;--line:#e8ecf1;--green:#14846b;--mint:#e9f6f0;--nav:#142c2a;--red:#c35555}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-size:14px}button,input,select{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}button{transition:background .15s,transform .15s}button:hover{filter:brightness(.96)}a{text-decoration:none;color:inherit}.hidden{display:none!important}.muted,small{color:var(--muted)}h1,h2,h3,p{margin:0}h3{font-size:16px;letter-spacing:-.3px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.9px}.brand{display:flex;align-items:center;font-size:29px;font-weight:750;letter-spacing:-1.8px;gap:9px}.brand-dot{color:#64c5a7;margin-left:-8px}.brand-icon{display:grid;place-items:center;width:33px;height:35px;border-radius:10px;background:#2f6158;color:#adedd8;font-size:27px;letter-spacing:0;line-height:1}.login-layout{display:grid;grid-template-columns:1.04fr 1fr;min-height:100vh}.login-story{background:#142f2b;color:white;padding:43px 58px;display:flex;flex-direction:column;position:relative;overflow:hidden}.login-story:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 75% 65%,#2b63554a,transparent 60%);pointer-events:none}.story-content{margin:auto 0;position:relative;padding:60px 0 0}.story-content .eyebrow{color:#8fbaa9}.story-content h1{font-size:clamp(38px,4.5vw,65px);line-height:1.1;letter-spacing:-2.5px;font-weight:550;margin:25px 0}.story-content h1 span{color:#91d9b8}.story-content p{color:#a5bcb5;line-height:1.9;font-size:14px}.login-story>small{color:#8eaaa1;margin-top:24px;z-index:1}.signal-art{height:240px;position:relative;margin-top:20px}.signal-art i{position:absolute;border:1px solid #82bea52a;border-radius:50%;width:220px;height:220px;left:calc(50% - 110px);top:10px}.signal-art i:nth-of-type(2){width:330px;height:330px;left:calc(50% - 165px);top:-45px}.signal-art i:nth-of-type(3){width:440px;height:440px;left:calc(50% - 220px);top:-100px}.signal-core{position:absolute;top:80px;left:calc(50% - 40px);width:80px;height:80px;border-radius:23px;background:#31594b;border:1px solid #608e78;display:grid;place-items:center;font-size:50px;color:#ace6c4;z-index:1;box-shadow:0 0 80px #74b89022}.node{position:absolute;width:13px;height:13px;border:3px solid #264b3b;border-radius:50%;background:#a4e0b8;box-shadow:0 0 0 5px #7da98e15}.n1{left:22%;top:41px}.n2{right:12%;top:110px}.n3{left:38%;bottom:16px}.login-form-area{display:flex;align-items:center;justify-content:center;position:relative;background:#fbfcfd;padding:50px}.login-box{max-width:355px;width:100%}.login-box h2{font-size:30px;letter-spacing:-1px;margin:17px 0 12px}.login-box form{margin-top:36px}label{display:block;font-size:12px;font-weight:600;margin:21px 0 9px}input,select{width:100%;padding:13px 14px;border:1px solid #dfe5e9;border-radius:8px;outline:none;background:white;color:var(--ink);margin-top:9px;min-height:44px}input:focus,select:focus{border-color:#298d75;box-shadow:0 0 0 3px #298d7514}button:focus-visible,a:focus-visible{outline:3px solid #77bea8;outline-offset:3px}input::placeholder{color:#9aa2ae;font-weight:400}.primary,.secondary{border:0;border-radius:8px;padding:12px 18px;font-size:12px;font-weight:600;min-height:42px}.primary{background:var(--green);color:white}.secondary{background:white;border:1px solid #dde3e8;color:#455360}.wide{width:100%;margin-top:14px;display:flex;justify-content:space-between;align-items:center}.login-help{font-size:11px;color:var(--muted);text-align:center;line-height:1.7;margin-top:26px}.login-footer{position:absolute;bottom:37px;font-size:11px}.error{font-size:12px;color:#b94040;margin-top:12px}.portal{display:flex;min-height:100vh}aside{width:232px;flex-shrink:0;background:var(--nav);color:#fff;position:fixed;inset:0 auto 0 0;padding:32px 20px 18px;display:flex;flex-direction:column}aside .brand{margin:0 9px 35px}.workspace{display:flex;align-items:center;gap:11px;padding:13px 9px;border:1px solid #ffffff1a;border-radius:9px;margin-bottom:31px}.workspace-icon{background:#345049;padding:8px 10px;border-radius:7px;font-weight:600}.workspace div{flex:1}.workspace strong{font-size:12px}.workspace small{display:block;font-size:10px;color:#97ada6;margin-top:4px}.nav-caption{display:block;font-size:9px;font-weight:600;letter-spacing:1.4px;color:#829e97;margin:0 12px 13px}nav .nav-caption{margin-top:32px}nav button{display:flex;align-items:center;gap:13px;color:#b4c6c0;background:none;border:0;width:100%;padding:12px 13px;text-align:left;border-radius:7px;font-size:12px;margin-bottom:5px}nav button span{font-size:17px;width:18px}nav button.selected{background:#2b4840;color:#dbf3e6}nav button:hover{background:#29463e}.sidebar-bottom{margin-top:auto;border-top:1px solid #ffffff18;padding:20px 0 0;display:flex;align-items:center;gap:10px}.avatar{background:#c5dec9;color:#294438;width:33px;height:33px;display:grid;place-items:center;border-radius:50%;font-size:12px;font-weight:600}.sidebar-bottom strong{font-size:11px;display:block}.sidebar-bottom small{display:block;color:#92a9a0;font-size:10px;margin-top:4px}.sidebar-bottom button{margin-left:auto;background:none;border:0;color:#a5c1b6;font-size:21px}.main-wrap{margin-left:232px;width:calc(100% - 232px)}header{height:76px;background:#fff;border-bottom:1px solid var(--line);padding:0 36px;display:flex;align-items:center;justify-content:space-between;font-size:11px}.slash{color:#c6ccd1;margin:0 15px}header strong{font-weight:500}.header-right{display:flex;gap:22px;align-items:center}.header-date{color:#828c98;border-left:1px solid var(--line);padding-left:22px}.connection-indicator{font-size:10px;color:#7b8591}.connection-indicator:before{content:"";display:inline-block;border-radius:50%;width:6px;height:6px;background:#b0b8c1;margin-right:7px}.connection-indicator.connected{color:var(--green)}.connection-indicator.connected:before{background:#2aa67d}main{padding:30px 36px 0;max-width:1600px;margin:0 auto}.page-heading{display:flex;justify-content:space-between;align-items:center;margin:5px 0 27px;gap:20px}.page-heading h1{font-size:33px;letter-spacing:-1.2px;font-weight:600;margin:9px 0 10px}.title-dot{color:#309477}.page-heading p{font-size:12px}.page-heading>.secondary{align-self:center}.banner{padding:12px 16px;border:1px solid #e8dcc2;border-radius:8px;background:#fff9ed;color:#8d6c2a;font-size:12px;margin-bottom:24px;line-height:1.6}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:23px}.stat{background:white;border:1px solid var(--line);border-radius:10px;padding:21px 21px 17px}.stat-top{display:flex;align-items:center;justify-content:space-between;color:#697787;font-size:11px}.stat-icon{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;background:#f1f4f7;color:#718096}.stat.online .stat-icon{background:#edf8f2;color:#299c73}.stat.offline .stat-icon{background:#fdf0ef;color:#c66363}.stat strong{display:block;font-size:32px;font-weight:550;margin:10px 0;letter-spacing:-1px}.stat small{font-size:10px}.card{background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden}.overview-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:23px;margin-bottom:23px}.card-heading{display:flex;justify-content:space-between;align-items:center;padding:23px 23px 19px;gap:14px}.card-heading p{font-size:10px;margin-top:7px}.chip{font-size:10px;border:1px solid var(--line);border-radius:6px;padding:5px 9px;color:#758090}.fleet-content{display:flex;align-items:center;justify-content:center;gap:36px;padding:8px 20px 24px}.health-ring{background:#e9edf2;width:146px;height:146px;border-radius:50%;padding:13px;flex-shrink:0}.health-ring>div{background:white;border-radius:50%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.health-ring strong{font-size:29px;letter-spacing:-1px;font-weight:600}.health-ring span{font-size:10px;color:var(--muted);margin-top:4px}.legend-row{display:flex;align-items:center;gap:8px;font-size:11px;margin:17px 0;min-width:125px;color:#788492}.legend-row b{margin-left:auto;color:#2c3744;font-weight:600}.dot{display:inline-block;width:7px;height:7px;background:#a4b0bf;border-radius:50%;flex-shrink:0}.dot.online{background:#279c78}.dot.offline{background:#d36c6c}.card-foot{border-top:1px solid var(--line);padding:12px 20px;font-size:9px;color:#8993a0}.text-button{background:none;border:0;color:var(--green);font-size:10px;font-weight:600;white-space:nowrap}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-size:9px;letter-spacing:.7px;color:#8b95a2;background:#fbfcfd;font-weight:500;padding:13px 23px;text-transform:uppercase;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}td{padding:16px 23px;font-size:11px;border-bottom:1px solid #eef1f5;color:#768392}tr:last-child td{border-bottom:0}.device-name{display:flex;align-items:center;gap:12px;color:#374654}.device-name strong{font-size:11px;font-weight:550}.device-icon{width:31px;height:34px;border:1px solid #e3e9ed;background:#f7f9fb;border-radius:7px;display:grid;place-items:center;color:#81929e;font-size:18px}.badge{display:inline-flex;align-items:center;gap:6px;background:#f1f4f7;color:#788593;padding:5px 9px;border-radius:5px;font-size:10px}.badge.online{background:#ecf7f1;color:#25805f}.badge.offline{background:#fceeee;color:#b95d5d}.event-row{display:flex;gap:12px;padding:15px 23px;border-bottom:1px solid #f0f2f5;align-items:flex-start}.event-row:last-child{border-bottom:0}.event-icon{padding:7px;border-radius:50%;background:#edf8f1;color:#288064}.event-icon.offline{background:#fceeee;color:#c36d6d}.event-row strong{display:block;font-size:11px;font-weight:550;line-height:1.5}.event-row p{font-size:10px;color:#86919e;margin-top:5px}.event-row time{font-size:9px;color:#95a0ab;margin-left:auto;white-space:nowrap;padding-top:4px}.empty{text-align:center;padding:32px 20px;color:#83909d;font-size:12px;line-height:1.8}.empty-symbol{font-size:26px;color:#aebcb6;display:block;margin-bottom:8px}.filters{display:flex;gap:12px;margin-bottom:21px}.filters input{flex:2}.filters select{flex:1}.filters input,.filters select{margin:0;font-size:12px}.form-card{max-width:650px;padding:27px}.form-card label{margin-top:25px}.form-card .primary{margin-top:20px}.field-help{font-size:11px;line-height:1.7;color:#89939e;margin-top:8px}.notice{background:#eff5f4;border:1px solid #deebe6;padding:14px 16px;border-radius:8px;font-size:11px;line-height:1.8;color:#628276;margin:20px 0}footer{display:flex;justify-content:space-between;padding:25px 0;font-size:9px;color:#99a3af;margin-top:14px}dialog{border:1px solid #e0e7e3;border-radius:14px;padding:28px;width:440px;max-width:calc(100vw - 32px);box-shadow:0 20px 100px #0b29272a}dialog::backdrop{background:#152b2866;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center}.dialog-heading h2{font-size:22px;letter-spacing:-.6px}.close-dialog{background:none;border:0;font-size:27px;color:#78877e}.toast{position:fixed;bottom:25px;right:25px;max-width:calc(100vw - 50px);background:#233d35;color:white;border-radius:9px;padding:15px 23px;z-index:20;box-shadow:0 8px 30px #0002;font-size:12px}.toast.failure{background:#923f3f}@media(min-width:1550px){main{padding-top:40px}.stat{padding:25px}.overview-grid{margin-top:28px}.fleet-content{padding-top:20px;padding-bottom:32px}}@media(max-width:1150px){aside{width:205px;padding-left:13px;padding-right:13px}.main-wrap{margin-left:205px;width:calc(100% - 205px)}main{padding:25px 22px 0}header{padding:0 22px}.fleet-content{gap:17px}.health-ring{width:120px;height:120px}.overview-grid{gap:16px}.card-heading{padding:20px 17px}.stat{padding:17px 14px}.stat-top{font-size:10px}.event-row{padding:14px 17px}}@media(max-width:850px){.overview-grid{grid-template-columns:1fr}.fleet-content{gap:60px}.header-date{display:none}.page-heading h1{font-size:29px}.stats{grid-template-columns:repeat(2,1fr)}.login-story{padding:35px}.story-content h1{font-size:43px}.login-form-area{padding:30px}}@media(max-width:620px){.login-layout{display:block}.login-story{padding:23px 25px}.login-story .story-content,.login-story>small{display:none}.login-form-area{min-height:calc(100vh - 81px);padding:40px 28px}.login-footer{bottom:20px}.portal{display:block}aside{position:static;width:100%;padding:18px 18px 8px;display:block}aside .brand{font-size:24px;margin:0 0 16px}.workspace,.nav-caption,.sidebar-bottom{display:none!important}nav{display:flex;overflow:auto;gap:5px}nav button{width:auto;white-space:nowrap;font-size:10px;padding:9px;gap:6px}nav button span{display:none}.main-wrap{width:100%;margin:0}header{height:55px;padding:0 18px}.header-right{gap:0}main{padding:20px 16px 0}.page-heading{align-items:flex-start;gap:10px;flex-wrap:wrap}.page-heading .eyebrow{font-size:9px}.page-heading h1{font-size:29px}.page-heading p{font-size:11px;line-height:1.6}.page-heading>button{font-size:10px}.stats{gap:10px}.stat{padding:15px}.stat strong{font-size:29px}.filters{flex-wrap:wrap}.filters input{flex-basis:100%}.filters select{font-size:11px}.fleet-content{gap:35px}.card-heading{padding:19px 16px}.event-row time{white-space:normal;max-width:65px;line-height:1.5}.form-card{padding:22px}.card-foot{font-size:8px}footer{gap:12px;line-height:1.7}th,td{padding:13px 17px}.banner{font-size:11px}body{font-size:13px}}
#client-filter{width:190px;margin:0;min-height:35px;padding:7px 10px;font-size:11px}.client-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px}.client-monogram{display:grid;place-items:center;width:40px;height:40px;background:#eaf5ef;color:#23765c;border-radius:10px;margin-bottom:15px;font-size:20px;font-weight:600}.client-numbers{display:flex;gap:45px;padding:0 24px 25px}.client-numbers strong{display:block;font-size:28px;font-weight:550}.client-numbers span{display:block;color:var(--muted);font-size:11px;margin-top:6px}.client-card .card-foot{display:flex;justify-content:space-between}.client-card .card-heading{align-items:flex-start}@media(max-width:850px){.header-date{display:none}#client-filter{width:155px}}@media(max-width:620px){header{height:auto;min-height:60px;flex-wrap:wrap;gap:12px;padding-top:12px;padding-bottom:12px}.header-right{gap:12px}.client-grid{grid-template-columns:1fr}.login-footer{font-size:10px}}
#operation-filter{width:165px;margin:0;min-height:35px;padding:7px 10px;font-size:11px}aside nav{overflow-y:auto;min-height:0}.header-right{flex-wrap:wrap}#inventory-status{margin:0 0 16px}@media(max-width:1200px){.header-date{display:none}.header-right{gap:10px}#client-filter,#operation-filter{width:145px}}@media(max-width:620px){#client-filter,#operation-filter{width:150px}}
