body{margin:0}:root{--ink:#1c1917;--ink-soft:#57534e;--paper:#fafaf9;--panel:#fff;--line:#e7e5e4;--accent:#2d5a4a;--accent-soft:#e8f0ed;--warn:#b45309;--warn-soft:#fef3e2;--danger:#b91c1c;--danger-soft:#fef2f2;--radius:6px}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app-shell{max-width:880px;margin:0 auto;padding:0 20px 60px}@media (width<=640px){.app-shell{padding:0 14px 40px}}.app-header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:32px 0 20px;display:flex}.app-header h1{letter-spacing:-.01em;margin:0;font-size:22px;font-weight:650}@media (width<=480px){.app-header{padding:20px 0 16px}.app-header h1{font-size:19px}}.tab-nav{border-bottom:1px solid var(--line);-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:4px;margin:20px 0;display:flex;overflow-x:auto}.tab-nav::-webkit-scrollbar{display:none}.tab-nav button{color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;margin-bottom:-1px;padding:10px 16px;font-size:14px;font-weight:550}@media (width<=480px){.tab-nav button{padding:10px 12px;font-size:13px}}.tab-nav button.tab-active{color:var(--accent);border-bottom-color:var(--accent)}.tab-nav button:hover:not(.tab-active){color:var(--ink)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:24px}@media (width<=480px){.card{padding:16px}}.card h2{margin:0 0 4px;font-size:17px;font-weight:650}.hint{color:var(--ink-soft);margin:0 0 16px;font-size:13px}.dropzone{border:1.5px dashed var(--line);border-radius:var(--radius);text-align:center;cursor:pointer;color:var(--ink-soft);padding:32px;font-size:14px;transition:border-color .15s}.dropzone:hover{border-color:var(--accent)}.file-list{text-align:left;color:var(--ink);margin:16px 0 0;padding:0;font-size:13px;list-style:none}.file-list li{background:var(--paper);border-radius:4px;margin-bottom:4px;padding:6px 10px}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;margin-top:16px;padding:10px 18px;font-size:14px;font-weight:600}.btn-primary:hover:not(:disabled){opacity:.9}.btn-primary:disabled{background:var(--line);color:var(--ink-soft);cursor:not-allowed}.error-msg{background:var(--danger-soft);color:var(--danger);border-radius:var(--radius);border:1px solid #fecaca;margin-top:12px;padding:10px 14px;font-size:13px}table{border-collapse:collapse;width:100%;margin-top:16px;font-size:13px}th{text-align:left;color:var(--ink-soft);border-bottom:1px solid var(--line);padding:8px 10px;font-weight:600}td{border-bottom:1px solid var(--line);padding:10px}td.missing{color:var(--warn);font-style:italic}@media (width<=640px){table,thead,tbody,th,td,tr{display:block}thead{position:absolute;left:-9999px}tr{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;padding:4px 12px}td{text-align:right;border-bottom:none;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}td:not(:last-child){border-bottom:1px solid var(--line)}td:before{content:attr(data-label);color:var(--ink-soft);text-align:left;flex-shrink:0;font-weight:600}}.results-summary{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.results-summary h3{margin:0 0 4px;font-size:14px}.candidate-block{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;padding:18px}.candidate-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.candidate-header strong{word-break:break-word}.badges{gap:6px;display:flex}.badge-missing{background:var(--warn-soft);color:var(--warn);border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600}.meta{color:var(--ink-soft);margin:0 0 12px;font-size:13px}.edit-form{gap:12px;margin-top:12px;display:grid}.field-row label{color:var(--ink-soft);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.required-badge{color:var(--danger);text-transform:uppercase;margin-left:4px;font-size:10px;font-weight:700}.field-row input{border:1px solid var(--line);border-radius:var(--radius);width:100%;padding:9px 12px;font-family:inherit;font-size:14px}.field-row input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field-row input.input-error{border-color:var(--danger)}.field-error{color:var(--danger);margin-top:4px;font-size:12px;display:block}.saved-confirm{background:var(--accent-soft);color:var(--accent);border-radius:var(--radius);margin-top:12px;padding:12px 14px;font-size:14px;font-weight:600}.empty-state{color:var(--ink-soft);padding:20px 0;font-size:14px}.login-shell{background:var(--paper);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{width:100%;max-width:360px}.login-card h2{margin-bottom:4px}.login-card .btn-primary{width:100%}.auth-checking{min-height:100vh;color:var(--ink-soft);justify-content:center;align-items:center;font-size:14px;display:flex}.header-user{color:var(--ink-soft);align-items:center;gap:12px;font-size:13px;display:flex}.btn-link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:600}.btn-link:hover{text-decoration:underline}
