/* Lendra — app layer on the Ownware UI kit (assets/ui/ownware-ui.css). Accent + app-specific rules only; generic rules come from the kit. */
:root{--accent:#0d9488;--accent-dark:#0f766e;--accent-soft:#e0f5f2;--on-accent:#ffffff;--accent-ink:var(--on-accent)}
html[data-theme="dark"]{--accent:#2dd4bf;--accent-dark:#5eead4;--accent-soft:#0e3330;--on-accent:#04211e;--accent-ink:var(--on-accent)}

/* asset + loan states the kit doesn't know */
.pill.available{background:var(--okbg);color:var(--ok)}
.pill.checked_out,.pill.out{background:var(--infobg);color:var(--info)}
.pill.maintenance{background:var(--warnbg);color:var(--warn)}
.pill.retired,.pill.off{background:var(--chip);color:var(--sub)}
.pill.returned{background:var(--okbg);color:var(--ok)}

.tag{font-family:var(--mono);font-size:.82rem;color:var(--sub)}
.due-late{color:var(--bad);font-weight:700}
.meta-list{list-style:none;margin:0;padding:0}
.meta-list li{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:.92rem}
.meta-list li:last-child{border-bottom:none}
.meta-list .k{color:var(--sub)}
.grid-side{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}

/* ── the check-out desk (the hero) ── */
.desk-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
.issue .scanrow{margin-bottom:12px}
.issue #scan{font-size:1.2rem;min-height:56px;padding:12px 16px;border-radius:12px;font-family:var(--mono);letter-spacing:.04em}
.issue #scan:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}

.verdict{border-radius:12px;padding:14px 16px;margin-bottom:16px;border:1px solid var(--line);border-left:4px solid var(--faint);background:var(--bg)}
.verdict .v-title{font-family:var(--display);font-weight:700;font-size:1.02rem}
.verdict .v-sub{font-size:.9rem;color:var(--sub);margin-top:2px}
.verdict .v-extra{margin-top:10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.verdict.idle{border-left-color:var(--line)}
.verdict.ok{border-left-color:var(--ok);background:var(--okbg)}
.verdict.ok .v-title{color:var(--ok)} .verdict.ok .v-sub{color:color-mix(in srgb,var(--ok) 75%,var(--ink))}
.verdict.no{border-left-color:var(--bad);background:var(--badbg)}
.verdict.no .v-title{color:var(--bad)} .verdict.no .v-sub{color:color-mix(in srgb,var(--bad) 70%,var(--ink))}

/* the out/overdue board */
.boardsec{margin-bottom:14px}
.boardsec:last-child{margin-bottom:0}
.boardsec h3{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--sub);margin:0 0 6px;display:flex;align-items:center;gap:7px}
.boardsec h3 .n{background:var(--chip);color:var(--sub);border-radius:999px;padding:0 7px;font-size:.7rem}
.boardsec h3.overdue{color:var(--bad)} .boardsec h3.overdue .n{background:var(--badbg);color:var(--bad)}
.boardsec h3.today{color:var(--warn)} .boardsec h3.today .n{background:var(--warnbg);color:var(--warn)}
.loanlist{list-style:none;margin:0;padding:0}
.loanlist li{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto auto;gap:8px 12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line2)}
.loanlist li:last-child{border-bottom:0}
.loanlist .it{min-width:0;display:flex;flex-direction:column}
.loanlist .it .tag{font-size:.74rem}
.loanlist .bo{min-width:0;font-size:.88rem;display:flex;flex-direction:column}
.loanlist .bo a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.loanlist .bo .dept{font-size:.74rem;color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.loanlist .du{white-space:nowrap;text-align:right}
.loanlist .ac{display:flex;gap:4px;justify-content:flex-end}

/* asset photos */
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:1px solid var(--line);display:block}

@media(max-width:1100px){.desk-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:900px){
  .grid-side{grid-template-columns:minmax(0,1fr)}
  .loanlist li{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}
  .loanlist .bo{grid-column:1} .loanlist .du{grid-column:2;grid-row:1} .loanlist .ac{grid-column:2}
}

@media print{
  /* Paper is always light — reset the tokens so a dark-theme user prints readable ink. */
  html[data-theme="dark"]{
    --ink:#0f172a; --sub:#5b6470; --line:#e5e7eb; --bg:#fff; --card:#fff;
    --field-bg:#fff; --hover-bg:#fff; --chip:#eef1f6; --surface:#fff; --surface-alt:#fff;
    --accent:#0d9488; --accent-dark:#0f766e;
  }}

/* fix wave 2026-09-24: the sidebar is a flex column that scrolls; with a long nav the brand (overflow:hidden,
   so its min-height is 0) was shrunk to 0px and the business name vanished from the top of every page. */
.side .brand{flex-shrink:0} /* fix wave */

/* 3.2.0 camera scanning at the desk */
[hidden]{display:none!important}
.campanel{position:relative;margin-top:10px;border-radius:12px;overflow:hidden;background:#000;max-width:520px}
.campanel video{display:block;width:100%;height:auto;max-height:46vh;object-fit:cover}
.campanel .camline{position:absolute;left:8%;right:8%;top:50%;height:2px;background:rgba(255,64,64,.85);box-shadow:0 0 8px rgba(255,64,64,.9)}
/* 3.2.0 signature pad (Jobora's widget) */
.sigwrap{border:1px dashed var(--line);border-radius:var(--radius-sm,8px);background:var(--card);padding:6px}
.sigpad{width:100%;height:170px;display:block;touch-action:none;border-radius:6px;background:#fff;cursor:crosshair}
html[data-theme="dark"] .sigpad{background:#f8fafc}
.sigimg{max-width:220px;height:auto;background:#fff;border:1px solid var(--line);border-radius:6px;padding:2px}
.num{text-align:right;font-variant-numeric:tabular-nums}
