/* ---------------------------------------------------------------------------------------------
   The Front desk (0.2.0, docs/design/front-desk.md). Its own file, as the Helpdesk's is, so the module's styling sits apart from the rest;
   it uses the design system's tokens (app.css) and adds only what the building's Front desk tab, the Configure kiosk page, the injury
   and near-miss book and its printed sheet need.
   --------------------------------------------------------------------------------------------- */

/* The way into the kiosk page, prominent on the building's Front desk tab. */
.fd-kiosk-card{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px 18px;border:1px solid var(--border);border-radius:var(--r);background:var(--brand-softer);margin-bottom:16px}
.fd-kiosk-card h3{margin:0 0 2px;font-size:15px}
.fd-kiosk-card p{margin:0}
.fd-kiosk-card .btn{white-space:nowrap}

/* Counts across the top of a tab or page. */
.fd-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.fd-tile{border:1px solid var(--border);border-radius:var(--r);background:#fff;padding:12px 14px}
.fd-tile .n{font-size:24px;font-weight:700;letter-spacing:-.5px;line-height:1.1}
.fd-tile .l{font-size:12px;color:var(--muted);margin-top:2px}
.fd-tile.warn{border-color:#e8c779;background:var(--warn-soft)}
.fd-tile.bad{border-color:#e6a3a0;background:var(--bad-soft)}

.fd-table td,.fd-table th{vertical-align:top}
.fd-table .actions{white-space:nowrap;text-align:right}
.fd-table .actions .btn{margin-left:4px}
.fd-sub{display:block;font-size:12px;color:var(--muted)}
.linklike{background:none;border:0;padding:0;color:var(--brand-strong);cursor:pointer;font:inherit;text-align:left}
.linklike:hover{text-decoration:underline}

/* Pairing codes and kiosks on the Configure kiosk page. */
.fd-device{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--border)}
.fd-device:last-child{border-bottom:0}
.fd-device h4{margin:0 0 4px;font-size:14px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.fd-device .facts{display:flex;gap:6px 18px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.fd-device .facts b{color:var(--ink);font-weight:600}
.fd-device .row-actions{margin:0;flex-wrap:wrap}
.fd-code{font-family:var(--mono);font-size:26px;font-weight:700;letter-spacing:.12em;color:var(--ink);background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:var(--r-sm);padding:4px 12px;display:inline-block}
.fd-pin{font-family:var(--mono);font-size:22px;letter-spacing:.5em;text-align:center;max-width:12em}

/* The kiosk's gallery. */
.fd-pics{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;padding:16px 18px}
.fd-pic{border:1px solid var(--border);border-radius:var(--r-sm);background:#fff;overflow:hidden;display:flex;flex-direction:column}
.fd-pic .frame{position:relative;background:var(--faint);aspect-ratio:16/9;display:grid;place-items:center;color:var(--muted);font-size:12px;text-align:center;padding:6px}
.fd-pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.fd-pic .no{position:absolute;top:6px;left:6px}
.fd-pic .cap{padding:8px 10px;font-size:12.5px;min-height:40px;overflow-wrap:anywhere}
.fd-pic .cap.none{color:var(--muted);font-style:italic}
.fd-pic .row-actions{margin:0;padding:0 8px 8px;gap:4px;flex-wrap:wrap}
.fd-pic .row-actions .btn{padding:4px 8px}

/* The injury and near-miss book. */
.fd-book .kind-injury td:first-child{border-left:4px solid var(--bad)}
.fd-book .kind-near td:first-child{border-left:4px solid var(--warn)}
.fd-book tr.closed td{color:var(--muted)}
.fd-entry dl{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:6px 16px;margin:0 0 14px}
.fd-entry dt{color:var(--muted);font-size:12.5px}
.fd-entry dd{margin:0;font-size:13.5px;overflow-wrap:anywhere}
.fd-entry .what{white-space:pre-wrap;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px;margin:0 0 14px}
.fd-entry img.photo{max-width:100%;max-height:320px;border:1px solid var(--border);border-radius:var(--r-sm);display:block}

/* The entry as a clean page to print: no menu, no buttons on the paper. */
.fd-sheet{max-width:780px;margin:24px auto;padding:28px 32px;background:#fff;border:1px solid var(--border);border-radius:var(--r)}
.fd-sheet h1{font-size:22px;margin:0 0 2px}
.fd-sheet .lead{color:var(--muted);margin:0 0 18px}
.fd-sheet table{width:100%;border-collapse:collapse;margin-bottom:16px}
.fd-sheet th{width:28%;text-align:left;font-weight:600;font-size:13px;padding:7px 10px 7px 0;vertical-align:top;border-bottom:1px solid var(--border)}
.fd-sheet td{padding:7px 0;font-size:13.5px;border-bottom:1px solid var(--border);overflow-wrap:anywhere}
.fd-sheet .what{white-space:pre-wrap}
.fd-sheet .foot{font-size:12px;color:var(--muted);margin-top:18px}
.fd-sheet .fd-bar{display:flex;gap:8px;justify-content:flex-end;margin-bottom:14px}
@media print{
  .fd-noprint{display:none!important}
  body{background:#fff}
  .fd-sheet{border:0;margin:0;padding:0;max-width:none;box-shadow:none}
}

@media (max-width:640px){
  .fd-sheet{padding:16px;margin:8px}
  .fd-entry dl{grid-template-columns:1fr}
}
