@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root {
    --primary: #2563eb;
    --primary-rgb: 37, 99, 235;
    --ink: #172033;
    --muted: #718096;
    --line: #e7ebf2;
    --soft: #f5f7fb;
    --white: #fff;
    --success: #15966d;
    --warning: #e99624;
    --danger: #dd4b55;
    --sidebar: #11182a;
    --shadow: 0 18px 45px rgba(30, 42, 68, .08);
    --radius: 18px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); font-family: Inter, Arial, sans-serif; background: var(--soft); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

.auth-body { min-height: 100vh; background: #f4f6fb; }
.auth-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(360px, 1.05fr) minmax(460px, .95fr); }
.auth-visual { position: relative; overflow: hidden; padding: clamp(42px, 7vw, 110px); color: #fff; background: linear-gradient(145deg, #0d1830 0%, #193b77 58%, #2868dd 100%); display: flex; flex-direction: column; justify-content: center; }
.auth-visual::before, .auth-visual::after { content: ''; position: absolute; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; }
.auth-visual::before { width: 560px; height: 560px; right: -280px; top: -120px; }
.auth-visual::after { width: 360px; height: 360px; left: -190px; bottom: -180px; }
.brand-mark { position: relative; z-index: 1; width: 64px; height: 64px; border-radius: 19px; display: grid; place-items: center; color: #fff; background: var(--primary); font-size: 22px; font-weight: 800; letter-spacing: -1px; box-shadow: 0 15px 35px rgba(0,0,0,.2); }
.auth-visual .brand-mark { margin-bottom: 68px; background: #fff; color: #1f5cbf; }
.brand-logo { display: block; object-fit: cover; object-position: center; background: #fff; }
.auth-logo { position: relative; z-index: 1; width: 265px; height: 158px; margin-bottom: 46px; border-radius: 20px; box-shadow: 0 18px 42px rgba(0,0,0,.18); }
.auth-visual .eyebrow { color: #a8c8ff; }
.eyebrow { display: block; color: var(--primary); font-size: 11px; font-weight: 800; letter-spacing: .15em; }
.auth-visual h1 { position: relative; z-index: 1; max-width: 660px; margin: 14px 0 20px; font-size: clamp(38px, 5vw, 68px); line-height: 1.04; letter-spacing: -.045em; }
.auth-visual > p { position: relative; z-index: 1; max-width: 590px; margin: 0 0 42px; color: #cbd9ef; font-size: 17px; line-height: 1.75; }
.auth-feature { position: relative; z-index: 1; display: flex; gap: 11px; align-items: center; margin: 10px 0; color: #e9f1ff; font-size: 14px; font-weight: 600; }
.auth-feature span { width: 25px; height: 25px; border-radius: 8px; display: grid; place-items: center; background: rgba(255,255,255,.13); }
.auth-stat { position: relative; z-index: 1; display: flex; align-items: center; gap: 18px; max-width: 360px; padding: 20px; border: 1px solid rgba(255,255,255,.13); border-radius: 16px; background: rgba(255,255,255,.08); backdrop-filter: blur(10px); }
.auth-stat strong { font-size: 32px; }
.auth-stat span { color: #cad9f0; font-size: 13px; line-height: 1.5; }
.auth-card { padding: clamp(36px, 8vw, 120px); background: #fff; display: flex; flex-direction: column; justify-content: center; }
.install-card { padding-top: 42px; padding-bottom: 42px; }
.auth-card-title { display: flex; align-items: center; gap: 16px; margin-bottom: 35px; }
.auth-card-title h2 { margin: 0 0 7px; font-size: 31px; letter-spacing: -.03em; }
.auth-card-title p { margin: 0; color: var(--muted); }
.mobile-brand { display: none; width: 47px; height: 47px; border-radius: 13px; place-items: center; background: var(--primary); color: #fff; font-weight: 800; }
.mobile-brand-logo { display: none; flex: 0 0 102px; width: 102px; height: 62px; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 8px 22px rgba(30,42,68,.08); }
.auth-foot { margin: 24px 0 0; color: var(--muted); text-align: center; font-size: 13px; }
.auth-foot a { color: var(--primary); font-weight: 700; }

.field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; }
.field label { color: #39455b; font-size: 12px; font-weight: 700; }
.field input, .field select, .field textarea { width: 100%; min-height: 48px; padding: 12px 14px; color: var(--ink); border: 1px solid #dce2eb; border-radius: 11px; background: #fff; outline: 0; transition: .2s ease; }
.field textarea { min-height: 105px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 4px rgba(var(--primary-rgb), .11); }
.field small { margin-top: -2px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.form-grid { display: grid; gap: 17px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0,1fr)); }
.form-grid.three { grid-template-columns: repeat(3, minmax(0,1fr)); }
.form-grid.four { grid-template-columns: repeat(4, minmax(0,1fr)); }
.form-section { margin-bottom: 26px; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.form-section:last-child { border-bottom: 0; }
.form-section-title { margin: 0 0 21px; display: flex; align-items: center; gap: 12px; font-size: 16px; }
.form-section-title span { display: grid; width: 33px; height: 33px; place-items: center; color: var(--primary); background: rgba(var(--primary-rgb),.1); border-radius: 10px; }
.form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }

.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 10px 17px; border: 0; border-radius: 10px; font-size: 13px; font-weight: 700; transition: transform .15s, box-shadow .15s, opacity .15s; }
.btn:hover { transform: translateY(-1px); }
.btn:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.btn-primary { color: #fff; background: var(--primary); box-shadow: 0 9px 22px rgba(var(--primary-rgb), .22); }
.btn-light { color: #3c465a; background: #fff; border: 1px solid var(--line); }
.btn-white { color: var(--primary); background: #fff; }
.btn-danger { color: #fff; background: var(--danger); }
.btn-block { width: 100%; min-height: 50px; }
.btn-sm { min-height: 35px; padding: 7px 12px; font-size: 12px; }

.alert { margin-bottom: 20px; padding: 14px 16px; border-radius: 11px; font-size: 13px; font-weight: 600; transition: opacity .5s, transform .5s; }
.alert-sucesso { color: #0b7451; border: 1px solid #bce8d8; background: #ebfbf5; }
.alert-erro, .alert-error { color: #a52d39; border: 1px solid #f2c5ca; background: #fff1f2; }
.alert.fade-out { opacity: 0; transform: translateY(-8px); pointer-events: none; }

.app-layout { min-height: 100vh; }
.sidebar { position: fixed; z-index: 50; inset: 0 auto 0 0; width: 260px; padding: 22px 16px; color: #fff; background: linear-gradient(180deg, #111a2e, #0c1323); display: flex; flex-direction: column; }
.sidebar-head { display: flex; align-items: center; gap: 12px; padding: 2px 4px 26px; }
.brand-mark.small { flex: 0 0 43px; width: 43px; height: 43px; border-radius: 13px; font-size: 16px; }
.sidebar-logo { width: 142px; height: 72px; border-radius: 13px; box-shadow: 0 10px 24px rgba(0,0,0,.22); }
.sidebar-head strong { display: block; font-size: 17px; letter-spacing: -.02em; }
.sidebar-head span { display: block; margin-top: 3px; color: #8090ad; font-size: 9px; }
.sidebar-close { display: none; margin-left: auto; color: #fff; border: 0; background: transparent; font-size: 27px; }
.company-pill { display: flex; align-items: center; gap: 10px; padding: 12px; border: 1px solid rgba(255,255,255,.07); border-radius: 13px; background: rgba(255,255,255,.045); }
.company-avatar, .user-avatar { flex: 0 0 35px; width: 35px; height: 35px; display: grid; place-items: center; border-radius: 10px; color: #fff; background: var(--primary); font-size: 13px; font-weight: 800; }
.company-avatar.candidate-avatar { object-fit: cover; border: 2px solid rgba(255,255,255,.22); }
.company-pill small, .company-pill strong { display: block; max-width: 155px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.company-pill small { margin-bottom: 3px; color: #7788a6; font-size: 9px; }
.company-pill strong { font-size: 12px; }
.nav-menu { flex: 1; margin-top: 23px; }
.nav-label { display: block; margin: 21px 12px 8px; color: #52617b; font-size: 9px; font-weight: 800; letter-spacing: .14em; }
.nav-menu a { display: flex; align-items: center; gap: 11px; margin: 4px 0; padding: 11px 13px; border-radius: 10px; color: #9eacc3; font-size: 12px; font-weight: 600; }
.nav-menu a:hover { color: #fff; background: rgba(255,255,255,.055); }
.nav-menu a.active { color: #fff; background: var(--primary); box-shadow: 0 10px 26px rgba(var(--primary-rgb), .25); }
.nav-icon { width: 19px; text-align: center; font-size: 17px; }
.sidebar-bottom { padding-top: 16px; border-top: 1px solid rgba(255,255,255,.07); }
.user-card { display: flex; align-items: center; gap: 10px; }
.user-card strong, .user-card small { display: block; }
.user-card strong { max-width: 130px; overflow: hidden; text-overflow: ellipsis; font-size: 11px; white-space: nowrap; }
.user-card small { margin-top: 3px; color: #6d7c98; font-size: 9px; }
.logout-link { display: block; margin: 12px 0 0 45px; color: #6f7e98; font-size: 10px; }
.logout-link:hover { color: #fff; }
.sidebar-overlay { display: none; }

.app-main { min-height: 100vh; margin-left: 260px; }
.topbar { min-height: 86px; padding: 16px clamp(20px, 3vw, 42px); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); display: flex; align-items: center; gap: 18px; position: sticky; z-index: 30; top: 0; backdrop-filter: blur(12px); }
.menu-toggle { display: none; width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.topbar-title { flex: 1; }
.topbar-title h1 { margin: 0 0 5px; font-size: 21px; letter-spacing: -.025em; }
.topbar-title p { margin: 0; color: var(--muted); font-size: 11px; }
.topbar-actions { display: flex; gap: 9px; }
.content { max-width: 1580px; min-height: calc(100vh - 125px); margin: auto; padding: 30px clamp(20px, 3vw, 42px) 50px; }
.app-footer { padding: 0 42px 22px; color: #a1abba; text-align: right; font-size: 10px; }

.hero-dashboard { position: relative; overflow: hidden; min-height: 155px; margin-bottom: 22px; padding: 27px 30px; border-radius: var(--radius); color: #fff; background: linear-gradient(115deg, #182844, var(--primary)); box-shadow: var(--shadow); display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.hero-dashboard::after { content: ''; position: absolute; width: 280px; height: 280px; right: 18%; top: -165px; border: 50px solid rgba(255,255,255,.06); border-radius: 50%; }
.hero-dashboard > * { position: relative; z-index: 1; }
.hero-dashboard .eyebrow { color: #b8d1ff; }
.hero-dashboard h2 { margin: 8px 0 6px; font-size: 29px; letter-spacing: -.04em; }
.hero-dashboard p { margin: 0; color: #d2def0; font-size: 12px; }
.hero-link-box { min-width: 430px; max-width: 590px; padding: 14px 15px 14px 18px; border: 1px solid rgba(255,255,255,.15); border-radius: 13px; background: rgba(5,13,30,.17); display: flex; align-items: center; gap: 14px; }
.hero-link-box div { flex: 1; min-width: 0; }
.hero-link-box small, .hero-link-box span { display: block; }
.hero-link-box small { margin-bottom: 6px; color: #b8c9e4; font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.hero-link-box span { overflow: hidden; color: #fff; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }

.stat-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; margin-bottom: 19px; }
.stat-card { min-height: 122px; padding: 22px; border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: 0 6px 20px rgba(30,42,68,.035); display: flex; align-items: center; gap: 15px; }
.stat-icon { flex: 0 0 46px; width: 46px; height: 46px; display: grid; place-items: center; border-radius: 13px; font-size: 20px; }
.stat-icon.blue { color: #2669de; background: #edf4ff; }
.stat-icon.green { color: #11956c; background: #e9faf4; }
.stat-icon.purple { color: #8c55d9; background: #f5efff; }
.stat-icon.orange { color: #dc8125; background: #fff4e8; }
.stat-card small, .stat-card strong, .stat-card em { display: block; }
.stat-card small { margin-bottom: 6px; color: #8d98aa; font-size: 8px; font-weight: 800; letter-spacing: .08em; }
.stat-card strong { margin-bottom: 5px; font-size: 25px; letter-spacing: -.035em; }
.stat-card em { color: #a5aebb; font-size: 9px; font-style: normal; }

.dashboard-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-bottom: 18px; }
.top-charts { grid-template-columns: 1.2fr .8fr; }
.panel-card { padding: 23px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 6px 20px rgba(30,42,68,.025); }
.panel-heading { min-height: 39px; margin-bottom: 20px; display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }
.panel-heading h3 { margin: 6px 0 0; font-size: 16px; letter-spacing: -.02em; }
.panel-heading a { color: var(--primary); font-size: 10px; font-weight: 700; }
.goal-content, .gender-chart { display: flex; align-items: center; gap: 34px; }
.donut { --value: 0; flex: 0 0 142px; width: 142px; height: 142px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--primary) calc(var(--value) * 1%), #edf0f5 0); position: relative; }
.donut::before { content: ''; position: absolute; width: 104px; height: 104px; border-radius: 50%; background: #fff; }
.donut > div { position: relative; z-index: 1; text-align: center; }
.donut strong, .donut span { display: block; }
.donut strong { font-size: 23px; }
.donut span { margin-top: 4px; color: var(--muted); font-size: 9px; }
.goal-numbers { flex: 1; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 19px; }
.goal-numbers div:last-child { grid-column: span 2; }
.goal-numbers small, .goal-numbers strong { display: block; }
.goal-numbers small { margin-bottom: 6px; color: #9aa4b3; font-size: 8px; font-weight: 800; letter-spacing: .07em; }
.goal-numbers strong { font-size: 17px; }
.donut.gender { --female: 0; --male: 0; background: conic-gradient(#f06292 calc(var(--female) * 1%), #3984ea 0 calc((var(--female) + var(--male)) * 1%), #d9dee7 0); }
.chart-legend { flex: 1; }
.chart-legend div { display: grid; grid-template-columns: 10px 1fr auto; align-items: center; gap: 8px; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 10px; }
.chart-legend div:last-child { border-bottom: 0; }
.chart-legend span { color: var(--muted); }
.dot { width: 7px; height: 7px; border-radius: 50%; }
.dot.pink { background: #f06292; }.dot.blue-dot { background: #3984ea; }.dot.gray { background: #d9dee7; }
.bar-list { display: flex; flex-direction: column; gap: 13px; }
.bar-row { display: grid; grid-template-columns: 90px 1fr 32px; align-items: center; gap: 12px; font-size: 10px; }
.bar-row > span { overflow: hidden; color: #626d80; text-overflow: ellipsis; white-space: nowrap; }
.bar-row > strong { text-align: right; }
.bar-track { height: 8px; overflow: hidden; border-radius: 99px; background: #eef1f6; }
.bar-track i { display: block; min-width: 2px; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--primary), #69a1ff); }
.regions .bar-track i { background: linear-gradient(90deg, #16a77a, #69cfad); }
.empty-small { padding: 25px; color: var(--muted); text-align: center; font-size: 11px; }

.recent-card { margin-top: 2px; }
.table-wrap { width: 100%; overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th { padding: 11px 12px; color: #929cae; border-bottom: 1px solid var(--line); text-align: left; font-size: 8px; letter-spacing: .07em; }
.data-table td { padding: 14px 12px; color: #5b6578; border-bottom: 1px solid #f0f2f6; font-size: 10px; vertical-align: middle; }
.data-table tbody tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover { background: #fafbfe; }
.data-table td strong { color: var(--ink); }
.candidate-cell { min-width: 165px; display: flex; align-items: center; gap: 10px; }
.candidate-list-photo { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 2px solid #fff; box-shadow: 0 5px 15px rgba(34,47,72,.14); }
.candidate-list-fallback { display: grid; place-items: center; color: #fff; background: var(--primary); font-size: 13px; font-weight: 800; }
.table-action { color: var(--primary); font-weight: 700; }
.confidence { display: inline-flex; min-width: 45px; padding: 5px 7px; justify-content: center; border-radius: 99px; font-size: 9px; font-weight: 800; }
.confidence.high { color: #087552; background: #e8f8f2; }
.confidence.medium { color: #aa6b17; background: #fff4df; }
.confidence.low { color: #b03c46; background: #ffedef; }
.empty-table { padding: 35px; color: var(--muted); text-align: center; }

.page-toolbar { margin-bottom: 18px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; display: flex; align-items: flex-end; gap: 12px; }
.page-toolbar .field { flex: 1; margin: 0; }
.page-toolbar .field.narrow { max-width: 180px; }
.page-toolbar .field input, .page-toolbar .field select { min-height: 41px; padding: 9px 12px; font-size: 11px; }
.list-header { margin-bottom: 14px; display: flex; align-items: center; justify-content: space-between; }
.list-header p { margin: 0; color: var(--muted); font-size: 11px; }
.pagination { display: flex; justify-content: flex-end; gap: 6px; margin-top: 17px; }
.pagination a, .pagination span { min-width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: #657084; font-size: 10px; }
.pagination .active { color: #fff; border-color: var(--primary); background: var(--primary); }
.action-group { display: flex; gap: 7px; }
.icon-btn { width: 31px; height: 31px; border: 1px solid var(--line); border-radius: 8px; background: #fff; display: grid; place-items: center; color: #677286; }
.icon-btn:hover { color: var(--primary); border-color: rgba(var(--primary-rgb),.3); }
.icon-btn.danger:hover { color: var(--danger); border-color: #f0c5c9; }
.form-card { max-width: 1120px; margin: 0 auto; }
.photo-upload-box { margin-bottom: 20px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: #f9fbfe; display: grid; grid-template-columns: 88px minmax(0,1fr); gap: 15px; align-items: center; }
.candidate-photo-preview { width: 88px; height: 88px; overflow: hidden; border: 3px solid #fff; border-radius: 50%; background: linear-gradient(145deg, rgba(var(--primary-rgb),.12), rgba(var(--primary-rgb),.24)); box-shadow: 0 10px 24px rgba(30,42,68,.13); display: grid; place-items: center; }
.candidate-photo-preview img { width: 100%; height: 100%; object-fit: cover; }
.candidate-photo-preview span { color: var(--primary); font-size: 30px; font-weight: 800; }
.photo-upload-copy { min-width: 0; }
.photo-upload-copy .field { margin-bottom: 6px; }
.photo-upload-copy input[type="file"] { min-height: 43px; padding: 8px; background: #fff; font-size: 10px; }
.remove-photo { display: inline-flex; align-items: center; gap: 7px; color: #a33c46; font-size: 10px; font-weight: 700; }
.remove-photo input { accent-color: var(--danger); }
.settings-photo-box { grid-template-columns: 104px minmax(0,1fr); }
.settings-photo-box .candidate-photo-preview { width: 104px; height: 104px; }
.color-field { display: flex; gap: 9px; }
.color-field input[type="color"] { flex: 0 0 52px; padding: 4px; }
.copy-field { display: flex; gap: 9px; }
.copy-field input { flex: 1; }
.management-grid { display: grid; grid-template-columns: 320px minmax(0,1fr); gap: 18px; align-items: start; }
.form-side-card { position: sticky; top: 106px; }
.settings-grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(310px,.65fr); gap: 18px; align-items: start; }
.settings-side { display: grid; gap: 18px; }
.status-badge { display:inline-flex;padding:5px 8px;border-radius:99px;font-size:9px;font-weight:800; }
.status-badge.active { color:#087552;background:#e8f8f2; }.status-badge.inactive { color:#b03c46;background:#ffedef; }
.ranking-list { display:flex;flex-direction:column;gap:8px; }
.ranking-row { display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line); }
.ranking-row:last-child { border-bottom:0; }.ranking-row>span{width:24px;height:24px;display:grid;place-items:center;border-radius:8px;color:var(--primary);background:rgba(var(--primary-rgb),.09);font-size:9px;font-weight:800}.ranking-row strong,.ranking-row small{display:block}.ranking-row strong{font-size:10px}.ranking-row small{margin-top:3px;color:var(--muted);font-size:8px}.ranking-row b{font-size:13px}

@media (max-width: 1200px) {
    .stat-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .hero-link-box { min-width: 360px; }
    .top-charts { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
    .auth-shell { grid-template-columns: 1fr; }
    .auth-visual { display: none; }
    .auth-card { min-height: 100vh; padding: 38px max(24px,8vw); }
    .mobile-brand, .mobile-brand-logo { display: grid; }
    .sidebar { transform: translateX(-105%); transition: transform .25s ease; }
    .sidebar-close { display: block; }
    .sidebar-overlay { position: fixed; z-index: 45; inset: 0; background: rgba(6,12,25,.55); }
    .sidebar-open .sidebar { transform: translateX(0); }
    .sidebar-open .sidebar-overlay { display: block; }
    .app-main { margin-left: 0; }
    .menu-toggle { display: block; }
    .hero-dashboard { align-items: flex-start; flex-direction: column; }
    .hero-link-box { width: 100%; min-width: 0; }
    .management-grid, .settings-grid { grid-template-columns: 1fr; }
    .form-side-card { position: static; }
}

@media (max-width: 680px) {
    .topbar { min-height: 74px; padding: 12px 15px; }
    .topbar-title p, .desktop-only { display: none !important; }
    .topbar-title h1 { font-size: 17px; }
    .topbar-actions .btn { padding: 9px 11px; font-size: 10px; }
    .content { padding: 18px 14px 38px; }
    .hero-dashboard { padding: 23px 20px; }
    .hero-dashboard h2 { font-size: 24px; }
    .hero-link-box { align-items: stretch; flex-direction: column; }
    .stat-grid, .dashboard-grid, .form-grid.two, .form-grid.three, .form-grid.four { grid-template-columns: 1fr; }
    .goal-content, .gender-chart { align-items: flex-start; flex-direction: column; }
    .goal-numbers, .chart-legend { width: 100%; }
    .page-toolbar { align-items: stretch; flex-direction: column; }
    .page-toolbar .field.narrow { max-width: none; }
    .page-toolbar .btn { width: 100%; }
    .panel-card { padding: 18px; }
    .form-actions { align-items: stretch; flex-direction: column-reverse; }
    .form-actions .btn { width: 100%; }
    .photo-upload-box, .settings-photo-box { grid-template-columns: 72px minmax(0,1fr); padding: 12px; gap: 12px; }
    .candidate-photo-preview, .settings-photo-box .candidate-photo-preview { width: 72px; height: 72px; }
}
