:root{
  --ink:#1d2733; --ink-soft:#5b6876; --line:#e4e8ec; --bg:#f5f7f8;
  --surface:#ffffff; --brand:#0e7c66; --brand-ink:#0b5e4d;
  --ok:#0e7c66; --okbg:#e3f3ee; --warn:#9a5a00; --warnbg:#fbeed7;
  --bad:#a5302c; --badbg:#fbe6e4; --info:#1f5fa6; --infobg:#e5eff9;
  --muted:#5b6876; --mutedbg:#eceff1;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--bg);font-size:14px;line-height:1.5}
h1,h2{font-weight:600;margin:0}
a{color:var(--brand-ink);text-decoration:none}
code{background:#eef1f3;padding:1px 5px;border-radius:4px;font-size:.9em}

.layout{display:flex;min-height:100vh}
.sidebar{width:238px;flex:0 0 238px;color:#c7d2db;
  background:linear-gradient(180deg,#17262f 0%,#101a22 100%);
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;
  border-right:1px solid rgba(255,255,255,.06)}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px;
  color:#fff;padding:17px 18px;letter-spacing:.2px;
  border-bottom:1px solid rgba(255,255,255,.07)}
.brand-mark{width:16px;height:16px;border-radius:5px;display:inline-block;
  background:linear-gradient(135deg,#19c79c,var(--brand));
  box-shadow:0 0 0 3px rgba(14,124,102,.16)}
.nav{display:flex;flex-direction:column;padding:12px 10px;gap:3px;overflow-y:auto}
.nav::-webkit-scrollbar{width:6px}
.nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.10);border-radius:3px}
.nav::-webkit-scrollbar-track{background:transparent}
.nav-link{position:relative;display:flex;align-items:center;gap:11px;
  padding:9px 11px;border-radius:9px;color:#9fb1bd;font-weight:500;font-size:13.5px;
  transition:background .16s ease,color .16s ease,box-shadow .16s ease}
.nav-link .nav-ic{width:18px;height:18px;flex:0 0 18px;opacity:.82;
  transition:opacity .16s ease,color .16s ease,transform .16s ease}
.nav-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-link:hover{background:rgba(255,255,255,.055);color:#eef3f6}
.nav-link:hover .nav-ic{opacity:1;transform:translateX(1px)}
.nav-link.active{color:#fff;font-weight:600;
  background:linear-gradient(90deg,rgba(25,199,156,.20),rgba(14,124,102,.10));
  box-shadow:inset 0 0 0 1px rgba(25,199,156,.22)}
.nav-link.active .nav-ic{opacity:1;color:#34dcae}
.nav-link.active::before{content:"";position:absolute;left:-10px;top:7px;bottom:7px;width:3px;
  border-radius:0 3px 3px 0;background:linear-gradient(180deg,#34dcae,var(--brand))}
.nav-link.disabled{color:#5d6b76;cursor:default}
.nav-link.disabled:hover{background:transparent;color:#5d6b76}
.nav-link.disabled .nav-ic{opacity:.4}
.nav-link em{font-style:normal;font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;
  background:rgba(255,255,255,.08);padding:2px 6px;border-radius:10px;margin-left:auto}

.content{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;justify-content:space-between;
  padding:16px 26px;background:var(--surface);border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:40}
.topbar h1{font-size:19px}
.user{display:flex;align-items:center;gap:14px}
.user-name{display:flex;flex-direction:column;text-align:right;line-height:1.25}
.user-name small{color:var(--ink-soft);font-size:12px}
.usage-parts{font-size:11px;color:var(--ink-soft);margin-top:2px;white-space:nowrap}
.user-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:0 0 36px;
  border:1px solid rgba(0,0,0,.08);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.user-avatar--fb{display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#19c79c,var(--brand));color:#fff;font-weight:600;font-size:15px}
.page{padding:24px 26px}

.btn{background:var(--brand);color:#fff;border:0;padding:9px 16px;border-radius:7px;
  font-weight:600;cursor:pointer;font-size:14px}
.btn:hover{background:var(--brand-ink)}
.btn-ghost{display:inline-block;border:1px solid var(--line);background:var(--surface);
  color:var(--ink);padding:8px 14px;border-radius:7px;font-weight:500}
.btn-ghost:hover{border-color:#cdd5db}

.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:22px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px 18px;
  display:flex;flex-direction:column;gap:4px}
.stat-num{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.stat-label{color:var(--ink-soft);font-size:13px}

.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px 20px}
.card-title{font-size:14px;font-weight:600;margin-bottom:14px;color:var(--ink)}

.bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.bars li{display:grid;grid-template-columns:130px 1fr 44px;align-items:center;gap:10px}
.bar-label{color:var(--ink-soft);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar-track{background:#eef1f3;border-radius:6px;height:9px;overflow:hidden}
.bar-fill{display:block;height:100%;background:var(--brand);border-radius:6px}
.bar-fill.alt{background:#5b8fb0}
.bar-val{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;font-size:13px}

.pill-row{display:flex;flex-wrap:wrap;gap:8px}
.pill{display:inline-block;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600;
  background:var(--mutedbg);color:var(--muted)}
.pill.ok{background:var(--okbg);color:var(--brand-ink)}
.pill.warn{background:var(--warnbg);color:var(--warn)}
.pill.bad{background:var(--badbg);color:var(--bad)}
.pill.info{background:var(--infobg);color:var(--info)}
.pill.muted{background:var(--mutedbg);color:var(--muted)}

.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.filters input[type=search],.filters select{padding:9px 11px;border:1px solid var(--line);
  border-radius:7px;font-size:14px;background:var(--surface);color:var(--ink)}
.filters input[type=search]{min-width:240px;flex:1}
.result-meta{color:var(--ink-soft);margin:0 0 12px}

.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:auto}
table.data{width:100%;border-collapse:collapse;font-size:13.5px}
table.data th{text-align:left;font-weight:600;color:var(--ink-soft);font-size:12px;
  text-transform:uppercase;letter-spacing:.03em;padding:11px 14px;border-bottom:1px solid var(--line);background:#fafbfc}
table.data td{padding:11px 14px;border-bottom:1px solid #eef1f3}
table.data tr:last-child td{border-bottom:0}
table.data tbody tr:hover{background:#fafbfc}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;color:var(--brand-ink)}

.pager{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:18px}
.pager-info{color:var(--ink-soft);font-size:13px}

.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#13202b}
.login-card{background:var(--surface);border-radius:14px;padding:34px 32px;width:360px;
  box-shadow:0 18px 50px rgba(0,0,0,.28)}
.login-brand{padding:0;border:0;color:var(--ink);font-size:18px;margin-bottom:6px}
.login-sub{color:var(--ink-soft);margin:0 0 18px;font-size:13.5px}
.login-form{display:flex;flex-direction:column;gap:14px}
.login-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:13px}
.login-form input{padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:14px}
.login-form .btn{margin-top:4px}
.alert{background:var(--badbg);color:var(--bad);padding:10px 12px;border-radius:8px;margin-bottom:14px;font-size:13px}
.notice{background:var(--okbg);color:var(--brand-ink);padding:10px 12px;border-radius:8px;margin-bottom:14px;font-size:13px}

@media(max-width:820px){
  .layout{display:block}
  .sidebar{position:fixed;top:0;left:0;bottom:0;width:240px;flex-basis:240px;
    transform:translateX(-100%);transition:transform .25s ease;z-index:80;overflow-y:auto}
  body.nav-open .sidebar{transform:none;box-shadow:0 0 40px rgba(0,0,0,.4)}
  body.nav-open{overflow:hidden}
  .content{margin-left:0}
  .topbar .nav-toggle{display:inline-flex}
  .layout .nav-overlay{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);
    opacity:0;visibility:hidden;transition:opacity .2s;z-index:70}
  body.nav-open .nav-overlay{opacity:1;visibility:visible}
  .topbar{position:sticky;top:0;background:#fff;z-index:50}
  .grid-2{grid-template-columns:1fr}
}

/* ---- flash, actions, breadcrumb ---- */
.flash{padding:11px 14px;border-radius:8px;margin-bottom:16px;font-size:13.5px}
.flash.notice{background:var(--okbg);color:var(--brand-ink)}
.flash.alert{background:var(--badbg);color:var(--bad)}
.page-actions{display:flex;justify-content:flex-end;margin-bottom:14px}
.breadcrumb{margin:0 0 14px}
.breadcrumb a{color:var(--ink-soft);font-size:13px}
.row-link{color:var(--ink)}
.row-link:hover,table.data .mono a:hover{color:var(--brand-ink)}

/* ---- detail view ---- */
.detail-head{display:flex;align-items:flex-start;justify-content:space-between;
  gap:16px;margin-bottom:20px;flex-wrap:wrap}
.detail-tag{color:var(--ink-soft);font-size:13px;margin-bottom:4px}
.detail-title{font-size:20px;margin:0 0 10px}
.detail-head .pill{margin-right:6px}
.defs{margin:0;display:flex;flex-direction:column}
.dl-row{display:grid;grid-template-columns:150px 1fr;gap:10px;padding:7px 0;
  border-bottom:1px solid #f0f2f4;font-size:13.5px}
.dl-row:last-child{border-bottom:0}
.dl-row dt{color:var(--ink-soft)}
.dl-row dd{margin:0;color:var(--ink);word-break:break-word}
.empty{color:#b4bcc4}
.notes{white-space:pre-wrap;font-family:inherit;margin:0;font-size:13.5px;color:var(--ink);line-height:1.6}
.muted-card{background:#fafbfc}
.empty-note{color:var(--ink-soft);font-size:13px;margin:0}

/* ---- forms ---- */
.asset-form{display:flex;flex-direction:column;gap:18px}
.form-section{padding:18px 20px}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.form-grid.one{grid-template-columns:1fr}
.field{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:var(--ink-soft)}
.field.req::after{content:" *";color:var(--bad)}
.field input,.field select,.field textarea{padding:9px 11px;border:1px solid var(--line);
  border-radius:7px;font-size:14px;font-weight:400;color:var(--ink);background:var(--surface);font-family:inherit}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #cfe6df;border-color:var(--brand)}
.field textarea{resize:vertical}
.checks{display:flex;flex-wrap:wrap;gap:16px;margin-top:14px}
.checks label{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:500;color:var(--ink)}
.form-actions{display:flex;gap:12px;align-items:center}

/* ---- asset photo ---- */
.detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.detail-actions .btn,.detail-actions .btn-ghost{box-sizing:border-box}
.detail-head{align-items:flex-start;margin-bottom:18px}
.detail-side{flex:0 0 auto;display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}
.detail-photo{width:160px;height:160px;object-fit:cover;border:1px solid var(--line);
  border-radius:10px;background:#fff;display:block}
.photo-edit{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}
.photo-thumb{width:150px;height:150px;object-fit:cover;border:1px solid var(--line);
  border-radius:10px;background:#fff}
.photo-thumb.placeholder{display:flex;align-items:center;justify-content:center;
  color:#b4bcc4;font-size:13px;background:#fafbfc}
.photo-controls{flex:1;min-width:220px;display:flex;flex-direction:column;gap:12px}
.photo-controls .hint{display:block;font-weight:400;color:var(--ink-soft);font-size:12px;margin-top:2px}
.photo-controls .rm{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--ink)}

/* ---- phase: calibration + polish ---- */
.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.card-head .card-title{margin-bottom:0}
.btn-sm{display:inline-block;background:var(--brand);color:#fff;padding:6px 12px;border-radius:6px;
  font-size:12.5px;font-weight:600}
.btn-sm:hover{background:var(--brand-ink)}

.stat.link{cursor:pointer;text-decoration:none;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.stat.link:hover{border-color:#cdd5db;box-shadow:0 2px 8px rgba(20,32,43,.05)}
.stat.link.on{border-color:var(--brand)}
.stat.accent-bad .stat-num{color:var(--bad)}
.stat.accent-warn .stat-num{color:var(--warn)}

.list-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.row-action{text-align:right;white-space:nowrap}
.empty-state{text-align:center;padding:34px 24px}
.empty-state .card-title{margin-bottom:8px}

.mini-stats{display:flex;gap:12px;margin-bottom:6px}
.mini{flex:1;display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--line);
  border-radius:9px;font-size:12.5px;color:var(--ink-soft);text-decoration:none;background:#fafbfc}
.mini span{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.mini:hover{border-color:#cdd5db}
.mini.accent-bad span{color:var(--bad)}
.mini.accent-warn span{color:var(--warn)}

.mini-summary{display:flex;flex-wrap:wrap;gap:22px}
.mini-summary > div{display:flex;flex-direction:column;gap:3px}
.ms-label{font-size:12px;color:var(--ink-soft)}
.ms-val{font-size:14px;font-weight:500;color:var(--ink)}

table.data.slim th,table.data.slim td{padding:8px 12px;font-size:13px}

.detail-pills{display:flex;gap:6px;flex-wrap:wrap}
.detail-main{min-width:0}

/* ---- certificate / hint links ---- */
.field .hint{display:inline;font-weight:400;color:var(--ink-soft);font-size:12px}
.doc-link{font-size:12px;color:var(--brand-ink);text-decoration:underline;white-space:nowrap}

/* ---- phase: maintenance ---- */
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.tabs{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}
.tab{padding:8px 16px;font-size:13.5px;font-weight:500;color:var(--ink-soft)}
.tab:hover{background:#fafbfc;color:var(--ink)}
.tab.on{background:var(--brand);color:#fff}
.btn-sm.ghost{background:var(--surface);border:1px solid var(--line);color:var(--ink)}
.btn-sm.ghost:hover{border-color:#cdd5db;background:#fafbfc}
.head-actions{display:inline-flex;gap:8px}
input:disabled{background:#f3f5f6;color:var(--ink-soft)}

/* ---- phase: administration ---- */
.perm-module{margin-bottom:18px}
.perm-module h4{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin:0 0 9px;font-weight:600}
.perm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}
.perm-item{display:flex;gap:9px;align-items:flex-start;padding:9px 11px;border:1px solid var(--line);border-radius:8px;cursor:pointer}
.perm-item:hover{border-color:#cdd5db}
.perm-item input{margin-top:2px}
.perm-item .pi-name{font-weight:600;font-size:13px;color:var(--ink)}
.perm-item .pi-desc{font-size:12px;color:var(--ink-soft)}

.muted-text{color:var(--ink-soft)}

/* ---- phase: approvals ---- */
.detail-status{margin-left:auto;align-self:center}
.btn.danger{background:#c0392b}
.btn.danger:hover{background:#a93226}

/* ---- personnel form ---- */
.photo-box{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.person-photo{width:150px;height:150px;border:1px solid var(--line);border-radius:10px;object-fit:cover;background:#f3f5f6}
.person-photo.placeholder{display:flex;align-items:center;justify-content:center;color:var(--ink-soft);font-size:13px;text-align:center}
.radio-row{display:flex;gap:18px;align-items:center;margin-top:6px}
.radio-row label{display:flex;gap:6px;align-items:center;font-weight:400;font-size:13.5px}
.doc-list{list-style:none;margin:8px 0 0;padding:0}
.doc-list li{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.doc-list li:last-child{border-bottom:0}

/* ---- selection-fields manager ---- */
.field-list{list-style:none;margin:0;padding:0}
.field-list li{margin-bottom:4px}
.field-link{display:block;padding:9px 12px;border-radius:8px;font-size:14px;color:var(--ink)}
.field-link:hover{background:#fafbfc}
.field-link.on{background:var(--brand);color:#fff}
.inline-add{display:flex;gap:8px;margin-bottom:14px}
.inline-add input{flex:1}
.rename-form{display:flex;gap:6px;align-items:center}
.rename-form input{flex:1}
.lookup-table td{vertical-align:middle}
.row-off{opacity:.55}
.btn-sm.danger{background:#c0392b;color:#fff;border:0}
.btn-sm.danger:hover{background:#a93226}

/* ---- Asset list toolbar + selection ---- */
.asset-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:center;
  background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0 0 14px}
.asset-toolbar .tb-group{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.asset-toolbar .tb-hint{color:var(--muted);font-size:.82rem;margin-right:2px}
table.selectable .col-check{width:34px;text-align:center}
table.selectable td.col-check input,table.selectable th.col-check input{cursor:pointer}

/* ---- Barcode labels ---- */
.labels-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:center;
  background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:16px}
.labels-opts{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.labels-opts label{font-size:.82rem;color:var(--muted);display:flex;gap:6px;align-items:center}
.labels-opts label.cbx{color:var(--ink)}
.labels-opts select,.labels-opts input[type=text],.labels-opts input:not([type]){padding:4px 6px;border:1px solid var(--line);border-radius:6px}
.labels-actions{display:flex;gap:8px;align-items:center}
.labels-sheet{display:grid;grid-template-columns:repeat(var(--cols,3),1fr);gap:8px}
.label{border:1px solid #e3e6ea;border-radius:6px;padding:8px 10px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;min-height:92px;background:#fff;break-inside:avoid}
.label .lb-top{font-size:.72rem;font-weight:600;line-height:1.15;margin-bottom:3px;max-width:100%;overflow:hidden}
.label .lb-sub{font-size:.66rem;color:var(--muted);margin-bottom:3px}
.label .bc{width:100%;height:38px;display:block}
.label .bc rect{fill:#000}
.label .lb-tag{font-size:.72rem;margin-top:3px;letter-spacing:.5px}
.label-skip{border:1px dashed #e3e6ea;background:repeating-linear-gradient(45deg,#fafbfc,#fafbfc 6px,#f1f3f5 6px,#f1f3f5 12px)}

@media print{
  .sidebar,.topbar,.no-print,.labels-bar{display:none !important}
  .layout,.content,.page{margin:0 !important;padding:0 !important;background:#fff !important}
  .labels-sheet{gap:0}
  .label{border:1px solid #bbb;border-radius:0;page-break-inside:avoid}
  @page{margin:10mm}
}

/* ---- Reports hub ---- */
.rpt-cat{margin:20px 0 8px;font-size:.95rem}
.rpt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:10px}
.rpt-card{display:flex;flex-direction:column;gap:3px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}
.rpt-card:hover{border-color:#0e7c66;box-shadow:0 2px 8px rgba(14,124,102,.08)}
.rpt-card.disabled{opacity:.55}
.rpt-card-t{font-weight:600}
.rpt-card-t em{font-style:normal;font-size:.64rem;background:var(--mutedbg);color:var(--muted);padding:1px 6px;border-radius:8px;margin-left:4px;vertical-align:middle}
.rpt-card-d{font-size:.78rem;color:var(--muted)}

/* ---- Report controls ---- */
.rpt-bar{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:16px;box-shadow:0 2px 10px rgba(0,0,0,.06)}
.rpt-opts{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.rpt-opts label{display:flex;flex-direction:column;font-size:.7rem;color:var(--muted);gap:3px}
.rpt-opts select{padding:5px 6px;border:1px solid var(--line);border-radius:6px;font-size:.82rem;background:#fff}
.rpt-actions{display:flex;gap:8px;align-items:flex-end}

/* ---- Report document (A4 preview) ---- */
.rpt-doc{background:#fff;border:1px solid var(--line);border-radius:10px;padding:26px 30px;max-width:900px;margin:0 auto}
.rpt-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #0e7c66;padding-bottom:10px;margin-bottom:14px}
.rpt-org{font-style:italic;color:var(--muted);font-size:.85rem}
.rpt-title{font-size:1.4rem;margin:2px 0 0}
.rpt-scope{color:var(--muted);font-size:.85rem;margin-top:2px}
.rpt-logo{max-height:54px;max-width:170px;object-fit:contain}
.rpt-grp-band{background:#0e7c66;color:#fff;font-weight:600;padding:5px 10px;border-radius:4px;margin:16px 0 8px;font-size:.9rem}
.rpt-foot{display:flex;justify-content:space-between;color:var(--muted);font-size:.78rem;font-style:italic;border-top:1px solid var(--line);margin-top:20px;padding-top:8px}
.rpt-labels{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}

/* asset detail block */
.rpt-asset{display:flex;gap:16px;border-bottom:1px solid #e3e6ea;padding:10px 0;page-break-inside:avoid}
.rpt-asset-main{flex:1;min-width:0}
.rpt-asset-side{width:150px;flex-shrink:0;text-align:center}
.rpt-asset-side .bc{width:100%;height:34px}
.rpt-asset-side .bc rect{fill:#000}
.rpt-side-tag{font-size:.72rem;margin-top:2px;letter-spacing:.5px}
.rpt-photo{max-width:100%;max-height:96px;margin-top:8px;border:1px solid #e3e6ea;border-radius:4px}
.rpt-asset-name{font-weight:700;font-size:.9rem;margin-bottom:6px;background:#eef2f4;padding:3px 8px;border-radius:4px}
.rpt-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.rpt-fields dl{margin:0}
.rpt-fields dl>div{display:flex;gap:8px;padding:1px 0;font-size:.82rem}
.rpt-fields dt{color:var(--muted);min-width:108px;flex-shrink:0}
.rpt-fields dd{margin:0;font-weight:500}
.rpt-fields-2{margin-top:6px;border-top:1px dashed #e3e6ea;padding-top:6px}
.rpt-notes{font-size:.8rem;margin-top:5px}

@media print{
  .sidebar,.topbar,.no-print,.rpt-bar{display:none !important}
  .layout,.content,.page{margin:0 !important;padding:0 !important;background:#fff !important}
  .rpt-doc{border:0;border-radius:0;max-width:none;margin:0;padding:0}
  .rpt-grp-band,.rpt-asset-name,.rpt-head{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .rpt-asset{page-break-inside:avoid}
  .label{page-break-inside:avoid}
  @page{margin:12mm}

  /* Fit wide list reports on the page */
  .rpt-table{font-size:8.5pt;table-layout:fixed;width:100%}
  .rpt-table th,.rpt-table td{padding:3px 5px}
  .rpt-table th{white-space:normal;overflow-wrap:break-word}
  /* Keep rows intact and repeat headers on every page */
  .rpt-table thead{display:table-header-group}
  .rpt-table tr{page-break-inside:avoid}
  /* Badges are short labels — keep them compact, but let them wrap between
     words so they can never overlap the next column */
  .sa-badge,.pill{white-space:normal;font-size:8pt;padding:0 4px;border-width:0}
  .rpt-checklist svg{max-width:100%;height:auto}
}

/* ---- Report tables (Asset List, Asset History) ---- */
.rpt-table{width:100%;border-collapse:collapse;font-size:.82rem;table-layout:fixed}
.rpt-table th{text-align:left;border-bottom:1.5px solid #cfd6da;padding:5px 8px;
              white-space:normal;overflow-wrap:break-word;vertical-align:bottom}
.rpt-table td{padding:4px 8px;border-bottom:1px solid #eef1f3;vertical-align:top;
              overflow-wrap:break-word}
.rpt-table tr.rpt-row-grp td{background:#0e7c66;color:#fff;font-weight:600;padding:5px 8px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.rpt-dt{white-space:nowrap}
.rpt-muted{color:var(--muted)}
/* Cells that must never wrap mid-token (dates, money) */
.rpt-table td.nw,.rpt-table th.nw{white-space:nowrap}
/* Only these may break inside a long unbroken string, e.g. serial numbers */
.rpt-table td.brk{overflow-wrap:anywhere;word-break:break-word}
/* Badges inside report tables wrap BETWEEN words rather than overflowing the
   column. (overflow-wrap is break-word here, not anywhere, so a single word is
   never split letter-by-letter.) */
.rpt-table .sa-badge,.rpt-table .pill{white-space:normal;display:inline-block;max-width:100%}

/* ---- Report list/table refinements ---- */
.rpt-list{table-layout:fixed}
.rpt-list td{vertical-align:top}
.rpt-table td.num,.rpt-table th.num{text-align:right}
.rpt-overdue{color:#c0392b;font-weight:600}

/* ---- Report column chooser (screen only) ---- */
.rpt-cols{position:relative;display:inline-block}
.rpt-cols>summary{cursor:pointer;list-style:none;padding:6px 10px;border:1px solid rgba(100,116,139,.38);
                  border-radius:6px;background:#fff;font-size:.86rem;white-space:nowrap}
.rpt-cols>summary::-webkit-details-marker{display:none}
.rpt-cols[open]>summary{border-color:#0e7c66;background:rgba(14,124,102,.07);font-weight:600}
.rpt-cols-pop{position:absolute;z-index:70;top:calc(100% + 4px);left:0;min-width:220px;
              background:#fff;border:1px solid rgba(100,116,139,.32);border-radius:8px;
              box-shadow:0 8px 24px rgba(15,23,42,.14);padding:8px;max-height:340px;overflow:auto}
.rpt-cols-pop label{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:5px;
                    cursor:pointer;font-size:.86rem;white-space:nowrap}
.rpt-cols-pop label:hover{background:rgba(100,116,139,.08)}
.rpt-cols-pop input{margin:0;flex:none}
.rpt-cols-hint{margin:6px 0 0;font-size:.74rem;color:var(--muted);white-space:normal}

/* ---- Audit checklist ---- */
.rpt-checklist{table-layout:fixed}
.rpt-checklist td{vertical-align:top;padding:6px 8px}
.rpt-checklist .bc{width:130px;height:32px;display:block}
.rpt-checklist .bc rect{fill:#000}
.rpt-checklist .chk-tag{font-size:.7rem;margin-top:1px}
.chk-sq{display:inline-block;width:15px;height:15px;border:1.5px solid #555;border-radius:2px;vertical-align:-3px;margin-right:5px}
.chk-line{margin-top:14px;border-bottom:1px solid #b9c0c5;color:var(--muted);font-size:.72rem;padding-bottom:1px}

/* dense report tables fit portrait width */
.rpt-list,.rpt-checklist{font-size:.78rem}
.rpt-list td,.rpt-checklist td{padding:4px 6px}

/* ---- Report options: logo ---- */
.logo-row{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}
.logo-preview{width:200px;height:90px;border:1px solid var(--line);border-radius:8px;display:flex;align-items:center;justify-content:center;background:#fff;padding:8px}
.logo-preview img{max-width:100%;max-height:100%;object-fit:contain}
.logo-none{color:var(--muted);font-size:.85rem}

/* ---- Finance report subtotals / depreciation ---- */
.rpt-table tr.rpt-subtotal td{font-style:italic;border-top:1px solid #cfd6da;background:#f6f8f9}
.rpt-table tr.rpt-grandtotal td{font-weight:700;border-top:2px solid #0e7c66;background:#eef5f2}
.depr-asset{font-weight:600;font-size:.85rem;margin:14px 0 4px}
.depr-table{margin-bottom:4px}
.depr-table thead th{background:#f0ece3;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.depr-sub{text-align:right;font-style:italic;font-weight:600;margin:2px 0 12px;padding-right:4px}

/* ---- Location access picker + transfers ---- */
.loc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px 16px;margin-top:4px}
.loc-chk{display:flex;align-items:center;gap:7px;font-size:.9rem;padding:3px 0}
.loc-chk input{margin:0}
td.nowrap,.nowrap{white-space:nowrap}
.pill.muted{background:#e9edf0;color:#5b6770}

/* ---- Dashboard pending-transfers card ---- */
.transfer-alert{border-left:4px solid var(--accent,#0e7c66);margin-bottom:18px}

/* ---- Personnel Details report cards ---- */
.pd-card{border:1px solid #d8dee2;border-radius:6px;padding:12px 14px;margin:10px 0;break-inside:avoid}
.pd-name{font-weight:600;border-bottom:1px solid #e6eaed;padding-bottom:6px;margin-bottom:8px}
.pd-body{display:flex;gap:18px;align-items:flex-start}
.pd-fields{flex:1;min-width:0}
.pd-barcode{margin-bottom:8px}
.pd-barcode svg{max-height:46px}
.pd-dl{display:grid;grid-template-columns:140px 1fr;gap:2px 12px;margin:0;font-size:.85rem}
.pd-dl dt{color:#5b6770}
.pd-dl dd{margin:0}
.pd-photo{width:150px;height:150px;border:1px solid #d8dee2;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#fafbfc}
.pd-photo img{max-width:100%;max-height:100%;object-fit:cover}

/* ---- Notifications UI ---- */
.switch-label{font-size:.85rem;font-weight:500;display:flex;align-items:center;gap:7px}
.checks.two-col{display:grid;grid-template-columns:1fr 1fr;gap:6px 24px}
.code-url{margin-top:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.82rem;background:#0f1c19;color:#cdebe1;padding:9px 12px;border-radius:6px;word-break:break-all}
.inline-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media (max-width:680px){.checks.two-col{grid-template-columns:1fr}}

/* ---- Checkout receipt ---- */
.receipt-doc .rcpt-cols{display:flex;gap:26px;margin-top:6px}
.receipt-doc .rcpt-block{flex:1;min-width:0}
.rcpt-h{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:#0e7c66;border-bottom:1px solid var(--line);padding-bottom:4px;margin:0 0 8px}
.rcpt-kv{width:100%;border-collapse:collapse;font-size:.9rem}
.rcpt-kv th{text-align:left;font-weight:500;color:var(--muted);padding:3px 12px 3px 0;white-space:nowrap;vertical-align:top;width:38%}
.rcpt-kv td{padding:3px 0;vertical-align:top}
.rcpt-bc{margin-top:10px}
.rcpt-bc svg{display:block;max-width:200px;height:auto}
.rcpt-bc span{font-size:.72rem;color:var(--muted);letter-spacing:.04em}
.rcpt-remarks{margin-top:14px;font-size:.88rem;background:#f6f8f9;border:1px solid var(--line);border-radius:6px;padding:8px 12px}
.rcpt-agree{margin-top:18px}
.rcpt-agree p{font-size:.9rem;line-height:1.55;margin:0}
.rcpt-signs{display:flex;gap:30px;margin-top:40px;flex-wrap:wrap}
.sign-box{flex:1;min-width:200px}
.sign-line{border-bottom:1px solid #1c2529;height:34px}
.sign-cap{font-size:.82rem;font-weight:600;margin-top:6px}
.sign-date{font-size:.8rem;color:var(--muted);margin-top:6px}
@media print{
  .receipt-doc .rcpt-cols{gap:20px}
  .rcpt-h,.rpt-head{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .rcpt-signs{margin-top:54px}
}

/* ---- Loan agreements admin ---- */
.agr-wrap{display:flex;gap:18px;align-items:flex-start;margin-top:8px}
.agr-list{flex:0 0 240px;padding:0;overflow:hidden}
.agr-list .card-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
.agr-list .card-head .card-title{margin:0}
.agr-nav{display:flex;flex-direction:column}
.agr-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.agr-item:last-child{border-bottom:0}
.agr-item:hover{background:#f3f7f6}
.agr-item.on{background:#e6f3ef;font-weight:600;box-shadow:inset 3px 0 0 #0e7c66}
.agr-edit{flex:1;min-width:0}
@media (max-width:760px){.agr-wrap{flex-direction:column}.agr-list{flex:1 1 auto;width:100%}}

/* ---- Company branding in sidebar ---- */
.brand-logo{height:30px;max-width:150px;width:auto;object-fit:contain;background:#fff;border-radius:4px;padding:2px;display:block}
.brand-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-foot{margin-top:auto;padding:14px 18px;border-top:1px solid rgba(255,255,255,.08)}
.brand-logo-foot{max-width:100%;max-height:48px;width:auto;object-fit:contain;background:#fff;border-radius:6px;padding:6px;display:block;margin:0 auto}
@media(max-width:820px){
  .brand-logo{height:24px;max-width:40px;padding:1px}
  .sidebar-foot{padding:8px 6px}
  .brand-logo-foot{max-height:34px;padding:3px}
}

/* ---- Submit guard: progress bar + button spinner ---- */
#nav-progress{position:fixed;top:0;left:0;width:100%;height:3px;z-index:9999;background:transparent;overflow:hidden;opacity:0;transition:opacity .15s ease;pointer-events:none}
#nav-progress.on{opacity:1}
#nav-progress::before{content:"";position:absolute;top:0;height:100%;width:40%;left:-40%;border-radius:0 3px 3px 0;background:var(--brand,#0e7c66);animation:navprog 1.05s ease-in-out infinite}
@keyframes navprog{0%{left:-40%}50%{left:35%}100%{left:100%}}
.spinner{display:inline-block;width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;margin-right:7px;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.is-busy{cursor:progress !important;opacity:.8}
button.is-busy,input.is-busy,a.is-busy{pointer-events:none}

/* ---- Searchable select ---- */
.ss{position:relative}
.ss-native,
.sa-field select.ss-native,
.field select.ss-native,
.form-grid select.ss-native{display:none !important}   /* must beat .sa-field select{display:block} */
.ss-control{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;
  padding:9px 11px;border:1px solid var(--line);border-radius:7px;background:var(--surface);
  font-size:14px;font-weight:400;color:var(--ink);font-family:inherit;text-align:left;cursor:pointer;box-sizing:border-box}
.ss-control:focus{outline:2px solid #cfe6df;border-color:var(--brand)}
.ss-open .ss-control{border-color:var(--brand)}
.ss-ph{color:#9aa5ad}
.ss-caret{color:var(--muted);font-size:11px;flex:0 0 auto}
.ss-invalid .ss-control{border-color:var(--bad,#d14)}
.ss-panel{position:absolute;z-index:60;top:calc(100% + 4px);left:0;right:0;background:#fff;
  border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 26px rgba(0,0,0,.14);
  padding:6px;max-height:300px;flex-direction:column;display:none}
.ss-open .ss-panel{display:flex}
.ss-search{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:6px;
  font-size:13.5px;font-family:inherit;margin-bottom:6px;box-sizing:border-box}
.ss-search:focus{outline:2px solid #cfe6df;border-color:var(--brand)}
.ss-list{list-style:none;margin:0;padding:0;overflow:auto}
.ss-opt{padding:8px 10px;border-radius:6px;font-size:14px;cursor:pointer;color:var(--ink)}
.ss-opt:hover,.ss-opt.active{background:#e6f3ef}
.ss-opt.sel{font-weight:600}
.ss-empty{padding:8px 10px;color:var(--muted);font-size:13px}

/* ---- Auth helper links / messages ---- */
.login-alt{margin-top:16px;text-align:center;font-size:13px;color:var(--muted)}
.login-alt a{color:var(--brand);font-weight:500;text-decoration:none}
.login-alt a:hover{text-decoration:underline}
.login-msg{background:#e6f3ef;border:1px solid #bfe0d5;color:#13503f;border-radius:8px;padding:12px 14px;font-size:13.5px;line-height:1.5}

/* ---- Asset QR (account code) ---- */
.asset-qr{display:flex;flex-direction:column;align-items:center;gap:5px;margin-top:0}
.asset-qr svg.qr{width:140px;height:140px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:6px;box-sizing:border-box}
.asset-qr-cap{text-align:center;line-height:1.3}
.asset-qr-cap span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.asset-qr-cap strong{font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--ink)}

/* ---- Import tool ---- */
.import-errors{margin:0;padding-left:18px;font-size:.85rem;color:#7a3036;max-height:240px;overflow:auto}
.import-errors li{margin:2px 0}

/* ---- Sortable table headers ---- */
table.data th.th-sort{padding:0}
table.data th.th-sort a{display:flex;align-items:center;justify-content:space-between;gap:6px;
  padding:11px 14px;color:inherit;text-decoration:none;cursor:pointer;white-space:nowrap}
table.data th.th-sort a:hover{color:var(--brand)}
table.data th.th-sort.is-sorted{color:var(--brand);background:#f1f7f5}
.sort-ar{font-size:9px;line-height:1;width:9px;text-align:center;flex:0 0 auto}

/* ---- Drag-to-reorder columns ---- */
table.data th[data-col]{cursor:grab}
table.data th.col-dragging{opacity:.4}
table.data th.col-drop-l{box-shadow:inset 2px 0 0 0 var(--brand)}
table.data th.col-drop-r{box-shadow:inset -2px 0 0 0 var(--brand)}
.col-reset{color:var(--brand);font-weight:500;text-decoration:none;font-size:.82rem;margin-left:6px}
.col-reset:hover{text-decoration:underline}

/* ---- Column chooser + hidden columns ---- */
table.data .col-hidden{display:none}
table.data td.num{text-align:right;white-space:nowrap}
.col-chooser-panel{position:fixed;display:none;z-index:60;background:#fff;border:1px solid var(--line);
  border-radius:8px;box-shadow:0 8px 28px rgba(16,32,40,.16);padding:8px;min-width:200px;max-height:60vh;overflow:auto}
.col-chooser-panel.open{display:block}
.col-chooser-item{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:6px;font-size:.85rem;color:var(--ink);cursor:pointer;white-space:nowrap}
.col-chooser-item:hover{background:#f1f7f5}
.col-chooser-item input{margin:0}
.col-chooser-reset{display:block;width:100%;margin-top:6px;padding:7px 8px;border:0;border-top:1px solid var(--line);
  background:none;color:var(--brand);font-weight:500;font-size:.82rem;text-align:left;cursor:pointer}
.col-chooser-reset:hover{text-decoration:underline}

/* ---- Hamburger toggle + overlay (base) ---- */
.nav-toggle{display:none;align-items:center;justify-content:center;width:38px;height:38px;margin-right:6px;
  border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:18px;cursor:pointer}
.nav-toggle:hover{background:#f1f7f5}
.nav-overlay{display:none}
.btn-block{display:block;width:100%;text-align:center;box-sizing:border-box}

/* ---- Scan & audit page ---- */
.scan-page{max-width:560px;margin:0 auto}
.scan-intro h2{margin:4px 0 4px;font-size:20px}
.scan-intro p{margin:0 0 14px;color:var(--ink-soft);font-size:14px}
.scanner{position:relative;width:100%;aspect-ratio:1/1;max-height:62vh;background:#0e1a22;border-radius:16px;
  overflow:hidden;display:flex;align-items:center;justify-content:center}
.scanner video{width:100%;height:100%;object-fit:cover}
.scanner.scan-off video{display:none}
.scan-reticle{position:absolute;inset:18%;pointer-events:none}
.scan-reticle span{position:absolute;width:30px;height:30px;border:3px solid rgba(255,255,255,.9)}
.scan-reticle span:nth-child(1){top:0;left:0;border-right:0;border-bottom:0;border-top-left-radius:8px}
.scan-reticle span:nth-child(2){top:0;right:0;border-left:0;border-bottom:0;border-top-right-radius:8px}
.scan-reticle span:nth-child(3){bottom:0;left:0;border-right:0;border-top:0;border-bottom-left-radius:8px}
.scan-reticle span:nth-child(4){bottom:0;right:0;border-left:0;border-top:0;border-bottom-right-radius:8px}
.scanner.scan-off .scan-reticle{display:none}
.scan-status{position:absolute;left:12px;right:12px;bottom:12px;text-align:center;color:#fff;font-size:13px;
  background:rgba(0,0,0,.5);padding:8px 10px;border-radius:10px;line-height:1.4}
.scanner.scan-off{aspect-ratio:auto;min-height:120px;padding:18px}
.scanner.scan-off .scan-status{position:static;background:none;color:#cfe0d9}
.scan-manual{display:flex;gap:8px;margin-top:14px}
.scan-manual input{flex:1;padding:13px 14px;font-size:16px;border:1px solid var(--line);border-radius:10px}
.scan-manual .btn{padding:13px 18px}
.scan-msg{padding:10px 12px;border-radius:8px;font-size:14px;margin:12px 0}
.scan-msg.bad{background:var(--badbg);color:var(--bad)}

/* asset card */
.sa-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:14px}
.sa-head{display:flex;gap:14px;align-items:flex-start}
.sa-photo{flex:0 0 96px;width:96px;height:96px;border-radius:12px;overflow:hidden;background:#eef1f3;display:flex;align-items:center;justify-content:center}
.sa-photo img{width:100%;height:100%;object-fit:cover}
.sa-photo-ph{font-size:12px;color:var(--ink-soft)}
.sa-id{min-width:0;flex:1}
.sa-tag{font-size:13px;color:var(--ink-soft)}
.sa-name{font-size:18px;font-weight:600;margin:2px 0 6px;line-height:1.25}
.sa-pills{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}
.sa-cat{font-size:12px;color:var(--ink-soft)}
.sa-line{font-size:13px;color:var(--ink-soft);margin-top:2px}
.sa-line strong{color:var(--ink);font-weight:600}
.sa-h{margin:0 0 12px;font-size:15px}
.sa-field{display:block;margin-bottom:12px;font-size:13px;color:var(--ink-soft)}
.sa-field input,.sa-field select,.sa-field textarea{display:block;width:100%;box-sizing:border-box;margin-top:5px;
  padding:12px 12px;font-size:16px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff}
.sa-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sa-file{display:block;width:100%;box-sizing:border-box;padding:11px;border:1px dashed var(--line);border-radius:10px;background:#fafbfc;font-size:14px}
.sa-preview{margin:10px 0}
.sa-preview img{max-width:100%;max-height:240px;border-radius:10px;display:block}
.sa-next{margin-top:4px}

/* ---- Remote support ---- */
.rmt-enable{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--ink);margin-bottom:2px}
.rmt-card .rmt-actions{display:flex;flex-wrap:wrap;gap:10px}
.rmt-btn{display:flex;flex-direction:column;gap:2px;min-width:150px;padding:11px 14px;border-radius:10px;
  border:1px solid var(--line);background:#fff;color:var(--ink);text-decoration:none;cursor:pointer;text-align:left;
  border-left:4px solid var(--brand);transition:background .15s,box-shadow .15s}
.rmt-btn:hover{background:#f1f7f5;box-shadow:0 2px 10px rgba(16,32,40,.08)}
.rmt-btn span{font-weight:600;font-size:14px}
.rmt-btn small{color:var(--ink-soft);font-size:12px}
.rmt-btn.rdp{border-left-color:#2d6cdf}
.rmt-btn.tv{border-left-color:#0e8ee9}
.rmt-btn.ad{border-left-color:#e02d2d}
.rmt-btn.vnc{border-left-color:#7a3fb0}
.rmt-btn.ammyy{border-left-color:#c98a00}
.rmt-btn.copied{background:var(--okbg);border-color:var(--brand)}
.rmt-btn.copied small::after{content:' ✓ copied'}
.rmt-notes{margin:12px 0 0;font-size:13.5px;color:var(--ink)}
.rmt-hint{margin:8px 0 0;font-size:12px;color:var(--ink-soft)}

/* remote launcher tweaks */
.rmt-btn{font:inherit}
.rmt-install{margin:10px 0 0;font-size:12.5px;color:var(--ink-soft)}
.rmt-install a{color:var(--brand-ink);font-weight:500}

.rmt-btn.rust{border-left-color:#1a8f4c}
.rmt-btn.comodo{border-left-color:#0a6ebd}
.rmt-btn.xcitium{border-left-color:#8e2de2}
.rmt-btn.ultra{border-left-color:#0ea5a0}

/* ---- Multi-photo: edit slots, detail/scan thumbnails, lightbox ---- */
.photo-thumb.sm{width:84px;height:84px;object-fit:cover}
.photo-extra-grid{display:flex;gap:14px;flex-wrap:wrap}
.photo-slot{display:flex;flex-direction:column;gap:6px;width:160px}
.photo-slot .photo-thumb.sm.placeholder{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px;border:1px dashed var(--line);border-radius:8px;background:#fafbfc}
.photo-slot .field{font-size:12px}
.photo-slot .rm{font-size:12px;color:var(--muted)}

.photo-extras{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.photo-extra{display:block;width:56px;height:56px;border:1px solid var(--line);border-radius:8px;overflow:hidden;cursor:zoom-in;background:#fff}
.photo-extra img{width:100%;height:100%;object-fit:cover;display:block}
.detail-photo-link{display:block;cursor:zoom-in}

.sa-thumbs{display:flex;gap:8px;flex-wrap:wrap}
.sa-thumb{display:block;width:72px;height:72px;border:1px solid var(--line);border-radius:8px;overflow:hidden;cursor:zoom-in;background:#fff}
.sa-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.sa-photo a{display:block}
.sa-flabel{display:block;font-size:12px;color:var(--muted);margin:8px 0 2px}

.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:200;padding:18px;box-sizing:border-box}
.lightbox[hidden]{display:none}
.lightbox img{max-width:96vw;max-height:92vh;border-radius:8px;box-shadow:0 12px 48px rgba(0,0,0,.5);background:#fff}
.lightbox-close{position:fixed;top:12px;right:18px;color:#fff;font-size:36px;line-height:1;cursor:pointer;font-weight:300;user-select:none}
body.lb-open{overflow:hidden}
@media print{.lightbox{display:none !important}}

/* ---- Scan: out-of-location warning ---- */
.sa-warn{display:block;margin:0 0 12px;padding:11px 14px;border-radius:9px;
  background:#fff4e5;border:1px solid #f0c98a;color:#8a5a12;font-size:13px;line-height:1.45}
.sa-warn strong{color:#7a4d0c}

/* ---- Audit status badges (Audit Status & Findings report) ---- */
.sa-badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;font-weight:600;border:1px solid transparent;white-space:nowrap}
.sa-badge.sa-st-ok{background:#e7f5ef;color:#0e7c66;border-color:#bfe5d8}
.sa-badge.sa-st-due{background:#fff4e5;color:#8a5a12;border-color:#f0c98a}
.sa-badge.sa-st-no{background:#f1f3f5;color:#6b7682;border-color:#dde2e6}

/* ---- ERP integration page ---- */
.erp-runbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.erp-runbar form{margin:0}

/* ---- Sidebar clocks ---- */
.sidebar-clock{margin-top:auto;padding:13px 16px 14px;border-top:1px solid rgba(255,255,255,.07);
  background:linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,0))}
.sidebar-clock + .sidebar-foot{margin-top:0;border-top:none;padding-top:6px}
.clk-local .clk-time{font-size:21px;font-weight:700;color:#fff;letter-spacing:.5px;font-variant-numeric:tabular-nums;line-height:1.1}
.clk-local .clk-sub{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:rgba(255,255,255,.5);margin-top:3px}
.clk-intl{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12px;margin-top:7px}
.clk-intl .clk-label{color:rgba(255,255,255,.5)}
.clk-intl .clk-time{font-weight:600;color:rgba(255,255,255,.88);font-variant-numeric:tabular-nums}
.clk-local .clk-label{color:rgba(255,255,255,.7);font-weight:600}

/* ---- Login logo ---- */
.login-head{text-align:center;margin-bottom:8px}
.login-logo{display:block;width:auto;height:auto;max-width:240px;max-height:84px;margin:2px auto 10px;object-fit:contain}
.login-head .login-brand{justify-content:center;margin-bottom:0}

/* Export dropdown (CSV / Excel) */
.export-menu{position:relative;display:inline-block}
.export-menu>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px}
.export-menu>summary::-webkit-details-marker{display:none}
.export-menu>summary::marker{content:""}
.export-menu-list{position:absolute;z-index:50;right:0;margin-top:6px;min-width:172px;background:#fff;
  border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 26px rgba(16,32,40,.16);padding:6px;
  display:flex;flex-direction:column}
.export-menu-list a{padding:9px 12px;border-radius:7px;color:var(--ink);text-decoration:none;font-size:13.5px;white-space:nowrap}
.export-menu-list a:hover{background:#f1f6f5}

/* --- Sidebar: scrollable nav + collapse/expand --- */
.nav{flex:1 1 auto;min-height:0}                         /* long menus scroll, never clip */
.sidebar{transition:width .18s ease, flex-basis .18s ease}
.sidebar-collapse{display:flex;align-items:center;gap:11px;margin:4px 10px 10px;padding:9px 12px;
  border:0;background:transparent;color:#8ea3b0;cursor:pointer;border-radius:9px;font:inherit;font-size:13px;flex:0 0 auto}
.sidebar-collapse:hover{background:rgba(255,255,255,.06);color:#eef3f6}
.sidebar-collapse .nav-ic{width:18px;height:18px;flex:0 0 18px;transition:transform .18s ease}
@media(min-width:821px){
  .sidebar.collapsed{width:66px;flex:0 0 66px}
  .sidebar.collapsed .brand-name,
  .sidebar.collapsed .nav-text,
  .sidebar.collapsed .sidebar-clock,
  .sidebar.collapsed .sidebar-foot,
  .sidebar.collapsed .nav-link em{display:none}
  .sidebar.collapsed .brand{justify-content:center}
  .sidebar.collapsed .nav{padding:12px 8px}
  .sidebar.collapsed .nav-link{justify-content:center;gap:0;padding-left:0;padding-right:0}
  .sidebar.collapsed .nav-link.active::before{left:-8px}
  .sidebar.collapsed .sidebar-collapse{justify-content:center;margin:4px 8px 10px;padding:9px 0}
  .sidebar.collapsed .sidebar-collapse .nav-ic{transform:rotate(180deg)}
}
@media(max-width:820px){ .sidebar-collapse{display:none} }

/* --- Drag & drop attachment upload --- */
.dropzone{position:relative;border:2px dashed var(--line);border-radius:12px;background:#fbfdfc;
  padding:20px 16px;text-align:center;transition:border-color .15s,background .15s;cursor:pointer}
.dropzone:hover{border-color:var(--brand);background:#f4faf9}
.dropzone.dz-over{border-color:var(--brand);background:#eaf6f4;border-style:solid}
.dropzone input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.dropzone.dz-over .dz-ic{transform:translateY(-2px)}
.dz-ic{width:26px;height:26px;color:var(--brand);transition:transform .15s}
.dz-title{margin:6px 0 2px;font-weight:600;font-size:14px;color:var(--ink)}
.dz-sub{margin:0;font-size:12.5px;color:var(--muted)}
.dz-browse{color:var(--brand-ink);text-decoration:underline}
.dz-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;text-align:left;
  position:relative;z-index:2}
.dz-list li{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);
  border-radius:8px;padding:7px 10px;font-size:13px}
.dz-list .dz-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dz-list .dz-size{color:var(--muted);font-size:11.5px;flex:0 0 auto}
.dz-list .dz-rm{flex:0 0 auto;border:0;background:transparent;color:var(--muted);cursor:pointer;
  font-size:16px;line-height:1;padding:2px 4px;border-radius:5px}
.dz-list .dz-rm:hover{background:#f1f3f4;color:#b23b3b}
.dz-list .dz-bad{color:#b23b3b}

/* --- Attachment list with file-type icons --- */
.doc-list li{gap:12px}
.doc-main{display:flex;align-items:center;gap:11px;min-width:0;flex:1}
.doc-ic{position:relative;flex:0 0 34px;width:34px;height:40px;color:var(--ic,#5c6b72);
  display:flex;align-items:center;justify-content:center}
.doc-ic svg{width:34px;height:40px}
.doc-ic em{position:absolute;bottom:6px;left:0;right:0;text-align:center;font-style:normal;
  font-size:8.5px;font-weight:700;letter-spacing:.02em;color:#fff;background:var(--ic,#5c6b72);
  margin:0 4px;border-radius:3px;padding:1px 0;line-height:1.25}
.doc-meta{display:flex;flex-direction:column;min-width:0}
.doc-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc-sub{font-size:11.5px;color:var(--muted)}
.doc-actions{display:flex;gap:10px;flex:0 0 auto}

/* --- Photo recovery grid --- */
.recover-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-top:4px}
.recover-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;
  display:flex;flex-direction:column}
.recover-card img{width:100%;height:150px;object-fit:cover;background:#f1f3f4;display:block}
.rc-meta{padding:8px 10px 4px;display:flex;flex-direction:column;gap:2px;font-size:12px}
.rc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px}
.rc-form{padding:8px 10px 10px;display:flex;flex-direction:column;gap:6px}
.rc-form select{width:100%;font-size:12.5px}

/* --- Photo recovery: zoom, slots, lightbox --- */
.rc-zoom{display:block;width:100%;padding:0;border:0;background:#f1f3f4;cursor:zoom-in;position:relative}
.rc-zoom img{width:100%;height:150px;object-fit:cover;display:block}
.rc-zoom-ic{position:absolute;right:8px;bottom:8px;background:rgba(16,36,43,.72);color:#fff;
  font-size:13px;line-height:1;padding:5px 7px;border-radius:6px;opacity:0;transition:opacity .15s}
.rc-zoom:hover .rc-zoom-ic{opacity:1}

.slot-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.slot-box{width:104px;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--surface);
  display:flex;flex-direction:column}
.slot-box.empty{border-style:dashed}
.slot-box img{width:100%;height:70px;object-fit:cover;display:block}
.slot-ph{height:70px;display:flex;align-items:center;justify-content:center;color:var(--muted);
  font-size:11.5px;background:#f7f9f9}
.slot-lbl{font-size:11px;text-align:center;padding:4px 2px;color:var(--muted)}
.slot-box.filled .slot-lbl{color:var(--ink);font-weight:600}

.lightbox{position:fixed;inset:0;z-index:200;background:rgba(10,20,24,.88);
  display:flex;align-items:center;justify-content:center;padding:28px}
.lightbox[hidden]{display:none}
.lb-fig{margin:0;max-width:92vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:10px}
.lb-fig img{max-width:92vw;max-height:82vh;object-fit:contain;border-radius:8px;background:#fff}
.lb-fig figcaption{color:#cfe3df;font-size:12px}
.lb-close{position:absolute;top:16px;right:20px;background:transparent;border:0;color:#fff;
  font-size:34px;line-height:1;cursor:pointer;padding:4px 10px;border-radius:8px}
.lb-close:hover{background:rgba(255,255,255,.12)}

/* --- Hover image preview (asset name in lists) --- */
.hover-preview{position:fixed;z-index:300;pointer-events:none;background:#fff;
  border:1px solid var(--line);border-radius:10px;padding:6px;
  box-shadow:0 12px 30px rgba(16,32,40,.22);max-width:230px}
.hover-preview[hidden]{display:none}
.hover-preview img{display:block;width:214px;height:150px;object-fit:cover;border-radius:6px;background:#f1f3f4}
.hp-cap{display:block;font-size:11px;color:var(--muted);text-align:center;padding:5px 2px 1px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.has-photo{font-size:8px;color:var(--brand);vertical-align:middle;opacity:.65;margin-left:3px}
tr:hover .has-photo{opacity:1}

/* --- Photo column + toolbar toggle --- */
.col-photo{width:64px}
.row-thumb{width:52px;height:40px;object-fit:cover;border-radius:6px;display:block;
  background:#f1f3f4;border:1px solid var(--line)}
.thumb-link{display:inline-block;line-height:0}
.thumb-none{color:var(--muted)}
.col-toggle{display:inline-flex;align-items:center;gap:6px}
.col-toggle svg{width:15px;height:15px}
.col-toggle.on{background:var(--brand);border-color:var(--brand);color:#fff}
.col-toggle.on:hover{background:var(--brand-ink);border-color:var(--brand-ink)}

/* --- Remove attachment control (edit forms) --- */
.doc-rm{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);
  cursor:pointer;white-space:nowrap}
.doc-rm input{margin:0}
.doc-rm:hover{color:#b23b3b}
.doc-list li:has(.doc-rm input:checked){background:#fdf2f2;border-radius:8px}
.doc-list li:has(.doc-rm input:checked) .doc-name{text-decoration:line-through;color:#b23b3b}
.doc-list li:has(.doc-rm input:checked) .doc-rm{color:#b23b3b;font-weight:600}

/* --- Clearance certificate signature blocks (report shell) --- */
.clr-sign{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:36px;font-size:.82rem}
.clr-sign div{border-top:1px solid var(--ink);padding-top:6px}
@media print{ .clr-sign{page-break-inside:avoid} }


/* --- Clearance certificate table (self-contained; does NOT use .rpt-table) --- */
.clr-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px;margin-top:4px}
.clr-table th{text-align:left;font-weight:600;color:#5c6b72;font-size:10.5px;letter-spacing:.03em;
  text-transform:uppercase;padding:6px 6px;border-bottom:1.5px solid #cfd6da;white-space:normal}
.clr-table td{padding:7px 6px;border-bottom:1px solid #eef1f3;vertical-align:top;
  overflow-wrap:break-word;word-break:normal}
.clr-table .c-no  {width:5%}
.clr-table .c-tag {width:17%}
.clr-table .c-desc{width:23%}
.clr-table .c-cat {width:14%}
.clr-table .c-ser {width:19%}
.clr-table .c-cond{width:16%}
.clr-table .c-ok  {width:6%;text-align:center}
.clr-table td.tag{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}
.clr-table td.ser{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:#5c6b72;
  overflow-wrap:anywhere}
.clr-table td.cat{color:#5c6b72}
.clr-table td.fill{border-bottom:1px solid #eef1f3}
.clr-table td.ok{text-align:center;font-size:14px;color:#5c6b72}
.clr-table tr{page-break-inside:avoid}

/* --- Data quality dashboard --- */
.dq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:4px}
.dq-card{border:1px solid var(--line);border-radius:11px;padding:13px 14px;background:var(--surface);
  display:flex;flex-direction:column;gap:6px}
.dq-card.clean{opacity:.72;background:#fbfdfc}
.dq-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.dq-label{font-weight:600;font-size:13.5px;line-height:1.25}
.dq-num{font-size:26px;font-weight:700;color:var(--brand-ink);text-decoration:none;line-height:1.1}
a.dq-num:hover{text-decoration:underline}
.dq-num.clean{color:#1c7c54;font-size:22px}
.dq-bar{height:5px;background:#eef1f3;border-radius:4px;overflow:hidden}
.dq-bar span{display:block;height:100%;background:var(--brand);border-radius:4px}
.dq-why{margin:0;font-size:12px;color:var(--muted);line-height:1.4}
.dq-fix{margin:0;font-size:12px;color:var(--ink-soft);line-height:1.4}
.dq-card .btn-sm{align-self:flex-start;margin-top:2px}

/* --- Bulk edit --- */
.bulk-fields{display:flex;flex-direction:column;gap:9px}
.bulk-row{display:grid;grid-template-columns:210px minmax(180px,1fr) 150px;gap:12px;align-items:center}
.bulk-tick{display:flex;align-items:center;gap:7px;font-weight:600;font-size:13.5px;cursor:pointer}
.bulk-tick input{margin:0}
.bulk-clear{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);cursor:pointer}
.bulk-clear input{margin:0}
.bulk-row select,.bulk-row input[type=text],.bulk-row input:not([type=checkbox]){width:100%}
.bulk-row:has(.bulk-tick input:not(:checked)) select,
.bulk-row:has(.bulk-tick input:not(:checked)) input:not([type=checkbox]){opacity:.5}
@media(max-width:820px){ .bulk-row{grid-template-columns:1fr} }

/* --- Audit campaigns --- */
.camp-progress{display:flex;align-items:center;gap:12px;margin-top:6px}
.camp-bar{flex:1;height:12px;background:#eef1f3;border-radius:7px;overflow:hidden}
.camp-bar span{display:block;height:100%;background:linear-gradient(90deg,#0e8e80,#3ec9b1);border-radius:7px;
  transition:width .3s ease}
.camp-bar.sm{height:7px}
.camp-pct{font-weight:700;font-size:18px;color:var(--brand-ink);min-width:48px;text-align:right}

/* --- Global search (topbar) --- */
.topbar{gap:16px}
.topbar h1{flex:0 0 auto}
.topsearch{position:relative;display:flex;align-items:center;flex:1 1 auto;max-width:460px;margin-left:8px}
.topsearch .ts-ic{position:absolute;left:11px;width:16px;height:16px;color:var(--muted);pointer-events:none}
.topsearch input[type=search]{width:100%;padding:8px 34px 8px 34px;border:1px solid var(--line);
  border-radius:9px;font-size:13.5px;background:#f7f9f9;color:var(--ink)}
.topsearch input[type=search]:focus{background:#fff;border-color:var(--brand);outline:none;
  box-shadow:0 0 0 3px rgba(14,142,128,.12)}
.topsearch input[type=search]::-webkit-search-cancel-button{cursor:pointer}
.ts-kbd{position:absolute;right:9px;font-size:10.5px;color:var(--muted);border:1px solid var(--line);
  border-radius:4px;padding:1px 5px;background:#fff;pointer-events:none;font-family:inherit}
.topsearch input:focus ~ .ts-kbd{display:none}
@media(max-width:900px){ .topsearch{max-width:none;margin-left:4px} .ts-kbd{display:none} }
@media(max-width:640px){ .topsearch{display:none} }

/* Exact-match jump card */
.gs-exact{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:12px;
  background:#eefaf7;border:1px solid #b9e4db;border-radius:11px;text-decoration:none;color:var(--ink)}
.gs-exact:hover{border-color:var(--brand);box-shadow:0 2px 10px rgba(14,142,128,.10)}
.gs-exact-tag{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:#fff;background:var(--brand);padding:3px 7px;border-radius:5px;flex:0 0 auto}
.gs-exact-main{flex:1;font-size:14px}
.gs-exact-go{color:var(--brand-ink);font-weight:600;font-size:13px;flex:0 0 auto}
.gsearch-form{margin-bottom:14px}

/* --- Asset passport (self-contained; does NOT reuse .rpt-table/.rpt-asset) --- */
.pp-doc{font-size:12.5px}
.pp-strip{display:grid;grid-template-columns:132px 1fr 108px;gap:16px;align-items:start;
  padding-bottom:14px;margin-bottom:12px;border-bottom:1px solid var(--line)}
.pp-photo img{width:132px;height:104px;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block}
.pp-nophoto{width:132px;height:104px;border:1px dashed var(--line);border-radius:8px;display:flex;
  align-items:center;justify-content:center;color:var(--muted);font-size:11px;background:#f7f9f9}
.pp-codes{display:flex;flex-direction:column;align-items:center;gap:2px}
.pp-codes svg{width:88px;height:88px}
.pp-codes .pp-bc{margin-top:6px}
.pp-codes .pp-bc svg{width:104px;height:26px}
.pp-codecap{font-size:9px;color:var(--muted);text-align:center;letter-spacing:.02em}

.pp-table{width:100%;border-collapse:collapse;table-layout:auto}
.pp-table th{text-align:left;font-weight:600;color:#5c6b72;font-size:11px;padding:5px 8px 5px 0;
  white-space:nowrap;vertical-align:top;width:1%}
.pp-table td{padding:5px 10px 5px 0;border-bottom:1px solid #f0f3f4;vertical-align:top}
.pp-ident td{font-size:12.5px}

.pp-cols{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-bottom:6px}
.pp-h{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--brand-ink);
  border-bottom:1.5px solid var(--brand);padding-bottom:4px;margin:14px 0 6px}
.pp-docs{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.pp-docs li{display:flex;align-items:center;gap:7px;font-size:12px}
.pp-doctype{font-size:8.5px;font-weight:700;color:#fff;background:#5c6b72;border-radius:3px;
  padding:2px 4px;letter-spacing:.02em;flex:0 0 auto}
.pp-muted{color:var(--muted);font-size:11.5px}
.pp-note{margin:2px 0 0;font-size:12px;line-height:1.45}
.pp-terms{font-size:11.5px;line-height:1.5;margin:4px 0 0}
.pp-sign{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:26px;font-size:11.5px}
.pp-sign div{border-top:1px solid var(--ink);padding-top:6px}

@media print{
  /* Force A4 PORTRAIT. Without this the browser's Layout setting (which may be left on
     Landscape from a previous print) gives only ~740px of usable height and the sheet
     splits across two pages. */
  @page{size:A4 portrait;margin:10mm}

  .pp-doc{font-size:10.5px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pp-doc .rpt-title{font-size:1.25rem}
  .pp-doc .rpt-head{padding-bottom:8px;margin-bottom:10px}
  .pp-doc .rpt-logo{max-height:38px}

  /* tighten everything a little for paper */
  .pp-strip{grid-template-columns:112px 1fr 92px;gap:12px;padding-bottom:9px;margin-bottom:9px}
  .pp-photo img,.pp-nophoto{width:112px;height:88px}
  .pp-codes svg{width:76px;height:76px}
  .pp-codes .pp-bc svg{width:90px;height:22px}
  .pp-table th,.pp-table td{padding:3px 8px 3px 0}
  .pp-h{margin:9px 0 4px;padding-bottom:3px}
  .pp-cols{gap:20px}
  .pp-terms{font-size:10px;line-height:1.4}
  .pp-sign{margin-top:16px;gap:20px;font-size:10.5px}

  /* keep blocks whole; never orphan the signatures */
  .pp-strip,.pp-cols,.pp-sign{page-break-inside:avoid}
  .pp-doc .pp-h,.pp-terms{page-break-after:avoid}
  .pp-doc{page-break-inside:avoid}
}

/* --- Saved views --- */
.sv-menu > summary.on{background:var(--brand);border-color:var(--brand);color:#fff}
.sv-list{min-width:280px;max-width:340px;padding:8px}
.sv-grp{display:block;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);
  padding:5px 8px 3px}
.sv-row{display:flex;align-items:center;gap:4px;border-radius:7px}
.sv-row:hover{background:#f1f6f5}
.sv-row.active{background:#eaf6f4}
.sv-row > a{flex:1;padding:8px 8px;font-size:13.5px;color:var(--ink);text-decoration:none;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sv-row form{display:flex;margin:0}
.sv-del{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:15px;
  line-height:1;padding:4px 7px;border-radius:5px}
.sv-del:hover{background:#fdecec;color:#b23b3b}
.sv-shared{font-style:normal;font-size:9.5px;background:#e7eef1;color:#5c6b72;border-radius:4px;
  padding:1px 5px;margin-left:5px}
.sv-sep{border:0;border-top:1px solid var(--line);margin:7px 4px}
.sv-save{display:flex;flex-direction:column;gap:6px;padding:4px}
.sv-save input[name=sv_name]{width:100%;font-size:13px}
.sv-shareopt{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);cursor:pointer}
.sv-shareopt input{margin:0}
.sv-hint{display:block;padding:8px;font-size:12px;color:var(--muted);line-height:1.4}

/* --- Notification bell (sits inside .user, just left of the avatar) --- */
.user{position:relative}
.bell{position:static;flex:0 0 auto;margin-right:4px}
.bell > summary{position:relative}
.bell > summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:#fff;
  color:var(--ink-soft);position:relative}
.bell > summary::-webkit-details-marker{display:none}
.bell > summary:hover{background:#f1f6f5;color:var(--ink)}
.bell > summary svg{width:19px;height:19px}
.bell-dot{position:absolute;top:-5px;right:-5px;min-width:17px;height:17px;padding:0 4px;
  background:#5c6b72;color:#fff;border-radius:9px;font-size:10px;font-weight:700;line-height:17px;
  text-align:center;border:2px solid #fff}
.bell-dot.hot{background:#b23b3b}
.bell-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:120;width:360px;max-width:92vw;background:#fff;
  border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 36px rgba(16,32,40,.18);overflow:hidden}
.bell-head{display:flex;justify-content:space-between;align-items:center;padding:11px 13px;
  border-bottom:1px solid var(--line);font-size:13.5px}
.bell-head form{margin:0}
.bell-clear{border:0;background:transparent;color:var(--brand-ink);font-size:12px;cursor:pointer;
  padding:2px 4px;border-radius:5px}
.bell-clear:hover{background:#eaf6f4}
.bell-empty{margin:0;padding:20px 14px;text-align:center;color:var(--muted);font-size:13px}
.bell-list{list-style:none;margin:0;padding:4px;max-height:60vh;overflow-y:auto}
.bell-item{display:flex;align-items:flex-start;gap:9px;padding:9px 8px;border-radius:9px}
.bell-item:hover{background:#f7f9f9}
.bell-ic{flex:0 0 30px;width:30px;height:30px;border-radius:8px;display:flex;align-items:center;
  justify-content:center;background:#eef1f3;color:#5c6b72}
.bell-ic svg{width:16px;height:16px}
.bell-item.sev-high .bell-ic{background:#fdecec;color:#b23b3b}
.bell-item.sev-warn .bell-ic{background:#fdf3e3;color:#b26b00}
.bell-item.sev-info .bell-ic{background:#eaf6f4;color:var(--brand-ink)}
.bell-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--ink)}
.bell-title{font-size:13px;font-weight:600;line-height:1.25}
.bell-text{font-size:11.5px;color:var(--muted);line-height:1.35;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bell-item form{margin:0;flex:0 0 auto}
.bell-x{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:16px;line-height:1;
  padding:3px 6px;border-radius:5px}
.bell-x:hover{background:#f1f3f4;color:#b23b3b}
.bell-more{margin:0;padding:8px;text-align:center;font-size:11.5px;color:var(--muted);
  border-top:1px solid var(--line)}
@media(max-width:640px){ .bell-panel{width:300px} }

/* Scan & audit: custodian required for Loaned out / In use */
.sa-field.sa-need .ss-control,
.sa-field.sa-need select{border-color:#b26b00;box-shadow:0 0 0 3px rgba(178,107,0,.12)}
.sa-hint{display:block;margin-top:5px;font-size:11.5px;color:#b26b00}

/* Scan & audit: "Not found" action */
.sa-notfound{margin-top:8px;padding:12px;font-size:15px;border-radius:10px;cursor:pointer;
  background:#fff;color:#b23b3b;border:1px solid #e5c2c2;font-weight:600}
.sa-notfound:hover{background:#fdf2f2;border-color:#b23b3b}

/* --- Licence watermark in the page footer --- */
.app-license-note{margin:18px 0 4px;text-align:center;font-size:.74rem;color:var(--muted);opacity:.85}
.app-license-note .mono{font-size:.95em}
@media print{.app-license-note{display:none}}
