/* ============================================================================
   VMaint Admin — iOR Style design system (ported from iOR_Style_DesignSystem.md)
   "editorial paper × soft instrument panel" · default dark, light opt-out
   ============================================================================ */
:root {
    --cal-primary:#1B4F72; --cal-primary-dark:#154360; --cal-primary-darker:#0E2F4D;
    --cal-primary-light:#21618C; --cal-primary-lighter:#2471A3;
    --cal-primary-wash:rgba(27,79,114,.08); --cal-primary-wash-2:rgba(27,79,114,.12);
    --cal-secondary:#148F77; --cal-secondary-light:#1ABC9C; --cal-secondary-wash:rgba(20,143,119,.08);

    --cal-success:#1E824C; --cal-success-wash:rgba(30,130,76,.08);
    --cal-warning:#D35400; --cal-warning-wash:rgba(211,84,0,.08);
    --cal-error:#B03A2E;   --cal-error-wash:rgba(176,58,46,.08);
    --cal-info:#2471A3;    --cal-info-wash:rgba(36,113,163,.08);

    --cal-canvas:#EFEADF; --cal-background:#F4EFE4; --cal-surface:#FBF7EE;
    --cal-surface-bright:#FFFCF5; --cal-surface-soft:#F7F2E6; --cal-surface-hover:#EDE5D2;
    --cal-surface-sunk:#E7E0CC; --cal-stripe-bg:rgba(27,79,114,.022);

    --cal-ink:#1C2833; --cal-ink-soft:#3E5060; --cal-ink-muted:#5D6D7E;
    --cal-ink-faint:#AEB6BF; --cal-ink-hint:#CAD1D7; --cal-ink-inverse:#FFFFFF;

    --cal-border-subtle:rgba(74,54,28,.09); --cal-border-medium:rgba(74,54,28,.14);
    --cal-border-strong:rgba(74,54,28,.24); --cal-border:var(--cal-border-medium);
    --cal-border-soft:var(--cal-border-subtle); --cal-hairline:rgba(255,253,246,.9);

    --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:20px; --s-6:24px;
    --s-7:32px; --s-8:40px; --s-9:56px; --s-10:72px; --s-11:96px;
    --r-xs:4px; --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:20px; --r-full:999px;

    --font-body:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,sans-serif;
    --font-display:'Playfair Display',Georgia,serif;
    --font-mono:'JetBrains Mono','Cascadia Code',Menlo,monospace;

    --shadow-xs:0 1px 1px rgba(74,54,28,.06),0 1px 2px rgba(27,79,114,.04);
    --shadow-sm:0 1px 2px rgba(74,54,28,.07),0 2px 6px rgba(27,79,114,.05),0 1px 1px rgba(74,54,28,.04);
    --shadow-md:0 2px 3px rgba(74,54,28,.08),0 10px 28px rgba(27,79,114,.08),0 4px 10px rgba(27,79,114,.05);
    --shadow-lg:0 3px 6px rgba(74,54,28,.10),0 24px 56px rgba(27,79,114,.14),0 10px 20px rgba(27,79,114,.07);
    --shadow-focus:0 0 0 3px rgba(20,143,119,.22);
    --shadow-inset-top:inset 0 1px 0 0 var(--cal-hairline);

    --ease:cubic-bezier(.4,0,.2,1); --dur-fast:150ms; --dur-med:200ms; --dur-slow:350ms;
    --appbar:linear-gradient(135deg,#1B4F72 0%,#154360 40%,#1A5276 100%);
    --authority:linear-gradient(90deg,#0E2F4D 0%,#1B4F72 40%,#148F77 100%);
}
[data-theme="dark"] {
    --cal-primary:#5DADE2; --cal-primary-dark:#2E86C1; --cal-primary-darker:#1F618C;
    --cal-primary-light:#85C1E9; --cal-primary-lighter:#AED6F1;
    --cal-primary-wash:rgba(93,173,226,.10); --cal-primary-wash-2:rgba(93,173,226,.16);
    --cal-secondary:#48C9B0; --cal-secondary-light:#76D7C4; --cal-secondary-wash:rgba(72,201,176,.10);
    --cal-success:#58D68D; --cal-success-wash:rgba(88,214,141,.10);
    --cal-warning:#F5B041; --cal-warning-wash:rgba(245,176,65,.10);
    --cal-error:#EC7063;   --cal-error-wash:rgba(236,112,99,.10);
    --cal-info:#85C1E9;
    --cal-canvas:#080E1A; --cal-background:#0B1120; --cal-surface:#131B2E;
    --cal-surface-bright:#17203A; --cal-surface-soft:#0E1628; --cal-surface-hover:#1A2340;
    --cal-surface-sunk:#07101F; --cal-stripe-bg:rgba(93,173,226,.03);
    --cal-ink:#E8ECF1; --cal-ink-soft:#B4BEC9; --cal-ink-muted:#7B8CA3;
    --cal-ink-faint:#4A5568; --cal-ink-hint:#2D3748; --cal-ink-inverse:#0B1120;
    --cal-border-subtle:rgba(93,173,226,.08); --cal-border-medium:rgba(93,173,226,.14);
    --cal-border-strong:rgba(93,173,226,.28); --cal-hairline:transparent;
    --shadow-inset-top:none;
    --appbar:linear-gradient(135deg,#13243B 0%,#0E1B2E 50%,#13283f 100%);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
    font-family:var(--font-body); font-size:15px; line-height:1.55; letter-spacing:-.005em;
    color:var(--cal-ink); background:var(--cal-canvas); -webkit-font-smoothing:antialiased;
}
a{color:var(--cal-primary);text-decoration:none}
.material-symbols-outlined{font-size:20px;line-height:1;vertical-align:middle;
    font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24}

/* authority line + disclaimer ------------------------------------------------ */
.cal-authority-line{position:fixed;top:0;left:0;right:0;height:3px;background:var(--authority);z-index:9999}
.cal-disclaimer{position:fixed;top:3px;left:0;right:0;height:26px;background:var(--appbar);z-index:9998;
    display:flex;align-items:center;justify-content:center;color:#fff;font-size:10.5px;font-weight:700;
    letter-spacing:.14em;text-transform:uppercase;opacity:.95}

/* shell ---------------------------------------------------------------------- */
.admin-shell{display:flex;min-height:100vh;padding-top:29px}
.cal-sidebar{width:248px;flex:none;background:var(--cal-surface-soft);border-right:1px solid var(--cal-border-subtle);
    padding:18px 14px;display:flex;flex-direction:column;gap:3px;position:sticky;top:29px;height:calc(100vh - 29px)}
.cal-brand{display:flex;align-items:center;gap:10px;padding:6px 8px 18px}
.cal-brand .seal{width:30px;height:30px;border-radius:8px;background:var(--appbar);display:grid;place-items:center;
    color:#fff;font-weight:800;font-size:15px;box-shadow:var(--shadow-sm)}
.cal-brand .name{font-size:19px;font-weight:700;letter-spacing:-.02em;color:var(--cal-ink)}
.cal-brand .name .plus{color:var(--cal-secondary)}
.cal-brand .sub{display:block;font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--cal-ink-muted);font-weight:700}
.cal-nav-section{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--cal-ink-faint);
    font-weight:700;padding:14px 10px 6px}
.cal-navlink{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:var(--r-sm);
    color:var(--cal-ink-soft);font-size:14px;font-weight:500;border-left:2px solid transparent;transition:all var(--dur-fast) var(--ease)}
.cal-navlink .material-symbols-outlined{font-size:20px;color:var(--cal-ink-muted)}
.cal-navlink:hover{background:var(--cal-surface);color:var(--cal-ink)}
.cal-navlink.active{background:var(--cal-primary-wash);color:var(--cal-primary);border-left-color:var(--cal-primary);font-weight:600}
.cal-navlink.active .material-symbols-outlined{color:var(--cal-primary)}
.cal-nav-footer{margin-top:auto;padding:12px 10px 4px;border-top:1px solid var(--cal-border-subtle);
    font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--cal-ink-faint);font-weight:700;
    display:flex;align-items:center;justify-content:space-between}
.cal-theme-btn{background:transparent;border:1px solid var(--cal-border);border-radius:var(--r-sm);
    color:var(--cal-ink-muted);cursor:pointer;width:32px;height:32px;display:grid;place-items:center}
.cal-theme-btn:hover{color:var(--cal-primary);border-color:var(--cal-primary)}

/* "back to landing" link on standalone pages (login / download) */
.cal-home-link{position:fixed;top:16px;left:20px;z-index:20;display:inline-flex;align-items:center;gap:7px;
    font-weight:700;font-size:15px;letter-spacing:-.01em;color:var(--cal-ink-soft);text-decoration:none}
.cal-home-link:hover{color:var(--cal-ink)}
.cal-home-link .material-symbols-outlined{font-size:18px}
.cal-home-link .plus{color:var(--cal-secondary)}
/* sidebar brand is a link back to the landing page */
a.cal-brand{text-decoration:none;cursor:pointer}

/* signed-in account row (sidebar) */
.cal-nav-account{margin-top:auto;display:flex;align-items:center;gap:8px;padding:10px;border-radius:var(--r-sm);
    background:var(--cal-surface-sunk);border:1px solid var(--cal-border-subtle)}
.cal-nav-account .material-symbols-outlined{font-size:22px;color:var(--cal-ink-muted)}
.cal-nav-account .who{flex:1;min-width:0;font-size:12.5px;font-weight:600;color:var(--cal-ink-soft);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-nav-account .logout-form{margin:0}
.cal-logout-btn{background:transparent;border:1px solid var(--cal-border);border-radius:var(--r-sm);
    color:var(--cal-ink-muted);cursor:pointer;width:30px;height:30px;display:grid;place-items:center}
.cal-logout-btn:hover{color:var(--cal-error);border-color:var(--cal-error)}
.cal-nav-account + .cal-nav-footer{margin-top:12px}

/* login screen */
.login-wrap{min-height:100vh;display:grid;place-items:center;background:var(--cal-canvas);padding:24px}
.login-card{width:100%;max-width:380px;background:var(--cal-surface);border:1px solid var(--cal-border-subtle);
    border-radius:var(--r-lg,16px);padding:32px 30px;box-shadow:var(--shadow-md,0 12px 40px rgba(0,0,0,.25))}
.login-brand{text-align:center;margin-bottom:26px}
.login-brand .name{font-size:26px;font-weight:800;letter-spacing:-.02em;color:var(--cal-ink)}
.login-brand .name .plus{color:var(--cal-secondary)}
.login-brand .sub{display:block;margin-top:4px;font-size:10px;letter-spacing:.24em;text-transform:uppercase;
    color:var(--cal-ink-muted);font-weight:700}
.login-label{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;
    color:var(--cal-ink-muted);margin:14px 0 6px}
.login-card .cal-input{width:100%}
.login-error{margin-top:14px;padding:10px 12px;border-radius:var(--r-sm);font-size:13px;
    color:var(--cal-error);background:var(--cal-error-wash);border:1px solid var(--cal-error)}
.login-submit{width:100%;justify-content:center;margin-top:20px;padding:11px}
.login-foot{margin-top:22px;text-align:center;font-size:10px;letter-spacing:.18em;text-transform:uppercase;
    color:var(--cal-ink-faint);font-weight:700}

.cal-content{flex:1;min-width:0;padding:var(--s-7) var(--s-8);max-width:1280px}

/* page header ---------------------------------------------------------------- */
.cal-page-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;
    letter-spacing:.10em;text-transform:uppercase;color:var(--cal-ink-muted)}
.cal-page-eyebrow::before{content:"";width:20px;height:2px;background:var(--cal-secondary);border-radius:2px}
.cal-page-title{font-size:clamp(24px,3vw,30px);font-weight:700;line-height:1.15;letter-spacing:-.025em;
    color:var(--cal-ink);margin:6px 0 4px}
[data-theme="light"] .cal-page-title,:root:not([data-theme="dark"]) .cal-page-title{text-shadow:0 1px 0 rgba(255,253,246,.7)}
.cal-page-subtitle{font-size:14.5px;color:var(--cal-ink-soft);line-height:1.55;margin:0 0 var(--s-6)}
.cal-eyebrow{font-size:11px;font-weight:700;letter-spacing:.10em;text-transform:uppercase;color:var(--cal-ink-muted)}
.cal-display-md{font-size:20px;font-weight:600;letter-spacing:-.015em;color:var(--cal-ink)}
.cal-display-sm{font-size:16px;font-weight:600;letter-spacing:-.008em;color:var(--cal-ink)}
.cal-text-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.cal-muted{color:var(--cal-ink-muted)}

/* card ----------------------------------------------------------------------- */
.cal-card{border-radius:var(--r-md);border:1px solid var(--cal-border-subtle);position:relative;
    background:
        radial-gradient(ellipse 260px 170px at 0% 0%,rgba(20,143,119,.08) 0%,transparent 70%),
        radial-gradient(ellipse 240px 160px at 100% 100%,rgba(217,155,46,.055) 0%,transparent 72%),
        linear-gradient(180deg,var(--cal-surface-bright) 0%,var(--cal-surface) 60%);
    box-shadow:var(--shadow-inset-top),var(--shadow-sm);
    transition:box-shadow var(--dur-med) var(--ease),border-color var(--dur-med) var(--ease);
    padding:var(--s-6);margin-bottom:var(--s-5)}
.cal-card:hover{box-shadow:var(--shadow-inset-top),var(--shadow-md);border-color:var(--cal-border-medium)}
.cal-card-pad-sm{padding:var(--s-4)}

/* metrics -------------------------------------------------------------------- */
.cal-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--s-4);margin-bottom:var(--s-6)}
.cal-metric{padding:var(--s-6);border:1px solid var(--cal-border-subtle);border-radius:var(--r-md);position:relative;overflow:hidden;
    background:radial-gradient(ellipse 220px 170px at 100% 0%,rgba(27,79,114,.09) 0%,transparent 70%),
        linear-gradient(180deg,var(--cal-surface-bright) 0%,var(--cal-surface) 70%);
    box-shadow:var(--shadow-inset-top),var(--shadow-xs)}
