:root{font-family:Inter,Arial,Helvetica,sans-serif;color-scheme:dark;background:#0b1220}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}a{text-decoration:none;color:inherit}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #55c7ee;outline-offset:3px}svg{flex-shrink:0}button{background:none}h1,h2,h3,p{margin:0}input,textarea,select{min-width:0}input[type=checkbox]{accent-color:#cf1637;width:17px;height:17px;flex-shrink:0}img{max-width:100%}.app-shell{--bg:#0d1421;--panel:#141e2d;--panel2:#182436;--line:#263345;--text:#eff3f9;--muted:#94a5ba;--red:#e11d43;--aside:#101926;--input:#101a29;min-height:100vh;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;color-scheme:dark}.app-shell.light{--bg:#f3f5f9;--panel:#fff;--panel2:#f3f6fb;--line:#dce3ed;--text:#1b2a3f;--muted:#607188;--aside:#fff;--input:#f7f9fc;color-scheme:light}.sidebar{position:fixed;inset:0 auto 0 0;width:242px;background:var(--aside);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:30px 18px 12px;z-index:20}.product-brand{display:flex;align-items:center;gap:11px;padding:0 10px 29px;font-size:25px;font-weight:750;letter-spacing:-1px;line-height:1.1}.product-brand small{display:block;font-size:9px;letter-spacing:2.7px;font-weight:600;color:var(--muted);margin-top:6px}.brand-mark{background:#dd1438;width:36px;height:36px;border-radius:9px;display:grid;place-items:center;color:#fff}.brand-mark svg{width:23px}.side-label,.section-kicker,.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:700;color:var(--muted)}.side-label{padding:9px 12px}.workspace-btn{display:flex;text-align:left;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:11px 9px;font-weight:600;margin-bottom:25px;background:var(--panel)}.workspace-btn>span:nth-child(2){flex:1;min-width:0;font-size:12px}.workspace-btn small{font-size:10px;font-weight:400;display:block;color:var(--muted);margin-top:3px}.agency-initial{display:inline-grid;place-items:center;background:#21314d;color:#e7efff;border-radius:6px;padding:5px;font-size:11px;font-weight:700;min-width:33px;min-height:33px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav button{display:flex;align-items:center;gap:12px;position:relative;text-align:left;border:0;border-radius:7px;padding:12px 13px;color:var(--muted);font-size:12px;font-weight:500;transition:.18s}.sidebar nav button:hover{background:var(--panel2);color:var(--text)}.sidebar nav button.active{color:#fff;background:#b91131}.sidebar nav button.active:before{position:absolute;content:"";left:-18px;top:10px;bottom:10px;width:3px;border-radius:3px;background:#ee3658}.nav-count{margin-left:auto;background:#25364d;border-radius:4px;padding:0 6px;font-size:10px;color:#b8c8da}.sidebar-bottom{margin-top:auto;padding-top:25px}.license-mini{display:flex;align-items:center;gap:10px;padding:14px;border:1px solid var(--line);border-radius:8px;color:#71d3b3;font-size:12px}.license-mini small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.install{display:flex;align-items:center;gap:8px;padding:18px 6px;border:0;color:var(--muted);font-size:10px}.install svg:last-child{margin-left:auto}.user-chip{border-top:1px solid var(--line);padding:18px 6px 5px;display:flex;align-items:center;gap:9px;font-size:11px}.user-chip>span:nth-child(2){flex:1;max-width:138px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.avatar{border-radius:50%;width:32px;height:32px;background:#344254;color:#fff;display:grid;place-items:center;font-size:12px}.app-main{margin-left:242px;min-width:0}.topbar{height:75px;display:flex;align-items:center;justify-content:space-between;padding:0 38px;border-bottom:1px solid var(--line);background:var(--bg)}.breadcrumb{display:flex;align-items:center;gap:13px;color:var(--muted);font-size:11px}.breadcrumb strong{font-weight:500;color:var(--text)}.topbar-right{display:flex;align-items:center;gap:15px}.tz{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:600;border-radius:5px;padding:4px 7px;white-space:nowrap;background:var(--panel2);color:var(--muted);line-height:1.2}.badge i{display:inline-block;width:5px;height:5px;border-radius:50%;background:currentColor}.badge.green{background:#1c3b35;color:#79dcc0}.badge.blue{background:#18334d;color:#8dc8f4}.badge.amber{background:#443623;color:#f8c573}.badge.red{background:#492433;color:#ff9cae}.light .badge.green{background:#e4f4ee;color:#167055}.light .badge.blue{background:#e5efff;color:#2f65a3}.light .badge.amber{background:#fff0d8;color:#8a5a08}.light .badge.red{background:#fee6eb;color:#ae203e}.icon-btn{border:0;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;min-width:31px;min-height:31px;padding:5px;color:var(--muted)}.icon-btn:hover{background:var(--panel2);color:var(--text)}.content{max-width:1700px;padding:36px 38px 0;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.eyebrow{font-size:9px;letter-spacing:1.35px;margin-bottom:12px}.eyebrow span{padding:0 6px;color:#53647e}h1{font-size:30px;line-height:1.2;letter-spacing:-.9px;font-weight:650}.page-heading p{color:var(--muted);font-size:12px;margin-top:11px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:7px;padding:10px 14px;min-height:39px;font-size:11px;font-weight:600;line-height:1.4;white-space:nowrap;transition:.15s}.btn.primary{background:#d3173b;color:#fff;border-color:#ec3154;box-shadow:0 3px 10px #0002}.btn.primary:hover{background:#e41b42}.btn.secondary{background:var(--panel);border-color:var(--line);color:var(--text)}.btn.secondary:hover{background:var(--panel2)}.btn.ghost{padding-left:7px;padding-right:7px;color:var(--muted)}.btn.danger{background:#462333;color:#ffadbb}.text-btn,.text-link{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:0;color:var(--muted);font-size:10px;padding:5px 0}.text-btn:hover,.text-link:hover{color:var(--text)}.full{width:100%}.muted{color:var(--muted)}.small{font-size:11px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:24px}.stat{position:relative;border:1px solid var(--line);border-radius:9px;padding:20px 20px 16px;background:var(--panel)}.stat>svg{position:absolute;right:18px;top:19px;width:18px;height:18px;color:var(--muted)}.stat>span{display:block;font-size:11px;color:var(--muted)}.stat>strong{font-size:30px;font-weight:600;letter-spacing:-.7px;display:block;margin-top:11px;line-height:1.2}.stat strong small{font-size:11px;font-weight:400;letter-spacing:0;color:var(--muted);margin-left:9px}.stat p{font-size:9px;color:var(--muted);margin-top:10px}.panel{border:1px solid var(--line);border-radius:10px;background:var(--panel);min-width:0;overflow:hidden}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:19px 21px;gap:14px}.panel h2{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px;letter-spacing:-.2px}.section-kicker{font-size:8px;letter-spacing:1.4px;display:block;margin-bottom:4px}.panel-heading select{font-size:10px;max-width:200px;padding:6px 9px}.control-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);gap:22px}.screen-panel{padding-bottom:0}.screen-panel>.signage{margin:0 20px;width:calc(100% - 40px);border-radius:5px;overflow:hidden;border:1px solid #304767}.preview-meta{padding:13px 21px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted)}.preview-meta>span{display:flex;align-items:center;gap:6px}.preview-meta b{font-weight:400;padding:0 2px}.status-dot{width:5px;height:5px;display:inline-block;border-radius:50%;background:#83a7d1}.quick-panel{padding:0 21px 17px}.quick-panel .panel-heading{padding-left:0;padding-right:0;padding-bottom:5px}.quick-panel>.small{margin-bottom:15px}.quick-actions{display:flex;flex-direction:column;gap:7px;margin-bottom:17px}.quick-actions>button{padding:10px;border:1px solid var(--line);border-radius:7px;display:flex;gap:12px;align-items:center;text-align:left;background:var(--input);font-size:11px;font-weight:550}.quick-actions>button:hover{border-color:#687a94;background:var(--panel2)}.quick-actions>button>svg{margin-left:auto;color:var(--muted)}.quick-actions small{display:block;font-size:9px;font-weight:400;color:var(--muted);margin-top:3px}.quick-icon{display:grid;place-items:center;width:32px;height:34px;border-radius:6px}.quick-icon svg{width:20px;height:20px}.quick-icon.green{color:#77dbb6;background:#24483d}.quick-icon.red{color:#fa8397;background:#4a2635}.quick-icon.amber{color:#e7b35a;background:#493c29}.quick-icon.blue{color:#84bceb;background:#243f5e}.lower-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:22px;margin-top:23px}.network-list{padding:0 12px 9px}.network-list>button{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:1px solid transparent;border-radius:7px;padding:11px 9px;margin-bottom:3px}.network-list>button:hover,.network-list>button.selected{background:var(--panel2);border-color:var(--line)}.network-list>button>span:nth-child(2){flex:1}.network-list strong{font-size:11px;display:block;font-weight:550}.network-list small{color:var(--muted);font-size:9px;display:block;margin-top:3px}.network-icon{width:32px;height:34px;display:grid;place-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:7px;color:var(--muted)}.network-icon svg{width:16px}.step-count{color:var(--muted);font-size:10px}.setup-step{width:100%;display:flex;gap:12px;align-items:center;padding:13px 21px;border:0;text-align:left}.setup-step>span:first-child{width:26px;height:26px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:10px;color:var(--muted)}.setup-step>span.done{color:#83d7b8;background:#233f37;border-color:#366454}.setup-step>span:nth-child(2){flex:1}.setup-step strong{display:block;font-size:11px;font-weight:500}.setup-step small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.setup-step>svg{color:var(--muted)}.setup-step:hover{background:var(--panel2)}.setup-note{margin:15px 21px 20px;background:var(--input);border:1px solid var(--line);padding:12px;display:flex;gap:8px;font-size:9px;line-height:1.6;color:var(--muted);border-radius:7px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin:20px 0;gap:15px}.search{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:0 12px;min-width:290px;width:360px;color:var(--muted)}.search input{border:0;background:none;padding:11px 0;width:100%;font-size:11px;outline:none;color:var(--text)}.screen-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.display-card>.signage{border-bottom:1px solid var(--line)}.card-body{padding:17px 19px}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.card-heading h3{font-size:13px;font-weight:600}.card-body>p{color:var(--muted);font-size:10px;margin-top:6px}.card-body>p span{padding:0 5px}.card-info{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin:12px 0}.card-actions{display:flex;align-items:center;gap:8px;margin-top:15px;border-top:1px solid var(--line);padding-top:14px}.card-actions .btn{font-size:10px;min-height:32px;padding:7px 11px}.card-actions .btn:last-child{margin-left:auto}.template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.template-preview{display:block;border:0;width:100%;padding:0}.template-card .card-body{padding:14px}.template-card .card-actions{gap:5px}.color-dot{display:block;width:7px;height:7px;border-radius:50%}.color-dot.blue{background:#5bb9f6}.color-dot.green{background:#6bd9ae}.color-dot.amber{background:#edbf62}.color-dot.red{background:#ed5d76}.notice,.alert{border:1px solid var(--line);border-radius:7px;padding:13px 15px;display:flex;align-items:flex-start;gap:10px;font-size:11px;color:var(--muted);background:var(--panel2);margin-bottom:20px;line-height:1.6}.notice svg{color:#79acd8;margin-top:2px}.notice strong{color:var(--text)}.alert.error{border-color:#773447;color:#ffacba;background:#45202f}.alert .icon-btn{margin-left:auto}.demo-ribbon{display:flex;align-items:center;gap:8px;padding:9px 12px;background:#1b3047;color:#a6cbee;border:1px solid #2c4d6d;border-radius:6px;font-size:10px;margin-bottom:20px}.demo-ribbon a{margin-left:auto;display:flex;align-items:center;gap:3px;text-decoration:underline}.empty{text-align:center;padding:45px 25px;border:1px dashed var(--line);border-radius:10px;margin:20px 0;background:var(--panel)}.empty>svg{color:var(--muted);width:30px;height:30px;margin-bottom:12px}.empty h3{font-size:15px;font-weight:600;margin:0 0 9px}.empty p{max-width:450px;margin:0 auto 20px;font-size:12px;color:var(--muted);line-height:1.7}.panel .empty{border:0;margin:0;padding:40px 22px}.panel .empty h3{font-size:13px}.panel .empty p{font-size:11px}.table-wrap{overflow:auto}.table-wrap table{width:100%;border-collapse:collapse;font-size:12px;text-align:left;white-space:nowrap}th{font-weight:500;font-size:10px;color:var(--muted);background:var(--panel2);padding:13px 20px}td{padding:16px 20px;border-top:1px solid var(--line)}td strong{font-size:12px;font-weight:500}td small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.arrival-list{padding:0 20px 12px}.arrival-list>div{display:flex;align-items:center;gap:14px;padding:15px 0;border-top:1px solid var(--line)}.arrival-list>div>span:nth-child(2){flex:1}.arrival-list strong{font-size:13px;font-weight:600}.arrival-list small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.order{color:var(--muted);font-size:10px;width:22px}.alarms-list{padding:0 20px 12px}.alarms-list>div{display:flex;align-items:flex-start;gap:9px;padding:18px 0;border-top:1px solid var(--line)}.alarms-list>div>span:nth-child(2){flex:1}.alarms-list strong{display:block;font-size:11px;font-weight:600}.alarms-list small{display:block;color:var(--muted);font-size:9px;margin-top:5px}.alarm-icon{color:#efbf64;background:#4c3d26;padding:8px;border-radius:6px}.rule-panel{margin-top:25px}.rule-panel .panel-heading{align-items:flex-start}.rule-panel .panel-heading p{margin-top:7px}.rule-row{display:flex;gap:12px;align-items:center;padding:16px 21px;border-top:1px solid var(--line)}.rule-row>span:nth-child(2){flex:1}.rule-row strong{font-size:12px;display:block;font-weight:500}.rule-row small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.rule-symbol{border:1px solid var(--line);padding:8px;border-radius:6px;color:var(--muted)}.connection-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.connection-card{padding:25px;position:relative}.connection-icon{display:inline-flex;padding:15px;border-radius:10px;background:var(--panel2);color:#87bde9;border:1px solid var(--line);margin-bottom:20px}.connection-card>.badge{position:absolute;top:28px;right:25px}.connection-card h2{font-size:20px;margin-bottom:7px}.connection-card>p{color:var(--muted);font-size:12px}.connection-card ul{list-style:none;padding:15px 0 0;margin:15px 0;border-top:1px solid var(--line)}.connection-card li{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:11px;margin-bottom:10px}.connection-card li svg{color:#6d9a87}.connection-card .connection-note{font-size:10px;background:var(--input);padding:12px;border-radius:6px;min-height:58px;margin-bottom:19px}.integration-bottom{padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:21px}.integration-bottom h2{margin-bottom:6px}.integration-bottom p{color:var(--muted);font-size:11px;max-width:650px;line-height:1.7}.connection-grid+.integration-bottom{margin-top:23px}.role-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:25px}.role-card{padding:19px}.role-card>svg{color:#88b3d9}.role-card h3{font-size:12px;margin:12px 0 7px;font-weight:600}.role-card p{font-size:10px;color:var(--muted);line-height:1.7}.brand-pair{display:flex;align-items:center;justify-content:center;gap:30px;padding:34px 20px;margin:0 20px 25px;background:var(--panel2);border-radius:7px}.brand-pair img{width:135px;max-height:60px;object-fit:contain}.brand-pair>span{color:#a4afbf}.branding-card dl,.license-card dl{display:grid;grid-template-columns:110px 1fr;gap:17px;font-size:11px;margin:20px 24px 27px}.branding-card dt,.license-card dt{color:var(--muted)}dd{margin:0}.license-card{padding-bottom:24px}.license-number{font-size:42px;display:block;padding:0 24px;font-weight:600}.license-number small{font-size:14px;margin-left:10px;color:var(--muted);font-weight:400}.license-card>p{margin:18px 24px;font-size:11px;color:var(--muted)}.license-card>.btn{margin:0 24px;width:calc(100% - 48px)}.license-card>small{display:block;font-size:10px;margin:14px 24px 0;line-height:1.7}.meter{height:6px;background:var(--line);border-radius:5px;overflow:hidden;margin:16px 24px}.meter i{height:100%;display:block;background:#68bdc1}.audit-panel{margin-top:25px}.audit-list{padding:0 24px 10px}.audit-list>div{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:15px 0}.audit-list>div>span:nth-child(2){flex:1}.audit-list strong{text-transform:capitalize;font-size:11px;font-weight:500}.audit-list small{display:block;color:var(--muted);font-size:9px;margin-top:4px}.audit-list time{font-size:9px;color:var(--muted)}.audit-dot{width:6px;height:6px;border-radius:50%;background:#6b8cba}.app-footer{display:flex;justify-content:space-between;align-items:center;padding:27px 0 22px;margin-top:32px;border-top:1px solid var(--line);font-size:9px;color:var(--muted)}.app-footer>span:first-child{display:flex;align-items:center;gap:15px}.app-footer img{width:62px}.modal-backdrop{position:fixed;inset:0;background:#050b16bf;backdrop-filter:blur(5px);z-index:80;display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto}.modal{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:13px;width:min(530px,100%);max-height:calc(100dvh - 48px);overflow:auto;padding:24px;box-shadow:0 20px 100px #0007}.modal.wide{width:min(1000px,100%)}.modal-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px;gap:20px}.modal-title h2{font-size:21px;font-weight:600;letter-spacing:-.4px}.modal p{font-size:12px;color:var(--muted);line-height:1.8;margin:12px 0}.field{display:block;margin-bottom:15px}.field>span{display:block;font-size:11px;font-weight:550;margin-bottom:7px}.field input,.field select,.field textarea,select{background:var(--input);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:10px 11px;font-size:12px;width:100%}.field input[type=file]{font-size:11px;line-height:2}.field textarea{resize:vertical}.field small{display:block;font-size:10px;color:var(--muted);line-height:1.65;margin-top:6px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:20px;margin-top:10px;border-top:1px solid var(--line)}.modal-actions .danger{margin-right:auto}.send-layout,.editor-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:28px}.step-label{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:600;margin-bottom:17px}.step-label span{background:#293d56;color:#b7d7f3;border:1px solid #3c5878;border-radius:50%;width:23px;height:23px;display:grid;place-items:center;font-size:10px}.screen-checks{display:flex;flex-direction:column;gap:4px;max-height:190px;overflow:auto;margin:0 0 23px}.screen-checks label{display:flex;align-items:center;gap:10px;background:var(--input);border:1px solid var(--line);border-radius:6px;padding:9px;font-size:11px;cursor:pointer}.screen-checks label:has(input:checked){border-color:#6f8bb0;background:var(--panel2)}.screen-checks small{display:block;font-size:9px;color:var(--muted);margin-top:2px}.send-preview>.signage{border-radius:6px;overflow:hidden;border:1px solid var(--line)}.send-preview>.notice{margin-top:18px;font-size:10px}.confirm-check{display:flex;align-items:center;gap:8px;font-size:10px;line-height:1.7;margin:16px 0}.send-preview>.text-btn{margin:10px 0}.send-preview>small{display:block;font-size:9px}.editor-preview{align-self:start;position:sticky;top:0;background:var(--input);padding:16px;border:1px solid var(--line);border-radius:8px}.editor-preview .section-kicker{margin-bottom:15px}.day-picker{display:flex;gap:5px}.day-picker>button{flex:1;border:1px solid var(--line);border-radius:5px;padding:10px 3px;font-size:10px;background:var(--input);color:var(--muted)}.day-picker>button.on{background:#253e5a;border-color:#6387b1;color:#e4f1ff}.pair-card{background:var(--input);border:1px solid var(--line);border-radius:8px;padding:22px;display:flex;flex-direction:column;align-items:center;gap:9px;margin:20px 0}.pair-card svg{color:#91b4dc}.pair-card small{color:var(--muted);font-size:10px}.pair-card~.btn{margin-bottom:10px}.logo-preview{height:70px;max-width:180px;object-fit:contain;background:#fff;border-radius:6px;padding:10px}.danger-text{color:#f49caf}.workspace-list{display:flex;flex-direction:column;gap:8px;margin-bottom:25px}.workspace-list button{display:flex;align-items:center;gap:10px;border:1px solid var(--line);padding:15px;border-radius:7px;text-align:left;font-size:12px}.workspace-list button svg:last-child{margin-left:auto;color:#76d2b2}.install-hero{display:flex;justify-content:center;align-items:center;gap:30px;color:#91b7dd;padding:25px}.install-hero svg{width:55px;height:55px}.toast{position:fixed;bottom:25px;left:calc(50% + 100px);transform:translate(-50%);z-index:110;padding:13px 20px;background:#e9fff5;color:#164834;box-shadow:0 8px 30px #0005;border:1px solid #5ebd98;border-radius:8px;display:flex;align-items:center;gap:9px;font-size:12px;max-width:90vw}.loading-page{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:23px;background:#0d1421;color:#eef5fc;text-align:center;padding:25px}.loading-page img{width:120px}.loading-page p{color:#a4b6cc;font-size:14px;max-width:450px}.loading-page h1{font-size:42px}.loading-page .text-link{color:#a6c6e6}.mobile-menu{display:none}.signage>header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:3vw 4vw 0;height:10vw;flex-shrink:0}.sign-genfare{width:25vw;max-height:8vw;object-fit:contain}.sign-agency{width:19vw;height:5vw;object-fit:contain;background:#fff;border-radius:2px;padding:.7vw}.signage>main{display:flex;align-items:center;gap:4vw;flex:1;min-height:0;padding:2vw 4vw 3vw}.sign-icon{width:22vw;display:flex;align-items:center;justify-content:center;align-self:stretch;color:var(--accent);flex-shrink:0}.sign-icon svg{width:21vw;height:26vw;max-height:100%}.sign-icon svg[viewBox="0 0 90 270"]{width:10vw;height:30vw}.sign-words h2{font-family:inherit;color:var(--sign-text);font-size:7vw;line-height:1.05;letter-spacing:-.08vw;font-weight:900;margin:0 0 2vw;display:block;overflow-wrap:anywhere}.sign-words p{color:var(--accent);font-family:inherit;font-size:6vw;font-weight:900;line-height:1.1;margin:0;overflow-wrap:anywhere}.signage>footer{display:flex;align-items:center;justify-content:center;min-height:9vw;padding:1.8vw 3vw;text-align:center;background:var(--accent);color:#061d37;font-family:inherit;font-weight:900;font-size:3.3vw;line-height:1.1;flex-shrink:0}.sign-demo{position:absolute;top:10.5vw;right:4vw;font-family:Arial,sans-serif;font-size:1.3vw;letter-spacing:.12vw;opacity:.6}.arrival-sign{padding:1vw 5vw;flex:1;min-height:0}.arrival-sign h2{font-size:5vw;line-height:1;font-family:inherit;font-weight:900;display:block;color:var(--sign-text);margin:0}.arrival-sign>p{font-size:2.5vw;line-height:1.1;color:var(--accent);margin:1vw 0}.arrival-head{display:flex;justify-content:space-between;font-family:Arial,sans-serif;font-size:1.6vw;opacity:.7;margin:1.5vw 0 1vw}.arrival-row{display:flex;justify-content:space-between;align-items:center;font-size:3.4vw;line-height:1.1;padding:.9vw 1vw;border-top:.1vw solid #6687ab55}.arrival-row span{display:flex;gap:1.5vw;align-items:center}.arrival-row svg{width:2.5vw;height:2.5vw}.arrival-empty{font-size:3vw;color:var(--accent);padding:9vw 0}.garage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:24px}.garage-card{padding:17px;display:flex;align-items:center;gap:12px}.garage-card>svg{color:#83aad1}.garage-card>div{flex:1}.garage-card h3{font-size:12px}.garage-card p{font-size:10px;color:var(--muted);margin-top:4px}.garage-controls{display:flex;align-items:center;gap:10px;margin-bottom:22px}.garage-controls h2{font-size:14px;flex:1}.player-page{background:#03162a;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;color:#fff}.player-page>.signage{width:100%;max-height:100dvh;aspect-ratio:16/9}.player-toolbar{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;justify-content:space-between;align-items:center;background:#071421d9;padding:8px 15px;color:#c4d6e9;font:11px Arial;opacity:0;transition:.2s}.player-page:hover .player-toolbar,.player-toolbar:focus-within{opacity:1}.player-error{padding:35px;text-align:center}.player-error h1{font-size:25px;margin-bottom:18px}.player-error p{color:#b4cbe3}.player-toolbar button{color:#fff;border:1px solid #7c90a8;border-radius:4px;padding:5px 9px}.screen-disabled{opacity:.65}.theme-button{display:flex;align-items:center;gap:5px}@media(min-width:1550px){h1{font-size:35px}.page-heading p{font-size:14px}.stat>span{font-size:13px}.stat>strong{font-size:38px}.stat p{font-size:11px}.panel h2{font-size:16px}.quick-actions>button{padding:14px;font-size:13px}.quick-actions small{font-size:11px}.network-list strong,.setup-step strong{font-size:13px}.network-list small,.setup-step small{font-size:11px}.quick-panel>.small{font-size:12px}.panel-heading{padding:22px}.sidebar nav button{font-size:13px}}@media(max-width:1150px){.sidebar{width:215px;padding-left:13px;padding-right:13px}.app-main{margin-left:215px}.content{padding:28px 24px 0}.topbar{padding:0 24px}.control-grid{grid-template-columns:minmax(0,1.3fr) minmax(245px,1fr);gap:16px}.quick-panel{padding-left:15px;padding-right:15px}.quick-actions>button{padding:8px;gap:8px}.quick-actions small{font-size:8px}.quick-panel .panel-heading h2{font-size:13px}.stats-grid{gap:10px}.stat{padding:17px 14px}.stat>svg{display:none}.stat p{font-size:8px}.template-grid,.role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lower-grid{gap:16px}.brand-pair{gap:15px}.brand-pair img{width:100px}.screen-grid{gap:16px}.page-heading h1{font-size:26px}.garage-grid{grid-template-columns:1fr 1fr}}@media(max-width:900px){.control-grid,.lower-grid{grid-template-columns:1fr}.quick-actions{display:grid;grid-template-columns:1fr 1fr}.quick-actions>button{padding:13px}.quick-panel{padding:0 20px 20px}.quick-panel .panel-heading{padding:20px 0 10px}.screen-grid,.connection-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.stat p{font-size:10px}.stat>span{font-size:12px}.stat>strong{font-size:32px}.stat{padding:18px}.page-heading{align-items:flex-start}.page-heading>.btn{font-size:10px;padding:9px}.preview-meta{font-size:10px}.topbar-right .tz{display:none}.send-layout,.editor-layout{grid-template-columns:1fr}.editor-preview{position:static}.send-layout .screen-checks{max-height:140px}.integration-bottom{align-items:flex-start;flex-direction:column;gap:14px}.template-grid{gap:12px}.template-card .card-actions .btn{font-size:9px;padding:7px}.template-card .card-body{padding:12px}.template-card .card-heading h3{font-size:11px}}@media(max-width:700px){.sidebar{transform:translate(-100%);width:245px;transition:.2s;box-shadow:0 0 70px #0008}.sidebar.mobile-open{transform:translate(0)}.app-main{margin-left:0}.mobile-menu{display:flex}.topbar{padding:0 16px;height:63px;position:sticky;top:0;z-index:15;background:var(--bg)}.topbar-right{gap:4px}.breadcrumb{gap:7px}.breadcrumb>span{display:none}.breadcrumb>svg{display:none}.content{padding:25px 17px 0}.page-heading{margin-bottom:22px;flex-wrap:wrap;gap:16px}.page-heading h1{font-size:27px;letter-spacing:-.7px}.page-heading p{font-size:12px;line-height:1.7}.eyebrow{font-size:8px;letter-spacing:1px}.page-heading>.btn{font-size:11px;padding:10px 13px}.stats-grid{gap:11px;margin-bottom:18px}.stat{padding:17px 14px}.stat>span{font-size:10px}.stat p{font-size:9px;line-height:1.5}.stat strong small{font-size:10px}.control-grid,.lower-grid{gap:17px}.screen-panel>.signage{margin:0 12px;width:calc(100% - 24px)}.panel-heading{padding:16px}.panel-heading select{max-width:145px}.quick-panel .panel-heading h2{font-size:15px}.quick-actions>button{padding:9px;gap:8px;font-size:10px}.quick-actions small{font-size:8px}.quick-icon{width:28px}.quick-actions>button>svg{display:none}.network-list>button{gap:8px}.network-list strong{font-size:11px}.setup-note{font-size:10px}.app-footer{font-size:8px;gap:10px}.app-footer img{width:50px}.app-footer>span:first-child{gap:8px}.toolbar{flex-wrap:wrap}.search{width:100%;min-width:0}.template-grid{grid-template-columns:1fr}.template-card .card-body{padding:15px}.template-card .card-heading h3{font-size:14px}.template-card .card-actions .btn{font-size:11px}.template-card .card-actions{margin-top:14px}.modal-backdrop{padding:10px}.modal{padding:20px;max-height:calc(100dvh - 20px);border-radius:10px}.modal-title h2{font-size:20px}.modal .signage{min-height:0}.modal p{font-size:12px}.field input,.field select,.field textarea{font-size:16px;padding:11px}.field>span{font-size:12px}.btn{min-height:42px;font-size:12px}.icon-btn{min-width:38px;min-height:38px}.demo-ribbon{align-items:flex-start;flex-wrap:wrap;font-size:10px}.demo-ribbon a{margin-left:24px}.notice{font-size:11px}.connection-card{padding:22px}.role-card{padding:16px}.audit-list>div{align-items:flex-start;flex-wrap:wrap}.audit-list time{margin-left:18px}.toast{left:50%;bottom:15px;font-size:11px;width:max-content}.modal .editor-preview{padding:12px}.rule-row{padding:15px;gap:8px}.rule-row strong{font-size:11px}.rule-row small{font-size:9px}.day-picker>button{font-size:10px;padding:10px 2px}.brand-pair img{width:120px}.garage-grid{grid-template-columns:1fr}.garage-controls{margin-top:8px}.stats-grid .stat:nth-child(n+3){display:none}.badge{font-size:9px}.alarms-list>div{flex-wrap:wrap}.alarms-list .text-btn{margin-left:45px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}.monitor-code{font-family:ui-monospace,monospace;letter-spacing:.8px;font-size:10px!important;color:#7fa8d4!important}.monitor-details{margin-top:15px}.monitor-details>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid var(--line);font-size:10px}.monitor-details span{color:var(--muted)}.monitor-details strong{font-weight:500;text-align:right}.no-report{aspect-ratio:16/9;background:var(--input);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted)}.no-report strong{font-weight:500;font-size:13px}.no-report span{font-size:10px}.pairing-code{display:flex;flex-direction:column;align-items:center;padding:22px 10px;border:1px solid #486b98;background:var(--input);border-radius:8px;margin-bottom:20px;gap:8px}.pairing-code small{letter-spacing:1.5px;font-size:9px;color:var(--muted)}.pairing-code strong{font:700 36px ui-monospace,monospace;letter-spacing:4px;color:#a8d9ff}.pairing-code span{font-size:10px;color:var(--muted)}.player-pair-form{max-width:450px;margin:auto;text-align:center;padding:25px}.player-pair-form>img{width:130px;margin:0 auto 30px}.player-pair-form h1{font-size:30px}.player-pair-form p{color:#9cb7d5;margin:15px 0 25px;font:13px/1.7 Arial}.player-pair-form input{display:block;width:100%;padding:15px;text-align:center;font:26px ui-monospace,monospace;letter-spacing:4px;border:1px solid #4f6a8a;border-radius:6px;background:#152b46;color:#fff;margin-bottom:15px}.player-pair-form button{background:#d3173b;color:#fff;width:100%;padding:14px;border:0;border-radius:6px;font-size:13px;font-weight:600}.player-pair-form .pair-error{color:#ffacba}.master-agencies{padding:0 22px 12px}.master-agencies>div{display:flex;align-items:center;gap:13px;padding:17px 0;border-top:1px solid var(--line)}.master-agencies>div>span:nth-child(2){flex:1}.master-agencies strong{font-size:13px;font-weight:550;display:block}.master-agencies small{font-size:10px;color:var(--muted);display:block;margin-top:4px}.master-wall{margin-top:25px}.master-wall>.panel-heading{padding-left:0;padding-right:0}.master-screen{padding:0;text-align:left}.master-wall .no-report{border:0;aspect-ratio:16/9}.master-wall h2{font-size:15px}.master-wall .panel-heading p{margin-top:6px}.master-screen .card-body p{font-size:9px}@media(max-width:700px){.master-agencies{padding:0 15px 10px}.master-agencies>div{flex-wrap:wrap;gap:10px}.master-agencies>div>span:nth-child(2){min-width:150px}.master-agencies .btn{flex:1}.product-brand{font-size:21px}}.product-brand{font-size:22px}.product-brand small{display:flex;gap:4px;align-items:center;letter-spacing:1.5px;font-size:8px}.product-brand small img{width:72px}.garage-selector{font-size:10px;width:130px;padding:6px 8px}.color-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.color-choice{display:flex;align-items:center;gap:5px;border:1px solid var(--line);padding:7px;border-radius:5px;font-size:9px;color:var(--muted);text-transform:capitalize;background:var(--input)}.color-choice.selected,.icon-picker>.selected{border-color:#6bafda;background:var(--panel2);color:var(--text)}.color-choice>span{width:11px;height:11px;border-radius:50%;background:#46c4f7}.color-choice.green>span{background:#61e686}.color-choice.amber>span{background:#ffc928}.color-choice.red>span{background:#f4474c}.color-choice.purple>span{background:#ba9bff}.color-choice.teal>span{background:#64dfd2}.icon-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.icon-picker>button{border:1px solid var(--line);border-radius:5px;padding:8px 2px;display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--muted);background:var(--input)}.icon-picker svg{width:20px;height:22px}.icon-picker svg[viewBox="0 0 90 270"]{width:9px;height:22px;--sign-bg:var(--input)}.icon-picker span{font-size:8px;text-transform:capitalize}@media(max-width:700px){.garage-selector{width:105px;font-size:10px}.topbar-right>.badge{display:none}.icon-picker>button{min-height:55px}.color-choice{min-height:35px}.product-brand{font-size:22px}}.vault-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.vault-card{padding-bottom:22px}.vault-money{display:block;font-size:32px;line-height:1.2;font-weight:600;letter-spacing:-.5px;padding:15px 22px 7px}.vault-card>p{font-size:10px;color:var(--muted);padding:0 22px}.vault-card dl{display:grid;grid-template-columns:80px 1fr;gap:12px;margin:22px 22px 0;font-size:10px}.vault-card dt{color:var(--muted)}@media(max-width:1100px){.vault-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.vault-grid{grid-template-columns:1fr}.sidebar{padding-top:20px}.sidebar nav{gap:2px}.sidebar nav button{padding-top:10px;padding-bottom:10px}}.signage.art-flow:before{content:"";position:absolute;width:120%;height:65%;left:-15%;top:13%;border:1.2vw solid var(--accent);opacity:.1;transform:rotate(-24deg);border-radius:50%;pointer-events:none}.signage.art-flow:after{content:"";position:absolute;left:15%;top:27%;width:11vw;height:11vw;border:.4vw solid var(--accent);opacity:.17;border-radius:50%;pointer-events:none}.sign-agency{position:absolute;object-fit:contain;width:18%;height:auto;max-height:12vw;background:#fff;padding:.4vw;z-index:4}.movable-logo{cursor:grab;touch-action:none;outline:.35vw dashed #8ecfff;outline-offset:.35vw}.movable-logo:active{cursor:grabbing}.workspace-logo{width:34px;height:32px;object-fit:contain;background:#fff;border-radius:4px;padding:3px}.workspace-logo[src="/njtransit-logo.svg"]{background:#17314d}.artwork-suggestions{margin-top:23px;padding-top:16px;border-top:1px solid var(--line)}.artwork-suggestions .panel-heading{padding:0 0 15px}.artwork-suggestions h3,.logo-position-controls h3{font-size:13px;font-weight:600}.artwork-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.artwork-grid>button{padding:0;border:1px solid var(--line);border-radius:7px;overflow:hidden;text-align:left;background:var(--input)}.artwork-grid>button.selected{border-color:#87bfe6;box-shadow:0 0 0 1px #87bfe6}.artwork-grid>button>span{padding:11px;display:block;position:relative}.artwork-grid strong{font-size:10px;display:block;font-weight:550}.artwork-grid small{font-size:8px;color:var(--muted);display:block;margin-top:4px}.artwork-grid>button>span>svg{position:absolute;right:9px;top:13px;color:#7fd4bd}.logo-position-controls{padding:20px 0 0}.logo-position-controls h3{margin-bottom:13px}@media(max-width:700px){.artwork-grid{grid-template-columns:1fr}.artwork-grid strong{font-size:12px}.artwork-grid small{font-size:10px}.sidebar nav button{font-size:11px}.sidebar-bottom{padding-top:10px}.sidebar .license-mini{padding:10px}}.light .brand-pair img[src="/njtransit-logo.svg"]{filter:brightness(0)}.sidebar{overflow-y:auto}.sidebar nav{flex-shrink:0}.sidebar-bottom{flex-shrink:0}.inline-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.fleet-toolbar{flex-wrap:wrap}.fleet-toolbar .search{min-width:220px}.file-button{position:relative;overflow:hidden;cursor:pointer}.file-button input{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}.file-button.disabled{opacity:.4;cursor:not-allowed}.fleet-editor{padding:24px;margin-bottom:24px}.fleet-editor h2{margin-bottom:22px}.fleet-editor .panel-heading{padding:0 0 18px}.fleet-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.monitoring-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(250px,1fr);gap:22px;margin-bottom:26px}.monitoring-preview>.signage{margin:0 20px;width:calc(100% - 40px);border-radius:6px}.monitoring-preview>p{padding:0 20px 20px}.monitoring-sources{padding:0 20px 20px}.monitoring-sources .panel-heading{padding-left:0;padding-right:0}.monitoring-sources>p{margin-top:18px}.source-health{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 0;border-top:1px solid var(--line);font-size:11px}.source-health small{display:block;color:var(--muted);font-size:9px;margin-top:6px}.alarm-legend{display:flex;flex-wrap:wrap;gap:12px;padding:16px 20px;font-size:10px;color:var(--muted)}.legend-warning,.report-yellow{color:#f4c657}.legend-critical,.report-red{color:#ff7d90}.light .legend-warning,.light .report-yellow{color:#8a5900}.light .legend-critical,.light .report-red{color:#b91b3c}.segmented{display:flex;gap:4px;border:1px solid var(--line);padding:4px;border-radius:8px;background:var(--input)}.segmented button{border:0;color:var(--muted);padding:10px 16px;border-radius:5px;font-size:12px}.segmented button.active{background:#c71538;color:#fff}.alarm-search{max-width:240px;font-size:11px}.alarm-examples{margin-top:28px}.alarm-examples .panel-heading{padding-left:0;padding-right:0}.alarm-examples .panel-heading h2{font-size:16px}.alarm-examples .panel-heading p{margin-top:8px;max-width:750px}.alarm-example-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.alarm-example{display:flex;align-items:center;gap:12px;text-align:left;padding:18px}.alarm-example>span:nth-child(2){flex:1}.alarm-example strong{display:block;font-size:12px;font-weight:550}.alarm-example small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.alarm-example:hover{border-color:#7f8ea7}.example-dot{width:32px;height:32px;display:grid;place-items:center;border-radius:7px;background:#45321b;color:#f4c657}.example-dot.critical{background:#4c2432;color:#ff8ca0}.report-filterbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:end;gap:14px;padding:20px}.report-filterbar .field{margin:0}.report-filterbar .btn{margin-bottom:0;min-height:42px}.report-source-health{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:18px 0;font-size:11px;color:var(--muted)}.alarm-report-table{min-width:800px}.alarm-report-table td{max-width:260px;white-space:normal;overflow-wrap:anywhere}.alarm-report-table small{line-height:1.5}.arrivals-layout .arrival-sign{padding:1vw 4vw}.arrivals-layout .arrival-sign h2{font-size:4.3vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arrivals-layout .arrival-sign>p{font-size:2.1vw;margin:.8vw 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arrivals-layout .arrival-head,.arrivals-layout .arrival-row{display:grid;grid-template-columns:1.25fr 2.6fr 1fr;column-gap:2vw}.arrivals-layout .arrival-head{margin:1.2vw 0 .6vw;font-size:1.35vw}.arrivals-layout .arrival-row{height:5.4vw;padding:.55vw .7vw;font-size:3.2vw;border-left:.35vw solid transparent}.arrivals-layout .arrival-bus{gap:1vw;font-weight:800;white-space:nowrap}.arrivals-layout .arrival-row>strong{text-align:right;white-space:nowrap;font-size:2.5vw}.arrival-row .arrival-status>span{display:flex;gap:.55vw;font-size:1.55vw;font-weight:700;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arrival-row .arrival-status svg{width:1.6vw;height:1.6vw}.arrival-status small{display:block;margin-top:.3vw;font-size:1.25vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.78}.arrivals-layout>footer{min-height:5.5vw;padding:1vw 3vw;font-size:2.3vw}@media(max-width:1100px){.monitoring-layout{grid-template-columns:1fr}.alarm-example-grid,.report-filterbar{grid-template-columns:repeat(2,minmax(0,1fr))}.report-filterbar .btn{grid-column:1/-1}}@media(max-width:600px){.fleet-fields{grid-template-columns:1fr}.fleet-editor{padding:18px}.alarm-example-grid{grid-template-columns:1fr}.fleet-toolbar .search,.fleet-toolbar .inline-actions{width:100%}.monitoring-preview>.signage{margin:0 10px;width:calc(100% - 20px)}.alarm-search{max-width:150px}.report-source-health{gap:10px}.segmented button{padding:9px 12px}.report-filterbar{padding:15px;gap:10px}.alarm-legend{font-size:9px;padding:13px}.monitoring-layout{gap:12px}}html,body,#root{margin:0;width:100%;height:100%;background:#090f1b;color:#edf3fc;font-family:Arial,sans-serif}button:focus{outline:4px solid #70d6ff;outline-offset:5px}button{font:inherit}.enrollment{height:100vh;padding:4vh 5vw;background:radial-gradient(ellipse at 20% 100%,#133858 0,transparent 60%),#0a1321;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:2vw}.brand img{width:15vw}.brand>span{font-size:2vw;border-left:1px solid #536175;padding-left:2vw}.brand b{font-size:.8vw;letter-spacing:.2vw;margin-left:.5vw;color:#a2bed6}.setup-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:7vw;align-items:center;flex:1}.eyebrow{color:#72cdf0;font-size:1vw;letter-spacing:.2vw}h1{font-size:5.8vw;line-height:1.05;margin:2vh 0 3vh;letter-spacing:-.25vw}h1 em{font-style:normal;color:#8bdbff}.setup-grid section>p{font-size:1.45vw;line-height:1.6;color:#bdcadb}.setup-grid ol{font-size:1.25vw;line-height:2.3;margin-top:3vh;padding-left:1.5vw;color:#d5e0ec}.code-panel{padding:3.5vw;background:#142235;border:1px solid #33445a;border-radius:2vw;text-align:center;box-shadow:0 20px 90px #0004}.screen-icon{font-size:4vw;color:#8bd6f6}.code-panel h2{font-size:2vw;margin:2vh 0}.pair-code{font-size:4.6vw;letter-spacing:.4vw;font-weight:800;background:#09111f;padding:2.5vh 1vw;border-radius:1vw;margin:3vh 0;color:#fff;white-space:nowrap}.code-panel button,.device-menu button{border:0;border-radius:.6vw;background:#c80c30;padding:1.2vw 2vw;font-size:1.4vw;color:#fff;margin-top:3vh}.code-panel button.secondary{background:#253951;font-size:1vw;padding:.7vw 1vw}.countdown{font-size:1.1vw!important}.waiting{font-size:1vw;color:#aac3d9;margin-top:2vh}.waiting i{display:inline-block;width:.6vw;height:.6vw;border-radius:50%;background:#71cee3;margin-right:.7vw}.error{font-size:1.1vw!important;color:#ffb1b9!important;margin-top:2vh}.enrollment>footer{display:flex;justify-content:space-between;color:#8da5ba;font-size:.8vw;letter-spacing:.12vw}.tv-display{height:100vh;width:100vw;background:#081120;display:flex;align-items:center;justify-content:center}.tv-display>.signage{width:100vw;max-height:100vh;aspect-ratio:16/9;border:0;border-radius:0}.settings-toggle{position:fixed;bottom:1vh;right:1vw;opacity:.1;z-index:10;background:#132238;color:#fff;border:1px solid #63728a;border-radius:8px;padding:.5vw 1vw;font-size:1.5vw}.settings-toggle:focus,.settings-toggle:hover{opacity:1}.device-menu{position:fixed;inset:15vh 20vw;background:#111e30;border:2px solid #5c86aa;border-radius:20px;padding:4vw;box-shadow:0 0 0 100vmax #000a;z-index:20}.device-menu h2{font-size:2.5vw}.device-menu p{margin:2vh 0;font-size:1.4vw}.device-menu button{margin-right:2vw}.tv-display>.signage{height:56.25vw;max-height:100vh}.vault-test-preview{margin-bottom:24px}.vault-test-preview>.signage{width:calc(100% - 40px);margin:0 20px}.vault-test-preview>p{padding:18px 20px}.vault-demo-layout>header{height:8vw;padding-top:2vw}.vault-demo-layout .sign-genfare{width:15vw}.vault-demo-layout .sign-agency{max-height:5vw;background:transparent}.vault-sign{flex:1;min-height:0;display:flex;flex-direction:column;padding:0 2vw 1vw;position:relative;z-index:1}.vault-sign-heading{display:flex;align-items:baseline;justify-content:space-between;padding:0 0 1vw;gap:2vw}.vault-sign-heading h2{font-size:3.5vw;line-height:1.1;letter-spacing:-.1vw}.vault-sign-heading p{font-size:1.5vw;text-transform:uppercase;max-width:35%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vault-sign-alert{display:flex;align-items:center;justify-content:center;gap:1vw;background:#173e60;border-radius:.6vw;font-size:1.6vw;font-weight:700;padding:.7vw;color:#fff}.vault-sign-alert svg{width:1.9vw;height:1.9vw}.vault-sign-grid{display:flex;flex:1;gap:1.3vw;padding-top:1.2vw;min-height:0}.vault-sign-card{--vault-color:#29d782;flex:1;min-width:0;border:.12vw solid #305073;background:#ffffff05;border-radius:1vw;display:flex;align-items:center;flex-direction:column;padding:1.2vw 1vw .8vw}.vault-sign-card h3{font-size:2.5vw;line-height:1.1;margin:0}.vault-sign-card>p{font-size:1.5vw;margin:.3vw 0 .7vw}.vault-sign-status{display:flex;align-items:center;justify-content:center;gap:.5vw;width:100%;font-size:1.25vw;white-space:nowrap;background:var(--vault-color);color:#062039;border-radius:.5vw;font-weight:800;padding:.6vw}.vault-sign-status svg{width:1.5vw;height:1.5vw}.vault-sign-gauge{height:9.8vw;width:7vw;flex-shrink:0;margin:1vw 0 .4vw;border:.35vw solid #54799c;border-radius:.7vw;overflow:hidden;position:relative;background:#071b30}.vault-sign-card>strong{font-size:4.5vw;line-height:1.05;color:var(--vault-color)}.vault-sign-card>small{font-size:1.2vw;margin-top:.2vw}.vault-sign-action{border-top:.1vw solid #365775;margin-top:auto;padding-top:.6vw;width:100%;display:flex;align-items:center;justify-content:center;gap:.6vw;font-size:1.1vw;font-weight:700;min-height:2.5vw}.vault-sign-action svg{width:1.5vw;height:1.5vw}.vault-demo-layout>footer{min-height:3vw;padding:.6vw 2vw;font-family:Arial,sans-serif;font-size:1.2vw;letter-spacing:.05vw;background:#17324c;color:#dceafa}.grtc-board{height:100vh;box-sizing:border-box;background:#05142c;color:#fff;padding:2vh 2vw;display:flex;flex-direction:column;font-family:Arial,sans-serif}.grtc-board header{height:5vh;display:flex;align-items:center;gap:2vw}.grtc-board header img{width:18vw;object-fit:contain}.grtc-board header img:first-child{width:13vw;filter:brightness(0) invert(1);margin-right:auto}.grtc-board header span{font-size:1.3vw;color:#58dcb8}.grtc-board h1{font-size:8.3vw;line-height:1;margin:1vh 0 0;font-weight:900;letter-spacing:-.35vw}.grtc-board h2{font-size:3.8vw;line-height:1.05;color:#78c7f7;margin:0 0 1vh;font-weight:900}.grtc-board .columns,.grtc-board article{display:grid;grid-template-columns:21% 43% 36%;text-align:center;align-items:center}.grtc-board .columns{font-size:2.1vw;font-weight:700;padding:1vh 0}.grtc-board .rows{flex:1;display:flex;flex-direction:column;min-height:0}.grtc-board article{flex:1;border-bottom:1px solid #34506f;font-size:5vw;font-weight:900}.grtc-board article.first{background:#2048b7;outline:1px solid #6393f1}.grtc-board article b{color:#78c7f7}.grtc-board footer{background:#2048b7;padding:1vh;text-align:center;font-size:2.4vw;font-weight:900}.grtc-board>small{text-align:center;font-size:1vw;padding-top:1vh;color:#a2b5ce}.grtc-board .empty{flex:1;display:grid;place-items:center;font-size:2.5vw}.signage .sign-agency.agency-grtc{background:#102443;padding:.3vw;object-fit:contain}.gps-display-with-images{position:relative;width:100vw;height:100vh}.signage .screen-images,.gps-display-with-images .screen-images{position:absolute;inset:0;z-index:4;pointer-events:none}.signage{--sign-bg:#061d37;--accent:#46c4f7;--sign-text:#f7faff;position:relative;aspect-ratio:16/9;background:var(--sign-bg);color:var(--sign-text);display:flex;flex-direction:column;container-type:inline-size;overflow:hidden;font-family:Impact,Arial Narrow,Arial,sans-serif;text-align:left}.signage.tone-green{--accent:#61e686}.signage.tone-amber{--accent:#ffc928}.signage.tone-red{--accent:#f4474c}.signage.screen-light{--sign-bg:#f2f6fc;--sign-text:#11253e}.signage>header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:calc(var(--sign-unit) * 3) calc(var(--sign-unit) * 4) 0;height:calc(var(--sign-unit) * 10);flex-shrink:0}.sign-genfare{width:calc(var(--sign-unit) * 25);max-height:calc(var(--sign-unit) * 8);object-fit:contain}.sign-agency{width:calc(var(--sign-unit) * 19);height:calc(var(--sign-unit) * 5);object-fit:contain;background:#fff;border-radius:2px;padding:calc(var(--sign-unit) * .7)}.signage>main{display:flex;align-items:center;gap:calc(var(--sign-unit) * 4);flex:1;min-height:0;padding:calc(var(--sign-unit) * 2) calc(var(--sign-unit) * 4) calc(var(--sign-unit) * 3)}.sign-icon{width:calc(var(--sign-unit) * 22);display:flex;align-items:center;justify-content:center;align-self:stretch;color:var(--accent);flex-shrink:0}.sign-icon svg{width:calc(var(--sign-unit) * 21);height:calc(var(--sign-unit) * 26);max-height:100%}.sign-icon svg[viewBox="0 0 90 270"]{width:calc(var(--sign-unit) * 10);height:calc(var(--sign-unit) * 30)}.sign-words{flex:1;min-width:0}.signage .sign-words h2{font-family:inherit;color:var(--sign-text);font-size:calc(var(--sign-unit) * 7);line-height:1.05;letter-spacing:calc(var(--sign-unit) * -.08);font-weight:900;margin:0 0 calc(var(--sign-unit) * 2);display:block;overflow-wrap:anywhere}.signage .sign-words p{color:var(--accent);font-family:inherit;font-size:calc(var(--sign-unit) * 6);font-weight:900;line-height:1.1;margin:0;overflow-wrap:anywhere}.signage>footer{display:flex;align-items:center;justify-content:center;min-height:calc(var(--sign-unit) * 9);padding:calc(var(--sign-unit) * 1.8) calc(var(--sign-unit) * 3);text-align:center;background:var(--accent);color:#061d37;font-family:inherit;font-weight:900;font-size:calc(var(--sign-unit) * 3.3);line-height:1.1;flex-shrink:0}.sign-demo{position:absolute;top:calc(var(--sign-unit) * 10.5);right:calc(var(--sign-unit) * 4);font-family:Arial,sans-serif;font-size:calc(var(--sign-unit) * 1.3);letter-spacing:calc(var(--sign-unit) * .12);opacity:.6}.arrival-sign{padding:calc(var(--sign-unit) * 1) calc(var(--sign-unit) * 5);flex:1;min-height:0}.signage .arrival-sign h2{font-size:calc(var(--sign-unit) * 5);line-height:1;font-family:inherit;font-weight:900;display:block;color:var(--sign-text);margin:0}.signage .arrival-sign>p{font-size:calc(var(--sign-unit) * 2.5);line-height:1.1;color:var(--accent);margin:calc(var(--sign-unit) * 1) 0}.arrival-head{display:flex;justify-content:space-between;font-family:Arial,sans-serif;font-size:calc(var(--sign-unit) * 1.6);opacity:.7;margin:calc(var(--sign-unit) * 1.5) 0 calc(var(--sign-unit) * 1)}.arrival-row{display:flex;justify-content:space-between;align-items:center;font-size:calc(var(--sign-unit) * 3.4);line-height:1.1;padding:calc(var(--sign-unit) * .9) calc(var(--sign-unit) * 1);border-top:calc(var(--sign-unit) * .1) solid #6687ab55}.arrival-row.first{background:#124a8177}.arrival-row span{display:flex;gap:calc(var(--sign-unit) * 1.5);align-items:center}.arrival-row svg{width:calc(var(--sign-unit) * 2.5);height:calc(var(--sign-unit) * 2.5)}.arrival-row strong{font-weight:900;color:var(--accent)}.arrival-empty{font-size:calc(var(--sign-unit) * 3);color:var(--accent);padding:calc(var(--sign-unit) * 9) 0}.sign-agency[src="/njtransit-logo.svg"]{background:transparent;padding:0;object-fit:contain}.signage.tone-purple{--accent:#ba9bff}.signage.tone-teal{--accent:#64dfd2}.signage.art-flow:before{content:"";position:absolute;width:120%;height:65%;left:-15%;top:13%;border:calc(var(--sign-unit) * 1.2) solid var(--accent);opacity:.1;transform:rotate(-24deg);border-radius:50%;pointer-events:none}.signage.art-flow:after{content:"";position:absolute;left:15%;top:27%;width:calc(var(--sign-unit) * 11);height:calc(var(--sign-unit) * 11);border:calc(var(--sign-unit) * .4) solid var(--accent);opacity:.17;border-radius:50%;pointer-events:none}.signage.art-spotlight{background:radial-gradient(ellipse at 17% 47%,color-mix(in srgb,var(--accent) 24%,transparent),transparent 59%),var(--sign-bg)}.signage>header,.signage>main,.arrival-sign,.signage>footer{z-index:1;position:relative}.signage>header{position:static}.sign-agency{position:absolute;object-fit:contain;width:18%;height:auto;max-height:calc(var(--sign-unit) * 12);background:#fff;padding:calc(var(--sign-unit) * .4);z-index:4}.screen-light .sign-agency[src="/njtransit-logo.svg"]{filter:brightness(0)}.arrivals-layout .arrival-sign{padding:calc(var(--sign-unit) * 1) calc(var(--sign-unit) * 4)}.signage.arrivals-layout .arrival-sign h2{font-size:calc(var(--sign-unit) * 4.3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.signage.arrivals-layout .arrival-sign>p{font-size:calc(var(--sign-unit) * 2.1);margin:calc(var(--sign-unit) * .8) 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arrivals-layout .arrival-head,.arrivals-layout .arrival-row{display:grid;grid-template-columns:1.25fr 2.6fr 1fr;column-gap:calc(var(--sign-unit) * 2)}.arrivals-layout .arrival-head{margin:calc(var(--sign-unit) * 1.2) 0 calc(var(--sign-unit) * .6);font-size:calc(var(--sign-unit) * 1.35)}.arrivals-layout .arrival-head>span:last-child{text-align:right}.arrivals-layout .arrival-row{height:calc(var(--sign-unit) * 5.4);padding:calc(var(--sign-unit) * .55) calc(var(--sign-unit) * .7);font-size:calc(var(--sign-unit) * 3.2);border-left:calc(var(--sign-unit) * .35) solid transparent}.arrivals-layout .arrival-bus{gap:calc(var(--sign-unit) * 1);font-weight:800;white-space:nowrap}.arrivals-layout .arrival-row>strong{text-align:right;white-space:nowrap;font-size:calc(var(--sign-unit) * 2.5)}.arrival-status{min-width:0;font-family:Arial,sans-serif;line-height:1.2}.arrival-row .arrival-status>span{display:flex;gap:calc(var(--sign-unit) * .55);font-size:calc(var(--sign-unit) * 1.55);font-weight:700;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arrival-row .arrival-status svg{width:calc(var(--sign-unit) * 1.6);height:calc(var(--sign-unit) * 1.6)}.arrival-status small{display:block;margin-top:calc(var(--sign-unit) * .3);font-size:calc(var(--sign-unit) * 1.25);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.78}.arrival-row.alarm-warning .arrival-bus,.arrival-row.alarm-warning .arrival-status>span{color:#ffe065}.arrival-row.alarm-critical .arrival-bus,.arrival-row.alarm-critical .arrival-status>span{color:#ff8b96}.arrival-row.alarm-warning{border-left-color:#ffe065;background:#ffc9280d}.arrival-row.alarm-critical{border-left-color:#ff8b96;background:#f4474c13}.arrival-row.alarm-unknown .arrival-status{color:#aebed0}.screen-light .arrival-row.alarm-warning .arrival-bus,.screen-light .arrival-row.alarm-warning .arrival-status>span{color:#875800}.screen-light .arrival-row.alarm-critical .arrival-bus,.screen-light .arrival-row.alarm-critical .arrival-status>span{color:#b41c36}.screen-light .arrival-row.alarm-unknown .arrival-status{color:#56667c}.arrivals-layout>footer{min-height:calc(var(--sign-unit) * 5.5);padding:calc(var(--sign-unit) * 1) calc(var(--sign-unit) * 3);font-size:calc(var(--sign-unit) * 2.3)}.vault-demo-layout{font-family:Arial,Helvetica,sans-serif!important}.vault-demo-layout>header{height:calc(var(--sign-unit) * 8);padding-top:calc(var(--sign-unit) * 2)}.vault-demo-layout .sign-genfare{width:calc(var(--sign-unit) * 15)}.vault-demo-layout .sign-agency{max-height:calc(var(--sign-unit) * 5);background:transparent}.vault-sign{flex:1;min-height:0;display:flex;flex-direction:column;padding:0 calc(var(--sign-unit) * 2) calc(var(--sign-unit) * 1);position:relative;z-index:1}.vault-sign-heading{display:flex;align-items:baseline;justify-content:space-between;padding:0 0 calc(var(--sign-unit) * 1);gap:calc(var(--sign-unit) * 2)}.signage .vault-sign-heading h2{font-size:calc(var(--sign-unit) * 3.5);line-height:1.1;letter-spacing:calc(var(--sign-unit) * -.1)}.signage .vault-sign-heading p{font-size:calc(var(--sign-unit) * 1.5);text-transform:uppercase;max-width:35%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vault-sign-alert{display:flex;align-items:center;justify-content:center;gap:calc(var(--sign-unit) * 1);background:#173e60;border-radius:calc(var(--sign-unit) * .6);font-size:calc(var(--sign-unit) * 1.6);font-weight:700;padding:calc(var(--sign-unit) * .7);color:#fff}.vault-sign-alert.critical{background:#c91029}.vault-sign-alert svg{width:calc(var(--sign-unit) * 1.9);height:calc(var(--sign-unit) * 1.9)}.vault-sign-grid{display:flex;flex:1;gap:calc(var(--sign-unit) * 1.3);padding-top:calc(var(--sign-unit) * 1.2);min-height:0}.vault-sign-card{--vault-color:#29d782;flex:1;min-width:0;border:calc(var(--sign-unit) * .12) solid #305073;background:#ffffff05;border-radius:calc(var(--sign-unit) * 1);display:flex;align-items:center;flex-direction:column;padding:calc(var(--sign-unit) * 1.2) calc(var(--sign-unit) * 1) calc(var(--sign-unit) * .8)}.vault-sign-card.warning{--vault-color:#ffcb27}.vault-sign-card.critical{--vault-color:#ff4659}.signage .vault-sign-card h3{font-size:calc(var(--sign-unit) * 2.5);line-height:1.1;margin:0}.signage .vault-sign-card>p{font-size:calc(var(--sign-unit) * 1.5);margin:calc(var(--sign-unit) * .3) 0 calc(var(--sign-unit) * .7)}.vault-sign-status{display:flex;align-items:center;justify-content:center;gap:calc(var(--sign-unit) * .5);width:100%;font-size:calc(var(--sign-unit) * 1.25);white-space:nowrap;background:var(--vault-color);color:#062039;border-radius:calc(var(--sign-unit) * .5);font-weight:800;padding:calc(var(--sign-unit) * .6)}.vault-sign-status svg{width:calc(var(--sign-unit) * 1.5);height:calc(var(--sign-unit) * 1.5)}.vault-sign-gauge{height:calc(var(--sign-unit) * 9.8);width:calc(var(--sign-unit) * 7);flex-shrink:0;margin:calc(var(--sign-unit) * 1) 0 calc(var(--sign-unit) * .4);border:calc(var(--sign-unit) * .35) solid #54799c;border-radius:calc(var(--sign-unit) * .7);overflow:hidden;position:relative;background:#071b30}.vault-sign-gauge>div{position:absolute;bottom:0;width:100%;background:var(--vault-color)}.vault-sign-card>strong{font-size:calc(var(--sign-unit) * 4.5);line-height:1.05;color:var(--vault-color)}.vault-sign-card>small{font-size:calc(var(--sign-unit) * 1.2);margin-top:calc(var(--sign-unit) * .2)}.vault-sign-action{border-top:calc(var(--sign-unit) * .1) solid #365775;margin-top:auto;padding-top:calc(var(--sign-unit) * .6);width:100%;display:flex;align-items:center;justify-content:center;gap:calc(var(--sign-unit) * .6);font-size:calc(var(--sign-unit) * 1.1);font-weight:700;min-height:calc(var(--sign-unit) * 2.5)}.vault-sign-action svg{width:calc(var(--sign-unit) * 1.5);height:calc(var(--sign-unit) * 1.5)}.vault-demo-layout>footer{min-height:calc(var(--sign-unit) * 3);padding:calc(var(--sign-unit) * .6) calc(var(--sign-unit) * 2);font-family:Arial,sans-serif;font-size:calc(var(--sign-unit) * 1.2);letter-spacing:calc(var(--sign-unit) * .05);background:#17324c;color:#dceafa}.screen-light .vault-sign-card{background:#e9f0f8;border-color:#aabed3}.screen-light .vault-sign-card>strong{color:#126841}.screen-light .vault-sign-card.warning>strong{color:#865d00}.screen-light .vault-sign-card.critical>strong{color:#b5192d}.signage .sign-agency.agency-njt{background:transparent;padding:0;object-fit:contain;object-position:center}.signage.screen-light .sign-agency.agency-njt{filter:brightness(0)}.signage .sign-agency.agency-grtc{background:#082238;padding:1%;border-radius:4px;object-fit:contain;filter:none}.signage .sign-icon .bus-photo{width:100%;height:100%;object-fit:contain}.signage:has(.bus-photo) .sign-icon{width:35%;flex:0 0 35%}.signage.tone-orange{--accent:#ffad66}.signage.tone-pink{--accent:#ff91c2}.signage.tone-cyan{--accent:#67e8f9}.signage.tone-lime{--accent:#c4ed6a}.signage.tone-white{--accent:#ffffff}.signage.tone-silver{--accent:#cbd5e1}.signage>footer{color:var(--footer-text,#061d37)}.signage .screen-images{position:absolute;inset:0;z-index:4;pointer-events:none}.screen-images img{position:absolute;object-fit:contain;user-select:none}.screen-images .movable-screen-image{pointer-events:auto;cursor:move;touch-action:none;outline:1px dashed #8ccaff}.signage{font-family:GenVisionDisplay,Arial,sans-serif;font-synthesis:none}@font-face{font-family:GenVisionDisplay;src:url(./fonts/anton-latin-400-normal.woff2) format("woff2");font-style:normal;font-weight:400 900;font-display:block}.tv-display>.signage{--sign-unit:min(1vw,1.77777778vh);width:min(100vw,177.777778vh);height:min(56.25vw,100vh);max-height:none;flex:none;margin:auto;border:0;border-radius:0}
