:root{--bg:#f4f6f9;--card:#fff;--ink:#1a2233;--dim:#68738a;--line:#e3e8f0;--brand:#1f4e79;--brand2:#2d6db5;
--ok:#1e8e5a;--okbg:#e7f6ee;--warn:#b97d10;--warnbg:#fdf3dd;--crit:#c0392b;--critbg:#fdeceb}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.45}
a{color:var(--brand2);text-decoration:none}h1{font-size:22px;margin:.2em 0}.center{text-align:center}
h2{font-size:15px;text-transform:uppercase;letter-spacing:.04em;color:var(--dim);margin:0 0 10px}
.topbar{display:flex;justify-content:space-between;align-items:center;background:var(--card);border-bottom:1px solid var(--line);padding:12px 22px;position:sticky;top:0;z-index:5}
.top-actions{display:flex;gap:8px}.brand{font-weight:700;color:var(--brand)}.brand a{color:var(--dim);font-weight:500}
.container{max-width:1160px;margin:22px auto;padding:0 18px}.container.narrow{max-width:680px}
.cols{display:grid;grid-template-columns:1.7fr 1fr;gap:18px;align-items:start}
@media(max-width:900px){.cols{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 2px rgba(16,30,60,.05)}
.card.pad{padding:18px;margin-bottom:18px}.card.empty{padding:40px;text-align:center;color:var(--dim)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.client-card{display:block;padding:16px;color:inherit;transition:box-shadow .15s}.client-card:hover{box-shadow:0 4px 14px rgba(16,30,60,.12)}
.cc-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.cc-name{font-weight:700;font-size:16px}
.cc-sub{color:var(--dim);font-size:13px;margin-top:2px}.cc-foot{display:flex;justify-content:space-between;color:var(--dim);font-size:12.5px;margin-top:8px}
.pill{border-radius:99px;padding:3px 10px;font-size:12px;font-weight:700;white-space:nowrap}
.pill.ok{background:var(--okbg);color:var(--ok)}.pill.warn{background:var(--warnbg);color:var(--warn)}.pill.critical{background:var(--critbg);color:var(--crit)}
.progress{height:8px;background:var(--line);border-radius:99px;margin:12px 0 6px;overflow:hidden}.progress.big{height:12px}
.bar{height:100%;background:linear-gradient(90deg,var(--brand2),#5a9bd8);border-radius:99px}.bar.full{background:var(--ok)}
.btn{display:inline-block;background:var(--card);border:1px solid var(--line);border-radius:9px;padding:8px 14px;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer}
.btn:hover{border-color:var(--brand2);color:var(--brand2)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand2);color:#fff}
.btn.wide{width:100%;text-align:center;margin-top:8px}
.flag{border-radius:9px;padding:10px 12px;margin:8px 0;font-size:14px}
.flag.critical{background:var(--critbg);color:var(--crit);border:1px solid #f2c4bf}
.flag.warn{background:var(--warnbg);color:#7a5408;border:1px solid #f0dcb0}
.flag.info{background:#eef3fb;color:#33507a;border:1px solid #d5e2f5}
.flag.okflag{background:var(--okbg);color:var(--ok);border:1px solid #bfe6d2;text-align:center;font-weight:600}
.doc-table{width:100%;border-collapse:collapse;font-size:13.5px}.doc-table th{text-align:left;color:var(--dim);font-size:12px;text-transform:uppercase;letter-spacing:.03em;padding:6px 8px;border-bottom:1px solid var(--line)}
.doc-table td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}.doc-table tr.row-warn{background:var(--warnbg)}
.doc-table select{font-size:12.5px;padding:3px;border:1px solid var(--line);border-radius:6px;max-width:120px}
.doc-table details pre{max-width:420px;overflow:auto;background:#f6f8fb;padding:8px;border-radius:8px;font-size:11.5px}
.dim{color:var(--dim);font-size:12.5px}.hint{color:var(--dim);font-size:13px}
.checklist{list-style:none;margin:8px 0 0;padding:0}.checklist li{display:flex;gap:9px;align-items:baseline;padding:7px 0;border-bottom:1px dashed var(--line);font-size:14px}
.checklist li:last-child{border-bottom:0}.checklist .mark{width:20px;text-align:center;font-weight:700}
.checklist li.received .mark{color:var(--ok)}.checklist li.partial .mark{color:var(--warn)}
.checklist li.missing .mark{color:var(--crit)}.checklist li.missing .lbl{font-weight:600}
.checklist li.waived{opacity:.45;text-decoration:line-through}.checklist .lbl{flex:1}
.crit-mark{color:var(--crit);font-size:11px;text-transform:uppercase;margin-left:6px}
.link-btn{background:none;border:none;color:var(--dim);font-size:11.5px;cursor:pointer;text-decoration:underline}
.copy-input{width:100%;padding:8px;border:1px solid var(--line);border-radius:8px;font-size:12.5px;color:var(--dim);background:#f6f8fb}
.email-preview{white-space:pre-wrap;background:#f6f8fb;border-radius:8px;padding:12px;font-size:12.5px}
.timeline{list-style:none;margin:0;padding:0;font-size:13.5px}.timeline li{padding:5px 0;border-bottom:1px dashed var(--line)}
.inline-upload{display:flex;gap:10px;margin-top:12px;align-items:center}
.all-in{text-align:center}.all-in h2{color:var(--ok)}
.received{list-style:none;padding:0;margin:0;font-size:13.5px}.received li{padding:5px 0;border-bottom:1px dashed var(--line)}
/* forms */
label{display:block;font-size:13.5px;color:var(--dim);margin:10px 0 4px}
input[type=text],input[type=email],input:not([type]),input[type=password],input[type=number],textarea{width:100%;padding:9px;border:1px solid var(--line);border-radius:8px;font-size:14px;margin-top:4px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 18px;margin:8px 0}
@media(max-width:700px){.profile-grid,.row{grid-template-columns:1fr}}
.check{display:flex;align-items:center;gap:8px;margin:4px 0;color:var(--ink)}.check input[type=checkbox]{width:auto}
.check .cnt{width:52px;padding:4px;margin:0}
/* login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}
.login-card{width:340px;padding:28px;text-align:center}.login-card h1{font-size:17px;color:var(--dim);font-weight:500}
/* client phone page */
.client-body{background:linear-gradient(180deg,#eef3f9,#f7f9fc)}
.phone-wrap{max-width:520px;margin:0 auto;padding:26px 16px 60px}
.sub{color:var(--dim);margin:.2em 0 1em}
.dropzone{display:block;border:2px dashed #b9cbe2;border-radius:14px;padding:26px 14px;text-align:center;cursor:pointer;background:#f9fbfe;margin-top:6px}
.dropzone:hover{border-color:var(--brand2)}.dropzone input{display:none}
.dz-icon{font-size:34px}.dz-text{color:var(--dim);font-size:14px;margin-top:6px}.dz-text b{color:var(--ink);font-size:15px}
/* entry sheet */
.entry-table{width:100%;border-collapse:collapse;font-size:13.5px}
.entry-table td{padding:7px 8px;border-bottom:1px dashed var(--line)}
.entry-table .el{color:var(--dim);width:45%}
.entry-table .ev{font-weight:600;font-variant-numeric:tabular-nums}
.entry-table .done{color:#c9d2e0;cursor:pointer;width:26px;text-align:center;font-weight:700}
.entry-table tr.entered .done{color:var(--ok)}
.entry-table tr.entered .ev,.entry-table tr.entered .el{opacity:.45;text-decoration:line-through}
.btn.copy{padding:3px 10px;font-size:12px}
.sw-select{padding:6px 8px;border:1px solid var(--line);border-radius:8px;font-size:13px;background:var(--card)}
.app-footer{text-align:center;color:#a8b1c2;font-size:11.5px;padding:18px 0 26px}

/* Entry Sheet: per-section source link */
.src-btn { float: right; font-size: 12px; font-weight: normal; text-decoration: none; }
.fnote { color: var(--dim, #6b7684); font-size: 12px; font-weight: normal; margin-top: 2px; }
.miss-val { color: #c0392b; font-weight: 600; }
