:root{
 --navy-950:#0B2540;--navy-900:#102D4B;--navy-800:#12365A;--navy-700:#1B4B73;
 --teal-700:#087F75;--teal-600:#0D9B8D;--teal-500:#19B6A4;--teal-100:#DDF7F2;
 --gold-600:#9A681A;--gold-500:#F2BC54;--gold-100:#FFF5DD;
 --bg:#F4F7FA;--surface:#FFFFFF;--border:#E3EAF0;--text:#172B3A;--muted:#647789;
 --success:#16845B;--success-bg:#E8F6EF;--warning:#A66A12;--warning-bg:#FFF5DD;
 --danger:#C83F49;--danger-bg:#FCEBED;--blue:#3478B8;--blue-bg:#EAF2FA;
 --sidebar:252px;--topbar:68px;--r:12px;--shadow:0 8px 28px rgba(20,45,70,.06)
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.5}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
.i{width:18px;height:18px;flex:none}
code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.small{font-size:12px}.muted{color:var(--muted)}.nowrap{white-space:nowrap}.strong{font-weight:700}
.wrap{word-break:break-all;white-space:normal}.mt{margin-top:16px}

/* Shell */
.app{min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--navy-800);color:#fff;padding:22px 16px;display:flex;flex-direction:column;z-index:20;transition:transform .2s}
.brand{display:block;padding:2px 10px 22px}.brand img{display:block;height:auto}
.workspace{margin:0 4px 22px;padding:11px 12px;border:1px solid rgba(255,255,255,.17);border-radius:10px;background:rgba(255,255,255,.07)}
.workspace small{display:block;color:#BBD0E0;font-size:11px;margin-bottom:3px}.workspace strong{font-size:14px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-label{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;color:#9DB6C9;padding:0 12px 9px;margin-top:8px}
.nav{display:grid;gap:4px}
.nav a{color:#D8E7F1;padding:11px 12px;border-radius:9px;display:flex;align-items:center;gap:12px;font-size:14px;font-weight:500}
.nav a:hover{background:rgba(255,255,255,.08)}
.nav a.active{background:rgba(25,182,164,.16);color:#fff;box-shadow:inset 3px 0 var(--teal-500)}
.main{margin-left:var(--sidebar);min-height:100vh}
.topbar{height:var(--topbar);background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 32px;position:sticky;top:0;z-index:10}
.crumb{font-size:13px;color:var(--muted);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crumb b{color:var(--text);font-weight:600}
.top-actions{display:flex;align-items:center;gap:16px}
.icon-btn{border:0;background:transparent;color:#506579;padding:6px;border-radius:8px}
.menu-toggle{display:none}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--teal-100);color:var(--teal-700);display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}
.profile{display:flex;align-items:center;gap:10px}.profile strong{font-size:13px;display:block}.profile small{font-size:12px;color:var(--muted)}
.content{max-width:1440px;margin:auto;padding:30px 32px 48px}

/* Typography & page */
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}
.eyebrow{font-size:12px;color:var(--teal-700);font-weight:700;text-transform:uppercase;letter-spacing:1.1px;margin-bottom:6px}
h1{font-size:26px;letter-spacing:-.5px;margin:0 0 6px;font-weight:800;line-height:1.25}
h3{font-size:16px;margin:0}
.sub{color:var(--muted);font-size:14px;margin:0;line-height:1.6}
.link{color:var(--teal-700);font-weight:600;font-size:13px}.link:hover{text-decoration:underline}

/* Buttons */
.btn{border:1px solid var(--border);background:#fff;color:var(--text);border-radius:8px;padding:10px 16px;font-size:14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.2}
.btn:hover{filter:brightness(.97)}
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(25,182,164,.45);outline-offset:2px}
.btn-primary{background:var(--navy-800);border-color:var(--navy-800);color:#fff}
.btn-teal{background:var(--teal-500);border-color:var(--teal-500);color:#073D39}
.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}
.btn-sm{padding:7px 11px;font-size:13px}
.btn-block{width:100%}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.actions form{margin:0}

/* Cards, grids */
.grid{display:grid;gap:16px}
.kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}
.two-col{grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr)}
.enumerator-stats{margin-bottom:18px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow)}
.card-head{padding:18px 20px 0;display:flex;justify-content:space-between;align-items:center;gap:12px}
.card-body{padding:18px 20px}
.kpi{padding:18px 20px}
.kpi-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:13px}
.kpi-icon{width:34px;height:34px;border-radius:9px;background:var(--teal-100);color:var(--teal-700);display:grid;place-items:center}
.kpi-danger{background:var(--danger-bg);color:var(--danger)}
.kpi-value{font-size:28px;font-weight:800;letter-spacing:-1px;margin:10px 0 2px}
.kpi-text{font-size:18px;letter-spacing:0}
.activity{display:grid;gap:14px}
.activity-item{display:flex;gap:12px;align-items:flex-start}
.activity-icon{width:32px;height:32px;flex:none;border-radius:9px;background:#EDF5FA;color:var(--navy-700);display:grid;place-items:center}
.activity-item strong{font-size:14px;display:block}.activity-item small{font-size:12px;color:var(--muted)}
.empty{color:var(--muted);text-align:center;padding:18px}
.dl{display:grid;grid-template-columns:140px 1fr;gap:10px 16px;margin:0}
.dl dt{color:var(--muted);font-size:13px}.dl dd{margin:0;font-size:14px;word-break:break-word}

/* Tables */
.table-wrap{overflow:auto}
.table{width:100%;border-collapse:collapse;min-width:560px}
.table th{text-align:left;color:#6E7F8D;font-size:12px;text-transform:uppercase;letter-spacing:.5px;font-weight:700;padding:12px 18px;border-bottom:1px solid var(--border)}
.table td{padding:13px 18px;border-bottom:1px solid #EEF2F5;font-size:14px;vertical-align:top}
.table tr:last-child td{border-bottom:0}
.table .meta{font-size:12px;color:var(--muted);margin-top:2px}
.table a.strong:hover{color:var(--teal-700)}

/* Badges */
.badge{display:inline-flex;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:700;white-space:nowrap}
.badge-ok{background:var(--success-bg);color:var(--success)}
.badge-info{background:var(--blue-bg);color:var(--blue)}
.badge-warn{background:var(--warning-bg);color:var(--warning)}
.badge-danger{background:var(--danger-bg);color:var(--danger)}
.badge-muted{background:#EEF2F6;color:#617487}

/* Alerts */
.alert{padding:12px 16px;border-radius:10px;margin-bottom:16px;font-size:14px;border:1px solid transparent}
.alert-ok{background:var(--success-bg);color:var(--success);border-color:#BFE6D3}
.alert-danger{background:var(--danger-bg);color:var(--danger);border-color:#F3C4C8}
.alert-info{background:var(--blue-bg);color:var(--navy-800);border-color:#C9DDF0}

/* Forms */
.form{display:grid;gap:14px}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;max-width:900px}
.form-grid h3{margin-top:6px}
.span-2{grid-column:1/-1}
.field{display:grid;gap:6px}
.field>span{font-size:13px;font-weight:600}
.field input,.field select,.search,.select{border:1px solid #CFDAE3;background:#fff;border-radius:8px;padding:10px 12px;font-size:14px;width:100%;outline:none}
.field input:focus,.field select:focus,.search:focus,.select:focus{border-color:var(--teal-500);box-shadow:0 0 0 3px rgba(25,182,164,.15)}
.field-error{color:var(--danger);font-size:12px}
.hint{font-size:12px;color:var(--muted);margin:-4px 0 0}
.input-suffix{display:flex;align-items:center;border:1px solid #CFDAE3;border-radius:8px;background:#fff;overflow:hidden}
.input-suffix input{border:0;border-radius:0}
.input-suffix em{font-style:normal;color:var(--muted);padding:0 12px;white-space:nowrap;font-size:13px}
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.toolbar .search{width:auto;min-width:260px}.toolbar .select{width:auto}
.pager{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}

/* Auth */
.auth-body{background:linear-gradient(160deg,#EAF2F8 0%,var(--bg) 60%)}
.auth-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px}
.auth-brand{margin-bottom:22px}.auth-brand img{display:block;height:auto}
.auth-card{width:100%;max-width:440px;padding:30px 30px 28px}
.auth-title{font-size:22px;margin:0 0 4px}
.auth-card .sub{margin-bottom:20px}
.auth-ws{font-size:12px;font-weight:700;color:var(--teal-700);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}
.auth-foot{color:var(--muted);font-size:12px;margin-top:20px}
.steps{padding-left:20px;margin:0 0 18px;display:grid;gap:10px;font-size:14px}
.secret-box{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#F2F6F9;border:1px dashed #C7D4DE;border-radius:8px;padding:10px 12px;margin:8px 0}
.secret-box code{font-size:15px;letter-spacing:1px;font-weight:600}
.shortlink-share{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:12px}
.shortlink-qr{display:block;width:220px;height:220px;padding:8px;background:#fff;border:1px solid var(--border);border-radius:8px;image-rendering:pixelated}
#shortlink-share-status:empty{display:none}
.codes{list-style:none;padding:0;margin:0 0 20px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.codes li{background:#F2F6F9;border-radius:6px;padding:8px;text-align:center;font-size:14px}
details summary{cursor:pointer;color:var(--muted)}
.error-page{text-align:center;padding:10px 0}
.error-code{font-size:52px;font-weight:800;color:var(--navy-800);letter-spacing:-2px;line-height:1}
.error-page h1{font-size:20px;margin:10px 0 8px}

/* Responsive */
@media (max-width:1100px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{grid-template-columns:1fr}}
@media (max-width:820px){
 .sidebar{transform:translateX(-100%)}
 .sidebar.open{transform:none;box-shadow:0 0 0 100vmax rgba(11,37,64,.4)}
 .main{margin-left:0}
 .menu-toggle{display:inline-flex}
 .topbar{padding:0 16px}
 .content{padding:22px 16px 40px}
 .profile div:not(.avatar){display:none}
 .form-grid{grid-template-columns:1fr}
}
@media (max-width:520px){.kpis{grid-template-columns:1fr}.dl{grid-template-columns:1fr}.codes{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
.center{text-align:center}.btn-ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn-ghost:hover{color:var(--text,#1f2937);background:rgba(0,0,0,.04)}
.cred{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;align-items:center;margin:10px 0}.cred code{font-size:15px}
.field textarea{border:1px solid #CFDAE3;background:#fff;border-radius:8px;padding:10px 12px;font-size:14px;width:100%;outline:none;resize:vertical;min-height:96px}
.field textarea:focus{border-color:var(--teal-500);box-shadow:0 0 0 3px rgba(25,182,164,.15)}
.list{display:grid;gap:4px}.list-item{display:flex;align-items:center;gap:12px;padding:10px;border-radius:10px;color:inherit;text-decoration:none}.list-item:hover{background:#F4F7FA}
.list-item small{display:block;color:var(--muted);font-size:12px}.grow{flex:1;min-width:0}
.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.project-card{padding:18px;display:flex;flex-direction:column;color:inherit;text-decoration:none;transition:box-shadow .15s,border-color .15s}
.project-card:hover{border-color:#C7D4DE;box-shadow:0 6px 18px rgba(23,43,58,.08)}
.project-card-top{display:flex;justify-content:space-between;align-items:center}
.project-symbol{width:36px;height:36px;flex:none;background:#EAF2FA;color:var(--navy-700,#22385A);border-radius:10px;display:grid;place-items:center}
.project-symbol svg{width:18px;height:18px}
.project-card h3{font-size:15px;margin:14px 0 4px}.project-card .code{font-size:12px;color:var(--muted);font-family:ui-monospace,monospace}
.project-card p{font-size:13px;color:var(--muted);line-height:1.55;margin:8px 0 0;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.project-stats{display:flex;gap:18px;border-top:1px solid var(--border);padding-top:12px;margin-top:14px}
.project-stats strong{display:block;font-size:14px}.project-stats small{color:var(--muted);font-size:11px}
.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-form .select{width:auto;padding:7px 10px;font-size:13px}
.section-title{font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px}
.stack{display:grid;gap:16px}.divider{border:0;border-top:1px solid var(--border);margin:16px 0}
.desc{white-space:pre-line}
@media (max-width:1100px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.project-grid{grid-template-columns:1fr}}
.right{text-align:right}

/* Survey (respondent pages, enumerator entry, preview) */
[hidden]{display:none!important}
.check{display:flex;align-items:center;gap:8px;font-weight:500;margin:4px 0}.check input{width:18px;height:18px;accent-color:var(--teal-600)}
fieldset.field{border:0;padding:0;margin:0}fieldset.field legend{font-weight:600;margin-bottom:6px}
.input-prefix{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.input-prefix input{flex:1;min-width:160px}
.code-editor{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.5;min-height:480px;tab-size:2;white-space:pre}
.problems{margin:8px 0 0;padding-left:18px}
.sv-body{background:var(--bg)}
.sv-top{background:#fff;border-bottom:1px solid var(--border)}
.sv-top-in{max-width:820px;margin:auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.sv-org{font-weight:700;color:var(--navy-800)}.sv-top img{height:auto;opacity:.9}
.sv-main{max-width:820px;margin:auto;padding:24px 16px 40px}
.sv-foot{text-align:center;color:var(--muted);font-size:12px;padding:0 16px 28px}
.sv-card{padding:28px}.sv-embed{max-width:900px}
.sv-h1{font-size:22px;line-height:1.35;margin:0 0 10px;color:var(--navy-900)}
.sv-kicker{margin:0 0 12px;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}
.sv-meta{display:flex;align-items:center;gap:6px;color:var(--muted);margin:0 0 14px}
.sv-intro{color:#33495B;line-height:1.7;margin:0 0 18px}
.sv-actions{margin-top:22px}.sv-center{text-align:center}
.sv-done-icon{width:56px;height:56px;border-radius:50%;margin:4px auto 14px;display:grid;place-items:center;background:var(--success-bg);color:var(--success)}
.sv-done-icon .i{width:28px;height:28px}.sv-done-icon.sv-muted{background:var(--blue-bg);color:var(--blue)}
.sv-receipt{display:inline-block;background:var(--teal-100);color:var(--teal-700);padding:8px 14px;border-radius:9px}
.sv-progress{display:block;width:100%;height:8px;border:0;border-radius:99px;background:#E7EEF3;overflow:hidden;-webkit-appearance:none;appearance:none}
.sv-progress::-webkit-progress-bar{background:#E7EEF3;border-radius:99px}
.sv-progress::-webkit-progress-value{background:var(--teal-500);border-radius:99px}
.sv-progress::-moz-progress-bar{background:var(--teal-500);border-radius:99px}
.sv-step{font-size:12px;color:var(--muted);margin:6px 0 16px}
.sv-section+.sv-section{margin-top:28px;padding-top:24px;border-top:1px dashed var(--border)}
.sv-title{font-size:18px;margin:0 0 6px;color:var(--navy-900)}
.sv-desc{color:#4A6072;margin:0 0 18px;line-height:1.65}
.sv-q{padding:16px 0;border-top:1px solid var(--border)}.sv-q:first-of-type{border-top:0}
.sv-fieldset{border:0;margin:0;padding:0;min-width:0}
.sv-label{display:flex;gap:8px;font-weight:600;line-height:1.5;margin-bottom:10px;padding:0}
.sv-code{flex:none;min-width:24px;height:24px;padding:0 6px;border-radius:7px;background:var(--blue-bg);color:var(--blue);font-size:12px;display:inline-grid;place-items:center}
.sv-req{color:var(--danger)}
.sv-help{color:var(--muted);font-size:13px;margin:-4px 0 10px}
.sv-input{width:100%;max-width:520px;border:1px solid #CFDBE5;border-radius:10px;padding:11px 12px;background:#fff;font-size:15px}
.sv-input:focus{outline:2px solid var(--teal-500);outline-offset:1px;border-color:transparent}
.sv-options{display:grid;gap:8px}.sv-options.sv-inline{display:flex;flex-wrap:wrap;gap:8px 10px}
.sv-scale{display:flex;flex-wrap:wrap;gap:8px}
.sv-opt{display:flex;align-items:center;gap:10px;border:1px solid #D6E1EA;border-radius:10px;padding:10px 14px;cursor:pointer;background:#fff;min-height:44px}
.sv-opt:hover{border-color:var(--teal-500)}
.sv-opt input{width:18px;height:18px;margin:0;accent-color:var(--teal-600);flex:none}
.sv-opt:has(input:checked){border-color:var(--teal-600);background:var(--teal-100)}
.sv-error{color:var(--danger);font-size:13px;font-weight:600;margin:8px 0 0}
.sv-invalid .sv-input{border-color:var(--danger)}
tr.sv-invalid th{box-shadow:inset 3px 0 var(--danger)}
.sv-group{margin:8px 0 18px}
.sv-matrix{width:100%;border-collapse:collapse;font-size:14px}
.sv-matrix th,.sv-matrix td{border-bottom:1px solid var(--border);padding:10px 8px;vertical-align:middle}
.sv-matrix thead th{background:#F1F6F9;font-size:12px;font-weight:700;color:#4A6072;text-align:center;white-space:nowrap}
.sv-matrix thead th.sv-mq{text-align:left}
.sv-matrix th.sv-mq{font-weight:500;text-align:left;display:table-cell}
.sv-matrix th.sv-mq .sv-code{margin-right:8px;float:left}
.sv-matrix td{text-align:center;width:64px}
.sv-cell{display:inline-grid;place-items:center;min-width:44px;min-height:40px;cursor:pointer;border-radius:8px}
.sv-cell:hover{background:var(--teal-100)}
.sv-cell input{width:20px;height:20px;margin:0;accent-color:var(--teal-600)}
.sv-cell-label{display:none}
.sv-nav{display:flex;flex-direction:row-reverse;justify-content:space-between;gap:12px;margin-top:24px;padding-top:18px;border-top:1px solid var(--border)}
@media (max-width:640px){
  .sv-card{padding:20px 16px}.sv-main{padding:14px 10px 32px}
  .sv-matrix,.sv-matrix tbody,.sv-matrix tr,.sv-matrix th,.sv-matrix td{display:block;width:auto}
  .sv-matrix thead{display:none}
  .sv-matrix tr{display:flex;flex-wrap:wrap;gap:6px;border:1px solid var(--border);border-radius:10px;margin-bottom:10px;padding:10px}
  .sv-matrix th.sv-mq{display:flex;align-items:flex-start;gap:8px;flex:0 0 100%;border:0;padding:0 0 4px}
  .sv-matrix td{flex:1 1 0;min-width:0;border:0;padding:0}
  .sv-cell{display:flex;flex-direction:column;gap:4px;border:1px solid #D6E1EA;padding:8px 2px;min-width:0}
  .sv-cell:has(input:checked){border-color:var(--teal-600);background:var(--teal-100)}
  .sv-cell-label{display:inline;font-size:13px;font-weight:600}
  .sv-nav .btn{flex:1}
}

/* Sprint 4: survey tabs, responses, analytics */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin:-8px 0 20px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.tabs a{padding:10px 16px;font-weight:600;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tabs a:hover{color:var(--text)}.tabs a.active{color:var(--teal-700);border-bottom-color:var(--teal-600)}
.seg{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.seg a{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--border);border-radius:20px;background:#fff;font-size:13px;font-weight:600;color:var(--muted)}
.seg a.active{background:var(--navy-900);border-color:var(--navy-900);color:#fff}
.seg-count{font-size:12px;opacity:.8}
.filters .date-field{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.filters .check{margin:0;font-size:13px}
.kpi-foot{font-size:12px;color:var(--muted)}.kpi-value-sm{font-size:22px}
.answers{margin:0;padding:6px 20px 14px}
.answer{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.answer:last-child{border-bottom:0}
.answer dt{font-size:13px;color:#425668}.answer dd{margin:0;font-size:14px;font-weight:600;word-break:break-word}
.answer-empty dd{font-weight:400}
.q-code{display:inline-block;min-width:26px;margin-right:8px;padding:1px 6px;border-radius:6px;background:var(--teal-100);color:var(--teal-700);font-size:11px;font-weight:700;text-align:center}
.timeline{list-style:none;margin:0;padding:12px 20px 18px}
.timeline li{display:flex;gap:12px;padding:6px 0;font-size:13px;border-left:2px solid var(--border);padding-left:12px;position:relative}
.timeline li::before{content:"";position:absolute;left:-5px;top:12px;width:8px;height:8px;border-radius:50%;background:var(--teal-500)}
.tl-time{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.day-chart{width:100%;height:160px;display:block}
.day-chart rect{fill:var(--teal-500)}.day-chart rect.zero{fill:var(--border)}
.day-axis{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:6px}
.an-section{font-size:17px;margin:28px 0 12px}
.an-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}
.an-card h3{font-size:14px;line-height:1.4}
.freq{width:100%;border-collapse:collapse;font-size:13px}
.freq td{padding:5px 0;vertical-align:middle}
.freq-label{width:42%;padding-right:10px!important}.freq-bar{width:38%}
.freq-n{width:8%;text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.freq-pct{width:12%;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}
.freq-bar svg,.mean-bar{width:100%;height:10px;display:block;border-radius:5px}
.freq-bar rect,.mean-bar rect{fill:var(--teal-500)}.freq-bar rect.track,.mean-bar rect.track{fill:#EEF3F6}
.col-bar{width:36%;min-width:160px}
.lk-bar{width:100%;height:16px;display:block;border-radius:4px}
.l1{fill:#C83F49;background:#C83F49}.l2{fill:#EE9A8F;background:#EE9A8F}.l3{fill:#CBD5DD;background:#CBD5DD}.l4{fill:#5CC8B8;background:#5CC8B8}.l5{fill:#087F75;background:#087F75}
.lk-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.lk-legend span{display:inline-flex;align-items:center;gap:4px}
.lk-sw{display:inline-block;width:10px;height:10px;border-radius:2px}
.lk-table td{vertical-align:middle}
.table th .nocase{text-transform:none}
@media (max-width:900px){.an-grid{grid-template-columns:1fr}.answer{grid-template-columns:1fr;gap:4px}}
.detail-grid{align-items:start}

/* Export page */
.choice-grid{border:0;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.choice-grid legend{font-weight:600;font-size:13px;margin-bottom:8px;padding:0}
.choice-card{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border);border-radius:10px;padding:12px 14px;cursor:pointer;background:var(--surface)}
.choice-card:has(input:checked){border-color:var(--teal-600);box-shadow:0 0 0 1px var(--teal-600)}
.choice-card input{margin-top:3px;width:18px;height:18px;accent-color:var(--teal-600);flex:none}
.choice-card span{display:flex;flex-direction:column;gap:4px}
.choice-card small{font-size:12px;line-height:1.45}
.form.form-grid{align-items:start}

.print-heading{padding-bottom:8px}
.print-heading .sv-intro{margin-top:12px}
.print-condition{display:block;color:#526170;font-size:11px;font-weight:500;margin-top:3px}
@page{size:A4 portrait;margin:14mm 13mm}
@media print{
  html,body{background:#fff!important}
  .sidebar,.topbar,.print-toolbar{display:none!important}
  .app,.main,.content{display:block!important;width:auto!important;max-width:none!important;margin:0!important;padding:0!important}
  .print-sheet{max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important}
  .print-sheet{font-size:8pt;line-height:1.2}
  .print-heading{break-after:avoid-page;padding-bottom:1mm}
  .print-heading .sv-kicker{font-size:8pt;margin:0 0 1mm}
  .print-heading .sv-h1{font-size:14pt;line-height:1.2;margin:0 0 2mm}
  .print-heading .sv-intro{font-size:8pt;line-height:1.25;margin:1mm 0 2mm}
  .print-heading .sv-kicker,.print-heading .sv-h1,.sv-title,.sv-label,.sv-fieldset legend,.sv-matrix th.sv-mq{color:#172B3A!important}
  .sv-section{--print-accent:#176B67;--print-tint:#E8F3F1}
  .sv-section:nth-of-type(5n+2){--print-accent:#315F83;--print-tint:#EAF0F6}
  .sv-section:nth-of-type(5n+3){--print-accent:#75613A;--print-tint:#F4F0E6}
  .sv-section:nth-of-type(5n+4){--print-accent:#62547B;--print-tint:#F0EDF5}
  .sv-section:nth-of-type(5n){--print-accent:#496C4D;--print-tint:#EDF3EA}
  .sv-section+.sv-section{margin-top:2mm;padding-top:1.5mm;border-top:1px solid var(--print-accent)}
  .sv-section{break-inside:auto}
  .sv-q,.sv-group,.sv-matrix tr{break-inside:avoid}
  .sv-title,.sv-label,.sv-desc,.sv-help{break-after:avoid}
  .sv-title{font-size:10pt;line-height:1.15;margin:0 0 1.5mm;padding:1.4mm 2mm;background:var(--print-tint)!important;border-left:1.2mm solid var(--print-accent);color:#172B3A!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .sv-desc,.sv-help{font-size:7.5pt;line-height:1.15;margin:0 0 1mm}
  .sv-q{padding:1.2mm 2mm;border-left:.6mm solid var(--print-accent);background:#F8FAFB!important}
  .sv-section > .sv-q:nth-of-type(odd){background:#F0F4F6!important}
  .sv-label{font-size:8pt;line-height:1.2;gap:1mm;margin-bottom:1mm}
  .print-condition{font-size:7pt;line-height:1.1;margin-top:.3mm}
  .sv-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5mm 2mm}
  .sv-options.sv-inline{gap:.5mm 2mm}
  .sv-scale{gap:1mm}
  .sv-opt{min-height:0;padding:.4mm 0;border:0;border-radius:0;background:#fff!important;font-size:7.5pt;line-height:1.15}
  .sv-opt input,.sv-cell input{appearance:none;-webkit-appearance:none;width:3mm;height:3mm;flex:none;border:1px solid #263746;background:#fff!important;border-radius:50%;margin:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .sv-opt input[type=checkbox]{border-radius:0}
  .sv-fieldset{min-width:0}
  .sv-input{max-width:none;border:0;border-bottom:1px solid #65727C;border-radius:0;padding:1mm 0;background:transparent!important}
  .print-sheet input::placeholder,.print-sheet textarea::placeholder{color:transparent!important;opacity:0!important}
  .sv-matrix{font-size:7.5pt}
  .sv-matrix .sv-mq{width:55%}
  .sv-matrix td{width:9%;padding:.5mm}
  .sv-matrix th,.sv-matrix td{padding:.7mm 1mm;border-color:#AAB5BE}
  .sv-matrix thead th{background:var(--print-tint)!important;color:#172B3A!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .sv-matrix tbody tr:nth-child(even){background:#F4F6F7!important}
  .sv-matrix tbody tr:nth-child(odd){background:#fff!important}
  .sv-cell{min-width:0;min-height:0}
  .sv-code{background:#EEF1F3!important;color:#172B3A!important;border-radius:1mm}
  .sv-req{color:#172B3A!important}
  .sv-error,.sv-nav{display:none!important}
  .sv-card,.sv-section,.sv-q,.sv-group{box-shadow:none}
  .sv-title,.sv-q,.sv-matrix thead th,.sv-matrix tbody tr{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}
/* Statistik (SPSS-style) */
.spss-vars{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.spss-var{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:8px;border:1px solid var(--border);background:#fff;font-size:13px}
.spss-var em{font-style:normal;color:var(--muted);font-size:12px}
.spss-var-y{border-color:var(--teal-600);background:#E8F7F5}
.spss-card .card-head h3{margin:0}
.spss-en{display:block;color:var(--muted);font-size:12px;font-weight:500;margin-top:2px}
.spss-sub{margin:18px 0 8px;font-size:14px}.spss-sub:first-child{margin-top:0}
.spss-sub .spss-en{display:inline;margin-left:6px}
.table.spss{font-variant-numeric:tabular-nums}
.table.spss th{padding:9px 12px;font-size:11px;background:#F6F8FA}
.table.spss td{padding:8px 12px;font-size:13px;border-bottom:1px solid #EEF2F5}
.table.spss tr.spss-group td{border-top:1px solid var(--border)}
.spss-matrix td[rowspan]{vertical-align:top}
.spss-hi{color:var(--danger);font-weight:700}
.spss-note{margin:0;padding:10px 20px 16px;color:var(--muted);font-size:12px;line-height:1.5}
.card-body .spss-note{padding:8px 0 4px}
.spss-note-top{padding:10px 20px 4px}
.spss-verdict{display:flex;flex-wrap:wrap;gap:28px;border-top:1px solid #EEF2F5;padding-top:14px}
.spss-verdict div{display:flex;flex-direction:column;gap:4px}
.spss-verdict b{font-size:16px;font-variant-numeric:tabular-nums}
.spss-card{margin-bottom:16px}
.spss-form td{padding:8px 12px;vertical-align:middle}
.spss-form .select{padding:7px 10px;font-size:13px}
.spss-form tr.spss-section td{background:#F6F8FA;font-weight:700;font-size:12px;color:var(--navy-800)}

/* Academic report */
.report-filters{margin-bottom:20px}
.report-sheet{max-width:980px;margin:0 auto 32px;padding:38px 46px;background:#fff;border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);font-family:Georgia,"Times New Roman",serif;font-size:15px;line-height:1.62;color:#263746}
.report-cover{padding-bottom:20px;border-bottom:2px solid #DCE7EC;margin-bottom:20px}
.report-kicker{font:700 11px/1.4 "Plus Jakarta Sans",Arial,sans-serif;letter-spacing:1.4px;color:var(--teal-700);margin-bottom:8px}
.report-cover h1{font:700 27px/1.22 Georgia,"Times New Roman",serif;letter-spacing:0;color:var(--navy-950);margin:0 0 7px}
.report-project{font-size:16px;color:#516779;margin:0 0 18px}
.report-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 22px;font:12px/1.45 "Plus Jakarta Sans",Arial,sans-serif;color:#526779}
.report-meta b{color:#243B4D;margin-right:5px}
.report-section{margin:0 0 18px}
.report-section h2{font:700 17px/1.3 Georgia,"Times New Roman",serif;color:#133C59;margin:0 0 8px;padding:0 0 5px;border-bottom:1px solid #DCE7EC}
.report-section h3{font:700 13px/1.35 "Plus Jakarta Sans",Arial,sans-serif;color:#1B4B73;margin:12px 0 4px}
.report-section p{margin:5px 0 8px}
.report-note{font:11px/1.45 "Plus Jakarta Sans",Arial,sans-serif;color:#5D7180}
.report-empty{padding:10px 12px;border-left:3px solid #8B6B2D;background:#F7F2E8;font:12px/1.5 "Plus Jakarta Sans",Arial,sans-serif;color:#554629;margin:8px 0 12px}
.report-framework{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(170px,.65fr);align-items:center;gap:8px;margin:12px 0}
.report-predictors{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:7px}
.report-outcomes{display:grid;gap:7px}
.report-variable{display:grid;gap:2px;padding:8px 10px;border-left:3px solid #398277;background:#EFF6F4;font:11px/1.35 "Plus Jakarta Sans",Arial,sans-serif}
.report-variable b{color:#087F75}.report-variable small{color:#657A86}
.report-variable-y{border-color:#315F83;background:#EFF3F7}.report-variable-y b{color:#1B4B73}
.report-arrow{text-align:center;font:700 20px/1 Arial,sans-serif;color:#607987}
.report-method{display:grid;grid-template-columns:125px 1fr;gap:5px 12px;margin:8px 0}
.report-method dt{font:700 11px/1.45 "Plus Jakarta Sans",Arial,sans-serif;color:#405A6C}
.report-method dd{margin:0;font-size:13px}
.report-table{width:100%;border-collapse:collapse;font:11px/1.4 "Plus Jakarta Sans",Arial,sans-serif;margin:7px 0 9px}
.report-table th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.35px;color:#516779;padding:6px 7px;border-bottom:1px solid #AEBEC8;background:#F3F6F8}
.report-table td{padding:6px 7px;vertical-align:top;border-bottom:1px solid #E5EBEF}
.report-table tr:last-child td{border-bottom:0}
.report-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.report-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0}
.report-profile{border:1px solid #E3EAF0;border-radius:6px;padding:8px 10px;font:11px/1.4 "Plus Jakarta Sans",Arial,sans-serif}
.report-profile>b{color:#24455D}
.report-profile ul{list-style:none;padding:0;margin:5px 0 0}
.report-profile li{display:flex;justify-content:space-between;gap:8px;padding:2px 0;border-top:1px solid #EEF2F5}
.report-references ol{padding-left:20px;margin:5px 0}
.report-references li{padding-left:3px;margin:0 0 5px;font-size:12px;line-height:1.45}
.report-references a{color:inherit;text-decoration:underline;overflow-wrap:anywhere}
@media(max-width:700px){.report-sheet{padding:22px 18px}.report-framework{grid-template-columns:1fr}.report-arrow{transform:rotate(90deg)}.report-meta,.report-profile-grid{grid-template-columns:1fr}.report-method{grid-template-columns:1fr;gap:1px}.report-method dd{margin-bottom:6px}}
@media print{
  @page{size:A4 portrait;margin:13mm 12mm}
  .report-sheet{max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;font-size:9pt;line-height:1.35}
  .report-cover{padding-bottom:3mm;margin-bottom:4mm}
  .report-cover h1{font-size:19pt;margin-bottom:1mm}
  .report-project{font-size:11pt;margin-bottom:3mm}
  .report-meta{font-size:7.5pt;gap:1mm 4mm}
  .report-section{margin-bottom:4mm;break-inside:auto}
  .report-section h2{font-size:12pt;margin:0 0 2mm;padding-bottom:1mm;break-after:avoid-page}
  .report-section h3{font-size:9pt;margin:2.5mm 0 1mm;break-after:avoid-page}
  .report-section p{margin:1mm 0 2mm}
  .report-note{font-size:7.5pt}
  .report-empty{font-size:8pt;padding:2mm 3mm;margin:2mm 0}
  .report-framework{margin:2mm 0;gap:1mm}
  .report-predictors,.report-outcomes{gap:1mm}
  .report-variable{padding:1.5mm 2mm;font-size:7.5pt;break-inside:avoid}
  .report-method{grid-template-columns:29mm 1fr;gap:1mm 3mm}
  .report-method dt{font-size:7.5pt}
  .report-method dd{font-size:8pt}
  .report-table{font-size:7.5pt;margin:1.5mm 0 2mm}
  .report-table th{font-size:6.5pt;padding:1mm 1.5mm}
  .report-table td{padding:1mm 1.5mm}
  .report-profile-grid{gap:1.5mm;margin:2mm 0}
  .report-profile{padding:1.5mm 2mm;font-size:7.5pt;break-inside:avoid}
  .report-references li{font-size:7.5pt;margin-bottom:1mm}
  .report-table tr,.report-profile{break-inside:avoid}
  .report-references a{color:inherit;text-decoration:none}
}