.cal-metric-label{font-size:11px;font-weight:700;letter-spacing:.10em;text-transform:uppercase;color:var(--cal-ink-muted);margin-bottom:8px}
.cal-metric-value{font-size:36px;font-weight:700;letter-spacing:-.02em;line-height:1;
    background:linear-gradient(180deg,var(--cal-primary-lighter),var(--cal-primary) 60%,var(--cal-primary-dark));
    -webkit-background-clip:text;background-clip:text;color:transparent}
[data-theme="dark"] .cal-metric-value{background:none;color:var(--cal-primary)}
.cal-metric-sub{font-size:12.5px;color:var(--cal-ink-muted);margin-top:6px}

/* data table + pager --------------------------------------------------------- */
.cal-data-table{width:100%;border-collapse:collapse;font-size:13.5px}
.cal-data-table th{text-align:left;font-family:var(--font-body);font-size:11px;letter-spacing:.08em;
    text-transform:uppercase;color:var(--cal-ink-muted);font-weight:700;padding:var(--s-3) var(--s-4);
    border-bottom:2px solid var(--cal-border-medium);background:var(--cal-surface-soft)}
.cal-data-table td{padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--cal-border-subtle);color:var(--cal-ink);vertical-align:middle}
.cal-data-table tbody tr{transition:background var(--dur-fast) var(--ease)}
.cal-data-table tbody tr:nth-child(even) td{background:var(--cal-stripe-bg)}
.cal-data-table tbody tr:hover td{background:var(--cal-surface-hover)}
.cal-td-id{font-family:var(--font-mono);font-weight:600;color:var(--cal-primary)}
.cal-td-sub{font-size:11px;color:var(--cal-ink-muted)}
.cal-td-num{text-align:right;font-family:var(--font-mono);font-weight:600}
.cal-td-action{text-align:right;white-space:nowrap}

