/* Section pages shown over the map (the desk). */
.nav { display:flex; flex-wrap:wrap; gap:5px; margin-top:10px; } .nav a { padding:3px 9px; border:1.5px solid var(--ink); border-radius:2px; color:var(--ink); font-size:14px; font-weight:700; text-decoration:none; } .nav a.on { background:var(--ink); color:var(--card); }
.desk { position:fixed; inset:0 0 0 372px; overflow-y:auto; padding:24px clamp(16px,3vw,40px) 60px; background:var(--paper); z-index:4; }
.desk > * { max-width:920px; } .soft { color:var(--soft); font-size:15px; } .desk a { color:var(--ink); }
.desk-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding-bottom:14px; border-bottom:2px solid var(--ink); } .desk-head h2 { font-size:38px; } .desk-head p { margin:4px 0 0; }
.desk-tools { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 8px; } .desk-note { margin:0 0 18px; } .desk .error { margin:14px 0 0; }
.quiet { padding:9px 12px; border:1.5px solid var(--ink); border-radius:2px; background:var(--card); color:var(--ink); font:700 15px var(--text); cursor:pointer; } .quiet:hover { background:#efe7d0; } .quiet:disabled,.primary:disabled { opacity:.45; cursor:default; }
.person { margin:0 0 16px; padding:16px 18px; border:2px solid var(--ink); border-left:9px solid var(--s); background:var(--card); }
[data-action=text]{--s:var(--overdue)} [data-action=review]{--s:var(--out)} [data-action=pending]{--s:var(--out)} [data-action=no_mobile]{--s:var(--due)} [data-action=talk]{--s:var(--due)} [data-action=wait]{--s:var(--never)}
.person h3 { justify-content:flex-start; align-items:center; gap:10px; margin:0; font-size:24px; } .badge { padding:2px 8px; background:var(--s); color:#fff; font:700 14px var(--text); } [data-action=no_mobile] .badge,[data-action=talk] .badge { color:var(--ink); } [data-action=wait] .badge { background:var(--paper); color:var(--ink); border:1px solid var(--rule); }
.person header p { margin:2px 0 10px; } .contact { display:flex; align-items:center; gap:14px; max-width:420px; } .check { display:flex; align-items:center; gap:6px; white-space:nowrap; } .check input { width:20px; height:20px; }
.fcards { margin:12px 0; padding:0; list-style:none; } .fcard { padding:10px 0; border-top:1px solid var(--rule); } .fcard-head { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px; } .fcard-head strong { font:700 19px var(--slab); }
.fcard-form { display:grid; grid-template-columns:1.2fr 1.3fr 1.6fr auto auto; gap:8px; align-items:end; margin-top:8px; } .until { display:grid; font-size:13px; color:var(--soft); }
.pending { margin:8px 0; padding:12px; border:1.5px solid var(--ink); background:var(--paper); } .pending.approved { border-color:var(--recent); border-width:3px; } .pending.failed { border-color:var(--overdue); border-width:3px; } .pending p { margin:0 0 6px; font-weight:700; }
textarea { width:100%; padding:9px 10px; border:1.5px solid var(--ink); border-radius:2px; background:var(--card); color:var(--ink); font:16px/1.4 var(--text); resize:vertical; } textarea:focus-visible { outline:3px solid var(--due); outline-offset:1px; }
.buttons { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.thread { margin:12px 0 0; padding:0; list-style:none; } .thread li { display:grid; gap:2px; margin-top:6px; padding:7px 10px; border-left:3px solid var(--rule); background:var(--paper); } .thread li.in { border-left-color:var(--out); }
.person details { margin-top:12px; } summary { cursor:pointer; font-weight:700; } .logform { display:grid; grid-template-columns:1fr 150px auto; gap:8px; align-items:start; margin-top:8px; }
@media (max-width:820px) { .desk { inset:0; } .fcard-form,.logform { grid-template-columns:1fr; } .desk-head { flex-direction:column; } }
/* Shared page parts */
.desk.wide > * { max-width:1280px; }
.desk h2 { font-size:38px; } .desk section h3, .desk form h3 { margin:14px 0 8px; } .desk .panel > h3:first-child { margin-top:0; }
.head-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:flex-end; }
a.primary, a.quiet { display:inline-block; text-decoration:none; } a.primary { color:var(--card); }
.small { padding:4px 10px; font-size:14px; }
.notice { margin:14px 0 0; padding:8px 12px; border-left:6px solid var(--recent); background:#e9efdc; font-weight:700; }
.warn-box { margin:0 0 10px; padding:8px 12px; border-left:6px solid var(--due); background:#f6ecd0; }
.panel { margin:16px 0; padding:16px 18px; border:2px solid var(--ink); background:var(--card); }
.panel > p { margin:0 0 10px; }
.field { display:grid; gap:3px; margin:0 0 10px; font-weight:700; font-size:15px; } .field-hint { font-weight:400; font-size:14px; color:var(--soft); }
.desk .row { align-items:start; gap:12px; } .desk .check { margin:0 0 8px; }
.inline-form { display:flex; gap:10px; align-items:end; } .inline-form .field { flex:1; margin:0; } .inline-form input[type=text] { flex:1; }
.plain { margin:0; padding:0; list-style:none; } .plain > li { padding:6px 0; border-bottom:1px solid var(--rule); } .plain > li:last-child { border-bottom:0; }
.cols { columns:2 320px; column-gap:28px; } .cols li { break-inside:avoid; }
.grid { width:100%; border-collapse:collapse; background:var(--card); border:2px solid var(--ink); margin:16px 0; }
.grid th, .grid td { padding:8px 10px; border-bottom:1px solid var(--rule); text-align:left; vertical-align:top; } .grid thead th { background:var(--ink); color:var(--card); font:700 14px var(--text); }
.grid .num { text-align:right; font-variant-numeric:tabular-nums; } .grid tr.inactive { color:var(--soft); } .nowrap { white-space:nowrap; }
.linkpanel { display:flex; flex-wrap:wrap; gap:18px; margin:6px 0 12px; } .qr { text-align:center; } .qr svg { border:1.5px solid var(--ink); } .qr p { margin:4px 0 0; max-width:220px; } .linkside { flex:1; min-width:260px; display:grid; gap:10px; align-content:start; }
.tabs { display:flex; flex-wrap:wrap; gap:6px; margin:16px 0 12px; } .tabs a { padding:7px 12px; border:1.5px solid var(--ink); border-radius:2px; font-weight:700; text-decoration:none; } .tabs a.on { background:var(--ink); color:var(--card); }
/* Send next */
.queue-cols { display:grid; grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); gap:20px; margin-top:16px; }
.queue-col h3 { font-size:24px; }
.next-card { padding:16px; border:2px solid var(--ink); border-top:9px solid var(--due); background:var(--card); } .next-line { display:flex; gap:14px; align-items:center; margin:4px 0 12px; } .next-line strong { font:700 24px var(--slab); } .next-line p { margin:0; }
.queue-list { margin:10px 0 0; padding:0; list-style:none; max-height:60vh; overflow-y:auto; border:1px solid var(--rule); background:var(--card); }
.queue-list li { display:grid; grid-template-columns:44px 1fr auto; gap:10px; align-items:center; padding:7px 10px; border-bottom:1px solid var(--rule); }
.request { display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between; align-items:center; } .request .buttons { margin:0; }
.sendform { max-width:640px; }
/* Do not calls */
.dnc-layout { display:grid; grid-template-columns:minmax(300px,420px) 1fr; gap:18px; align-items:start; }
.dnc-list { max-height:calc(100vh - 250px); overflow-y:auto; border:2px solid var(--ink); background:var(--card); } .dnc-list input { border-width:0 0 1.5px; position:sticky; top:0; z-index:1; }
.dnc-item { display:grid; grid-template-columns:44px 1fr; gap:10px; padding:8px 12px; text-decoration:none; } .dnc-item:hover { background:var(--paper); } .dnc-item.on { background:var(--ink); color:var(--card); } .dnc-item.on .line { color:#cfd0c2; }
.dnc-item.severe { border-left:6px solid #14110f; } .dnc-list .plain > li { padding:0; }
.dnc-editor { display:grid; gap:14px; } .dnc-editor .panel { margin:0; } .dnc-map { height:440px; border:2px solid var(--ink); } .dnc-hint { padding:20px; }
/* Reports */
.bar { position:relative; min-width:150px; height:24px; border:1.5px solid var(--ink); background:var(--paper); } .bar-fill { height:100%; background:var(--recent); } .bar span { position:absolute; inset:0; display:flex; align-items:center; padding-left:8px; font-size:14px; font-weight:700; }
.exports li { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.campaign { padding:12px 0; border-top:1px solid var(--rule); } .campaign.closed { opacity:.7; } .campaign-head { display:flex; flex-wrap:wrap; gap:12px; align-items:baseline; margin-bottom:6px; } .campaign-head strong { font:700 20px var(--slab); }
.campaign-maps { display:flex; flex-wrap:wrap; gap:4px; margin:8px 0; } .dot { min-width:30px; padding:1px 4px; border:1.5px solid var(--ink); text-align:center; font:700 13px var(--slab); text-decoration:none; background:var(--card); } .dot.done { background:var(--recent); color:#fff; } .dot.out { background:var(--out); color:#fff; }
.campaign-form { margin-top:12px; padding-top:12px; border-top:2px solid var(--ink); }
.s13 { font-size:13px; } .s13 th, .s13 td { padding:4px 6px; border:1px solid var(--ink); } .s13 thead th { font-size:12px; } .s13-name { min-width:90px; }
/* Records */
.question { padding:10px 0; border-top:1px solid var(--rule); } .question.done { opacity:.6; } .question p { margin:0 0 4px; }
.flagged { padding:8px 0; border-top:1px solid var(--rule); } .flagged summary { font-weight:400; } .entry-form { margin:10px 0; padding:12px; background:var(--paper); border:1.5px solid var(--ink); }
.history-lines li { font-size:15px; }
@media (max-width:820px) { .dnc-layout { grid-template-columns:1fr; } .dnc-list { max-height:40vh; } .inline-form { flex-direction:column; align-items:stretch; } }
/* Printing a report page: only the page itself, full width, no buttons. */
@media print {
  body.print-desk { display:block; overflow:visible; background:#fff; }
  body.print-desk > :not(.desk) { display:none !important; }
  body.print-desk .desk { position:static; padding:0; overflow:visible; background:#fff; }
  body.print-desk .desk > * { max-width:none; }
  body.print-desk .head-actions, body.print-desk .buttons { display:none; }
  body.print-desk .grid thead th { background:#fff; color:#000; }
  body.print-desk .grid tr { break-inside:avoid; }
}
/* Today */
.tiles { display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:10px; margin:16px 0; }
.tile { display:flex; flex-direction:column; gap:2px; padding:12px 14px; border:2px solid var(--ink); border-left:9px solid var(--s); background:var(--card); text-decoration:none; color:var(--ink); }
.tile.hot { --s:var(--overdue); } .tile.warm { --s:var(--due); } .tile.cool { --s:var(--out); } .tile.quiet-tile { --s:var(--rule); border-color:var(--rule); color:var(--soft); }
.tile-n { font:700 40px/1 var(--slab); } .tile-l { font-size:15px; } .tile:hover { background:var(--paper); }
.today-cols { display:grid; grid-template-columns:repeat(auto-fit,minmax(360px,1fr)); gap:0 18px; } .today-cols .panel p { margin:0 0 10px; }
.late { color:var(--overdue); font-weight:700; } .returned-note { font-style:italic; }
