/* ClinSite CSMS – enterprise theme
   Palette: graphite / oxblood / saffron on neutral grey. No blue or green tones. */
@font-face{font-family:"Plex";src:url("../vendor/fonts/plex-sans-400.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Plex";src:url("../vendor/fonts/plex-sans-500.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Plex";src:url("../vendor/fonts/plex-sans-600.woff2") format("woff2");font-weight:600 700;font-display:swap}
@font-face{font-family:"PlexMono";src:url("../vendor/fonts/plex-mono-400.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"PlexMono";src:url("../vendor/fonts/plex-mono-500.woff2") format("woff2");font-weight:500 600;font-display:swap}

:root{
  --graphite-950:#141414; --graphite-900:#1b1b1d; --graphite-850:#232325; --graphite-800:#2c2c2e;
  --graphite-700:#3a3a3c; --graphite-500:#6e6e70; --graphite-400:#8e8e90; --graphite-300:#b9b9bb;
  --wine:#7a1f3d; --wine-700:#64182f; --wine-800:#4f1325; --wine-50:#f6e9ee; --wine-100:#eed5de;
  --saffron:#c98a1e; --saffron-50:#fbf2df; --saffron-700:#8f5f0d;
  --rust:#b4501f; --rust-50:#fbebe2;
  --red:#a8232b; --red-50:#f9e4e5; --red-800:#7d1219;
  --ink:#1e1e20; --ink-2:#4a4a4d; --ink-3:#7a7a7d;
  --bg:#efefee; --surface:#ffffff; --surface-2:#f7f7f6; --line:#dfdfdd; --line-2:#cfcfcc;
  --radius:4px; --shadow:0 1px 2px rgba(20,20,20,.06);

  --bs-body-font-family:"Plex",-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --bs-body-font-size:13px; --bs-body-color:var(--ink); --bs-body-bg:var(--bg);
  --bs-primary:#7a1f3d; --bs-primary-rgb:122,31,61; --bs-blue:#7a1f3d; --bs-indigo:#4f1325; --bs-cyan:#c98a1e; --bs-teal:#8e8e90; --bs-green:#3a3a3c;
  --bs-success:#3a3a3c; --bs-success-rgb:58,58,60; --bs-info:#c98a1e; --bs-info-rgb:201,138,30;
  --bs-link-color:#7a1f3d; --bs-link-color-rgb:122,31,61; --bs-link-hover-color:#4f1325; --bs-link-hover-color-rgb:79,19,37;
  --bs-focus-ring-color:rgba(122,31,61,.22); --bs-border-color:var(--line); --bs-border-radius:4px; --bs-border-radius-sm:3px;
  --bs-primary-bg-subtle:#f6e9ee; --bs-primary-border-subtle:#e2bfcc; --bs-primary-text-emphasis:#4f1325;
  --bs-form-valid-color:#3a3a3c; --bs-form-valid-border-color:#8e8e90;
  --bs-secondary-color:#7a7a7d; --bs-emphasis-color:#1e1e20;
}
html,body{height:100%}
body{font-family:var(--bs-body-font-family);font-size:13px;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
::selection{background:#e9cdd7;color:#1e1e20}
a{color:var(--wine);text-decoration:none}
a:hover{color:var(--wine-800);text-decoration:underline}
:focus-visible{outline:2px solid var(--saffron);outline-offset:1px}
.mono,.code{font-family:"PlexMono",Consolas,monospace;font-size:12px;letter-spacing:-.1px}
.text-muted{color:var(--ink-3)!important}
.small,small{font-size:11.5px}
h1,h2,h3,h4,h5{font-weight:600;color:var(--ink);letter-spacing:-.1px}

/* ---------- Shell ---------- */
.app{display:flex;min-height:100vh}
.sidebar{width:232px;flex:0 0 232px;background:var(--graphite-900);color:#d4d4d6;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;border-right:1px solid #000;z-index:1030}
.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:#3a3a3c;border-radius:3px}
.brand{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid #000;background:var(--graphite-950);min-height:56px}
.brand-mark{width:30px;height:30px;border-radius:4px;background:var(--wine);display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px;letter-spacing:.3px;box-shadow:inset 0 -2px 0 rgba(0,0,0,.25)}
.brand-name{font-weight:600;font-size:15px;color:#fff;line-height:1.1}
.brand-sub{font-size:10px;color:var(--graphite-400);letter-spacing:.3px;text-transform:uppercase;margin-top:2px}
.nav-section{font-size:10px;font-weight:600;letter-spacing:.9px;text-transform:uppercase;color:var(--graphite-500);padding:14px 16px 5px}
.side-link{display:flex;align-items:center;gap:10px;padding:6px 16px 6px 14px;color:#cfcfd1;font-size:13px;border-left:2px solid transparent;text-decoration:none!important}
.side-link i{font-size:14px;color:var(--graphite-400);width:16px;text-align:center}
.side-link:hover{background:var(--graphite-850);color:#fff}
.side-link:hover i{color:#e6e6e8}
.side-link.active{background:var(--graphite-800);color:#fff;border-left-color:var(--saffron)}
.side-link.active i{color:var(--saffron)}
.side-link .count{margin-left:auto;background:var(--wine);color:#fff;border-radius:9px;font-size:10px;padding:1px 6px;font-weight:600}
.sidebar-foot{margin-top:auto;padding:12px 16px;font-size:10.5px;color:var(--graphite-500);border-top:1px solid #000}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{height:52px;background:var(--graphite-850);color:#e9e9eb;display:flex;align-items:center;gap:14px;padding:0 18px;position:sticky;top:0;z-index:1020;border-bottom:3px solid var(--wine)}
.topbar .menu-btn{display:none;background:none;border:0;color:#fff;font-size:20px;padding:0}
.top-search{flex:1;max-width:520px;position:relative}
.top-search input{width:100%;height:32px;background:var(--graphite-800);border:1px solid #444447;border-radius:4px;color:#f2f2f3;padding:0 10px 0 32px;font-size:12.5px}
.top-search input::placeholder{color:#99999c}
.top-search input:focus{outline:none;border-color:var(--saffron);background:#333336}
.top-search i{position:absolute;left:10px;top:8px;color:#99999c;font-size:13px}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:6px}
.top-icon{position:relative;color:#d9d9db;font-size:17px;padding:6px 9px;border-radius:4px;background:none;border:0}
.top-icon:hover{background:var(--graphite-800);color:#fff}
.top-icon .dot{position:absolute;top:2px;right:2px;min-width:16px;height:16px;border-radius:8px;background:var(--saffron);color:#141414;font-size:9.5px;font-weight:700;display:grid;place-items:center;padding:0 3px}
.user-chip{display:flex;align-items:center;gap:9px;padding:4px 8px;border-radius:4px;color:#eee;background:none;border:0;text-align:left}
.user-chip:hover{background:var(--graphite-800)}
.avatar{width:28px;height:28px;border-radius:50%;background:var(--wine);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:600}
.user-chip .u-name{font-size:12.5px;font-weight:500;line-height:1.1}
.user-chip .u-role{font-size:10.5px;color:#a9a9ac}

.content{padding:16px 20px 8px;flex:1}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.crumbs{font-size:11.5px;color:var(--ink-3);margin-bottom:3px}
.crumbs a{color:var(--ink-3)}
.crumbs a:hover{color:var(--wine)}
.crumbs .sep{margin:0 5px;color:var(--line-2)}
.page-title{font-size:20px;font-weight:600;margin:0;display:flex;align-items:center;gap:10px}
.page-sub{font-size:12px;color:var(--ink-3);margin-top:2px}
.page-actions{display:flex;gap:6px;flex-wrap:wrap}
.app-footer{padding:10px 20px;font-size:11px;color:var(--ink-3);border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;background:var(--surface-2)}
.app-footer a{color:var(--ink-2);font-weight:500}

/* ---------- Panels ---------- */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--surface-2);min-height:38px}
.panel-title{font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-2);margin:0;display:flex;align-items:center;gap:7px}
.panel-title i{color:var(--wine)}
.panel-body{padding:12px}
.panel-body.tight{padding:0}

/* KPI strip */
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;box-shadow:var(--shadow)}
.kpi{padding:10px 14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:block;color:inherit;text-decoration:none!important;position:relative}
.kpi:hover{background:var(--surface-2)}
.kpi .k-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--ink-3);font-weight:500;display:flex;align-items:center;gap:5px}
.kpi .k-value{font-size:21px;font-weight:600;margin-top:2px;color:var(--ink);font-variant-numeric:tabular-nums}
.kpi .k-meta{font-size:11px;color:var(--ink-3)}
.kpi::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:2px;background:var(--graphite-300)}
.kpi.t-wine::before{background:var(--wine)}.kpi.t-saffron::before{background:var(--saffron)}.kpi.t-red::before{background:var(--red)}.kpi.t-rust::before{background:var(--rust)}.kpi.t-ink::before{background:var(--graphite-700)}

/* ---------- Tables ---------- */
.table-wrap{overflow-x:auto}
.table{--bs-table-bg:transparent;--bs-table-hover-bg:#f6f1f3;margin:0;font-size:12.5px;color:var(--ink)}
.table>:not(caption)>*>*{padding:6px 10px;border-bottom-color:var(--line);vertical-align:middle}
.table thead th{background:var(--surface-2);font-size:11px;text-transform:uppercase;letter-spacing:.45px;color:var(--ink-2);font-weight:600;white-space:nowrap;border-bottom:1px solid var(--line-2);position:sticky;top:0}
.table tbody tr:last-child td{border-bottom:0}
.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}
.table tfoot td{font-weight:600;background:var(--surface-2)}
.table td.mono,.table td .mono,.table td.num{white-space:nowrap}
.th-sort{color:inherit;text-decoration:none!important;white-space:nowrap}
.th-sort i{font-size:9px;color:var(--wine)}
.row-actions{white-space:nowrap;text-align:right}
.row-actions a{color:var(--ink-3);padding:2px 5px;border-radius:3px}
.row-actions a:hover{color:var(--wine);background:var(--wine-50);text-decoration:none}
.empty{padding:28px 12px;text-align:center;color:var(--ink-3);font-size:12.5px}
.empty i{font-size:22px;display:block;margin-bottom:6px;color:var(--graphite-300)}
.kv{width:100%;font-size:12.5px}
.kv th{width:38%;font-weight:500;color:var(--ink-3);padding:5px 10px 5px 0;vertical-align:top;font-size:12px}
.kv td{padding:5px 0;vertical-align:top}
.kv tr+tr th,.kv tr+tr td{border-top:1px dashed var(--line)}

/* toolbar / filters */
.toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--surface)}
.toolbar .form-control,.toolbar .form-select{width:auto;min-width:130px;max-width:220px}
.toolbar .grow{flex:1}
.list-meta{font-size:11.5px;color:var(--ink-3);padding:7px 12px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap;gap:6px}

/* ---------- Forms / buttons ---------- */
.form-control,.form-select{border-color:var(--line-2);border-radius:3px;font-size:12.5px;color:var(--ink)}
.form-control-sm,.form-select-sm{min-height:30px;padding:4px 8px;font-size:12.5px}
.form-control:focus,.form-select:focus{border-color:var(--wine);box-shadow:0 0 0 3px rgba(122,31,61,.14)}
.form-check-input{border-color:var(--line-2)}
.form-check-input:checked{background-color:var(--wine);border-color:var(--wine)}
.form-check-input:focus{border-color:var(--wine);box-shadow:0 0 0 3px rgba(122,31,61,.14)}
.form-label{font-size:11.5px;font-weight:500;color:var(--ink-2);margin-bottom:3px}
.req{color:var(--red);margin-left:2px}
.form-text{font-size:11px;color:var(--ink-3)}
#id_modules{list-style:none;padding:8px 10px;margin:0;columns:2;column-gap:24px;border:1px solid var(--line);border-radius:4px;background:var(--surface-2)}
#id_modules > div{break-inside:avoid;padding:3px 0;font-size:12.5px}
#id_modules input{margin-right:6px;accent-color:var(--wine)}
@media (max-width:767px){#id_modules{columns:1}}
.invalid-msg{font-size:11px;color:var(--red);margin-top:2px}
.has-error .form-control,.has-error .form-select{border-color:var(--red)}
.form-section{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-bottom:12px}
.form-section>.fs-title{padding:7px 12px;border-bottom:1px solid var(--line);background:var(--surface-2);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-2)}
.form-section>.fs-body{padding:12px}
.form-actions{display:flex;gap:6px;justify-content:flex-end;padding:10px 12px;border-top:1px solid var(--line);background:var(--surface-2);position:sticky;bottom:0}
input:-webkit-autofill,input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px #fff inset;-webkit-text-fill-color:var(--ink)}

.btn{font-size:12.5px;border-radius:3px;font-weight:500;padding:5px 12px;display:inline-flex;align-items:center;gap:6px;line-height:1.35}
.btn-sm{font-size:12px;padding:3px 9px}
.btn-xs{font-size:11px;padding:1px 7px}
.btn-primary{--bs-btn-bg:var(--wine);--bs-btn-border-color:var(--wine);--bs-btn-hover-bg:var(--wine-700);--bs-btn-hover-border-color:var(--wine-700);--bs-btn-active-bg:var(--wine-800);--bs-btn-active-border-color:var(--wine-800);--bs-btn-disabled-bg:#a86a7f;--bs-btn-disabled-border-color:#a86a7f;--bs-btn-focus-shadow-rgb:122,31,61}
.btn-dark{--bs-btn-bg:var(--graphite-800);--bs-btn-border-color:var(--graphite-800);--bs-btn-hover-bg:var(--graphite-950);--bs-btn-hover-border-color:var(--graphite-950);--bs-btn-active-bg:#000}
.btn-outline-secondary,.btn-light{--bs-btn-color:var(--ink-2);--bs-btn-bg:#fff;--bs-btn-border-color:var(--line-2);--bs-btn-hover-color:var(--ink);--bs-btn-hover-bg:#f2f2f1;--bs-btn-hover-border-color:#b9b9b6;--bs-btn-active-bg:#e8e8e6;--bs-btn-active-color:var(--ink);--bs-btn-active-border-color:#b9b9b6}
.btn-saffron{--bs-btn-color:#1e1e20;--bs-btn-bg:var(--saffron);--bs-btn-border-color:var(--saffron);--bs-btn-hover-bg:#b47a14;--bs-btn-hover-border-color:#b47a14;--bs-btn-hover-color:#111;--bs-btn-active-bg:#9d6a10}
.btn-danger{--bs-btn-bg:var(--red);--bs-btn-border-color:var(--red);--bs-btn-hover-bg:var(--red-800);--bs-btn-hover-border-color:var(--red-800);--bs-btn-active-bg:var(--red-800)}
.btn-outline-danger{--bs-btn-color:var(--red);--bs-btn-border-color:#d9a3a6;--bs-btn-hover-bg:var(--red);--bs-btn-hover-border-color:var(--red);--bs-btn-active-bg:var(--red-800)}
.btn-link{--bs-btn-color:var(--wine);--bs-btn-hover-color:var(--wine-800)}

/* status badges */
.st{display:inline-block;font-size:10.5px;font-weight:600;letter-spacing:.25px;padding:2px 7px;border-radius:3px;white-space:nowrap;border:1px solid transparent;line-height:1.45;text-transform:uppercase}
.st-available{background:#f4f1ea;color:#2a2826;border-color:#ddd6c8}
.st-pending{background:var(--saffron-50);color:var(--saffron-700);border-color:#ecd39f}
.st-allocated{background:var(--wine-50);color:var(--wine-700);border-color:#e2bfcc}
.st-approved{background:var(--wine);color:#fff}
.st-dispatched{background:var(--rust-50);color:#8a3a12;border-color:#efc4ab}
.st-closed{background:var(--graphite-800);color:#fff}
.st-hold{background:#fde7d3;color:#9a4510;border-color:#f3c39b}
.st-danger{background:var(--red);color:#fff}
.st-danger-soft{background:var(--red-50);color:var(--red-800);border-color:#ebb7ba}
.st-void{background:#e4e4e2;color:#58585a;border-color:#d0d0cd}
.st-draft{background:#fff;color:var(--ink-2);border-color:var(--line-2)}
.exp{font-variant-numeric:tabular-nums}
.exp-past{color:var(--red);font-weight:600}
.exp-30{color:#9a4510;font-weight:600}
.exp-90{color:var(--saffron-700)}
.tag{display:inline-block;font-size:10.5px;padding:1px 6px;border-radius:3px;background:#efefee;color:var(--ink-2);border:1px solid var(--line)}

/* alerts */
.alert{font-size:12.5px;border-radius:3px;padding:8px 12px;display:flex;gap:8px;align-items:flex-start}
.alert-success,.alert-info{background:#f4f1ea;border-color:#ddd6c8;color:#2a2826}
.alert-warning{background:var(--saffron-50);border-color:#ecd39f;color:#6b470a}
.alert-danger,.alert-error{background:var(--red-50);border-color:#ebb7ba;color:var(--red-800)}
.alert .btn-close{margin-left:auto;font-size:10px;padding:4px}
.callout{border-left:3px solid var(--wine);background:var(--wine-50);padding:8px 12px;font-size:12.5px;border-radius:0 3px 3px 0;margin-bottom:12px}
.callout.warn{border-color:var(--saffron);background:var(--saffron-50)}
.callout.danger{border-color:var(--red);background:var(--red-50)}

/* pagination / dropdown / nav tabs */
.pagination{--bs-pagination-color:var(--ink-2);--bs-pagination-hover-color:var(--wine);--bs-pagination-focus-color:var(--wine);--bs-pagination-active-bg:var(--wine);--bs-pagination-active-border-color:var(--wine);--bs-pagination-focus-box-shadow:0 0 0 3px rgba(122,31,61,.14);--bs-pagination-font-size:12px;--bs-pagination-padding-y:2px;--bs-pagination-padding-x:9px;margin:0}
.dropdown-menu{--bs-dropdown-link-active-bg:var(--wine);--bs-dropdown-font-size:12.5px;border-color:var(--line-2);border-radius:4px;box-shadow:0 8px 24px rgba(0,0,0,.12)}
.dropdown-item{padding:6px 14px}
.dropdown-item i{width:18px;color:var(--ink-3)}
.nav-tabs{--bs-nav-tabs-link-active-color:var(--wine);--bs-nav-tabs-link-active-border-color:var(--line) var(--line) #fff;--bs-nav-link-color:var(--ink-2);--bs-nav-link-hover-color:var(--wine);--bs-nav-link-font-size:12.5px;--bs-nav-link-padding-y:6px;font-weight:500}
.nav-tabs .nav-link.active{border-top:2px solid var(--wine)}
.progress{--bs-progress-bar-bg:var(--wine);height:6px;background:#e7e7e5}

.notif-menu{width:360px;max-height:420px;overflow:auto;padding:0}
.notif-item{display:block;padding:9px 14px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none!important;font-size:12.5px}
.notif-item:hover{background:var(--surface-2)}
.notif-item.unread{border-left:3px solid var(--saffron);background:#fffaf0}
.notif-item .n-title{font-weight:500}
.notif-item .n-meta{font-size:11px;color:var(--ink-3)}

/* timeline (traceability) */
.timeline{position:relative;padding-left:22px}
.timeline::before{content:"";position:absolute;left:7px;top:4px;bottom:4px;width:2px;background:var(--line)}
.tl-item{position:relative;padding:0 0 12px}
.tl-item::before{content:"";position:absolute;left:-19px;top:4px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--wine)}
.tl-item.t-saffron::before{border-color:var(--saffron)}
.tl-item.t-red::before{border-color:var(--red);background:var(--red)}
.tl-item.t-ink::before{border-color:var(--graphite-700);background:var(--graphite-700)}
.tl-time{font-size:11px;color:var(--ink-3)}
.tl-title{font-weight:600;font-size:12.5px}
.tl-body{font-size:12px;color:var(--ink-2)}
.trace-steps{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:0;border:1px solid var(--line);border-radius:4px;background:#fff}
.trace-step{padding:10px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px}
.trace-step .ts-head{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-3);font-weight:600;margin-bottom:4px;display:flex;align-items:center;gap:6px}
.trace-step .ts-head i{color:var(--wine)}
.trace-step.off{background:var(--surface-2);color:var(--ink-3)}
.trace-step.off .ts-head i{color:var(--graphite-300)}

/* Login */
.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:var(--bg)}
.login-side{background:var(--graphite-900);color:#d9d9db;padding:48px 56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;border-right:4px solid var(--wine)}
.login-side::after{content:"";position:absolute;right:-120px;bottom:-120px;width:420px;height:420px;border:1px solid #2f2f31;border-radius:50%;box-shadow:0 0 0 60px #1f1f21,0 0 0 120px #1d1d1f}
.login-side h1{color:#fff;font-size:30px;font-weight:600;margin:0}
.login-side .ls-sub{color:var(--saffron);text-transform:uppercase;letter-spacing:1.4px;font-size:11.5px;font-weight:600;margin-top:6px}
.login-side ul{list-style:none;padding:0;margin:28px 0 0;font-size:13px;color:#b9b9bb;position:relative;z-index:1}
.login-side li{padding:7px 0;display:flex;gap:10px;align-items:center;border-bottom:1px solid #2a2a2c}
.login-side li i{color:var(--saffron)}
.login-main{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:32px}
.login-card{width:min(380px,100%);background:#fff;border:1px solid var(--line);border-radius:4px;padding:30px 30px 24px;box-shadow:0 10px 30px rgba(20,20,20,.08);border-top:3px solid var(--wine)}
.login-card h2{font-size:18px;margin:0 0 2px}
.login-card .form-control{height:38px;font-size:13px}
.login-foot{margin-top:18px;font-size:11.5px;color:var(--ink-3);text-align:center}
.login-foot a{color:var(--ink-2);font-weight:500}

/* Printable documents */
.doc{background:#fff;border:1px solid var(--line);max-width:1000px;margin:0 auto;padding:28px 32px}
.doc-head{display:flex;justify-content:space-between;border-bottom:2px solid var(--graphite-900);padding-bottom:12px;margin-bottom:14px}
.doc-title{font-size:18px;font-weight:700;text-transform:uppercase;letter-spacing:.8px}
.doc table{font-size:12px}
.doc .sign{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}
.doc .sign div{border-top:1px solid #555;padding-top:4px;font-size:11px;color:#555}
.print-bar{max-width:1000px;margin:0 auto 10px;display:flex;justify-content:space-between}

/* dashboard */
.chart-box{position:relative;height:230px}
.mini-list .item{display:flex;justify-content:space-between;align-items:center;padding:7px 12px;border-bottom:1px solid var(--line);font-size:12.5px}
.mini-list .item:last-child{border-bottom:0}
.bar-track{height:6px;background:#ececea;border-radius:3px;overflow:hidden}
.bar-fill{height:100%;background:var(--wine)}

/* responsive */
@media (max-width: 991.98px){
  .sidebar{position:fixed;left:-240px;transition:left .2s}
  .sidebar.open{left:0;box-shadow:0 0 40px rgba(0,0,0,.4)}
  .topbar .menu-btn{display:block}
  .user-chip .u-text{display:none}
  .login-wrap{grid-template-columns:1fr}
  .login-side{display:none}
  .content{padding:12px}
}
@media print{
  .sidebar,.topbar,.app-footer,.no-print,.page-actions,.toolbar,.print-bar,.pagination{display:none!important}
  body,.content{background:#fff;padding:0}
  .panel{box-shadow:none;border:0}
  .doc{border:0;padding:0}
  .table thead th{position:static}
  a{color:inherit}
}
