/* PlanApprove portal — shared styles (2026-09-25 rebuild). Navy + teal, Inter Tight headings, Inter body. */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--navy:#0A2540;--teal:#0F766E;--teal-2:#14958b;--teal-soft:#e6f4f2;--bg:#f4f6f9;--card:#fff;--line:#e2e6ea;--muted:#64748b;--text:#0A2540;
  --ok:#15803d;--ok-bg:#dcfce7;--warn:#a16207;--warn-bg:#fef3c7;--bad:#b91c1c;--bad-bg:#fee2e2;--info:#0369a1;--info-bg:#e0f2fe;--radius:12px}
body{background:var(--bg);font-family:'Inter',system-ui,sans-serif;color:var(--text);min-height:100vh;font-size:14px;line-height:1.5}
a{color:var(--teal)}
.hdr{background:var(--navy);padding:0 24px;height:60px;display:flex;align-items:center;justify-content:space-between;border-bottom:3px solid var(--teal);position:sticky;top:0;z-index:20}
.hdr img{height:28px}.hdr nav{display:flex;gap:4px;margin-left:24px}.hdr nav a{color:rgba(255,255,255,.72);text-decoration:none;font-size:13px;font-weight:500;padding:8px 12px;border-radius:7px}
.hdr nav a.on,.hdr nav a:hover{background:rgba(255,255,255,.09);color:#fff}.hdr .left{display:flex;align-items:center}
.hdr-user{display:flex;align-items:center;gap:12px;font-size:13px;color:rgba(255,255,255,.75)}.hdr-user strong{color:#fff}
.btn-logout{background:none;border:1px solid rgba(255,255,255,.3);color:#fff;padding:6px 12px;border-radius:6px;font-size:12px;cursor:pointer}
.main{max-width:1180px;margin:0 auto;padding:28px 20px 60px}
h1,.h1{font-family:'Inter Tight',sans-serif;font-size:27px;font-weight:700;line-height:1.15}
h2,.h2{font-family:'Inter Tight',sans-serif;font-size:20px;font-weight:700}
h3{font-family:'Inter Tight',sans-serif;font-size:16px;font-weight:700}
.sub{color:var(--muted);font-size:13px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;margin-bottom:16px}
.card-hd{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;background:var(--teal);color:#fff;border:1px solid transparent;border-radius:8px;
  font-family:'Inter Tight',sans-serif;font-weight:700;font-size:14.5px;letter-spacing:.3px;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{background:var(--teal-2)}.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-ghost{background:#fff;color:var(--navy);border-color:var(--line)}.btn-ghost:hover{background:#f8fafc;border-color:var(--teal);color:var(--teal)}
.btn-danger{background:#fff;color:var(--bad);border-color:#f3c9c9}.btn-sm{padding:6px 11px;font-size:13px}.btn-lg{padding:13px 24px;font-size:16px}
.field{margin-bottom:12px}.field label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:4px}
.field input,.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font:14px 'Inter',sans-serif;background:#fff;color:var(--text)}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(15,118,110,.2);border-color:var(--teal)}
.field .hint{font-size:11.5px;color:var(--muted);margin-top:3px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px}
.full{grid-column:1/-1}
.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:999px;font-size:11.5px;font-weight:600;background:#eef1f4;color:var(--muted);white-space:nowrap}
.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.bad{background:var(--bad-bg);color:var(--bad)}.chip.info{background:var(--info-bg);color:var(--info)}
.note{border-left:4px solid var(--teal);background:var(--teal-soft);padding:10px 14px;border-radius:0 8px 8px 0;margin:10px 0;font-size:13.5px}
.note.warn{border-color:#d97706;background:#fffbeb}.note.bad{border-color:var(--bad);background:#fef2f2}.note.ok{border-color:var(--ok);background:#f0fdf4}
.err{background:var(--bad-bg);color:var(--bad);border-radius:8px;padding:10px 12px;margin:8px 0;font-size:13px}
.empty{text-align:center;padding:36px 16px;color:#94a3b8}
table.t{width:100%;border-collapse:collapse}table.t th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:8px;border-bottom:2px solid var(--line)}
table.t td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top;font-size:13px}
.modal-bg{display:none;position:fixed;inset:0;background:rgba(10,37,64,.5);align-items:center;justify-content:center;z-index:100;padding:16px}
.modal-bg.open{display:flex}.modal{background:#fff;border-radius:14px;padding:24px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto}
.modal h2{margin-bottom:14px}.modal .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spacer{flex:1}
.bar{height:7px;background:#eef1f4;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:var(--teal)}
.spin{display:inline-block;width:13px;height:13px;border:2px solid rgba(15,118,110,.25);border-top-color:var(--teal);border-radius:50%;animation:sp .8s linear infinite;vertical-align:-2px}
@keyframes sp{to{transform:rotate(360deg)}}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;padding:11px 18px;border-radius:9px;font-size:13.5px;z-index:200;opacity:0;transition:opacity .2s;pointer-events:none}
.toast.show{opacity:1}
@media (max-width:760px){.grid2,.grid3{grid-template-columns:1fr}.hdr{height:auto;flex-wrap:wrap;padding:8px 14px;gap:6px}.hdr .left{flex-wrap:wrap;width:100%}.hdr nav{margin-left:0;width:100%;overflow-x:auto;order:3}.hdr nav a{white-space:nowrap;padding:6px 10px}.main{padding:18px 14px 50px}h1,.h1{font-size:23px}.card{padding:16px}}
@media (max-width:760px){table.t:not(.keep),table.t:not(.keep) tbody,table.t:not(.keep) tr,table.t:not(.keep) td{display:block;width:100%}table.t:not(.keep) tr:has(th){display:none}table.t:not(.keep) tr{border-bottom:1px solid var(--line);padding:8px 0}table.t:not(.keep) td{border:0;padding:3px 0}.main{overflow-x:hidden}}
/* Inline inputs in rows (sign-off name, query answers): full width on phones instead of a fixed min-width (audit 2026-10-17). */
.inl{padding:8px 10px;border:1px solid var(--line);border-radius:7px;font:14px 'Inter',sans-serif;min-width:220px}
@media (max-width:600px){.inl{min-width:0;width:100%;flex:1 1 100%}}
