:root{--font-display: "Instrument Serif", Georgia, serif;--font-body: "Inter Tight", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace;--color-bg: #fafaf9;--color-bg-elevated: #ffffff;--color-bg-subtle: #f5f5f4;--color-bg-muted: #e7e5e4;--color-text: #0c0a09;--color-text-muted: #57534e;--color-text-faint: #a8a29e;--color-border: #e7e5e4;--color-border-strong: #d6d3d1;--color-accent: #e11d48;--color-accent-soft: #fff1f2;--color-success: #15803d;--color-success-bg: #f0fdf4;--color-warn: #a16207;--color-warn-bg: #fefce8;--color-danger: #b91c1c;--color-danger-bg: #fef2f2;--color-info: #1e40af;--color-info-bg: #eff6ff;--shadow-sm: 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(12,10,9,.06);--shadow-lg: 0 20px 40px rgba(12,10,9,.12);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-xl: 14px}*{box-sizing:border-box}body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg)}a{color:inherit;text-decoration:none}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:var(--color-text);color:#d6d3d1;padding:28px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar-brand{display:flex;align-items:baseline;gap:8px;padding:0 8px 28px;border-bottom:1px solid #292524;margin-bottom:20px}.sidebar-brand .logo{font-family:var(--font-display);font-style:italic;font-size:28px;color:#fafaf9;letter-spacing:-.02em;line-height:1}.sidebar-brand .tag{font-size:10px;text-transform:uppercase;letter-spacing:.15em;color:#78716c;font-weight:500}.sidebar-section{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#78716c;padding:16px 12px 8px;font-weight:600}.sidebar-nav button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:none;background:transparent;color:#a8a29e;font-size:13px;font-weight:500;cursor:pointer;border-radius:var(--radius-md);margin-bottom:2px;text-align:left;transition:all .12s}.sidebar-nav button:hover{background:#292524;color:#fafaf9}.sidebar-nav button.active{background:#fafaf9;color:var(--color-text);font-weight:600}.sidebar-nav button .icon{width:16px;height:16px;flex-shrink:0;opacity:.8}.sidebar-nav button .badge{margin-left:auto;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;background:#44403c;color:#d6d3d1}.sidebar-nav button.active .badge{background:var(--color-bg-muted);color:var(--color-text-muted)}.sidebar-footer{margin-top:auto;padding:16px 12px 0;border-top:1px solid #292524;display:flex;align-items:center;gap:10px}.sidebar-footer .avatar{width:28px;height:28px;border-radius:50%;background:var(--color-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.sidebar-footer .who{flex:1;min-width:0}.sidebar-footer .who .email{font-size:11px;color:#a8a29e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-footer .who .role{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#78716c;font-weight:600}.sidebar-footer button{background:none;border:1px solid #292524;color:#a8a29e;padding:5px 8px;border-radius:var(--radius-sm);font-size:11px;cursor:pointer}.sidebar-footer button:hover{background:#292524;color:#fafaf9}.main{min-width:0;display:flex;flex-direction:column}.topbar{background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);padding:20px 32px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.topbar h1{font-family:var(--font-display);font-size:30px;font-weight:400;letter-spacing:-.02em;line-height:1}.topbar h1 em{font-style:italic;color:var(--color-accent)}.topbar .meta{font-size:12px;color:var(--color-text-muted);margin-top:4px}.content{padding:24px 32px;flex:1}.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:24px}.stat-card{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:18px 20px;position:relative;overflow:hidden}.stat-card .label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);font-weight:600;margin-bottom:6px}.stat-card .value{font-family:var(--font-display);font-size:38px;font-weight:400;line-height:1;letter-spacing:-.02em}.stat-card .trend{font-size:11px;color:var(--color-text-muted);margin-top:6px;font-feature-settings:"tnum"}.stat-card.accent{background:var(--color-text);color:#fff;border:none}.stat-card.accent .label,.stat-card.accent .trend{color:#a8a29e}.filterbar{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:10px 12px;margin-bottom:16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.search-input{flex:1;min-width:220px;position:relative}.search-input input{width:100%;padding:8px 12px 8px 32px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);font-size:13px;outline:none;transition:border-color .15s}.search-input input:focus{border-color:var(--color-text);background:var(--color-bg-elevated)}.search-input .icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--color-text-faint);pointer-events:none}.filterbar select{padding:8px 30px 8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);font-size:13px;cursor:pointer;outline:none;font-weight:500;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2357534e' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.filterbar select:focus{border-color:var(--color-text)}.btn{padding:8px 14px;border:1px solid var(--color-border-strong);background:var(--color-bg-elevated);border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:all .12s}.btn:hover{background:var(--color-bg-subtle);border-color:var(--color-text-muted)}.btn-primary{background:var(--color-text);color:#fff;border-color:var(--color-text)}.btn-primary:hover{background:#292524;border-color:#292524}.btn-accent{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-accent:hover{background:#be123c;border-color:#be123c}.btn-sm{padding:5px 10px;font-size:12px}.table-wrap{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.table-meta{padding:10px 16px;border-bottom:1px solid var(--color-border);font-size:12px;color:var(--color-text-muted);display:flex;justify-content:space-between;align-items:center;background:var(--color-bg-subtle)}.table-meta strong{color:var(--color-text);font-feature-settings:"tnum";font-weight:600}table{width:100%;border-collapse:collapse;font-size:13px}thead{background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border-strong)}th{text-align:left;padding:10px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}th:hover{color:var(--color-text)}th.sort-asc:after{content:" ↑";color:var(--color-accent)}th.sort-desc:after{content:" ↓";color:var(--color-accent)}td{padding:12px;border-bottom:1px solid var(--color-border);vertical-align:middle}tr:hover td{background:var(--color-bg)}tr:last-child td{border-bottom:none}.cell-name{display:flex;align-items:center;gap:10px;font-weight:500}.cell-name .avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:600;flex-shrink:0}.cell-name .info{min-width:0}.cell-name .name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.cell-name .sub{font-size:11px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.score-chip{display:inline-flex;align-items:center;justify-content:center;width:44px;height:28px;border-radius:6px;font-family:var(--font-mono);font-size:13px;font-weight:600;font-feature-settings:"tnum"}.score-chip.high{background:var(--color-success-bg);color:var(--color-success)}.score-chip.mid{background:var(--color-warn-bg);color:var(--color-warn)}.score-chip.low{background:var(--color-danger-bg);color:var(--color-danger)}.score-chip.none{background:var(--color-bg-subtle);color:var(--color-text-faint)}.pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap}.pill-success{background:var(--color-success-bg);color:var(--color-success)}.pill-warn{background:var(--color-warn-bg);color:var(--color-warn)}.pill-danger{background:var(--color-danger-bg);color:var(--color-danger)}.pill-info{background:var(--color-info-bg);color:var(--color-info)}.pill-muted{background:var(--color-bg-subtle);color:var(--color-text-muted)}.empty{padding:60px 20px;text-align:center;color:var(--color-text-muted)}.empty h2{font-family:var(--font-display);font-size:32px;font-weight:400;letter-spacing:-.02em;color:var(--color-text);margin-bottom:8px}.empty h2 em{color:var(--color-accent);font-style:italic}.empty p{font-size:14px;max-width:400px;margin:0 auto 20px;line-height:1.6}.loader{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:var(--color-bg)}.login-art{background:var(--color-text);color:#fff;padding:60px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-art .brand-lg{font-family:var(--font-display);font-size:80px;font-style:italic;line-height:.9;letter-spacing:-.04em;font-weight:400}.login-art .brand-lg .accent{color:var(--color-accent)}.login-art .tagline{font-size:16px;color:#a8a29e;max-width:360px;line-height:1.6;margin-top:16px}.login-art .footer-art{font-size:11px;color:#57534e;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em}.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:60px}.login-form{width:100%;max-width:380px}.login-form h2{font-family:var(--font-display);font-size:42px;font-weight:400;font-style:italic;letter-spacing:-.02em;line-height:1;margin-bottom:8px}.login-form>p{font-size:14px;color:var(--color-text-muted);margin-bottom:32px}.login-form label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:6px}.login-form input{width:100%;padding:12px 14px;border:1px solid var(--color-border);background:var(--color-bg-elevated);border-radius:var(--radius-md);font-size:14px;outline:none;margin-bottom:16px;transition:border-color .15s}.login-form input:focus{border-color:var(--color-text)}.login-form button[type=submit]{width:100%;padding:12px;background:var(--color-text);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;margin-top:8px}.login-form button[type=submit]:hover{background:#292524}.login-form button[type=submit]:disabled{background:var(--color-text-muted);cursor:not-allowed}.login-form .error{background:var(--color-danger-bg);color:var(--color-danger);padding:10px 14px;border-radius:var(--radius-md);font-size:13px;margin-bottom:16px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c0a0980;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;animation:fadeIn .15s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-bg-elevated);border-radius:var(--radius-xl);width:100%;max-width:720px;max-height:90vh;overflow:auto;box-shadow:var(--shadow-lg);animation:slideUp .2s}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{padding:24px 28px;border-bottom:1px solid var(--color-border);display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.modal-header .title{font-family:var(--font-display);font-size:28px;font-weight:400;letter-spacing:-.02em;line-height:1.1}.modal-header .subtitle{font-size:13px;color:var(--color-text-muted);margin-top:4px}.modal-header .close{background:none;border:none;font-size:20px;color:var(--color-text-muted);cursor:pointer;width:32px;height:32px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.modal-header .close:hover{background:var(--color-bg-subtle)}.modal-body{padding:24px 28px}.modal-section{margin-bottom:24px}.modal-section h4{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);margin-bottom:12px}.score-breakdown{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.score-item{background:var(--color-bg);border:1px solid var(--color-border);padding:12px;border-radius:var(--radius-md);text-align:center}.score-item .label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:6px}.score-item .value{font-family:var(--font-mono);font-size:18px;font-weight:600}.score-item .max{font-size:11px;color:var(--color-text-faint)}.score-item .bar{height:3px;background:var(--color-bg-muted);border-radius:2px;margin-top:8px;overflow:hidden}.score-item .fill{height:100%;background:var(--color-text);border-radius:2px;transition:width .4s}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.info-row{background:var(--color-bg);border:1px solid var(--color-border);padding:12px;border-radius:var(--radius-md)}.info-row .label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:4px;font-weight:600}.info-row .value{font-size:14px;font-weight:500}.info-row .sub{font-size:11px;color:var(--color-text-muted);margin-top:2px}.callout{padding:14px 16px;border-radius:var(--radius-md);font-size:13px;line-height:1.6}.callout-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;display:flex;align-items:center;gap:6px}.callout.success{background:var(--color-success-bg);color:var(--color-success);border:1px solid #bbf7d0}.callout.warn{background:var(--color-warn-bg);color:var(--color-warn);border:1px solid #fde68a}.callout.info{background:var(--color-info-bg);color:var(--color-info);border:1px solid #bfdbfe}.callout.neutral{background:var(--color-bg-subtle);color:var(--color-text);border:1px solid var(--color-border)}.skills{display:flex;flex-wrap:wrap;gap:5px}.skill-chip{font-size:11px;padding:3px 9px;border-radius:4px;background:var(--color-bg-subtle);color:var(--color-text);font-weight:500;border:1px solid var(--color-border)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid.cols-3{grid-template-columns:1fr 1fr 1fr}.form-grid>div{display:flex;flex-direction:column}.form-grid label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:4px;font-weight:600}.form-grid input,.form-grid select,.form-grid textarea{padding:9px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;outline:none;background:var(--color-bg-elevated)}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--color-text)}textarea{resize:vertical;font-family:var(--font-body);line-height:1.5}.toast{position:fixed;bottom:24px;right:24px;background:var(--color-text);color:#fff;padding:12px 18px;border-radius:var(--radius-md);font-size:13px;font-weight:500;box-shadow:var(--shadow-lg);z-index:200;animation:slideInRight .25s}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.toast.error{background:var(--color-danger)}.muted{color:var(--color-text-muted)}.text-sm{font-size:12px}.flex{display:flex}.flex-1{flex:1}.gap-2{gap:8px}.gap-3{gap:12px}.items-center{align-items:center}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-2{margin-bottom:8px}.pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--color-border);font-size:12px;color:var(--color-text-muted)}.pagination button{background:none;border:1px solid var(--color-border);padding:5px 10px;border-radius:var(--radius-sm);font-size:12px;cursor:pointer}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination button:not(:disabled):hover{background:var(--color-bg-subtle)}
