:root{--bg: #f5f6f8;--surface: #ffffff;--ink: #1c2430;--muted: #66707d;--line: #dfe3e8;--accent: #2f6f4f;--accent-ink: #ffffff;--danger: #b3372f;--notice-bg: #e8f3ec;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button{font:inherit;padding:.45rem .9rem;border:none;border-radius:6px;background:var(--accent);color:var(--accent-ink);cursor:pointer}button:disabled{opacity:.5;cursor:default}button.ghost{background:transparent;color:var(--accent);border:1px solid var(--line)}input,select{font:inherit;padding:.45rem .6rem;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}.page-center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1.5rem}.auth-card{width:min(380px,100%);display:flex;flex-direction:column;gap:.9rem}.auth-card h1{margin:0;font-size:1.6rem;text-align:center}.tagline{margin:0;text-align:center;color:var(--muted);font-size:.9rem}.auth-card label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;color:var(--muted)}.brand-mark{color:var(--accent)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1.2rem;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.brand{font-weight:700;letter-spacing:.08em}.topbar-right{display:flex;align-items:center;gap:.8rem}.user-chip{font-size:.9rem;color:var(--muted)}.dashboard{width:min(1100px,100%);margin:0 auto;padding:1.2rem;display:flex;flex-direction:column;gap:1rem}.summary-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8rem}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.9rem 1rem;display:flex;flex-direction:column;gap:.3rem}.stat-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.stat-value{font-size:1.35rem;font-weight:650}.stat-value small{color:var(--muted);font-weight:400}.tabs{display:flex;gap:.3rem;border-bottom:1px solid var(--line);overflow-x:auto}.tab{background:transparent;color:var(--muted);border-radius:6px 6px 0 0;border-bottom:2px solid transparent}.tab.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.toolbar,.inline-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.pay-controls{display:flex;gap:.4rem;align-items:center}.data-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:.92rem}.data-table th,.data-table td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--line)}.data-table th{background:#f0f2f4;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.data-table tr:last-child td{border-bottom:none}.data-table td.num,.data-table th.num{text-align:right;font-variant-numeric:tabular-nums}.data-table td.empty{text-align:center;color:var(--muted);padding:1.4rem}.data-table td.actions{display:flex;gap:.35rem;flex-wrap:wrap}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;background:#eef0f2;color:var(--muted)}.badge.type-payment,.badge.status-paid,.badge.coi-ok,.badge.status-cured{background:var(--notice-bg);color:var(--accent)}.badge.type-late_fee,.badge.type-fine,.badge.status-rejected,.badge.coi-expired,.badge.status-fined{background:#f9e9e8;color:var(--danger)}.badge.status-approved,.badge.status-hearing_scheduled{background:#e9f0fa;color:#2c5f9e}.error{background:#f9e9e8;color:var(--danger);border:1px solid #eccfcc;border-radius:8px;padding:.55rem .8rem;font-size:.9rem}.notice{background:var(--notice-bg);color:var(--accent);border:1px solid #cfe3d7;border-radius:8px;padding:.55rem .8rem;font-size:.9rem}.pill{padding:.35rem .7rem;background:#eef0f2;border-radius:999px;font-size:.85rem;color:var(--muted)}.timeline small{color:var(--muted)}.meeting-card{display:flex;flex-direction:column;gap:.8rem;margin-bottom:.9rem}.meeting-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem;flex-wrap:wrap}.badge.status-scheduled,.badge.status-open{background:#e9f0fa;color:#2c5f9e}.badge.status-awarded,.badge.status-closed{background:var(--notice-bg);color:var(--accent)}.badge.status-cancelled{background:#f9e9e8;color:var(--danger)}.doc-preview{background:#f0f2f4;border-radius:8px;padding:1rem;overflow-x:auto;font-size:.85rem;line-height:1.4}p.empty{color:var(--muted);text-align:center}.compliance-banner{background:#eef2f6;border:1px solid var(--line);border-radius:8px;padding:.5rem .8rem;font-size:.82rem;color:var(--muted)}.minutes-panel{border-top:1px solid var(--line);padding-top:.8rem;display:flex;flex-direction:column;gap:.5rem}.badge.milestone-pending{background:#eef0f2;color:var(--muted)}.badge.milestone-funded{background:#e9f0fa;color:#2c5f9e}.badge.milestone-completed{background:#fff3e0;color:#a15c00}.badge.milestone-released,.badge.payment-settled,.badge.stage-current{background:var(--notice-bg);color:var(--accent)}.subtabs{margin-bottom:.6rem}.subtabs .tab{font-size:.88rem}.data-table tr.entry-start td{border-top:2px solid var(--line)}.badge.payment-pending,.badge.stage-reminder{background:#eef0f2;color:var(--muted)}.badge.payment-captured,.badge.stage-late_fee{background:#e9f0fa;color:#2c5f9e}.badge.payment-failed,.badge.stage-lien_eligible,.badge.stage-attorney_referral{background:#f9e9e8;color:var(--danger)}.badge.stage-demand_letter{background:#fff3e0;color:#a15c00}@media(max-width:640px){.topbar{flex-wrap:wrap}.data-table{display:block;overflow-x:auto}}
