@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&display=swap";
:root{--color-paper:#f5f6f4;--color-ink:#14181c;--color-graphite:#4b5259;--color-signal:#2f5d62;--color-signal-hover:#245059;--color-flag:#b8862b;--color-divider:#dcdfdb;--color-white:#fff;--color-surface:#edeeed;--color-seg-skills:#2f5d62;--color-seg-experience:#4a7c82;--color-seg-education:#6b9da2;--color-seg-potential:#96bec2;--font-mono:"IBM Plex Mono", "Courier New", monospace;--font-sans:"IBM Plex Sans", system-ui, sans-serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:3px;--radius-md:6px;--radius-lg:12px;--focus-ring:0 0 0 2px var(--color-signal);--duration-fast:.12s;--duration-base:.2s;--ease-standard:cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-feature-settings:"tnum" 1}body{font-family:var(--font-sans);color:var(--color-ink);background-color:var(--color-paper);min-height:100vh;font-size:14px;line-height:1.6}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-ink{color:var(--color-ink)}.text-graphite{color:var(--color-graphite)}.text-signal{color:var(--color-signal)}.text-flag{color:var(--color-flag)}.container{max-width:1280px;padding:0 var(--space-6);margin:0 auto}.page-header{border-bottom:1px solid var(--color-divider);padding:var(--space-5) 0;margin-bottom:var(--space-8)}.page-header__inner{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.page-title{font-family:var(--font-mono);color:var(--color-ink);letter-spacing:-.02em;font-size:18px;font-weight:600}.page-title span{color:var(--color-signal)}.home-grid{gap:var(--space-8);grid-template-columns:1fr 1fr;align-items:start;display:grid}@media (max-width:768px){.home-grid{grid-template-columns:1fr}}.panel{background:var(--color-white);border:1px solid var(--color-divider);border-radius:var(--radius-lg);padding:var(--space-6)}.panel__title{font-family:var(--font-mono);color:var(--color-graphite);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-5);font-size:13px;font-weight:600}.field{gap:var(--space-2);margin-bottom:var(--space-5);flex-direction:column;display:flex}.field:last-child{margin-bottom:0}.label{font-family:var(--font-mono);color:var(--color-graphite);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:600}.input,.textarea{font-family:var(--font-sans);color:var(--color-ink);background:var(--color-paper);border:1px solid var(--color-divider);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);width:100%;transition:border-color var(--duration-fast) var(--ease-standard);outline:none;font-size:14px}.input:focus,.textarea:focus{border-color:var(--color-signal);box-shadow:var(--focus-ring)}.textarea{resize:vertical;min-height:140px;line-height:1.5}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-mono);border-radius:var(--radius-md);padding:var(--space-3) var(--space-5);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);white-space:nowrap;border:none;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-signal);color:var(--color-white)}.btn-primary:hover:not(:disabled){background-color:var(--color-signal-hover)}.btn-secondary{color:var(--color-ink);border:1px solid var(--color-divider);background-color:#0000}.btn-secondary:hover:not(:disabled){background-color:var(--color-surface)}.btn-full{width:100%}.upload-zone{border:2px dashed var(--color-divider);border-radius:var(--radius-lg);padding:var(--space-10) var(--space-6);text-align:center;cursor:pointer;transition:border-color var(--duration-base) var(--ease-standard), background-color var(--duration-base) var(--ease-standard)}.upload-zone:hover,.upload-zone--dragging{border-color:var(--color-signal);background-color:#2f5d620a}.upload-zone__icon{margin-bottom:var(--space-3);color:var(--color-graphite);font-size:32px;display:block}.upload-zone__text{font-family:var(--font-sans);color:var(--color-graphite);font-size:14px}.upload-zone__text strong{color:var(--color-signal)}.file-list{margin-top:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.file-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-paper);border:1px solid var(--color-divider);font-size:13px;display:flex}.file-item__name{font-family:var(--font-mono);color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.file-item__status{font-size:12px;font-family:var(--font-mono);white-space:nowrap}.file-item__status--uploading{color:var(--color-graphite)}.file-item__status--success{color:var(--color-signal)}.file-item__status--error{color:#c0392b}.job-list{margin-top:var(--space-5);gap:var(--space-2);flex-direction:column;display:flex}.job-card{padding:var(--space-4);border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-paper);color:inherit;transition:background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);text-decoration:none;display:block}.job-card:hover{background-color:var(--color-white);border-color:var(--color-signal)}.job-card:focus-visible{box-shadow:var(--focus-ring);outline:none}.job-card__title{font-family:var(--font-mono);color:var(--color-ink);margin-bottom:var(--space-1);font-size:13px;font-weight:600}.job-card__meta{color:var(--color-graphite);font-size:12px}.candidate-table-wrap{border:1px solid var(--color-divider);border-radius:var(--radius-lg);background:var(--color-white);overflow-x:auto}.candidate-table{border-collapse:collapse;width:100%}.candidate-table th{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--color-graphite);padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-divider);background:var(--color-paper);white-space:nowrap;font-size:11px;font-weight:600}.candidate-table td{padding:var(--space-4);vertical-align:middle;border-bottom:1px solid var(--color-divider)}.candidate-table tr:last-child td{border-bottom:none}.candidate-row{transition:background-color var(--duration-fast) var(--ease-standard)}.candidate-row:hover{background-color:#fafafa}.score-cell{align-items:center;gap:var(--space-3);min-width:140px;display:flex}.score-number{font-family:var(--font-mono);color:var(--color-signal);min-width:32px;font-size:20px;font-weight:600;line-height:1}.score-denom{font-family:var(--font-mono);color:var(--color-graphite);font-size:11px}.candidate-name{font-family:var(--font-mono);color:var(--color-ink);font-size:13px;font-weight:600}.rank-badge{font-family:var(--font-mono);color:var(--color-graphite);background:var(--color-surface);border-radius:var(--radius-sm);text-align:center;min-width:28px;padding:2px 6px;font-size:11px;font-weight:600}.evidence-bar{border-radius:4px;gap:1px;min-width:80px;height:8px;display:flex;overflow:hidden}.evidence-bar--large{border-radius:6px;gap:2px;height:14px}.evidence-bar__segment{transform-origin:0;transition:transform var(--duration-base) var(--ease-standard), opacity var(--duration-base) var(--ease-standard);border-radius:2px;flex-shrink:0}.evidence-bar__segment--skills{background:var(--color-seg-skills)}.evidence-bar__segment--experience{background:var(--color-seg-experience)}.evidence-bar__segment--education{background:var(--color-seg-education)}.evidence-bar__segment--potential{background:var(--color-seg-potential)}.evidence-bar__segment--animate-in{opacity:0;transform:scaleX(0)}.evidence-bar__segment--animated{opacity:1;transform:scaleX(1)}.evidence-legend{gap:var(--space-4);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.evidence-legend__item{align-items:center;gap:var(--space-2);color:var(--color-graphite);font-size:11px;font-family:var(--font-mono);display:flex}.evidence-legend__dot{border-radius:2px;flex-shrink:0;width:8px;height:8px}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{font-family:var(--font-mono);white-space:nowrap;border-radius:20px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:500;display:inline-flex}.chip--matched{color:var(--color-signal);background:#2f5d621a;border:1px solid #2f5d6233}.chip--missing{color:var(--color-flag);background:#b8862b1a;border:1px solid #b8862b33}.chip--missing:before{content:"⚑";font-size:10px}.drawer-wrapper{transition:grid-template-rows var(--duration-base) var(--ease-standard);grid-template-rows:0fr;display:grid}.drawer-wrapper--open{grid-template-rows:1fr}.drawer-inner{overflow:hidden}.drawer-content{padding:var(--space-6);border-top:1px solid var(--color-divider);background:var(--color-paper)}.drawer-section{margin-bottom:var(--space-6)}.drawer-section:last-child{margin-bottom:0}.drawer-section__title{font-family:var(--font-mono);color:var(--color-graphite);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-3);font-size:11px;font-weight:600}.justification-text{font-family:var(--font-sans);color:var(--color-ink);max-width:80ch;font-size:14px;line-height:1.7}.resume-data-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.resume-data-item{font-size:13px}.resume-data-item__label{font-family:var(--font-mono);color:var(--color-graphite);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2);font-size:11px;font-weight:600}.expand-btn{cursor:pointer;padding:var(--space-2);color:var(--color-graphite);border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.expand-btn:hover{color:var(--color-ink);background:var(--color-surface)}.expand-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.expand-chevron{width:16px;height:16px;transition:transform var(--duration-base) var(--ease-standard)}.expand-chevron--open{transform:rotate(90deg)}.empty-state{text-align:center;padding:var(--space-12) var(--space-6);color:var(--color-graphite)}.empty-state__icon{margin-bottom:var(--space-4);opacity:.4;font-size:40px;display:block}.empty-state__text{font-family:var(--font-sans);font-size:14px}.spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:13px;font-family:var(--font-sans);margin-bottom:var(--space-4)}.alert--error{color:#c0392b;background:#c0392b14;border:1px solid #c0392b40}.alert--success{color:var(--color-signal);background:#2f5d6214;border:1px solid #2f5d6240}.dashboard-header{margin-bottom:var(--space-8)}.dashboard-header__breadcrumb{font-family:var(--font-mono);color:var(--color-graphite);margin-bottom:var(--space-3);font-size:12px}.dashboard-header__breadcrumb a{color:var(--color-signal);text-decoration:none}.dashboard-header__breadcrumb a:hover{text-decoration:underline}.dashboard-header__title{font-family:var(--font-mono);color:var(--color-ink);margin-bottom:var(--space-3);font-size:22px;font-weight:600}.dashboard-header__desc{font-family:var(--font-sans);color:var(--color-graphite);max-width:80ch;font-size:14px;line-height:1.6}.dashboard-actions{align-items:center;gap:var(--space-4);margin-top:var(--space-6);margin-bottom:var(--space-6);display:flex}.match-status{font-family:var(--font-mono);color:var(--color-graphite);font-size:12px}.divider{border:none;border-top:1px solid var(--color-divider);margin:var(--space-6) 0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important;animation-delay:0s!important}.drawer-wrapper{transition:none!important}.evidence-bar__segment{opacity:1!important;transition:none!important;transform:scaleX(1)!important}}