.cal-data-table-compact th{padding:8px var(--s-3);font-size:10px}
.cal-data-table-compact td{padding:7px var(--s-3);font-size:13px}
.cal-data-table-compact .cal-iconbtn{width:28px;height:28px}
.cal-detail-row td{background:var(--cal-surface-soft) !important;border-bottom:1px solid var(--cal-border-medium)}
.cal-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-input-sm{padding:6px 10px;font-size:13px}

.cal-pager{display:flex;align-items:center;gap:var(--s-3);padding:10px var(--s-4);
    border-top:1px solid var(--cal-border-soft);background:var(--cal-surface-soft);border-radius:0 0 var(--r-md) var(--r-md)}
.cal-pager-size{display:flex;align-items:center;gap:6px}
.cal-pager-ind{font-family:var(--font-mono);font-size:12px;min-width:84px;text-align:center;color:var(--cal-ink-muted)}

/* chips ---------------------------------------------------------------------- */
.cal-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--r-full);
    border:1px solid var(--cal-border);background:transparent;color:var(--cal-ink-soft);
    font-size:11.5px;font-weight:600;letter-spacing:.02em;line-height:1;cursor:pointer;transition:all var(--dur-fast) var(--ease)}
.cal-chip:hover{border-color:var(--cal-border-strong)}
.cal-chip-active{background:var(--cal-primary);color:var(--cal-ink-inverse);border-color:var(--cal-primary)}
.cal-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--r-full);
    font-size:11px;font-weight:700;letter-spacing:.04em}
