@font-face {
  font-family:"Onest";
  src:url("/fonts/Onest-Variable.ttf") format("truetype");
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
}

@font-face {
  font-family:"Santello";
  src:url("/fonts/Santello.ttf") format("truetype");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}

:root {
  --ink: #191818;
  --muted: #606062;
  --line: #e0e0e0;
  --soft: #f5f4ef;
  --paper: #f5f4ef;
  --white: #fff;
  --brand: #191818;
  --brand-2: #606062;
  --accent: #d76953;
  --accent-ink: #fff;
  --coral: #d76953;
  --blue: #5f8fda;
  --danger: #c75046;
  --shadow: 0 18px 48px rgba(22, 36, 35, .09);
  --radius: 18px;
  --display-font:"Santello", Georgia, serif;
  font-family:"Onest", Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--soft);
  font-synthesis: none;
}

* { box-sizing: border-box; }
[hidden] { display:none!important; }
body { margin: 0; min-width: 320px; background: var(--soft); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button, a, input, select, textarea { -webkit-tap-highlight-color:transparent; }
a { color: inherit; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.boot { min-height: 100vh; display: grid; place-items: center; }
.spinner { width: 32px; height: 32px; border: 3px solid #dbe2dc; border-top-color: var(--brand); border-radius: 50%; animation: spin .75s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

.auth-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(390px, .9fr) minmax(480px, 1.1fr); background: var(--paper); }
.auth-panel { position:relative; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(28px, 5vw, 72px); overflow:hidden; }
.auth-panel::after { content:""; position:absolute; width:180px; height:180px; left:-54px; bottom:-50px; background:url("/brand/leaf-gray.png") center/contain no-repeat; opacity:.2; pointer-events:none; }
.auth-visual { position: relative; overflow: hidden; margin: 14px; border-radius: 28px; padding: clamp(36px, 6vw, 88px); color: white; background: var(--brand); display: flex; flex-direction: column; justify-content: space-between; }
.auth-visual::before { content:""; position:absolute; width:520px; height:520px; right:-170px; top:-150px; background:url("/brand/flower-white.png") center/contain no-repeat; opacity:.045; }
.auth-visual::after { content:""; position:absolute; width:190px; height:190px; background:url("/brand/leaf-terra.png") center/contain no-repeat; right:7%; bottom:8%; opacity:.95; }
.auth-seal { position:absolute; width:min(46vw,470px); right:-72px; bottom:-80px; opacity:.08; pointer-events:none; }
.brand { display:flex; align-items:center; gap:12px; font-size:12px; font-weight:800; }
.academy-brand { position:relative; z-index:2; min-width:0; color:var(--ink); }
.academy-brand.on-dark { color:white; }
.academy-brand img { display:block; width:58px; height:auto; flex:0 0 auto; }
.academy-brand .academy-name { font-family:var(--display-font); font-size:22px; font-weight:400; line-height:1; letter-spacing:.025em; }
.academy-brand .brand-context { min-width:0; max-width:360px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-family:"Onest",sans-serif; font-size:11px; font-weight:750; letter-spacing:.01em; text-transform:none; }
.brand-mark { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; background:var(--accent); color:var(--brand); font-size:18px; letter-spacing:0; }
.auth-copy { position:relative; z-index:2; max-width:620px; }
.auth-copy h1 { font-family:var(--display-font); font-weight:400; font-size:clamp(44px,6vw,82px); line-height:.98; letter-spacing:-.025em; margin:0 0 28px; }
.auth-copy p { color:#c9d7d4; max-width:520px; line-height:1.7; font-size:17px; }
.auth-metric { position:relative; z-index:2; width:250px; background:rgba(255,255,255,.12); backdrop-filter:blur(12px); padding:20px; border:1px solid rgba(255,255,255,.16); border-radius:18px; }
.auth-metric strong { font-size:30px; display:block; margin-bottom:4px; }
.auth-metric span { color:#d6e0de; font-size:13px; }
.auth-form-wrap { position:relative; z-index:1; width:100%; max-width:440px; margin:auto; padding:38px 0; }
.eyebrow { color:var(--brand-2); font-weight:750; text-transform:uppercase; letter-spacing:.13em; font-size:11px; }
.auth-form-wrap h2 { font-family:var(--display-font); font-size:39px; font-weight:400; letter-spacing:-.02em; margin:14px 0 8px; }
.lead { color:var(--muted); line-height:1.6; margin:0 0 30px; }
.field { display:grid; gap:8px; margin-bottom:17px; }
.field label { font-size:13px; font-weight:700; }
.input, .select, .textarea { width:100%; border:1px solid var(--line); border-radius:12px; background:var(--white); padding:13px 14px; outline:none; transition:.2s border-color,.2s box-shadow; color:var(--ink); }
.textarea { min-height:110px; resize:vertical; line-height:1.5; }
.input:focus, .select:focus, .textarea:focus { border-color:var(--brand-2); box-shadow:0 0 0 4px rgba(32,89,87,.1); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.btn { border:0; border-radius:10px; min-height:40px; padding:9px 14px; font-weight:720; font-size:13px; display:inline-flex; align-items:center; justify-content:center; gap:8px; transition:.15s transform,.15s background,.15s opacity,.15s box-shadow; }
.btn:hover { transform:translateY(-1px); }
.btn:disabled { cursor:not-allowed; opacity:.55; transform:none; }
.btn-primary { background:var(--brand); color:white; }
.btn-accent { background:var(--accent); color:var(--accent-ink); }
.btn-soft { background:var(--soft); color:var(--ink); border:1px solid var(--line); }
.btn-ghost { background:transparent; color:var(--muted); }
.btn.compact { min-height:36px; padding:7px 11px; font-size:12px; }
.btn.active { background:#fee7e0; color:var(--accent); border-color:#efb9aa; }
.btn-danger { background:#fff0ed; color:var(--danger); }
.btn-block { width:100%; }
.link-btn { border:0; padding:0; background:none; color:var(--brand-2); font-weight:750; }
.auth-switch { margin-top:22px; color:var(--muted); font-size:14px; text-align:center; }
.demo-box { margin-top:22px; padding:14px 16px; background:#eef3ed; border-radius:12px; color:#53605d; font-size:12px; line-height:1.6; }
.demo-box code { color:var(--ink); font-weight:700; }

.app-shell { min-height:100vh; display:grid; grid-template-columns:250px minmax(0,1fr); }
.sidebar { position:sticky; top:0; height:100vh; padding:24px 16px; background:var(--brand); color:white; display:flex; flex-direction:column; z-index:10; overflow:hidden; }
.sidebar::before { content:""; position:absolute; width:250px; height:250px; left:-105px; bottom:55px; background:url("/brand/flower-white.png") center/contain no-repeat; opacity:.025; pointer-events:none; }
.sidebar::after { content:""; position:absolute; width:130px; height:130px; right:-54px; top:-22px; background:url("/brand/seal-terra.png") center/contain no-repeat; opacity:.16; pointer-events:none; }
.sidebar > * { position:relative; z-index:1; }
.sidebar .brand { padding:0 10px 28px; }
.sidebar .academy-brand img { width:64px; }
.sidebar .academy-brand .academy-name { font-size:23px; }
.nav-label { color:#78908c; font-size:10px; letter-spacing:.14em; text-transform:uppercase; font-weight:800; padding:20px 12px 8px; }
.nav { display:grid; gap:3px; overflow-y:auto; min-height:0; padding-right:3px; scrollbar-width:thin; }
.nav-item { border:0; background:transparent; color:#c3c3c3; border-radius:10px; min-height:40px; padding:9px 11px; display:flex; gap:10px; align-items:center; text-align:left; font-size:13px; font-weight:650; }
.nav-item:hover { background:rgba(255,255,255,.07); color:white; }
.nav-item.active { background:rgba(215,105,83,.18); color:#ffd8cf; }
.nav-item svg { width:18px; height:18px; stroke-width:1.8; }
.sidebar-bottom { margin-top:auto; border-top:1px solid rgba(255,255,255,.1); padding-top:16px; }
.user-mini { padding:8px 10px; display:grid; grid-template-columns:36px 1fr; gap:10px; align-items:center; }
.avatar { width:36px; height:36px; background:#2e6260; color:white; border:0; border-radius:50%; display:grid; place-items:center; font-size:12px; font-weight:850; }
button.avatar { cursor:pointer; }
.user-mini strong { display:block; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.user-mini span { display:block; color:#89a29d; font-size:10px; margin-top:3px; }
.main { min-width:0; }
.topbar { height:68px; padding:0 clamp(20px,4vw,48px); display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--line); background:rgba(251,252,248,.92); backdrop-filter:blur(14px); position:sticky; top:0; z-index:8; }
.topbar h1 { font-family:var(--display-font); font-size:25px; font-weight:400; margin:0; letter-spacing:-.01em; }
.top-actions { display:flex; gap:9px; align-items:center; }
.icon-btn { width:40px; height:40px; border:1px solid var(--line); background:var(--white); border-radius:11px; display:grid; place-items:center; }
.icon-btn svg { width:18px; }
.mobile-menu { display:none; }
.content { padding:28px clamp(20px,3vw,42px) 56px; max-width:1480px; margin:auto; }
.page-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:28px; }
.page-head h2 { font-family:var(--display-font); font-size:34px; font-weight:400; margin:7px 0 5px; letter-spacing:-.02em; }
.page-head p { color:var(--muted); margin:0; }
.actions { display:flex; gap:10px; flex-wrap:wrap; }
.stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:24px; }
.stat { background:var(--white); border:1px solid var(--line); border-radius:16px; padding:18px; min-height:128px; position:relative; overflow:hidden; }
.stat::after { content:""; width:78px; height:78px; position:absolute; right:-22px; bottom:-22px; background:url("/brand/leaf-terra.png") center/contain no-repeat; opacity:.18; }
.stat-top { display:flex; justify-content:space-between; color:var(--muted); font-size:12px; font-weight:700; }
.stat-icon { width:34px; height:34px; border-radius:10px; display:grid; place-items:center; background:var(--soft); color:var(--brand); }
.stat-icon svg { width:17px; }
.stat-value { display:block; font-family:var(--display-font); font-size:34px; margin:13px 0 3px; letter-spacing:-.03em; }
.stat-note { font-size:11px; color:var(--muted); }
.compact-stats { margin-top:-10px; }
.grid-2 { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr); gap:20px; }
.card { background:var(--white); border:1px solid var(--line); border-radius:16px; overflow:hidden; box-shadow:0 1px 2px rgba(25,24,24,.025); }
.card-pad { padding:22px; }
.card-head { padding:19px 22px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:12px; }
.card-head h3, .card-pad h3 { margin:0; font-size:15px; }
.card-head p { margin:3px 0 0; color:var(--muted); font-size:12px; }
.table-wrap { overflow:auto; }
table { width:100%; border-collapse:collapse; font-size:13px; }
th { color:var(--muted); text-align:left; font-size:10px; text-transform:uppercase; letter-spacing:.09em; font-weight:800; padding:13px 18px; background:#fafbf8; border-bottom:1px solid var(--line); white-space:nowrap; }
td { padding:15px 18px; border-bottom:1px solid #edf0ec; vertical-align:middle; }
tr:last-child td { border-bottom:0; }
.person { display:flex; align-items:center; gap:10px; min-width:180px; }
.person strong { display:block; font-size:13px; }
.person span { color:var(--muted); font-size:11px; }
.badge { display:inline-flex; align-items:center; gap:5px; padding:5px 8px; border-radius:999px; font-size:10px; font-weight:800; white-space:nowrap; }
.badge::before { content:""; width:5px; height:5px; border-radius:50%; background:currentColor; }
.badge-green { background:#e9f7e8; color:#397444; }
.badge-yellow { background:#fff6d9; color:#927017; }
.badge-red { background:#fff0ed; color:#ad4d44; }
.badge-blue { background:#eaf2fc; color:#4776b6; }
.badge-gray { background:#eef1ee; color:#66706d; }
.score { font-family:var(--display-font); font-size:20px; }
.mini-actions { display:flex; gap:6px; }
.order-list { display:grid; gap:10px; width:100%; }
.mini-btn { border:1px solid var(--line); background:white; border-radius:8px; padding:7px 9px; font-weight:750; font-size:11px; }
.mini-btn:hover { border-color:var(--brand-2); }
.searchbar { display:flex; gap:10px; margin-bottom:16px; }
.search { position:relative; flex:1; }
.search svg { position:absolute; left:13px; top:50%; transform:translateY(-50%); width:17px; color:var(--muted); }
.search .input { padding-left:40px; }
.section-title-row { display:flex; justify-content:space-between; align-items:center; }
.section-title-row p { margin:4px 0 0; color:var(--muted); font-size:11px; }
.quick-actions { display:grid; gap:7px; margin-top:14px; }
.quick-action { width:100%; min-height:54px; border:1px solid var(--line); background:white; border-radius:12px; padding:9px 11px; display:grid; grid-template-columns:34px minmax(0,1fr); gap:10px; align-items:center; text-align:left; transition:.16s border-color,.16s background,.16s transform; }
.quick-action:hover { border-color:#efb9aa; background:#fffaf8; transform:translateX(2px); }
.quick-action.primary { background:#fee7e0; border-color:#f5c9bd; }
.quick-action-icon { width:32px; height:32px; border-radius:9px; background:var(--soft); display:grid; place-items:center; color:var(--accent); }
.quick-action.primary .quick-action-icon { background:white; }
.quick-action-icon svg { width:16px; }
.quick-action strong,.quick-action small { display:block; }
.quick-action strong { font-size:12px; }
.quick-action small { color:var(--muted); font-size:10px; margin-top:2px; }
.question-toolbar { display:flex; gap:8px; align-items:center; margin-bottom:12px; }
.question-toolbar .search { max-width:620px; }
.choice-fieldset { border:0; padding:0; margin:0; min-width:0; }
.choice-tiles { display:grid; gap:6px; }
.choice-tile { position:relative; min-height:38px; display:grid; grid-template-columns:18px minmax(0,1fr); gap:9px; align-items:center; padding:8px 10px; border:1px solid var(--line); border-radius:9px; background:white; font-size:11px; line-height:1.25; cursor:pointer; transition:.15s border-color,.15s background,.15s box-shadow; }
.choice-tile:hover { border-color:#d9a89b; background:#fffaf8; }
.choice-tile:has(input:checked) { border-color:var(--accent); background:#fee7e0; }
.choice-tile input { position:absolute; opacity:0; width:1px; height:1px; }
.choice-indicator { width:17px; height:17px; display:grid; place-items:center; border:1.5px solid #a3a3a3; border-radius:5px; background:white; }
.choice-tile input[type="radio"] + .choice-indicator { border-radius:50%; }
.choice-tile input:checked + .choice-indicator { background:var(--accent); border-color:var(--accent); box-shadow:inset 0 0 0 3px white; }
.choice-tile input[type="checkbox"]:checked + .choice-indicator::after { content:"✓"; color:white; font-size:11px; font-weight:900; line-height:1; }
.choice-tile input[type="checkbox"]:checked + .choice-indicator { box-shadow:none; }
.choice-tile input:focus-visible + .choice-indicator { outline:3px solid rgba(215,105,83,.25); outline-offset:2px; }
.choice-empty { padding:12px; border:1px dashed var(--line); border-radius:9px; color:var(--muted); font-size:10px; }
.filter-menu { position:relative; }
.filter-menu > summary { list-style:none; min-height:38px; display:flex; justify-content:space-between; align-items:center; gap:8px; padding:8px 11px; border:1px solid var(--line); border-radius:10px; background:white; cursor:pointer; font-size:11px; font-weight:700; }
.filter-menu > summary::-webkit-details-marker { display:none; }
.filter-menu > summary::after { content:"⌄"; color:var(--muted); }
.filter-menu[open] > summary { border-color:var(--accent); background:#fffaf8; }
.filter-count:empty { display:none; }
.filter-count { min-width:19px; height:19px; display:grid; place-items:center; padding:0 5px; margin-left:auto; border-radius:999px; background:var(--accent); color:white; font-size:9px; }
.filter-menu-panel { position:absolute; top:calc(100% + 6px); left:0; width:240px; max-height:300px; overflow:auto; z-index:20; padding:9px; background:white; border:1px solid var(--line); border-radius:12px; box-shadow:0 18px 50px rgba(25,24,24,.14); }
.filter-chips { display:flex; gap:7px; flex-wrap:wrap; margin-bottom:18px; }
.chip { border:1px solid var(--line); background:var(--white); border-radius:999px; padding:7px 11px; font-size:11px; font-weight:750; color:var(--muted); }
.chip.active { background:var(--brand); border-color:var(--brand); color:white; }
.question-list { display:grid; gap:11px; }
.question-card { background:white; border:1px solid var(--line); border-radius:15px; padding:17px 18px; display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:start; }
.question-type { width:38px; height:38px; border-radius:10px; background:#eef3ed; display:grid; place-items:center; font-weight:900; color:var(--brand); }
.question-card h4 { margin:0 0 8px; font-size:14px; line-height:1.4; }
.meta { display:flex; flex-wrap:wrap; gap:6px 12px; font-size:10px; color:var(--muted); }
.dots { border:0; background:transparent; color:var(--muted); font-size:20px; }
.test-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.test-card { background:white; border:1px solid var(--line); border-radius:16px; padding:17px; display:flex; flex-direction:column; min-height:222px; box-shadow:0 1px 2px rgba(25,24,24,.025); }
.test-cover { height:76px; border-radius:12px; background:var(--brand); margin-bottom:14px; position:relative; overflow:hidden; }
.test-cover::before { content:""; position:absolute; width:104px; height:104px; right:-19px; top:-36px; background:url("/brand/flower-white.png") center/contain no-repeat; opacity:.13; }
.test-cover::after { content:""; position:absolute; width:84px; height:40px; left:15px; top:18px; background:url("/brand/eterno-logo-white.png") left center/contain no-repeat; opacity:.95; }
.test-cover.coral { background:var(--accent); }
.test-cover.coral::before { background-image:url("/brand/seal-white.png"); opacity:.16; }
.test-cover.blue { background:#65615e; }
.test-cover.blue::before { background-image:url("/brand/leaf-white.png"); opacity:.12; }
.test-card h3 { margin:0 0 7px; font-size:16px; }
.test-card p { color:var(--muted); font-size:12px; line-height:1.5; flex:1; }
.test-footer { display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line); padding-top:13px; margin-top:14px; font-size:11px; color:var(--muted); }
.progress { height:7px; border-radius:999px; background:#e9ede8; overflow:hidden; margin:12px 0; }
.progress > span { display:block; height:100%; background:var(--accent); border-radius:inherit; }
.hero { border-radius:24px; background:var(--brand); color:white; padding:clamp(25px,4vw,42px); display:grid; grid-template-columns:1.4fr .6fr; gap:30px; margin-bottom:22px; position:relative; overflow:hidden; }
.hero::before { content:""; position:absolute; width:330px; height:330px; right:-112px; bottom:-155px; background:url("/brand/seal-white.png") center/contain no-repeat; opacity:.055; }
.hero::after { content:""; position:absolute; width:185px; height:185px; right:5%; top:-48px; background:url("/brand/flower-terra.png") center/contain no-repeat; opacity:.92; }
.hero > * { position:relative; z-index:1; }
.hero h2 { font-family:var(--display-font); font-weight:400; font-size:clamp(30px,4vw,49px); line-height:1.05; margin:11px 0 15px; max-width:650px; }
.hero p { color:#b9ccc7; line-height:1.6; max-width:620px; }
.hero-side { align-self:end; display:grid; gap:10px; }
.hero-stat { padding:15px 17px; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.11); border-radius:13px; backdrop-filter:blur(8px); }
.hero-stat strong { font-size:21px; display:block; }
.hero-stat span { color:#adc1bd; font-size:10px; }
.empty { text-align:center; padding:55px 25px; color:var(--muted); }
.empty-icon { margin:0 auto 15px; width:50px; height:50px; border-radius:15px; background:var(--soft); display:grid; place-items:center; }
.chart { height:230px; padding:20px; display:flex; align-items:flex-end; gap:14px; }
.bar-wrap { flex:1; height:100%; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:8px; min-width:35px; }
.bar { width:min(44px,75%); border-radius:8px 8px 3px 3px; background:var(--brand-2); min-height:4px; position:relative; }
.bar-value { font-weight:800; font-size:10px; }
.bar-label { font-size:9px; color:var(--muted); text-align:center; max-width:80px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.donut { width:170px; height:170px; border-radius:50%; display:grid; place-items:center; margin:22px auto; background:conic-gradient(var(--accent) 0 var(--value), #e9ede8 var(--value) 100%); }
.donut::after { content:""; width:116px; height:116px; border-radius:50%; background:white; }
.donut-label { position:absolute; font-family:Georgia,serif; font-size:30px; }

.modal-backdrop { position:fixed; inset:0; background:rgba(10,28,27,.56); z-index:100; display:grid; place-items:center; padding:20px; backdrop-filter:blur(4px); }
.modal { width:min(680px,100%); max-height:90vh; overflow:auto; background:var(--paper); border-radius:22px; box-shadow:0 30px 90px rgba(0,0,0,.24); }
.modal-wide { width:min(980px,100%); }
.modal-head { padding:20px 24px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--line); }
.modal-head h3 { margin:0; font-family:Georgia,serif; font-size:25px; font-weight:400; }
.modal-body { padding:24px; }
.modal-foot { padding:16px 24px; border-top:1px solid var(--line); display:flex; justify-content:flex-end; gap:9px; }
.close { border:0; background:transparent; font-size:24px; color:var(--muted); }

.auth-copy h1,.auth-form-wrap h2,.topbar h1,.page-head h2,.stat-value,.hero h2,.modal-head h3,.certificate h2,.certificate-name,.verify-card h1,.result-score { font-family:var(--display-font); }
.btn:focus-visible,.input:focus-visible,.select:focus-visible,.textarea:focus-visible,.nav-item:focus-visible,.chip:focus-visible,.mini-btn:focus-visible,.type-choice:focus-visible,.option:focus-visible,.quick-action:focus-visible,.filter-menu > summary:focus-visible { outline:3px solid rgba(215,105,83,.35); outline-offset:2px; }
.btn-primary { background:var(--accent); }
.btn-accent { background:var(--ink); color:white; }
.brand-mark { background:var(--accent); color:white; }
.sidebar { background:var(--ink); }
.nav-item.active { background:rgba(215,105,83,.18); color:#ffd8cf; }
.eyebrow { color:var(--accent); }

.invite-result { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:end; padding:16px; border-radius:14px; background:var(--white); border:1px solid var(--accent); margin:18px 0; }
.invite-result strong { grid-column:1/-1; }
.invitation-list { display:grid; gap:8px; }
.invite-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto auto; gap:8px; align-items:center; padding:12px; background:white; border:1px solid var(--line); border-radius:12px; }
.invite-row small { display:block; color:var(--muted); margin-top:4px; }
.taxonomy-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.taxonomy-list { padding:10px 18px 18px; }
.taxonomy-row { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--line); }
.question-filters { grid-template-columns:repeat(6,minmax(120px,1fr)); gap:8px; margin-bottom:12px; }
.question-filters:not([hidden]) { display:grid; }
.question-filters[hidden] { display:none; }
.builder-filters { display:grid; grid-template-columns:minmax(240px,2fr) repeat(6,minmax(130px,1fr)); gap:8px; margin-bottom:12px; }
.filter-summary { margin:8px 0 14px; color:var(--muted); font-size:12px; }
.question-id { display:block; color:var(--accent); font-size:10px; font-weight:800; letter-spacing:.06em; margin-bottom:5px; }
.meta-chip { background:var(--soft); border-radius:999px; padding:3px 7px; }
.field-help { color:var(--muted); font-size:11px; margin:-2px 0 10px; }
.info-panel,.info-screen { padding:18px; border-radius:14px; background:#fee7e0; color:var(--ink); line-height:1.6; }
.multiselect { min-height:92px; }
.properties-heading { display:grid; gap:3px; margin-bottom:12px; }
.properties-heading small { color:var(--muted); font-size:10px; }
.property-group { border-bottom:1px solid var(--line); }
.property-group > summary { list-style:none; padding:12px 0; cursor:pointer; }
.property-group > summary::-webkit-details-marker { display:none; }
.property-group > summary::after { content:"+"; float:right; color:var(--muted); font-size:16px; }
.property-group[open] > summary::after { content:"−"; }
.property-group > summary span,.property-group > summary small { display:block; }
.property-group > summary span { font-size:12px; font-weight:750; }
.property-group > summary small { margin-top:3px; color:var(--muted); font-size:9px; }
.property-group-body { padding:0 0 12px; }
.toggle-row { display:flex; align-items:center; gap:9px; padding:9px 0; font-size:12px; font-weight:650; }
.question-builder-modal { width:min(1380px,calc(100vw - 28px)); height:min(900px,calc(100vh - 28px)); max-height:none; overflow:hidden; display:flex; flex-direction:column; }
.question-builder-modal form { min-height:0; display:flex; flex:1; flex-direction:column; }
.question-builder { display:grid; grid-template-columns:210px minmax(420px,1fr) 290px; flex:1; min-height:0; }
.question-type-panel,.question-properties { padding:18px; overflow:auto; background:white; }
.question-type-panel { border-right:1px solid var(--line); }
.type-search { margin-top:12px; padding:9px 10px; font-size:10px; }
.question-properties { border-left:1px solid var(--line); }
.question-properties > .field { padding-bottom:12px; margin-bottom:12px; border-bottom:1px solid var(--line); }
.question-properties > .field > label { font-size:11px; }
.question-properties .choice-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); }
.question-properties .choice-tile { min-height:34px; padding:7px 8px; font-size:10px; }
.question-properties .choice-indicator { width:15px; height:15px; }
.question-canvas { padding:28px; overflow:auto; background:var(--soft); }
.editor-card { max-width:760px; margin:auto; background:white; border:1px solid var(--line); border-radius:18px; padding:24px; box-shadow:0 8px 28px rgba(25,24,24,.05); }
.type-group { display:grid; gap:5px; margin-top:16px; }
.type-group small { text-transform:uppercase; letter-spacing:.08em; color:var(--muted); font-size:9px; font-weight:800; }
.recent-types { padding:8px; border-radius:11px; background:var(--soft); }
.favorite-types { padding:8px; border:1px solid #f1d3c9; border-radius:11px; background:#fffaf8; }
.type-choice-row { display:grid; grid-template-columns:minmax(0,1fr) 30px; gap:3px; }
.type-choice { min-width:0; text-align:left; border:1px solid transparent; background:transparent; border-radius:9px; padding:8px 9px; color:var(--muted); font-size:11px; font-weight:650; }
.type-choice:hover,.type-choice.active { background:#fee7e0; border-color:#f5c7bb; color:var(--ink); }
.type-favorite { border:0; border-radius:8px; background:transparent; color:#b2aaa5; font-size:15px; }
.type-favorite:hover,.type-favorite.active { color:var(--accent); background:#fee7e0; }
.option-editor-row,.pair-row { display:grid; grid-template-columns:auto auto minmax(0,1fr) auto; gap:8px; align-items:center; margin-bottom:8px; }
.option-editor-row .option-feedback { grid-column:3/5; font-size:10px; background:#fffaf8; }
.image-option-editor-row { align-items:start; }
.image-option-editor-row .option-feedback { grid-column:3/5; }
.option-media-value { min-width:0; display:grid; grid-template-columns:minmax(110px,1fr) auto; gap:7px; align-items:center; }
.option-image-preview { min-height:84px; display:grid; place-items:center; overflow:hidden; border:1px dashed #d9d5cf; border-radius:11px; background:var(--soft); color:var(--muted); font-size:10px; }
.option-image-preview img { width:100%; height:112px; display:block; object-fit:contain; background:white; }
.option-upload-button { display:inline-flex; align-items:center; gap:5px; cursor:pointer; }
.option-upload-button svg,.media-upload-button svg { width:15px; height:15px; }
.option-upload-status { grid-column:1/3; color:var(--muted); font-size:9px; }
.option-editor-row.uploading,.media-upload-field.uploading { opacity:.65; pointer-events:none; }
.media-upload-field { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; }
.media-upload-field > label,.media-upload-preview,.media-upload-field > .field-help { grid-column:1/3; }
.media-upload-preview { min-height:92px; display:grid; place-items:center; overflow:hidden; border:1px dashed #d9d5cf; border-radius:12px; background:var(--soft); color:var(--muted); font-size:10px; }
.media-upload-preview .question-media { width:100%; margin:0; }
.media-upload-preview .question-media img,.media-upload-preview .question-media video { max-height:180px; border-radius:11px; }
.media-upload-button { display:inline-flex; justify-content:center; align-items:center; gap:6px; cursor:pointer; }
.media-remove { justify-self:end; }
.review-authoring { margin-top:18px; padding-top:18px; border-top:1px solid var(--line); }
.pair-row { grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto; }
.drag-grip { cursor:grab; color:#8e8e8e; user-select:none; }
.choice-pair { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.choice-pair label { padding:18px; background:var(--soft); border:1px solid var(--line); border-radius:12px; }
.save-state { margin-right:auto; color:var(--muted); font-size:11px; align-self:center; }
.json-editor { min-height:330px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; }
.validation-result { display:grid; gap:7px; margin-top:12px; }
.validation-summary { display:flex; justify-content:space-between; gap:14px; padding:13px; border-radius:12px; }
.validation-summary.success { background:#e9f7e8; color:#397444; }
.validation-summary.error,.validation-line.error { background:#fff0ed; color:#ad4d44; }
.validation-line { padding:9px 12px; border-radius:9px; font-size:11px; }
.validation-line.warning { background:#fff6d9; color:#927017; }

.test-builder-modal { width:calc(100vw - 24px); height:calc(100vh - 24px); background:var(--paper); border-radius:18px; overflow:hidden; box-shadow:0 30px 90px rgba(0,0,0,.25); display:flex; flex-direction:column; }
.builder-top { height:68px; background:white; border-bottom:1px solid var(--line); padding:10px 16px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.builder-title,.builder-actions { display:flex; align-items:center; gap:9px; }
.builder-title-input { border:0; font-family:var(--display-font); font-size:22px; min-width:260px; padding:8px; }
.test-builder-grid { display:grid; grid-template-columns:300px minmax(480px,1fr) 300px; flex:1; min-height:0; }
.builder-structure,.builder-bank,.builder-properties { min-height:0; background:white; display:flex; flex-direction:column; }
.builder-structure { border-right:1px solid var(--line); }
.builder-properties { border-left:1px solid var(--line); }
.builder-panel-head { min-height:64px; padding:14px 16px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:8px; }
.builder-panel-head strong,.builder-panel-head small { display:block; }
.builder-panel-head small { margin-top:4px; color:var(--muted); font-size:10px; }
#builder-sections,.builder-bank-list,.builder-properties-scroll { overflow:auto; padding:12px; }
.builder-section { border:1px solid var(--line); border-radius:12px; margin-bottom:10px; overflow:hidden; }
.builder-section.active { border-color:var(--accent); box-shadow:0 0 0 2px rgba(215,105,83,.12); }
.builder-section-head { display:flex; align-items:center; background:#faf9f5; border-bottom:1px solid var(--line); }
.section-select { flex:1; padding:11px; border:0; background:none; text-align:left; }
.section-select small { display:block; color:var(--muted); margin-top:3px; font-size:9px; }
.builder-section-items { min-height:54px; padding:7px; }
.builder-structure-item { display:grid; grid-template-columns:auto auto minmax(0,1fr) auto; gap:7px; align-items:center; padding:8px; margin-bottom:5px; background:white; border:1px solid var(--line); border-radius:9px; }
.builder-structure-item strong { display:block; font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.builder-structure-item small { display:block; color:var(--muted); font-size:8px; margin-top:2px; }
.structure-number { width:20px; height:20px; display:grid; place-items:center; border-radius:6px; background:var(--soft); font-size:9px; }
.structure-actions { display:none; gap:2px; }
.builder-structure-item:hover .structure-actions,.builder-structure-item:focus .structure-actions { display:flex; }
.structure-actions .icon-btn { width:25px; height:25px; font-size:10px; }
.drop-empty { padding:16px 8px; color:var(--muted); text-align:center; font-size:10px; }
.builder-bank { background:var(--soft); }
.builder-bank .builder-panel-head { background:white; }
.builder-filters { grid-template-columns:minmax(220px,2fr) repeat(5,minmax(110px,1fr)); padding:12px; margin:0; }
.builder-bank-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; align-content:start; }
.bank-question { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; padding:14px; background:white; border:1px solid var(--line); border-radius:12px; }
.bank-question.selected { opacity:.6; }
.bank-question strong,.bank-question small { display:block; }
.bank-question strong { font-size:12px; line-height:1.35; }
.bank-question small { color:var(--muted); margin:5px 0; font-size:9px; }
.builder-properties-scroll { padding:16px; }
.scale-control { display:grid; gap:14px; text-align:center; }
.scale-control > div { display:flex; flex-wrap:wrap; justify-content:center; gap:7px; }
.scale-value { width:42px; height:42px; border-radius:50%; border:1px solid var(--line); background:white; }
.scale-value.selected { background:var(--accent); border-color:var(--accent); color:white; }
.image-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.image-option { border:2px solid var(--line); background:white; border-radius:14px; padding:8px; overflow:hidden; }
.image-option.selected { border-color:var(--accent); }
.image-option img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:9px; }
.exam-layout { display:grid; grid-template-columns:230px minmax(0,1fr); max-width:1300px; margin:auto; }
.exam-question-nav { padding:24px 16px; border-right:1px solid var(--line); }
.exam-question-nav > div { display:grid; grid-template-columns:repeat(5,1fr); gap:6px; margin:14px 0; }
.exam-number { aspect-ratio:1; border:1px solid var(--line); background:white; border-radius:8px; font-size:11px; }
.exam-number.answered { background:#e9f7e8; border-color:#9dc9a3; }
.exam-number.current { box-shadow:0 0 0 2px var(--accent); }
.exam-number.flagged { color:var(--accent); font-weight:900; }

.exam-shell { min-height:100vh; background:var(--paper); }
.exam-top { height:66px; background:var(--brand); color:white; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(20px,5vw,70px); }
.exam-top-status { display:flex; align-items:center; gap:14px; }
.exam-top-status > span { color:#bfc8c6; font-size:10px; }
.timer { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.12); border-radius:10px; padding:9px 13px; font-variant-numeric:tabular-nums; font-weight:800; }
.exam-global-progress { height:4px; background:#30302f; position:sticky; top:0; z-index:4; }
.exam-global-progress span { display:block; height:100%; background:var(--accent); transition:width .22s ease; }
.exam-wrap { width:min(100%,820px); margin:auto; padding:44px 20px 100px; }
.exam-meta { display:flex; justify-content:space-between; color:var(--muted); font-size:12px; margin-bottom:12px; }
.exam-progress { height:5px; background:#e4e9e4; border-radius:99px; overflow:hidden; margin-bottom:34px; }
.exam-progress span { display:block; height:100%; background:var(--brand-2); }
.question { background:white; border:1px solid var(--line); border-radius:20px; padding:clamp(26px,5vw,48px); box-shadow:0 12px 34px rgba(25,24,24,.055); }
.question-enter { animation:question-enter .22s ease both; }
@keyframes question-enter { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:none; } }
.question .eyebrow { margin-bottom:16px; }
.question h2 { font-family:var(--display-font); font-weight:400; font-size:clamp(26px,4vw,38px); line-height:1.22; margin:0 0 30px; }
.question-help { color:var(--muted); font-size:13px; line-height:1.6; margin:-18px 0 24px; }
.question-media { margin:0 0 24px; }
.question-media img,.question-media video { display:block; width:100%; max-height:420px; object-fit:contain; border-radius:14px; background:var(--soft); }
.question-attachment { display:block; padding:12px 14px; margin:0 0 22px; border:1px solid var(--line); border-radius:11px; color:var(--accent); font-size:12px; font-weight:700; text-decoration:none; }
.options { display:grid; gap:10px; }
.option { width:100%; min-height:58px; border:1px solid var(--line); background:white; border-radius:13px; padding:14px 16px; display:flex; gap:12px; align-items:center; text-align:left; transition:.18s border-color,.18s background,.18s transform,.18s box-shadow; }
.option:hover { border-color:#d9a89b; background:#fffaf8; }
.option:focus-visible,.image-option:focus-visible,.scale-value:focus-visible { outline:3px solid rgba(215,105,83,.28); outline-offset:2px; border-color:var(--accent); }
.option.selected { border-color:var(--accent); background:#fee7e0; box-shadow:0 0 0 2px rgba(215,105,83,.09); }
.option.correct,.image-option.correct,.scale-value.correct { border-color:#67a984; background:#e8f5ed; color:#285c3f; }
.option.incorrect,.image-option.incorrect,.scale-value.incorrect { border-color:var(--danger); background:#fff0ed; color:#873c31; }
.option:disabled { opacity:.55; cursor:not-allowed; }
.option-key { width:27px; height:27px; border-radius:8px; background:var(--soft); display:grid; place-items:center; font-size:11px; font-weight:800; flex:none; }
.selected .option-key { background:var(--accent); color:white; }
.inline-feedback { margin-top:18px; padding:14px 16px; border-radius:12px; background:#fff5df; color:#71551b; }
.inline-feedback strong { font-size:11px; text-transform:uppercase; letter-spacing:.06em; }
.inline-feedback p { margin:6px 0 0; font-size:12px; line-height:1.55; }
.exam-nav { margin-top:20px; display:flex; justify-content:space-between; align-items:center; gap:12px; }
.keyboard-hint { color:var(--muted); font-size:9px; text-align:center; }
kbd { min-width:20px; display:inline-grid; place-items:center; padding:2px 5px; border:1px solid var(--line); border-bottom-width:2px; border-radius:5px; background:white; font:inherit; font-weight:800; }
.exam-review { width:min(920px,100%); margin:auto; padding:55px 20px 100px; }
.exam-review h1 { font-family:var(--display-font); font-size:clamp(34px,5vw,50px); font-weight:400; margin:10px 0; }
.exam-review > p { color:var(--muted); line-height:1.6; }
.exam-review-grid { display:grid; gap:8px; margin:26px 0; }
.exam-review-row { display:grid; grid-template-columns:34px minmax(0,1fr) auto; gap:12px; align-items:center; padding:13px; border:1px solid var(--line); border-radius:12px; background:white; text-align:left; }
.exam-review-row > span { width:30px; height:30px; display:grid; place-items:center; border-radius:8px; background:var(--soft); font-size:10px; font-weight:800; }
.exam-review-row strong { font-size:12px; }
.exam-review-row small { color:var(--muted); font-size:10px; }
.exam-review-row.flagged { border-color:var(--accent); }
.exam-review-row.skipped { opacity:.58; }
.exam-review-actions { display:flex; justify-content:flex-end; gap:10px; }
.result-card { max-width:900px; margin:30px auto; background:white; border:1px solid var(--line); border-radius:24px; padding:clamp(28px,5vw,56px); text-align:center; }
.result-card > h1 { font-family:var(--display-font); font-size:clamp(32px,5vw,46px); font-weight:400; margin:12px 0; }
.result-score { width:150px; height:150px; display:grid; place-items:center; margin:20px auto; border-radius:50%; background:var(--brand); color:white; font-family:var(--display-font); font-size:42px; box-shadow:0 0 0 12px #e7efe8; }
.review-list { text-align:left; display:grid; gap:8px; margin-top:30px; }
.review-item { padding:13px 15px; border-radius:11px; background:var(--soft); font-size:12px; display:flex; justify-content:space-between; gap:10px; }
.result-message { color:var(--muted); line-height:1.6; }
.attempts-note,.attempt-policy { display:flex; justify-content:space-between; gap:12px; padding:8px 10px; border-radius:9px; background:var(--soft); color:var(--muted); font-size:11px; }
.attempts-note { display:inline-flex; margin:0 auto 14px; }
.results-toolbar { display:grid; grid-template-columns:minmax(260px,1fr) 170px 190px auto; gap:8px; padding:14px; border-bottom:1px solid var(--line); }
.table-subline { display:block; color:var(--muted); margin-top:4px; font-size:10px; }
.result-detail-summary { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; padding:12px; margin-bottom:18px; border-radius:14px; background:var(--soft); text-align:left; }
.result-detail-summary > div { min-height:58px; padding:10px; background:white; border:1px solid var(--line); border-radius:10px; }
.result-detail-summary small,.result-detail-summary strong { display:block; }
.result-detail-summary small { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.07em; margin-bottom:7px; }
.result-detail-summary strong { font-size:12px; }
.admin-review-list { display:grid; gap:10px; text-align:left; }
.admin-review-item,.learner-review-item { display:grid; grid-template-columns:34px minmax(0,1fr); gap:12px; padding:15px; border:1px solid var(--line); border-left:4px solid var(--line); border-radius:13px; background:white; }
.admin-review-item.correct,.learner-review-item.correct { border-left-color:#76b693; }
.admin-review-item.incorrect,.learner-review-item.incorrect { border-left-color:var(--danger); }
.review-number { width:29px; height:29px; display:grid; place-items:center; border-radius:8px; background:var(--soft); font-size:11px; font-weight:800; }
.review-title-row { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; }
.review-title-row h4 { margin:0; font-size:13px; line-height:1.45; }
.answer-comparison { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:12px; }
.answer-comparison > div { min-width:0; padding:10px 12px; border-radius:9px; background:var(--soft); }
.answer-comparison small { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.06em; }
.answer-comparison p { margin:5px 0 0; font-size:12px; line-height:1.45; overflow-wrap:anywhere; }
.explanation-box { margin-top:9px; padding:11px 12px; border-radius:9px; background:#fff5df; color:#71551b; }
.explanation-box strong { font-size:10px; text-transform:uppercase; letter-spacing:.06em; }
.explanation-box p { margin:5px 0 0; font-size:11px; line-height:1.5; }
.explanation-empty { margin-top:9px; color:var(--muted); font-size:10px; }
.review-window { margin-top:22px; padding-top:22px; border-top:1px solid var(--line); }
.review-window-head { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin-bottom:14px; text-align:left; }
.review-window-head h2 { margin:0 0 5px; font-family:var(--display-font); font-size:27px; font-weight:400; }
.review-window-head p { margin:0; color:var(--muted); font-size:11px; line-height:1.5; max-width:620px; }
.review-countdown { flex:0 0 auto; padding:9px 12px; border-radius:10px; background:#fff0ed; color:var(--danger); font-variant-numeric:tabular-nums; font-weight:800; }
.review-expired { padding:28px; border-radius:13px; background:var(--soft); text-align:center; }
.review-expired p { color:var(--muted); font-size:11px; }
.btn-quiet { border-color:transparent; background:transparent; color:var(--muted); }
.btn-quiet:hover { color:var(--ink); background:var(--soft); }
.result-shell { min-height:100vh; background:linear-gradient(180deg,#f6f7f2 0,#fbfaf7 100%); }
.result-review-timer,.review-top-actions { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:11px; }
.result-review-timer strong,.review-top-actions strong { color:var(--danger); font-variant-numeric:tabular-nums; }
.result-dashboard { width:min(1180px,100%); margin:auto; padding:38px 22px 80px; }
.result-hero-card { position:relative; overflow:hidden; display:flex; align-items:center; justify-content:space-between; gap:32px; padding:32px 36px; border:1px solid var(--line); border-radius:24px; background:white; box-shadow:0 14px 45px rgba(28,35,25,.06); }
.result-hero-card::after { content:""; position:absolute; width:250px; height:250px; left:-95px; bottom:-115px; background:url("/brand/seal-gray.png") center/contain no-repeat; opacity:.22; }
.result-hero-card > * { position:relative; z-index:1; }
.result-hero-card > div:first-child { max-width:720px; }
.result-hero-card h1,.result-panel h2,.result-next-step h2,.review-filters h2,.learner-review-card h1,.review-complete h1 { margin:8px 0; font-family:var(--display-font); font-weight:400; }
.result-hero-card h1 { font-size:clamp(34px,5vw,55px); line-height:1.02; }
.result-hero-card p,.result-next-step p,.review-complete > p { color:var(--muted); line-height:1.65; }
.score-ring { flex:0 0 180px; width:180px; height:180px; display:grid; place-items:center; border-radius:50%; background:conic-gradient(var(--brand) calc(var(--score)*1%),#e7ebe5 0); position:relative; }
.score-ring::before { content:""; position:absolute; inset:12px; border-radius:50%; background:white; }
.score-ring > div { position:relative; text-align:center; }
.score-ring strong,.score-ring span { display:block; }
.score-ring strong { font-family:var(--display-font); font-size:42px; font-weight:400; }
.score-ring span { margin-top:3px; color:var(--muted); font-size:10px; }
.result-check { width:92px; height:92px; display:grid; place-items:center; border-radius:50%; background:#e7f4e7; color:#36744a; font-size:42px; }
.result-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin-top:14px; }
.result-metrics article { padding:18px; border:1px solid var(--line); border-radius:15px; background:white; }
.result-metrics strong,.result-metrics span { display:block; }
.result-metrics strong { font-family:var(--display-font); font-size:25px; font-weight:400; }
.result-metrics span { margin-top:5px; color:var(--muted); font-size:10px; }
.result-metrics .metric-danger strong { color:var(--danger); }
.result-metrics .metric-warn strong { color:#96701d; }
.result-context { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 22px; }
.result-context span { padding:7px 10px; border-radius:999px; background:#edf0e9; color:var(--muted); font-size:10px; }
.result-columns { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr); gap:14px; }
.result-panel { padding:26px; border:1px solid var(--line); border-radius:20px; background:white; }
.result-panel h2 { font-size:29px; }
.topic-results { display:grid; gap:10px; margin-top:20px; }
.topic-result { display:grid; grid-template-columns:minmax(150px,1fr) minmax(100px,1.2fr) 48px; gap:14px; align-items:center; }
.topic-result strong,.topic-result small { display:block; }
.topic-result strong { font-size:12px; }
.topic-result small { margin-top:4px; color:var(--muted); font-size:9px; }
.topic-result b { text-align:right; font-size:11px; }
.topic-meter { height:7px; overflow:hidden; border-radius:999px; background:#edf0e9; }
.topic-meter span { display:block; height:100%; border-radius:inherit; background:var(--brand); }
.result-next-step { display:flex; flex-direction:column; align-items:flex-start; }
.result-next-step .btn { width:100%; margin-top:8px; }
.result-next-step .btn-quiet { margin-top:auto; }
.survey-back { margin:24px auto; display:block; }
.review-shell { min-height:100vh; background:#f6f7f2; }
.review-layout { width:min(1180px,100%); margin:auto; padding:28px 22px 70px; display:grid; grid-template-columns:250px minmax(0,1fr); gap:20px; align-items:start; }
.review-filters { position:sticky; top:90px; display:grid; gap:6px; padding:20px; border:1px solid var(--line); border-radius:18px; background:white; }
.review-filters h2 { margin-bottom:16px; font-size:27px; }
.review-filter { display:flex; justify-content:space-between; gap:8px; padding:10px 11px; border:1px solid transparent; border-radius:10px; background:transparent; color:var(--muted); text-align:left; font-size:10px; }
.review-filter:hover,.review-filter.active { border-color:#edc7bd; background:#fff3ef; color:var(--ink); }
.learner-review-card { padding:clamp(24px,4vw,44px); border:1px solid var(--line); border-radius:22px; background:white; box-shadow:0 12px 38px rgba(28,35,25,.05); }
.review-card-meta { display:flex; justify-content:space-between; gap:14px; align-items:center; color:var(--muted); font-size:10px; }
.learner-review-card h1 { margin:18px 0 24px; font-size:clamp(28px,4vw,42px); line-height:1.12; }
.review-media { max-width:100%; max-height:330px; object-fit:contain; border-radius:14px; margin-bottom:18px; }
.review-options { display:grid; gap:8px; }
.review-option { display:flex; gap:12px; align-items:center; padding:13px 15px; border:1px solid var(--line); border-radius:12px; }
.review-option > span { width:26px; height:26px; display:grid; place-items:center; flex:0 0 auto; border-radius:8px; background:var(--soft); font-weight:900; }
.review-option strong,.review-option small { display:block; }
.review-option small { margin-top:3px; color:var(--muted); font-size:9px; }
.review-option.right-option { border-color:#a9ceb3; background:#f1f8f2; }
.review-option.wrong-option { border-color:#e4b0aa; background:#fff3f1; }
.sequence-comparison ol { margin:8px 0 0; padding-left:20px; font-size:11px; line-height:1.7; }
.review-explanation,.review-practical { margin-top:14px; padding:16px 18px; border-radius:13px; }
.review-explanation span,.review-practical span { display:block; margin-bottom:7px; font-size:9px; font-weight:850; text-transform:uppercase; letter-spacing:.07em; }
.review-explanation p,.review-practical p { margin:0; font-size:12px; line-height:1.65; }
.review-explanation.wrong { background:#fff1ee; color:#863f37; }
.review-explanation.right { background:#edf7ef; color:#315f3e; }
.review-explanation.muted { background:var(--soft); color:var(--muted); }
.review-practical { background:#fff7e4; color:#71551b; }
.review-source { display:inline-flex; margin-top:14px; color:var(--accent); font-size:11px; font-weight:750; }
.review-card-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; margin-top:24px; padding-top:20px; border-top:1px solid var(--line); }
.review-card-actions .active { color:#956e18; background:#fff6d9; }
.review-complete { position:relative; overflow:hidden; width:min(720px,calc(100% - 32px)); margin:60px auto; padding:48px; border:1px solid var(--line); border-radius:24px; background:white; text-align:center; }
.review-complete::after { content:""; position:absolute; width:190px; height:190px; right:-75px; bottom:-78px; background:url("/brand/flower-gray.png") center/contain no-repeat; opacity:.24; }
.review-complete > * { position:relative; z-index:1; }
.review-complete .result-check { margin:0 auto 20px; }
.review-complete h1 { font-size:clamp(34px,5vw,50px); }
.recommendation-card { display:grid; gap:8px; margin:28px 0; padding:20px; border-radius:15px; background:#f1f5ee; text-align:left; }
.recommendation-card strong { font-size:10px; text-transform:uppercase; letter-spacing:.07em; }
.recommendation-card span { line-height:1.55; }
.review-complete-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:9px; }
.generator-modal { width:min(1320px,calc(100vw - 28px)); height:min(880px,calc(100vh - 28px)); max-height:none; overflow:hidden; display:flex; flex-direction:column; }
.generator-layout { display:grid; grid-template-columns:minmax(560px,1.25fr) minmax(340px,.75fr); flex:1; min-height:0; }
.generator-settings { min-height:0; overflow:auto; padding:20px; border-right:1px solid var(--line); }
.generator-preview { min-height:0; display:flex; flex-direction:column; background:var(--soft); }
.generator-preview #generator-preview-content { min-height:0; overflow:auto; padding:14px; }
.generator-saved { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; padding:12px; margin-bottom:16px; border-radius:13px; background:var(--soft); }
.generator-saved .field { margin:0; }
.generator-filter-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin:5px 0 16px; }
.generator-group { border:1px solid var(--line); border-radius:12px; background:white; overflow:hidden; }
.generator-group > summary { list-style:none; padding:11px 12px; cursor:pointer; font-size:11px; font-weight:800; background:#fafbf8; }
.generator-group > summary::-webkit-details-marker { display:none; }
.generator-group > summary::after { content:"+"; float:right; color:var(--muted); }
.generator-group[open] > summary::after { content:"−"; }
.generator-group > .choice-fieldset,.generator-group > .choice-empty { margin:9px; max-height:190px; overflow:auto; }
.generator-group .choice-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); }
.generator-options { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.generator-toggles { display:grid; grid-template-columns:1fr 1fr; gap:0 18px; padding:10px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.generator-save-rule { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; margin-top:14px; }
.generator-summary { display:flex; align-items:baseline; gap:8px; padding:16px; border-radius:13px; background:var(--ink); color:white; }
.generator-summary strong { font-family:var(--display-font); font-size:38px; font-weight:400; }
.generator-summary span { color:#c9c9c9; font-size:11px; }
.generator-section-list { display:flex; flex-wrap:wrap; gap:6px; margin:10px 0; }
.generator-section-list span { padding:5px 8px; border-radius:999px; background:white; border:1px solid var(--line); font-size:9px; }
.generator-question-list { display:grid; gap:7px; }
.generator-question-list article { display:grid; grid-template-columns:25px minmax(0,1fr); gap:8px; padding:10px; border:1px solid var(--line); border-radius:10px; background:white; }
.generator-question-list article > span { width:23px; height:23px; display:grid; place-items:center; border-radius:6px; background:var(--soft); font-size:9px; font-weight:800; }
.generator-question-list strong,.generator-question-list small { display:block; }
.generator-question-list strong { font-size:10px; line-height:1.4; }
.generator-question-list small { margin-top:4px; color:var(--muted); font-size:8px; }
.variable-suggestions { position:absolute; left:0; right:0; top:100%; z-index:45; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; padding:8px; border:1px solid var(--line); border-radius:12px; background:white; box-shadow:0 18px 50px rgba(25,24,24,.16); }
.field:has(.variable-suggestions) { position:relative; }
.variable-suggestions button { display:flex; justify-content:space-between; gap:8px; padding:8px; border:0; border-radius:8px; background:var(--soft); text-align:left; }
.variable-suggestions button:hover { background:#fee7e0; }
.variable-suggestions strong { color:var(--accent); font-size:10px; }
.variable-suggestions span { color:var(--muted); font-size:9px; }
.logic-modal .info-panel { margin-bottom:14px; }
.logic-rules { display:grid; gap:7px; margin:12px 0; }
.logic-rule-row { display:grid; grid-template-columns:28px minmax(170px,1fr) minmax(100px,.5fr) minmax(180px,1fr) 86px 40px; gap:7px; align-items:center; }
.logic-rule-row .input,.logic-rule-row .select { padding:9px 10px; font-size:10px; }
.logic-points { display:grid; gap:3px; color:var(--muted); font-size:8px; }
.logic-map { display:grid; gap:9px; padding:13px; border-radius:14px; background:var(--soft); }
.logic-flow { display:grid; grid-template-columns:minmax(0,1fr) 100px minmax(0,1fr); gap:10px; align-items:center; }
.logic-node { min-height:64px; padding:11px; border:1px solid var(--line); border-radius:11px; background:white; }
.logic-node.target { border-color:#efb9aa; background:#fffaf8; }
.logic-node small,.logic-node strong { display:block; }
.logic-node small { color:var(--accent); font-size:8px; margin-bottom:5px; }
.logic-node strong { font-size:10px; line-height:1.4; }
.logic-edge { color:var(--accent); text-align:center; font-weight:900; }
.logic-edge span { display:block; margin-bottom:4px; padding:3px 6px; border-radius:999px; background:#fee7e0; font-size:8px; overflow:hidden; text-overflow:ellipsis; }

.guide-picker { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.guide-picker-card { min-height:82px; display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:12px; align-items:center; padding:14px; border:1px solid var(--line); border-radius:15px; background:white; color:var(--ink); text-align:left; transition:.16s border-color,.16s background,.16s transform; }
.guide-picker-card:hover { transform:translateY(-1px); border-color:#d9a89b; }
.guide-picker-card.active { border-color:var(--accent); background:#fff8f5; box-shadow:0 0 0 2px rgba(215,105,83,.08); }
.guide-picker-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; background:var(--soft); color:var(--accent); }
.guide-picker-icon svg { width:20px; }
.guide-picker-card strong,.guide-picker-card small { display:block; }
.guide-picker-card strong { font-size:13px; }
.guide-picker-card small { margin-top:5px; color:var(--muted); font-size:10px; }
.guide-picker-card b { color:var(--accent); font-size:18px; }
.guide-hero { display:flex; justify-content:space-between; align-items:flex-end; gap:22px; padding:26px 28px; border:1px solid var(--line); border-radius:18px 18px 0 0; background:var(--ink); color:white; }
.guide-hero h2 { margin:8px 0 7px; font-family:var(--display-font); font-size:clamp(28px,4vw,42px); font-weight:400; }
.guide-hero p { max-width:660px; margin:0; color:#c5c3c1; font-size:12px; line-height:1.55; }
.guide-hero .eyebrow { color:#efaa98; }
.guide-tools { flex:0 1 420px; display:flex; gap:8px; align-items:center; }
.guide-tools .search { min-width:220px; }
.guide-tools .btn { flex:none; background:#343232; border-color:#555; color:white; }
.guide-layout { display:grid; grid-template-columns:260px minmax(0,1fr); min-height:600px; border:1px solid var(--line); border-top:0; border-radius:0 0 18px 18px; background:white; overflow:hidden; }
.guide-toc { position:relative; padding:22px 16px; border-right:1px solid var(--line); background:#faf9f5; }
.guide-toc > strong { display:block; padding:0 9px 12px; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.guide-toc nav { position:sticky; top:94px; display:grid; gap:3px; max-height:calc(100vh - 220px); overflow:auto; }
.guide-toc button { display:grid; grid-template-columns:24px minmax(0,1fr); gap:7px; padding:9px; border:0; border-radius:9px; background:transparent; color:var(--muted); text-align:left; font-size:10px; line-height:1.35; }
.guide-toc button:hover { background:#fee7e0; color:var(--ink); }
.guide-toc button span { color:var(--accent); font-weight:850; }
.guide-toc > small { position:sticky; top:calc(100vh - 84px); display:block; margin:24px 9px 0; color:var(--muted); font-size:8px; line-height:1.6; }
.guide-content { min-width:0; padding:20px; }
.guide-chapter { scroll-margin-top:90px; border:1px solid var(--line); border-radius:13px; background:white; margin-bottom:9px; overflow:hidden; }
.guide-chapter[open] { border-color:#ebc1b6; box-shadow:0 9px 30px rgba(25,24,24,.04); }
.guide-chapter > summary { list-style:none; min-height:88px; display:grid; grid-template-columns:36px minmax(0,1fr) 24px; gap:13px; align-items:start; padding:17px; cursor:pointer; }
.guide-chapter > summary::-webkit-details-marker { display:none; }
.guide-chapter > summary > span { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; background:var(--soft); color:var(--accent); font-size:10px; font-weight:850; }
.guide-chapter > summary h3 { margin:2px 0 5px; font-size:14px; }
.guide-chapter > summary p { margin:0; color:var(--muted); font-size:10px; line-height:1.5; }
.guide-chapter > summary b { color:var(--muted); font-size:17px; transition:.16s transform; }
.guide-chapter[open] > summary b { transform:rotate(45deg); color:var(--accent); }
.guide-chapter-body { padding:2px 22px 22px 66px; border-top:1px solid #f0eee9; }
.guide-chapter-body ol { margin:18px 0; padding:0; list-style:none; counter-reset:guide-step; display:grid; gap:10px; }
.guide-chapter-body li { counter-increment:guide-step; position:relative; min-height:30px; padding:6px 0 6px 40px; color:#343232; font-size:12px; line-height:1.55; }
.guide-chapter-body li::before { content:counter(guide-step); position:absolute; left:0; top:2px; width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:#fee7e0; color:var(--accent); font-size:10px; font-weight:850; }
.guide-tip { margin-top:16px; padding:14px 16px; border-left:3px solid var(--accent); border-radius:8px 12px 12px 8px; background:#fff8f5; }
.guide-tip strong { display:block; color:var(--accent); font-size:9px; text-transform:uppercase; letter-spacing:.08em; }
.guide-tip p { margin:7px 0 0; color:#624c46; font-size:10px; line-height:1.55; }
.guide-links { display:flex; flex-wrap:wrap; gap:7px; margin-top:16px; }
.guide-no-results { padding:60px 20px; color:var(--muted); text-align:center; }

.preview-modal { width:min(1180px,calc(100vw - 28px)); height:min(860px,calc(100vh - 28px)); max-height:none; overflow:hidden; display:flex; flex-direction:column; }
.preview-toolbar { min-height:56px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:9px 20px; border-bottom:1px solid var(--line); background:white; }
.preview-toolbar label { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:10px; }
.preview-toolbar .select { width:auto; padding:8px 30px 8px 10px; }
.preview-devices { display:flex; gap:5px; padding:4px; border-radius:10px; background:var(--soft); }
.preview-devices .mini-btn { border-color:transparent; background:transparent; }
.preview-devices .mini-btn.active { border-color:var(--line); background:white; color:var(--accent); box-shadow:0 3px 12px rgba(25,24,24,.06); }
.preview-stage { min-height:0; flex:1; overflow:auto; display:grid; place-items:start center; padding:28px; background:#e8ece8; }
.preview-frame { min-height:540px; border:1px solid #d9ded9; border-radius:18px; background:var(--paper); overflow:hidden; box-shadow:0 22px 65px rgba(25,35,30,.13); transition:width .22s ease; }
.preview-frame.desktop { width:min(100%,920px); }
.preview-frame.tablet { width:min(100%,720px); }
.preview-frame.phone { width:min(100%,390px); }
.preview-exam { padding:32px clamp(16px,5vw,62px) 55px; }
.preview-exam .question { margin:20px auto 0; }
.preview-frame.phone .preview-exam { padding:18px 12px 35px; }
.preview-frame.phone .question { padding:24px 18px; }
.preview-frame.phone .question h2 { font-size:24px; }
.preview-frame.phone .option { min-height:52px; padding:11px 12px; }

.analytics-tabs { position:sticky; top:64px; z-index:8; display:flex; gap:4px; margin-bottom:18px; padding:5px; border:1px solid var(--line); border-radius:13px; background:rgba(255,255,255,.92); box-shadow:0 10px 35px rgba(25,24,24,.05); backdrop-filter:blur(12px); overflow:auto; }
.analytics-tabs button { flex:0 0 auto; min-height:39px; padding:8px 14px; border:0; border-radius:9px; background:transparent; color:var(--muted); font:inherit; font-size:10px; font-weight:800; }
.analytics-tabs button:hover { color:var(--ink); background:var(--soft); }
.analytics-tabs button.active { color:white; background:var(--ink); }
.analytics-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.analytics-metrics .stat { min-height:142px; }
.analytics-grid { margin-top:18px; }
.trend-chart { height:260px; display:flex; align-items:flex-end; gap:7px; padding:20px; }
.trend-point { flex:1; min-width:8px; height:100%; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:6px; }
.trend-point > span { width:100%; max-width:35px; min-height:5px; border-radius:6px 6px 2px 2px; background:linear-gradient(180deg,var(--accent),#efb09f); }
.trend-point small { color:var(--muted); font-size:7px; writing-mode:vertical-rl; }
.analytics-test-list,.problem-list,.group-comparison { display:grid; padding:0 18px 18px; }
.analytics-test-list article { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:10px; align-items:center; padding:12px 0; border-top:1px solid var(--line); }
.analytics-test-list article:first-child { border-top:0; }
.analytics-test-list strong,.analytics-test-list small { display:block; }
.analytics-test-list strong { font-size:11px; }
.analytics-test-list small { margin-top:3px; color:var(--muted); font-size:9px; }
.answer-distribution { min-width:180px; display:flex; flex-wrap:wrap; gap:4px; }
.answer-distribution span { max-width:180px; padding:4px 7px; border-radius:999px; background:var(--soft); color:var(--muted); font-size:8px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.problem-list article,.group-comparison article { display:grid; grid-template-columns:minmax(150px,1fr) minmax(90px,.65fr) 42px; gap:12px; align-items:center; padding:13px 0; border-top:1px solid var(--line); }
.problem-list article:first-child,.group-comparison article:first-child { border-top:0; }
.problem-list strong,.problem-list small,.group-comparison strong,.group-comparison small { display:block; }
.problem-list strong,.group-comparison strong { font-size:11px; line-height:1.4; }
.problem-list small,.group-comparison small { margin-top:3px; color:var(--muted); font-size:9px; }
.problem-list b,.group-comparison b { text-align:right; font-size:11px; }
.problem-meter,.comparison-bar { height:7px; border-radius:999px; background:var(--soft); overflow:hidden; }
.problem-meter span,.comparison-bar span { display:block; height:100%; border-radius:inherit; background:#76b693; }
.problem-meter.danger span { background:var(--accent); }
.comparison-bar.accent span { background:var(--brand-2); }
.modal-backdrop:has(.side-panel-modal) { place-items:stretch end; padding:0; }
.side-panel-modal { width:min(840px,100vw); max-height:none; height:100%; border-radius:20px 0 0 20px; display:flex; flex-direction:column; animation:panel-in .2s ease-out; }
.side-panel-modal .modal-body { min-height:0; flex:1; overflow:auto; }
.side-panel-modal .modal-foot { flex:none; }
@keyframes panel-in { from { transform:translateX(35px); opacity:.6; } }

.certificate { max-width:900px; margin:0 auto; background:#fff url("/brand/flower-gray.png") -85px calc(100% + 90px)/270px no-repeat; padding:70px; border:1px solid #ccd7cf; box-shadow:var(--shadow); position:relative; overflow:hidden; text-align:center; }
.certificate::before { content:""; position:absolute; inset:14px; border:1px solid var(--brand); pointer-events:none; }
.certificate::after { content:""; position:absolute; width:250px; height:250px; right:-82px; top:-84px; background:url("/brand/seal-terra.png") center/contain no-repeat; opacity:.18; }
.certificate .academy-brand { justify-content:center; }
.certificate h2 { font-family:var(--display-font); font-size:48px; font-weight:400; margin:32px 0 10px; }
.certificate-name { font-family:var(--display-font); font-size:34px; color:var(--brand); margin:22px 0; }
.certificate-title { font-size:19px; font-weight:800; }
.cert-meta { display:flex; justify-content:center; gap:50px; margin-top:45px; font-size:11px; color:var(--muted); }
.cert-meta strong { display:block; color:var(--ink); font-size:13px; margin-top:4px; }
.cert-verify { margin:32px auto 0; display:flex; align-items:center; justify-content:center; gap:14px; text-align:left; }
.cert-verify img { width:92px; height:92px; background:white; }
.cert-verify span { color:var(--muted); font-size:10px; max-width:150px; line-height:1.5; }
.cert-verify strong { display:block; color:var(--brand); font-size:12px; margin-bottom:3px; }

.verify-shell { position:relative; min-height:100vh; overflow:hidden; background:var(--brand); display:grid; place-items:center; padding:20px; }
.verify-shell::before { content:""; position:absolute; width:620px; height:620px; right:-210px; bottom:-230px; background:url("/brand/flower-white.png") center/contain no-repeat; opacity:.035; }
.verify-card { position:relative; width:min(520px,100%); overflow:hidden; background:var(--paper); border-radius:24px; padding:34px; text-align:center; box-shadow:0 30px 90px rgba(0,0,0,.22); }
.verify-card::before { content:""; position:absolute; width:210px; height:210px; right:-80px; top:-75px; background:url("/brand/seal-gray.png") center/contain no-repeat; opacity:.3; }
.verify-card > * { position:relative; z-index:1; }
.verify-card .academy-brand { justify-content:center; }
.verify-card h1 { font-family:var(--display-font); font-weight:400; font-size:34px; margin:22px 0 9px; }
.verify-card .cert-verify { text-align:center; display:block; }
.verify-card .cert-verify img { width:150px; height:150px; }

#toast-root { position:fixed; right:20px; bottom:20px; z-index:200; display:grid; gap:8px; }
.toast { min-width:280px; max-width:420px; background:var(--ink); color:white; border-radius:12px; padding:13px 16px; box-shadow:var(--shadow); font-size:13px; animation:toast-in .2s ease; }
.toast.error { background:var(--danger); }
@keyframes toast-in { from { opacity:0; transform:translateY(8px); } }

@media (max-width: 1050px) {
  .stats { grid-template-columns:repeat(2,1fr); }
  .test-grid { grid-template-columns:repeat(2,1fr); }
  .grid-2 { grid-template-columns:1fr; }
  .question-filters { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .test-builder-grid { grid-template-columns:250px minmax(420px,1fr); }
  .builder-properties { position:absolute; right:12px; top:80px; bottom:12px; width:300px; z-index:5; box-shadow:var(--shadow); }
  .builder-bank-list { grid-template-columns:1fr; }
  .builder-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .builder-filters .search { grid-column:1/-1; }
  .generator-layout { grid-template-columns:minmax(500px,1fr) 330px; }
  .generator-options { grid-template-columns:1fr 1fr; }
  .analytics-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .guide-layout { grid-template-columns:220px minmax(0,1fr); }
}

@media (max-width: 780px) {
  .auth-shell { grid-template-columns:1fr; }
  .auth-visual { display:none; }
  .auth-panel { min-height:100vh; }
  .app-shell { grid-template-columns:1fr; }
  .sidebar { position:fixed; inset:0 auto 0 0; width:250px; transform:translateX(-100%); transition:.2s; box-shadow:20px 0 50px rgba(0,0,0,.2); }
  .sidebar.open { transform:translateX(0); }
  .mobile-menu { display:grid; }
  .topbar { padding:0 16px; }
  .topbar h1 { font-size:20px; }
  .content { padding:23px 16px 50px; }
  .page-head { align-items:flex-start; flex-direction:column; }
  .page-head h2 { font-size:31px; }
  .test-grid { grid-template-columns:1fr; }
  .hero { grid-template-columns:1fr; }
  .hero-side { grid-template-columns:1fr 1fr; }
  .question-card { grid-template-columns:auto 1fr; }
  .question-card .dots { display:none; }
  .taxonomy-grid { grid-template-columns:1fr; }
  .question-toolbar { flex-wrap:wrap; }
  .question-toolbar .search { flex-basis:100%; max-width:none; }
  .results-toolbar { grid-template-columns:1fr 1fr; }
  .results-toolbar .search { grid-column:1/-1; }
  .result-detail-summary { grid-template-columns:1fr 1fr; }
  .filter-menu-panel { position:fixed; left:16px; right:16px; top:auto; width:auto; max-height:52vh; }
  .invite-row { grid-template-columns:1fr auto; }
  .question-builder { grid-template-columns:1fr; }
  .question-type-panel,.question-properties { border:0; border-bottom:1px solid var(--line); max-height:210px; }
  .question-type-panel { display:flex; overflow:auto; gap:12px; }
  .question-type-panel > strong { flex:none; }
  .question-type-panel .type-search { flex:0 0 150px; margin:0; align-self:flex-start; }
  .type-group { min-width:155px; margin:0; }
  .question-properties { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
  .test-builder-grid { grid-template-columns:1fr; }
  .builder-structure { display:none; }
  .builder-properties { display:none; }
  .builder-actions .btn-soft { display:none; }
  .builder-title-input { min-width:0; width:160px; font-size:17px; }
  .generator-modal { height:calc(100vh - 12px); width:calc(100vw - 12px); }
  .generator-layout { grid-template-columns:1fr; overflow:auto; }
  .generator-settings { overflow:visible; border-right:0; }
  .generator-preview { min-height:380px; }
  .exam-layout { grid-template-columns:1fr; }
  .exam-question-nav { border:0; border-bottom:1px solid var(--line); padding:12px; }
  .exam-question-nav > div { grid-template-columns:repeat(10,1fr); }
  .keyboard-hint { display:none; }
  .logic-rule-row { grid-template-columns:28px minmax(0,1fr) 70px 40px; }
  .logic-rule-row [data-logic-when],.logic-rule-row [data-logic-target] { grid-column:2/5; }
  .logic-rule-row .logic-points { grid-column:2/4; }
  .logic-rule-row [data-delete-logic] { grid-column:4; grid-row:1; }
  .logic-flow { grid-template-columns:1fr; }
  .logic-edge { transform:none; }
  .preview-modal { width:calc(100vw - 12px); height:calc(100vh - 12px); }
  .preview-toolbar { align-items:flex-start; flex-wrap:wrap; }
  .preview-stage { padding:12px; }
  .preview-frame { min-height:480px; }
  .side-panel-modal { border-radius:0; }
  .guide-picker { grid-template-columns:1fr; }
  .guide-hero { align-items:stretch; flex-direction:column; }
  .guide-tools { width:100%; flex:auto; }
  .guide-layout { grid-template-columns:1fr; }
  .guide-toc { border-right:0; border-bottom:1px solid var(--line); }
  .guide-toc nav { position:static; display:flex; overflow:auto; }
  .guide-toc button { flex:0 0 180px; }
  .guide-toc > small { display:none; }
  .certificate { padding:45px 28px; }
  .cert-meta { gap:18px; flex-wrap:wrap; }
}

@media (max-width: 520px) {
  .stats { grid-template-columns:1fr 1fr; gap:9px; }
  .stat { min-height:120px; padding:15px; }
  .stat-value { font-size:30px; margin-top:12px; }
  .stat-note { display:none; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .question-filters { grid-template-columns:1fr 1fr; }
  .question-properties .choice-tiles { grid-template-columns:1fr; }
  .question-properties { grid-template-columns:1fr; }
  .question-canvas { padding:12px; }
  .builder-top { height:auto; align-items:flex-start; }
  .builder-title,.builder-actions { flex-wrap:wrap; }
  .builder-bank-list { padding:8px; }
  .generator-filter-grid,.generator-toggles { grid-template-columns:1fr; }
  .generator-group .choice-tiles { grid-template-columns:1fr; }
  .generator-save-rule { grid-template-columns:1fr; }
  .actions { width:100%; }
  .actions .btn { flex:1; }
  .hero-side { grid-template-columns:1fr; }
  .exam-top .brand span:last-child { display:none; }
  .question { padding:23px 18px; }
  .exam-top { height:60px; padding:0 12px; }
  .exam-top-status > span { display:none; }
  .exam-wrap { padding:26px 12px 110px; }
  .exam-nav { position:fixed; left:0; right:0; bottom:0; z-index:7; padding:10px 12px calc(10px + env(safe-area-inset-bottom)); margin:0; background:rgba(255,255,255,.96); border-top:1px solid var(--line); backdrop-filter:blur(12px); }
  .exam-review-row { grid-template-columns:30px minmax(0,1fr); }
  .exam-review-row small { grid-column:2; }
  .exam-review-actions { position:sticky; bottom:0; padding:10px 0; background:var(--paper); }
  .answer-comparison { grid-template-columns:1fr; }
  .admin-review-item,.learner-review-item { grid-template-columns:28px minmax(0,1fr); padding:12px; }
  .review-title-row,.review-window-head { align-items:flex-start; }
  .exam-nav .btn { flex:1; }
  .analytics-metrics { grid-template-columns:1fr 1fr; gap:8px; }
  .problem-list article,.group-comparison article { grid-template-columns:minmax(0,1fr) 42px; }
  .problem-meter,.comparison-bar { grid-column:1/-1; grid-row:2; }
  .preview-toolbar label { order:3; width:100%; justify-content:space-between; }
  .guide-hero { padding:22px 18px; }
  .guide-tools { display:grid; }
  .guide-tools .search { min-width:0; }
  .guide-content { padding:10px; }
  .guide-chapter > summary { grid-template-columns:32px minmax(0,1fr) 18px; padding:13px; }
  .guide-chapter-body { padding:2px 14px 16px; }
  .result-dashboard { padding:18px 12px 60px; }
  .result-hero-card { align-items:flex-start; flex-direction:column; padding:24px 20px; }
  .score-ring { width:142px; height:142px; flex-basis:142px; align-self:center; }
  .score-ring strong { font-size:34px; }
  .result-metrics { grid-template-columns:1fr 1fr; }
  .result-metrics article:last-child { grid-column:1/-1; }
  .result-columns { grid-template-columns:1fr; }
  .topic-result { grid-template-columns:minmax(0,1fr) 42px; }
  .topic-meter { grid-column:1/-1; grid-row:2; }
  .result-review-timer { font-size:9px; }
  .review-layout { grid-template-columns:1fr; padding:12px 12px 70px; }
  .review-filters { position:static; display:flex; overflow:auto; padding:10px; }
  .review-filters > .eyebrow,.review-filters > h2 { display:none; }
  .review-filter { flex:0 0 auto; }
  .learner-review-card { padding:22px 16px; }
  .review-card-actions { align-items:stretch; flex-direction:column; }
  .review-complete { margin:24px auto; padding:32px 20px; }
}

@media print {
  .sidebar,.topbar,.page-head,.no-print,.guide-picker,.guide-tools,.guide-toc { display:none!important; }
  .app-shell,.main { display:block; }
  .content { padding:0; }
  .guide-hero { border-radius:0; color:black; background:white; }
  .guide-hero p { color:#555; }
  .guide-layout { display:block; border:0; }
  .guide-content { padding:0; }
  .guide-chapter { break-inside:avoid; }
  .guide-chapter:not([open]) .guide-chapter-body { display:block; }
  .certificate { box-shadow:none; border:0; max-width:none; min-height:90vh; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}
