/* © 2026 TECHObjectives. All Rights Reserved. */
:root{--ink:#1d2430;--muted:#5b6575;--line:#d7dce3;--bg:#f5f6f8;--card:#fff;--accent:#2f5d8a;--accent-ink:#fff;--warn:#b4540a;--bad:#a61b1b;--good:#1d6b3a;--focus:#0b66d0}
*{box-sizing:border-box}
body{margin:0;font:17px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
header#top{background:#fff;border-bottom:1px solid var(--line);padding:10px 20px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;position:sticky;top:0;z-index:20}
header .brand{font-weight:700;font-size:1.15rem;color:var(--ink);text-decoration:none}
header .spacer{flex:1}
main{max-width:1180px;margin:0 auto;padding:20px}
h1{font-size:1.6rem;margin:.2em 0}h2{font-size:1.25rem;margin:1.2em 0 .5em}h3{font-size:1.05rem;margin:1em 0 .4em}
.muted{color:var(--muted)}.small{font-size:.9rem}
button,.btn{font:inherit;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:8px;padding:7px 13px;cursor:pointer;text-decoration:none;display:inline-block}
button:hover,.btn:hover{background:#eef1f5}
button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.primary:hover{background:#25496d}
button.danger{color:var(--bad);border-color:#e3b4b4}button.sm{padding:3px 9px;font-size:.88rem}
button:disabled{opacity:.5;cursor:not-allowed}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
input,select,textarea{font:inherit;border:1px solid #b9c1cc;border-radius:7px;padding:7px 9px;background:#fff;color:var(--ink);max-width:100%}
textarea{width:100%;min-height:70px}
label{display:block;font-weight:600;font-size:.92rem;margin:10px 0 3px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin:12px 0}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.row>*{flex:1 1 180px}.row.tight>*{flex:0 0 auto}
.tabs{display:flex;gap:2px;border-bottom:2px solid var(--line);margin:14px 0;overflow-x:auto}
.tabs a{padding:9px 14px;text-decoration:none;color:var(--muted);font-weight:600;border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap}
.tabs a.on{color:var(--accent);border-color:var(--accent)}
.chip{display:inline-block;border:1px solid rgba(0,0,0,.35);border-radius:999px;padding:1px 9px;margin:2px 3px 2px 0;color:#000;font-size:.92rem;white-space:nowrap}
.chip.unsure{font-style:italic;border-style:dashed}
.dot{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid rgba(0,0,0,.4);vertical-align:-2px;margin-right:5px}
.pill{display:inline-block;font-size:.82rem;font-weight:700;border-radius:6px;padding:2px 8px}
.pill.covered,.pill.over{background:#d9f2e1;color:#124d28}.pill.short{background:#ffe3c2;color:#7a3a00}.pill.unassigned{background:#fbd5d5;color:#7d1212}.pill.tentative{background:#fff3b8;color:#6b5600}
.pill.critical{background:#fbd5d5;color:#7d1212}.pill.high{background:#ffe3c2;color:#7a3a00}.pill.moderate{background:#fff3b8;color:#6b5600}.pill.ok{background:#d9f2e1;color:#124d28}
table{border-collapse:collapse;width:100%}
th,td{border:1px solid var(--line);padding:7px 9px;text-align:left;vertical-align:top}
th{background:#eef1f5;font-size:.9rem}
td.num{text-align:right;white-space:nowrap}
.sec-head{display:flex;align-items:center;gap:10px;margin:22px 0 6px}.sec-head h2{margin:0}
.timetable tr.dragover-before td{border-top:3px solid var(--accent)}.timetable tr.dragover-after td{border-bottom:3px solid var(--accent)}
.timetable tr.dragging{opacity:.4}.dropzone{border:2px dashed var(--line);border-radius:8px;padding:10px;text-align:center;color:var(--muted)}.dropzone.over{border-color:var(--accent);background:#eaf2fb}
.handle{cursor:grab;color:var(--muted);user-select:none;font-size:1.1rem}
.pinmark{font-size:.8rem;color:var(--accent);font-weight:700}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px}.stat b{font-size:1.8rem;display:block}
.bar{height:12px;background:#e5e8ed;border-radius:6px;overflow:hidden}.bar i{display:block;height:100%;background:var(--good)}
.banner{border-radius:10px;padding:10px 14px;margin:10px 0}.banner.warn{background:#fff3e0;border:1px solid #f2c48a}.banner.bad{background:#fdecec;border:1px solid #efb4b4}.banner.info{background:#e8f1fb;border:1px solid #b7d3f0}.banner.good{background:#e6f6ec;border:1px solid #a9dcbb}
.flag{color:var(--warn);font-size:.9rem;display:block;margin-top:3px}
.modal-back{position:fixed;inset:0;background:rgba(20,28,40,.5);display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:30px 12px;z-index:50}
.modal{background:#fff;border-radius:14px;max-width:720px;width:100%;padding:20px}
.modal h2{margin-top:0}.modal .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}
#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#1d2430;color:#fff;padding:10px 18px;border-radius:10px;display:none;z-index:99;max-width:90vw}
.assign-row{display:grid;grid-template-columns:2fr 1.6fr 1.2fr auto;gap:6px;margin:5px 0}
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-top:6px}
.cmp>div{padding:8px 11px}.cmp .cur{background:#f4f6f9}.cmp .inc{background:#fffbe8}.cmp small{display:block;color:var(--muted);font-weight:700;text-transform:uppercase;font-size:.72rem}
.item{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px;margin:10px 0}.item.accepted{opacity:.6;border-color:#a9dcbb}.item.declined{opacity:.6}.item.held{border-color:#e6c75a;background:#fffdf0}
.item .btns{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.legend{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0}
.empty{padding:26px;text-align:center;color:var(--muted)}
.viewonly{background:#eef1f5;border-radius:999px;padding:3px 11px;font-size:.85rem;color:var(--muted)}.editon{background:#e6f6ec;color:#124d28;border-radius:999px;padding:3px 11px;font-size:.85rem;font-weight:700}
.preview-wrap{background:#fff;border:1px solid var(--line);padding:16px;overflow:auto}
#printArea{display:none}
/* print layouts */
.pdoc h1{font-size:20pt;margin:0 0 4pt}.pdoc h2{font-size:14pt;margin:14pt 0 5pt}.pdoc .sub{color:#333;margin-bottom:8pt}
.pdoc table{font-size:10.5pt}.pdoc th{background:#e9edf2}.pdoc td,.pdoc th{padding:4pt 6pt}
.pdoc.signup table{font-size:14pt}.pdoc.signup td,.pdoc.signup th{padding:9pt 8pt}.pdoc.signup td.blank{height:34pt}
.pdoc .church-band{padding:6pt 10pt;border:1px solid #000;font-weight:700;font-size:14pt;margin-top:12pt}
.pdoc .pbreak{break-before:page;page-break-before:always}
.pdoc tr{break-inside:avoid;page-break-inside:avoid}
.swatch{display:inline-block;width:12pt;height:12pt;border:1px solid #000;vertical-align:-2pt;margin-right:4pt}
@media print{
  html,body{background:#fff}
  .noprint,header#top,main,#modalRoot,#toast{display:none!important}
  #printArea{display:block}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  th{background:#e9edf2!important}
}
@media (max-width:640px){main{padding:12px}.cmp{grid-template-columns:1fr}.assign-row{grid-template-columns:1fr 1fr}}

tr.click,li.click{cursor:pointer}tr.click:hover td,li.click:hover{background:#eaf2fb}li.click{padding:3px 4px;border-radius:6px}
.timepick select{padding:6px 4px}
.rep{border:1px dashed var(--line);border-radius:10px;padding:8px 10px;margin:8px 0}
.concern{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-left-width:8px;border-radius:10px;background:#fff;padding:10px 12px;margin:8px 0;cursor:pointer}
.concern.high{border-left-color:#c0392b}.concern.medium{border-left-color:#e08a1e}.concern.low{border-left-color:#c9b300}.concern:hover{background:#f4f8fd}
.ready{border-radius:12px;padding:16px;margin:10px 0;font-size:1.1rem}.ready.ok{background:#e6f6ec;border:1px solid #a9dcbb}.ready.warn{background:#fff3e0;border:1px solid #f2c48a}.ready.critical{background:#fdecec;border:1px solid #efb4b4}.ready.empty{background:#eef1f5;border:1px solid var(--line)}
.ready b{font-size:1.5rem;display:block}

header#top{row-gap:2px}
header .crumbs{flex:1 0 100%;order:9;display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.95rem;padding-top:4px;border-top:1px solid var(--line);margin-top:4px}
header .crumbs .sep{color:var(--muted)}header .crumbs .here{font-weight:700}header .crumbs a{color:var(--accent)}

.ver{font-size:.8rem;border:1px solid #bbb;border-radius:10px;padding:1px 8px;color:#444;background:#f3f3f3;margin-left:8px}

/* menu runs down the left on wide screens, along the top on narrow ones */
@media (min-width: 960px){
  main{max-width:1320px}
  .evlayout{display:grid;grid-template-columns:252px minmax(0,1fr);gap:24px;align-items:start}
  .evlayout .tabs{flex-direction:column;border-bottom:0;border-right:2px solid var(--line);margin:0;position:sticky;top:84px;max-height:calc(100vh - 100px);overflow-y:auto;overflow-x:hidden;gap:2px;padding-right:0}
  .evlayout .tabs a{white-space:normal;overflow-wrap:anywhere;border-bottom:0;border-left:3px solid transparent;margin:0;padding:10px 12px;border-radius:6px 0 0 6px}
  .evlayout .tabs a.on{border-left-color:var(--accent);background:#eef3f9}
}
#tabBody{min-width:0;overflow-x:auto}
table.timetable{table-layout:auto;min-width:760px}
table.timetable td:nth-child(3),table.timetable th:nth-child(3){min-width:230px}

#copyright{max-width:1320px;margin:24px auto 0;padding:14px 20px 22px;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem;text-align:center}
