
:root { --wine:#690e12; --wine-dark:#45080b; --gold:#f6bd1f; --cream:#faf7f2; --ink:#292525; --muted:#746d6b; --line:#e8e2dc; }
* { box-sizing:border-box; }
body { margin:0; background:#f6f3ef; color:var(--ink); font-family:Arial, Helvetica, sans-serif; }
button,input,select,textarea { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }

.public-shell { min-height:100vh; background:linear-gradient(180deg,#f4eee8 0,#faf8f5 300px); }
.brand-header { min-height:220px; padding:36px max(5vw,32px); color:white; background:radial-gradient(circle at 75% 10%,#8d2023 0,transparent 38%),linear-gradient(135deg,#3e0709,#700d12 60%,#4f080b); display:flex; align-items:center; justify-content:space-between; box-shadow:0 8px 25px #40080a22; }
.brand-wrap { width:min(1120px,100%); margin:auto; display:flex; align-items:center; gap:28px; }
.brand-logo { width:130px; height:130px; border-radius:18px; object-fit:cover; box-shadow:0 12px 32px #19000055; }
.brand-kicker,.eyebrow { color:var(--gold); font-size:12px; font-weight:800; letter-spacing:.2em; }
.brand-header h1 { margin:8px 0 7px; font-family:Georgia,serif; font-size:36px; font-weight:600; }
.brand-header p { margin:0; color:#f1dfdc; font-size:16px; }
.admin-link { color:#f7e7d8; border:1px solid #ffffff33; background:#ffffff0d; padding:11px 16px; border-radius:10px; text-decoration:none; white-space:nowrap; }
.form-layout { width:min(1140px,calc(100% - 40px)); margin:-28px auto 50px; display:grid; grid-template-columns:260px 1fr; gap:24px; align-items:start; position:relative; }
.step-panel,.candidate-form { background:white; border:1px solid #eee6df; box-shadow:0 10px 35px #51231612; border-radius:16px; }
.step-panel { padding:26px 22px; position:sticky; top:24px; }
.step-title { color:#8c8582; font-weight:700; font-size:11px; letter-spacing:.13em; margin:0 0 18px; }
.step-item { display:flex; align-items:center; gap:12px; color:#9b9693; position:relative; padding:7px 0 18px; }
.step-item:not(:last-of-type)::after { content:""; position:absolute; top:36px; left:14px; width:1px; height:16px; background:#ddd7d2; }
.step-item span { width:29px; height:29px; border-radius:50%; border:1px solid #d7d1cc; display:grid; place-items:center; font-size:12px; flex:none; }
.step-item p { margin:0; font-size:13px; font-weight:650; }
.step-item.active { color:var(--wine); }.step-item.active span { background:var(--wine); border-color:var(--wine); color:white; box-shadow:0 4px 10px #690e1233; }
.step-item.done { color:#287d4f; }.step-item.done span { background:#e8f6ed; border-color:#b5dbc4; }
.privacy-note { display:flex; gap:10px; padding:14px; border-radius:10px; background:#f7f5f2; margin-top:8px; color:#77706c; }
.privacy-note p { margin:0; font-size:11px; line-height:1.5; }
.candidate-form { overflow:hidden; }
.form-section { min-height:550px; padding:36px 42px 28px; }
.section-heading { display:flex; gap:15px; align-items:flex-start; border-bottom:1px solid var(--line); padding-bottom:22px; margin-bottom:28px; }
.section-heading>span { width:36px;height:36px;border-radius:10px;background:#f9e9e8;color:var(--wine);display:grid;place-items:center;font-weight:800;font-size:12px; }
.section-heading h2 { margin:0 0 5px; font-family:Georgia,serif; font-size:25px; color:#3a2b2a; }
.section-heading p { margin:0; color:#89817d; font-size:13px; }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }.field-grid .full { grid-column:1/-1; }
.field { display:flex; flex-direction:column; gap:8px; color:#514a47; font-size:12px; font-weight:700; }
.field input,.field select,.field textarea,.filters input,.filters select { width:100%; border:1px solid #ddd6d1; border-radius:9px; background:#fff; padding:12px 13px; outline:none; color:#403b39; font-weight:400; transition:.2s; }
.field input:focus,.field select:focus,.field textarea:focus,.filters input:focus { border-color:#9b3c40; box-shadow:0 0 0 3px #690e1212; }
.field input[readonly] { background:#f7f5f3; color:#89817d; }
.field textarea { resize:vertical; }
.choice-group { border:0; padding:0; margin:0; }.choice-group legend { font-size:12px; font-weight:700; margin-bottom:12px; }
.choice-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.choice-grid label { display:flex; align-items:center; gap:8px; border:1px solid #e1dad5; padding:12px; border-radius:9px; font-size:13px; cursor:pointer; }
.choice-grid input,.consent input { accent-color:var(--wine); }.top-gap { margin-top:24px; }
.upload-box { border:1px dashed #cbbeba; min-height:110px; border-radius:12px; display:flex; flex-direction:column; align-items:center; justify-content:center; cursor:pointer; background:#fcfbfa; color:#625957; }
.upload-box input { position:absolute; opacity:0; pointer-events:none; }.upload-box small { color:#918986; margin-top:5px; font-size:11px; }.upload-icon { color:var(--wine); font-size:22px; }
.review-card,.candidate-only { display:flex; align-items:flex-start; gap:15px; border-radius:12px; padding:18px; margin-bottom:22px; }
.review-card { background:#edf8f1; border:1px solid #cfe9d8; }.review-card>span { background:#2b8b56;color:white;width:28px;height:28px;border-radius:50%;display:grid;place-items:center; }
.review-card strong,.candidate-only strong { display:block; margin-bottom:5px; }.review-card p,.candidate-only p { margin:0; font-size:13px; line-height:1.5;color:#6f6864; }
.consent { display:flex; align-items:flex-start; gap:12px; font-size:12px; line-height:1.55; padding:18px 0; }.consent input { margin-top:2px; }
.candidate-only { background:#f8f4ef;border:1px solid #ebe1d7; }
.form-actions { border-top:1px solid var(--line); padding:20px 42px; display:flex; justify-content:space-between; background:#fcfbfa; }
.primary-button,.secondary-button { border:0; border-radius:9px; padding:12px 20px; font-weight:750; cursor:pointer; }
.primary-button { color:white; background:linear-gradient(135deg,#79151a,#570a0e); box-shadow:0 5px 14px #690e122c; }.secondary-button { color:#635c59; background:white; border:1px solid #ddd6d1; }
.mobile-progress { display:none; }.page-footer { text-align:center; color:#938b87; font-size:11px; padding:0 20px 34px; }
.success-shell { display:grid; place-items:center; padding:40px; }.success-card { width:min(580px,100%); text-align:center; background:white; padding:42px; border-radius:20px; box-shadow:0 18px 60px #420b0e1d; }
.success-icon { width:62px;height:62px;background:#e9f7ee;color:#258851;border-radius:50%;display:grid;place-items:center;margin:0 auto 15px;font-size:30px; }.success-logo { width:110px;height:110px;border-radius:14px;object-fit:cover; }.success-card h1 { font-family:Georgia,serif; color:#4b2b2a; }.success-card>p { color:#756d69;line-height:1.6; }.protocol { background:#f7f3ee;border-radius:10px;padding:14px;margin:24px 0;color:#6a625e; }

/* Admin */
.admin-shell { min-height:100vh; display:flex; background:#f5f6f8; }
.admin-sidebar { width:220px; background:linear-gradient(180deg,#4d090c,#6c1014); color:white; padding:22px 14px; display:flex; flex-direction:column; position:fixed;inset:0 auto 0 0;box-shadow:4px 0 20px #3e090c1c; }
.admin-logo { width:100px;height:100px;object-fit:cover;border-radius:12px;margin:0 auto 30px; }
.admin-sidebar nav,.sidebar-bottom { display:flex;flex-direction:column;gap:6px; }.admin-sidebar a { color:#e9d6d5;text-decoration:none;padding:12px 14px;border-radius:9px;font-size:13px;display:flex;gap:12px;align-items:center;cursor:pointer; }.admin-sidebar a.active { background:#ffffff17;color:white;font-weight:700; }.sidebar-bottom { margin-top:auto;border-top:1px solid #ffffff1b;padding-top:14px; }
.admin-main { margin-left:220px; flex:1; min-width:0; }.admin-topbar { height:98px;background:white;border-bottom:1px solid #e8e8ea;padding:0 32px;display:flex;align-items:center;justify-content:space-between; }.admin-topbar p { margin:0;color:#9a9290;font-size:10px;font-weight:800;letter-spacing:.15em; }.admin-topbar h1 { margin:4px 0 0;font-size:25px;font-family:Georgia,serif; }.admin-user { display:flex;gap:10px;align-items:center; }.admin-user>span { width:37px;height:37px;border-radius:50%;background:#f4dfdf;color:var(--wine);display:grid;place-items:center;font-size:11px;font-weight:800; }.admin-user div { display:flex;flex-direction:column;gap:2px; }.admin-user strong { font-size:12px; }.admin-user small { font-size:10px;color:#918a87; }.admin-user b { color:#aaa;font-weight:400; }
.metrics { display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:24px 28px 18px; }.metrics article { display:flex;align-items:center;gap:14px;background:white;border:1px solid #e7e7e9;border-radius:12px;padding:18px; }.metric-icon { width:42px;height:42px;border-radius:10px;display:grid;place-items:center;font-weight:800; }.metric-icon.blue {background:#eaf1ff;color:#3d72c9}.metric-icon.amber{background:#fff2dd;color:#c27b16}.metric-icon.purple{background:#f0e9ff;color:#7b52bd}.metric-icon.green{background:#e6f5eb;color:#2b8b56}.metrics article div{display:flex;flex-direction:column}.metrics small{color:#888184;font-size:10px}.metrics strong{font-size:24px;margin:3px 0}.metrics p{margin:0;color:#9a9491;font-size:9px}.metrics b{color:#31915d}
.candidates-card { margin:0 28px 30px;background:white;border:1px solid #e7e7e9;border-radius:13px;overflow:hidden; }.table-toolbar { padding:20px 22px;display:flex;justify-content:space-between;align-items:center; }.table-toolbar h2 { margin:0 0 4px;font-size:17px; }.table-toolbar p { margin:0;color:#96908d;font-size:11px; }.table-toolbar button { border:0;background:var(--wine);color:white;border-radius:8px;padding:10px 14px;font-size:11px;font-weight:700; }.filters { display:grid;grid-template-columns:2.2fr repeat(3,1fr);gap:10px;padding:14px 22px;background:#fafafa;border-block:1px solid #ececee; }.filters label { display:flex;align-items:center;gap:7px;border:1px solid #dedde0;background:white;border-radius:8px;padding-left:10px;color:#aaa; }.filters input,.filters select { border:0;padding:9px;font-size:10px;background:white; }.candidate-table-wrap { overflow:auto; }.candidate-table { width:100%;border-collapse:collapse;font-size:11px;min-width:850px; }.candidate-table th { text-align:left;padding:12px 18px;color:#999296;font-size:9px;letter-spacing:.04em;background:#fcfcfc;border-bottom:1px solid #eee; }.candidate-table td { padding:14px 18px;border-bottom:1px solid #f0eff1;color:#615b59; }.candidate-table td:first-child { display:flex;align-items:center;gap:10px; }.candidate-table td:first-child div { display:flex;flex-direction:column;gap:3px; }.candidate-table td small { color:#aaa3a0; }.avatar { width:32px;height:32px;border-radius:50%;background:#f0dedf;color:var(--wine);display:grid;place-items:center;font-size:9px;font-weight:800;flex:none; }.avatar.large { width:54px;height:54px;font-size:14px; }.status { border-radius:99px;padding:5px 9px;font-size:9px;font-weight:700;white-space:nowrap; }.status.blue{background:#eaf1ff;color:#3b6fbf}.status.amber{background:#fff1d9;color:#ae7118}.status.purple{background:#efe8ff;color:#7550b1}.status.green{background:#e5f5ea;color:#287e50}.status.gray{background:#efefef;color:#696969}.more { background:none;border:0;color:#777;cursor:pointer;letter-spacing:2px; }.table-footer { padding:14px 20px;display:flex;align-items:center;justify-content:space-between;color:#9b9592;font-size:9px; }.table-footer div { display:flex;gap:4px; }.table-footer button { width:25px;height:25px;border:1px solid #ddd;background:white;border-radius:5px;color:#777;font-size:10px; }.table-footer button.active { background:var(--wine);color:white;border-color:var(--wine); }
.drawer-backdrop { position:fixed;inset:0;background:#1f171770;z-index:20;display:flex;justify-content:flex-end; }.candidate-drawer { width:min(620px,100%);height:100%;background:#f8f8f8;display:flex;flex-direction:column;box-shadow:-15px 0 45px #0002; }.candidate-drawer>header { padding:24px;background:white;border-bottom:1px solid #e8e7e7;display:flex;gap:14px;align-items:center;position:relative; }.candidate-drawer>header button { position:absolute;right:18px;top:14px;border:0;background:none;font-size:24px;color:#777;cursor:pointer; }.candidate-drawer header p { margin:0;color:#999;font-size:9px;font-weight:800;letter-spacing:.12em; }.candidate-drawer header h2 { margin:4px 0 7px;font-family:Georgia,serif;font-size:21px; }.drawer-body { padding:0 24px 30px;overflow:auto; }.drawer-tabs { display:flex;gap:22px;border-bottom:1px solid #ddd;margin-bottom:20px; }.drawer-tabs button { border:0;background:none;padding:15px 2px 12px;font-size:11px;color:#888; }.drawer-tabs button.active { color:var(--wine);font-weight:800;border-bottom:2px solid var(--wine); }.info-block,.internal-box { background:white;border:1px solid #e5e3e3;border-radius:11px;padding:20px;margin-bottom:16px; }.info-block h3,.internal-box h3 { margin:0 0 15px;font-size:14px; }.info-grid { display:grid;grid-template-columns:1fr 1fr;gap:14px; }.info-grid p { margin:0;display:flex;flex-direction:column;gap:5px; }.info-grid small { color:#999;font-size:9px; }.info-grid strong { font-size:11px; }.internal-box { border-left:3px solid var(--wine); }.internal-title { display:flex;gap:10px;align-items:flex-start;border-bottom:1px solid #eee;padding-bottom:15px;margin-bottom:15px; }.internal-title h3 { margin:0 0 3px; }.internal-title p { margin:0;color:#9a9390;font-size:9px; }.rating-row { border:0;padding:0;margin:0 0 16px; }.rating-row legend { font-size:11px;font-weight:700;margin-bottom:8px; }.rating-row div { display:grid;grid-template-columns:repeat(4,1fr);gap:6px; }.rating-row label { border:1px solid #ded8d5;border-radius:7px;padding:8px;font-size:9px;display:flex;align-items:center;gap:5px; }.rating-row input { accent-color:var(--wine); }.internal-box>.field { margin-top:16px; }.candidate-drawer>footer { margin-top:auto;background:white;border-top:1px solid #ddd;padding:16px 24px;display:flex;justify-content:flex-end;gap:10px; }
.mobile-admin-nav { display:none; }

@media (max-width:900px) { .form-layout{grid-template-columns:1fr}.step-panel{display:none}.mobile-progress{display:flex;flex-direction:column;gap:8px;padding:18px 24px 0;color:#857e7a;font-size:11px}.mobile-progress div{height:4px;background:#eee;border-radius:9px;overflow:hidden}.mobile-progress i{height:100%;background:var(--wine);display:block}.admin-sidebar{width:68px}.admin-sidebar span{display:none}.admin-logo{width:48px;height:48px}.admin-main{margin-left:68px}.metrics{grid-template-columns:1fr 1fr}.filters{grid-template-columns:1fr 1fr}.admin-user div,.admin-user b{display:none} }
@media (max-width:620px) {
  body { -webkit-text-size-adjust:100%; }
  .brand-header{padding:58px 16px 48px;min-height:220px;align-items:flex-start}
  .brand-wrap{gap:13px;align-items:center}.brand-logo{width:72px;height:72px;border-radius:12px}.brand-kicker{font-size:9px}.brand-header h1{font-size:23px;line-height:1.1;margin-top:6px}.brand-header p{font-size:12px;margin-top:6px}.admin-link{position:absolute;top:14px;right:14px;font-size:10px;padding:9px 11px;min-height:36px;display:flex;align-items:center}
  .form-layout{width:calc(100% - 16px);margin-top:-26px;margin-bottom:26px}.candidate-form{border-radius:13px}.mobile-progress{padding:16px 18px 0}.form-section{padding:22px 16px 28px;min-height:auto}.section-heading{gap:11px;margin-bottom:22px;padding-bottom:18px}.section-heading>span{width:32px;height:32px}.section-heading h2{font-size:21px}.section-heading p{font-size:12px;line-height:1.4}.field-grid{grid-template-columns:1fr;gap:17px}.field-grid .full{grid-column:auto}.field{font-size:13px}.field input,.field select,.field textarea{font-size:16px;min-height:48px;padding:12px}.choice-grid{grid-template-columns:1fr}.choice-grid label{min-height:48px;font-size:14px}.upload-box{min-height:128px}.consent{font-size:13px}.form-actions{padding:12px 16px;position:sticky;bottom:0;z-index:5;box-shadow:0 -8px 20px #3510100d}.form-actions button{min-height:46px}.page-footer{padding-bottom:24px}
  .metrics{grid-template-columns:1fr 1fr;padding:12px;gap:10px}.metrics article{padding:13px;gap:9px}.metric-icon{width:36px;height:36px}.metrics strong{font-size:20px}.candidates-card{margin:0 10px 88px;border-radius:11px}.admin-topbar{height:78px;padding:0 16px}.admin-topbar h1{font-size:22px}.admin-main{margin-left:0}.admin-sidebar{display:none}.admin-user>span{width:34px;height:34px}.filters{grid-template-columns:1fr;padding:12px}.filters input,.filters select{font-size:16px;min-height:46px}.table-toolbar{align-items:flex-start;gap:10px;padding:17px 14px}.table-toolbar button{min-height:42px;white-space:nowrap}.candidate-table-wrap{overflow:visible;padding:0 10px 10px}.candidate-table,.candidate-table tbody,.candidate-table tr,.candidate-table td{display:block;width:100%;min-width:0}.candidate-table thead{display:none}.candidate-table tr{position:relative;border:1px solid #e7e3e3;border-radius:12px;margin:10px 0;padding:14px;background:white;box-shadow:0 4px 12px #320b0d0a}.candidate-table td{border:0;padding:5px 0 5px 94px;min-height:28px;font-size:12px}.candidate-table td::before{content:attr(data-label);position:absolute;left:14px;color:#999;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.candidate-table td:first-child{padding:0 42px 12px 0;border-bottom:1px solid #eee;margin-bottom:7px}.candidate-table td:first-child::before,.candidate-table .candidate-action::before{display:none}.candidate-table td:first-child .avatar{width:38px;height:38px}.candidate-table td:first-child strong{font-size:13px}.candidate-table .candidate-action{position:absolute;right:8px;top:8px;padding:0;width:auto}.more{width:42px;height:42px;border-radius:9px;background:#f5f1f1}.table-footer{padding:12px 14px 16px}.table-footer>div{display:none}
  .mobile-admin-nav{position:fixed;display:grid;grid-template-columns:repeat(4,1fr);left:0;right:0;bottom:0;height:68px;background:white;border-top:1px solid #ddd;z-index:15;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -8px 24px #26050612}.mobile-admin-nav button,.mobile-admin-nav a{border:0;background:white;color:#8d8582;text-decoration:none;font-size:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.mobile-admin-nav span{font-size:17px}.mobile-admin-nav .active{color:var(--wine);font-weight:800}
  .candidate-drawer{width:100%}.candidate-drawer>header{padding:18px}.drawer-body{padding:0 13px 24px}.drawer-tabs{gap:18px;overflow-x:auto;white-space:nowrap}.drawer-tabs button{min-height:44px}.info-block,.internal-box{padding:16px}.rating-row div{grid-template-columns:1fr 1fr}.rating-row label{min-height:42px;font-size:11px}.info-grid{grid-template-columns:1fr}.candidate-drawer>footer{padding:11px 13px;padding-bottom:calc(11px + env(safe-area-inset-bottom))}.candidate-drawer>footer button{min-height:46px;flex:1}.success-shell{padding:20px}.success-card{padding:28px 20px}
}

.login-page,.detail-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f6f3ef}.login-card,.detail-card{width:min(1100px,100%);background:white;border-radius:18px;padding:32px;box-shadow:0 15px 50px #420b0e1c}.login-card{max-width:420px;display:flex;flex-direction:column;gap:16px;text-align:center}.login-card img{width:110px;height:110px;object-fit:cover;border-radius:14px;margin:auto}.login-card a{text-decoration:none;color:#690e12}.detail-card>.internal-box{margin-top:20px}.flash{padding:12px;border-radius:8px}.flash.error{background:#fdeaea;color:#8a1518}.flash.success{background:#e8f6ed;color:#287d4f}
