:root{font-family:Inter,Segoe UI,system-ui,sans-serif;color:#172338;background:#f4f7fa;font-synthesis:none;--accent:#087ff5;--line:#e1e7ed;--muted:#65758a}*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}button,input,select{font:inherit}button,.button{border:1px solid var(--line);background:white;color:#26364b;border-radius:9px;padding:10px 15px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block}button:hover,.button:hover{background:#edf5ff}button:disabled{opacity:.6;cursor:wait}.primary{background:var(--accent);color:white;border-color:var(--accent)}.primary:hover{background:#0759c7}.text-button{background:transparent;border:0;color:var(--accent);padding:9px 0;font-size:13px}label{display:grid;gap:7px;font-size:12px;font-weight:650}input,select{border:1px solid #ccd6e0;border-radius:8px;background:white;padding:11px;color:#172338;min-width:0}input:focus,select:focus{outline:2px solid #90c5ff;outline-offset:1px}h1,h2,h3,p{margin-top:0}h2{font-size:20px}h3{font-size:16px}.muted,small{color:var(--muted)}.eyebrow{font-size:11px;font-weight:750;letter-spacing:2px;color:var(--accent);display:block;margin-bottom:14px}.sign-in{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.intro{background:#061b35;color:white;padding:clamp(40px,8vw,120px);display:flex;flex-direction:column;justify-content:center}.intro img{margin-bottom:50px;border-radius:15px}.intro .eyebrow{color:#90caff}.intro h1{font-size:clamp(36px,4.8vw,66px);letter-spacing:-2px;line-height:1.1}.intro p{color:#b7cce5;max-width:350px;line-height:1.7}.intro-note{margin-top:50px;font-size:12px;color:#9db7d5}.login-card{padding:36px;max-width:460px;width:100%;margin:auto;background:white;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 50px #24344208}.login-card h2{font-size:28px}.login-card p{line-height:1.6}.login-card form{display:grid;gap:18px}.login-foot{font-size:12px;border-top:1px solid var(--line);padding-top:20px}.message{color:#b42318;font-size:13px;margin:14px 0}.auth-wrap{min-height:100vh;display:flex;padding:20px}.auth-card{text-align:center}.auth-card label{text-align:left}#qr{margin:8px auto}details{font-size:12px}code{overflow-wrap:anywhere;display:block;padding:10px}.digits{display:flex;gap:8px;justify-content:center;margin:15px 0}.digits input{width:48px;height:56px;text-align:center;font-size:25px;padding:3px}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}aside{background:#071e3a;color:white;padding:32px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:white;margin-bottom:55px;font-size:22px}.brand img{border-radius:9px}.brand b{font-weight:400;color:#b7cce5}.brand small{display:block;letter-spacing:1px;font-size:8px;color:#9db7d5;margin-top:7px}.nav-label{font-size:10px;color:#91accd;letter-spacing:2px;margin:0 12px 12px}nav{display:grid;gap:6px}nav button{display:flex;gap:12px;border:0;background:transparent;color:#b9cde5;font-size:14px;text-align:left;padding:14px 12px}nav button.active{background:#153c68;color:#aad8ff}nav button:hover{background:#103154}.aside-bottom{margin-top:auto;padding:25px 12px 0;border-top:1px solid #254464}.aside-bottom small{color:#9db7d5;display:block;text-transform:capitalize;margin:6px 0 18px}.aside-bottom button{background:transparent;border-color:#426487;color:white;width:100%;text-align:left}main{padding:34px 40px;min-width:0;max-width:1700px;width:100%}header{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:25px}header h1{font-size:30px;letter-spacing:-.8px;margin:0}.scope{display:flex;gap:12px}.scope select{max-width:260px;min-width:175px}.filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:25px}.filters label{min-width:150px}.live-label{font-size:11px;color:var(--accent);margin-left:auto;align-self:center}.metrics{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:14px;margin-bottom:25px}.metric,.panel,.chart-card{background:white;border:1px solid var(--line);border-radius:13px;padding:22px}.metric span{color:var(--muted);font-size:12px}.metric strong{display:block;font-size:32px;margin-top:14px;letter-spacing:-1px}.panel{margin-bottom:24px}.panel-head,.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.panel-head h2,.section-head h2{margin:0}.section-head p{margin-top:8px}.badge{font-size:11px;background:#e8f5ef;border-radius:20px;padding:6px 12px;color:#157253}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{font-size:10px;letter-spacing:.7px;text-transform:uppercase;color:var(--muted);padding:12px 10px;border-bottom:1px solid var(--line)}td{padding:16px 10px;border-bottom:1px solid #eef1f5}tbody tr:last-child td{border:0}td small{display:block;font-size:11px;margin-top:5px}td button,td .button{font-size:12px;padding:7px 10px}.empty{padding:35px;color:var(--muted);background:white;border:1px dashed #bdcbd7;border-radius:12px}.notice:not(:empty){background:#fff2e6;color:#9b520f;padding:12px;border-radius:8px;margin-bottom:20px}.charts{display:grid;gap:18px}.pie-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.pie-section{display:grid;grid-template-columns:84px 1fr;align-items:center;gap:14px;padding:18px 0}.pie{width:84px;height:84px;border-radius:50%}.pie-labels h3{font-size:12px;margin:0 0 9px}.pie-labels p{font-size:11px;color:var(--muted);margin:5px 0}.swatch{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}.green{background:#20a879}.orange{background:#ef9350}#companyAccessForm{display:flex;gap:12px;align-items:end}dialog{border:1px solid var(--line);border-radius:16px;padding:28px;width:min(520px,95vw);max-height:90vh}dialog::backdrop{background:#11253880}#staffForm{display:grid;gap:16px}fieldset{border:1px solid var(--line);border-radius:8px;padding:14px}legend{font-size:12px;font-weight:650}#staffCompanies{display:grid;gap:10px}#staffCompanies label{display:flex;align-items:center;gap:10px}pre{background:#f3f6f8;padding:15px;border-radius:8px;font-size:12px;line-height:1.6}@media(max-width:1150px){main{padding:25px}.metrics{grid-template-columns:repeat(3,1fr)}header{align-items:start;flex-direction:column}.pie-row{grid-template-columns:1fr}}@media(max-width:720px){.shell{grid-template-columns:1fr}aside{position:static;height:auto;padding:16px}.brand{margin-bottom:16px}nav{display:flex;flex-wrap:wrap}nav button{padding:9px}.nav-label,.aside-bottom{display:none}main{padding:20px}.scope{flex-wrap:wrap}.metrics{grid-template-columns:1fr 1fr}.filters label{min-width:130px}.sign-in{grid-template-columns:1fr;padding:20px}.intro{display:none}.login-card{padding:25px}.live-label{margin:0}.digits{gap:5px}.digits input{width:40px}.section-head{align-items:start;flex-direction:column}.auth-card{margin:auto}.scope select{min-width:140px}}

@media(max-width:720px){.aside-bottom{display:flex;align-items:center;gap:10px;margin-top:15px;padding:0;border:0}.aside-bottom small{display:none}.aside-bottom button{width:auto;margin-left:auto}}

.centre-logo{width:140px!important;height:60px!important;object-fit:contain;background:white;border-radius:8px;padding:8px}#taxiSettingsForm{display:grid;gap:15px;max-width:600px}

.pulse-logo{width:220px!important;height:110px!important;object-fit:contain}.brand:has(.centre-logo){flex-direction:column;align-items:flex-start;gap:14px;font-size:20px;line-height:1.25}.brand span{overflow-wrap:anywhere}

[data-staff-id]{cursor:pointer}[data-staff-id]:hover,[data-staff-id]:focus-visible{background:#edf5ff;outline-color:var(--accent)}.staff-name{border:0;background:transparent;padding:0;color:var(--accent);text-align:left}.staff-portal{display:flex;gap:20px;justify-content:space-between;flex-wrap:wrap}.staff-portal h2{margin-bottom:8px}.staff-portal p{margin-bottom:8px}.staff-portal-actions{display:flex;gap:8px;flex-wrap:wrap;align-content:center}.staff-context-menu{position:fixed;z-index:1000;min-width:230px;max-width:calc(100vw - 16px);padding:6px;border:1px solid var(--line);border-radius:10px;background:white;box-shadow:0 12px 35px #071e3a30}.staff-context-menu button{display:block;width:100%;border:0;text-align:left;font-size:13px}.staff-context-menu button:focus-visible{outline:2px solid var(--accent)}

.staff-role-group+ .staff-role-group{border-top:1px solid var(--line);padding-top:24px;margin-top:24px}.staff-circle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:20px}.staff-card{display:flex;flex-direction:column;align-items:center;text-align:center;border-radius:12px;padding:15px 8px;gap:7px;min-width:0}.staff-avatar{width:96px;height:96px;border-radius:50%;overflow:hidden;background:#e7eef8;border:3px solid #b9d7fc;display:grid;place-items:center}.staff-avatar img{width:100%;height:100%;object-fit:cover}.staff-avatar svg{width:80%;height:80%;fill:#90a7c6}.staff-card .staff-name{font-size:14px;font-weight:700}.staff-card small{font-size:11px;overflow-wrap:anywhere;max-width:100%}.staff-status{font-size:10px;border-radius:20px;padding:4px 9px;background:#e8f5ef;color:#157253}.staff-suspended .staff-avatar{border-color:#e4a1a1;opacity:.65}.staff-suspended .staff-status{color:#b42318;background:#fff0f0}.staff-empty{font-size:13px;grid-column:1/-1;padding:10px 0}

.staff-card .staff-name,.staff-card small,.staff-card .staff-status{text-align:center}.staff-card .staff-name,.staff-card small{width:100%}

.aside-bottom{position:relative}#portalUserToggle{display:flex;gap:9px;align-items:center;width:100%;text-align:left;border:0;padding:5px 0}#portalUserToggle #userName{overflow-wrap:anywhere}#portalUserMenu{position:absolute;bottom:calc(100% + 8px);left:0;width:100%;min-width:180px;z-index:100;background:white;border:1px solid var(--line);border-radius:9px;padding:6px;box-shadow:0 10px 30px #071e3a30}#portalUserMenu button{color:#172338;background:white;border:0}.portal-avatar{width:36px;height:36px;border-radius:50%;background:#e7eef8;display:grid;place-items:center;overflow:hidden;flex-shrink:0}.portal-avatar img{width:100%;height:100%;object-fit:cover}.portal-avatar svg{width:80%;height:80%;fill:#90a7c6}#personalProfileForm{display:grid;gap:15px}#personalPhoto{margin:auto}

.online-team{margin-bottom:20px}.online-people{display:flex;flex-wrap:wrap;gap:18px 26px;padding:6px 0}.online-person{display:flex;align-items:center;gap:10px;max-width:230px}.online-photo{position:relative;display:block;width:44px;height:44px;flex:0 0 44px;border-radius:50%;background:#e9f2fc}.online-photo img,.online-photo svg{width:44px;height:44px;border-radius:50%;object-fit:cover}.online-photo svg{fill:#94a9c0;padding:5px}.online-photo i{position:absolute;right:0;bottom:0;width:11px;height:11px;background:#23b573;border:2px solid white;border-radius:50%}.online-person-name{font-weight:600;overflow-wrap:anywhere}.online-person-name small{display:block;font-size:11px;font-weight:400;color:var(--muted,#718096);margin-top:3px}

.online-photo .online-phone{position:absolute;right:-4px;bottom:-3px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:2px solid white;border-radius:50%;color:white;background:#20a764}.online-photo .online-phone.on-call{background:#dc3545}.online-photo .online-phone svg{width:12px;height:12px;border-radius:0;padding:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

.report-explorer{padding:0;overflow:hidden}.explorer-toolbar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f7f9fc;border-bottom:1px solid var(--line)}#reportBreadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px}#reportBreadcrumb button{display:block;padding:6px 9px;color:#234364;background:white;font-size:12px;border:1px solid var(--line)}#reportBreadcrumb span{font-size:12px;color:#64748b}.explorer-body{display:grid;grid-template-columns:215px minmax(0,1fr);min-height:340px}.report-tree{position:static;height:auto;display:block;background:#f8fafd;padding:12px;border-right:1px solid var(--line);color:#234364;overflow:auto}.report-tree button{width:100%;display:flex;align-items:center;gap:8px;text-align:left;background:transparent;border:0;color:#234364;padding:9px;font-size:12px}.report-tree button.selected{background:#e3efff}.report-tree svg{width:23px;height:20px;flex-shrink:0}.report-files{padding:20px;min-width:0}.report-folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:14px}.report-folder{min-height:135px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;border:1px solid transparent;background:white;text-align:center;padding:16px 10px}.report-folder:hover,.report-folder:focus-visible{background:#edf5ff;border-color:#a7ceff}.report-folder svg{width:56px;height:46px}.report-folder span{font-size:13px;font-weight:600;overflow-wrap:anywhere}.report-folder small{font-size:11px;color:#64748b}.explorer-status{padding:10px 16px;border-top:1px solid var(--line);background:#f8fafd;font-size:11px;color:#64748b}.report-pdf-icon{display:inline-block;background:#fee7e7;color:#b12828;padding:5px;font-size:10px;font-weight:700;margin-right:7px}@media(max-width:720px){.explorer-body{grid-template-columns:1fr}.report-tree{display:none}.report-files{padding:12px}.explorer-toolbar{align-items:start}}

.live-label.connected::before{content:"";display:inline-block;width:8px;height:8px;background:#20a764;border-radius:50%;margin-right:7px;box-shadow:0 0 0 3px #20a76420;animation:live-pulse 1.8s ease-in-out infinite}@keyframes live-pulse{50%{box-shadow:0 0 0 5px #20a76408}}@media(prefers-reduced-motion:reduce){.live-label.connected::before{animation:none}}

.report-context-menu a{display:block;text-decoration:none;color:#172338;font-size:13px;padding:10px 12px;border-radius:6px}.report-context-menu a:hover,.report-context-menu a:focus-visible{background:#edf5ff;outline:2px solid var(--accent)}[data-report-file]:hover,[data-report-file]:focus-visible{background:#f0f6ff;outline:2px solid var(--accent)}

.report-preview{width:min(1100px,96vw);height:90vh;max-height:90vh;padding:0;overflow:hidden}.report-preview[open]{display:flex;flex-direction:column}.report-preview-head{display:flex;align-items:center;gap:12px;padding:14px 18px;background:#f8fafd;border-bottom:1px solid var(--line)}.report-preview-head h2{font-size:16px;margin:0 auto 0 0}.report-preview-head button{font-size:24px;padding:3px 11px}.report-preview-head a{font-size:12px}#reportPreviewFrame{width:100%;flex:1;min-height:0;border:0;background:#e8ecf1}@media(max-width:600px){.report-preview-head{padding:10px;gap:8px}.report-preview-head h2{font-size:13px}}

.intro img.pulse-logo{width:310px!important;height:auto!important}.brand .desktop-brand-logo{width:180px;height:auto}.brand:has(.desktop-brand-logo){flex-direction:column;align-items:flex-start}
