.api-code-example{background-color:var(--primary-light);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--box-shadow);overflow:hidden}.api-code-example__header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-color);gap:6px;display:flex}.api-code-example__dot{background-color:var(--border-color);border-radius:50%;width:10px;height:10px}.api-code-example__body{padding:var(--space-4);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:var(--text-sm);color:var(--text-color);max-height:240px;margin:0;line-height:1.45;overflow:auto hidden}.api-code-example__method{font-weight:600}.api-code-example__method--get{color:var(--color-success)}.api-code-example__method--post{color:var(--color-info)}.api-code-example__method--patch{color:var(--color-warning)}.api-code-example__method--delete{color:var(--color-error)}.api-code-example__comment{color:var(--text-color-extra-weak)}.markdown-content{word-wrap:break-word;white-space:pre-wrap}.markdown-content>:first-child{margin-top:0}.markdown-content>:last-child{margin-bottom:0}.markdown-content rt,.inline-markdown rt{-webkit-user-select:none;user-select:none;font-size:.65em;line-height:1}.markdown-content ruby,.inline-markdown ruby{line-height:2}.markdown-audio{vertical-align:middle;border:1px solid var(--border-color);width:2em;height:2em;color:var(--text-color-weak);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;margin:0 .15em;padding:0;font-size:.8em;display:inline-flex}.markdown-audio:hover{background:var(--primary-highlight)}.markdown-content--large{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit}.markdown-content--large h1{margin:.75em 0 .5em;font-size:1.75em;font-weight:600;line-height:1.3}.markdown-content--large h2{margin:.7em 0 .4em;font-size:1.4em;font-weight:600;line-height:1.3}.markdown-content--large h3{margin:.6em 0 .3em;font-size:1.2em;font-weight:600;line-height:1.4}.markdown-content--large h4,.markdown-content--large h5,.markdown-content--large h6{margin:.5em 0 .25em;font-size:1em;font-weight:600;line-height:1.4}.markdown-content--large p{margin:.5em 0}.markdown-content--large ul,.markdown-content--large ol{margin:.5em 0;padding-left:1.5em}.markdown-content--large li,.markdown-content--large li>ul,.markdown-content--large li>ol{margin:.25em 0}.markdown-content--large code{background:var(--secondary);border-radius:var(--radius-xs);padding:.15em .35em;font-family:ui-monospace,monospace;font-size:.85em}.markdown-content--large pre{background:var(--secondary);border-radius:var(--radius-sm);text-align:left;margin:.75em 0;padding:.75em 1em;overflow-x:auto}.markdown-content--large pre code{background:0 0;padding:0;font-size:.8em}.markdown-content--large .shiki-wrapper{text-align:left}.markdown-content--large .shiki-wrapper pre{margin:0}.shiki{text-align:left}.markdown-content--large .shiki-wrapper .shiki{border-radius:var(--radius-sm);text-align:left;margin:.75em 0;padding:.75em 1em;font-family:ui-monospace,monospace;font-size:.8em;line-height:1.5;overflow-x:auto;background:var(--secondary)!important}.markdown-content--large .shiki-wrapper .shiki code{font-size:inherit;background:0 0;padding:0}:root:not(.dark) .shiki-wrapper .shiki span{color:var(--shiki-light)!important}:root.dark .shiki-wrapper .shiki span{color:var(--shiki-dark)!important}.markdown-content--large blockquote{border-left:3px solid var(--border-color);color:var(--text-color-weak);margin:.75em 0;padding:.25em 0 .25em 1em}.markdown-content--large a{color:var(--text-color-highlight);text-underline-offset:2px;text-decoration:underline}.markdown-content--large a:hover{color:var(--text-color)}.markdown-content--large strong{font-weight:600}.markdown-content--large img,img.markdown-content--large{object-fit:contain;border-radius:var(--radius-sm);max-width:100%;height:auto;max-height:40vh;margin:0 auto;display:block}.markdown-content--large hr{border:none;border-top:1px solid var(--border-color);margin:1em 0}.markdown-content--large table{border-collapse:collapse;width:100%;margin:.75em 0}.markdown-content--large th,.markdown-content--large td{border:1px solid var(--border-color);text-align:left;padding:.4em .6em}.markdown-content--large th{background:var(--secondary);font-weight:600}.markdown-content--large .block-latex{text-align:center;margin:.75em 0;display:block;overflow-x:auto}.katex-error{color:var(--color-error);font-family:ui-monospace,monospace;font-size:.85em}.katex-pending{opacity:.45;font-family:ui-monospace,monospace;font-size:.92em}.katex-pending--block{text-align:center;min-height:1.6em;display:block}.markdown-content--chat{line-height:1.6}.markdown-content--chat :is(p,ul,ol,pre,blockquote,table){margin:.75em 0}.markdown-content--chat :is(h1,h2,h3,h4,h5,h6){color:var(--text-color);margin:1.25em 0 .35em;font-weight:600;line-height:1.3}.markdown-content--chat h1{font-size:1.3em}.markdown-content--chat h2{font-size:1.18em}.markdown-content--chat h3{font-size:1.08em}.markdown-content--chat :is(h4,h5,h6){font-size:1em}.markdown-content--chat :is(h5,h6){color:var(--text-color-weak)}.markdown-content--chat>:first-child{margin-top:0}.markdown-content--chat>:last-child{margin-bottom:0}.markdown-content--chat :is(ul,ol){padding-inline-start:1.5em}.markdown-content--chat li,.markdown-content--chat li>p,.markdown-content--chat li :is(ul,ol){margin:.2em 0}.markdown-content--chat code{background:var(--secondary-extra-weak);border:1px solid var(--border-color);border-radius:var(--radius-xs);padding:.05em .35em;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.875em}.markdown-content--chat pre{background:var(--secondary-extra-weak);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.7em .9em;font-size:.875em;line-height:1.55;overflow-x:auto}.markdown-content--chat pre code{font-size:inherit;background:0 0;border:none;padding:0}.markdown-content--chat blockquote{border-inline-start:2px solid var(--border-color-strong);color:var(--text-color-weak);padding:0 0 0 .9em}.markdown-content--chat blockquote>:first-child{margin-top:0}.markdown-content--chat blockquote>:last-child{margin-bottom:0}.markdown-content--chat a{color:var(--text-color-highlight);text-underline-offset:2px;text-decoration:underline}.markdown-content--chat a:hover{color:var(--text-color)}.markdown-content--chat strong{font-weight:600}.markdown-content--chat em{font-style:italic}.markdown-content--chat hr{border:none;border-top:1px solid var(--border-color);margin:1.4em 0}.markdown-content--chat hr+*{margin-top:0}.markdown-content--chat table{border-collapse:collapse;width:100%;font-size:.95em;line-height:1.5;display:block;overflow-x:auto}.markdown-content--chat :is(th,td){border-bottom:1px solid var(--border-color);text-align:left;vertical-align:top;padding:.45em .7em}.markdown-content--chat th{border-bottom:1.5px solid var(--border-color-strong);font-weight:600}.markdown-content--chat tr:last-child td{border-bottom:none}.markdown-content--chat .block-latex{text-align:center;margin:.75em 0;display:block;overflow-x:auto}.markdown-content--chat .chat-latex{cursor:pointer;border-radius:var(--radius-xs)}.markdown-content--chat .chat-latex:focus-visible{outline:2px solid var(--border-color-strong);outline-offset:2px}.markdown-content--chat .chat-latex--inline{display:inline}.markdown-content--chat .chat-latex--inline:hover{background:var(--secondary-extra-weak)}.markdown-content--chat .chat-latex--block{display:block}.markdown-content--chat .chat-latex--block:hover .block-latex{background:var(--secondary-extra-weak)}.inline-markdown{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;display:inline}.inline-markdown code{background:var(--secondary);border-radius:var(--radius-xs);padding:.1em .25em;font-family:ui-monospace,monospace;font-size:.85em}.inline-markdown strong{font-weight:600}.cloze-blank{color:var(--text-color-highlight);border-bottom:2px solid var(--text-color-weak);padding:0 .1em;font-weight:600;display:inline}.cloze-blank--with-hint{color:var(--text-color-weak);font-style:italic;font-weight:500}.cloze-answer{color:var(--text-color-highlight);background:var(--secondary);border-radius:var(--radius-xs);padding:.05em .25em;font-weight:600;display:inline}.image-occlusion{width:fit-content;max-width:100%;margin:0 auto;display:block}.image-occlusion__stage{width:100%;max-width:min(100%,720px);display:inline-block;position:relative}.image-occlusion__image{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.image-occlusion__overlay{pointer-events:none;position:absolute;inset:0}.image-occlusion__mask{box-sizing:border-box;transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;position:absolute}.image-occlusion__mask--hidden{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--text-color-accent) 5%, transparent) 0 8px, transparent 8px 16px), color-mix(in srgb, var(--surface-accent) 96%, var(--secondary) 4%);border:1px solid color-mix(in srgb, var(--text-color-accent) 26%, var(--border-color) 74%);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text-color-accent) 10%, transparent), 0 0 0 1px color-mix(in srgb, var(--text-color-accent) 8%, transparent)}.image-occlusion__mask--active{background:color-mix(in srgb, var(--accent) 22%, var(--surface-accent));border-color:var(--accent)}.image-occlusion__mask--revealed{box-shadow:none;background:0 0;border:none}.image-occlusion__polygons{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.image-occlusion__polygon{vector-effect:non-scaling-stroke;transition:fill var(--duration-fast) ease, stroke var(--duration-fast) ease}.image-occlusion__polygon--hidden{fill:color-mix(in srgb, var(--surface-accent) 96%, var(--secondary) 4%);stroke:color-mix(in srgb, var(--text-color-accent) 26%, var(--border-color) 74%);stroke-width:1px}.image-occlusion__polygon--active{fill:color-mix(in srgb, var(--accent) 22%, var(--surface-accent));stroke:var(--accent)}.image-occlusion__polygon--revealed{fill:#0000;stroke:none}.image-occlusion__arrow{fill:none;stroke:var(--text-color-accent);stroke-width:5px;stroke-linecap:round;vector-effect:non-scaling-stroke}.image-occlusion__arrowhead{fill:var(--text-color-accent);stroke:none}.image-occlusion__text{fill:#000;stroke:#fff;stroke-width:.06em;paint-order:stroke;stroke-linejoin:round;white-space:pre;font-family:Arial,sans-serif}.image-occlusion__toggle{border:1px solid var(--border-color);background:var(--bg-color);color:var(--text-color);cursor:pointer;border-radius:4px;margin:8px auto 0;padding:4px 10px;display:block}.image-occlusion__label{text-align:center;white-space:pre-wrap;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:4px;max-width:min(240px,80%);padding:2px 8px;font-size:13px;font-weight:500;line-height:1.25;position:absolute}.image-occlusion__label--hidden{color:var(--text-color-accent);background:color-mix(in srgb, var(--surface-accent) 85%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--text-color-accent) 20%, transparent)}.image-occlusion__label--revealed{color:var(--text-color);background:color-mix(in srgb, var(--bg-color) 90%, transparent);box-shadow:0 1px 2px #0000001f}.io-editor-overlay{pointer-events:none;position:absolute}.io-editor-overlay__mask{box-sizing:border-box;background:#d6a45a1f;border:1.5px solid #d6a45a80;border-radius:2px;position:absolute}.io-editor-overlay__svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.io-editor-overlay__polygon{fill:#d6a45a1f;stroke:#d6a45a80;stroke-width:1.5px;vector-effect:non-scaling-stroke}.io-editor-overlay__arrow{fill:none;stroke:#d6a45ab3;stroke-width:1.5px;stroke-linecap:round;vector-effect:non-scaling-stroke}.io-editor-overlay__number{color:#fff;background:#d6a45acc;border-radius:3px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 3px;font-size:10px;font-weight:600;line-height:1;display:flex;position:absolute;top:2px;left:2px}.card-content{text-align:center;width:100%;font-family:var(--font-review);--card-scale:1}.card-content pre{text-align:left}.card-content ul,.card-content ol{text-align:left;margin:.5em 0;padding-left:1.5em}.card-content li{text-align:left}.card-content__front{font-size:calc(var(--text-2xl) * var(--card-scale));color:var(--text-color-highlight);font-weight:400;line-height:1.4}.card-content__back{margin-top:var(--space-8)}.card-content__divider{background-color:var(--border-color);width:40px;height:1px;margin:0 auto var(--space-8)}@media (width<=768px){.card-content__back{margin-top:var(--space-6)}.card-content__divider{margin:0 auto var(--space-6)}}.card-content__back-text{font-size:calc(var(--text-xl) * var(--card-scale));color:var(--text-color)}.card-content--compact .card-content__front{font-size:var(--text-lg)}.card-content--compact .card-content__back{margin-top:var(--space-4)}.card-content--compact .card-content__divider{margin:0 auto var(--space-4)}.card-content--compact .card-content__back-text{font-size:var(--text-lg)}.card-content--preview{text-align:left}.card-content--preview .card-content__front{font-size:var(--text-2xl);color:var(--text-color);font-weight:500}.card-content--preview .card-content__back{margin-top:0}.card-content--preview .card-content__divider{background-color:var(--border-color-weak);width:100%;margin:var(--space-6) 0}.card-content--preview .card-content__back-text{font-size:var(--text-lg);color:var(--text-color-medium);line-height:1.4}.card-content table{border-collapse:collapse;margin:.75em auto}.card-content th,.card-content td{border:1px solid var(--border-color);text-align:left;padding:.4em .6em}.btn{justify-content:center;align-items:center;gap:var(--space-2);border:1px solid var(--border-color-weak);border-radius:var(--radius-pill);box-shadow:var(--box-shadow-weak);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, color var(--duration-fast) ease, opacity var(--duration-fast) ease, transform var(--duration-fast) ease;font-weight:500;display:inline-flex}.btn--sm{padding:var(--inset-md) var(--space-3);font-size:var(--text-sm)}.btn--md{padding:var(--inset-lg) var(--space-3);font-size:var(--text-base)}.btn--lg{padding:var(--inset-xl) var(--space-4);font-size:var(--text-lg)}.btn--pill{border-radius:var(--radius-pill)}.btn--primary{background-color:var(--button-primary-bg);color:var(--button-primary-text)}.btn--primary:hover:not(:disabled){background-color:var(--button-primary-bg-hover)}.btn--reverse{background-color:var(--primary);color:var(--button-primary-bg);border-color:var(--border-color)}.btn--reverse:hover:not(:disabled){background-color:var(--primary-highlight)}.btn--dashed{border:1px dashed var(--border-color)}.btn--cta{box-shadow:var(--box-shadow);transition:background-color var(--duration-fast) ease, box-shadow var(--duration-normal) ease, transform var(--duration-normal) ease;background-image:linear-gradient(#ffffff24,#fff0 55%)}.btn--cta:hover:not(:disabled){box-shadow:var(--box-shadow-strong);transform:translateY(-1px)}@media (prefers-reduced-motion:reduce){.btn--cta{transition:background-color var(--duration-fast) ease}.btn--cta:hover:not(:disabled){transform:none}}.icon-btn{padding:var(--inset-sm);border-radius:var(--radius-sm);color:var(--text-color-extra-weak);-webkit-user-select:none;user-select:none;cursor:pointer;transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease, transform var(--duration-fast) ease;background-color:#0000;border:none;justify-content:center;align-items:center;display:inline-flex}:where(.icon-btn){position:relative}.icon-btn:before{content:"";position:absolute;inset:-4px}.icon-btn--sm{padding:var(--inset-sm)}.icon-btn--md{padding:var(--inset-md)}.icon-btn:hover:not(:disabled){background-color:var(--secondary-extra-weak);color:var(--text-color-medium)}.icon-btn--active{background-color:var(--secondary-extra-weak);color:var(--text-color)}.btn:active:not(:disabled),.icon-btn:active:not(:disabled){transform:scale(.96)}.btn:disabled,.icon-btn:disabled{opacity:.5;cursor:not-allowed}.split-button{transition:transform var(--duration-fast) ease;align-items:stretch;display:inline-flex}.split-button:has(:active:not(:disabled)){transform:scale(.96)}.split-button>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.split-button>.btn:active{transform:none}.split-button__chevron{padding:0 var(--space-2);background-color:var(--button-primary-bg);color:var(--button-primary-text);border:1px solid var(--border-color-weak);-webkit-user-select:none;user-select:none;border-radius:0 var(--radius-pill) var(--radius-pill) 0;cursor:pointer;transition:background-color var(--duration-fast) ease;border-left:0;justify-content:center;align-items:center;display:inline-flex}.split-button:not(.split-button--pill)>.btn{border-radius:var(--radius-md) 0 0 var(--radius-md)}.split-button:not(.split-button--pill) .split-button__chevron{border-radius:0 var(--radius-md) var(--radius-md) 0}.split-button__chevron:hover{background-color:var(--button-primary-bg-hover)}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes overlay-fade-out{0%{opacity:1}to{opacity:0}}.drawer-backdrop{background:var(--overlay-color);z-index:1000;opacity:0;cursor:pointer;transition:opacity .32s cubic-bezier(.32,.72,0,1);position:fixed;inset:0}.drawer-backdrop--presented{opacity:var(--drawer-backdrop-opacity,1)}.drawer-backdrop--closing{opacity:0;pointer-events:none}.drawer-backdrop--dragging{will-change:opacity;transition:none}.drawer-backdrop--transparent{background:0 0;transition:none}.drawer{background:var(--panel-surface,var(--primary));border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--box-shadow-strong);z-index:1001;height:var(--drawer-height,85dvh);max-height:var(--drawer-height,92dvh);touch-action:pan-y;flex-direction:column;transition:transform .32s cubic-bezier(.32,.72,0,1);display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden;transform:translateY(100%)}.drawer:after{content:"";opacity:0;z-index:10;pointer-events:none;transition:opacity var(--duration-fast) ease;background:#0000002e;position:absolute;inset:0}.drawer--closing{pointer-events:none}.drawer--dragging{will-change:transform;transition:none}.drawer--viewport-tracking,.drawer--viewport-frozen{transition:none}.drawer-backdrop--backgrounded{opacity:0;pointer-events:none}.drawer-backdrop--backgrounded-visible,.drawer--backgrounded{pointer-events:none}.drawer--backgrounded-visible{z-index:1001}.drawer--over-visible-background{z-index:1002}.drawer--backgrounded-visible:after{opacity:1}.drawer-backdrop--foregrounding{opacity:var(--drawer-backdrop-opacity,1)}.drawer-backdrop--transparent.drawer-backdrop--closing,.drawer-backdrop--transparent.drawer-backdrop--foregrounding{transition:none}.drawer__grabber{padding:var(--space-4) 0;cursor:ns-resize;touch-action:none;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;display:flex}.drawer__grabber-handle{background:var(--secondary-strong-highlight);border-radius:var(--radius-pill);width:36px;height:4px}.drawer__header{padding:var(--space-1) var(--space-5) var(--space-3);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.drawer__title{font-size:var(--text-base);color:var(--text-color);text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-weight:600;overflow:hidden}.drawer__content{padding:0 var(--space-5);scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;overscroll-behavior:none;touch-action:pan-y;min-height:0;font-size:var(--text-base);color:var(--text-color-weak);overflow-y:auto}.drawer--dragging .drawer__content{overflow-y:hidden}.drawer__content-inner{padding-bottom:calc(var(--space-3) + var(--safe-area-bottom));display:block}.drawer--fill{--panel-surface:var(--primary-light)}.drawer--fill .drawer__content{flex-direction:column;padding:0;display:flex;overflow:hidden}.drawer--fill .drawer__content-inner{flex-direction:column;flex:1;min-height:0;display:flex}.drawer:has(.drawer__footer) .drawer__content-inner{padding-bottom:0}.drawer__footer{padding:var(--space-2) var(--space-5);padding-bottom:calc(var(--space-2) + var(--safe-area-bottom));align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.drawer__footer .modal__footer-actions{gap:var(--space-2);flex:1;display:flex}.drawer__footer .modal__footer-actions>.btn{flex:1}.drawer--menu .drawer__content,.drawer--dropdown .drawer__content{padding-inline:var(--space-2)}.drawer--dropdown .dropdown__search-wrap{padding:var(--space-1) var(--space-3) var(--space-2);border-bottom:1px solid var(--border-color-weak)}.drawer--dropdown .dropdown__search{font-size:var(--text-lg)}:is(.drawer--menu,.drawer--dropdown) .dropdown__list{padding:var(--space-1) 0;overscroll-behavior:auto;max-height:none;overflow-y:visible}:is(.drawer--menu,.drawer--dropdown) .dropdown__item{padding:var(--space-3);min-height:44px}:is(.drawer--menu,.drawer--dropdown) .toggle-field__slider--sm{width:var(--space-10);height:var(--space-6)}:is(.drawer--menu,.drawer--dropdown) .toggle-field__slider--sm:after{top:var(--space-1);left:var(--space-1);width:var(--space-4);height:var(--space-4)}:is(.drawer--menu,.drawer--dropdown) .toggle-field__slider--sm.toggle-field__slider--checked:after{transform:translateX(var(--space-4))}.drawer--menu .dropdown__header{padding:var(--space-3) var(--space-3) var(--space-1)}.drawer--menu .dropdown__divider{margin:var(--space-2) var(--space-3)}.drawer.spotlight{max-height:90dvh}.drawer.spotlight .drawer__content{padding:0;padding-bottom:var(--safe-area-bottom);flex-direction:column;min-height:0;display:flex}.drawer.spotlight .spotlight__content{min-height:0}.modal-backdrop{background:var(--overlay-color);z-index:1000;animation:overlay-fade-in var(--duration-fast) ease-out;cursor:pointer;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-backdrop--closing{animation:overlay-fade-out var(--duration-fast) ease-in forwards;pointer-events:none}.modal{cursor:auto;background:var(--primary);border-radius:var(--radius-lg);border:1px solid var(--border-color-weak);box-shadow:var(--box-shadow-strong);min-width:320px;max-width:min(480px, calc(100vw - var(--space-8)));max-height:calc(100dvh - var(--space-8));animation:modal-in var(--duration-fast) ease-out;flex-direction:column;display:flex;overflow:hidden}@keyframes modal-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal--closing{animation:modal-out var(--duration-fast) ease-in forwards}@keyframes modal-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.modal-backdrop--backgrounded{animation:overlay-fade-out var(--duration-fast) ease-in forwards;pointer-events:none}.modal--backgrounded{animation:modal-out var(--duration-fast) ease-in forwards;pointer-events:none}.modal-backdrop--foregrounding{animation:overlay-fade-in var(--duration-fast) ease-out}.modal--foregrounding{animation:modal-in var(--duration-fast) ease-out}.modal__header{padding:var(--space-5) var(--space-5) var(--space-3);justify-content:space-between;align-items:center;display:flex}.modal__title{font-size:var(--text-lg);color:var(--text-color);margin:0;margin-right:var(--space-3);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.modal__close{padding:var(--inset-sm);margin:calc(-1 * var(--inset-sm));border-radius:var(--radius-sm);color:var(--text-color-weak);cursor:pointer;transition:color var(--duration-fast), background var(--duration-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.modal__close:hover{color:var(--text-color);background:var(--secondary)}.modal__content{padding:0 var(--space-5);padding-top:var(--space-2);font-size:var(--text-base);color:var(--text-color-weak);overflow-y:auto}.modal__content:last-child{padding-bottom:var(--space-5)}.modal__footer{padding:var(--space-4);justify-content:flex-end;align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.modal__footer-left{align-items:center;gap:var(--space-2);margin-right:auto;display:flex}.modal__footer-actions{justify-content:flex-end;gap:var(--space-2);display:flex}.modal__footer-actions>.btn{min-width:100px}.modal__footer-actions:only-child>.btn:only-child,.modal__footer-actions:only-child{flex:1}.pricing-modal.modal{width:fit-content;max-width:calc(100vw - var(--space-8));padding:var(--space-4);overflow-y:auto}@keyframes spin{to{transform:rotate(360deg)}}.spinner-icon{color:var(--text-color-weak);animation:1s linear infinite spin}.spinner-ring{border:2px solid var(--border-color);border-top-color:var(--text-color);border-radius:50%;animation:.8s linear infinite spin}.toggle-field{flex-direction:column;display:flex}.toggle-field__toggle{justify-content:space-between;align-items:center;gap:var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:row-reverse;display:flex}.toggle-field__toggle input{display:none}.toggle-field__slider{width:var(--space-10);height:var(--space-6);background-color:var(--secondary);border-radius:var(--radius-pill);transition:background-color var(--duration-normal) ease;flex-shrink:0;position:relative}.toggle-field__slider:after{content:"";top:var(--space-1);left:var(--space-1);width:var(--space-4);height:var(--space-4);background-color:var(--button-primary-text);transition:transform var(--duration-normal) ease;border-radius:50%;position:absolute;box-shadow:0 1px 3px #0003}.toggle-field__toggle input:checked+.toggle-field__slider,.toggle-field__slider--checked{background-color:var(--button-primary-bg)}.toggle-field__toggle input:checked+.toggle-field__slider:after,.toggle-field__slider--checked:after{transform:translateX(var(--space-4))}.toggle-field__slider--sm{width:var(--space-7);height:var(--space-4)}.toggle-field__slider--sm:after{top:calc(var(--space-1) / 2);left:calc(var(--space-1) / 2);width:var(--space-3);height:var(--space-3)}.toggle-field__slider--sm.toggle-field__slider--checked:after{transform:translateX(var(--space-3))}.toggle-field__text{flex:1;min-width:0}.toggle-field__label{font-size:var(--text-base);color:var(--text-color-highlight);font-weight:400;line-height:1.3}.toggle-field__hint{font-size:var(--text-sm);color:var(--text-color-extra-weak);margin-top:1px;line-height:1.4;display:block}.toggle-field--boxed .toggle-field__toggle{padding:13px var(--space-4);border:1px solid var(--border-color-weak);border-radius:var(--radius-md);transition:background var(--duration-fast) ease}.toggle-field--boxed .toggle-field__toggle:hover{background:var(--primary-highlight)}.pricing__restore{margin:var(--space-4) auto 0;color:var(--text-color-extra-weak);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;text-decoration:underline;display:block}.pricing__restore:hover{color:var(--text-color)}.pricing{width:100%;max-width:640px;padding-top:var(--space-6);padding-bottom:var(--space-2);margin:0 auto;position:relative}.pricing__close{cursor:pointer;color:var(--text-color-weak);padding:var(--inset-sm);border-radius:var(--radius-sm);transition:color var(--duration-fast);background:0 0;border:none;position:absolute;top:0;right:0}.pricing__close:hover{color:var(--text-color)}.pricing__header{text-align:center;margin-bottom:var(--space-6);width:0;min-width:100%}.pricing__header h2{font-size:var(--text-3xl);margin-bottom:var(--space-2)}.pricing__header p{color:var(--text-color-weak);font-size:var(--text-lg)}.pricing__billing-toggle{justify-content:center;align-items:center;gap:var(--space-3);margin-top:var(--space-4);display:flex}.pricing__billing-toggle>span{font-size:var(--text-base);color:var(--text-color-extra-weak);cursor:pointer;transition:color var(--duration-fast);-webkit-user-select:none;user-select:none;font-weight:500}.pricing__billing-toggle--active{color:var(--text-color)!important}.pricing__tiers{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.pricing__tiers--single{grid-template-columns:1fr;max-width:360px;margin:0 auto}.pricing__tier{background:var(--primary);border-radius:var(--radius-lg);padding:var(--space-6);border:1px solid var(--border-color-weak);transition:box-shadow var(--duration-slow) ease;flex-direction:column;display:flex;position:relative;overflow:hidden}.pricing__tier:hover{box-shadow:var(--box-shadow)}.pricing__tier--highlighted{border-color:var(--border-color);box-shadow:var(--box-shadow)}.pricing__tier--glow{--mouse-x:50%;--mouse-y:50%}.pricing__tier--glow:after{--glow-strong:#64646414;--glow-mid:#6464640a;content:"";background:radial-gradient(circle at var(--mouse-x) var(--mouse-y), var(--glow-strong) 0%, var(--glow-mid) 25%, transparent 60%);pointer-events:none;z-index:2;opacity:0;transition:opacity var(--duration-slow) ease;position:absolute;inset:0}:root.dark .pricing__tier--glow:after{--glow-strong:#c8c8c80f;--glow-mid:#c8c8c808}.pricing__tier--hover-active.pricing__tier--glow:after{opacity:1}.pricing__tier-header{z-index:3;position:relative}.pricing__tier-header h3{font-size:var(--text-2xl)}.pricing__tier-description{color:var(--text-color-weak);font-size:var(--text-base);margin-bottom:var(--space-5)}.pricing__tier-content{z-index:3;flex-grow:1;position:relative}.pricing__price{margin:var(--space-2) 0 var(--space-5)}.pricing__price-main{align-items:baseline;display:flex}.pricing__amount{font-size:var(--text-4xl);color:var(--text-color-highlight);font-weight:600}.pricing__period{font-size:var(--text-base);color:var(--text-color-weak);margin-left:var(--space-1)}.pricing__price-secondary{font-size:var(--text-base);color:var(--text-color-weak);margin-top:var(--space-1);min-height:1.4em}.pricing__annual-info{align-items:center;gap:var(--space-2);display:flex}.pricing__save-badge{background-color:var(--button-primary-bg);color:var(--button-primary-text);font-size:var(--text-xs);padding:1px var(--space-1-5);border-radius:var(--radius-pill);font-weight:600}.pricing__feature-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.pricing__feature-item{align-items:flex-start;gap:var(--space-2);font-size:var(--text-base);color:var(--text-color);display:flex}.pricing__feature-item svg{color:var(--text-color-extra-weak);flex-shrink:0;margin-top:2px}.pricing__tier--highlighted .pricing__feature-item svg{color:var(--text-color-weak)}.pricing__feature-item--anti svg{color:var(--color-error)}.pricing__tier-footer{margin-top:var(--space-5);z-index:3;position:relative}.pricing__button{width:100%;padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border-color-weak);background-color:var(--primary);color:var(--text-color);cursor:pointer;font-size:var(--text-base);transition:background-color var(--duration-fast), border-color var(--duration-fast);font-weight:500}.pricing__button:hover{background-color:var(--primary-highlight)}.pricing__button--highlighted{background-color:var(--button-primary-bg);border-color:var(--button-primary-bg);color:var(--button-primary-text)}.pricing__button--highlighted:hover{background-color:var(--button-primary-bg-hover);border-color:var(--button-primary-bg-hover)}.pricing__button--loading{opacity:.7;cursor:not-allowed}.pricing__button--subscribed{cursor:default;opacity:.6}.pricing__button--subscribed:hover{background-color:var(--primary)}.pricing__button-content{justify-content:center;align-items:center;gap:var(--space-2);display:flex}@media (width<=768px){.pricing__tiers{grid-template-columns:1fr}.pricing__tier{padding:var(--space-5)}.pricing__tier--hover-active.pricing__tier--glow:after{display:none}}.card-info-modal.modal{width:560px;max-width:calc(100vw - var(--space-8));background:var(--primary)}.card-info{gap:var(--space-6);flex-direction:column;display:flex}.card-info__stats{background:var(--border-color-weak);border:1px solid var(--border-color-weak);border-radius:var(--radius-md);grid-template-columns:repeat(3,1fr);gap:1px;display:grid;overflow:hidden}.card-info__stat{gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--primary);flex-direction:column;display:flex}.card-info__stat-label{font-size:var(--text-sm);color:var(--text-color-extra-weak);text-transform:uppercase;letter-spacing:.04em;font-weight:500}.card-info__stat-value{font-size:var(--text-lg);color:var(--text-color);font-variant-numeric:tabular-nums;font-weight:500}.card-info__reviews{border:1px solid var(--border-color-weak);border-radius:var(--radius-md);max-height:360px;overflow:auto}.card-info__table{border-collapse:collapse;width:100%;font-size:var(--text-base)}.card-info__table thead{background:var(--primary);z-index:1;position:sticky;top:0}.card-info__header{text-align:left;font-size:var(--text-sm);color:var(--text-color-extra-weak);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border-color-weak);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;font-weight:500}.card-info__header--right{text-align:right}.card-info__row:not(:last-child) .card-info__cell{border-bottom:1px solid var(--border-color-weak)}.card-info__cell{padding:var(--space-3) var(--space-4);color:var(--text-color);font-size:var(--text-base);white-space:nowrap;font-variant-numeric:tabular-nums}.card-info__cell:first-child{flex-direction:column;gap:2px;display:flex}.card-info__cell--right{text-align:right}.card-info__cell--muted{color:var(--text-color-medium)}.card-info__date{color:var(--text-color)}.card-info__time{font-size:var(--text-sm);color:var(--text-color-extra-weak)}.card-info__rating{font-weight:500;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em}.card-info__rating--again{color:var(--color-error)}.card-info__rating--good,.card-info__rating--easy{color:var(--color-success)}.card-info__rating--hard{color:var(--color-warning)}.card-info__empty{font-size:var(--text-base);color:var(--text-color-extra-weak);text-align:center;padding:var(--space-6) 0}@media (width<=768px){.card-info__stats{grid-template-columns:repeat(2,1fr)}}.empty-state{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-16) var(--space-6);text-align:center;flex-direction:column;display:flex}.page>.empty-state{flex:1;padding-top:0;padding-bottom:0}.empty-state__icon{isolation:isolate;border:1px solid var(--border-color-strong);border-radius:var(--radius-lg);background:var(--primary);width:60px;height:60px;color:var(--text-color);margin-bottom:var(--space-4);justify-content:center;align-items:center;display:flex;position:relative}.empty-state__icon:before{content:"";z-index:-2;border-radius:var(--radius-lg);background:var(--secondary);position:absolute;inset:-5px 3px 3px -5px;transform:rotate(-9deg)}.empty-state__icon:after{content:"";z-index:-1;border-radius:inherit;background:var(--primary);position:absolute;inset:0}.empty-state__icon svg{stroke-width:1.6px;width:32px;height:32px}.empty-state__title{font-size:var(--text-lg);color:var(--text-color-highlight);margin:0;font-weight:500;line-height:1.35}.empty-state__description{font-size:var(--text-base);color:var(--text-color-weak);max-width:34ch;margin:0;line-height:1.45}.empty-state__actions{justify-content:center;align-items:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.empty-state__actions .btn{box-shadow:none}.empty-state__actions .btn .icon{color:currentColor}.empty-state--compact{padding:var(--space-5) var(--space-3)}.empty-state--compact .empty-state__icon{width:44px;height:44px;margin-bottom:var(--space-2);border-radius:var(--radius-md)}.empty-state--compact .empty-state__icon:before{border-radius:var(--radius-md)}.empty-state--compact .empty-state__icon svg{width:24px;height:24px}.empty-state--compact .empty-state__title{font-size:var(--text-base)}.empty-state--compact .empty-state__actions{margin-top:var(--space-1)}@media (width<=480px){.empty-state__actions{flex-direction:column;align-items:stretch;width:min(280px,100%)}}.progress-ring{position:relative}.progress-ring__svg{transform:rotate(-90deg)}.progress-ring__background{fill:none;stroke:var(--secondary)}.progress-ring__progress{fill:none;stroke:var(--text-color-extra-weak);stroke-linecap:round;transition:stroke-dasharray var(--duration-slow) ease}.progress-bar{margin:0 var(--space-1);-webkit-user-select:none;user-select:none}.progress-bar__bar{height:var(--space-2);border-radius:var(--radius-pill);background-color:var(--secondary);display:flex;overflow:hidden}.progress-bar__segment{transition:flex var(--duration-slow) ease}.progress-bar__segment--mastered{background-color:var(--text-color-highlight)}.progress-bar__segment--learning{background-color:var(--text-color-extra-weak)}.progress-bar__segment--due{background-color:var(--text-color-extra-extra-weak)}.progress-bar__segment--new{background-color:var(--status-new)}.progress-bar__legend{justify-content:center;gap:var(--space-6);margin-top:var(--space-4);display:flex}.progress-bar__legend-item{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-color-extra-weak);display:flex}.progress-bar__dot{width:var(--space-2);height:var(--space-2);border-radius:var(--radius-xs)}.progress-bar__dot--mastered{background-color:var(--text-color-highlight)}.progress-bar__dot--learning{background-color:var(--text-color-extra-weak)}.progress-bar__dot--due{background-color:var(--text-color-extra-extra-weak)}.progress-bar__dot--new{background-color:var(--status-new)}.deck-icon{flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:inline-flex}.tooltip{padding:var(--space-2) var(--space-3);background:var(--text-color-highlight);color:var(--primary);border-radius:var(--radius-sm);font-size:var(--text-sm);white-space:normal;pointer-events:none;z-index:10002;max-width:min(20rem,100vw - 16px);box-shadow:var(--box-shadow);position:fixed}.tooltip--animated{opacity:0;transform-origin:bottom;transition:opacity var(--duration-normal) cubic-bezier(.16, 1, .3, 1), scale var(--duration-normal) cubic-bezier(.16, 1, .3, 1);scale:.9}.tooltip--animated.tooltip--below{transform-origin:top}.tooltip--animated.tooltip--visible{opacity:1;scale:1}.tooltip__title{font-weight:500}.tooltip__detail{font-size:var(--text-xs);opacity:.8}.tooltip__detail--weak{opacity:.6}.label-tooltip__anchor{display:inline-flex;position:relative}.hint-pulse{pointer-events:none;z-index:1;width:18px;height:18px;position:absolute;top:-5px;right:-5px}.hint-pulse__core{background:#a78bfa;border-radius:50%;width:30%;height:30%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hint-pulse__ring{opacity:0;background:#a78bfa;border-radius:50%;width:100%;height:100%;animation:2.4s ease-out infinite hint-expand;position:absolute}.hint-pulse__ring--2{animation-delay:.8s}.hint-pulse__ring--3{animation-delay:1.6s}@keyframes hint-expand{0%{opacity:.5;transform:scale(.3)}to{opacity:0;transform:scale(1)}}.hint-label{white-space:nowrap;padding:var(--space-2) var(--space-3);background:var(--text-color-highlight);color:var(--primary);border-radius:var(--radius-sm);font-size:var(--text-sm);box-shadow:var(--box-shadow);pointer-events:none;z-index:1;animation:hint-label-in var(--duration-slow) cubic-bezier(.34, 1.56, .64, 1) both;animation-delay:var(--duration-slow);font-weight:500;position:absolute}.hint-label__arrow{background:var(--text-color-highlight);width:8px;height:8px;position:absolute}.hint-label--top{transform-origin:bottom;bottom:calc(100% + 8px);left:50%;translate:-50%}.hint-label--top .hint-label__arrow{bottom:-4px;left:50%;translate:-50%;rotate:45deg}.hint-label--bottom{transform-origin:top;top:calc(100% + 8px);left:50%;translate:-50%}.hint-label--bottom .hint-label__arrow{top:-4px;left:50%;translate:-50%;rotate:45deg}.hint-label--left{transform-origin:100%;top:50%;right:calc(100% + 8px);translate:0 -50%}.hint-label--left .hint-label__arrow{top:50%;right:-4px;translate:0 -50%;rotate:45deg}.hint-label--right{transform-origin:0;top:50%;left:calc(100% + 8px);translate:0 -50%}.hint-label--right .hint-label__arrow{top:50%;left:-4px;translate:0 -50%;rotate:45deg}@keyframes hint-label-in{0%{opacity:0;scale:.6}}.deck-source-badge{border-radius:22%;flex-shrink:0;width:14px;height:14px}.deck-source-chip{align-items:center;gap:var(--space-2);padding:3px var(--space-3) 3px 3px;border-radius:var(--radius-full,999px);background:var(--secondary);font-size:var(--text-sm);color:var(--text-color-weak);cursor:default;font-weight:500;display:inline-flex}.deck-source-chip img{border-radius:999px;width:20px;height:20px}.pull-to-refresh{position:relative}.pull-to-refresh__content{will-change:transform}.pull-to-refresh__indicator{top:calc(var(--safe-area-top) + 2px);z-index:20;pointer-events:none;display:flex;position:fixed;left:50%}.pull-to-refresh__indicator svg{transition:stroke-dashoffset .1s linear;transform:rotate(-90deg)}.pull-to-refresh__indicator--spinning svg{transition:none;animation:.7s linear infinite pull-to-refresh-spin}@keyframes pull-to-refresh-spin{0%{transform:rotate(-90deg)}to{transform:rotate(270deg)}}.popover{z-index:10001;background:var(--primary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--box-shadow);position:fixed;overflow:hidden}.popover--in-container{position:absolute}.popover{--popover-dy:-6px}.popover--top{--popover-dy:6px}@keyframes popover-in{0%{opacity:0;transform:translateY(var(--popover-dy)) scale(.96)}to{opacity:1;transform:none}}@keyframes popover-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(var(--popover-dy)) scale(.96)}}.popover--open{animation:popover-in var(--duration-fast) cubic-bezier(.22, 1, .36, 1) forwards}.popover--closing,.popover--backgrounded{animation:popover-out var(--duration-fast) cubic-bezier(.22, 1, .36, 1) forwards;pointer-events:none}.popover--foregrounding{animation:popover-in var(--duration-fast) cubic-bezier(.22, 1, .36, 1) forwards}.dropdown{display:inline-flex;position:relative}.dropdown--context-menu{width:0;height:0;position:absolute;overflow:visible}.dropdown__trigger{cursor:pointer;outline:none}.dropdown__trigger--disabled{cursor:not-allowed;pointer-events:none}.dropdown__panel{min-width:160px}.dropdown__search-wrap{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-color-weak);display:flex}.dropdown__search-icon{color:var(--text-color-extra-weak);flex-shrink:0}.dropdown__search{min-width:0;font-size:var(--text-base);color:var(--text-color);background:0 0;border:none;outline:none;flex:1;padding:0}.dropdown__search::placeholder{color:var(--text-color-extra-weak)}.dropdown__list{padding:var(--space-1-5);overscroll-behavior:contain;max-height:280px;overflow-y:auto}.dropdown__list::-webkit-scrollbar{width:6px}.dropdown__list::-webkit-scrollbar-track{background:0 0}.dropdown__list::-webkit-scrollbar-thumb{background:var(--secondary-highlight);border-radius:3px}.dropdown__item{align-items:center;gap:var(--space-2);padding:var(--inset-sm) var(--space-2);border-radius:var(--radius-sm);min-height:35px;font-size:var(--text-base);cursor:pointer;color:var(--text-color);-webkit-user-select:none;user-select:none;transition:background-color 80ms;display:flex}.dropdown__item--highlighted{background:var(--secondary-extra-weak)}.dropdown__item--active{font-weight:500}.dropdown__item--disabled{opacity:.4;cursor:not-allowed}.dropdown__item-icon{flex-shrink:0;align-items:center;display:flex}.dropdown__item-body{flex-direction:column;flex:1;min-width:0;display:flex}.dropdown__item-desc{font-size:var(--text-sm);color:var(--text-color-extra-weak)}.dropdown__check{color:var(--text-color);flex-shrink:0;margin-left:auto}.dropdown__item-trailing{color:var(--text-color-extra-weak);flex-shrink:0;align-items:center;margin-left:auto;display:flex}.dropdown__divider{background-color:var(--border-color-weak);height:1px;margin:var(--space-1) var(--space-2)}.dropdown__header{padding:var(--space-2) var(--space-2) var(--space-1);font-size:var(--text-sm);color:var(--text-color-weak);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.dropdown__item--danger{color:var(--color-danger)}.dropdown__item--danger:hover{background-color:var(--color-danger-bg)}.dropdown__item--toggle{cursor:pointer}.dropdown__create{color:var(--text-color-weak)}.dropdown__create-plus{color:var(--text-color-extra-weak);flex-shrink:0;align-items:center;line-height:1;display:flex}.dropdown__empty{padding:var(--space-1);text-align:center;font-size:var(--text-base);color:var(--text-color-extra-weak)}.dropdown__empty-state{padding:var(--space-1)}.dropdown__select{align-items:center;gap:var(--space-1-5);padding:var(--dropdown-padding,var(--inset-md) var(--space-3));background:var(--dropdown-bg,var(--primary));border:var(--dropdown-border,1px solid var(--border-color-weak));border-radius:var(--dropdown-radius,var(--radius-pill));font-size:var(--text-base);font-weight:var(--dropdown-font-weight,400);color:var(--dropdown-color,var(--text-color));cursor:pointer;transition:background var(--duration-fast) ease, border-color var(--duration-fast) ease;display:flex;position:relative}.dropdown__select:hover{background:var(--dropdown-hover-bg,var(--primary));border-color:var(--dropdown-hover-border,var(--border-color))}.dropdown__select--open{background:var(--dropdown-open-bg,var(--primary));border-color:var(--dropdown-open-border,var(--border-color))}.dropdown__select--disabled{opacity:var(--dropdown-disabled-opacity,1);color:var(--dropdown-disabled-color,var(--text-color-weak));cursor:not-allowed;pointer-events:none}.dropdown__select-icon{flex-shrink:0;align-items:center;display:flex}.dropdown__select-label{flex:1;min-width:0}.dropdown__select-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:7px;right:9px}.dropdown__select-chevron{color:var(--text-color-extra-weak);transition:transform var(--duration-fast);flex-shrink:0}.dropdown__select-chevron--open{transform:rotate(180deg)}.menu-dropdown{min-width:210px;max-width:260px}.dropdown-pressing,.dropdown-pressing *{-webkit-user-select:none!important;user-select:none!important}.deck-picker .dropdown__select{--dropdown-padding:var(--space-1);--dropdown-border:none;--dropdown-hover-bg:var(--secondary-extra-weak);--dropdown-open-bg:var(--secondary-weak);--dropdown-radius:var(--radius-pill);--dropdown-color:var(--text-color-highlight);--dropdown-font-weight:500;border:1px solid var(--border-color-weak)}.topbar .deck-picker .dropdown__select{border:unset}.deck-picker__menu{max-width:260px}.category-picker .dropdown__select{--dropdown-padding:var(--space-1);--dropdown-border:none;--dropdown-hover-bg:var(--secondary-extra-weak);--dropdown-open-bg:var(--secondary-weak);--dropdown-radius:var(--radius-sm);--dropdown-color:var(--text-color-highlight);--dropdown-font-weight:500;border:1px solid var(--border-color-weak)}.topbar .category-picker .dropdown__select{border:unset}.menu-dropdown--emoji-picker{min-width:unset;max-width:unset;overflow:visible}.emoji-picker{gap:var(--space-2);padding:var(--space-2);--emoji-sidebar-btn-size:34px;--emoji-sidebar-font-size:19px;--emoji-viewport-height:342px;flex-direction:column;width:360px;display:flex}.emoji-picker__header{gap:var(--space-1);align-items:center;display:flex}.emoji-picker__search{padding:var(--space-1) var(--space-2);font-size:var(--text-sm);color:var(--text-color);background:var(--secondary-extra-weak);border:1px solid var(--border-color-weak);border-radius:var(--radius-sm);outline:none;flex:1}.emoji-picker__search:focus{border-color:var(--border-color)}.emoji-picker__search::placeholder{color:var(--text-color-extra-weak)}.emoji-picker__remove{padding:var(--space-1);color:var(--text-color-weak);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.emoji-picker__remove:hover{background:var(--secondary-extra-weak);color:var(--text-color)}.emoji-picker__body{gap:var(--space-1);display:flex}.emoji-picker__sidebar{gap:var(--space-1);padding-top:var(--space-1);flex-direction:column;flex-shrink:0;display:flex}.emoji-picker__sidebar-btn,.emoji-picker__item{border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.emoji-picker__sidebar-btn{width:var(--emoji-sidebar-btn-size);height:var(--emoji-sidebar-btn-size);font-size:var(--emoji-sidebar-font-size);opacity:.5;transition:opacity var(--duration-fast), background var(--duration-fast)}.emoji-picker__sidebar-btn:hover{opacity:1;background:var(--secondary-weak)}.emoji-picker__sidebar-btn--active{opacity:1;background:var(--secondary-extra-weak)}.emoji-picker__viewport{height:var(--emoji-viewport-height);flex:1;min-width:0;overflow-y:auto}.emoji-picker__loading,.emoji-picker__empty{height:100px;font-size:var(--text-sm);color:var(--text-color-extra-weak);justify-content:center;align-items:center;display:flex}.emoji-picker__category{padding:var(--space-2) var(--section-label-inset) var(--section-label-gap);background:var(--primary);position:sticky;top:0}.emoji-picker__list [frimousse-row]{gap:1px;display:flex}.emoji-picker__item{width:36px;height:36px;font-size:22px}.emoji-picker__item:hover{background:var(--secondary-weak)}.drawer--emoji-picker .drawer__content{padding:0 var(--space-2) var(--space-3);padding-bottom:calc(var(--space-3) + var(--safe-area-bottom));flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.drawer--emoji-picker .drawer__content-inner{flex-direction:column;flex:1;min-height:0;padding-bottom:0;display:flex}.drawer--emoji-picker .emoji-picker{width:100%;max-width:none;padding:var(--space-2) 0 0;gap:var(--space-3);flex:1;min-height:0}.drawer--emoji-picker .emoji-picker__body{flex:1;min-height:0}.drawer--emoji-picker .emoji-picker__viewport{height:auto;min-height:0}.template-picker .dropdown__select{--dropdown-padding:var(--space-1) var(--space-2);--dropdown-bg:var(--secondary-extra-weak);--dropdown-border:1px solid var(--border-color-weak);--dropdown-hover-bg:var(--secondary-weak);--dropdown-hover-border:var(--border-color);--dropdown-open-bg:var(--secondary);--dropdown-open-border:var(--border-color);--dropdown-radius:var(--radius-pill);--dropdown-color:var(--text-color-medium);--dropdown-disabled-color:var(--text-color-extra-weak);--dropdown-disabled-opacity:.6}.template-picker .dropdown__select-label{max-width:150px}.template-picker__menu{max-width:220px}@media (width<=768px){.template-picker .dropdown__select-label{max-width:100px}}.template-field-map.modal{width:min(520px, calc(100vw - var(--space-8)))}.template-field-map__content{gap:var(--space-4);flex-direction:column;display:flex}.template-field-map__summary{color:var(--text-color-weak);margin:0;line-height:1.45}.template-field-map__rows{border:1px solid var(--border-color-weak);border-radius:var(--radius-md);overflow:hidden}.template-field-map__row{align-items:center;gap:var(--space-3);padding:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(180px,220px);display:grid}.template-field-map__row+.template-field-map__row{border-top:1px solid var(--border-color-weak)}.template-field-map__target{color:var(--text-color);font-size:var(--text-base);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.template-field-map__dropdown,.template-field-map__dropdown .dropdown__trigger,.template-field-map__dropdown .dropdown__select{width:100%;min-width:0}.template-field-map__dropdown{--dropdown-radius:var(--radius-sm);--dropdown-border:1px solid var(--border-color);--dropdown-hover-border:var(--border-color-strong);--dropdown-open-border:var(--border-color-strong);--dropdown-padding:var(--space-2) var(--space-3)}@media (width<=560px){.template-field-map.drawer .template-field-map__content{gap:var(--space-3)}.template-field-map.drawer .template-field-map__summary{padding-bottom:var(--space-1)}.template-field-map.drawer .template-field-map__rows{margin-inline:calc(-1 * var(--space-5));border:0;border-radius:0}.template-field-map__row{gap:var(--space-2);grid-template-columns:1fr}.template-field-map.drawer .template-field-map__row{padding:var(--space-3) var(--space-5)}.template-field-map.drawer .template-field-map__row:first-child{border-top:1px solid var(--border-color-weak)}.template-field-map.drawer .template-field-map__dropdown{--dropdown-bg:transparent;--dropdown-hover-bg:var(--primary-weak-highlight);--dropdown-open-bg:var(--primary-weak-highlight)}}.doc-picker .dropdown__select{--dropdown-padding:var(--space-1);--dropdown-bg:transparent;--dropdown-border:none;--dropdown-hover-bg:var(--secondary-extra-weak);--dropdown-open-bg:var(--secondary-weak);--dropdown-radius:var(--radius-sm);--dropdown-color:var(--text-color-highlight);--dropdown-font-weight:500;border:1px solid var(--border-color-weak);max-width:280px}.topbar .doc-picker .dropdown__select{border:unset}.doc-picker__panel{box-sizing:content-box;width:420px;max-width:90vw;height:calc(220px + 2 * var(--space-3));grid-template-rows:auto minmax(0,1fr);grid-template-columns:220px minmax(0,1fr);display:grid;overflow:hidden}.doc-picker__panel>.dropdown__search-wrap,.doc-picker__panel>.dropdown__list{border-right:1px solid var(--border-color-weak);grid-column:1}:is(.doc-picker__panel,.doc-picker__drawer) .dropdown__empty-state{text-align:center;font-size:var(--text-base);color:var(--text-color-extra-weak)}.doc-picker__preview-pane{gap:var(--space-2);min-width:0;min-height:0;padding:var(--space-3);background:var(--primary-light);flex-direction:column;grid-area:1/2/-1;display:flex}.doc-picker__preview-thumb{border-radius:var(--radius-sm);border:1px solid var(--border-color-weak);background:var(--primary);flex:none;justify-content:center;align-items:center;height:220px;max-height:100%;display:flex;overflow:hidden}.doc-picker__thumb{object-fit:contain;border-radius:2px;max-width:100%;max-height:100%}.doc-picker__preview-thumb--dark .doc-picker__thumb:not(.doc-picker__thumb--placeholder){filter:var(--reader-dark-invert)}.doc-picker__thumb--placeholder{width:100%;height:100%;color:var(--text-color-extra-weak);justify-content:center;align-items:center;display:flex}.doc-picker__preview-empty{color:var(--text-color-extra-weak);flex:1;justify-content:center;align-items:center;display:flex}.inline-card-preview__image{vertical-align:middle;object-fit:contain;border-radius:3px;max-width:6em;height:1.5em;display:inline-block}.logo{align-items:center;gap:var(--space-3);display:flex}.logo__icon{flex-shrink:0;justify-content:center;align-items:center;display:flex}.logo__img{object-fit:cover;border-radius:33%;width:100%;height:100%}.logo--md .logo__icon{width:32px;height:32px}.logo--sm{gap:var(--space-2)}.logo--sm .logo__icon{width:28px;height:28px}.logo--lg .logo__icon{width:56px;height:56px}.logo--xl .logo__icon{width:64px;height:64px}.logo__text{font-family:var(--font-serif);color:var(--text-color-highlight);white-space:nowrap;-webkit-user-select:none;user-select:none;font-weight:500;transform:translateY(2px)}.logo--md .logo__text{font-size:var(--text-2xl)}.logo--sm .logo__text{font-size:var(--text-xl)}.site-footer{background-color:var(--bg-color);padding:var(--space-12) var(--space-8) var(--space-8);margin-top:var(--space-16);border-top:1px solid var(--border-color-weak);border-radius:var(--radius-xl)}.site-footer__content{justify-content:space-between;max-width:1080px;margin:0 auto;display:flex}.site-footer__section{gap:var(--space-4);flex-direction:column;width:fit-content;display:flex}.site-footer__brand{align-items:center;gap:var(--space-3);display:flex}.site-footer__section h3{font-size:var(--text-xl);color:var(--text-color-highlight);margin:0}.site-footer__section p{color:var(--text-color-medium);font-size:var(--text-base);margin:0;line-height:1.6}.site-footer__section ul{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.site-footer__section ul li a,.site-footer__contact,.site-footer__link-button{color:var(--text-color-medium);font-size:var(--text-base);transition:color var(--duration-normal) ease;text-decoration:none}.site-footer__section ul li a:hover,.site-footer__contact:hover,.site-footer__link-button:hover{color:var(--text-color-highlight)}.site-footer__link-button{cursor:pointer;background:0 0;border:none;padding:0}.site-footer__contact{align-items:center;gap:var(--space-2);display:flex}.site-footer__bottom{max-width:1080px;margin:var(--space-10) auto 0;padding-top:var(--space-6);border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.site-footer__bottom p{color:var(--text-color-medium);font-size:var(--text-base);margin:0}.site-footer__action{border-radius:var(--radius-pill);width:2.25rem;height:2.25rem;color:var(--text-color-medium);background-color:var(--overlay-color);transition:color var(--duration-normal) ease, background-color var(--duration-normal) ease, transform var(--duration-normal) ease;justify-content:center;align-items:center;display:inline-flex}.site-footer__action:hover{color:var(--text-color-highlight);background-color:var(--secondary);transform:translateY(-1px)}@media (width<=768px){.site-footer{padding:var(--space-10) var(--space-5) var(--space-5);margin-top:var(--space-10)}.site-footer__content{gap:var(--space-8);flex-direction:column}.site-footer__section ul{gap:var(--space-2)}.site-footer__bottom{flex-direction:column;align-items:flex-start}.site-footer__action{display:none}}.public-layout{background-color:var(--bg-color)}.public-navbar{top:var(--desktop-nav-height);z-index:100;transition:border-color var(--duration-normal), background-color var(--duration-normal);-webkit-user-select:none;user-select:none;background-color:#0000;border-bottom:1px solid #0000;position:sticky}html.native .public-navbar{padding-top:var(--safe-area-top)}.public-navbar--scrolled{background-color:var(--bg-color);border-bottom-color:var(--border-color-weak)}.public-navbar__inner{max-width:1080px;height:60px;padding:0 var(--space-6);grid-template-columns:1fr auto 1fr;align-items:center;margin:0 auto;display:grid}.public-navbar__logo{text-decoration:none}.public-navbar__links{align-items:center;gap:var(--space-1);display:flex}.public-navbar__links a{font-size:var(--text-lg);color:var(--text-color);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);transition:color var(--duration-fast), background-color var(--duration-fast);font-weight:500;text-decoration:none}.public-navbar__links a:hover,.public-navbar__links a.public-navbar__link--active{color:var(--text-color-highlight);background-color:var(--primary-highlight)}.public-navbar__actions{align-items:center;gap:var(--space-2);justify-self:end;display:flex}.public-navbar__actions a{text-decoration:none}.public-navbar__menu{justify-self:end;display:none}.public-navbar__menu-toggle{border:1px solid var(--border-color-weak);border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-color);cursor:pointer;transition:background-color var(--duration-fast), transform var(--duration-fast);background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.public-navbar__menu-toggle:hover{background:var(--primary-highlight)}.public-navbar__menu-toggle:active{transform:scale(.94)}.public-navbar__menu-toggle-icon{transition:transform .28s cubic-bezier(.4,0,.2,1);display:inline-flex}.public-navbar__menu-toggle[aria-expanded=true] .public-navbar__menu-toggle-icon{transform:rotate(90deg)}.public-navbar__menu-panel{top:calc(100% + var(--space-2));left:var(--space-4);right:var(--space-4);background:var(--bg-color);border:1px solid var(--border-color-weak);border-radius:var(--radius-lg);z-index:10;opacity:0;transform-origin:100% 0;transition:opacity .22s,transform .26s cubic-bezier(.2,.9,.25,1.05);position:absolute;overflow:hidden;transform:translateY(-6px)scale(.98);box-shadow:0 12px 32px -12px #0000002e}.public-navbar__menu-panel--open{opacity:1;transform:translateY(0)scale(1)}.public-navbar__menu-panel-inner{padding:var(--space-4);gap:var(--space-2);flex-direction:column;max-width:1080px;margin:0 auto;display:flex}.public-navbar__menu-link{align-items:center;gap:var(--space-2);padding:9px var(--space-3);font-size:var(--text-base);color:var(--text-color-weak);border-radius:var(--radius-sm);opacity:0;transition:opacity .24s ease, transform .32s cubic-bezier(.2, .8, .2, 1), background-color var(--duration-fast), color var(--duration-fast);font-weight:500;line-height:1.4;text-decoration:none;display:flex;transform:translateY(-4px)}.public-navbar__menu-panel--open .public-navbar__menu-link{opacity:1;transform:translateY(0)}.public-navbar__menu-panel--open .public-navbar__menu-link:first-child{transition-delay:40ms,40ms,0s,0s}.public-navbar__menu-panel--open .public-navbar__menu-link:nth-child(2){transition-delay:80ms,80ms,0s,0s}.public-navbar__menu-panel--open .public-navbar__menu-link:nth-child(3){transition-delay:.12s,.12s,0s,0s}.public-navbar__menu-panel--open .public-navbar__menu-link:nth-child(4){transition-delay:.16s,.16s,0s,0s}.public-navbar__menu-panel--open .public-navbar__menu-link:nth-child(5){transition-delay:.2s,.2s,0s,0s}.public-navbar__menu-link:hover,.public-navbar__menu-link--active{color:var(--text-color-highlight);background:var(--primary-highlight)}.public-navbar__menu-link--cta{margin-top:var(--space-1);padding:9px var(--space-4);color:var(--button-primary-text);background:var(--button-primary-bg);border-radius:999px;justify-content:center}.public-navbar__menu-link--cta:hover{color:var(--button-primary-text);background:var(--button-primary-bg-hover)}.public-navbar__menu-link-icon{color:var(--text-color-extra-weak);flex-shrink:0}.public-navbar__menu-link:hover .public-navbar__menu-link-icon,.public-navbar__menu-link--active .public-navbar__menu-link-icon{color:var(--text-color)}.public-navbar__menu-link--cta .public-navbar__menu-link-icon{color:var(--button-primary-text)}.public-navbar__menu-divider{background:var(--border-color-weak);height:1px;margin:var(--space-1)}@media (width<=640px){.public-navbar__links,.public-navbar__actions{display:none}.public-navbar__menu{display:block}.public-navbar__inner{padding:0 var(--space-4);grid-template-columns:1fr auto}}@media (prefers-reduced-motion:reduce){.public-navbar__menu-toggle-icon,.public-navbar__menu-link,.public-navbar__menu-panel{transition:none!important}}.input-field{gap:var(--section-label-gap);flex-direction:column;display:flex}.input-field__wrapper{align-items:center;display:flex;position:relative}.input-field__icon{left:var(--space-3);color:var(--text-color-extra-weak);pointer-events:none;align-items:center;display:flex;position:absolute}.input-field__input{width:100%;padding:var(--space-2) var(--space-3);background-color:var(--primary);border:1px solid var(--border-color-weak);border-radius:var(--radius-lg);font-size:var(--text-base);color:var(--text-color);transition:border-color var(--duration-fast) ease;outline:none}.input-field--with-icon .input-field__input{padding-left:calc(var(--space-3) + 16px + var(--space-2))}.input-field__input::placeholder{color:var(--text-color-extra-weak)}.input-field__input:focus{border-color:var(--border-color)}.input-field__input--error,.input-field__input--error:focus{border-color:var(--color-error)}.input-field__error{color:var(--color-error);font-size:var(--text-base)}.rich-textarea-container{--rich-textarea-toolbar-slot:calc(var(--space-6));position:relative;overflow:visible}.rich-textarea-container--reserve-toolbar{padding-bottom:var(--rich-textarea-toolbar-slot)}.rich-textarea-container--reserve-toolbar .rich-textarea__toolbar{min-height:var(--rich-textarea-toolbar-slot);padding-top:var(--space-2);margin-bottom:calc(-1 * var(--space-1));position:absolute;bottom:0;left:0}.rich-textarea{width:100%;min-height:1.5em;padding:0 0 var(--space-1) 0;color:var(--text-color);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;background-color:#0000;border:none;outline:none;display:block}.rich-textarea--readonly{cursor:default;opacity:.7;-webkit-user-select:text;user-select:text}.rich-textarea:empty:before{content:attr(data-placeholder);color:var(--text-color-extra-weak);pointer-events:none}.rich-textarea img{border-radius:var(--radius-sm);cursor:pointer;max-width:100%;height:auto;transition:opacity var(--duration-fast) ease, transform var(--duration-fast) ease;margin:0;display:block}.rich-textarea img.selected{outline:none}.image-resize-outline{border:1.5px solid var(--text-color-extra-extra-weak);border-radius:var(--radius-sm);pointer-events:none;z-index:5;position:absolute}.image-resize-handle{background:var(--text-color-extra-weak);z-index:6;-webkit-user-select:none;user-select:none;border-radius:2px;width:8px;height:8px;position:absolute}.image-resize-handle--nw{cursor:nwse-resize}.image-resize-handle--ne,.image-resize-handle--sw{cursor:nesw-resize}.image-resize-handle--se{cursor:nwse-resize}.rich-textarea--uploading{opacity:.7}.rich-textarea__upload-indicator{font-size:var(--text-xs);color:var(--text-color-weak);font-style:italic;position:absolute;top:0;right:0}.rich-textarea strong,.rich-textarea b{font-weight:600}.rich-textarea em,.rich-textarea i{font-style:italic}.rich-textarea .latex-inline,.rich-textarea .latex-block{cursor:pointer;border-radius:var(--radius-xs);transition:background var(--duration-fast) ease}.rich-textarea .latex-inline{padding:0 2px;display:inline}.rich-textarea .latex-block{padding:var(--space-1);margin:var(--space-2) 0;text-align:center;display:block}.rich-textarea .latex-placeholder{min-width:1em;min-height:1em}.rich-textarea .latex-block .katex-html{min-height:1.5em}.rich-textarea .latex-inline.latex-placeholder{display:inline-block}.rich-textarea .latex-inline:hover,.rich-textarea .latex-block:hover{background:var(--secondary-extra-weak)}.rich-textarea .latex-inline .katex,.rich-textarea .latex-block .katex{font-size:1em}.rich-textarea .latex-block .katex{font-size:1.1em}.rich-textarea .katex-error{color:var(--color-error);font-family:monospace;font-size:var(--text-xs)}.rich-textarea__toolbar{align-items:center;gap:var(--space-1);opacity:0;pointer-events:none;max-height:0;transition:opacity var(--duration-fast) ease, transform var(--duration-fast) ease;padding-top:0;display:flex;overflow:hidden;transform:translateY(-2px)}.rich-textarea__toolbar--visible{opacity:1;max-height:none;padding-top:var(--space-2);pointer-events:auto;transform:translateY(0)}.rich-textarea-container--reserve-toolbar .rich-textarea__toolbar,.rich-textarea-container--reserve-toolbar .rich-textarea__toolbar--visible{max-height:none}.rich-textarea__toolbar-btn{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:var(--text-color-extra-weak);cursor:pointer;font-family:var(--font-sans);font-size:var(--text-xs);transition:background var(--duration-fast) ease, color var(--duration-fast) ease;background:0 0;border:none;align-items:center;line-height:1;display:inline-flex}.rich-textarea__toolbar-btn:hover{background:var(--secondary-extra-weak);color:var(--text-color-weak)}.rich-textarea__toolbar>:first-child .rich-textarea__toolbar-btn{margin-left:calc(-1 * var(--space-2))}.rich-textarea__toolbar-btn:active{background:var(--secondary)}.rich-textarea__toolbar-btn--active{background:var(--secondary);color:var(--text-color)}.rich-textarea__toolbar--mobile{z-index:1001;opacity:1;pointer-events:auto;max-height:none;padding:0 var(--space-2);height:var(--space-14);gap:var(--space-2);background-color:var(--primary);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--box-shadow);position:fixed;left:50%;overflow:visible;transform:translate(-50%)}.rich-textarea__toolbar--mobile .rich-textarea__toolbar-btn{width:var(--space-10);height:var(--space-10);border-radius:var(--radius-md);color:var(--text-color-extra-weak);justify-content:center;margin:0;padding:0}.rich-textarea__toolbar--mobile .rich-textarea__toolbar-btn:active{transform:scale(.95)}.rich-textarea__toolbar--mobile .rich-textarea__toolbar-btn--active{color:var(--text-color-highlight);background-color:var(--secondary-extra-weak)}.rich-textarea__toolbar--mobile>:first-child .rich-textarea__toolbar-btn{margin-left:0}.rich-textarea__size-btn{font-weight:600;font-size:var(--text-sm);min-width:var(--space-10)}body:has(.rich-textarea__toolbar--mobile) .mobile-dock{display:none}.popover--latex-editor{transition:top var(--duration-normal) cubic-bezier(.22, 1, .36, 1), left var(--duration-normal) cubic-bezier(.22, 1, .36, 1)}.popover:has(.latex-editor){overflow:visible}.latex-editor{gap:var(--space-2);padding:var(--space-2) var(--space-3);flex-direction:column;min-width:280px;max-width:520px;display:flex}.latex-editor__input{width:100%;padding:var(--space-2) 0;border:none;border-bottom:1px solid var(--border-color-weak);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:var(--text-sm);color:var(--text-color);resize:none;background:0 0;outline:none;min-height:3.2em;max-height:40vh;line-height:1.6;overflow-y:auto}.latex-editor__input::placeholder{color:var(--text-color-extra-extra-weak);font-style:italic}.latex-editor__footer{align-items:center;gap:var(--space-3);display:flex}.latex-editor__mode-toggle{background:var(--secondary-extra-weak);border-radius:var(--radius-sm);gap:2px;padding:2px;display:flex}.latex-editor__mode-btn{padding:calc(var(--space-1)*.5) var(--space-3);border-radius:calc(var(--radius-sm) - 2px);color:var(--text-color-extra-weak);font-size:var(--text-xxs);cursor:pointer;transition:background var(--duration-fast) ease, color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.latex-editor__mode-btn:hover{color:var(--text-color-weak)}.latex-editor__mode-btn--active{background:var(--primary);color:var(--text-color);box-shadow:var(--box-shadow-weak)}.latex-editor__hint{justify-content:flex-end;gap:var(--space-1);flex:1;display:flex}.latex-editor__cloze{color:var(--text-color-extra-extra-weak)}.latex-editor__cloze:hover{color:var(--text-color-weak)}.latex-editor__cloze--active{color:var(--text-color);background:var(--secondary-extra-weak);border-radius:var(--radius-sm)}.drawer--latex-editor .drawer__content{padding:0 var(--space-4) var(--space-4);padding-bottom:calc(var(--space-4) + var(--safe-area-bottom))}.drawer--latex-editor .latex-editor{min-width:unset;max-width:unset;gap:var(--space-3);padding:0}.drawer--latex-editor .latex-editor__input{font-size:var(--text-lg);min-height:6.4em;padding:var(--space-3) 0}.drawer--latex-editor .latex-editor__footer{gap:var(--space-2)}.drawer--latex-editor .latex-editor__cloze{margin-left:auto}.drawer--latex-editor .latex-editor__mode-toggle{border-radius:var(--radius-md);padding:3px}.drawer--latex-editor .latex-editor__mode-btn{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);border-radius:calc(var(--radius-md) - 3px);min-height:var(--space-10)}.drawer--latex-editor .latex-editor__cloze{width:var(--space-10);height:var(--space-10);border-radius:var(--radius-md)}.drawer--latex-editor .latex-editor__cloze svg{width:20px;height:20px}.drawer--latex-editor .latex-editor__hint{display:none}.segmented-control{--seg-inset:2px;--seg-height:var(--space-8);padding:var(--seg-inset);background:var(--primary-highlight);border-radius:var(--radius-pill);border:1px solid var(--border-color-weak);-webkit-user-select:none;user-select:none;align-items:center;display:flex;position:relative}.segmented-thumb{top:var(--seg-inset);bottom:var(--seg-inset);border-radius:var(--radius-pill);background:var(--segmented-thumb-bg);border:1px solid var(--border-color-weak);box-shadow:var(--box-shadow-weak);pointer-events:none;transition:left var(--duration-slow) cubic-bezier(.35, 0, .25, 1), width var(--duration-slow) cubic-bezier(.35, 0, .25, 1), opacity var(--duration-normal) ease;position:absolute}.segmented-control.is-previewing .segmented-thumb{opacity:.55}.segmented-option{padding:var(--space-2) var(--space-4);height:var(--seg-height);border-radius:var(--radius-pill);font-family:var(--font-sans);font-size:var(--text-base);color:var(--text-color-weak);cursor:pointer;transition:color var(--duration-normal) ease;white-space:nowrap;z-index:1;background:0 0;border:none;outline:none;flex:1;justify-content:center;align-items:center;display:flex;position:relative}.segmented-option:hover:not(.is-active){color:var(--text-color)}.segmented-option.is-active{color:var(--text-color-highlight)}.segmented-option:before{content:"";background:var(--border-color);opacity:1;width:1px;height:56%;transition:opacity var(--duration-normal) ease;border-radius:1px;position:absolute;top:22%;left:0}.segmented-option:first-of-type:before,.segmented-option.is-active:before,.segmented-option.hide-divider:before{opacity:0}.segmented-option:active:not(.is-active) .segmented-option__label{transform:scale(.95)}@media (width<=768px){.segmented-control{--seg-height:var(--space-10)}.segmented-control:not(.segmented-control--small) .segmented-option--icon svg{width:20px;height:20px}}.segmented-control--small{--seg-height:var(--space-6)}.segmented-control--small .segmented-option{padding:var(--space-1) var(--space-3);font-size:var(--text-sm)}.segmented-option--icon{padding:var(--space-1) var(--space-3)}.segmented-option--icon .segmented-option__label{justify-content:center;align-items:center;display:inline-flex}.step-dots{align-items:center;gap:var(--space-2);display:flex}.step-dot{border-radius:var(--radius-pill);background-color:var(--text-color-extra-extra-weak);cursor:pointer;width:8px;height:6px;transition:all var(--duration-slow) ease;border:none;padding:0}.step-dot.current{background-color:var(--text-color);width:2rem}.step-dot.completed{background-color:var(--text-color-extra-weak)}.step-dot.upcoming{cursor:default}.step-dot:hover:not(.upcoming){background-color:var(--text-color-weak)}.step-dot.current:hover{background-color:var(--text-color)}.study-session-modal.modal{max-width:400px}.study-session-modal .modal__header{padding-bottom:var(--space-2)}.study-session{gap:var(--space-4);flex-direction:column;display:flex}.study-session__summary{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--primary-highlight);border-radius:var(--radius-md);border:1px solid var(--border-color-weak);display:flex}.study-session__stat{flex-direction:column;flex:1;align-items:center;display:flex}.study-session__stat+.study-session__stat{border-left:1px solid var(--border-color-weak)}.study-session__stat-number{font-size:var(--text-lg);color:var(--text-color-highlight);letter-spacing:-.02em;transition:color var(--duration-normal) ease;font-weight:500;line-height:1}.study-session__stat-label{font-size:var(--text-xs);color:var(--text-color-extra-weak);text-transform:uppercase;letter-spacing:.04em;margin-top:3px;font-weight:500}.study-session__modes{border:1px solid var(--border-color-weak);border-radius:var(--radius-md);flex-direction:column;display:flex;overflow:hidden}.study-session__mode{align-items:center;gap:var(--space-3);padding:13px var(--space-4);cursor:pointer;text-align:left;border:none;border-bottom:1px solid var(--border-color-weak);width:100%;transition:background var(--duration-fast) ease;background:0 0;display:flex}.study-session__mode:last-child{border-bottom:none}.study-session__mode:hover,.study-session__mode.is-selected{background:var(--primary-highlight)}.study-session__radio{border:1.5px solid var(--secondary-strong-highlight);width:16px;height:16px;transition:border-color var(--duration-fast) ease, background var(--duration-fast) ease;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;display:flex}.study-session__mode.is-selected .study-session__radio{border-color:var(--button-primary-bg);background:var(--button-primary-bg)}.study-session__radio:after{content:"";background:var(--button-primary-text);opacity:0;width:5px;height:5px;transition:opacity var(--duration-fast) ease, transform var(--duration-fast) ease;border-radius:50%;transform:scale(.5)}.study-session__mode.is-selected .study-session__radio:after{opacity:1;transform:scale(1)}.study-session__mode-badge{font-size:var(--text-xs);border-radius:var(--radius-pill);background:var(--secondary);color:var(--text-color-extra-weak);letter-spacing:.01em;transition:background var(--duration-fast) ease, color var(--duration-fast) ease;flex-shrink:0;padding:2px 7px;font-weight:500}.study-session__mode.is-selected .study-session__mode-badge{background:var(--surface-accent);color:var(--text-color-accent)}.study-session__expand{margin-top:calc(-1 * var(--space-4));grid-template-rows:0fr;transition:grid-template-rows .28s cubic-bezier(.4,0,.2,1),margin-top .28s cubic-bezier(.4,0,.2,1);display:grid}.study-session__expand.is-open{grid-template-rows:1fr;margin-top:0}.drawer.study-session-modal .study-session__expand{transition:none}.study-session__expand-inner{overflow:hidden}.study-session__expand-content{gap:var(--space-4);padding-top:var(--space-1);flex-direction:column;display:flex}.study-session__field{gap:var(--space-2);flex-direction:column;display:flex}.study-session__start-count{opacity:.7;transition:opacity var(--duration-normal) ease;font-weight:400}.collapsible-list{background:var(--primary);border:1px solid var(--border-color-weak);border-radius:var(--radius-md);box-shadow:var(--box-shadow-weak);overflow:hidden}.collapsible-list__overflow{transition:grid-template-rows var(--duration-slow) ease;grid-template-rows:0fr;display:grid}.collapsible-list__overflow--expanded{grid-template-rows:1fr}.collapsible-list__content{scrollbar-gutter:stable;overflow-y:hidden}.collapsible-list__overflow-inner{overflow:hidden}.collapsible-list__toggle{border:none;border-top:1px solid var(--border-color-weak);width:100%;color:var(--text-color-secondary);font:inherit;font-size:var(--text-sm);cursor:pointer;background:0 0;padding:10px}.copyable-field{align-items:center;gap:var(--space-2);background:var(--primary-highlight);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);display:flex}.copyable-field__input{min-width:0;font-size:var(--text-base);color:var(--text-color);background:0 0;border:none;outline:none;flex:1;font-family:inherit}.copyable-field__copy{cursor:pointer;padding:var(--space-1);color:var(--text-color-weak);transition:color var(--duration-fast);background:0 0;border:none;flex-shrink:0}.copyable-field__copy:hover{color:var(--text-color)}.file-card{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--secondary-extra-weak);border-radius:var(--radius-md);display:flex}.file-card__badge{border-radius:var(--radius-sm);background:var(--primary);border:1px solid var(--border-color);letter-spacing:.04em;width:40px;height:50px;color:var(--text-color-extra-weak);flex-shrink:0;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.file-card__info{min-width:0}.file-card__name{font-size:var(--text-base);color:var(--text-color);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.file-card__meta{font-size:var(--text-sm);color:var(--text-color-extra-weak);margin-top:2px}.drop-zone{align-items:center;gap:var(--space-3);min-width:360px;padding:var(--space-14) var(--space-8);border-radius:var(--radius-lg);background:var(--primary);border:1px solid var(--border-color-weak);color:var(--text-color-weak);box-shadow:var(--box-shadow-weak);cursor:pointer;transition:border-color var(--duration-fast);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}.drop-zone:hover,.drop-zone--active{border-color:var(--secondary-highlight)}.drop-zone__title{font-size:var(--text-xl);color:var(--text-color);font-weight:500}.drop-zone__subtitle{font-size:var(--text-sm);color:var(--text-color-extra-weak)}@media (width<=768px){.drop-zone{min-width:0;padding:var(--space-10) var(--space-5)}}.anki-import-modal.modal{width:min(480px, calc(100vw - var(--space-8)))}.anki-import{gap:var(--space-5);flex-direction:column;display:flex}.import-modal.modal{width:min(480px, calc(100vw - var(--space-8)))}.import-modal__content{gap:var(--space-5);flex-direction:column;display:flex}.import-modal__row{gap:var(--space-4);display:flex}.import-modal__field{gap:var(--section-label-gap);flex-direction:column;display:flex}.import-modal__field--half{flex:1;min-width:0}.import-modal__error{font-size:var(--text-sm);color:var(--color-error);padding:var(--space-3);background:var(--color-danger-bg);border-radius:var(--radius-sm)}.import-modal__mapping-list,.import-modal__preview{border:1px solid var(--border-color-weak);border-radius:var(--radius-md);overflow:hidden}.import-modal__mapping-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);transition:opacity var(--duration-fast) ease;display:flex}.import-modal__mapping-row+.import-modal__mapping-row{border-top:1px solid var(--border-color-weak)}.import-modal__mapping-row--skip{opacity:.45}.import-modal__mapping-name{font-size:var(--text-base);color:var(--text-color);min-width:0}.import-modal__preview-side{padding:var(--space-3);gap:var(--space-1);flex-direction:column;display:flex}.import-modal__preview-text{font-size:var(--text-base);color:var(--text-color);white-space:pre-line;line-height:1.45}.import-modal__preview-divider{background:var(--border-color-weak);height:1px}.import-modal__hint{font-size:var(--text-sm);color:var(--text-color-extra-weak)}.export-modal.modal{width:min(480px, calc(100vw - var(--space-8)))}.export{gap:var(--space-3);flex-direction:column;display:flex}.export__format-options{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.export__format-btn{padding:var(--space-3);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--primary);cursor:pointer;transition:all var(--duration-fast);text-align:left;flex-direction:column;align-items:flex-start;display:flex}.export__format-btn:hover{border-color:var(--secondary-strong-highlight)}.export__format-btn--active{border-color:var(--secondary-strong-highlight);background:var(--primary-highlight)}.export__format-btn:disabled{opacity:.5;cursor:not-allowed}.export__format-name{font-size:var(--text-base);color:var(--text-color);font-weight:500}.export__format-desc{font-size:var(--text-sm);color:var(--text-color-extra-weak);margin-top:2px}.export__toggle-wrapper{transition:grid-template-rows var(--duration-normal) ease}.drawer.export-modal .export__toggle-wrapper{transition:none}.update-banner{left:50%;top:calc(var(--safe-area-top,0px) + var(--space-4));z-index:1000000;-webkit-app-region:no-drag;app-region:no-drag;width:calc(100vw - 2rem);max-width:460px;animation:update-banner-slide-in var(--duration-slow) cubic-bezier(.34, 1.56, .64, 1) forwards;position:fixed;transform:translate(-50%)}.update-banner--exiting{animation:update-banner-slide-out var(--duration-normal) cubic-bezier(.36, 0, .66, -.56) forwards}.update-banner__inner{background:var(--primary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--box-shadow);padding:var(--space-3) var(--space-4);align-items:center;gap:var(--space-3);display:flex;position:relative}.update-banner__icon{background:var(--surface-accent);border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-color-accent);animation:update-banner-icon-rotate var(--duration-medium) cubic-bezier(.34, 1.56, .64, 1) var(--duration-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.update-banner__content{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.update-banner__text{color:var(--text-color);font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;font-weight:600;line-height:1.3;overflow:hidden}.update-banner__subtext{color:var(--text-color-weak);font-size:var(--text-xs);white-space:nowrap;text-overflow:ellipsis;line-height:1.2;overflow:hidden}.update-banner__refresh{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);background-color:var(--surface-accent);border:1px solid var(--surface-accent);color:var(--text-color-accent);font-size:var(--text-xs);cursor:pointer;transition:background-color var(--duration-fast) ease;white-space:nowrap;flex-shrink:0;font-weight:600}.update-banner__refresh:hover{background-color:var(--surface-accent-highlight)}.update-banner__refresh:active{transform:translateY(1px)}.update-banner__close{appearance:none;background:var(--primary);border:1px solid var(--border-color);color:var(--text-color-weak);cursor:pointer;width:22px;height:22px;transition:all var(--duration-fast) ease;box-shadow:var(--box-shadow-weak);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:-8px;right:-6px}.update-banner__close:hover{background-color:var(--primary-highlight);color:var(--text-color)}.update-banner__refresh:disabled{opacity:.6;cursor:default}.update-banner--updating .update-banner__icon svg{animation:.9s linear infinite update-banner-spin}.update-banner__progress{left:var(--space-4);right:var(--space-4);opacity:0;height:2px;animation:update-banner-fade-in var(--duration-normal) ease .4s forwards;border-radius:1px;position:absolute;bottom:0;overflow:hidden}.update-banner__progress:after{content:"";background:var(--text-color);border-radius:inherit;width:40%;animation:1.1s cubic-bezier(.65,0,.35,1) infinite update-banner-progress;position:absolute;inset:0}@keyframes update-banner-spin{to{transform:rotate(360deg)}}@keyframes update-banner-fade-in{to{opacity:1}}@keyframes update-banner-progress{0%{transform:translate(-100%)}to{transform:translate(250%)}}@keyframes update-banner-slide-in{0%{opacity:0;transform:translate(-50%)translateY(-12px)scale(.95)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}@keyframes update-banner-slide-out{0%{opacity:1;transform:translate(-50%)translateY(0)scale(1)}to{opacity:0;transform:translate(-50%)translateY(-12px)scale(.95)}}@keyframes update-banner-icon-rotate{0%{opacity:0;transform:rotate(-180deg)scale(.5)}to{opacity:1;transform:rotate(0)scale(1)}}@media (width<=640px){html:not(.desktop) .update-banner__close{display:none}}.cookie-banner{bottom:var(--space-4);left:var(--space-4);right:var(--space-4);z-index:1005;animation:cookie-banner-appear var(--duration-slow) cubic-bezier(.16, 1, .3, 1) forwards;position:fixed}@keyframes cookie-banner-appear{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width>=768px){.cookie-banner{left:auto;right:var(--space-4);width:420px}}.cookie-banner__content{background-color:var(--primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--box-shadow-strong)}.cookie-banner__title{color:var(--text-color);font-size:var(--text-lg);margin-bottom:var(--space-2);font-weight:600}.cookie-banner__description{color:var(--text-color-weak);font-size:var(--text-base);margin-bottom:var(--space-5);line-height:1.5}.cookie-banner__settings{gap:var(--space-3);margin-bottom:var(--space-5);flex-direction:column;display:flex}.cookie-banner__setting{padding:var(--space-3);background-color:var(--primary-highlight);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;display:flex}.cookie-banner__setting-text{margin-right:var(--space-4);flex-grow:1}.cookie-banner__setting-title{color:var(--text-color);font-size:var(--text-base);margin-bottom:var(--space-1);font-weight:500}.cookie-banner__setting-subtitle{color:var(--text-color-weak);font-size:var(--text-sm)}.cookie-banner__actions{gap:var(--space-2);flex-direction:column;display:flex}.cookie-banner__button-group{gap:var(--space-2);display:flex}.cookie-banner__full-width{width:100%}@media (width<=767px){.cookie-banner{bottom:0;left:0;right:0}.cookie-banner__content{border-radius:var(--radius-md) var(--radius-md) 0 0}}.notification-container{top:var(--space-6);left:calc(50% + var(--sidebar-width,0px) / 2);z-index:9999;width:360px;max-width:calc(100vw - var(--space-4) * 2);pointer-events:none;position:fixed;transform:translate(-50%)}.notification-wrapper{pointer-events:auto;cursor:grab;transform-origin:top;width:100%;transition:transform var(--duration-medium) cubic-bezier(.22, 1, .36, 1), opacity var(--duration-medium) cubic-bezier(.22, 1, .36, 1);position:absolute;top:0;left:0}.notification{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);background:var(--primary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--box-shadow-strong);display:flex;position:relative;overflow:hidden}.notification--default .notification__icon,.notification--info .notification__icon{color:var(--text-color-weak)}.notification--success .notification__icon{color:var(--color-success)}.notification--error .notification__icon{color:var(--color-error)}.notification--warning .notification__icon{color:var(--color-warning)}.notification--entering{animation:notification-enter var(--duration-slow) cubic-bezier(.16, 1, .3, 1) forwards}@keyframes notification-enter{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.notification--exiting{opacity:0;transition:opacity var(--duration-normal) ease-out}.notification__icon{flex-shrink:0;justify-content:center;align-items:center;display:flex}.notification__content{min-width:0;transition:all var(--duration-slow) cubic-bezier(.22, 1, .36, 1);flex:1}.notification__title{font-size:var(--text-base);color:var(--text-color);font-weight:500;line-height:1.4;display:flex}.notification__title-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.notification__title-suffix{flex-shrink:0}.notification__count{bottom:var(--space-2);right:var(--space-2);font-size:var(--text-xxs);color:var(--text-color-extra-weak);font-weight:500;position:absolute}.notification__description{font-size:var(--text-sm);color:var(--text-color-medium);margin-top:var(--space-1);line-height:1.4}.notification__actions{align-items:center;gap:var(--space-2);transition:opacity var(--duration-normal) ease;flex-shrink:0;display:flex}.notification__action-btn{padding:var(--inset-md) var(--space-3);font-size:var(--text-sm);color:var(--text-color);background:var(--secondary);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast);border:none;font-weight:500}.notification__action-btn:hover{background:var(--secondary-highlight)}.notification__close{width:20px;height:20px;color:var(--text-color-extra-weak);border-radius:var(--radius-sm);cursor:pointer;opacity:0;transition:color var(--duration-fast), background var(--duration-fast), opacity var(--duration-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:-2px;right:-2px}@media (hover:hover){.notification-wrapper:hover .notification__close{opacity:1}}.notification__close:hover{color:var(--text-color);background:var(--secondary)}.notification__progress{background:var(--text-color-extra-extra-weak);transform-origin:0;height:2px;animation:linear forwards notification-progress;position:absolute;bottom:0;left:0;right:0}@keyframes notification-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.notification__progress--indeterminate{width:40%;animation:1.2s ease-in-out infinite notification-progress-indeterminate}@keyframes notification-progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(350%)}}@media (width<=768px){.notification-container{top:calc(var(--safe-area-top,0px) + var(--space-4));left:50%}.notification__close{display:none}.notification__action-btn{padding:var(--inset-sm) var(--space-3)}}.error-boundary{height:calc(100dvh - var(--desktop-nav-height));justify-content:center;align-items:center;gap:var(--space-3);font-family:var(--font-sans);color:var(--text-color);text-align:center;flex-direction:column;display:flex}.error-boundary__icon{color:var(--text-color-extra-weak)}.error-boundary__title{font-size:var(--text-xl);font-weight:600}.error-boundary__description{font-size:var(--text-base);color:var(--text-color-weak)}.error-boundary__button{margin-top:var(--space-2)}.retry-notice{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;color:var(--text-color-weak);font-size:var(--text-base);display:flex}
