@font-face{font-family:Quicksand;src:url(/fonts/quicksand-latin.woff2) format("woff2");font-weight:400 700;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin.woff2) format("woff2");font-weight:500;font-display:swap}:root{--brand-coral: #E15A53;--brand-cyan: #17ABC4;--bg: #F4F7F7;--card: #FFFFFF;--surface-alt: #EBF1F1;--text: #0B2C2B;--muted: #5B7573;--border: #DCE6E5;--primary: #0F6B69;--primary-dark: #0B4F4E;--primary-light: rgba(15, 107, 105, .08);--on-primary: #FFFFFF;--cyan: #1596AE;--accent: #2E8B57;--accent-bg: rgba(46, 139, 87, .1);--danger: #D14A43;--danger-bg: rgba(209, 74, 67, .08);--warn: #E15A53;--warn-bg: rgba(225, 90, 83, .1)}:root[data-theme=dark]{--bg: #082726;--card: #0E3B3A;--surface-alt: #123F3E;--text: #EAF5F4;--muted: #93BCB9;--border: #1D5250;--primary: #3FC7BE;--primary-dark: #6ADCD3;--primary-light: rgba(63, 199, 190, .12);--on-primary: #082726;--cyan: #4FD1DE;--accent: #6FCF97;--accent-bg: rgba(111, 207, 151, .14);--danger: #FF8B84;--danger-bg: rgba(255, 139, 132, .12);--warn: #FF8B84;--warn-bg: rgba(255, 139, 132, .12)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #082726;--card: #0E3B3A;--surface-alt: #123F3E;--text: #EAF5F4;--muted: #93BCB9;--border: #1D5250;--primary: #3FC7BE;--primary-dark: #6ADCD3;--primary-light: rgba(63, 199, 190, .12);--on-primary: #082726;--cyan: #4FD1DE;--accent: #6FCF97;--accent-bg: rgba(111, 207, 151, .14);--danger: #FF8B84;--danger-bg: rgba(255, 139, 132, .12);--warn: #FF8B84;--warn-bg: rgba(255, 139, 132, .12)}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Quicksand,-apple-system,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;transition:background .25s,color .25s}button{font-family:inherit}::selection{background:var(--cyan);color:#fff}.layout{display:flex;min-height:100vh}.main-col{flex:1;min-width:0;display:flex;flex-direction:column}.content{flex:1;padding:28px 32px 100px;max-width:880px;width:100%;margin:0 auto}.sidebar{width:264px;flex:none;border-right:1px solid var(--border);padding:22px 18px;display:flex;flex-direction:column;gap:16px;position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--card)}.brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:700;letter-spacing:-.01em}.brand .nl{color:var(--brand-coral)}.logo-pill{position:relative;width:44px;height:24px;border-radius:12px;overflow:hidden;display:flex;flex:none}.logo-pill .half-l{width:50%;height:100%;background:var(--brand-coral)}.logo-pill .half-r{width:50%;height:100%;background:var(--brand-cyan)}.logo-pill:before,.logo-pill:after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2.5px;background:#fff;border-radius:2px}.logo-pill:before{transform:translate(-50%,-50%) rotate(45deg)}.logo-pill:after{transform:translate(-50%,-50%) rotate(-45deg)}.streak{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);font-weight:600}.streak strong{color:var(--text)}.theme-btn{border:1.5px solid var(--border);background:transparent;color:var(--muted);border-radius:20px;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer;align-self:flex-start}.theme-btn:hover{color:var(--text);border-color:var(--primary)}.auth-area{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-alt)}.auth-hint{margin:0;font-size:11.5px;color:var(--muted);font-weight:500;line-height:1.45}.auth-error{margin:0;font-size:11.5px;color:var(--danger);font-weight:600}.auth-user{display:flex;flex-direction:column}.auth-name{font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-sub{font-size:11.5px;color:var(--accent);font-weight:600}.btn-google{border:1.5px solid var(--primary);background:transparent;color:var(--primary);border-radius:9px;padding:10px 14px;font-size:13.5px;font-weight:700;cursor:pointer}.btn-google:hover{background:var(--primary-light)}.group-section{display:flex;flex-direction:column;gap:8px;flex:1;min-height:120px}.section-head{display:flex;justify-content:space-between;align-items:center}.section-title{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700}.section-actions{display:flex;gap:6px}.link-btn{border:none;background:transparent;color:var(--primary);font-size:12px;font-weight:700;cursor:pointer;padding:2px 4px}.link-btn.muted{color:var(--muted)}.group-list{overflow-y:auto;display:flex;flex-direction:column;gap:6px;flex:1;min-height:0}.group-chip{display:flex;align-items:flex-start;gap:8px;border:1.5px solid var(--border);border-radius:10px;padding:9px 10px;cursor:pointer;background:transparent}.group-chip:hover{border-color:var(--primary)}.group-chip.checked{border-color:var(--primary);background:var(--primary-light)}.group-chip input{margin-top:2px;accent-color:var(--primary);width:16px;height:16px}.group-text{display:flex;flex-direction:column;gap:1px;min-width:0}.group-name{font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-count{font-size:11px;color:var(--muted);font-weight:500}.mode-section{display:flex;flex-direction:column;gap:6px;flex:none}.mode-btn{display:flex;align-items:center;gap:8px;text-align:left;border:none;border-radius:9px;padding:10px 12px;font-size:13.5px;font-weight:700;cursor:pointer;background:transparent;color:var(--text)}.mode-btn:hover{background:var(--surface-alt)}.mode-btn.active{background:var(--primary);color:var(--on-primary)}.mobile-top{display:none;flex-direction:column;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--card);z-index:5}.mobile-bar{display:flex;justify-content:space-between;align-items:center;gap:10px}.brand-sm{display:flex;align-items:center;gap:8px;font-weight:700;font-size:16px;letter-spacing:-.01em}.streak-sm{font-size:13px;color:var(--muted);font-weight:600;margin-left:auto}.mobile-chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.mobile-chip{border:1.5px solid var(--border);background:transparent;color:var(--text);border-radius:20px;padding:6px 13px;font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer;flex:none}.mobile-chip.checked{border-color:var(--primary);background:var(--primary-light);color:var(--primary)}.bottom-tabs{display:none;position:fixed;bottom:0;left:0;right:0;border-top:1px solid var(--border);background:var(--card);justify-content:space-around;padding:6px 0 calc(6px + env(safe-area-inset-bottom));z-index:10}.tab-btn{display:flex;flex-direction:column;align-items:center;gap:2px;border:none;background:none;padding:6px 14px;min-height:44px;min-width:56px;cursor:pointer;color:var(--muted)}.tab-btn.active{color:var(--primary)}.tab-icon{font-size:21px;line-height:1}.tab-label{font-size:10px;font-weight:700}@media(max-width:860px){.sidebar{display:none}.mobile-top,.bottom-tabs{display:flex}.content{padding:20px 16px 100px}}.toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:16px}.toggle{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);cursor:pointer;font-weight:600}.toggle input{accent-color:var(--primary);width:16px;height:16px}.score-pill{background:var(--primary-light);color:var(--primary);font-weight:700;border-radius:20px;padding:5px 14px;font-size:13px;font-family:JetBrains Mono,monospace}.q-box{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:26px}.q-meta{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:10px;font-weight:600}.q-meta .count{font-family:JetBrains Mono,monospace;font-size:12px}.q-text{font-size:18px;font-weight:700;line-height:1.4;margin-bottom:16px}.empty-state{text-align:center;padding:60px 20px;color:var(--muted);font-weight:500}.empty-state .big{font-size:36px;margin-bottom:8px}.summary-box{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:32px;text-align:center}.summary-box .num{font-size:44px;font-weight:700;color:var(--primary);letter-spacing:-.01em}.summary-box p{margin:6px 0;color:var(--muted);font-weight:500}.muted-small{font-size:14px}.row-center{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:14px}.kbd-hint{text-align:center;color:var(--muted);font-size:12px;margin-top:8px;font-weight:500}.mt{margin-top:14px}.hidden{display:none}.progress-track{height:6px;border-radius:4px;background:var(--surface-alt);overflow:hidden;margin-bottom:18px}.progress-fill{height:100%;background:var(--primary);border-radius:4px;transition:width .25s}.btn-primary,.btn-accent,.btn-warn,.btn-danger,.btn-ghost{border:none;border-radius:9px;padding:12px 22px;font-size:14.5px;font-weight:700;cursor:pointer}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover{background:var(--primary-dark)}.btn-accent{background:var(--accent);color:#fff}.btn-warn{background:var(--warn);color:#fff}.btn-danger{background:var(--danger);color:#fff}:root[data-theme=dark] .btn-accent,:root[data-theme=dark] .btn-warn,:root[data-theme=dark] .btn-danger{color:#082726}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .btn-accent,:root:not([data-theme=light]) .btn-warn,:root:not([data-theme=light]) .btn-danger{color:#082726}}.btn-ghost{background:transparent;color:var(--muted);border:1.5px solid var(--border)}.btn-ghost:hover{color:var(--text);border-color:var(--primary)}.btn-ghost.small{padding:7px 12px;font-size:13px}.wide{min-width:160px}.grow{flex:1;min-width:110px;padding:11px 14px;font-size:13px}.fc-card{position:relative;min-height:240px;border-radius:14px;background:var(--card);border:1px solid var(--border);box-shadow:0 2px 12px #0b2c2b0f;display:flex;align-items:center;justify-content:center;text-align:center;padding:30px;cursor:pointer;margin-top:8px}.fc-label{position:absolute;top:14px;left:18px;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--cyan);font-weight:700}.fc-text{font-size:19px;font-weight:600;white-space:pre-line;max-width:560px;line-height:1.45}.fc-hint{position:absolute;bottom:12px;right:16px;font-size:12px;color:var(--muted);font-weight:500}.opt{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border-radius:10px;padding:13px 15px;margin-bottom:10px;font-size:14.5px;font-weight:600;border:1.5px solid var(--border);background:transparent;color:var(--text);cursor:pointer}.opt:before{content:"";width:22px;height:22px;border-radius:50%;flex:none;border:1.5px solid var(--border);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff}.opt:hover:not(.locked){border-color:var(--primary);background:var(--primary-light)}.opt:hover:not(.locked):before{border-color:var(--primary)}.opt.locked{cursor:default}.opt.correct{border-color:var(--primary);background:var(--primary-light)}.opt.correct:before{content:"✓";background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.opt.incorrect{border-color:var(--danger);background:var(--danger-bg)}.opt.incorrect:before{content:"✕";background:var(--danger);border-color:var(--danger)}:root[data-theme=dark] .opt.incorrect:before{color:#082726}.opt.dim{opacity:.5}.explanation{background:var(--primary-light);border-left:4px solid var(--cyan);padding:12px 14px;border-radius:8px;font-size:13.5px;margin-top:8px;line-height:1.55;font-weight:500}.miss-list{text-align:left;margin-top:18px;border-top:1px solid var(--border);padding-top:14px}.miss-list h4{margin:0 0 8px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.miss-item{padding:10px 0;border-bottom:1px dashed var(--border);font-size:13px;font-weight:500}.miss-item b{color:var(--danger);display:block;margin-top:3px}.own-answer{width:100%;min-height:110px;border-radius:8px;border:1.5px solid var(--border);padding:12px 14px;font-family:inherit;font-size:14.5px;resize:vertical;background:var(--bg);color:var(--text)}.own-answer:focus{outline:none;border-color:var(--primary)}.model-answer{margin-top:14px;background:var(--primary-light);border-radius:10px;padding:14px 16px;font-size:14px;line-height:1.55;font-weight:500}.model-answer h4{margin:0 0 6px;color:var(--cyan);font-size:11px;text-transform:uppercase;letter-spacing:.07em}.self-rate{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.ad-slot{margin-top:24px;display:flex;align-items:center;justify-content:center;min-height:90px}.site-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:20px 32px;border-top:1px solid var(--border);font-size:13px;color:var(--muted)}.footer-copy{font-weight:500}.footer-links{display:flex;gap:18px;align-items:center}.footer-link{border:none;background:none;padding:0;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;color:var(--primary);text-decoration:none}.footer-link:hover{color:var(--primary-dark);text-decoration:underline}@media(max-width:860px){.site-footer{padding:18px 16px calc(80px + env(safe-area-inset-bottom));justify-content:center;text-align:center}}.doc-backdrop{position:fixed;inset:0;background:#08272680;display:flex;align-items:flex-start;justify-content:center;padding:24px 16px;z-index:200;overflow-y:auto}.doc-card{position:relative;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:14px;padding:32px 36px;max-width:720px;width:100%;margin:auto;box-shadow:0 8px 40px #0827264d}.doc-close{position:sticky;float:right;top:0;border:1.5px solid var(--border);background:var(--card);color:var(--muted);width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:15px;line-height:1}.doc-close:hover{color:var(--text);border-color:var(--primary)}.doc-body{font-size:14.5px;line-height:1.6}.doc-body h1{font-size:24px;font-weight:700;margin:0 0 18px;letter-spacing:-.01em}.doc-body h2{font-size:16px;font-weight:700;margin:26px 0 8px;color:var(--cyan);text-transform:uppercase;letter-spacing:.05em}.doc-body h3{font-size:15px;font-weight:700;margin:20px 0 6px}.doc-body p{margin:0 0 12px;color:var(--text)}.doc-body ul{margin:0 0 14px;padding-left:20px}.doc-body li{margin-bottom:6px}.doc-body a{color:var(--primary)}.doc-body code{font-family:JetBrains Mono,monospace;font-size:.88em;background:var(--surface-alt);padding:1px 5px;border-radius:4px}
