:root{--bg:#f6f7f9;--card:#fff;--ink:#1a1d21;--muted:#6b7280;--line:#e5e7eb;--brand:#2563eb;--brand-dark:#1d4ed8;--danger:#dc2626;--ok:#059669;--radius:10px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0;padding:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:15px;line-height:1.5}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1100px;margin:0 auto;padding:24px}.narrow{max-width:440px;margin:8vh auto;padding:24px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px}h1{margin:0 0 4px;font-size:26px}h2{margin:0 0 12px;font-size:18px}.muted{color:var(--muted)}.small{font-size:13px}label{margin:14px 0 6px;font-size:13px;font-weight:600;display:block}input[type=text],input[type=email],input[type=password],textarea{border:1px solid var(--line);width:100%;font:inherit;color:var(--ink);background:#fff;border-radius:8px;padding:10px 12px}textarea{resize:vertical;min-height:120px}input:focus,textarea:focus{outline:2px solid var(--brand);border-color:var(--brand)}button{font:inherit;cursor:pointer;background:var(--brand);color:#fff;border:none;border-radius:8px;padding:10px 16px;font-weight:600;transition:background .15s}button:hover{background:var(--brand-dark)}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{color:var(--ink);border:1px solid var(--line);background:#eef2f7}button.secondary:hover{background:#e2e8f0}button.danger{color:var(--danger);border:1px solid var(--line);background:#fff}button.ghost{color:var(--muted);background:0 0;padding:6px 10px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.spread{justify-content:space-between;align-items:center;gap:12px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (max-width:820px){.grid2{grid-template-columns:1fr}}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;padding:14px 24px;display:flex}.brand{font-size:18px;font-weight:700}.error{color:var(--danger);margin-top:10px;font-size:13px}.notice{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:10px 12px;font-size:13px}.tag{background:#eef2f7;border-radius:999px;margin:0 6px 6px 0;padding:3px 10px;font-size:12px;display:inline-block}.cv{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:28px}.cv .cv-name{text-align:center;font-size:24px;font-weight:700}.cv .cv-headline{text-align:center;color:var(--muted);font-style:italic}.cv .cv-contact{text-align:center;color:var(--muted);margin-top:4px;font-size:13px}.cv h3{text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);margin:22px 0 10px;padding-bottom:4px;font-size:13px}.cv .role-title{font-weight:700}.cv .role-meta{color:var(--muted);font-size:13px;font-style:italic}.cv ul{margin:6px 0 0;padding-left:20px}.cv li{margin-bottom:4px}.spinner{vertical-align:-3px;border:2px solid #fff;border-top-color:#0000;border-radius:50%;width:16px;height:16px;margin-right:8px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.dropzone{border:2px dashed var(--line);text-align:center;color:var(--muted);cursor:pointer;background:#fafbfc;border-radius:10px;padding:22px}.dropzone:hover{border-color:var(--brand);color:var(--brand)}.thumb{border:1px solid var(--line);border-radius:8px;max-width:100%;max-height:240px}
