.manage{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:32px}.manage form{display:grid;gap:12px}.manage label{display:grid;gap:7px;font-size:12px;color:#8ea2b4}.manage input,.manage select{width:100%;padding:11px;border:1px solid #354657;border-radius:6px;background:#0c141d;color:#e3edf7}.manage #pair-output{padding:13px;border:1px solid #496b53;border-radius:8px;background:#173023;line-height:1.8}.manage #pair-code{font:700 18px monospace;letter-spacing:1px;overflow-wrap:anywhere}.manage #pair-result{min-height:20px;color:#ffd7a8}@media(max-width:800px){.manage{grid-template-columns:1fr;gap:15px}}
body.recovering>aside,body.recovering>main{display:none}.recovery{min-height:100vh;display:grid;place-items:center;padding:20px}.recovery-card{width:min(100%,440px);padding:32px;border:1px solid #354657;border-radius:14px;background:#121b24}.recovery-card h1{font-size:27px}.recovery-card form{display:grid;gap:14px;margin:24px 0}.recovery-card label{display:grid;gap:7px;color:#aabccc;font-size:13px}.recovery-card input{width:100%;padding:12px;border:1px solid #354657;border-radius:7px;background:#0c141d;color:#e3edf7}.recovery-card a{color:#a5edaf}.recovery-card p[role=status]{min-height:20px;color:#ffd7a8}
.login-screen{display:none}.login-required>aside,.login-required>main{display:none}.login-required .login-screen{display:grid;min-height:100dvh;place-items:center;padding:24px;background:radial-gradient(circle at 50% 10%,#1c322b,#0b1017 60%)}.login-card{width:min(100%,430px);padding:36px;border:1px solid #354657;border-radius:18px;background:#121b24;box-shadow:0 22px 60px #0005}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:36px;color:#edf5fd;font:800 22px Manrope,system-ui,sans-serif}.login-brand small{display:block;font:500 9px 'DM Sans',sans-serif;letter-spacing:2px;color:var(--muted);margin-top:5px}.login-card h1{margin-bottom:10px}.login-card form{display:grid;gap:16px;margin-top:26px}.login-card form>label:not(.remember-option){display:grid;gap:8px;color:#aabccc;font-size:13px}.login-card input[type=email],.login-card input[type=password]{width:100%;padding:13px;border:1px solid #354657;border-radius:8px;background:#0c141d;color:#e3edf7;font-size:16px}.login-card .remember-option{display:flex;align-items:center;gap:10px;color:#c1d1dd;font-size:13px;line-height:1.5}.login-card .remember-option input{width:18px;height:18px;accent-color:#a5edaf}.login-card form button{min-height:48px}.login-card p[role=status]{min-height:20px;color:#ffd7a8;font-size:13px}.session-actions{display:grid;align-content:start;gap:12px}.session-actions button{justify-self:start}@media(max-width:480px){.login-card{padding:26px}}
nav .nav-logout{width:100%;padding:13px 14px;text-align:left;background:transparent;border:1px solid #354657;color:#a9b6c5;font-size:14px;font-weight:500}nav .nav-logout:hover{background:#202e31;color:var(--green)}nav .nav-logout[hidden]{display:none}@media(max-width:800px){.menu-open #main-navigation .nav-logout{display:flex;align-items:center;min-height:46px;padding:11px 12px;font-size:13px}}
:root{font-family:'DM Sans',system-ui,sans-serif;color:#dce5ef;background:#0b1017;font-synthesis:none;color-scheme:dark;--green:#a5edaf;--muted:#8b9aaa;--line:#26313d}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{outline-offset:4px}button{border:0;border-radius:8px;padding:11px 15px;background:var(--green);color:#172b1c;font-weight:700;cursor:pointer}button:hover{filter:brightness(1.08)}button:disabled{opacity:.5;cursor:wait}.secondary{background:#1d2732;color:#dbe4ed;border:1px solid #34414f}aside{position:fixed;inset:0 auto 0 0;width:228px;border-right:1px solid var(--line);padding:32px 20px;background:#10171f}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#edf5fd;font:800 20px Manrope,system-ui,sans-serif;white-space:nowrap}.brand-mark{color:var(--green);font-size:42px;line-height:1}.brand small{display:block;font:500 8px 'DM Sans',sans-serif;letter-spacing:2px;color:var(--muted);margin-top:5px}nav{display:grid;gap:9px;margin-top:54px}nav a{padding:13px 14px;color:#a9b6c5;text-decoration:none;border-radius:8px;font-size:14px}nav a:hover,nav a:first-child{background:#202e31;color:var(--green)}main{margin-left:228px;padding:38px 40px;max-width:1800px}header{display:flex;justify-content:space-between;align-items:center;gap:20px}.eyebrow{color:#8a9eaf;letter-spacing:1.8px;font-size:10px;font-weight:700;margin-bottom:10px}h1{font:700 clamp(22px,2.6vw,34px) Manrope,system-ui,sans-serif;letter-spacing:-1px;margin:0}h2{font:700 18px Manrope,system-ui,sans-serif;margin:0}.subtle{color:var(--muted);font-size:13px;line-height:1.6;margin:8px 0}.header-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.badge{display:inline-block;background:#20342a;color:var(--green);font-size:11px;font-weight:700;border-radius:6px;padding:8px 11px}.badge.warning{background:#3c3321;color:#f0ce85}.badge.danger{background:#41282c;color:#ffa5a3}.badge.muted{background:#25303a;color:#a6b5c4}.banner{background:#1c2a35;border:1px solid #304455;border-radius:9px;padding:12px 16px;color:#b2c8db;font-size:12px;margin-top:24px}.message{color:#ffd7a8;font-size:13px;margin:10px 0;min-height:18px}.fleet{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line);padding:8px 0 25px;margin-bottom:28px}.fleet>div{border-right:1px solid var(--line);padding:0 24px}.fleet>div:first-child{padding-left:0}.fleet>div:last-child{border:0}.fleet span{display:block;font-size:11px;color:var(--muted);margin-bottom:12px}.fleet strong{font:700 28px Manrope,system-ui,sans-serif}.fleet .time{font-size:18px}.workspace{display:grid;grid-template-columns:245px minmax(0,1fr);gap:28px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.machine-panel>.section-title{display:block}.machine-panel .subtle{font-size:11px}.machine-item{display:block;text-align:left;background:#141d26;border:1px solid var(--line);color:#dce5ef;width:100%;padding:18px 16px;margin-bottom:12px;transition:border-color .2s}.machine-item.active{border-color:#82b996;background:#18272a}.machine-item strong{display:block;font-size:13px;margin-bottom:6px}.machine-item small{display:block;color:#8499ab;font-size:11px;font-weight:400;margin-bottom:15px}.machine-item .item-state{font-size:10px;color:#a2c7b0;font-weight:500}.machine-item .item-pressure{float:right;font-size:12px}.machine-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.machine-heading h2{font-size:25px;letter-spacing:-.5px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:21px 0}.metrics article{background:#141d26;border:1px solid var(--line);border-radius:10px;padding:19px 17px}.metrics span{font-size:10px;color:var(--muted);display:block;white-space:nowrap}.metrics strong{display:block;font:700 clamp(19px,2vw,30px) Manrope,system-ui,sans-serif;margin:14px 0 6px;color:#ecf4fc;letter-spacing:-.7px}.metrics small{font-size:10px;color:#6f8498}.metrics strong.alarm-text{font-size:14px;letter-spacing:0;min-height:35px;line-height:1.3}.card{border:1px solid var(--line);border-radius:12px;background:#121b24;padding:24px;margin-bottom:20px}.chart-title h2{font-size:15px}.chart-title p{font-size:10px;margin-bottom:0}.range{display:flex;gap:4px;background:#0e151d;padding:4px;border-radius:7px}.range button{background:none;color:#8a9daf;font-size:10px;padding:7px 10px}.range button.selected{background:#27372f;color:var(--green)}.chart{height:260px;position:relative;overflow:hidden}.chart svg{width:100%;height:100%}.chart text{font:10px 'DM Sans',sans-serif;fill:#6f8294}.chart-footer{display:flex;justify-content:space-between;gap:14px;color:#6f8498;font-size:10px;margin-top:12px}.chart-footer i{display:inline-block;width:17px;height:3px;background:var(--green);vertical-align:middle;margin-right:6px}.event{display:grid;grid-template-columns:145px 100px 1fr;gap:12px;padding:15px 0;border-top:1px solid #26313c;align-items:center;font-size:12px}.event time{color:#7e93a5;font-size:10px}.event .event-category{font-size:10px;font-weight:700;color:#f0ce85}.event.critical .event-category{color:#ffa5a3}.event.cleared .event-category{color:var(--green)}.event-description small{display:block;font-size:10px;color:#7e93a5;margin-top:5px}.empty{padding:44px 10px;text-align:center;color:#7e93a5;font-size:13px}.connection{margin-top:32px;display:grid;grid-template-columns:1fr 1fr;gap:40px}.connection form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.connection label{display:grid;gap:7px;font-size:11px;color:#8ea2b4}.connection input{width:100%;padding:11px;border:1px solid #354657;border-radius:6px;background:#0c141d;color:#e3edf7}.connection form small{grid-column:1/-1;color:#70879a;font-size:10px}footer{display:flex;justify-content:space-between;gap:24px;font-size:11px;color:#5b7185;padding:15px 0}footer span{font-size:10px}[hidden]{display:none!important}@media(max-width:1150px){aside{width:190px;padding:28px 15px}.brand{font-size:17px}main{margin-left:190px;padding:28px 24px}.workspace{grid-template-columns:190px 1fr;gap:18px}.metrics{grid-template-columns:repeat(2,1fr)}.chart-title{align-items:flex-start;flex-wrap:wrap}}@media(max-width:800px){aside{position:static;width:auto;border:0;border-bottom:1px solid var(--line);padding:18px 20px;display:flex;align-items:center;justify-content:space-between}nav{display:flex;margin:0;gap:4px}nav a{padding:8px;font-size:11px}nav a:last-child{display:none}main{margin:0;padding:25px 18px}header{align-items:flex-start;flex-direction:column}.workspace{grid-template-columns:1fr}.machine-panel #machines{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.machine-panel>.section-title{display:flex}.machine-item{margin:0}.fleet>div{padding:0 12px}.fleet span{font-size:9px}.fleet strong{font-size:23px}.fleet .time{font-size:14px}.connection{grid-template-columns:1fr;gap:18px}.event{grid-template-columns:120px 80px 1fr;gap:8px}footer{flex-direction:column;gap:6px}}@media(max-width:480px){nav a{font-size:0}nav a:after{content:'•';font-size:16px}.card{padding:17px}.fleet{grid-template-columns:repeat(2,1fr);gap:20px}.fleet>div:nth-child(3){padding-left:0}.fleet>div:nth-child(2){border:0}.event{grid-template-columns:1fr 1fr}.event-description{grid-column:1/-1}.metrics span{font-size:9px}.machine-heading h2{font-size:21px}}
.chart-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.chart-controls label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}.chart-controls select{background:#0e151d;color:#dce5ef;border:1px solid #34414f;border-radius:7px;padding:8px 10px;font:inherit}

.range{flex-wrap:wrap}
/* Current operating state stays separate from alarm flags. */
.metrics{grid-template-columns:repeat(5,minmax(0,1fr))}
.metrics article{min-width:0}
.metrics span{white-space:normal}
.metrics .operating-state{background:var(--state-bg);border:2px solid var(--state-line);padding:18px 16px;transition:background-color .2s,border-color .2s}
.metrics .operating-state span{font-weight:700;color:var(--state-text);font-size:11px}
.metrics .operating-state strong{font-size:clamp(18px,1.7vw,26px);line-height:1.2;letter-spacing:-.3px;color:var(--state-text);overflow-wrap:anywhere}
.metrics .operating-state small{color:var(--state-text);opacity:.85;line-height:1.5;display:block}
.state-running{--state-bg:#164b31;--state-line:#55d58a;--state-text:#d3ffe2}
.state-idle{--state-bg:#173e60;--state-line:#64b7f1;--state-text:#d7efff}
.state-starting{--state-bg:#3a3063;--state-line:#b4a0f5;--state-text:#eee6ff}
.state-waiting{--state-bg:#4e401b;--state-line:#dfbd61;--state-text:#fff0c2}
.state-stopping{--state-bg:#563318;--state-line:#f1aa60;--state-text:#ffe9cf}
.state-ready{--state-bg:#164842;--state-line:#65d2bc;--state-text:#d4fff4}
.state-stopped{--state-bg:#293747;--state-line:#91a5bd;--state-text:#e3ecf6}
.state-fault{--state-bg:#681f2a;--state-line:#ff8090;--state-text:#fff0f2}
.state-unknown{--state-bg:#252b33;--state-line:#6e7b8b;--state-text:#d4dce5}
@media(max-width:1150px){.metrics{grid-template-columns:repeat(6,minmax(0,1fr))}.metrics article{grid-column:span 2}.metrics article:nth-child(4),.metrics article:nth-child(5){grid-column:span 3}}
@media(max-width:600px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics article,.metrics article:nth-child(4),.metrics article:nth-child(5){grid-column:span 1}.metrics article:nth-child(3){grid-column:1/-1}}
/* Separate navigation pages; authorization remains controlled by existing forms. */
nav{margin-top:36px}
nav a:first-child{background:transparent;color:#a9b6c5}
nav a[aria-current="page"]{background:#202e31;color:var(--green)}
.page-title{margin:28px 0 24px}
.page-title h2{font-size:26px}
.tab-empty{padding:24px;border:1px solid var(--line);border-radius:10px;background:#141d26;color:#aabccc;line-height:1.7}
#page-manage:has(#manage:not([hidden])) .manage-empty,#page-updates:has(#ota-vault:not([hidden])) .ota-empty{display:none}
#page-manage .manage,#page-connection .connection{margin-top:0}
.machine-picker{display:flex;align-items:center;gap:12px;color:#aabccc;font-size:13px;margin-top:20px}
.machine-picker select{max-width:100%;min-width:200px;background:#0c141d;color:#e3edf7;border:1px solid #354657;border-radius:7px;padding:11px;font:inherit}
@media(max-width:800px){aside{align-items:flex-start;gap:18px;flex-wrap:wrap}nav{margin:0;flex-wrap:wrap}nav a:last-child{display:block}}
@media(max-width:480px){nav{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}nav a{font-size:11px}nav a:after{content:none}.machine-picker{align-items:flex-start;flex-direction:column}}
.pairing-guide h2{margin-bottom:20px}
.pairing-guide ol{padding-left:24px;margin:0;display:grid;gap:16px}
.pairing-guide li{padding-left:8px;color:#b9c8d6;font-size:14px;line-height:1.75}
.pairing-guide li::marker{color:var(--green);font-weight:700}
.pairing-guide strong{color:#edf5fd}
.pairing-guide a{color:var(--green);overflow-wrap:anywhere}
.pairing-help{margin:24px 0 0;padding:16px;background:#192932;border:1px solid #344b59;border-radius:8px;color:#b9c8d6;font-size:13px;line-height:1.7}
.access-form{display:flex;gap:14px;align-items:flex-end;margin:24px 0;flex-wrap:wrap}
.access-form label{display:grid;gap:8px;flex:1;min-width:200px;color:#aabccc;font-size:13px}
.access-form input{padding:12px;background:#0c141d;color:#e3edf7;border:1px solid #354657;border-radius:7px;font:inherit}
.access-user{display:flex;gap:20px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:16px 0}
.access-user span{overflow-wrap:anywhere;min-width:0;color:#dce5ef;font-size:14px}
.access-user button{flex-shrink:0}
@media(max-width:480px){.access-user{align-items:flex-start;flex-direction:column}}
/* Six metric cards: three columns, with the service deadline alongside alarms and state. */
.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
.metrics article,.metrics article:nth-child(3),.metrics article:nth-child(4),.metrics article:nth-child(5){grid-column:auto}
.metrics .service-tile small{display:block;line-height:1.5}
.metrics .service-overdue{background:#521e28;border-color:#fa7f8f}
.metrics .service-overdue strong,.metrics .service-overdue small{color:#ffd1d8}
.metrics .service-due{background:#493918;border-color:#d6b463}
.metrics .service-due strong,.metrics .service-due small{color:#ffe7a9}
@media(max-width:600px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}

.metrics .split-tile{display:grid;grid-template-rows:1fr 1fr;gap:8px}.split-tile>div+div{border-top:1px solid var(--line);padding-top:8px}.metrics .split-tile strong{display:inline-block;font-size:clamp(19px,1.7vw,26px);margin:4px 6px 0 0}

#update-form{display:grid;gap:16px;max-width:720px}dialog{background:var(--panel,#172028);color:var(--text,#eef3f6);border:1px solid var(--line,#39434d);border-radius:14px;max-width:600px;padding:28px}dialog::backdrop{background:#000a}dialog p{line-height:1.7}
#update-form label{display:grid;gap:8px;font-size:13px;color:#aabccc}#update-form input,#update-form select{width:100%;max-width:100%;padding:12px;border:1px solid #354657;border-radius:7px;background:#0c141d;color:#e3edf7;font:inherit}#update-form input::file-selector-button{border:1px solid #34414f;border-radius:5px;padding:7px 10px;margin-right:12px;background:#1d2732;color:#dbe4ed;cursor:pointer}#update-form button:disabled{cursor:not-allowed}#update-device,#update-result{font-size:13px;line-height:1.7;overflow-wrap:anywhere}

/* Mobile PWA: labelled navigation, touch targets and safe areas. */
.mobile-menu{display:none}.pwa-banner{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:14px 16px;margin:16px 0;border:1px solid #496951;border-radius:10px;background:#182a22;font-size:13px;line-height:1.6}.offline-banner{background:#352b1d;border-color:#77613d;color:#ffe0a4}.offline-banner strong{display:block}.header-actions button{min-height:44px}
@media(max-width:800px){
 aside{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;gap:14px;padding:calc(12px + env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 12px max(18px,env(safe-area-inset-left));background:#10171ff5;backdrop-filter:blur(16px)}
 .brand{font-size:19px}.brand-mark{font-size:37px}.mobile-menu{display:block;min-height:44px;min-width:88px;margin-left:auto}
 #main-navigation{display:none;width:100%;margin:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:65dvh;overflow-y:auto}
 .menu-open #main-navigation{display:grid}#main-navigation a,#main-navigation a:last-child{display:flex;align-items:center;min-height:46px;padding:11px 12px;font-size:13px;line-height:1.4}#main-navigation a:after{content:none}
 main{padding:20px max(16px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));min-width:0}
 header{gap:12px}header .eyebrow{display:none}header .subtle{margin-top:0}.header-actions{width:100%;gap:8px}.header-actions .badge{margin-right:auto}.header-actions button{font-size:12px;padding:10px 12px}
 .page-title h2{font-size:25px}.card,.detail,.workspace,.machine-panel{min-width:0}.card{padding:18px}.machine-heading h2{font-size:23px}.machine-panel #machines{grid-template-columns:1fr}
 .fleet{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:10px 0 20px}.fleet>div,.fleet>div:first-child,.fleet>div:nth-child(3){padding:0;border:0}.fleet span{font-size:11px}.fleet strong{font-size:26px}
 .metrics{gap:10px}.metrics article{padding:16px 12px;min-width:0}.metrics span{font-size:11px;white-space:normal}.metrics strong{font-size:25px}.metrics .split-tile strong{font-size:23px}.metrics small{font-size:11px}
 .chart-title{display:block;margin-bottom:16px}.chart-controls{display:grid;width:100%;gap:12px;margin-top:15px}.chart-controls label{display:grid;gap:7px;font-size:12px}.chart-controls select{width:100%;min-height:44px;font-size:16px}.range{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.range button{min-height:44px;font-size:12px;padding:8px 4px}.chart{height:240px}.chart-footer{flex-direction:column;gap:8px;line-height:1.6}
 .event{grid-template-columns:1fr 1fr;gap:8px;padding:16px 0}.event-description{grid-column:1/-1;font-size:13px;line-height:1.6}.event time,.event .event-category{font-size:11px}
 .connection form{grid-template-columns:1fr}.connection input,.manage input,.manage select,.access-form input,.machine-picker select,#update-form input,#update-form select,.recovery-card input{font-size:16px;min-height:46px}.connection form button,.manage form button,.access-form button{min-height:46px}.access-form{flex-direction:column;align-items:stretch}.access-form label{min-width:0}.access-user{flex-wrap:wrap;overflow-wrap:anywhere}.access-user button{min-height:44px}.machine-picker{display:grid;gap:8px}.machine-picker select{width:100%;min-width:0}.manage{gap:20px}.manage #pair-code{word-break:break-all}.recovery-card{padding:22px}.recovery-card form{gap:16px}
 #update-form{max-width:100%}#update-form button{min-height:46px}dialog{max-width:calc(100vw - 24px);padding:22px}dialog button{min-height:44px;margin-top:8px}footer{line-height:1.7}
}
@media(display-mode:standalone){body{overscroll-behavior-y:contain}}

.mobile-machine-label{display:none}
@media(max-width:800px){main,#charts,#events{scroll-margin-top:96px}.header-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.header-actions .badge{grid-column:1/-1;justify-self:start;margin:0}.header-actions button{min-width:0}.mobile-machine-label{display:grid;gap:8px;color:#aabccc;font-size:12px}.mobile-machine-label select{width:100%;font:inherit;font-size:16px;min-height:48px;padding:11px;background:#0c141d;color:#e3edf7;border:1px solid #354657;border-radius:8px}.machine-panel #machines{display:none}.machine-panel .section-title .subtle{display:none}.machine-panel .section-title{margin-bottom:12px}}

.text-button{background:none;color:#9ccfa6;padding:0;font-size:12px;font-weight:500;text-decoration:underline;min-height:44px;text-align:left}

.push-actions{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.push-history-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.push-history-heading h2{margin:0}.push-history-heading button{width:auto}.push-history-item{padding:16px 0;border-bottom:1px solid #25333d}.push-history-item p{margin:8px 0}.push-history-item small{color:#9caebd}@media(max-width:800px){.push-actions{display:grid;grid-template-columns:1fr}.push-actions button{min-height:46px}}

.push-settings>summary{cursor:pointer;font-size:16px;font-weight:700;min-height:28px;line-height:28px}.push-settings[open]>summary{margin-bottom:18px}.push-settings>summary:focus-visible{outline:2px solid var(--green);outline-offset:5px}
.push-summary-status{float:right;margin-left:12px;padding:2px 9px;border-radius:999px;background:#26313d;color:#c3ced8;font-size:11px;line-height:22px}.push-status{display:flex;align-items:center;gap:11px;padding:13px 15px;border:1px solid #43505d;border-radius:9px;background:#19232e;color:#dce5ef;font-size:13px;font-weight:600;line-height:1.45}.push-status-dot{width:10px;height:10px;flex:none;border-radius:50%;background:#9caebd}.push-status[data-state="on"]{border-color:#4f8b60;background:#1a3023;color:#d5f6dc}.push-status[data-state="on"] .push-status-dot{background:#a5edaf}.push-settings[data-state="on"] .push-summary-status{background:#244b31;color:#b9f6c4}.push-status[data-state="off"]{border-color:#866b3a;background:#30291d;color:#ffe2a3}.push-status[data-state="off"] .push-status-dot{background:#f0ce85}.push-settings[data-state="off"] .push-summary-status{background:#4a3920;color:#ffe2a3}.push-status[data-state="blocked"],.push-status[data-state="error"]{border-color:#965253;background:#392326;color:#ffd4d2}.push-status[data-state="blocked"] .push-status-dot,.push-status[data-state="error"] .push-status-dot{background:#ffa5a3}.push-settings[data-state="blocked"] .push-summary-status,.push-settings[data-state="error"] .push-summary-status{background:#562d31;color:#ffd4d2}.push-settings .push-actions{margin:12px 0 22px}
.push-test-result:empty{display:none}.push-test-result{margin:0 0 18px;color:#b9d9f6;font-size:13px}
.header-actions{margin-left:auto;justify-content:flex-end}#refresh{min-height:36px;padding:7px 11px;font-size:12px}
@media(max-width:800px){.header-actions{justify-content:initial}#refresh{grid-column:2;justify-self:end;min-height:44px;padding:8px 11px;font-size:12px}}
.mobile-logout{display:none}
@media(max-width:800px){aside{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;column-gap:8px;row-gap:0}.brand{min-width:0;font-size:17px}.brand-mark{font-size:31px}.brand small{font-size:7px;letter-spacing:1.3px}.mobile-menu{display:grid;place-items:center;width:44px;min-width:44px;min-height:44px;margin-left:0;padding:0;font-size:21px}#main-navigation{grid-column:1/-1}nav .nav-logout{display:none!important}.overview-summary>header{display:none}#message:empty{display:none}.fleet{padding-top:0}.fleet>div:first-child{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:center}.fleet>div:first-child span,.fleet>div:first-child strong{grid-column:1}.fleet>div:last-child{grid-column:1/-1}footer .mobile-logout{display:inline-flex;align-items:center;align-self:stretch;min-height:44px;margin-top:16px;padding:10px 0;border-top:1px solid var(--line);border-radius:0;background:transparent;color:#aabccc;text-align:left;font-size:13px;font-weight:600}}
#mobile-refresh{display:none}@media(max-width:800px){#mobile-refresh{display:inline-grid;place-items:center}}
@media(max-width:800px){.fleet{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-bottom:18px;border-bottom:0}.fleet>div,.fleet>div:first-child,.fleet>div:nth-child(3),.fleet>div:last-child{grid-column:auto;min-width:0;min-height:106px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#141d26}.fleet>div:first-child{grid-template-columns:minmax(0,1fr) 44px;column-gap:4px}.fleet>div:first-child span,.fleet>div:first-child strong{grid-column:1}.fleet span{display:block;line-height:1.3}.fleet strong{display:block;margin-top:12px}.fleet .time{font-size:14px;overflow-wrap:anywhere}}
.chart-gesture-hint{display:none}@media(max-width:800px){.chart{touch-action:pan-y}.chart.zoomed{touch-action:none}.chart svg{transform-origin:0 0;will-change:transform}.chart-gesture-hint{display:block;margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.5}}
@media(max-width:800px){.fleet>div:first-child{display:block}.fleet>div:last-child{position:relative;padding-right:58px}#mobile-refresh{position:absolute;right:8px;bottom:8px;display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;background:transparent;border:0;color:#dbe4ed;font-size:19px;line-height:1;isolation:isolate}#mobile-refresh::before{content:"";position:absolute;inset:5.5px;z-index:-1;background:#1d2732;border:1px solid #34414f;border-radius:8px}}
.chart [data-event-index]{cursor:pointer}.chart [data-event-index]:focus-visible{outline:2px solid var(--green)}.chart-event-detail{margin:8px 0 0;color:#dce5ef;font-size:12px;line-height:1.5}.chart-event-detail:empty{display:none}
#events .section-title{flex-wrap:wrap}#event-mode{min-height:40px;padding:8px 11px;font-size:12px}@media(max-width:800px){#event-mode{min-height:44px}}
.event-filters{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}.event-filters button{min-height:40px;padding:8px 12px;border:1px solid #34414f;background:#1d2732;color:#c4d0dc;font-size:12px}.event-filters button[aria-pressed="true"]{border-color:#729d79;background:#203a29;color:#baf3c3}@media(max-width:800px){.event-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.event-filters button{min-width:0;min-height:44px;padding:8px 5px;font-size:11px}}
.hour-navigation{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%}.hour-navigation[hidden]{display:none}.hour-navigation button{min-width:44px;min-height:44px;padding:7px;font-size:20px}.hour-navigation span{font-size:12px;color:#aabccc;text-align:center;line-height:1.4}@media(max-width:800px){.hour-navigation{grid-column:1/-1}}
#alarm-note{line-height:1.45;overflow-wrap:anywhere}

#event-list .event{grid-template-columns:145px 140px minmax(0,1fr)}
#event-list .event-description{min-width:0;overflow-wrap:anywhere}
#event-list .event-phase{display:block;margin-top:6px;color:#9aabba;font-size:11px;font-weight:500;line-height:1.4}
#event-list .event:is(.critical,.warning) .event-category{justify-self:start;padding:6px 9px;border:1px solid #a85a60;border-radius:7px;background:#512b30;color:#ffd5d2;font-size:11px;line-height:1.35}
#event-list .event.warning:is(.raised,.observed) .event-category{border-color:#a88a48;background:#47391f;color:#ffe3a3}
#event-list .event:is(.critical,.warning).cleared .event-category{border-color:#5b9869;background:#274a31;color:#d3f8d9}
@media(max-width:800px){#event-list .event{grid-template-columns:minmax(0,1fr) auto;gap:8px 10px}#event-list .event time{grid-column:1;grid-row:1}#event-list .event-category{grid-column:2;grid-row:1;justify-self:end;max-width:min(48vw,210px);text-align:center}#event-list .event:is(.critical,.warning) .event-category{justify-self:end}#event-list .event-description{grid-column:1/-1;grid-row:2;font-size:13px;line-height:1.5}}

.metrics .operating-state,.metrics .alarm-tile{text-align:center}
#operating-state-note:empty{display:none}

.account-card{max-width:560px}.account-card form{display:grid;gap:16px;margin-top:20px}.account-card label{display:grid;gap:8px;color:#aabccc;font-size:13px}.account-card input{width:100%;padding:13px;border:1px solid #354657;border-radius:8px;background:#0c141d;color:#e3edf7;font-size:16px}.account-card button{justify-self:start;min-height:44px}#password-change-message{color:#ffd7a8;font-size:13px;line-height:1.5}

#refresh.refresh-icon{display:inline-grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0}#refresh.refresh-icon svg{width:22px;height:22px}
#pwa-update-indicator,#pwa-update-mobile{place-items:center;width:44px;height:44px;min-height:44px;padding:0;border-color:#729d79;background:#203a29;color:#baf3c3;font-size:23px;line-height:1}
#pwa-update-indicator:hover,#pwa-update-mobile:hover{background:#2c5037}
#pwa-update-indicator svg,#pwa-update-mobile svg{display:block;width:22px;height:22px}
#pwa-update-indicator{display:grid}#pwa-update-mobile{display:none}#pwa-update{display:none}
@media(max-width:800px){aside{grid-template-columns:minmax(0,1fr) 44px 44px}#pwa-update-indicator{display:none}#pwa-update-mobile{display:grid;grid-column:2;grid-row:1}#mobile-menu{grid-column:3;grid-row:1}}
@media(min-width:801px){aside{display:flex;flex-direction:column;width:260px;height:100dvh;overflow-y:auto;padding:28px 18px}.brand{flex:none}nav{flex:none;gap:6px;margin-top:26px}nav a{display:flex;align-items:center;min-height:40px;padding:9px 11px;font-size:13px;line-height:1.3;white-space:nowrap}nav .nav-logout{min-height:40px;margin-top:10px;padding:9px 11px;font-size:13px}main{margin-left:260px}}
.sidebar-copyright{margin-top:auto;padding-top:24px;color:#6f8498;font-size:10px;line-height:1.6}
@media(min-width:801px){.sidebar-copyright{font-size:9px;white-space:nowrap}.sidebar-copyright br{display:none}}
@media(min-width:801px){main>footer{display:none}}
@media(max-width:800px){.sidebar-copyright{display:none}}
@media(min-width:801px){.workspace{display:block}.machine-panel{margin-bottom:24px}.machine-panel>.section-title{display:flex;margin-bottom:14px}.machine-panel #machines{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.machine-item{min-width:0;min-height:108px;margin:0;padding:14px 16px}.machine-item small{color:#dce5ef;font-size:13px;font-weight:600;margin-bottom:5px;overflow-wrap:anywhere}.machine-item strong{color:#93a7b7;font-size:11px;font-weight:400;margin-bottom:12px;overflow-wrap:anywhere}.detail{min-width:0}}
@media(min-width:801px){.overview-summary{margin-bottom:26px}.overview-summary header{align-items:center;margin-bottom:18px}.overview-summary header h1{margin:0;color:#e3edf7;font:700 23px Manrope,system-ui,sans-serif}.overview-summary header .subtle{margin:6px 0 0;font-size:12px}.overview-summary .fleet{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0;padding:0;border:0}.overview-summary .fleet>div,.overview-summary .fleet>div:first-child,.overview-summary .fleet>div:last-child{min-width:0;min-height:100px;padding:15px;background:#17232d;border:1px solid var(--line);border-radius:10px}.overview-summary .fleet span{margin-bottom:14px;font-size:11px;line-height:1.35}.overview-summary .fleet strong{font-size:28px;line-height:1.1}.overview-summary .fleet .time{font-size:23px}}
@media(min-width:801px){.overview-summary .fleet>div:last-child{position:relative;min-height:100px;padding-right:58px}.overview-summary .fleet .header-actions{position:absolute;right:12px;bottom:12px;display:flex;width:auto;margin:0}.overview-summary #refresh.refresh-icon{width:34px;height:34px;min-height:34px}.overview-summary header #pwa-update-indicator{display:inline-flex;align-items:center;gap:7px;width:auto;height:36px;min-height:36px;padding:7px 11px;font-size:12px;white-space:nowrap}.overview-summary #refresh.refresh-icon svg,.overview-summary header #pwa-update-indicator svg{width:18px;height:18px}}
@media(min-width:801px) and (max-width:1200px){.overview-summary .fleet{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.overview-summary .fleet .header-actions{display:none}}

.subscription-expired{border-color:#9c7748;background:#30271d;color:#ffe0ac}#reset-confirm{width:min(620px,calc(100% - 32px));max-height:90vh;overflow:auto}#reset-confirm input:not([type=checkbox]),#subscription-expiry{width:100%;margin:8px 0 16px}#machine-lifecycle .card{margin-top:18px}
#subscription-form{display:grid;gap:16px;margin-top:18px}#subscription-form>label:not(.remember-option),#reset-confirm-form>label:not(.remember-option){display:grid;gap:8px;color:var(--muted)}#subscription-form .remember-option,#reset-confirm-form .remember-option{display:flex;align-items:center;gap:10px}#subscription-form input[type=checkbox],#reset-confirm-form input[type=checkbox]{width:18px;height:18px;accent-color:#a5edaf;flex-shrink:0}#subscription-expiry,#reset-confirm-name{background:#0c141d;color:#e3edf7;border:1px solid #354657;border-radius:8px;padding:12px;font:inherit;color-scheme:dark;min-width:0}#subscription-form button{justify-self:start}#reset-confirm-form{display:grid;gap:14px}

.work-statistics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.work-statistics h3{font-size:1rem}.work-statistics dl{display:grid;grid-template-columns:1fr auto;gap:10px}.work-statistics dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.work-share-bar{height:14px;border-radius:8px;overflow:hidden;background:#d6a34e;margin:18px 0}.work-share-bar span{display:block;height:100%;background:#54c4a4}.work-statistics .subtle{font-size:.82rem;line-height:1.5}@media(max-width:700px){.work-statistics{grid-template-columns:1fr;gap:12px}}

.chart-markers-toggle{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:40px;min-height:36px;padding:7px;background:transparent;color:var(--muted);border:1px solid transparent;border-radius:8px}.chart-markers-toggle:hover{background:#1d2732;border-color:var(--line)}.chart-markers-toggle svg{display:block;width:28px;height:18px;overflow:visible}.chart-markers-toggle rect{fill:#26313d;stroke:currentColor;stroke-width:1}.chart-markers-toggle circle{fill:currentColor;transition:transform .15s}.chart-markers-toggle[aria-pressed=true]{color:var(--green)}.chart-markers-toggle[aria-pressed=true] circle{transform:translateX(10px)}@media(prefers-reduced-motion:reduce){.chart-markers-toggle circle{transition:none}}

.air-production{max-width:1280px}.air-production .air-machine-picker{display:grid;gap:8px;max-width:400px;margin-bottom:20px}.air-preview-note{display:flex;gap:18px;align-items:center;border:1px solid #6b5936;border-radius:12px;background:#29251d;padding:16px 20px;margin-bottom:22px}.air-preview-note strong{font-size:11px;letter-spacing:.08em;color:#f0ce85;white-space:nowrap}.air-preview-note span{font-size:13px;line-height:1.6;color:#d2c5a8}.air-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.air-toolbar .range .selected{background:var(--green);color:#172b1c}.air-period{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted)}.air-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.air-kpis article{background:#121b24;border:1px solid var(--line);border-radius:12px;padding:20px}.air-kpis article>span{font-size:12px;color:var(--muted)}.air-kpis strong{display:block;font-size:30px;line-height:1.3;margin-top:14px;color:#e5eee7;font-variant-numeric:tabular-nums}.air-kpis strong small{font-size:13px;margin-left:8px;color:var(--green);font-weight:500}.air-kpis p{font-size:11px;color:var(--muted);line-height:1.5;margin:8px 0 0}.air-production h3{font-size:16px;margin:0 0 6px}.air-production .card{margin-bottom:18px}.air-production .section-title p{margin:0}.air-demo-badge{font-size:9px;letter-spacing:.1em;border:1px solid #52503c;border-radius:5px;padding:5px 7px;color:#c9bd94}.air-chart{margin-top:20px;overflow-x:auto}.air-chart svg{display:block;width:100%;min-width:480px}.air-chart text{fill:#8b9aaa;font:10px system-ui,sans-serif}.air-grid{stroke:#26313d;stroke-dasharray:3 5}.air-model{display:grid;grid-template-columns:1fr 1fr;gap:30px}.air-model p{font-size:13px;line-height:1.6;color:var(--muted)}.air-calibration{display:grid;grid-template-columns:1fr 1fr;gap:20px}.air-calibration span{font-size:12px;color:var(--muted)}.air-calibration strong{display:block;font-size:24px;color:#dce5ef;margin:8px 0}.air-calibration strong small{font-size:12px;font-weight:400}.air-calibration p{grid-column:1/-1;margin:0;font-variant-numeric:tabular-nums}@media(max-width:1050px){.air-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.air-preview-note{align-items:flex-start;flex-direction:column;gap:8px;padding:14px}.air-toolbar{display:grid}.air-toolbar .range{grid-template-columns:repeat(4,minmax(0,1fr))}.air-period{justify-content:space-between}.air-period span{text-align:center}.air-kpis{gap:10px}.air-kpis article{padding:14px}.air-kpis strong{font-size:24px}.air-kpis strong small{font-size:11px;margin-left:4px}.air-model{grid-template-columns:1fr;gap:18px}.air-chart svg{min-width:420px}}
