:root{--brand:#1b4f9c;--brand-light:#3d7cd1;--brand-dark:#123566;--brand-10:#1b4f9c1a;--brand-30:#1b4f9c4d;--brand-45:#1b4f9c73;--logo-blue:#1b4f9c;--logo-green:#00a04b;--logo-green-dark:#00783a;--logo-red:#e1252b;--logo-gold:#ddb577;--logo-silver:#bfbfbf;--cream:#fdfdfe;--cream-soft:#eff4fb;--surface:#fff;--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;--slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;--text:var(--slate-900);--text-secondary:var(--slate-700);--text-muted:var(--slate-500);--text-faint:var(--slate-400);--border:var(--slate-200);--border-soft:var(--slate-100);--status-success-bg:#e6f6ec;--status-success-text:#00783a;--status-warning-bg:#fff3e0;--status-warning-text:#b36f00;--status-danger-bg:#fde7e8;--status-danger-text:#c1181e;--status-neutral-bg:#e2e8f0;--status-neutral-text:#475569;--status-info-bg:#e7f0fb;--status-info-text:#1b4f9c;--toast-success:#15803d;--toast-error:#dc2626;--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--fs-micro:10px;--fs-xs:11px;--fs-sm:12px;--fs-table:13px;--fs-body:14px;--fs-stat:20px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-2xl:16px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--focus-ring:0 0 0 2px #fff, 0 0 0 4px var(--brand-45)}*,:before,:after{box-sizing:border-box}html,body,#app,#root{height:100%}html{overflow:hidden}body{font-family:var(--font-sans);font-size:var(--fs-body);color:var(--text);background:var(--cream);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;overflow:hidden}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.muted{color:var(--text-muted)}.micro-label{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.025em;color:var(--text-muted);font-weight:500}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{background:var(--cream);flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.app-topbar{background:var(--surface);border-bottom:1px solid var(--border);height:56px;box-shadow:var(--shadow-sm);flex-shrink:0;justify-content:space-between;align-items:center;padding-right:24px;display:flex}.app-topbar__chip{border-radius:var(--radius-full);background:var(--brand-10);color:var(--brand);font-size:var(--fs-xs);align-items:center;padding:4px 10px;font-weight:500;display:inline-flex}.avatar{border-radius:var(--radius-full);background:var(--brand);color:#fff;width:32px;height:32px;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;font-size:12px;font-weight:600;display:inline-flex}.app-body{flex:1;min-height:0;display:flex}.app-sidebar{background:var(--brand-dark);color:#fff;flex-direction:column;flex-shrink:0;width:240px;transition:width .3s ease-in-out;display:flex;overflow-y:auto}.app-sidebar.is-collapsed{width:64px}.app-sidebar nav{font-size:var(--fs-table);flex:1;padding:8px 10px;line-height:1.25}.nav-link{border-radius:var(--radius-lg);color:#ffffffbf;border-left:3px solid #0000;align-items:center;gap:10px;min-height:36px;padding:8px 10px;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.nav-link:hover{color:#fff;background:#ffffff1a;text-decoration:none}.nav-link.is-active{border-left-color:var(--brand-light);background:linear-gradient(to right, #3d7cd159, #1b4f9c33, var(--brand-dark));color:#fff;box-shadow:var(--shadow-sm), inset 0 0 0 1px #ffffff1a;font-weight:600}.nav-sublink{border-radius:var(--radius-md);color:#fffc;align-items:center;gap:8px;min-height:32px;margin-left:22px;padding:6px 8px;font-size:12px;text-decoration:none;display:flex}.nav-sublink:hover{color:#fff;background:#ffffff1a;text-decoration:none}.nav-sublink.is-active{color:#fff;background:#ffffff26;font-weight:600}.app-main{scrollbar-width:thin;scrollbar-color:var(--slate-500) #e8ecf0;flex:1;min-width:0;padding:16px 24px;overflow-y:auto}.app-main::-webkit-scrollbar{width:10px}.app-main::-webkit-scrollbar-track{border-radius:var(--radius-full);background:#e8ecf0}.app-main::-webkit-scrollbar-thumb{background:var(--slate-500);border-radius:var(--radius-full);border:2px solid #e8ecf0}.app-main::-webkit-scrollbar-thumb:hover{background:var(--slate-600)}.breadcrumb{color:var(--text-muted);margin-bottom:12px;font-size:12px}.breadcrumb strong{color:var(--text);font-weight:600}.stack>*+*{margin-top:16px}.btn{border-radius:var(--radius-lg);font:inherit;font-size:var(--fs-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-weight:500;line-height:1.33;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn:focus{outline:none}.btn:focus-visible{box-shadow:var(--focus-ring)}.btn:disabled{cursor:not-allowed;opacity:.6}.btn svg{flex-shrink:0;width:14px;height:14px}.btn-primary{background:var(--brand);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--brand-dark)}.btn-secondary{color:var(--text-secondary);border-color:var(--border);background:#fff}.btn-secondary:hover:not(:disabled){color:var(--brand);border-color:#1b4f9c66}.btn-success{background:var(--logo-green);color:#fff;box-shadow:var(--shadow-sm)}.btn-success:hover:not(:disabled){background:var(--logo-green-dark)}.btn-danger{color:var(--logo-red);border-color:var(--logo-red);background:0 0}.btn-danger:hover:not(:disabled){background:#e1252b0d}.btn-ghost{color:var(--brand);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--brand-10)}.icon-btn{border-radius:var(--radius-md);width:28px;height:28px;color:var(--brand);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;transition:background-color .15s,border-color .15s;display:inline-flex}.icon-btn:focus{outline:none}.icon-btn:focus-visible{box-shadow:var(--focus-ring)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn svg{width:14px;height:14px}.icon-btn:hover{background:var(--brand-10)}.icon-btn--success{color:var(--status-success-text);background:#ecfdf5;border-color:#a7f3d0}.icon-btn--success:hover{background:#d1fae5;border-color:#6ee7b7}.icon-btn--danger{color:var(--status-danger-text);background:#fef2f2;border-color:#fecaca}.icon-btn--danger:hover{background:#fee2e2;border-color:#fca5a5}.icon-btn--info{color:var(--brand);background:#eff6ff;border-color:#bfdbfe}.icon-btn--info:hover{background:#dbeafe;border-color:#93c5fd}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl)}.card__header{border-bottom:1px solid var(--border-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;display:flex}.card__title{font-size:var(--fs-table);color:var(--slate-800);margin:0;font-weight:600}.card__body{padding:16px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px;display:flex}.stat-card__label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.025em;color:var(--text-muted);font-weight:500}.stat-card__value{font-size:var(--fs-stat);color:var(--text);font-variant-numeric:tabular-nums;margin-top:6px;font-weight:600}.stat-card__hint{font-size:var(--fs-xs);color:var(--text-muted);margin-top:2px}.stat-card__icon{border-radius:var(--radius-lg);background:var(--brand-10);width:36px;height:36px;color:var(--brand);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.stat-card__icon--success{color:#059669;background:#ecfdf5}.stat-card__icon--warning{color:#d97706;background:#fffbeb}.stat-card__icon--danger{color:#e11d48;background:#fff1f2}.filter-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;padding:12px;display:flex}.filter-bar__fields,.filter-bar__actions{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.filter-field{flex-direction:column;gap:4px;display:flex}.filter-field>label{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.025em;color:var(--text-muted);font-weight:500}.filter-input{border:1px solid var(--border);border-radius:var(--radius-md);font:inherit;font-size:var(--fs-sm);color:var(--text);background:#fff;outline:none;padding:6px 10px;transition:border-color .15s,box-shadow .15s}.filter-input:focus{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand-30)}.field{display:block}.field>label{font-size:var(--fs-body);color:var(--text-secondary);font-weight:500;display:block}.field .required{color:#ef4444;margin-left:2px}.input{border:1px solid var(--border);border-radius:var(--radius-md);width:100%;font:inherit;font-size:var(--fs-body);color:var(--text);background:#fff;outline:none;margin-top:4px;padding:8px 12px;transition:border-color .15s,box-shadow .15s;display:block}.input:focus{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand-30)}.input::placeholder,.filter-input::placeholder{color:var(--text-faint)}.field__hint{font-size:var(--fs-micro);color:var(--text-faint);margin-top:4px}.field__error{font-size:var(--fs-xs);color:#ef4444;margin-top:4px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.table-shell{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);overflow:auto}.table{border-collapse:collapse;width:100%;min-width:100%;font-size:var(--fs-table)}.table thead{background:var(--brand-dark);color:#fff}.table th{text-align:left;white-space:nowrap;border:1px solid #12356666;padding:8px 12px;font-weight:600}.table td{color:var(--text);border:1px solid var(--border);vertical-align:middle;padding:8px 12px}.table tbody tr:nth-child(odd){background:#fff}.table tbody tr:nth-child(2n){background:#f8fafc99}.table tbody tr:hover{background:var(--slate-50)}.table .cell-sub{font-size:var(--fs-xs);color:var(--text-muted)}.table .actions{gap:4px;display:flex}.table-state{text-align:center;font-size:var(--fs-table);color:var(--text-muted);padding:32px 16px}.table-state svg{width:28px;height:28px;color:var(--slate-300);margin:0 auto 8px;display:block}.table-state--error{color:var(--status-danger-text)}.pagination{border-top:1px solid var(--border-soft);font-size:var(--fs-xs);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;display:flex}.pagination__controls{align-items:center;gap:6px;display:flex}.pagination button,.pagination select{border:1px solid var(--border);border-radius:var(--radius-md);height:28px;font:inherit;font-size:var(--fs-xs);color:var(--text-secondary);cursor:pointer;background:#fff;padding:0 8px}.pagination button:hover:not(:disabled){color:var(--brand);border-color:#1b4f9c66}.pagination button:disabled{opacity:.4;cursor:not-allowed}.badge{white-space:nowrap;border-radius:var(--radius-full);font-size:var(--fs-xs);align-items:center;padding:2px 8px;font-weight:500;display:inline-flex}.badge--success{background:var(--status-success-bg);color:var(--status-success-text)}.badge--warning{background:var(--status-warning-bg);color:var(--status-warning-text)}.badge--danger{background:var(--status-danger-bg);color:var(--status-danger-text)}.badge--neutral{background:var(--status-neutral-bg);color:var(--status-neutral-text)}.badge--info{background:var(--status-info-bg);color:var(--status-info-text)}.pill-tabs{border-radius:var(--radius-full);background:var(--slate-100);font-size:var(--fs-xs);flex-wrap:wrap;gap:2px;padding:2px;font-weight:500;display:inline-flex}.pill-tab{border-radius:var(--radius-full);font:inherit;color:var(--slate-600);cursor:pointer;background:0 0;border:0;padding:4px 10px;transition:background-color .15s,color .15s}.pill-tab:hover{color:var(--slate-800);background:#fffc}.pill-tab.is-selected,.pill-tab[aria-selected=true]{color:var(--brand);box-shadow:var(--shadow-sm), 0 0 0 1px #e2e8f0e6;background:#fff}.modal-overlay{z-index:40;background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{border-radius:var(--radius-2xl);width:100%;max-width:768px;max-height:100%;box-shadow:var(--shadow-xl);background:#fff;overflow:auto}.modal--sm{max-width:480px}.modal__header{z-index:1;background:var(--brand);color:#fff;font-size:var(--fs-body);justify-content:space-between;align-items:center;padding:10px 16px;font-weight:500;display:flex;position:sticky;top:0}.modal__close{color:#fff;cursor:pointer;border-radius:var(--radius-md);background:0 0;border:0;padding:2px}.modal__close:hover{background:#ffffff26}.modal__body{padding:16px}.modal__intro{color:var(--slate-600);margin:0 0 12px;font-size:12px}.modal__footer{border-top:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:16px;display:flex}.toast{border-radius:var(--radius-lg);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-lg);font-size:var(--fs-body);background:#fff;align-items:center;gap:8px;padding:10px 14px;display:inline-flex}.toast--success{background:var(--toast-success);color:#fff;border-color:#166534}.toast--error{background:var(--toast-error);color:#fff;border-color:#b91c1c}.public-page{background:var(--cream-soft);height:100%;position:relative;overflow-y:auto}@keyframes orb-float-slow{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(60px,-80px)scale(1.06)}}.login-orb{border-radius:var(--radius-full);pointer-events:none;filter:blur(.7px);background:radial-gradient(circle at 30% 30%,#ffffffe6,#1b4f9c47);animation:18s ease-in-out infinite orb-float-slow;position:absolute}.login-orb--one{width:280px;height:280px;top:-80px;right:-60px}.login-orb--two{width:220px;height:220px;animation-delay:-8s;bottom:-90px;left:-40px}.login-orb--three{opacity:.55;width:160px;height:160px;animation-delay:-16s;top:40%;left:70%}@media (prefers-reduced-motion:reduce){.login-orb{animation:none}}.wordmark{letter-spacing:-.02em;font-weight:800}.wordmark .j{color:var(--logo-blue)}.wordmark .c{color:var(--logo-green)}.wordmark .p{color:var(--logo-red)}.wordmark .ltd{color:var(--logo-gold);margin-left:2px;font-weight:600}:root{--row-alarm-bg:#fff5f5;--row-warning-bg:#fffaf0;--chart-1:var(--brand);--chart-2:var(--logo-green)}.nowrap{white-space:nowrap}.strong{font-weight:600}.small{font-size:var(--fs-xs)}.text-danger{color:var(--status-danger-text)}.text-success{color:var(--status-success-text)}.text-warning{color:var(--status-warning-text)}.grow{flex:1}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row--top{align-items:flex-start}.row--between{justify-content:space-between}.stack-sm>*+*{margin-top:8px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.grid-2>*,.grid-3>*{margin-top:0!important}@media (width<=1100px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=860px){.grid-2,.grid-3{grid-template-columns:minmax(0,1fr)}}.section-title{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.025em;color:var(--text-muted);margin:0 0 8px;font-weight:500}.divider{border:0;border-top:1px solid var(--border-soft);margin:12px 0}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}@media (prefers-reduced-motion:reduce){.spin{animation:none}}:focus-visible{box-shadow:var(--focus-ring);outline:none}.topbar__left{align-items:center;gap:8px;height:100%;padding-left:16px;display:flex}.topbar__right{align-items:center;gap:12px;display:flex}.topbar__toggle svg{width:16px;height:16px}.logo{color:var(--text);align-items:center;gap:8px;text-decoration:none;display:inline-flex}.logo:hover{text-decoration:none}.logo__mark{border-radius:var(--radius-lg);background:var(--brand);color:#fff;letter-spacing:.02em;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:600;display:inline-flex}.logo__text{letter-spacing:-.01em;color:var(--brand-dark);font-size:15px;font-weight:600}.logo__go{color:var(--logo-green)}.live-chip{border-radius:var(--radius-full);background:var(--slate-100);color:var(--text-muted);font-size:var(--fs-xs);align-items:center;gap:6px;padding:3px 10px;font-weight:500;display:inline-flex}.live-chip__dot{border-radius:var(--radius-full);background:var(--slate-400);width:7px;height:7px}.live-chip.is-on{background:var(--status-success-bg);color:var(--status-success-text)}.live-chip.is-on .live-chip__dot{background:var(--logo-green)}.topbar__bell{position:relative}.topbar__bell svg{width:16px;height:16px}.topbar__count,.nav-count{border-radius:var(--radius-full);background:var(--logo-red);color:#fff;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}.topbar__count{position:absolute;top:-4px;right:-6px}.nav-count{margin-left:auto}.user-menu{position:relative}.user-menu__button{border-radius:var(--radius-lg);font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:4px 6px;display:inline-flex}.user-menu__button:hover{background:var(--slate-100)}.user-menu__button>svg{width:14px;height:14px;color:var(--text-muted)}.user-menu__name{font-size:var(--fs-sm);flex-direction:column;align-items:flex-start;font-weight:500;line-height:1.2;display:flex}.user-menu__role{font-size:var(--fs-micro);color:var(--text-muted);font-weight:400}.user-menu__panel{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);min-width:220px;box-shadow:var(--shadow-lg);padding:6px;position:absolute;top:calc(100% + 6px);right:0}.user-menu__who{border-bottom:1px solid var(--border-soft);font-size:var(--fs-sm);flex-direction:column;align-items:flex-start;gap:4px;padding:8px 10px 10px;display:flex}.user-menu__who span:not(.badge){color:var(--text-muted);font-size:var(--fs-xs)}.user-menu__item{border-radius:var(--radius-md);width:100%;font:inherit;font-size:var(--fs-sm);color:var(--logo-red);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:8px;margin-top:4px;padding:8px 10px;display:flex}.user-menu__item:hover{background:#e1252b0d}.user-menu__item svg{width:14px;height:14px}@media (width<=720px){.user-menu__name,.logo__text,.app-topbar__chip,.live-chip{display:none}}.nav-group+.nav-group{margin-top:10px}.nav-group__title{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.025em;color:#ffffff73;white-space:nowrap;min-height:22px;padding:6px 10px 4px;font-weight:500}.nav-group__rule{background:#ffffff26;height:1px;margin-top:6px;display:block}.nav-link+.nav-link{margin-top:2px}.nav-link__icon{flex-shrink:0;width:16px;height:16px}.nav-link__label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nav-empty{font-size:var(--fs-xs);color:#fff9;padding:12px}.app-sidebar.is-collapsed nav{padding:8px 6px}.app-sidebar.is-collapsed .nav-link{justify-content:center;gap:0;padding:8px 0;position:relative}.app-sidebar.is-collapsed .nav-link__label{display:none}.app-sidebar.is-collapsed .nav-count{position:absolute;top:2px;right:4px}@media (width<=720px){.app-sidebar:not(.is-collapsed){width:200px}}.breadcrumb a{color:var(--text-muted)}.breadcrumb a:hover{color:var(--brand)}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.page-header__text{min-width:0}.page-title{color:var(--slate-900);flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:18px;font-weight:600;display:flex}.page-sub{font-size:var(--fs-sm);color:var(--text-muted);margin-top:2px}.page-header__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.alert{border-radius:var(--radius-lg);font-size:var(--fs-table);border:1px solid #0000;align-items:center;gap:8px;padding:8px 12px;display:flex}.alert>svg{flex-shrink:0;width:16px;height:16px}.alert__text{flex:1}.alert--error{background:var(--status-danger-bg);color:var(--status-danger-text);border-color:#fecaca}.alert--warning{background:var(--status-warning-bg);color:var(--status-warning-text);border-color:#fde4b8}.alert--info{background:var(--status-info-bg);color:var(--status-info-text);border-color:#c9dbf3}.toast-stack{z-index:60;flex-direction:column;align-items:flex-end;gap:8px;max-width:min(420px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast svg{flex-shrink:0;width:16px;height:16px}.toast__close{border-radius:var(--radius-md);color:inherit;cursor:pointer;opacity:.8;background:0 0;border:0;margin-left:4px;padding:2px}.toast__close:hover{opacity:1;background:#ffffff26}.toast__close svg{width:14px;height:14px}.alarm-banner{border-radius:var(--radius-xl);background:var(--status-danger-bg);color:var(--status-danger-text);border:1px solid #f8b4b6;margin-bottom:12px;padding:10px 14px}.alarm-banner__head{font-size:var(--fs-table);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.alarm-banner__icon{width:16px;height:16px;animation:1.6s ease-in-out infinite ring}@keyframes ring{0%,to{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-12deg)}30%{transform:rotate(0)}}@media (prefers-reduced-motion:reduce){.alarm-banner__icon{animation:none}}.alarm-banner__actions{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}.alarm-banner__list{font-size:var(--fs-sm);color:var(--slate-700);flex-wrap:wrap;gap:4px 16px;margin:6px 0 0;padding:0;list-style:none;display:flex}.alarm-banner__list li{align-items:center;gap:6px;display:inline-flex}.alarm-banner__sos{color:var(--status-danger-text);font-weight:600}.card__actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.card .table-shell{border-radius:0 0 var(--radius-xl) var(--radius-xl);border:0}.card .card__body>.table-shell{border:1px solid var(--border);border-radius:var(--radius-xl)}.stat-card--link{color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s}.stat-card--link:hover{box-shadow:var(--shadow-sm);border-color:#1b4f9c66;text-decoration:none}.stat-card__icon svg{width:18px;height:18px}.kv{font-size:var(--fs-table);grid-template-columns:minmax(120px,max-content) 1fr;margin:0;display:grid}.kv__row{display:contents}.kv dt,.kv dd{border-bottom:1px solid var(--border-soft);padding:6px 0}.kv dt{color:var(--text-muted);padding-right:16px}.kv dd{color:var(--text);overflow-wrap:anywhere;min-width:0;margin:0}.kv .kv__row:last-child dt,.kv .kv__row:last-child dd{border-bottom:0}.filter-field__label{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.025em;color:var(--text-muted);font-weight:500}.filter-input{min-height:30px}select.filter-input{padding-right:24px}.filter-field--wide .filter-input{width:260px}.filter-check{min-height:30px;font-size:var(--fs-sm);color:var(--text-secondary);align-items:center;gap:6px;display:inline-flex}.filter-bar .btn{min-height:30px}.field{min-width:0}.field__label{font-size:var(--fs-table);color:var(--text-secondary);font-weight:500;display:block}.field .field__hint,.field .field__error{display:block}.field textarea.input{resize:vertical;min-height:60px}.form-stack>*+*{margin-top:12px}.form-grid .span-2{grid-column:1/-1}.form-grid--3{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.check{font-size:var(--fs-table);color:var(--text-secondary);align-items:center;gap:6px;display:inline-flex}.check input{width:14px;height:14px;accent-color:var(--brand);margin:0}.check-row{flex-wrap:wrap;gap:8px 16px;margin-top:6px;display:flex}.chip-row{flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}.chip{border:1px solid var(--border);border-radius:var(--radius-full);font:inherit;font-size:var(--fs-xs);color:var(--text-secondary);cursor:pointer;background:#fff;padding:3px 10px}.chip:hover{color:var(--brand);border-color:#1b4f9c66}.chip.is-on{background:var(--brand-10);border-color:var(--brand-30);color:var(--brand)}.confirm-message{font-size:var(--fs-table);color:var(--text-secondary)}.form-actions{border-top:1px solid var(--border-soft);justify-content:flex-end;gap:8px;margin-top:16px;padding-top:12px;display:flex}.modal--lg{max-width:1040px}.modal__body .table-shell{max-height:380px}.modal__body .table thead{z-index:1;position:sticky;top:0}.table-shell.is-refreshing table{opacity:.65;transition:opacity .15s}.table tr.is-clickable{cursor:pointer}.table tr.is-clickable:hover{background:var(--cream-soft)}.table tbody tr.row-alarm{background:var(--row-alarm-bg)}.table tbody tr.row-alarm td:first-child{box-shadow:inset 3px 0 0 var(--logo-red)}.table tbody tr.row-warning{background:var(--row-warning-bg)}.table tbody tr.row-warning td:first-child{box-shadow:inset 3px 0 0 var(--status-warning-text)}.table tbody tr.is-selected{background:var(--brand-10)}.table td.nowrap{white-space:nowrap}.table .actions{flex-wrap:nowrap}.table .badge+.badge{margin-left:4px}.table .cell-sub+.cell-sub{margin-top:1px}.table-shell .table-state .btn{display:inline-flex}.table-state svg.spin{animation:1s linear infinite spin}.table--compact td,.table--compact th{padding:6px 10px}.esc-icon{border-radius:var(--radius-full);justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.esc-icon svg{width:13px;height:13px}.esc-icon--alarm{background:var(--status-danger-bg);color:var(--status-danger-text)}.esc-icon--warning{background:var(--status-warning-bg);color:var(--status-warning-text)}.fare{border-collapse:collapse;width:100%;font-size:var(--fs-table)}.fare td{border-bottom:1px solid var(--border-soft);padding:6px 0}.fare td:last-child{text-align:right;font-variant-numeric:tabular-nums}.fare tr.is-muted td{color:var(--text-muted)}.fare tr.is-total td{border-bottom:0;border-top:1px solid var(--border);color:var(--text);padding-top:8px;font-weight:600}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:10px;display:grid}.photo{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--slate-50);color:var(--text);flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.photo:hover{border-color:#1b4f9c66;text-decoration:none}.photo img{aspect-ratio:4/3;object-fit:cover;background:var(--slate-100);width:100%;display:block}.photo__missing{aspect-ratio:4/3;color:var(--text-faint);font-size:var(--fs-xs);background:repeating-linear-gradient(45deg, var(--slate-50), var(--slate-50) 6px, var(--slate-100) 6px, var(--slate-100) 12px);justify-content:center;align-items:center;display:flex}.photo__cap{font-size:var(--fs-xs);justify-content:space-between;gap:6px;padding:5px 8px;display:flex}.photo__cap strong{font-weight:600}.photo__cap span{color:var(--text-muted)}.doc-file{aspect-ratio:4/3;color:var(--text-muted);font-size:var(--fs-xs);justify-content:center;align-items:center;gap:6px;display:flex}.doc-file svg{width:20px;height:20px}.avatar-img{border-radius:var(--radius-lg);object-fit:cover;border:1px solid var(--border);width:64px;height:64px}.avatar--lg{border-radius:var(--radius-lg);width:64px;height:64px;font-size:20px}.cap-matrix{border-collapse:collapse;font-size:var(--fs-sm)}.cap-matrix th,.cap-matrix td{border:1px solid var(--border);text-align:center;padding:5px 10px}.cap-matrix th{background:var(--slate-50);color:var(--text-secondary);font-weight:500}.cap-matrix th:first-child,.cap-matrix td:first-child{text-align:left}.cap-yes{color:var(--status-success-text)}.cap-no{color:var(--slate-300)}.cap-matrix svg{vertical-align:middle;width:14px;height:14px}.timeline{margin:0;padding:0 0 0 4px;list-style:none}.timeline li{border-left:2px solid var(--border);padding:0 0 12px 18px;position:relative}.timeline li:last-child{border-left-color:#0000;padding-bottom:0}.timeline li:before{content:"";border-radius:var(--radius-full);border:2px solid var(--slate-400);background:#fff;width:10px;height:10px;position:absolute;top:3px;left:-6px}.timeline li.src-Admin:before{border-color:var(--brand)}.timeline li.src-Driver:before{border-color:var(--logo-green)}.timeline li.src-Customer:before{border-color:var(--brand-light)}.timeline__head{font-size:var(--fs-table);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.timeline__time{font-size:var(--fs-xs);color:var(--text-muted);margin-left:auto}.timeline__note{font-size:var(--fs-sm);color:var(--text-secondary);margin-top:2px}.stars{color:var(--logo-gold);vertical-align:middle;gap:1px;display:inline-flex}.stars svg{width:13px;height:13px}.stars .is-off{color:var(--slate-300)}.chart-box{width:100%;height:320px}.chart-toolbar{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:12px;display:flex}.content-editor{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}@media (width<=960px){.content-editor{grid-template-columns:minmax(0,1fr)}}.content-editor textarea.input{min-height:420px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.55}.content-preview{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--cream-soft);min-height:420px;max-height:620px;font-size:var(--fs-body);color:var(--slate-800);padding:16px;line-height:1.55;overflow:auto}.content-preview h3{color:var(--brand-dark);margin:14px 0 6px;font-size:15px;font-weight:600}.content-preview h3:first-child{margin-top:0}.content-preview p{margin:0 0 8px}.content-preview ul{margin:0 0 8px;padding-left:20px}.content-preview li{margin:2px 0}.content-preview .contact-line{gap:8px;margin:4px 0;display:flex}.content-preview .contact-line span{min-width:64px;color:var(--text-muted);text-transform:capitalize}.content-list{margin:0;padding:0;list-style:none}.content-list button{width:100%;font:inherit;text-align:left;cursor:pointer;border:0;border-left:3px solid #0000;border-bottom:1px solid var(--border-soft);background:0 0;flex-direction:column;align-items:flex-start;padding:8px 12px;display:flex}.content-list button:hover{background:var(--slate-50)}.content-list button.is-active{border-left-color:var(--brand);background:var(--brand-10)}.content-list strong{font-size:var(--fs-table);font-weight:600}.content-list span{font-size:var(--fs-xs);color:var(--text-muted)}.content-layout{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:16px;display:grid}.content-layout>*{margin-top:0!important}@media (width<=960px){.content-layout{grid-template-columns:minmax(0,1fr)}}.date-chips{flex-wrap:wrap;gap:4px;display:flex}.date-chip{border-radius:var(--radius-full);background:var(--slate-100);font-size:var(--fs-xs);color:var(--text-secondary);white-space:nowrap;padding:2px 8px}.public-page{overflow-x:hidden}.login-shell{z-index:1;justify-content:center;align-items:center;min-height:100%;padding:24px 16px;display:flex;position:relative}.login-card{border:1px solid var(--border);border-radius:var(--radius-2xl);width:100%;max-width:400px;box-shadow:var(--shadow-xl);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffeb;padding:28px}.login-card .logo{margin-bottom:20px}.login-card h1{margin:0;font-size:18px;font-weight:600}.login-card .page-sub{margin-bottom:20px}.login-card .btn{width:100%;font-size:var(--fs-table);padding:9px 12px}.login-foot{text-align:center;font-size:var(--fs-xs);color:var(--text-muted);margin-top:16px}.password-wrap{position:relative}.password-wrap .input{padding-right:40px}.password-wrap .icon-btn{margin-top:2px;position:absolute;top:50%;right:6px;transform:translateY(-50%)}@media (width<=720px){.app-main{padding:12px 16px}.filter-field--wide .filter-input,.filter-bar__fields,.filter-bar__actions{width:100%}}