.cal-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.cal-badge-primary{color:var(--cal-primary);background:var(--cal-primary-wash)}
.cal-badge-success{color:var(--cal-success);background:var(--cal-success-wash)}
.cal-badge-info{color:var(--cal-secondary);background:var(--cal-secondary-wash)}
.cal-badge-neutral{color:var(--cal-ink-muted);background:var(--cal-surface-sunk)}

/* buttons -------------------------------------------------------------------- */
.cal-btn{display:inline-flex;align-items:center;gap:7px;border:0;border-radius:var(--r-sm);cursor:pointer;
    font-family:var(--font-body);font-size:14px;font-weight:600;letter-spacing:.005em;padding:10px 18px;
    background:var(--cal-primary);color:var(--cal-ink-inverse);transition:all var(--dur-fast) var(--ease)}
.cal-btn:hover{background:var(--cal-primary-dark);box-shadow:var(--shadow-sm)}
.cal-btn .material-symbols-outlined{font-size:18px}
.cal-btn-outline{background:transparent;border:1px solid var(--cal-primary);color:var(--cal-primary)}
.cal-btn-outline:hover{background:var(--cal-primary-wash)}
.cal-btn-ghost{background:transparent;color:var(--cal-ink-soft)}
.cal-btn-ghost:hover{background:var(--cal-surface-hover)}
.cal-btn-danger{background:transparent;border:1px solid var(--cal-error);color:var(--cal-error)}
.cal-btn-danger:hover{background:var(--cal-error-wash)}
.cal-btn-sm{padding:6px 12px;font-size:12.5px}
.cal-btn:disabled{opacity:.5;cursor:not-allowed}
.cal-iconbtn{width:32px;height:32px;padding:0;border-radius:var(--r-sm);border:1px solid var(--cal-border);
    background:transparent;color:var(--cal-ink-muted);cursor:pointer;display:inline-grid;place-items:center}
