:root{--ink: #1a1f1a;--paper: #f7f7f4;--panel: #ffffff;--line: #e2e0d8;--muted: #6b6f66;--accent: #2f6b3f;--accent-ink: #ffffff;--gold: #b8860b;--sidebar: #14201a;--sidebar-ink: #d9ddd4;--sidebar-muted: #7d8a7c;--sidebar-active: #24382a;--healthy: #2f8a3f;--at-risk: #c98a1c;--paper-status: #b23b3b;--radius: 6px;font-family:-apple-system,Avenir Next,Seravek,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-size:14px;line-height:1.5}button{font-family:inherit;cursor:pointer}input{font-family:inherit}a{color:inherit}.login-screen{min-height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--sidebar),#1c2b21 60%,var(--paper));padding:2rem}.login-card{background:var(--panel);border-radius:10px;padding:2rem;width:100%;max-width:420px;box-shadow:0 20px 60px #00000040}.login-brand{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.login-mark{width:42px;height:42px;border-radius:8px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}.login-title{font-weight:700;font-size:1.05rem}.login-subtitle{font-size:.78rem;color:var(--muted)}.login-form{display:flex;flex-direction:column;gap:.8rem}.login-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--muted);font-weight:600}.login-form input{border:1px solid var(--line);border-radius:var(--radius);padding:.55rem .7rem;font-size:.9rem}.login-form button{margin-top:.4rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:.65rem;font-weight:600;font-size:.9rem}.login-form button:disabled{opacity:.6}.login-error{color:var(--paper-status);font-size:.8rem}.login-demo{margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid var(--line)}.login-demo-label{font-size:.72rem;color:var(--muted);margin-bottom:.6rem}.login-demo-grid{display:flex;flex-wrap:wrap;gap:.4rem}.login-demo-chip{border:1px solid var(--line);background:var(--paper);border-radius:20px;padding:.3rem .7rem;font-size:.72rem;color:var(--ink)}.login-demo-chip:hover{border-color:var(--accent);color:var(--accent)}.shell{display:grid;grid-template-columns:236px 1fr;min-height:100%}.sidebar{background:var(--sidebar);color:var(--sidebar-ink);padding:1.2rem .9rem;display:flex;flex-direction:column}.sidebar-brand{display:flex;align-items:center;gap:.6rem;padding:0 .5rem 1.4rem}.sidebar-mark{width:30px;height:30px;border-radius:6px;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.7rem}.sidebar-title{font-weight:700;font-size:.85rem}.sidebar-sub{font-size:.65rem;color:var(--sidebar-muted)}.nav-group{margin-bottom:1.1rem}.nav-group-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--sidebar-muted);padding:0 .6rem;margin-bottom:.35rem}.nav-link{display:block;padding:.5rem .6rem;border-radius:var(--radius);font-size:.83rem;color:var(--sidebar-ink);text-decoration:none;margin-bottom:.1rem}.nav-link:hover{background:#ffffff0f}.nav-link.active{background:var(--sidebar-active);font-weight:600}.sidebar-footer{margin-top:auto;padding-top:1rem;border-top:1px solid rgba(255,255,255,.08)}.sidebar-user{font-size:.78rem}.sidebar-role{color:var(--sidebar-muted);font-size:.7rem}.sidebar-signout{background:none;border:none;color:var(--sidebar-muted);font-size:.72rem;padding:.4rem 0}.sidebar-signout:hover{color:var(--sidebar-ink)}.main{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.6rem;border-bottom:1px solid var(--line);background:var(--panel)}.topbar-title{font-weight:700;font-size:1.05rem}.topbar-scope{font-size:.78rem;color:var(--muted)}.content{padding:1.6rem;overflow-y:auto}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.9rem;margin-bottom:1.4rem}.stat-tile{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:.9rem 1rem}.stat-value{font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums}.stat-label{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:.15rem}.stat-tile.healthy .stat-value{color:var(--healthy)}.stat-tile.at_risk .stat-value{color:var(--at-risk)}.stat-tile.paper .stat-value{color:var(--paper-status)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px}.panel-header{padding:.9rem 1.1rem;border-bottom:1px solid var(--line);font-weight:700;font-size:.92rem;display:flex;justify-content:space-between;align-items:center}.panel-body{padding:.4rem 0}table.data{width:100%;border-collapse:collapse;font-size:.83rem}table.data th{text-align:left;padding:.5rem 1.1rem;color:var(--muted);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line)}table.data td{padding:.55rem 1.1rem;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}table.data tr:last-child td{border-bottom:none}table.data tr:hover td{background:#fafaf7}.pill{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .55rem;border-radius:20px;font-size:.72rem;font-weight:600}.pill.healthy{background:#e6f3e8;color:var(--healthy)}.pill.at_risk{background:#faf0dc;color:var(--at-risk)}.pill.paper{background:#fbe8e8;color:var(--paper-status)}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.score-bar{width:80px;height:6px;border-radius:3px;background:var(--line);overflow:hidden;display:inline-block;vertical-align:middle;margin-right:.5rem}.score-bar-fill{height:100%}.crm-card{border:1px solid var(--line);border-radius:8px;padding:1rem;margin-bottom:.8rem;background:var(--panel)}.crm-card-title{font-weight:700;font-size:.9rem;display:flex;align-items:center;gap:.5rem}.crm-kind{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--paper);padding:.1rem .5rem;border-radius:20px}.crm-restricted{color:var(--paper-status);font-size:.7rem;font-weight:700}.crm-note{font-size:.82rem;color:var(--muted);margin-top:.4rem}.crm-commitments{margin-top:.6rem;font-size:.78rem}.empty-state{padding:2rem;text-align:center;color:var(--muted);font-size:.85rem}.loading{padding:2rem;text-align:center;color:var(--muted)}
