:root {
    /* Shared OnScene status colors */
    --os-primary: #f2a20c;
    --os-success: #198754;
    --os-warning: #ffc107;
    --os-danger: #dc3545;
    --os-info: #0d6efd;

    --os-success-bg: rgba(25, 135, 84, .08);
    --os-warning-bg: rgba(255, 193, 7, .10);
    --os-danger-bg: rgba(220, 53, 69, .10);
    --os-info-bg: rgba(13, 110, 253, .08);

    --module-color: #f2a20c;
    --module-color-dark: #c77f00;
    --background: #eef2f5;
    --surface: #ffffff;
    --surface-muted: #f6f8fa;
    --border: #cfd8df;
    --text: #1c2730;
    --muted: #647480;
    --nav: #17222c;
    --nav-hover: #24333f;
    --nav-text: #e3eaf0;
    --danger: #b3261e;
    --sidebar-width: 255px;
    --sidebar-collapsed: 76px;
    --topbar-height: 76px;
    --shadow: 0 8px 24px rgba(24,35,45,.12);
    font-family: Arial, Helvetica, sans-serif;
}
*{box-sizing:border-box}
html,body{min-height:100%;margin:0}
body{background:var(--background);color:var(--text)}
a{color:var(--module-color-dark)}
button,input,select,textarea{font:inherit}
h1,h2,h3,p{margin-top:0}
.top-bar{position:fixed;z-index:1000;top:0;left:0;right:0;height:var(--topbar-height);display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:var(--nav);color:#fff;box-shadow:0 2px 10px rgba(0,0,0,.2)}
.top-bar-left,.top-bar-actions,.brand{display:flex;align-items:center}
.top-bar-left,.top-bar-actions{gap:16px}
.brand{gap:13px;color:#fff;text-decoration:none}
.brand-logo{display:flex;width:52px;height:52px;align-items:center;justify-content:center;border:3px solid var(--module-color);border-radius:10px;background:#fff;overflow:hidden}
.brand-logo img{width:100%;height:100%;object-fit:contain}
.brand strong{display:block;font-size:1.2rem}
.brand small,.user-summary small{display:block;color:#c6d0d8}
.menu-toggle{display:grid;width:42px;height:42px;place-content:center;gap:5px;border:0;border-radius:7px;background:#2b3945;cursor:pointer}
.menu-toggle span{display:block;width:20px;height:2px;background:#fff}
.top-link{padding:9px 12px;border:1px solid #56636e;border-radius:7px;color:#fff;text-decoration:none}
.user-summary{text-align:right}
.user-summary strong,.user-summary small{display:block}
.side-menu{position:fixed;z-index:900;top:var(--topbar-height);bottom:0;left:0;width:var(--sidebar-width);padding:18px 12px;overflow-y:auto;background:var(--nav);transition:width .2s ease,transform .2s ease}
.menu-label{margin:18px 12px 8px;color:#8fa0ad;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.menu-label:first-child{margin-top:2px}
.menu-link{display:flex;min-height:46px;align-items:center;gap:12px;margin:4px 0;padding:9px 11px;border-radius:8px;color:var(--nav-text);text-decoration:none}
.menu-link:hover{background:var(--nav-hover)}
.menu-link.is-active{background:var(--module-color);color:#1e252a;font-weight:800}
.menu-link.is-disabled{cursor:not-allowed;opacity:.42}
.menu-code{display:flex;flex:0 0 34px;width:34px;height:28px;align-items:center;justify-content:center;border-radius:6px;background:rgba(255,255,255,.12);font-size:.73rem;font-weight:800}
.app-main{min-height:100vh;margin-left:var(--sidebar-width);padding-top:var(--topbar-height);transition:margin-left .2s ease}
.content-area{min-height:calc(100vh - var(--topbar-height) - 48px);padding:26px}
.app-footer{display:flex;min-height:48px;align-items:center;justify-content:space-between;padding:0 26px;border-top:1px solid var(--border);background:#fff;color:var(--muted);font-size:.86rem}
.sidebar-collapsed .side-menu{width:var(--sidebar-collapsed)}
.sidebar-collapsed .app-main{margin-left:var(--sidebar-collapsed)}
.sidebar-collapsed .menu-link span:last-child,.sidebar-collapsed .menu-label{display:none}
.breadcrumbs{display:flex;gap:9px;margin-bottom:15px;color:var(--muted);font-size:.9rem}
.page-header-card,.panel{border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}
.page-header-card{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:22px;padding:24px 26px;border-top:5px solid var(--module-color)}
.page-header-card h1{margin-bottom:7px}
.page-header-card p:last-child{margin-bottom:0;color:var(--muted)}
.eyebrow{margin-bottom:5px;color:var(--module-color-dark);font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.panel{padding:22px}
.panel-header{display:flex;justify-content:space-between;margin-bottom:18px}
.panel-header p{color:var(--muted)}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:22px}
.quick-grid,.maintenance-grid,.module-grid{display:grid;gap:16px}
.quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.quick-card,.maintenance-card,.module-card{border:1px solid var(--border);border-radius:10px;background:#fff;text-decoration:none;box-shadow:0 4px 12px rgba(24,35,45,.07)}
.quick-card{display:grid;gap:8px;padding:19px;color:var(--text)}
.quick-card:hover,.maintenance-card:hover,.module-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.quick-card span,.maintenance-card p,.module-card p{color:var(--muted)}
.status-list{margin:0}
.status-list div{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--border)}
.status-list div:last-child{border-bottom:0}
.status-list dt{color:var(--muted)}
.status-list dd{margin:0;font-weight:800}
.button{display:inline-flex;min-height:45px;align-items:center;justify-content:center;padding:10px 17px;border:0;border-radius:8px;cursor:pointer;font-weight:800;text-decoration:none}
.button-primary{background:var(--module-color);color:#17222c}
.button-primary:hover{background:var(--module-color-dark);color:#fff}
.button-full{width:100%}
.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.module-card{display:flex;gap:18px;padding:21px;color:var(--text);border-left:7px solid var(--card-color)}
.module-card.command{--card-color:#f2a20c}.module-card.enroute{--card-color:#2e8b57}.module-card.rehab{--card-color:#1976d2}.module-card.mabas{--card-color:#c62828}.module-card.erg{--card-color:#00897b}.module-card.dispatch-board{--card-color:#5e35b1}
.module-mark{display:flex;flex:0 0 54px;width:54px;height:54px;align-items:center;justify-content:center;border-radius:10px;background:var(--card-color);color:#fff;font-size:1.5rem;font-weight:900}
.module-card h2{margin-bottom:7px}
.launch{font-weight:800;color:var(--card-color)}
.maintenance-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.maintenance-card{padding:20px;color:var(--text)}
.maintenance-card span{font-size:.85rem;font-weight:800;color:var(--module-color-dark)}
.import-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.import-steps div{display:flex;align-items:center;gap:10px;padding:14px;border-radius:9px;background:var(--surface-muted)}
.import-steps strong{display:flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:50%;background:var(--module-color)}
.empty-state{padding:50px 20px;text-align:center}
.empty-state-icon{display:flex;width:72px;height:72px;align-items:center;justify-content:center;margin:0 auto 18px;border-radius:15px;background:#fff3d8;color:var(--module-color-dark);font-weight:900}
.auth-page,.module-placeholder{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:22px;background:linear-gradient(rgba(23,34,44,.92),rgba(23,34,44,.92)),radial-gradient(circle at top,#607180,#131b22)}
.auth-card,.module-placeholder main{width:100%;max-width:510px;padding:30px;border-top:6px solid var(--module-color);border-radius:14px;background:#fff;box-shadow:var(--shadow)}
.auth-brand{display:flex;align-items:center;gap:16px;margin-bottom:24px}
.auth-brand img{width:66px;height:66px;object-fit:contain;border:3px solid var(--module-color);border-radius:10px}
.auth-brand h1,.auth-brand p{margin-bottom:2px}
.form-stack{display:grid;gap:17px}
.form-stack label{display:grid;gap:7px;font-weight:800}
.form-stack input{min-height:48px;padding:11px 13px;border:2px solid var(--border);border-radius:8px}
.form-stack input:focus{border-color:var(--module-color);outline:3px solid rgba(242,162,12,.18)}
.message{margin-bottom:17px;padding:12px 14px;border-radius:8px}
.message-error{border:1px solid #dda09b;background:#fff0ef;color:#7d1d17}
.auth-back{display:block;margin-top:18px;text-align:center}
.sidebar-overlay{display:none}
@media(max-width:1050px){.quick-grid,.maintenance-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){
.side-menu{transform:translateX(-100%);width:var(--sidebar-width)}
.app-main,.sidebar-collapsed .app-main{margin-left:0}
.sidebar-open .side-menu{transform:translateX(0)}
.sidebar-open .sidebar-overlay{display:block;position:fixed;z-index:850;inset:var(--topbar-height) 0 0;background:rgba(0,0,0,.45)}
.sidebar-collapsed .side-menu{width:var(--sidebar-width)}
.sidebar-collapsed .menu-link span:last-child,.sidebar-collapsed .menu-label{display:block}
.dashboard-grid,.module-grid{grid-template-columns:1fr}
}
@media(max-width:650px){
.top-bar{padding:0 12px}.brand small,.user-summary{display:none}.content-area{padding:16px}.page-header-card{align-items:flex-start;flex-direction:column}.quick-grid,.maintenance-grid,.import-steps{grid-template-columns:1fr}.app-footer{gap:8px;align-items:flex-start;flex-direction:column;padding:12px 16px}
}


.auth-mode-buttons {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.auth-mode-buttons .is-selected {
    background: var(--nav);
    color: #fff;
}

.button-secondary{border:1px solid var(--border);background:#fff;color:var(--text)}
.auth-divider{display:flex;align-items:center;gap:10px;margin:20px 0;color:var(--muted);font-size:.8rem;font-weight:800;text-transform:uppercase}.auth-divider::before,.auth-divider::after{content:"";height:1px;flex:1;background:var(--border)}


/* Operational Access sizing standard */
.operational-pin-card,
.operational-pin-card * {
    box-sizing: border-box;
}

.operational-pin-card input,
.operational-pin-card select,
.operational-pin-card button,
.operational-pin-card .button {
    max-width: 100%;
}

.operational-pin-card .form-stack,
.operational-pin-card .form-stack label,
.operational-pin-card .operational-pin-input,
.operational-pin-card .button-full {
    width: 100%;
}

.operational-pin-card .operational-pin-input {
    display: block;
    margin: 0;
    padding-left: 1rem;
    padding-right: 1rem;
}


/* v0.15.4 Operational Access alignment hardening */
.operational-pin-card {
    width: min(510px, calc(100vw - 40px));
    box-sizing: border-box;
}

.operational-pin-card *,
.operational-pin-card *::before,
.operational-pin-card *::after {
    box-sizing: border-box;
}

.operational-pin-card .form-stack,
.operational-pin-card .form-stack label,
.operational-pin-card .form-stack input,
.operational-pin-card .form-stack button {
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

.operational-pin-card .operational-pin-input {
    display: block;
    margin: 0;
}
.demo-badge{background:#f6c443;color:#2a2105;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:700;white-space:nowrap}
@media (max-width:760px){.demo-badge{font-size:11px;padding:4px 8px;white-space:normal;max-width:150px;text-align:center}}
.auth-page.auth-photo{background:linear-gradient(rgba(14,22,29,.35),rgba(14,22,29,.35)),#17222c url(../images/login-background.jpg) center/cover no-repeat;background-attachment:fixed}
.page-header-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