.cal-iconbtn:hover:not(:disabled){color:var(--cal-primary);border-color:var(--cal-primary)}
.cal-iconbtn:disabled{opacity:.4;cursor:not-allowed}

/* inputs --------------------------------------------------------------------- */
.cal-input,.cal-select{font-family:var(--font-body);font-size:14px;color:var(--cal-ink);
    background:var(--cal-surface-bright);border:1px solid var(--cal-border);border-radius:var(--r-sm);
    padding:9px 12px;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}
.cal-input:focus,.cal-select:focus{outline:none;border-color:var(--cal-primary);box-shadow:var(--shadow-focus)}
.cal-input::placeholder{color:var(--cal-ink-hint)}
.cal-field-label{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
    color:var(--cal-ink-muted);margin-bottom:5px}
.cal-toolbar{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap;margin-bottom:var(--s-4)}
.cal-row{display:flex;gap:var(--s-3);align-items:center;flex-wrap:wrap}
.cal-spacer{flex:1}

/* empty ---------------------------------------------------------------------- */
.cal-empty{text-align:center;padding:var(--s-9) var(--s-6);color:var(--cal-ink-muted)}
.cal-empty-icon{width:52px;height:52px;color:var(--cal-ink-faint);margin-bottom:var(--s-3)}
.cal-empty-title{font-size:15px;font-weight:600;color:var(--cal-ink-soft);margin-bottom:4px}
.cal-empty-text{font-size:13px;color:var(--cal-ink-muted)}

/* banner --------------------------------------------------------------------- */
.cal-banner{display:flex;align-items:flex-start;gap:10px;padding:var(--s-3) var(--s-4);border-radius:var(--r-sm);
    border:1px solid var(--cal-border-subtle);font-size:13.5px;margin-bottom:var(--s-5)}
