:root{--c-bg: #ffffff;--c-surface: #ffffff;--c-surface-2: #f4f4f5;--c-text: #101014;--c-hint: #78787f;--c-accent: #2563eb;--c-accent-text: #ffffff;--c-link: #2563eb;--c-success: #16a34a;--c-success-soft: rgba(22, 163, 74, .12);--c-error: #dc2626;--c-error-soft: rgba(220, 38, 38, .12);--c-warning: #b45309;--c-border: rgba(120, 120, 130, .22);--c-border-strong: rgba(120, 120, 130, .4);--c-overlay: rgba(10, 10, 14, .44);--bg: var(--tg-theme-bg-color, var(--c-bg));--surface: var(--tg-theme-section-bg-color, var(--tg-theme-bg-color, var(--c-surface)));--surface-2: var(--tg-theme-secondary-bg-color, var(--c-surface-2));--text: var(--tg-theme-text-color, var(--c-text));--hint: var(--tg-theme-hint-color, var(--c-hint));--accent: var(--tg-theme-button-color, var(--c-accent));--accent-text: var(--tg-theme-button-text-color, var(--c-accent-text));--link: var(--tg-theme-link-color, var(--c-link));--success: var(--c-success);--success-soft: var(--c-success-soft);--error: var(--tg-theme-destructive-text-color, var(--c-error));--error-soft: var(--c-error-soft);--border: var(--c-border);--border-strong: var(--c-border-strong);--overlay: var(--c-overlay);--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--fs-display: 26px;--fs-title: 20px;--fs-subtitle: 17px;--fs-body: 15px;--fs-small: 13px;--fs-micro: 11px;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-xl: 20px;--tap: 44px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--shadow-1: 0 1px 2px rgba(16, 16, 20, .05);--shadow-2: 0 2px 10px rgba(16, 16, 20, .07);--dur-fast: .15s;--dur: .22s;--dur-slow: .3s;--ease: cubic-bezier(.16, 1, .3, 1);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}@media(prefers-color-scheme:dark){:root{--c-bg: #17181c;--c-surface: #1f2025;--c-surface-2: #26272d;--c-text: #f2f2f5;--c-hint: #9a9aa4;--c-accent: #4d8bff;--c-accent-text: #ffffff;--c-link: #6ea8ff;--c-success: #34c759;--c-success-soft: rgba(52, 199, 89, .16);--c-error: #ff6b6b;--c-error-soft: rgba(255, 107, 107, .16);--c-border: rgba(160, 160, 175, .2);--c-border-strong: rgba(160, 160, 175, .34);--shadow-1: 0 1px 2px rgba(0, 0, 0, .3);--shadow-2: 0 2px 10px rgba(0, 0, 0, .35)}}html[data-theme=dark]{--c-bg: #17181c;--c-surface: #1f2025;--c-surface-2: #26272d;--c-text: #f2f2f5;--c-hint: #9a9aa4;--c-accent: #4d8bff;--c-link: #6ea8ff;--c-success: #34c759;--c-success-soft: rgba(52, 199, 89, .16);--c-error: #ff6b6b;--c-error-soft: rgba(255, 107, 107, .16);--c-border: rgba(160, 160, 175, .2);--c-border-strong: rgba(160, 160, 175, .34);--shadow-1: 0 1px 2px rgba(0, 0, 0, .3);--shadow-2: 0 2px 10px rgba(0, 0, 0, .35)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--font);font-size:var(--fs-body);line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}#root{min-height:100%;display:flex;flex-direction:column}h1,h2,h3,h4,p{margin:0}h1{font-size:var(--fs-display);line-height:1.2;font-weight:700;letter-spacing:-.02em}h2{font-size:var(--fs-title);line-height:1.28;font-weight:650;letter-spacing:-.01em}h3{font-size:var(--fs-subtitle);line-height:1.35;font-weight:600}a{color:var(--link);text-decoration:none}button{font-family:inherit;font-size:inherit;color:inherit}img{max-width:100%;display:block}input,textarea,select{font-family:inherit;font-size:16px}.app{flex:1;display:flex;flex-direction:column;min-height:100%;padding-left:var(--safe-left);padding-right:var(--safe-right)}.container{width:100%;max-width:640px;margin:0 auto;padding:0 var(--space-4)}.screen{flex:1;display:flex;flex-direction:column;padding-top:calc(var(--space-5) + var(--safe-top));padding-bottom:calc(var(--space-8) + var(--safe-bottom))}.stack{display:flex;flex-direction:column}.stack-1{gap:var(--space-1)}.stack-2{gap:var(--space-2)}.stack-3{gap:var(--space-3)}.stack-4{gap:var(--space-4)}.stack-5{gap:var(--space-5)}.stack-6{gap:var(--space-6)}.row{display:flex;align-items:center;gap:var(--space-2)}.row-between{justify-content:space-between}.row-wrap{flex-wrap:wrap}.spacer{flex:1}.hint{color:var(--hint);font-size:var(--fs-small)}.muted{color:var(--hint)}.center{text-align:center}.strong{font-weight:600}.mono{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:var(--fs-small)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-success{color:var(--success)}.text-error{color:var(--error)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap);padding:0 var(--space-5);border:1px solid transparent;border-radius:var(--radius);background:var(--accent);color:var(--accent-text);font-size:var(--fs-body);font-weight:600;cursor:pointer;transition:transform var(--dur-fast) var(--ease),opacity var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease);-webkit-user-select:none;user-select:none}.btn:active:not(:disabled){transform:scale(.975)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-block{width:100%}.btn-secondary{background:var(--surface-2);color:var(--text);border-color:var(--border)}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn-quiet{background:transparent;color:var(--hint);border-color:transparent;font-weight:500}.btn-danger{background:transparent;color:var(--error);border-color:var(--border)}.btn-sm{min-height:36px;padding:0 var(--space-3);font-size:var(--fs-small);border-radius:var(--radius-sm)}.btn-icon{min-width:var(--tap);padding:0 var(--space-2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-1)}.card-flat{box-shadow:none}.section-title{font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--hint);font-weight:600;padding:0 var(--space-1)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.label{font-size:var(--fs-small);font-weight:600;color:var(--text)}.input,.textarea,.select{width:100%;min-height:var(--tap);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);outline:none;transition:border-color var(--dur-fast) var(--ease)}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent)}.textarea{min-height:110px;resize:vertical;line-height:1.5}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:var(--space-8);background-image:none}.field-error{color:var(--error);font-size:var(--fs-small)}.switch{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:var(--tap);cursor:pointer}.switch-track{position:relative;flex:0 0 auto;width:46px;height:28px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);transition:background-color var(--dur) var(--ease)}.switch-track[data-on=true]{background:var(--accent);border-color:transparent}.switch-thumb{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:var(--shadow-1);transition:transform var(--dur) var(--ease)}.switch-track[data-on=true] .switch-thumb{transform:translate(18px)}.segmented{display:flex;gap:var(--space-1);padding:var(--space-1);background:var(--surface-2);border-radius:var(--radius);overflow-x:auto;scrollbar-width:none}.segmented::-webkit-scrollbar{display:none}.segment{flex:1 0 auto;min-height:36px;padding:0 var(--space-3);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--hint);font-size:var(--fs-small);font-weight:600;cursor:pointer;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.segment[data-active=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:999px;font-size:var(--fs-micro);font-weight:600;letter-spacing:.02em;background:var(--surface-2);color:var(--hint);border:1px solid var(--border)}.badge-success{background:var(--success-soft);color:var(--success);border-color:transparent}.badge-error{background:var(--error-soft);color:var(--error);border-color:transparent}.badge-accent{background:var(--surface-2);color:var(--accent);border-color:transparent}.progress{height:4px;width:100%;border-radius:999px;background:var(--surface-2);overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:999px;transition:width var(--dur-slow) var(--ease)}.skeleton{background:var(--surface-2);border-radius:var(--radius);position:relative;overflow:hidden}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--border);opacity:0;animation:skeleton-pulse 1.4s var(--ease) infinite}@keyframes skeleton-pulse{0%,to{opacity:0}50%{opacity:.5}}.toasts{position:fixed;left:0;right:0;bottom:calc(var(--space-4) + var(--safe-bottom));display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:0 var(--space-4);z-index:60;pointer-events:none}.toast{max-width:520px;width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-2);font-size:var(--fs-small);color:var(--text)}.toast[data-kind=error]{border-color:var(--error);color:var(--error)}.toast[data-kind=success]{border-color:var(--success);color:var(--success)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:flex-end;justify-content:center;z-index:70;padding:var(--space-4);padding-bottom:calc(var(--space-4) + var(--safe-bottom))}.modal{width:100%;max-width:520px;background:var(--bg);border-radius:var(--radius-xl);border:1px solid var(--border);padding:var(--space-5);box-shadow:var(--shadow-2)}.divider{height:1px;background:var(--border);border:0;margin:0}.empty{padding:var(--space-8) var(--space-4);text-align:center;color:var(--hint)}.list{display:flex;flex-direction:column;gap:var(--space-2)}.link-button{background:none;border:none;padding:0;color:var(--link);font-weight:600;cursor:pointer}.start{gap:var(--space-6);align-items:stretch}.start-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-4);padding-top:var(--space-6)}.start-cover{width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--radius-lg);border:1px solid var(--border)}.start-meta{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center}.start-desc{color:var(--hint);white-space:pre-wrap;text-align:center}.quiz-topbar{position:sticky;top:0;z-index:20;background:var(--bg);padding-top:calc(var(--space-3) + var(--safe-top));padding-bottom:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.quiz-counter{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-small);color:var(--hint);font-variant-numeric:tabular-nums}.quiz-timer{font-variant-numeric:tabular-nums;font-weight:600}.quiz-timer[data-danger=true]{color:var(--error)}.question-stage{position:relative;flex:1;display:flex;flex-direction:column}.question-title{font-size:var(--fs-title);font-weight:650;line-height:1.3;letter-spacing:-.01em;white-space:pre-wrap}.question-image{width:100%;border-radius:var(--radius-lg);border:1px solid var(--border);object-fit:cover;max-height:260px}.options{display:flex;flex-direction:column;gap:var(--space-2)}.option{display:flex;align-items:flex-start;gap:var(--space-3);width:100%;min-height:var(--tap);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.option:active:not(:disabled){transform:scale(.99)}.option[data-selected=true]{border-color:var(--accent);background:var(--surface-2)}.option[data-state=correct]{border-color:var(--success);background:var(--success-soft)}.option[data-state=wrong]{border-color:var(--error);background:var(--error-soft)}.option:disabled{cursor:default}.option-marker{flex:0 0 auto;width:22px;height:22px;margin-top:1px;border-radius:50%;border:1.5px solid var(--border-strong);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:transparent;transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.option-marker[data-shape=square]{border-radius:6px}.option[data-selected=true] .option-marker{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.option[data-state=correct] .option-marker{border-color:var(--success);background:var(--success);color:#fff}.option[data-state=wrong] .option-marker{border-color:var(--error);background:var(--error);color:#fff}.option-text{flex:1;line-height:1.45}.explanation{border-radius:var(--radius);padding:var(--space-3) var(--space-4);background:var(--surface-2);border:1px solid var(--border);font-size:var(--fs-small);line-height:1.5;white-space:pre-wrap}.explanation[data-kind=correct]{background:var(--success-soft);border-color:transparent}.explanation[data-kind=wrong]{background:var(--error-soft);border-color:transparent}.result-head{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center;padding:var(--space-6) 0 var(--space-2)}.score-ring{width:132px;height:132px;display:grid;place-items:center;position:relative}.score-ring svg{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(-90deg)}.score-value{font-size:32px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.stat-tile{padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:center}.stat-tile b{display:block;font-size:var(--fs-subtitle);font-variant-numeric:tabular-nums}.stat-tile span{font-size:var(--fs-micro);color:var(--hint)}.review-item{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);background:var(--surface)}.review-item[data-correct=false]{border-color:var(--error)}.review-line{font-size:var(--fs-small);line-height:1.5}.review-line b{font-weight:600}.actions-sticky{position:sticky;bottom:0;background:var(--bg);padding:var(--space-3) 0 calc(var(--space-3) + var(--safe-bottom));display:flex;flex-direction:column;gap:var(--space-2)}.actions-sticky:empty{display:none}.admin-header{position:sticky;top:0;z-index:30;background:var(--bg);border-bottom:1px solid var(--border);padding-top:var(--safe-top)}.admin-header-inner{display:flex;align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-2) var(--space-4)}.admin-title{display:flex;flex-direction:column;min-width:0}.admin-title b{font-size:var(--fs-subtitle);font-weight:650;letter-spacing:-.01em}.admin-title span{font-size:var(--fs-micro);color:var(--hint)}.admin-tabs{padding:0 var(--space-4) var(--space-3)}.admin-body{flex:1;padding-bottom:calc(var(--space-10) + var(--safe-bottom))}.quiz-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left;width:100%;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.quiz-row:active{transform:scale(.995)}.quiz-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.quiz-row-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.builder-question{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.builder-question[data-dragging=true]{box-shadow:var(--shadow-2);border-color:var(--accent)}.builder-question-head{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface)}.drag-handle{width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);display:grid;place-items:center;cursor:grab;touch-action:none;color:var(--hint);flex:0 0 auto}.drag-handle:active{cursor:grabbing}.builder-question-body{padding:0 var(--space-3) var(--space-3);display:flex;flex-direction:column;gap:var(--space-3);border-top:1px solid var(--border);padding-top:var(--space-3)}.builder-option{display:flex;align-items:center;gap:var(--space-2)}.correct-toggle{flex:0 0 auto;width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--hint);display:grid;place-items:center;cursor:pointer;font-weight:700;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.correct-toggle[data-on=true]{background:var(--success);border-color:var(--success);color:#fff}.icon-btn{flex:0 0 auto;width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--hint);display:grid;place-items:center;cursor:pointer}.icon-btn:active{transform:scale(.96)}.image-picker{display:flex;align-items:center;gap:var(--space-3)}.image-preview{width:72px;height:72px;border-radius:var(--radius);border:1px solid var(--border);object-fit:cover;background:var(--surface-2);flex:0 0 auto}.image-placeholder{width:72px;height:72px;border-radius:var(--radius);border:1px dashed var(--border-strong);display:grid;place-items:center;color:var(--hint);font-size:var(--fs-micro);text-align:center;flex:0 0 auto}.tg-preview{background:var(--surface-2);border-radius:var(--radius-lg);padding:var(--space-4);border:1px solid var(--border)}.tg-bubble{background:var(--surface);border-radius:14px;border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow-1);max-width:460px}.tg-bubble-photo{width:100%;max-height:260px;object-fit:cover;display:block}.tg-bubble-text{padding:var(--space-3) var(--space-4);font-size:var(--fs-body);line-height:1.45;white-space:pre-wrap;word-break:break-word}.tg-bubble-text a{color:var(--link)}.tg-bubble-text code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface-2);padding:1px 4px;border-radius:4px;font-size:.92em}.tg-bubble-text pre{background:var(--surface-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);overflow-x:auto;margin:var(--space-2) 0}.tg-bubble-text blockquote{margin:var(--space-2) 0;padding-left:var(--space-3);border-left:2px solid var(--accent);color:var(--hint)}.tg-bubble-text .tg-spoiler,.tg-bubble-text tg-spoiler{background:var(--border-strong);color:transparent;border-radius:3px}.tg-bubble-button{border-top:1px solid var(--border);padding:var(--space-3);text-align:center;color:var(--link);font-weight:600;font-size:var(--fs-small)}.tg-toolbar{display:flex;flex-wrap:wrap;gap:var(--space-1)}.tg-toolbar button{min-height:32px;padding:0 var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:var(--fs-small);cursor:pointer}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}@media(min-width:520px){.stat-grid{grid-template-columns:repeat(4,1fr)}}.bar-row{display:flex;flex-direction:column;gap:4px}.bar-row-head{display:flex;justify-content:space-between;gap:var(--space-2);font-size:var(--fs-small)}.bar-track{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.bar-fill{height:100%;border-radius:999px;background:var(--accent);transition:width var(--dur-slow) var(--ease)}.bar-fill[data-correct=true]{background:var(--success)}.table-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}table.data{width:100%;border-collapse:collapse;font-size:var(--fs-small);min-width:520px}table.data th,table.data td{padding:var(--space-2) var(--space-3);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}table.data th{color:var(--hint);font-weight:600;font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.06em}table.data tr:last-child td{border-bottom:none}.fab-row{position:sticky;bottom:0;display:flex;gap:var(--space-2);padding:var(--space-3) 0 calc(var(--space-3) + var(--safe-bottom));background:var(--bg)}
