@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2)format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2)format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-ext-600-normal-4vooXBpG.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-600-normal-DRtaDpgU.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2)format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-ext-700-normal-CJIcxD6K.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-700-normal-BLI3TTWz.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-700-normal-DvUfVpUG.woff2)format("woff2"),url(/assets/dm-sans-latin-700-normal-CUSSCpQX.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/newsreader-latin-500-normal-B66TYsaK.woff2)format("woff2"),url(/assets/newsreader-latin-500-normal-DFwuUcdu.woff)format("woff")}@font-face{font-family:Newsreader;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/newsreader-latin-ext-500-normal-BNHmvKvI.woff2)format("woff2"),url(/assets/newsreader-latin-ext-500-normal-CZruMFou.woff)format("woff")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f6f7;--paper:#fff;--surface:#fbfcfc;--sunken:#e8ebea;--text:#242a2a;--muted:#596663;--line:#dfe4e3;--line-strong:#b8c2bd;--hover:#edf0ef;--accent:#176452;--accent-hover:#0e4b3d;--accent-soft:#e5eeea;--accent-text:#155745;--on-accent:#fff;--focus:#197967;--dot:#d47460;--danger:#a83c27;--danger-hover:#8a2f1e;--danger-soft:#fff1ed;--danger-line:#d69a88;--success:#28715a;--success-soft:#e6f3eb;--warning:#8a6420;--warning-soft:#fbf3e2;--warning-line:#dcc28c;--info-soft:#eef4f1;--info-line:#a5bdb1;--rate-again:#c57d69;--rate-hard:#b89850;--rate-good:#538c72;--rate-easy:#5b86a0;--chart-low:#c57d69;--chart-mid:#b89850;--chart-high:#538c72;--backdrop:#141c1a73;--shadow:0 4px 16px #18342a0f;--shadow-raised:0 12px 40px #18342a2e;--radius:6px;--radius-large:10px;--font-body:"DM Sans", system-ui, sans-serif;--font-display:"Newsreader", Georgia, serif;--sidebar-width:240px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121615;--paper:#1b2120;--surface:#171c1b;--sunken:#0f1312;--text:#e4e9e7;--muted:#9aa7a3;--line:#2c3533;--line-strong:#46524f;--hover:#232b29;--accent:#4fb394;--accent-hover:#6cc6a8;--accent-soft:#1f332c;--accent-text:#7fd0b4;--on-accent:#0d1a16;--focus:#6cc6a8;--dot:#e08a76;--danger:#ef8f7a;--danger-hover:#f6a996;--danger-soft:#34221e;--danger-line:#7a4134;--success:#6cc6a8;--success-soft:#1a3029;--warning:#e2bd6f;--warning-soft:#302818;--warning-line:#6f5a2c;--info-soft:#1c2a26;--info-line:#375449;--backdrop:#0009;--shadow:0 4px 16px #0000004d;--shadow-raised:0 12px 40px #0000008c}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121615;--paper:#1b2120;--surface:#171c1b;--sunken:#0f1312;--text:#e4e9e7;--muted:#9aa7a3;--line:#2c3533;--line-strong:#46524f;--hover:#232b29;--accent:#4fb394;--accent-hover:#6cc6a8;--accent-soft:#1f332c;--accent-text:#7fd0b4;--on-accent:#0d1a16;--focus:#6cc6a8;--dot:#e08a76;--danger:#ef8f7a;--danger-hover:#f6a996;--danger-soft:#34221e;--danger-line:#7a4134;--success:#6cc6a8;--success-soft:#1a3029;--warning:#e2bd6f;--warning-soft:#302818;--warning-line:#6f5a2c;--info-soft:#1c2a26;--info-line:#375449;--backdrop:#0009;--shadow:0 4px 16px #0000004d;--shadow-raised:0 12px 40px #0000008c}*,:before,:after{box-sizing:border-box;letter-spacing:0}html{font-family:var(--font-body);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%}body{min-width:280px;margin:0;line-height:1.5}h1,h2,h3{margin:0;line-height:1.2}h1{font-family:var(--font-display);font-size:2.4rem;font-weight:500}h2{font-size:1.15rem;font-weight:600}h3{font-size:1rem;font-weight:600}p{margin:0}a{color:var(--accent)}img{max-width:100%}svg{flex-shrink:0}fieldset{border:0;min-width:0;margin:0;padding:0}legend{padding:0;font-weight:600}summary{cursor:pointer}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}button,a,label,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}h1:focus,h2:focus,h3:focus,main:focus{outline:none}h1:focus-visible,h2:focus-visible,h3:focus-visible{outline:3px solid var(--focus);outline-offset:4px}input[type=text],input[type=search],input[type=number],select,textarea{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--paper);max-width:100%;min-height:44px;padding:9px 12px;font-size:1rem}textarea{resize:vertical;min-height:88px;line-height:1.5}input[type=checkbox],input[type=radio]{block-size:18px;inline-size:18px;accent-color:var(--accent);flex-shrink:0;margin:0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.button{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--paper);min-height:44px;color:var(--text);justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:.875rem;font-weight:500;line-height:1.2;text-decoration:none;display:inline-flex}.button:hover:not(:disabled){background:var(--hover)}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.button.danger{color:var(--danger);border-color:var(--danger-line)}.button.danger:hover:not(:disabled){background:var(--danger-soft)}.button.primary.danger{background:var(--danger);border-color:var(--danger);color:var(--on-accent)}.button.primary.danger:hover:not(:disabled){background:var(--danger-hover)}.button.ghost{background:0 0;border-color:#0000}.button.ghost:hover:not(:disabled){background:var(--hover)}.button.large{min-height:52px;padding:12px 28px;font-size:1rem}.icon-button{border-radius:var(--radius);block-size:44px;inline-size:44px;color:var(--muted);background:0 0;border:1px solid #0000;place-items:center;padding:0;display:inline-grid}.icon-button:hover:not(:disabled){border-color:var(--line);background:var(--paper);color:var(--text)}.icon-button.danger:hover:not(:disabled){color:var(--danger);border-color:var(--danger-line);background:var(--danger-soft)}.button-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}kbd{border:1px solid var(--line-strong);min-inline-size:22px;color:var(--muted);background:var(--surface);border-radius:4px;place-items:center;padding:1px 6px;font-family:inherit;font-size:.7rem;display:inline-grid}.button.primary kbd{color:inherit;opacity:.85;background:0 0;border-color:currentColor}@media (hover:none) and (pointer:coarse){.key-hint{display:none}}.badge{background:var(--sunken);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:500;line-height:1.5;display:inline-block}.badge.accent{background:var(--accent-soft);color:var(--accent-text)}.muted{color:var(--muted)}progress{appearance:none;background:var(--sunken);border:0;border-radius:3px;block-size:6px;inline-size:100%;display:block;overflow:hidden}progress::-webkit-progress-bar{background:var(--sunken);border-radius:3px}progress::-webkit-progress-value{background:var(--accent);border-radius:3px;transition:inline-size .2s}progress::-moz-progress-bar{background:var(--accent);border-radius:3px}.spinner{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);min-block-size:100dvh;display:grid}.app-main{flex-direction:column;min-inline-size:0;display:flex}:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}.app-shell{padding-inline:var(--safe-left) var(--safe-right)}.app-main{padding-block-end:var(--safe-bottom)}.skip-link{z-index:60;border:1px solid var(--accent);border-radius:var(--radius);background:var(--paper);color:var(--accent);padding:12px 16px;font-weight:600;position:fixed;inset-block-start:-100px;inset-inline-start:12px}.skip-link:focus-visible{inset-block-start:12px}.sidebar{block-size:100dvh;padding:28px 16px 20px;padding-block:calc(28px + var(--safe-top)) calc(20px + var(--safe-bottom));background:var(--surface);border-inline-end:1px solid var(--line);flex-direction:column;gap:28px;display:flex;position:sticky;inset-block-start:0;overflow-y:auto}.brand{color:var(--accent);align-items:center;gap:10px;padding-inline:8px;display:flex}.brand>span{font-family:var(--font-display);white-space:nowrap;font-size:1.9rem;font-weight:500;line-height:1}.brand-dot{color:var(--dot)}.nav-list,.subject-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.nav-link,.subject-button{border-radius:var(--radius);min-block-size:44px;inline-size:100%;color:var(--text);text-align:start;background:0 0;border:0;align-items:center;gap:10px;padding:8px 10px;font-size:.9rem;text-decoration:none;display:flex}.nav-link:hover,.subject-button:hover{background:var(--hover)}.nav-link.active,.subject-button.active{background:var(--accent-soft);color:var(--accent-text);font-weight:600}.nav-link svg{color:var(--muted)}.nav-link.active svg{color:currentColor}.subject-section{flex-direction:column;gap:8px;display:flex}.sidebar-heading{text-transform:uppercase;color:var(--muted);padding-inline:10px;font-size:.72rem;font-weight:600}.subject-name{overflow-wrap:anywhere;flex:1;min-inline-size:0}.subject-count{color:var(--muted);font-size:.75rem;font-weight:400}.new-subject{color:var(--accent);justify-content:flex-start}.storage-status{color:var(--muted);align-items:flex-start;gap:8px;margin-block-start:auto;padding-inline:10px;font-size:.75rem;display:flex}.storage-dot{background:var(--success);border-radius:50%;flex-shrink:0;block-size:8px;inline-size:8px;margin-block-start:5px}.storage-memory .storage-dot{background:var(--warning)}.storage-failed{color:var(--danger)}.storage-failed .storage-dot{background:var(--danger)}.drawer-backdrop{z-index:40;background:var(--backdrop);cursor:default;border:0;padding:0;position:fixed;inset:0}.topbar{z-index:20;min-block-size:calc(64px + var(--safe-top));background:var(--surface);border-block-end:1px solid var(--line);align-items:center;gap:12px;padding:8px 32px;padding-block-start:calc(8px + var(--safe-top));display:flex;position:sticky;inset-block-start:0}.menu-button{display:none}.topbar-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-inline-size:0;font-weight:600;overflow:hidden}.topbar-actions{align-items:center;gap:6px;display:flex}.action-group{gap:6px;display:flex}.toolbar-button{padding-inline:12px}.unsaved-chip{border:1px solid var(--warning-line);background:var(--warning-soft);min-block-size:36px;color:var(--warning);border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:.8rem;font-weight:500;display:inline-flex}.unsaved-dot{background:currentColor;border-radius:50%;block-size:8px;inline-size:8px}.page{flex-direction:column;gap:20px;inline-size:100%;max-inline-size:1120px;margin-inline:auto;padding:36px 48px 56px;display:flex}.flashcards-page,.exam-page,.progress-page,.library-page{flex-direction:column;gap:24px;min-inline-size:0;display:flex}.page-header{flex-direction:column;gap:8px;display:flex}.page-intro{max-inline-size:70ch;color:var(--muted)}.library-header{flex-flow:wrap;justify-content:space-between;align-items:flex-end;gap:16px}.library-header>div:first-child{flex-direction:column;gap:8px;display:flex}.loading{color:var(--muted);align-items:center;gap:10px;display:flex}.notice{border:1px solid var(--info-line);border-radius:var(--radius);background:var(--info-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:12px 16px;font-size:.9rem;display:flex}.notice-text{flex:260px}.notice-actions{gap:8px;display:flex}.notice-success{background:var(--success-soft);border-color:var(--info-line)}.notice-warning{background:var(--warning-soft);border-color:var(--warning-line)}.notice-error{background:var(--danger-soft);border-color:var(--danger-line)}.status-screen{min-block-size:100dvh;max-inline-size:560px;padding:32px 24px;padding-block:calc(32px + var(--safe-top)) calc(32px + var(--safe-bottom));text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;margin-inline:auto;display:flex}.status-icon{color:var(--danger)}.status-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.status-location{color:var(--muted);overflow-wrap:anywhere;font-family:ui-monospace,monospace;font-size:.8rem}@media (width<=1050px){:root{--sidebar-width:205px}.sidebar{padding-inline:10px}.topbar{padding-inline:24px}.page{padding:28px 28px 48px}}@media (width<=700px){.app-shell{display:block}.sidebar{z-index:50;visibility:hidden;block-size:100dvh;inline-size:min(300px,86vw);box-shadow:var(--shadow-raised);padding-inline-start:calc(10px + var(--safe-left));transition:transform .2s ease-out,visibility 0s linear .2s;position:fixed;inset-block:0;inset-inline-start:0;transform:translate(-100%)}.sidebar.open{visibility:visible;transition:transform .2s ease-out;transform:none}.menu-button{margin-inline-start:-8px;display:inline-grid}.topbar{gap:4px;padding-inline:12px}.toolbar-label{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.toolbar-button{inline-size:44px;padding:0}.unsaved-chip{padding-inline:10px;font-size:.75rem}.page{gap:16px;padding:20px 16px 40px}h1{font-size:2rem}}@media (width<=400px){.unsaved-chip{justify-content:center;gap:0;inline-size:36px;padding:0;font-size:0}}.dialog{border:1px solid var(--line);border-radius:var(--radius-large);background:var(--paper);max-block-size:min(90dvh,960px);inline-size:min(600px,100vw - 24px);max-inline-size:none;color:var(--text);box-shadow:var(--shadow-raised);padding:0}.dialog[open]{flex-direction:column;display:flex}.dialog-small{inline-size:min(440px,100vw - 24px)}.dialog-large{inline-size:min(960px,100vw - 24px)}.dialog::backdrop{background:#0c12108c}.dialog-header{border-block-end:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 12px 12px 24px;display:flex}.dialog-header h2{font-family:var(--font-display);overflow-wrap:anywhere;font-size:1.45rem;font-weight:500}.dialog-body{overscroll-behavior:contain;flex-direction:column;flex:1;gap:16px;padding:20px 24px;display:flex;overflow-y:auto}.dialog-footer{border-block-start:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:14px 24px;display:flex}.footer-start{margin-inline-end:auto}.dialog-hint{color:var(--muted);font-size:.85rem}.segmented{flex-direction:column;gap:6px;display:flex}.segmented-legend{color:var(--muted);margin-block-end:6px;font-size:.8rem;font-weight:500}.segmented-options{border-radius:var(--radius);background:var(--sunken);flex-wrap:wrap;gap:3px;padding:3px;display:inline-flex}.segment,.chip{cursor:pointer;align-items:center;font-size:.875rem;display:inline-flex;position:relative}.segment input,.chip input{opacity:0;cursor:pointer;block-size:100%;inline-size:100%;margin:0;position:absolute;inset:0}.segment{min-block-size:40px;color:var(--muted);border-radius:4px;padding:6px 14px}.segment:hover{color:var(--text)}.segment.selected{background:var(--paper);color:var(--accent-text);font-weight:600;box-shadow:0 1px 3px #0000001f}.segment:has(input:focus-visible),.chip:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.chip-list{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line-strong);background:var(--paper);border-radius:999px;min-block-size:36px;padding:6px 14px}.chip:hover{background:var(--hover)}.chip.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text);font-weight:600}.form-field{flex-direction:column;gap:6px;min-inline-size:0;display:flex}.form-field>label,.form-field>span{font-size:.9rem;font-weight:500}.form-field input:not([type=checkbox],[type=radio]),.form-field select,.form-field textarea{inline-size:100%}.required{color:var(--danger)}.field-hint{color:var(--muted);font-size:.8rem}.form-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;display:grid}.translation>summary{min-block-size:32px;color:var(--accent);align-items:center;font-size:.8rem;display:inline-flex}.translation[open]>:not(summary){margin-block-start:6px}.check{cursor:pointer;align-items:flex-start;gap:10px;min-block-size:44px;padding-block:11px;line-height:1.35;display:flex}.check input{margin-block-start:1px}.check-list{margin:0;padding:0;list-style:none;display:grid}.check-list>li+li{border-block-start:1px solid var(--line)}.toolbar-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 16px;display:flex}.toolbar-row.filters{justify-content:flex-start}.toolbar-row.settings-summary{justify-content:flex-start;align-items:center}.toolbar-row.settings-summary>p{flex:14rem;margin:0}.settings-stack{flex-direction:column;gap:18px;display:flex}.inline-field{color:var(--muted);flex-direction:column;gap:4px;font-size:.8rem;font-weight:500;display:flex}.inline-field select{color:var(--text);min-inline-size:170px}.search-field{flex:280px;align-items:center;display:flex;position:relative}.search-field svg{color:var(--muted);pointer-events:none;position:absolute;inset-inline-start:12px}.search-field input{inline-size:100%;padding-inline-start:38px}.edit-rows{gap:8px;margin:0;padding:0;list-style:none;display:grid}.edit-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.edit-row>input,.edit-row>.form-field{flex:200px}.add-row{border-block-start:1px dashed var(--line);flex-wrap:wrap;align-items:flex-end;gap:8px;padding-block-start:12px;display:flex}.add-row .form-field{flex:180px}.fields-editor,.categories-editor,.images-editor,.type-builder,.category-picker{flex-direction:column;gap:10px;display:flex}.table-scroll{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);overflow-x:auto}.data-table{border-collapse:collapse;inline-size:100%;font-size:.9rem}.data-table caption{text-align:start;padding:12px;font-weight:600}.data-table th,.data-table td{text-align:start;border-block-end:1px solid var(--line);vertical-align:top;padding:10px 14px}.data-table thead th{color:var(--muted);background:var(--surface);font-size:.78rem;font-weight:600}.data-table tbody tr:last-child>*{border-block-end:0}.dialog-text{line-height:1.55}.settings-section{border-block-start:1px solid var(--line);flex-direction:column;gap:10px;padding-block-start:16px;display:flex}.settings-section:first-child{border-block-start:0;padding-block-start:0}.setting-hint{color:var(--muted);font-size:.85rem}.folder-path{border-radius:var(--radius);background:var(--sunken);overflow-wrap:anywhere;padding:8px 12px;font-family:ui-monospace,monospace;font-size:.8rem}.qr-code{border-radius:var(--radius);align-self:flex-start;block-size:auto;inline-size:min(220px,70vw)}.setup-key{letter-spacing:.05em;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;font-family:ui-monospace,monospace;font-size:1rem}.steps{flex-direction:column;gap:4px;margin:0;padding-inline-start:1.4em;display:flex}.admin-subjects{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.admin-subjects>.admin-subject{border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:6px;padding:12px;display:flex}.danger-zone{border:1px solid var(--danger-line);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:10px;padding:16px;display:flex}.danger-zone h3,.danger-zone h2{color:var(--danger)}@media (width<=700px){.dialog{max-block-size:calc(100dvh - 12px);inline-size:calc(100vw - 12px)}.dialog-small,.dialog-large{inline-size:calc(100vw - 12px)}.dialog-header{padding-inline-start:16px}.dialog-body{padding:16px}.dialog-footer{padding:12px 16px}.dialog-footer .button{flex:auto}.footer-start{margin-inline-end:0}.segmented-options{display:flex}.segment{flex:auto;justify-content:center}.inline-field{flex:200px}.inline-field select{inline-size:100%;min-inline-size:0}}.category-tree{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.category-tree>li{flex-direction:column;gap:6px;display:flex}.category-tree.sub{border-inline-start:2px solid var(--line);flex-flow:column;gap:6px;padding-inline-start:18px}.category-picker .chip{text-align:start;gap:8px}.category-picker .chip.whole{align-self:flex-start}.chip-count{color:var(--muted);font-size:.78rem;font-weight:400}.chip.selected .chip-count{color:inherit}.chip:has(input:disabled){cursor:default;opacity:.75}.chip:has(input:disabled) input{cursor:default}.category-edit-tree>li{gap:8px;display:grid}.edit-rows.sub{border-inline-start:2px solid var(--line);padding-inline-start:22px}.category-row .category-place{flex:0 240px}.category-row .category-place select{min-block-size:44px;inline-size:100%}.uncategorized{border:1px dashed var(--line-strong);border-radius:var(--radius);gap:8px;padding:12px;display:grid}.uncategorized>h3{font-size:.95rem}.restore-row{border-block-start:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 12px;padding-block-start:8px;display:flex}.restore-row .field-hint{flex:240px}.inactive{opacity:.6}.inactive:focus-within,.inactive:hover{opacity:.85}.badge.muted-badge{background:var(--sunken);color:var(--muted)}.category-table tr.level-sub>th{padding-inline-start:34px;font-weight:400}.category-table tr.level-unused>th{font-style:italic}@media (width<=700px){.category-tree{flex-flow:column}.category-picker .chip{inline-size:100%}.category-row .category-place{flex:100%}.edit-rows.sub,.category-tree.sub{padding-inline-start:12px}}.deck-toolbar{flex-direction:column;gap:16px;display:flex}.stat-row{border-block:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding-block:16px;display:grid}.stat{border-inline-end:1px solid var(--line);padding-inline:20px}.stat:first-child{padding-inline-start:0}.stat:last-child{border-inline-end:0}.stat dt{color:var(--muted);margin-block-end:4px;font-size:.78rem}.stat dd{margin:0;font-size:1.75rem;font-weight:500;line-height:1.15}.card-counter{color:var(--muted);font-size:.85rem}.flashcard{border:1px solid var(--line);border-radius:var(--radius-large);background:var(--paper);box-shadow:var(--shadow);flex-direction:column;gap:20px;padding:20px 28px 28px;display:flex}.card-actions{justify-content:flex-end;align-items:center;gap:4px;margin-block-end:-8px;display:flex}.card-actions .badge{margin-inline-end:auto}.card-face{flex-direction:column;gap:18px;min-inline-size:0;display:flex}.card-back{border-block-start:1px dashed var(--line-strong);padding-block-start:20px}.field-value{flex-direction:column;gap:6px;min-inline-size:0;display:flex}.field-label{text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:600}.value-name{font-family:var(--font-display);overflow-wrap:anywhere;font-size:1.6rem;font-weight:500;line-height:1.25}.value-text{overflow-wrap:anywhere;line-height:1.6}.value-list{gap:4px;margin:0;padding-inline-start:20px;line-height:1.5;display:grid}.gallery{flex-direction:column;gap:8px;min-inline-size:0;display:flex}.gallery-main{border-radius:var(--radius);background:var(--sunken);place-items:center;min-block-size:180px;margin:0;display:grid;position:relative;overflow:hidden}.gallery-main>img{object-fit:contain;max-block-size:min(52dvh,460px);inline-size:100%;display:block}.gallery-main figcaption{color:var(--muted);background:var(--paper);border-block-start:1px solid var(--line);justify-self:stretch;padding:8px 12px;font-size:.85rem}.gallery-zoom{background:var(--paper);border-color:var(--line);opacity:.92;position:absolute;inset-block-start:8px;inset-inline-end:8px}.gallery-thumbs{flex-wrap:wrap;gap:6px;display:flex}.gallery-thumb{border-radius:var(--radius);background:var(--sunken);border:2px solid #0000;block-size:64px;inline-size:64px;padding:0;overflow:hidden}.gallery-thumb img{object-fit:cover;block-size:100%;inline-size:100%;display:block}.gallery-thumb.selected{border-color:var(--accent)}.gallery-thumb:hover:not(.selected){border-color:var(--line-strong)}.zoomed-image{object-fit:contain;max-block-size:78dvh;inline-size:100%;display:block}.image-missing{border-radius:var(--radius);background:var(--sunken);block-size:100%;min-block-size:64px;inline-size:100%;min-inline-size:64px;color:var(--muted);place-items:center;display:inline-grid}.reveal-button{align-self:flex-start;min-inline-size:220px}.rating-controls{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.rating-controls>legend{color:var(--muted);margin-block-end:10px;font-size:.9rem;font-weight:500}.rating{border:1px solid var(--line);border-block-end:4px solid var(--line-strong);border-radius:var(--radius);background:var(--paper);flex-direction:column;justify-content:center;align-items:center;gap:4px;min-block-size:60px;padding:8px;font-weight:500;display:flex}.rating:hover{background:var(--hover)}.rating-1{border-block-end-color:var(--rate-again)}.rating-2{border-block-end-color:var(--rate-hard)}.rating-3{border-block-end-color:var(--rate-good)}.rating-4{border-block-end-color:var(--rate-easy)}.reading-nav{justify-content:space-between;gap:12px;display:flex}.session-done{text-align:center;border:1px solid var(--line);border-radius:var(--radius-large);background:var(--paper);flex-direction:column;align-items:center;gap:12px;padding:48px 24px;display:flex}.session-done h2{font-family:var(--font-display);color:var(--accent);font-size:1.9rem;font-weight:500}.layout-editor{flex-direction:column;gap:14px;display:flex}.field-row{flex-wrap:wrap;align-items:center;gap:8px 12px;font-weight:500;display:flex}.field-row select{flex:220px}.layout-table{border-collapse:collapse;inline-size:100%}.layout-table th,.layout-table td{border-block-end:1px solid var(--line);text-align:center;padding:10px 8px}.layout-table thead th{color:var(--muted);font-size:.78rem;font-weight:600}.layout-table th[scope=row],.layout-table thead th:first-child{text-align:start;font-weight:500}.layout-table input[type=radio]{cursor:pointer;block-size:22px;inline-size:22px}.field-kind{color:var(--muted);font-size:.75rem;font-weight:400;display:block}@media (width<=700px){.stat-row{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:14px}.stat{padding-inline:12px}.stat:nth-child(2n){border-inline-end:0}.stat:nth-child(odd){padding-inline-start:0}.stat dd{font-size:1.45rem}.flashcard{padding:14px 16px 20px}.value-name{font-size:1.35rem}.reveal-button{align-self:stretch}.rating-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gallery-thumb{block-size:56px;inline-size:56px}}.exam-setup{flex-direction:column;gap:20px;display:flex}.exam-section{border:1px solid var(--line);border-radius:var(--radius-large);background:var(--paper);flex-direction:column;gap:12px;padding:20px 24px;display:flex}.exam-section>h2{font-size:1.1rem}.type-builder{border-block-start:1px dashed var(--line);padding-block-start:14px}.type-builder>legend{margin-block-end:8px}.type-builder .form-field{max-inline-size:420px}.type-builder>.button{align-self:flex-start}.start-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.exam-runner{border:1px solid var(--line);border-radius:var(--radius-large);background:var(--paper);box-shadow:var(--shadow);flex-direction:column;gap:20px;padding:20px 28px 28px;display:flex}.runner-head{align-items:center;gap:14px;display:flex}.runner-head progress{flex:1}.runner-head .muted{white-space:nowrap;font-size:.85rem}.question-title{font-family:var(--font-display);overflow-wrap:anywhere;font-size:1.6rem;font-weight:500;line-height:1.3}.question-prompt{flex-direction:column;gap:8px;min-inline-size:0;display:flex}.open-answer{flex-wrap:wrap;gap:10px;display:flex}.open-answer input{flex:280px;font-size:1.1rem}.choices{gap:10px;margin:0;padding:0;list-style:none;display:grid}.choices.image-choices{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.choice{text-align:start;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--paper);align-items:center;gap:12px;block-size:100%;min-block-size:52px;inline-size:100%;padding:10px 14px;display:flex}.choice:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.choice:disabled{opacity:1}.choice>:nth-child(2){flex:1;min-inline-size:0}.choice .value-name{font-size:1.15rem}.image-choices .choice{flex-direction:column;align-items:stretch;padding:8px;position:relative}.image-choices .choice kbd{align-self:flex-start}.choice-image{aspect-ratio:4/3;object-fit:contain;background:var(--sunken);border-radius:4px;inline-size:100%;display:block}.choice.correct{border:2px solid var(--success);background:var(--success-soft)}.choice.wrong{border:2px solid var(--danger);background:var(--danger-soft)}.choice-mark{flex-shrink:0;display:flex}.correct .choice-mark{color:var(--success)}.wrong .choice-mark{color:var(--danger)}.image-choices .choice-mark{background:var(--paper);border-radius:50%;padding:2px;position:absolute;inset-block-start:8px;inset-inline-end:8px}.feedback{border-radius:var(--radius);border:1px solid;flex-direction:column;align-items:flex-start;gap:12px;padding:16px 18px;display:flex}.feedback-ok{border-color:var(--info-line);background:var(--success-soft)}.feedback-wrong{border-color:var(--danger-line);background:var(--danger-soft)}.feedback-title{align-items:center;gap:8px;font-size:1.05rem;font-weight:600;display:flex}.feedback-ok .feedback-title{color:var(--success)}.feedback-wrong .feedback-title{color:var(--danger)}.feedback-expected{flex-direction:column;gap:4px;display:flex}.feedback-expected>span,.result-pair>span{color:var(--muted);font-size:.8rem;font-weight:600}.feedback-expected .choice-image,.result-pair .choice-image{max-inline-size:220px}.spelling-hint{overflow-wrap:anywhere}.answer-text{font-family:var(--font-display);white-space:pre-wrap;font-size:1.15rem}.answer-text del{color:var(--danger);background:var(--danger-soft);text-decoration-thickness:2px}.answer-text ins{color:var(--success);text-underline-offset:3px;background:var(--success-soft);text-decoration-thickness:2px}.exam-results{flex-direction:column;gap:20px;display:flex}.score-card{text-align:center;border:1px solid var(--line);border-radius:var(--radius-large);background:var(--paper);flex-direction:column;align-items:center;gap:10px;padding:28px 24px;display:flex}.score{flex-direction:column;align-items:center;gap:2px;display:flex}.score-percent{font-family:var(--font-display);color:var(--accent);font-size:3.4rem;font-weight:500;line-height:1}.score-card .button-row{justify-content:center}.result-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.result{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);border-inline-start:4px solid;padding:12px 16px}.result-ok{border-inline-start-color:var(--success)}.result-wrong{border-inline-start-color:var(--danger)}.result-head{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.result-ok .result-head svg{color:var(--success)}.result-wrong .result-head svg{color:var(--danger)}.result-head .muted{font-size:.85rem}.result-detail{flex-wrap:wrap;gap:12px 28px;margin-block-start:10px;padding-inline-start:28px;display:flex}.result-pair{flex-direction:column;gap:4px;min-inline-size:0;display:flex}@media (width<=700px){.exam-section,.exam-runner{padding:16px}.question-title{font-size:1.3rem}.choices.image-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.open-answer .button{flex:100%}.runner-head{flex-wrap:wrap}.runner-head progress{flex-basis:100%;order:-1}.runner-head .muted{flex:1}.result-detail{padding-inline-start:0}.start-row .button{flex:100%}}.item-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.item-row{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);align-items:center;gap:14px;padding:10px 12px;display:flex}.item-row:hover{border-color:var(--line-strong)}.item-thumb{object-fit:cover;background:var(--sunken);border-radius:4px;flex-shrink:0;block-size:64px;inline-size:64px}.item-thumb.image-missing{min-block-size:64px;min-inline-size:64px}.item-thumb.placeholder{display:block}.item-text{flex-direction:column;flex:1;gap:2px;min-inline-size:0;display:flex}.item-title{overflow-wrap:anywhere;font-weight:600}.item-subtitle{color:var(--muted);overflow-wrap:anywhere;font-size:.875rem}.item-meta{flex-wrap:wrap;gap:6px;margin-block-start:4px;display:flex}.item-meta:empty{display:none}.item-actions{flex-shrink:0;gap:2px;display:flex}.hidden-items{border:1px dashed var(--line-strong);border-radius:var(--radius);padding:12px 16px}.hidden-items>summary{min-block-size:32px;color:var(--muted);font-weight:500}.hidden-items ul{gap:4px;margin:8px 0 0;padding:0;list-style:none;display:grid}.hidden-items li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.item-editor,.subject-settings{flex-direction:column;gap:20px;display:flex}.images-editor>legend,.starter-list>legend,.subject-settings>fieldset>legend{margin-block-end:6px;font-size:1rem}.images-editor{border:1px solid var(--line);border-radius:var(--radius);padding:14px}.image-edit-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.image-edit-list:empty{display:none}.image-edit{align-items:flex-start;gap:12px;display:flex}.image-edit-thumb{object-fit:cover;background:var(--sunken);border-radius:4px;flex-shrink:0;block-size:96px;inline-size:96px}.image-edit-fields{flex-direction:column;flex:1;gap:6px;min-inline-size:0;display:flex}.image-edit-fields input{inline-size:100%}.image-edit-fields select{min-block-size:44px;max-inline-size:220px}.upload-button{cursor:pointer;align-self:flex-start;position:relative}.upload-button:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.upload-button:has(input:disabled){opacity:.55;cursor:default}.starter-list{gap:8px;display:grid}.starter{cursor:pointer;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--paper);align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.starter:hover{background:var(--hover)}.starter.selected{border-color:var(--accent);background:var(--accent-soft)}.starter input{margin-block-start:3px}.starter-text{flex-direction:column;gap:2px;min-inline-size:0;display:flex}.starter-text .muted{font-size:.8rem}@media (width<=700px){.item-row{flex-wrap:wrap;gap:10px}.item-thumb{block-size:56px;inline-size:56px}.item-actions{border-block-start:1px solid var(--line);justify-content:flex-end;inline-size:100%;padding-block-start:4px}.image-edit{flex-direction:column}.image-edit-thumb{aspect-ratio:4/3;object-fit:contain;block-size:auto;inline-size:100%}.image-edit-fields select{flex:1;max-inline-size:none}.library-header .button-row{inline-size:100%}.library-header .button-row .button{flex:auto}}.library-outline{flex-direction:column;gap:10px;display:flex}.outline-actions{justify-content:flex-end}.library-group{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.library-group>summary{cursor:pointer;border-radius:var(--radius);align-items:center;gap:10px;min-block-size:44px;padding:8px 14px;font-weight:600;display:flex}.library-group>summary:hover{background:var(--hover)}.library-group-title{overflow-wrap:anywhere;flex:1;min-inline-size:0}.library-group.unused>summary{color:var(--muted)}.library-group-body{flex-direction:column;gap:12px;padding:4px 10px 12px;display:flex}.library-subgroup{flex-direction:column;gap:8px;display:flex}.library-subgroup>h3{margin:4px 4px 0;font-size:.95rem}.progress-page section>h2{margin-block-end:12px;font-size:1.1rem}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0;display:grid}.stat-grid .stat,.stat-grid dd{margin:0}.score-chart{border:1px solid var(--line);border-radius:var(--radius-large);background:var(--paper);margin:0;padding:20px 24px}.score-chart>figcaption{margin-block-end:14px;font-weight:600}.chart-bars{border-block-end:1px solid var(--line-strong);align-items:stretch;gap:6px;block-size:180px;margin:0;padding:0;list-style:none;display:flex}.chart-column{flex-direction:column;flex:1 1 0;justify-content:flex-end;align-items:center;min-inline-size:0;max-inline-size:48px;display:flex;position:relative}.chart-value{color:var(--muted);font-size:.7rem;line-height:1.6}.chart-bar{border-radius:3px 3px 0 0;inline-size:100%}.chart-low{background:var(--chart-low)}.chart-mid{background:var(--chart-mid)}.chart-high{background:var(--chart-high)}.progress-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.progress-columns>section{border:1px solid var(--line);border-radius:var(--radius-large);background:var(--paper);min-inline-size:0;padding:20px 24px}.weak-list{gap:8px;margin:0;padding-inline-start:24px;display:grid}.weak-list li{padding-inline-start:4px}.weak-list li>span{display:block}.weak-list .value-name{overflow-wrap:anywhere;font-size:1.05rem}.weak-list .muted{font-size:.85rem}@media (width<=700px){.progress-columns{grid-template-columns:minmax(0,1fr)}.progress-columns>section,.score-chart{padding:16px}.chart-bars{gap:3px;block-size:140px}.chart-value{font-size:.6rem}}.tour-layer{z-index:1000;position:fixed;inset:0}.tour-dim{background:var(--backdrop);position:fixed;inset:0}.tour-spotlight{border-radius:var(--radius-large);pointer-events:none;box-shadow:0 0 0 3px var(--accent), 0 0 0 9999px var(--backdrop);will-change:transform;transition:transform .2s,width .2s,height .2s;position:fixed;top:0;left:0}.tour-spotlight.tracking{transition:none}.tour-popover{border:1px solid var(--line-strong);border-radius:var(--radius-large);background:var(--paper);max-block-size:calc(100dvh - 24px);inline-size:min(420px,100vw - 24px);color:var(--text);box-shadow:var(--shadow-raised);flex-direction:column;gap:10px;padding:18px 20px;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.tour-popover.anchored{transform:none}.tour-popover h2{font-family:var(--font-display);outline:none;font-size:1.35rem;font-weight:500}.tour-count{color:var(--muted);font-size:.8rem;font-weight:600}.tour-progress{inline-size:100%}.tour-body{line-height:1.55}.tour-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-block-start:4px;display:flex}.tour-nav{gap:8px;margin-inline-start:auto;display:flex}@media (width<=599px){.tour-popover,.tour-popover.anchored{max-block-size:55dvh;inline-size:auto;inset:auto 12px 12px;transform:none}.tour-nav,.tour-nav .button{flex:1}}@media (prefers-reduced-motion:reduce){.tour-spotlight{transition:none}}
