:root{--bg: #FFFBF5;--panel: #FFFFFF;--border: #E5DDD0;--text: #3D4A3F;--muted: #8B9A8E;--accent: #7BAE8A;--good: #7BAE8A;--warn: #E0B575;--tap: 40px;--bg-page: #F1EFE8;--bg-card: #FFFFFF;--bg-card-soft: #F1EFE8;--border-subtle: rgba(0, 0, 0, .06);--text-primary: #1A1A1A;--text-secondary: #5F5E5A;--blue-50: #E6F1FB;--blue-100: #B5D4F4;--blue-600: #185FA5;--blue-800: #0C447C;--blue-900: #042C53;--green-50: #EAF3DE;--green-600: #639922;--green-800: #173404;--amber-50: #FAEEDA;--amber-600: #BA7517;--amber-700: #854F0B;--amber-900: #412402;--red-50: #FCEBEB;--red-600: #A32D2D;--red-800: #791F1F;--red-900: #501313;--gray-300: #D3D1C7;--gray-400: #B4B2A9;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 999px;--cozy-page-bg: #FBF2DE;--cozy-card-white: #FFFFFF;--cozy-card-soft: #F5E5C8;--cozy-border: #D4B59E;--cozy-pink-border: #C99CB3;--cozy-sage-border: #C8D4B8;--cozy-text-primary: #4A3826;--cozy-text-secondary: #8B6A4A;--cozy-text-tertiary: #A98561;--cozy-text-on-dark: #FBF2DE;--cozy-brown-50: #FBF2DE;--cozy-brown-100: #F5E5C8;--cozy-brown-300: #D4B59E;--cozy-brown-500: #A98561;--cozy-brown-700: #6B4F35;--cozy-brown-900: #4A3826;--cozy-pink-50: #FFF5F8;--cozy-pink-100: #FFE5EC;--cozy-pink-300: #C99CB3;--cozy-pink-text: #4A2C3A;--cozy-pink-text-soft: #8B5A6F;--cozy-sage-50: #F0F8E8;--cozy-sage-100: #EAF3DE;--cozy-sage-300: #C8D4B8;--cozy-sage-500: #B5C99A;--cozy-sage-700: #5A6B4A;--cozy-sage-text: #2C3825;--cozy-sage-text-soft: #6B7A5A;--cozy-diff-a-bg: #B5C99A;--cozy-diff-a-text: #2C3825;--cozy-diff-b-bg: #FAC775;--cozy-diff-b-text: #412402;--cozy-diff-c-bg: #F7C1C1;--cozy-diff-c-text: #501313;--subject-english: #C99CB3;--subject-vocab: #B5C99A;--subject-math: #9CB5C9;--subject-reading: #D4B59E;--font-cozy-serif: Georgia, "Times New Roman", "Noto Serif", Cambria, serif;--cozy-radius-sm: 2px;--cozy-radius-md: 6px;--cozy-radius-pill: 999px}.cozy-theme{font-family:var(--font-cozy-serif);background:var(--cozy-page-bg);color:var(--cozy-text-primary)}.catalogue-theme{--catalogue-rose: #D98A8A;--catalogue-rose-soft: #FCE8E8;--catalogue-sage-soft: #E8F5E9;--catalogue-paper-rule: rgba(123, 174, 138, .12);--catalogue-shadow: 0 2px 12px rgba(123, 174, 138, .14);--catalogue-tape-rose: rgba(217, 138, 138, .55);--catalogue-tape-sage: rgba(123, 174, 138, .45);background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,sans-serif}.catalogue-theme h1,.catalogue-theme h2,.catalogue-theme h3,.catalogue-theme h4{font-family:Be Vietnam Pro,Inter,Helvetica Neue,sans-serif;font-weight:700;color:var(--text);letter-spacing:0;text-transform:none}.catalogue-theme h1{font-size:30px;line-height:1.1;margin-bottom:6px}.catalogue-theme h2{font-size:22px;color:var(--text)}.catalogue-theme h3{font-size:20px}.catalogue-theme .main{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(2.4em - 1px),var(--catalogue-paper-rule) 2.4em);background-size:100% 2.4em;background-position:0 28px}.catalogue-theme .card,.catalogue-theme .exam-block,.catalogue-theme .detail-card,.catalogue-theme .mode-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--catalogue-shadow);position:relative;overflow:visible}.catalogue-theme .exam-block:before,.catalogue-theme>.main>.card:not(.error-banner):before{content:"";position:absolute;top:-8px;left:28px;width:64px;height:16px;background:var(--catalogue-tape-rose);border-radius:1px;transform:rotate(-3deg);box-shadow:0 1px 3px #00000014;pointer-events:none}.catalogue-theme .exam-block:nth-child(2n):before{background:var(--catalogue-tape-sage);transform:rotate(2deg);left:auto;right:36px}.catalogue-theme button{border-radius:999px;font-family:Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.01em;box-shadow:0 1px #0000000a}.catalogue-theme button.ghost,.catalogue-theme button[disabled],.catalogue-theme .start-btn.icon{background:var(--catalogue-sage-soft);color:var(--accent);border:1px solid var(--accent)}.catalogue-theme .breadcrumbs{font-style:italic;color:var(--muted)}.catalogue-theme .error-banner{background:var(--catalogue-rose-soft);border-color:var(--catalogue-rose);color:#7a2a2a}.cozy-theme h1,.cozy-theme h2,.cozy-theme h3{font-family:var(--font-cozy-serif);font-style:italic;font-weight:500;margin:0;color:var(--cozy-text-primary)}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--text);font:15px/1.4 ui-sans-serif,system-ui,sans-serif;-webkit-text-size-adjust:100%}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{background:var(--accent);color:#fff;border:0;padding:8px 14px;border-radius:6px;cursor:pointer;font:inherit;font-weight:600;min-height:var(--tap)}button.ghost{background:transparent;color:var(--accent);border:1px solid var(--border)}button:disabled{opacity:.5;cursor:not-allowed}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]){background:var(--panel);border:1px solid var(--border);color:var(--text);padding:10px 12px;border-radius:6px;font:inherit;min-height:var(--tap);width:100%}.page{display:flex;flex-direction:column;min-height:100vh}.topbar{display:flex;align-items:center;gap:12px;padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top,0));padding-left:max(16px,env(safe-area-inset-left,0));padding-right:max(16px,env(safe-area-inset-right,0));min-height:52px;background:var(--panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}.topbar .brand{font-weight:700;font-size:15px;letter-spacing:.04em}.topbar .spacer{flex:1}.topbar .recent-slot{font-size:14px}.main{padding:14px 16px;display:flex;flex-direction:column;gap:12px;flex:1;min-height:0}.empty{color:var(--muted);padding:20px;text-align:center}h1{font-size:18px;margin:0 0 4px;letter-spacing:.02em}h2{font-size:13px;color:var(--muted);margin:14px 0 6px;text-transform:uppercase;letter-spacing:.06em}.card-list{display:flex;flex-direction:column;gap:6px}.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.card:hover{border-color:var(--accent)}.card .info{flex:1;min-width:0}.card .info .title{font-weight:600;color:var(--text)}.card .info .exam,.card .info .meta{color:var(--muted);font-size:12px;margin-top:2px}.breadcrumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:13px;padding:4px 0 0}.breadcrumbs .sep{color:var(--muted);opacity:.6}.breadcrumbs a{color:var(--muted)}.breadcrumbs a:hover{color:var(--accent)}.breadcrumbs .current{color:var(--text);font-weight:600}.actions{display:flex;gap:8px;flex-wrap:wrap}.session-page{display:flex;flex-direction:column;min-height:100vh}.session-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}.session-bar .title{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-bar .lifecycle{color:var(--muted);font-size:12px}.session-bar .lifecycle.ok{color:var(--good)}.session-bar .lifecycle.err{color:#ff7373}.session-frame{flex:1;border:0;background:#fff;min-height:0;width:100%}.login{max-width:360px;margin:40px auto;padding:20px;background:var(--panel);border:1px solid var(--border);border-radius:10px}.login form{display:flex;flex-direction:column;gap:10px}.toast{position:fixed;left:50%;bottom:16px;transform:translate(-50%);background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-size:13px;box-shadow:0 6px 24px #00000014;max-width:calc(100vw - 32px)}.error-banner{background:#fee2e2;border:1px solid #fecaca;color:#991b1b;padding:10px 14px;border-radius:6px}.review-question{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-bottom:10px}.review-question .stem{margin-bottom:8px}.review-question .option{padding:6px 8px;border-radius:4px}.review-question .option.correct{background:#dcfce7;color:#166534}.review-question .option.chosen-wrong{background:#fee2e2;color:#991b1b}.review-question .rationale{color:var(--muted);font-size:13px;margin-top:6px}@media (min-width: 768px){html,body{font-size:14px}.main{padding:16px;gap:12px;max-width:900px;width:100%;align-self:center}.login{margin:80px auto}.toast{left:auto;right:16px;transform:none}}
