/* ChargeNTrack workspace refresh 2.1.0 — persistent sidebar; screen styles only. */
@media screen {
  :root {
    --ct-bg:#f5f7fb; --ct-surface:#fff; --ct-surface-2:#f8fafc;
    --ct-text:#17283d; --ct-muted:#596b80; --ct-border:#e1e7ef;
    --ct-border-strong:#c7d2df; --ct-primary:#315bdc; --ct-primary-hover:#2447b5;
    --ct-primary-ink:#fff; --ct-accent-soft:#edf2ff;
    --ct-success:#177047; --ct-warning:#8b5b0d; --ct-danger:#b32c3b;
    --ct-shadow:0 1px 3px #17283d05; --ct-shadow-hover:0 6px 20px #17283d0b;
    --ct-focus:0 0 0 3px #315bdc26; --ct-sidebar:#112238;
    --ct-sidebar-text:#b5c3d6; --ct-sidebar-active:#243b5b;
    --background:var(--ct-bg); --surface:var(--ct-surface);
    --surface-soft:var(--ct-surface-2); --text:var(--ct-text); --muted:var(--ct-muted);
    --border:var(--ct-border); --primary:var(--ct-primary); --primary-hover:var(--ct-primary-hover);
    --danger:var(--ct-danger); --success:var(--ct-success); --warning:var(--ct-warning);
    --shadow:var(--ct-shadow); color-scheme:light;
  }
  html[data-theme="dark"] {
    --ct-bg:#101923; --ct-surface:#172330; --ct-surface-2:#1d2b3a;
    --ct-text:#edf3fc; --ct-muted:#b0bfd1; --ct-border:#2b3c4e;
    --ct-border-strong:#445971; --ct-primary:#a2baff; --ct-primary-hover:#bfd0ff;
    --ct-primary-ink:#102448; --ct-accent-soft:#243650;
    --ct-success:#80d6a9; --ct-warning:#edc67d; --ct-danger:#ffa1ab;
    --ct-shadow:0 1px 3px #00000014; --ct-shadow-hover:0 6px 20px #00000024;
    --ct-focus:0 0 0 3px #a2baff30; --ct-sidebar:#0d1726;
    --ct-sidebar-text:#b5c3d6; --ct-sidebar-active:#213650;
    --background:var(--ct-bg); --surface:var(--ct-surface);
    --surface-soft:var(--ct-surface-2); --text:var(--ct-text); --muted:var(--ct-muted);
    --border:var(--ct-border); --primary:var(--ct-primary); --primary-hover:var(--ct-primary-hover);
    --danger:var(--ct-danger); --success:var(--ct-success); --warning:var(--ct-warning);
    --shadow:var(--ct-shadow); color-scheme:dark;
  }
  html { background:var(--ct-bg); scroll-padding-top:90px; }
  body { background:var(--ct-bg); color:var(--ct-text); font:14px/1.55 "Segoe UI",Inter,ui-sans-serif,system-ui,-apple-system,sans-serif; -webkit-font-smoothing:antialiased; }
  *,*::before,*::after { box-sizing:border-box; }
  h1,h2,h3,h4 { color:var(--ct-text); }
  a { color:var(--ct-primary); text-underline-offset:3px; }
  a:hover { color:var(--ct-primary-hover); }
  :where(a,button,input,select,textarea,summary):focus-visible { outline:3px solid var(--ct-primary); outline-offset:3px; }
  :where(a,button,input,select,textarea)[aria-disabled="true"] { cursor:not-allowed; }
  button:disabled,.btn:disabled,input:disabled,select:disabled,textarea:disabled { cursor:not-allowed; opacity:.65; }
  .ct-icon { width:20px; height:20px; flex:none; display:inline-block; vertical-align:middle; }
  .ct-sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; overflow:hidden!important; clip-path:inset(50%)!important; white-space:nowrap!important; }
  .ct-skip-link { position:fixed; z-index:1000; top:12px; left:12px; padding:12px 18px; border-radius:8px; background:var(--ct-surface); color:var(--ct-text); transform:translateY(-160%); }
  .ct-skip-link:focus { transform:none; }
  .app-shell,.page-grid,.profile-grid { min-width:0; }
  .topbar { position:sticky; z-index:100; top:0; min-height:74px; padding:14px 32px; gap:18px; border-bottom:1px solid var(--ct-border); background:var(--ct-surface); box-shadow:none; align-items:center; }
  .topbar-brand { font-size:17px; font-weight:700; letter-spacing:-.025em; color:var(--ct-text); min-width:0; }
  .topbar-mark { width:34px; height:34px; border:0; border-radius:9px; background:#315bdc; color:#fff; font-size:12px; }
  .topbar-actions { gap:10px; min-width:0; }
  .topbar-user { color:var(--ct-muted); font-size:12px; }
  .content { width:min(1260px,calc(100% - 64px)); min-width:0; padding:34px 0 52px; }
  .page-heading { gap:18px; margin-bottom:28px; align-items:center; }
  .page-heading h1,.content>h1 { margin:0 0 7px; font-size:clamp(25px,2.3vw,32px); line-height:1.2; font-weight:700; letter-spacing:-.035em; }
  .page-heading p,.content>p:first-of-type { max-width:64ch; color:var(--ct-muted); font-size:14px; line-height:1.65; }
  .company-pill { max-width:100%; padding:9px 12px; border-radius:8px; font-size:11px; font-weight:600; letter-spacing:0; white-space:normal; overflow-wrap:anywhere; }
  .module-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
  .module-card,.dashboard-card,.action-card { position:relative; padding:24px!important; border:1px solid var(--ct-border)!important; border-radius:12px!important; background:var(--ct-surface)!important; color:var(--ct-text); box-shadow:var(--ct-shadow)!important; text-decoration:none; transition:border-color .15s,box-shadow .15s; }
  .module-card { min-height:190px; }
  .module-card:hover,.dashboard-card:hover,.action-card:hover { color:var(--ct-text); transform:none; border-color:var(--ct-primary)!important; box-shadow:var(--ct-shadow-hover)!important; }
  .module-card:focus-visible { outline:3px solid var(--ct-primary); outline-offset:3px; }
  .module-icon { width:40px; height:40px; margin-bottom:19px; border-radius:10px; background:var(--ct-accent-soft); color:var(--ct-primary); font-size:12px; font-weight:700; }
  .module-card h2 { margin:0 0 8px; padding-right:16px; font-size:16px; font-weight:650; letter-spacing:-.015em; }
  .module-card p { max-width:42ch; margin:0; font-size:13px; line-height:1.6; color:var(--ct-muted); }
  .ct-card-arrow { position:absolute; right:24px; top:32px; color:var(--ct-muted); }
  .ct-card-arrow .ct-icon { width:17px; height:17px; }
  .status-panel,.panel,.card,.profile-panel,.report-card,.info-card,.security-card,.health-card,.maintenance-card,.contract-card,.audit-check,.ops-card,.wizard-card { border-color:var(--ct-border)!important; border-radius:12px!important; background:var(--ct-surface)!important; box-shadow:var(--ct-shadow)!important; }
  .status-panel { margin-top:26px; padding:24px; }
  .status-panel h2 { font-size:15px; font-weight:650; margin:0 0 18px; }
  .status-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 32px; }
  .status-row { min-width:0; padding:0 0 12px; border-bottom:1px solid var(--ct-border); font-size:13px; gap:12px; }
  .status-row strong { text-align:right; overflow-wrap:anywhere; font-weight:600; }
  .status-row:last-child { padding-bottom:12px; border-bottom:1px solid var(--ct-border); }
  .btn,button.btn,input[type="submit"].btn,input[type="button"].btn { min-height:40px; padding:9px 14px; gap:7px; border:1px solid var(--ct-border-strong); border-radius:8px; font-size:13px; font-weight:600; line-height:1.35; box-shadow:none; white-space:normal; }
  .btn-primary { border-color:var(--ct-primary)!important; background:var(--ct-primary)!important; color:var(--ct-primary-ink)!important; }
  .btn-primary:hover { border-color:var(--ct-primary-hover)!important; background:var(--ct-primary-hover)!important; color:var(--ct-primary-ink)!important; }
  .btn-secondary { border-color:var(--ct-border)!important; background:var(--ct-surface)!important; color:var(--ct-text)!important; }
  .btn-secondary:hover { background:var(--ct-surface-2)!important; border-color:var(--ct-border-strong)!important; }
  .btn-danger,.danger-button,.delete-button { border-color:#b32c3b!important; background:#b32c3b!important; color:#fff!important; }
  .theme-button { width:40px; height:40px; min-width:40px; padding:0; }
  .form-group { margin-bottom:19px; }
  .form-group>label,.form-label,label.form-label { margin-bottom:7px; color:var(--ct-text); font-size:13px; font-weight:600; }
  .form-control,input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),select,textarea { min-height:44px; padding:10px 12px; border:1px solid var(--ct-border-strong); border-radius:8px; background:var(--ct-surface); color:var(--ct-text); font:inherit; font-size:14px; }
  .form-control:focus,input:focus,select:focus,textarea:focus { border-color:var(--ct-primary); box-shadow:var(--ct-focus); }
  input[type="checkbox"],input[type="radio"] { accent-color:var(--ct-primary); }
  input[readonly],input:disabled,select:disabled,textarea[readonly],textarea:disabled { background:var(--ct-surface-2); color:var(--ct-muted); }
  input::placeholder,textarea::placeholder { color:var(--ct-muted); opacity:.9; }
  textarea { min-height:96px; }
  .table-wrap,.table-responsive { max-width:100%; overflow-x:auto; border-radius:10px; }
  table th,.table th,.audit-table th,.ops-table th,.contract-table th { padding:13px 16px!important; border-bottom:1px solid var(--ct-border)!important; background:var(--ct-surface-2); color:var(--ct-muted)!important; font-size:12px!important; font-weight:600!important; text-transform:none; letter-spacing:0!important; }
  table td,.table td,.audit-table td,.ops-table td,.contract-table td { padding:15px 16px!important; border-bottom:1px solid var(--ct-border)!important; color:var(--ct-text); font-size:13px; vertical-align:middle; }
  table tbody tr:hover { background:var(--ct-surface-2); }
  td.text-end,.money,.currency,.amount { font-variant-numeric:tabular-nums; }
  .badge,.status-badge,.status-pill { min-height:26px; padding:4px 9px; font-size:11px; letter-spacing:0; font-weight:600; }
  .badge-success,.status-active { border-color:color-mix(in srgb,var(--ct-success) 24%,transparent); background:color-mix(in srgb,var(--ct-success) 9%,var(--ct-surface)); color:var(--ct-success); }
  .badge-warning,.status-pending { border-color:color-mix(in srgb,var(--ct-warning) 24%,transparent); background:color-mix(in srgb,var(--ct-warning) 9%,var(--ct-surface)); color:var(--ct-warning); }
  .alert { border-radius:9px; padding:13px 16px; box-shadow:none; }
  .alert-error,.alert-danger { color:var(--ct-danger); background:color-mix(in srgb,var(--ct-danger) 7%,var(--ct-surface)); }
  .alert-success { color:var(--ct-success); background:color-mix(in srgb,var(--ct-success) 7%,var(--ct-surface)); }
  .office-work-option-link { border-radius:12px!important; box-shadow:var(--ct-shadow)!important; }
  .office-work-option-title { font-size:16px!important; font-weight:650!important; }
  .ct-sidebar { position:fixed; z-index:220; inset:0 auto 0 0; display:flex; flex-direction:column; width:244px; padding:26px 16px 20px; background:var(--ct-sidebar); color:var(--ct-sidebar-text); border-right:1px solid #ffffff09; }
  .ct-sidebar-heading { display:flex; align-items:center; gap:10px; padding:0 9px 27px; color:#f4f7ff; font-size:18px; font-weight:650; letter-spacing:-.035em; }
  .ct-sidebar-heading .topbar-mark { width:32px; height:32px; }
  .ct-sidebar-caption { margin:0 12px 12px; color:#91a4bd; font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
  .ct-sidebar nav { min-height:0; overflow:auto; scrollbar-width:thin; }
  .ct-nav-group { display:grid; gap:4px; margin-bottom:23px; }
  .ct-nav-group h2 { margin:0 12px 6px; color:#91a4bd; font-size:10px; letter-spacing:.12em; text-transform:uppercase; font-weight:600; }
  .ct-nav-link { display:flex; align-items:center; gap:11px; min-height:42px; padding:10px 12px; border-radius:7px; color:var(--ct-sidebar-text); text-decoration:none; font-size:13px; line-height:1.4; }
  .ct-nav-link .ct-icon { width:18px; height:18px; opacity:.9; }
  .ct-nav-link:hover { color:#fff; background:#ffffff0a; }
  .ct-nav-link:focus-visible { outline:2px solid #b2c7ff; outline-offset:2px; }
  .ct-nav-link[aria-current="page"] { background:var(--ct-sidebar-active); color:#fff; box-shadow:inset 3px 0 #8facff; }
  .ct-sidebar-footer { margin-top:auto; padding:20px 12px 0; border-top:1px solid #ffffff16; font-size:11px; color:#91a4bd; }
  .ct-with-nav { margin-left:244px; }
  body.ct-with-nav { width:auto!important; min-width:0; }
  .ct-with-nav .topbar { justify-content:space-between; }
  .ct-with-nav .topbar-brand { font-size:14px; font-weight:600; letter-spacing:0; }
  .ct-with-nav .topbar-brand>.topbar-mark { display:none; }
  .btn.ct-menu-button,.ct-drawer-close { display:none; }
  .ct-nav-backdrop { display:none; }
  .login-page { min-height:100vh; min-height:100svh; grid-template-columns:minmax(360px,1fr) minmax(440px,.88fr); }
  .login-brand { position:relative; overflow:hidden; align-items:flex-start; justify-content:center; padding:72px clamp(40px,6vw,96px); background:#112238; }
  .login-brand::before { content:""; position:absolute; width:600px; height:600px; right:-260px; bottom:-360px; border:1px solid #ffffff12; border-radius:50%; box-shadow:0 0 0 70px #ffffff03,0 0 0 140px #ffffff03; pointer-events:none; }
  .login-brand .brand-mark { width:46px; height:46px; margin-bottom:44px; border:1px solid #ffffff20; border-radius:12px; background:#315bdc; color:#fff; font-size:18px; box-shadow:0 4px 12px #00000012; }
  .ct-login-kicker { margin:0 0 14px; color:#b2c7ff; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.13em; }
  .login-brand h1 { margin:0 0 18px; color:#f4f7ff; font-size:clamp(36px,4.2vw,58px); line-height:1.12; letter-spacing:-.045em; font-weight:650; }
  .login-brand p { max-width:37ch; color:#b6c5d7; font-size:16px; line-height:1.8; }
  .ct-login-footnote { margin-top:42px; padding-top:24px; border-top:1px solid #ffffff20; color:#b6c5d7; font-size:12px; }
  .login-panel { position:relative; justify-content:center; padding:80px 48px; background:var(--ct-surface); }
  .login-form { width:100%; max-width:370px; }
  .login-form h2 { margin:0 0 8px; font-size:29px; font-weight:650; letter-spacing:-.035em; }
  .login-form>p { margin:0 0 32px; color:var(--ct-muted); font-size:14px; }
  .login-form .form-control { min-height:48px; }
  .login-form .btn-primary { width:100%; min-height:48px; margin-top:7px; }
  .ct-login-theme { position:absolute; top:26px; right:28px; }
  .ct-preview-bar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:10px 24px; border-bottom:1px solid var(--ct-border); background:var(--ct-surface); color:var(--ct-muted); font-size:12px; }
  .ct-preview-bar a { margin-left:16px; }
  .ct-preview .ct-sidebar { top:43px; }
  .ct-preview .topbar { top:0; }
  .ct-preview-note { padding:12px 16px; border:1px dashed var(--ct-border-strong); border-radius:8px; color:var(--ct-muted); font-size:12px; margin:0 0 24px; }
  @media(min-width:1500px) { .module-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
  @media(max-width:1199px) { .module-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .content { width:calc(100% - 48px); } .topbar { padding-inline:24px; } }
  @media(max-width:1000px) { .topbar-user { display:none; } .page-heading { align-items:flex-start; flex-direction:column; } .status-list { grid-template-columns:1fr; } .page-grid { grid-template-columns:minmax(0,1fr)!important; } }
  @media(max-width:900px) {
    .ct-with-nav { margin-left:0; }
    .ct-sidebar { top:0; width:min(300px,calc(100vw - 48px)); transform:translateX(-105%); visibility:hidden; transition:transform .18s,visibility .18s; }
    .ct-preview .ct-sidebar { top:0; }
    .ct-nav-open .ct-sidebar { transform:translateX(0); visibility:visible; }
    .ct-nav-open { overflow:hidden; }
    .ct-nav-open .ct-nav-backdrop { position:fixed; z-index:210; inset:0; display:block; width:100%; height:100%; border:0; background:#08142599; }
    .btn.ct-menu-button,.ct-drawer-close { display:inline-flex; }
    .ct-menu-button { flex:none; width:40px; padding:8px; }
    .ct-floating-menu { position:fixed; z-index:150; top:16px; right:16px; box-shadow:var(--ct-shadow-hover); }
    .ct-drawer-close { position:absolute; top:20px; right:12px; width:32px; height:32px; align-items:center; justify-content:center; border:1px solid #ffffff30; border-radius:6px; background:transparent; color:#fff; cursor:pointer; }
    .ct-sidebar-heading { padding-right:26px; }
    .ct-with-nav .topbar-brand { margin-right:auto; }
    .topbar { flex-direction:row; align-items:center; flex-wrap:wrap; min-height:68px; gap:10px; }
    .topbar-actions { margin-left:auto; }
    .login-page { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
    .login-brand { padding:54px 32px; }
    .login-brand h1 { font-size:36px; }
    .login-panel { padding:80px 32px; }
  }
  @media(max-width:620px) {
    .content { width:calc(100% - 32px); padding-top:24px; }
    .topbar { padding:12px 16px; }
    .ct-with-nav .topbar-brand { font-size:13px; }
    .topbar-actions { gap:6px; }
    .topbar .btn { min-height:40px; }
    .module-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
    .module-card { min-height:0; padding:20px!important; }
    .module-icon { margin-bottom:16px; }
    .ct-card-arrow { right:20px; top:28px; }
    .panel,.card,.profile-panel,.report-card,.health-card,.security-card,.maintenance-card,.contract-card,.audit-check,.ops-card,.wizard-card { padding:18px!important; }
    .company-pill { font-size:11px; }
    .page-heading h1,.content>h1 { font-size:27px; }
    .login-page { display:flex; flex-direction:column; }
    .login-brand { min-height:0; padding:30px 24px; }
    .login-brand .brand-mark { width:36px; height:36px; margin-bottom:22px; font-size:13px; }
    .login-brand h1 { font-size:32px; margin-bottom:12px; }
    .login-brand p { font-size:14px; line-height:1.65; }
    .ct-login-kicker { margin-bottom:10px; }
    .ct-login-footnote { display:none; }
    .login-panel { flex:1; padding:72px 24px 40px; }
    .ct-login-theme { top:18px; right:24px; }
    .login-form { max-width:420px; }
    .ct-preview-bar { padding:10px 16px; }
    .ct-preview-bar a { margin-left:10px; }
  }
  @media(prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none!important; scroll-behavior:auto!important; } }
  @media(forced-colors:active) { .ct-nav-link[aria-current="page"] { outline:2px solid Highlight; } .module-card { border:1px solid CanvasText!important; } }
}
@media print { [data-ct-ui],.ct-preview-bar,.ct-preview-note { display:none!important; } }
