:root{--brand:#3c3489;--brand-2:#534ab7;--brand-3:#7a6fe2;--bg:#f5f5fa;--surface:#fff;--text:#14121f;--text-soft:#5a5870;--border:#e4e2ee;--error:#c0263c;--success:#1f8e5c;--radius:14px;--shadow:0 1px 2px #14121f0a, 0 8px 24px #3c348912}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100%;color:var(--text);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:DM Sans,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--brand-2);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit}.centered{min-height:100vh;color:var(--text-soft);justify-content:center;align-items:center;display:flex}.auth-shell{background:radial-gradient(1200px 600px at 80% -10%, #7a6fe22e, transparent 60%), radial-gradient(900px 500px at -10% 110%, #534ab726, transparent 60%), var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--surface);border-radius:var(--radius);width:100%;max-width:420px;box-shadow:var(--shadow);padding:32px}.auth-card .brand{letter-spacing:-.02em;color:var(--brand);margin:0;font-size:28px}.auth-card .tagline{color:var(--text-soft);margin:4px 0 24px;font-size:14px}.auth-card h2{margin:0 0 16px;font-size:20px}.auth-card form{flex-direction:column;gap:14px;display:flex}.auth-card label{color:var(--text-soft);flex-direction:column;gap:6px;font-size:13px;display:flex}.auth-card input,.auth-card select{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:10px;padding:10px 12px;font-size:15px;transition:border-color .15s,box-shadow .15s}.auth-card input:focus,.auth-card select:focus{border-color:var(--brand-2);outline:none;box-shadow:0 0 0 3px #534ab72e}.auth-card small{color:var(--text-soft);font-size:12px}.auth-card button[type=submit]{background:var(--brand);color:#fff;border:0;border-radius:10px;margin-top:6px;padding:12px 14px;font-size:15px;font-weight:600;transition:background .15s,transform 50ms}.auth-card button[type=submit]:hover{background:var(--brand-2)}.auth-card button[type=submit]:active{transform:translateY(1px)}.auth-card button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.auth-card .alt{color:var(--text-soft);text-align:center;margin:20px 0 0;font-size:14px}.error{color:var(--error);background:#c0263c12;border:1px solid #c0263c33;border-radius:10px;margin:4px 0 0;padding:10px 12px;font-size:13px}.dashboard{background:var(--bg);min-height:100vh}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;padding:14px 32px;display:flex;position:sticky;top:0}.topbar-left{align-items:center;gap:32px;display:flex}.brand-mark{color:var(--brand);letter-spacing:-.01em;font-size:18px;font-weight:700}.main-nav{gap:4px;display:flex}.main-nav a{color:var(--text-soft);border-radius:8px;padding:8px 14px;font-size:14px;font-weight:500}.main-nav a:hover{color:var(--brand);background:#534ab70f;text-decoration:none}.main-nav a.active{color:var(--brand);background:#534ab71a}.user-chip{color:var(--text-soft);align-items:center;gap:12px;font-size:14px;display:flex}.role-pill{color:var(--brand-2);background:#534ab71a;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.link-btn{color:var(--brand-2);background:0 0;border:0;padding:0;font-size:14px}.link-btn:hover{text-decoration:underline}.content{max-width:1200px;margin:0 auto;padding:32px}.muted{color:var(--text-soft)}.welcome h1{letter-spacing:-.01em;margin:0 0 4px;font-size:26px}.welcome p{margin:0 0 24px}.cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:32px;display:grid}.card-link{color:inherit}.card-link:hover{text-decoration:none}.card-link:hover .card{border-color:#534ab733;transform:translateY(-2px)}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #0000;padding:20px;transition:transform .12s,border-color .12s}.card-label{color:var(--text-soft);margin-bottom:4px;font-size:13px}.card-value{color:var(--brand);letter-spacing:-.02em;font-size:32px;font-weight:700}.card-foot{color:var(--text-soft);margin-top:4px;font-size:12px}.two-col{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=900px){.two-col{grid-template-columns:1fr}}.panel{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.panel-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.panel-head h2{margin:0;font-size:16px}.row-list{margin:0;padding:0;list-style:none}.row-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 0;font-size:14px;display:flex}.row-list li:last-child{border-bottom:0}.match-mini{color:var(--brand);background:#534ab714;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.page-header h1{letter-spacing:-.01em;margin:0 0 2px;font-size:22px}.page-header p{margin:0}.filters{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--surface);border:1px solid var(--border);color:var(--text-soft);border-radius:999px;padding:6px 12px;font-size:13px}.chip:hover{border-color:var(--brand-2);color:var(--brand)}.chip.is-active{background:var(--brand);color:#fff;border-color:var(--brand)}.filter-bar{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.filter-bar input,.filter-bar select{border:1px solid var(--border);background:var(--surface);border-radius:10px;min-width:180px;padding:9px 12px;font-size:14px}.filter-bar input:focus,.filter-bar select:focus{border-color:var(--brand-2);outline:none;box-shadow:0 0 0 3px #534ab72e}.empty{background:var(--surface);border-radius:var(--radius);text-align:center;color:var(--text-soft);border:1px dashed var(--border);padding:32px}.table-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th{text-align:left;color:var(--text-soft);text-transform:uppercase;letter-spacing:.04em;background:#534ab70a;padding:12px 16px;font-size:12px;font-weight:600}.data-table td{border-top:1px solid var(--border);vertical-align:middle;padding:14px 16px}.data-table tr:hover td{background:#534ab705}.tag-row{flex-wrap:wrap;gap:6px;display:flex}.tag{color:var(--brand);background:#534ab714;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:500}.tag-strong{background:var(--brand);color:#fff}.tag-matched{color:var(--success);background:#1f8e5c1f;font-weight:600}.status-pill{color:var(--brand);background:#534ab714;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.status-active{color:var(--success);background:#1f8e5c1f}.status-on_hold{color:#c7780e;background:#d6841c1f}.status-cancelled{color:var(--error);background:#c0263c1a}.status-completed{color:var(--text-soft);background:#14121f0f}.btn-primary{background:var(--brand);color:#fff;border:0;border-radius:10px;padding:9px 16px;font-size:14px;font-weight:600}.btn-primary:hover{background:var(--brand-2)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{color:var(--brand);background:#534ab714;border-radius:8px;padding:7px 12px;font-size:13px;font-weight:500}.btn-secondary:hover{background:#534ab726;text-decoration:none}.consultant-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.consultant-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:12px;padding:20px;display:flex}.consultant-head{align-items:center;gap:12px;display:flex}.avatar{background:linear-gradient(135deg, var(--brand-2), var(--brand-3));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:14px;font-weight:700;display:flex}.consultant-name{font-weight:600}.consultant-meta{color:var(--text-soft);font-size:13px}.consultant-card .bio{color:var(--text-soft);margin:0;font-size:13px;line-height:1.5}.avail-pill{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;margin-left:auto;padding:3px 10px;font-size:11px;font-weight:700}.avail-available{color:var(--success);background:#1f8e5c1f}.avail-partial{color:#c7780e;background:#d6841c1f}.avail-booked{color:var(--error);background:#c0263c1a}.avail-leave{color:var(--text-soft);background:#14121f14}.project-summary{border-radius:var(--radius);background:linear-gradient(135deg,#534ab714,#7a6fe20a);border:1px solid #534ab726;flex-direction:column;gap:12px;margin-bottom:20px;padding:20px;display:flex}.project-summary h2{margin:4px 0 0;font-size:18px}.match-list{flex-direction:column;gap:10px;display:flex}.match-row{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border-left:4px solid #0000;grid-template-columns:100px 1fr auto;align-items:center;gap:16px;padding:16px 20px;transition:transform .12s;display:grid}.match-row.is-high{border-left-color:var(--success)}.match-row.is-mid{border-left-color:#c7780e}.match-row.is-low{border-left-color:#14121f26}.match-row:hover{transform:translateY(-1px)}.match-score-block{text-align:center}.match-score-num{letter-spacing:-.02em;color:var(--brand);font-size:32px;font-weight:700;line-height:1}.match-score-num span{color:var(--text-soft);margin-left:2px;font-size:14px}.match-main{flex-direction:column;gap:8px;min-width:0;display:flex}.match-row-head{flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;display:flex}.match-cta{align-items:center;display:flex}.match-reasoning{color:var(--text-soft);background:#534ab70a;border-left:2px solid #534ab74d;border-radius:6px;padding:8px 12px;font-size:13px;font-style:italic;line-height:1.5}.provider-badge{border-radius:999px;align-items:center;gap:6px;width:fit-content;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex}.provider-openai{color:var(--brand);background:linear-gradient(135deg,#1f8e5c26,#534ab726)}.provider-heuristic{color:var(--text-soft);background:#14121f0f}.ok{color:var(--success);font-size:14px;font-weight:600}@media (width<=700px){.match-row{grid-template-columns:80px 1fr}.match-cta{grid-column:1/-1;justify-content:flex-end}.topbar{flex-direction:column;align-items:flex-start;gap:12px;padding:14px 20px}.content{padding:20px}}