.cal-banner-info{background:var(--cal-primary-wash);color:var(--cal-ink-soft);border-color:var(--cal-border-medium)}
.cal-banner-warning{background:var(--cal-warning-wash);color:var(--cal-ink-soft)}

/* lightbox -------------------------------------------------------------------- */
.cal-lightbox{position:fixed;inset:0;z-index:10001;display:flex;align-items:center;justify-content:center;
    background:rgba(8,14,26,.88);backdrop-filter:blur(5px);animation:cal-lb-fade var(--dur-med) var(--ease)}
@keyframes cal-lb-fade{from{opacity:0}to{opacity:1}}
.cal-lightbox-stage{display:flex;flex-direction:column;align-items:center;gap:12px;max-width:92vw}
.cal-lightbox-img{max-width:90vw;max-height:80vh;border-radius:var(--r-md);box-shadow:var(--shadow-lg);background:#fff}
.cal-lightbox-cap{color:#e8ecf1;font-size:12.5px;font-family:var(--font-mono);letter-spacing:.02em}
.cal-lb-btn{position:fixed;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:var(--r-full);
    background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);color:#fff;cursor:pointer;display:grid;place-items:center;transition:background var(--dur-fast) var(--ease)}
.cal-lb-btn:hover{background:rgba(255,255,255,.24)}
.cal-lb-prev{left:24px} .cal-lb-next{right:24px}
.cal-lb-close{position:fixed;top:20px;right:24px;width:42px;height:42px;border-radius:var(--r-full);
    background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);color:#fff;cursor:pointer;display:grid;place-items:center}
.cal-lb-close:hover{background:rgba(255,255,255,.24)}
.cal-thumb{cursor:pointer;transition:transform var(--dur-fast) var(--ease)}
.cal-thumb:hover{transform:scale(1.04)}

*:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
#blazor-error-ui{position:fixed;bottom:0;left:0;right:0;background:var(--cal-error);color:#fff;
    padding:10px 16px;display:none;z-index:10000}
#blazor-error-ui.show{display:block}

/* ============================================================ MOBILE */
/* Mobile top bar + off-canvas drawer (shown only on small screens). */
.cal-mobilebar{display:none;position:fixed;top:3px;left:0;right:0;height:50px;z-index:1000;
    align-items:center;gap:10px;padding:0 12px;background:var(--cal-surface);border-bottom:1px solid var(--cal-border-subtle)}
.cal-burger{width:42px;height:42px;display:grid;place-items:center;border:0;border-radius:11px;background:transparent;
    color:var(--cal-ink);cursor:pointer}
.cal-burger:hover{background:var(--cal-surface-hover)}
.cal-burger .material-symbols-outlined{font-size:26px}
.cal-mobilebar-brand{font-size:18px;font-weight:800;letter-spacing:-.02em;color:var(--cal-ink);text-decoration:none}
.cal-mobilebar-brand .plus{color:var(--cal-secondary)}
.cal-mobilebar-brand .sub{margin-left:7px;font-size:9px;letter-spacing:.2em;text-transform:uppercase;
    color:var(--cal-ink-muted);font-weight:700}
.cal-nav-backdrop{display:none}

@media (max-width: 900px) {
    .cal-disclaimer{display:none}
    .cal-mobilebar{display:flex}
    .admin-shell{padding-top:53px}

    /* sidebar becomes an off-canvas drawer */
    .cal-sidebar{position:fixed;top:0;left:0;height:100vh;width:280px;max-width:84vw;z-index:1200;
        padding-top:18px;overflow-y:auto;transform:translateX(-100%);transition:transform .25s var(--ease,ease);
        box-shadow:0 0 50px rgba(0,0,0,.45)}
    html.vm-nav-open .cal-sidebar{transform:none}

    .cal-nav-backdrop{display:block;position:fixed;inset:0;z-index:1100;background:rgba(0,0,0,.5);
        opacity:0;pointer-events:none;transition:opacity .25s var(--ease,ease)}
    html.vm-nav-open .cal-nav-backdrop{opacity:1;pointer-events:auto}

    /* content + tables fit small screens */
    .cal-content{padding:var(--s-5) var(--s-4);max-width:100%}
    .cal-card{overflow-x:auto !important}
    .cal-data-table{min-width:560px}
    .cal-pager{flex-wrap:wrap}
    .cal-toolbar .cal-input{max-width:100%}
}
