@font-face{font-family:"Paradygm Officina";src:url(/brand/fonts/officina-light.woff) format("woff");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Paradygm Officina";src:url(/brand/fonts/officina-regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Paradygm Officina";src:url(/brand/fonts/officina-bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}
*{box-sizing:border-box}
:root{
  --bg:#f7f8fa;--surface:#fff;--text:#1f2937;--muted:#6b7280;--border:#e5e7eb;
  --border-strong:#d1d5db;--accent:#2563eb;--accent-soft:#eff6ff;
  --danger:#b91c1c;--ok:#166534;--warn:#92400e;
  --radius:6px;--font:"Paradygm Officina","ITC Officina Sans","ITC Officina Sans Std","Officina Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font:16px/1.45 var(--font)}
body,input,select,textarea,button,table,h1,h2,h3,h4,th,td,a,.btn,.pill,.muted,.toast{font-family:var(--font)!important}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
header{
  background:var(--surface);border-bottom:1px solid var(--border);
  padding:14px 24px;display:flex;justify-content:space-between;align-items:center;
  gap:16px;flex-wrap:wrap;position:sticky;top:0;z-index:40;
}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand-mark{
  width:36px;height:36px;border-radius:8px;border:1px solid var(--border);
  background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.brand-mark svg{width:20px;height:20px}
.brand img.hdr-logo{height:36px;max-width:140px;object-fit:contain;display:block}
.brand .titles{display:flex;flex-direction:column;gap:1px;min-width:0}
.brand .co{font-size:16px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand .sub{font-size:12px;color:var(--muted);font-weight:400}
.nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
main{max-width:1120px;margin:28px auto;padding:0 20px 48px}
.card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:20px;margin-bottom:16px;
}
h1{font-size:38px!important;font-weight:600;margin:0 0 16px;color:var(--text);letter-spacing:-0.01em}
h2{font-size:20px!important;font-weight:600;margin:0 0 12px;color:var(--text)}
h3{font-size:20px!important;font-weight:600;margin:12px 0 8px;color:var(--text)}
input,select,textarea{
  width:100%;padding:8px 10px;border:1px solid var(--border-strong);border-radius:var(--radius);
  font:inherit;font-size:16px;background:var(--surface);color:var(--text);
}
input:focus,select:focus,textarea:focus{outline:2px solid #bfdbfe;outline-offset:0;border-color:var(--accent)}
textarea{min-height:72px;resize:vertical}
label{font-size:12px;color:var(--muted);display:block;margin-top:10px;margin-bottom:4px;font-weight:500}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
button,.btn{
  background:var(--accent);color:#fff;border:1px solid transparent;border-radius:var(--radius);
  padding:8px 14px;cursor:pointer;margin:2px;font:inherit;font-size:16px;font-weight:500;
  display:inline-flex;align-items:center;gap:6px;text-decoration:none;line-height:1.2;
}
button:hover,.btn:hover{background:#1d4ed8;text-decoration:none}
button.sec,.btn.sec{background:var(--surface);color:var(--text);border-color:var(--border-strong)}
button.sec:hover,.btn.sec:hover{background:#f3f4f6}
button.del,.btn.del{background:var(--surface);color:var(--danger);border-color:#fecaca}
button.del:hover,.btn.del:hover{background:#fef2f2}
button:disabled{opacity:.5;cursor:not-allowed}
table{width:100%;border-collapse:collapse;font-size:16px}
td,th{border-bottom:1px solid var(--border);padding:10px 8px;text-align:left;vertical-align:top}
th{background:#f9fafb;font-weight:600;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-strong)}
tr:last-child td{border-bottom:0}
tr:hover td{background:#fafbfc}
.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid transparent;white-space:nowrap}
.st-Current{background:#ecfdf5;color:var(--ok);border-color:#a7f3d0}
.st-Due{background:#fffbeb;color:var(--warn);border-color:#fde68a}
.st-Overdue{background:#fef2f2;color:var(--danger);border-color:#fecaca}
.st-OOS{background:#f3f4f6;color:#374151;border-color:var(--border)}
.st-Retired{background:#f9fafb;color:var(--muted);border-color:var(--border)}
.muted{color:var(--muted);font-size:13px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px}
.stat{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:16px 18px;cursor:pointer;transition:border-color .15s;
}
.stat:hover{border-color:var(--accent)}
.stat .n{font-size:26px;font-weight:600;line-height:1.1;letter-spacing:-0.02em}
.stat .l{font-size:12px;color:var(--muted);margin-top:6px}
.stat.ok .n{color:var(--ok)}.stat.due .n{color:var(--warn)}.stat.overdue .n{color:var(--danger)}
.bfoot{text-align:center;color:var(--muted);font-size:12px;padding:24px;border-top:1px solid var(--border);margin-top:24px}
.dropzone{
  border:1px dashed var(--border-strong);border-radius:var(--radius);padding:16px;text-align:center;
  color:var(--muted);background:#fafafa;margin:8px 0;font-size:13px;cursor:pointer;
}
.dropzone:hover,.dropzone.over{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.toast{
  position:fixed;bottom:20px;right:20px;background:#111827;color:#fff;padding:10px 14px;
  border-radius:var(--radius);z-index:100;max-width:360px;font-size:13px;
}
.toast.err{background:var(--danger)}
.dirty-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-left:6px}
.file-list{list-style:none;padding:0;margin:8px 0}
.file-list li{
  display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--border);
  border-radius:var(--radius);margin-bottom:6px;background:#fafafa;
}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:4px}
.toolbar label{margin-top:0}
.toolbar > *{flex:1;min-width:140px}
.toolbar .actions{flex:0 0 auto;display:flex;gap:6px;align-items:center}
.empty{text-align:center;padding:48px 16px;color:var(--muted)}
a.link{color:var(--accent);cursor:pointer}
.logo-preview{max-height:56px;max-width:180px;border:1px solid var(--border);padding:6px;background:#fff;object-fit:contain;border-radius:var(--radius)}
.err-banner{background:#fef2f2;color:var(--danger);padding:10px 12px;border:1px solid #fecaca;border-radius:var(--radius);margin-bottom:12px;font-size:13px}
.login-wrap{min-height:calc(100vh - 120px);display:flex;align-items:center;justify-content:center;padding:24px}
.login-card{width:100%;max-width:360px;padding:32px 28px}
.login-card .login-icon{
  width:48px;height:48px;margin:0 auto 16px;border-radius:10px;border:1px solid var(--border);
  background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;
}
.login-card .login-icon svg{width:26px;height:26px}
.login-card h2{text-align:center;margin:0 0 6px}
.login-card .lede{text-align:center;margin:0 0 20px}
.icon{display:inline-block;width:1em;height:1em;vertical-align:-0.125em}
@media screen and (max-width:700px){
  html,body{overflow-x:hidden}main{padding:0 12px 40px;margin-top:16px}.card{padding:14px;overflow-x:auto}
  table{display:block;width:100%;overflow-x:auto}.grid,.grid-2{grid-template-columns:1fr!important}
  header{padding:10px 12px}
}
@media print{
  header .nav,.noprint,button,.toast,.dropzone,.toolbar .actions,.bfoot{display:none!important}
  body{background:#fff}main{max-width:100%;margin:0;padding:0}
  .card{border:0;padding:0}
  .print-only{display:block!important}
  @page{margin:14mm}
  .print-footer{position:fixed;bottom:0;left:0;right:0;font-size:10px;color:#666;border-top:1px solid #ccc;padding-top:4px;display:flex;justify-content:space-between}
}
.print-only{display:none!important}
.print-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-strong);padding-bottom:10px;margin-bottom:16px}
.print-head img{height:40px;max-width:180px;object-fit:contain}

/* Calibration record sheet (template-inspired, minimalist) */
.cal-sheet{border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden;background:#fff;margin-top:12px}
.cal-sheet-title{background:#7f1d1d;color:#fff;text-align:center;font-weight:700;letter-spacing:.06em;font-size:20px;padding:12px}
.cal-sheet table.cal-grid{width:100%;border-collapse:collapse;font-size:14px;margin:0}
.cal-sheet table.cal-grid th,.cal-sheet table.cal-grid td{border:1px solid #cbd5e1;padding:6px 8px;vertical-align:middle}
.cal-sheet table.cal-grid th{background:#f3f4f6;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#374151}
.cal-sheet table.cal-grid input,.cal-sheet table.cal-grid select{width:100%;border:1px solid transparent;background:transparent;padding:4px 2px;font:inherit;border-radius:3px}
.cal-sheet table.cal-grid input:focus,.cal-sheet table.cal-grid select:focus{border-color:var(--accent);background:#fff;outline:none}
.cal-sheet .hdr-label{background:#f3f4f6;font-weight:600;font-size:12px;text-transform:uppercase;color:#374151;white-space:nowrap}
.cal-sheet .notes-row td{padding:0}
.cal-sheet .notes-row textarea{width:100%;border:0;min-height:64px;padding:8px;resize:vertical;font:inherit}
.cal-sheet .result-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 12px;border-top:1px solid var(--border);background:#fafafa;font-size:13px}
.cal-meta{font-size:12px;color:var(--muted)}
.cal-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.readings-tools{display:flex;gap:8px;align-items:center;padding:8px 12px;border-top:1px solid var(--border);background:#fafafa}

.cert-extra{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;padding:12px;border-top:1px solid var(--border);background:#fafafa}
.cert-extra label{margin-top:0}
