:root{--font-size-word: 3.5rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--transition: .15s ease;--translate-max-width: min(10rem, 25%);--syllable-progress-padding: .5rem;--modal-gap: 1rem;--modal-padding: 1.5rem;--modal-min-width: min(90vw, 22rem);--modal-word-font-size: 2rem;--modal-backdrop-blur: blur(5px);--card-gap: 1.5rem;--card-word-head-gap: .5rem;--card-variant-font-size: 2.5rem;--card-sentence-font-size: 1.5rem;--card-question-gap: 2rem;--card-buttons-gap: .5rem;--weight-position: .35rem;--weight-gap: .2rem;--weight-font-size: 1.25rem;--weight-transition-duration: .28s;--syllable-font-size: 1.1rem;--syllable-slot-padding: .25rem .5rem;--syllable-slot-min-height: 1.5rem;--syllable-delete-padding: .25rem .75rem;--syllable-delete-min-width: 2.5rem;--syllable-columns: 4;--syllable-inactive-opacity: .3;--tones-gap: .75rem;--translate-long-font-size: .9rem;--action-bar-gap: 1rem;--next-button-size: 3rem;--next-button-font-size: 1.5rem;--next-inactive-opacity: .25;--search-button-size: 3rem;--search-button-font-size: 2.25rem;--search-overlay-padding: .4rem;--search-input-height: 3rem;--search-results-max-height: 70vh;--search-result-padding: .75rem 1rem;--search-result-gap: .5rem}:root{--color-bg: #202428;--color-surface: #2a3036;--color-text: #e0e1e0;--color-subtle-text: rgba(224, 225, 224, .75);--color-border: rgba(128, 128, 128, .4);--color-overlay: rgba(18, 21, 24, .6);--color-accent: rgba(255, 166, 0, .9);--color-accent-soft: rgba(245, 222, 179, .2);--color-text-secondary: rgba(224, 225, 224, .6);--color-bg-secondary: #2a3036;--color-bg-hover: rgba(255, 255, 255, .08);--color-positive: rgba(187, 240, 107, .55);--color-positive-text: rgba(187, 240, 107, .9);--color-positive-bg: rgba(187, 240, 107, .1);--color-positive-border: rgba(187, 240, 107, .8);--color-positive-glow: rgba(187, 240, 107, .4);--color-negative: rgba(240, 115, 70, .55);--color-negative-text: rgba(240, 115, 70, 1);--color-negative-bg: rgba(240, 115, 70, .1);--color-negative-border: rgba(240, 115, 70, .8);--color-negative-glow: rgba(240, 115, 70, .4);--color-selection-border: rgba(100, 149, 237, .8);--color-selection-glow: rgba(100, 149, 237, .4);--color-danger: rgba(249, 80, 80, .85);--color-danger-border: rgba(249, 80, 80, .35);--color-weight: rgba(187, 240, 107, .9);--color-weight-shadow: rgba(187, 240, 107, .5);--color-btn-primary: rgba(254, 187, 62, 1);--color-btn-primary-bg: transparent;--color-btn-primary-border: var(--color-border);--shadow-elevated: 0 1.75rem 3.75rem rgba(0, 0, 0, .35);--modal-bg: rgba(0, 0, 0, .55);--modal-backdrop-bg: rgba(0, 0, 0, .3);--hanzi-outline-color: rgba(224, 225, 224, .2);--draw-quiz-drawing-color: rgba(255, 166, 0, .7);--loading-bg: rgba(32, 36, 40, .95);--loading-text: #e0e1e0;--loading-spinner-track: rgba(224, 225, 224, .2);--loading-spinner-active: var(--color-accent);--theme-color: #202428}.syllable-progress{background:var(--color-surface)}@media (prefers-color-scheme: light){:root{--color-bg: #fff;--color-surface: #f3f4f6;--color-text: #2f3439;--color-subtle-text: rgba(47, 52, 57, .6);--color-border: rgba(47, 52, 57, .1);--color-overlay: rgba(255, 255, 255, .6);--color-accent: rgba(0, 103, 205, .8);--color-accent-soft: rgba(0, 90, 255, .15);--color-text-secondary: rgba(47, 52, 57, .55);--color-bg-secondary: #f3f4f6;--color-bg-hover: rgba(0, 0, 0, .05);--color-positive: rgba(46, 125, 50, .55);--color-positive-text: rgba(46, 125, 50, 1);--color-positive-bg: rgba(46, 125, 50, .1);--color-positive-border: rgba(46, 125, 50, .8);--color-positive-glow: rgba(46, 125, 50, .3);--color-negative: rgba(198, 40, 40, .55);--color-negative-text: rgba(198, 40, 40, 1);--color-negative-bg: rgba(198, 40, 40, .1);--color-negative-border: rgba(198, 40, 40, .8);--color-negative-glow: rgba(198, 40, 40, .25);--color-selection-border: rgba(30, 90, 180, .8);--color-selection-glow: rgba(30, 90, 180, .3);--color-danger: rgba(198, 40, 40, .9);--color-danger-border: rgba(198, 40, 40, .4);--color-weight: rgba(46, 125, 50, 1);--color-weight-shadow: rgba(46, 125, 50, .4);--color-btn-primary: rgb(255, 255, 255);--color-btn-primary-bg: rgba(0, 103, 205, .6);--color-btn-primary-border: rgba(0, 103, 205, .6);--shadow-elevated: 0 1.75rem 3.75rem rgba(0, 0, 0, .15);--modal-bg: rgba(255, 255, 255, .75);--modal-backdrop-bg: rgba(0, 0, 0, .3);--hanzi-outline-color: rgba(47, 52, 57, .15);--draw-quiz-drawing-color: rgba(0, 103, 205, .6);--loading-bg: rgba(255, 255, 255, .95);--loading-text: #2f3439;--loading-spinner-track: rgba(47, 52, 57, .15);--loading-spinner-active: var(--color-accent);--theme-color: #ffffff}body{background-color:var(--color-bg);color:var(--color-text)}.syllable-progress{border:1px solid var(--color-border);background:none}button{background-color:var(--color-surface);color:inherit}.menu-action{border:1px solid;border-color:var(--color-danger-border);color:var(--color-danger);background-color:var(--color-bg)}}@media (hover: hover){button:hover{filter:brightness(1.25)}@media (prefers-color-scheme: light){button:hover{filter:brightness(.95)}}.menu-toggle:hover:not(.is-open) .menu-toggle__icon{transform:rotate(30deg)}.menu-action:hover{background-color:var(--color-accent-soft)}.next-button[data-state=hint]:hover{color:var(--color-text);border-color:var(--color-text)}.next-button[data-state=next]:hover{filter:brightness(1.1)}.syllable-progress:has(.syllable-slot.filled) .backspace-btn:hover{color:var(--color-accent)}.search-close:hover{color:var(--color-text)}.search-result:hover{background:var(--color-accent-soft)}}@media (orientation: landscape) and (max-width: 812px){nav{flex-direction:column}.level,.level form{display:flex;flex-direction:column;gap:1rem}body{flex-direction:row;gap:1rem;padding:1rem .5rem}main{flex-direction:row;overflow-y:hidden;overflow-x:auto}main:has(.draw-card){overflow:hidden}.card{display:flex;flex-direction:row;align-items:center}.word-head{flex-direction:column-reverse}.word{flex-direction:column}.sentence{flex-direction:column;line-height:1.1}.weight{position:relative}.question{display:flex;flex-direction:row;align-items:center}.syllable-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.action-bar{flex-direction:column;justify-content:flex-end;padding:0rem 1rem 2rem}}@media (max-width: 480px){:root{--font-size-word: 3rem;--translate-max-width: min(10rem, 45%);--syllable-progress-padding: .3rem}.search-result{flex-wrap:wrap}.search-result-translation{min-width:50%;white-space:normal;text-overflow:clip;text-align:left}}@font-face{font-family:NotoSansSC;src:url(../fonts/NotoSansSC-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Open Sans;src:url(../fonts/OpenSans-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrainsMono;src:url(../fonts/JetBrainsMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;overflow:hidden;overscroll-behavior:none}body{position:fixed;width:100%;height:100svh;overflow:hidden;overscroll-behavior:none;-webkit-overflow-scrolling:auto}dialog:focus{outline:none}body{display:flex;flex-direction:column;gap:1rem;overflow:hidden;padding:2.5% 4%;font-family:NotoSansSC,system-ui,sans-serif;line-height:1.5;letter-spacing:.025rem;background-color:var(--color-bg);color:var(--color-text)}.top-bar{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.75rem}.counter{color:var(--color-subtle-text);font-family:Open Sans,system-ui,sans-serif}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:.3rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-surface);color:inherit;font-family:inherit;cursor:pointer}button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-family:Open Sans,system-ui,sans-serif;font-size:1rem;padding:.5rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-surface);color:inherit;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:active{transform:translateY(0)}.selected{border-color:var(--color-selection-border);box-shadow:0 0 6px var(--color-selection-glow)}button.correct,.translate.correct{border-color:var(--color-positive-border);box-shadow:0 0 6px var(--color-positive-glow);background:var(--color-positive-bg)}button.incorrect,.translate.incorrect{border-color:var(--color-negative-border);box-shadow:0 0 6px var(--color-negative-glow)}main{flex-grow:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;display:flex;flex-direction:column;margin:0 auto;width:min(100%,37.5rem)}main:has(.draw-card){overflow:hidden}.spinner{width:3rem;height:3rem;border-radius:50%;border:.3125rem solid var(--color-surface);border-top-color:var(--color-accent);animation:spin 1s linear infinite}.empty-state{text-align:center;color:var(--color-subtle-text)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.update-banner{position:fixed;bottom:5rem;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--color-surface);border:1px solid var(--color-accent);border-radius:var(--radius-md);box-shadow:var(--shadow-elevated);z-index:9999;max-width:calc(100vw - 2rem)}.update-banner__content{display:flex;flex-direction:column;gap:.5rem}.update-banner__message{display:flex;flex-direction:column;gap:.125rem}.update-banner__title{font-family:Open Sans,system-ui,sans-serif;font-size:.875rem;font-weight:600;color:var(--color-text)}.update-banner__warning{font-family:Open Sans,system-ui,sans-serif;font-size:.75rem;color:var(--color-accent)}.update-banner__actions{display:flex;gap:.5rem}.update-banner__backup,.update-banner__update{padding:.375rem .75rem;font-size:.75rem;font-weight:600;border-radius:var(--radius-sm);cursor:pointer}.update-banner__backup{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.update-banner__update{background:var(--color-accent);border:1px solid var(--color-accent);color:var(--color-bg)}.update-banner__dismiss{flex-shrink:0;padding:0;width:1.5rem;height:1.5rem;background:transparent;border:none;color:var(--color-subtle-text);font-size:1.25rem;line-height:1;cursor:pointer}@media (max-width: 400px){.update-banner{bottom:4.5rem;flex-direction:column;align-items:stretch}.update-banner__dismiss{position:absolute;top:.5rem;right:.5rem}}.modal[open]{position:relative;display:block;margin:auto;padding:0;border-radius:var(--radius-lg);border:none;background-color:var(--modal-bg);color:inherit;min-width:var(--modal-min-width);max-height:60vh;overflow:hidden}.modal .hanzi-writer-container{display:flex;justify-content:center;align-items:center}.modal .hanzi-writer-container:empty{display:none}.modal .character-group{display:flex;align-items:baseline;gap:.5rem}.modal .character-group:empty{display:none}.modal .character-group .word{font-size:var(--modal-word-font-size);color:var(--color-accent)}.modal .character-group .traditional{font-size:1.75rem;opacity:.6}.modal .character-group .traditional:empty{display:none}.modal .character-group .forms{font-size:1.25rem;opacity:.6}.modal .character-group .forms:empty{display:none}.modal::backdrop{background:var(--modal-backdrop-bg);-webkit-backdrop-filter:var(--modal-backdrop-blur);backdrop-filter:var(--modal-backdrop-blur)}.modal .components{display:flex;flex-direction:column}.modal .components:empty{display:none}.modal .components .character{font-size:1rem}.modal .note{display:flex;flex-direction:column}.modal .note:has(:nth-child(2)) p:before{content:"·";color:var(--color-accent)}.modal .note:empty{display:none}.modal .example:empty{display:none}.modal .frequency:empty{display:none}.modal .modal-header{position:absolute;width:100%;display:flex;justify-content:space-between;z-index:1}.modal .modal-content{display:flex;flex-direction:column;align-items:center;gap:var(--modal-gap);padding:var(--modal-padding);padding-top:2.5rem;width:100%;max-height:60vh;overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box}.modal .icon-btn{padding:.8rem}.card{display:grid;flex-direction:column;gap:var(--card-gap);position:relative;contain:layout style}.word-head{display:flex;flex-direction:column;align-items:center;gap:var(--card-word-head-gap)}.word{display:flex;align-items:center;font-size:var(--font-size-word);font-weight:300}.word .traditional,.word .form{color:var(--color-subtle-text);font-size:var(--card-variant-font-size)}.character{cursor:pointer;color:var(--color-accent);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.examples{display:flex;justify-content:center;gap:var(--card-gap)}.sentence{display:flex;justify-content:flex-end;align-items:center;font-size:var(--card-sentence-font-size);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.weight{position:absolute;top:var(--weight-position);right:var(--weight-position);display:inline-flex;align-items:center;gap:var(--weight-gap);font-size:var(--weight-font-size);font-family:JetBrainsMono,monospace;font-weight:600;color:var(--color-weight);text-shadow:0 0 .625rem var(--color-weight-shadow);opacity:0;transform:translateY(-.625rem);transition:opacity var(--weight-transition-duration) ease,transform var(--weight-transition-duration) ease;pointer-events:none;overflow:visible}.weight[data-weight="0"]:before{content:""}.weight[data-weight="0"]{opacity:0}.weight:before,.weight:after{display:inline-flex;color:inherit;opacity:0}.card[data-answered=correct] .weight{opacity:1;transform:translateY(0)}.card[data-answered=correct] .weight:before{opacity:.9}.question{display:flex;flex-direction:column;gap:var(--card-question-gap)}.tones,.translates{display:grid;gap:var(--card-buttons-gap)}.tones{font-family:NotoSansSC,system-ui,sans-serif;display:flex;flex-direction:column;gap:var(--tones-gap)}.syllable-progress{display:flex;align-items:center;gap:var(--card-buttons-gap);font-size:var(--syllable-font-size);padding:var(--syllable-progress-padding);border-radius:var(--radius-sm)}.syllable-slot{padding:var(--syllable-slot-padding);min-height:var(--syllable-slot-min-height);text-align:center;color:var(--color-text-secondary)}.syllable-slot.filled{color:var(--color-accent)}.syllable-slot.correct{color:var(--color-positive-text)}.syllable-slot.incorrect{color:var(--color-negative-text)}.syllable-progress:has(.syllable-slot.filled) .backspace-btn{opacity:1;pointer-events:auto}.syllable-progress:has(.syllable-slot.filled) .backspace-btn:active{transform:scale(.95)}.tones.validated .backspace-btn{pointer-events:none;opacity:var(--syllable-inactive-opacity)}.syllable-buttons{display:grid;grid-template-columns:repeat(var(--syllable-columns),minmax(0,1fr));gap:var(--card-buttons-gap)}@keyframes syllable-pulse{0%{transform:scale(1);box-shadow:0 0 0 0 var(--color-accent-soft)}50%{transform:scale(.95);box-shadow:0 0 0 .25rem var(--color-accent-soft)}to{transform:scale(1);box-shadow:0 0 0 0 transparent}}.syllable.pulse{animation:syllable-pulse .15s ease-out}.translates{display:flex;flex-wrap:wrap;gap:var(--card-buttons-gap)}.translate{flex:1 1 0;min-width:fit-content;max-width:var(--translate-max-width)}.translate.long{flex-grow:2;max-width:100%;font-size:var(--translate-long-font-size)}.card-skeleton{pointer-events:none}.skeleton-char,.skeleton-btn{background:linear-gradient(90deg,var(--color-skeleton-base, rgba(255, 255, 255, .05)) 25%,var(--color-skeleton-shine, rgba(255, 255, 255, .1)) 50%,var(--color-skeleton-base, rgba(255, 255, 255, .05)) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;color:transparent!important;min-width:3rem;border-color:transparent!important}.skeleton-char{min-width:4rem;min-height:3rem;display:inline-block;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.draw-card{display:flex;flex-direction:column;align-items:center;gap:1rem;flex:1;overflow-y:auto;overscroll-behavior:contain;padding:1rem 0 0}.draw-card-header{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;flex-shrink:0}.draw-card-pinyin{font-family:NotoSansSC,system-ui,sans-serif;font-size:var(--card-sentence-font-size);color:var(--color-accent)}.draw-card-translate{font-size:1.25rem;color:var(--color-text);max-width:80%}.draw-card-quiz{display:flex;flex-direction:column;align-items:center;gap:1rem}.draw-card-canvas{display:flex;justify-content:center;align-items:center;border-radius:var(--radius-lg);touch-action:none;user-select:none;-webkit-user-select:none}.draw-card-canvas svg{display:block;border-radius:calc(var(--radius-lg) - .125rem);border:1px solid var(--color-border)}.draw-card-result{min-height:1.5rem;color:var(--color-subtle-text);text-align:center}.draw-card-result:not(:empty){animation:draw-result-fade-in .2s ease-out}.draw-card-result.perfect{color:var(--color-positive-text)}@keyframes draw-result-fade-in{0%{opacity:0}to{opacity:1}}.draw-card-multi .draw-card-quiz{gap:1rem}.draw-progress{display:flex;justify-content:center;padding:.5rem 0;flex-shrink:0;max-height:4.5rem;overflow:hidden}.draw-progress-thumbs{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;align-content:flex-start}.draw-thumb{display:flex;flex-direction:column;align-items:center;justify-content:center;width:2.75rem;height:3.25rem;border:.125rem dashed var(--color-border);border-radius:var(--radius-sm);gap:.125rem;transition:all var(--transition)}.draw-thumb-char{font-family:NotoSansSC,system-ui,sans-serif;font-size:1.25rem;line-height:1.2;min-height:1.5rem;display:flex;align-items:center;justify-content:center}.draw-thumb-indicator{font-size:.75rem;line-height:1;min-height:.875rem;font-weight:500;display:flex;align-items:center;justify-content:center}.draw-thumb[data-state=pending]{border-style:dashed;color:var(--color-text-secondary)}.draw-thumb[data-state=active]{border-style:solid;border-color:var(--color-accent);box-shadow:0 0 0 .1875rem var(--color-accent-soft)}.draw-thumb[data-state=done][data-mistakes="0"]{border-style:solid;border-color:var(--color-positive-border);background:var(--color-positive-bg)}.draw-thumb[data-state=done][data-mistakes="0"] .draw-thumb-char{color:var(--color-text)}.draw-thumb[data-state=done][data-mistakes="0"] .draw-thumb-indicator{color:var(--color-positive-text)}.draw-thumb[data-state=done]:not([data-mistakes="0"]){border-style:solid;border-color:var(--color-negative-border);background:var(--color-negative-bg)}.draw-thumb[data-state=done]:not([data-mistakes="0"]) .draw-thumb-char{color:var(--color-text)}.draw-thumb[data-state=done]:not([data-mistakes="0"]) .draw-thumb-indicator{color:var(--color-negative-text)}@keyframes thumb-pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.draw-thumb.just-completed{animation:thumb-pulse .25s ease-out}.draw-canvas-wrapper{position:relative;overflow:hidden}@keyframes draw-slide-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-2rem)}}@keyframes draw-slide-in{0%{opacity:0;transform:translate(2rem)}to{opacity:1;transform:translate(0)}}.draw-card-canvas.slide-exit{animation:draw-slide-out 125ms ease-in forwards}.draw-card-canvas.slide-enter{animation:draw-slide-in 125ms ease-out forwards}.menu-panel:focus{outline:none}.menu-toggle{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;border:none;background:none}.menu-toggle__icon{display:block;width:100%;height:100%;background-color:var(--color-subtle-text);-webkit-mask:center/100% no-repeat url("data:image/svg+xml,%3Csvg xmlns%3D%22http%3A//www.w3.org/2000/svg%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 stroke%3D%22black%22 stroke-width%3D%221.6%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%3E%3Ccircle cx%3D%2212%22 cy%3D%2212%22 r%3D%223.5%22/%3E%3Cpath d%3D%22M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33h.02a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51h.02a1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82v.02a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1Z%22/%3E%3C/svg%3E");mask:center/100% no-repeat url("data:image/svg+xml,%3Csvg xmlns%3D%22http%3A//www.w3.org/2000/svg%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 stroke%3D%22black%22 stroke-width%3D%221.6%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%3E%3Ccircle cx%3D%2212%22 cy%3D%2212%22 r%3D%223.5%22/%3E%3Cpath d%3D%22M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33h.02a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51h.02a1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82v.02a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1Z%22/%3E%3C/svg%3E");transform-origin:center;transition:transform .12s ease-out}.menu-toggle.is-open .menu-toggle__icon{opacity:0}.menu-toggle:focus-visible:not(.is-open) .menu-toggle__icon{transform:rotate(30deg)}.menu-layer{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;justify-content:flex-start;align-items:flex-start;padding:clamp(1rem,5vw,3rem);pointer-events:none;opacity:0;transition:opacity var(--transition);z-index:10}.menu-layer[data-menu-state=open]{pointer-events:auto;opacity:1}.menu-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-overlay)}.menu-panel{position:relative;display:flex;flex-direction:column;gap:2rem;width:min(90vw,20rem);padding:1.5rem;border-radius:var(--radius-lg);border:1px solid var(--color-border);background-color:var(--color-surface);box-shadow:var(--shadow-elevated);transform:translateY(-.75rem);opacity:0;transition:transform var(--transition),opacity var(--transition);z-index:1}.menu-layer[data-menu-state=open] .menu-panel{transform:translateY(0);opacity:1}.menu-section{display:flex;align-items:center;justify-content:space-between;gap:1rem}.menu-label{font-size:.9rem;color:var(--color-accent);font-family:Open Sans,system-ui,sans-serif;cursor:pointer}.menu-hint{margin:0;font-size:.85rem;line-height:1.4;color:var(--color-subtle-text)}.menu-link{color:var(--color-accent);font-size:.9rem;font-family:Open Sans,system-ui,sans-serif;text-decoration:none;transition:opacity var(--transition)}.menu-link:hover{opacity:.7}.menu-version{margin-top:auto;padding-top:.75rem;border-top:1px solid var(--color-border)}.version-label{font-size:.7rem;color:var(--color-subtle-text);font-family:JetBrains Mono,monospace}.stats-dialog[open]{display:flex;flex-direction:column;margin:auto;padding:0;width:min(90vw,30rem);height:min(85vh,37.5rem);border:none;border-radius:var(--radius-lg);background-color:var(--modal-bg);color:inherit}.stats-dialog:focus{outline:none}.stats-dialog::backdrop{background:var(--modal-backdrop-bg);-webkit-backdrop-filter:var(--modal-backdrop-blur);backdrop-filter:var(--modal-backdrop-blur)}.stats-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:var(--modal-padding);flex-shrink:0}.stats-title{margin:0;font-size:1.1rem;font-weight:500;font-family:Open Sans,system-ui,sans-serif}.stats-group-select{padding:.35rem .6rem;font-size:.85rem}.stats-content{padding:0 var(--modal-padding) var(--modal-padding);overflow-y:auto;flex:1;min-height:0}.stats-weight-block{margin-bottom:1rem}.stats-weight-block:last-child{margin-bottom:0}.stats-weight-header{font-size:.85rem;font-weight:600;color:var(--color-accent);margin-bottom:.5rem;font-family:Open Sans,system-ui,sans-serif}.stats-weight-header-stuck{color:var(--color-error, #dc3545)}.stats-words{display:flex;flex-wrap:wrap;gap:.5rem}.stats-word{padding:.2rem .4rem;font-size:1.1rem;border-radius:var(--radius-sm);background-color:var(--color-surface)}.stats-empty{text-align:center;color:var(--color-subtle-text);padding:2rem 0}.stats-word{cursor:pointer;transition:background-color var(--transition)}.stats-word:active{background-color:var(--color-accent-subtle)}.stats-back-button{padding:.25rem .5rem;font-size:1.1rem;background:none;border:none;cursor:pointer;color:var(--color-accent)}.stats-back-button[hidden]{display:none}.stats-trash-button{display:flex;align-items:center;justify-content:center;padding:.25rem;background:none;border:none;cursor:pointer;color:var(--color-error, #dc3545);opacity:.7;transition:opacity var(--transition)}.stats-trash-button:hover{opacity:1}.stats-trash-button[hidden]{display:none}.stats-detail-header{font-size:2.5rem;text-align:center;margin-bottom:1.5rem;font-family:Noto Sans SC,sans-serif}.stats-detail-container{display:flex;flex-direction:column;gap:.75rem}.stats-detail-row{display:flex;justify-content:space-between;align-items:center}.stats-detail-label{font-size:.9rem;color:var(--color-subtle-text)}.stats-detail-value{font-size:.95rem;font-weight:500}.stats-detail-value.accuracy-good{color:var(--color-success, #28a745)}.stats-detail-value.accuracy-medium{color:var(--color-warning, #ffc107)}.stats-detail-value.accuracy-poor{color:var(--color-error, #dc3545)}.stats-detail-value.accuracy-unknown{color:var(--color-subtle-text)}.stats-word.stats-word-accuracy-poor{background-color:#dc354540}.stats-word.stats-word-accuracy-medium{background-color:#ffc10733}.study-time-dialog[open]{display:flex;flex-direction:column;margin:auto;padding:0;width:min(90vw,22.5rem);border:none;border-radius:var(--radius-lg);background-color:var(--modal-bg);color:inherit}.study-time-dialog:focus{outline:none}.study-time-dialog::backdrop{background:var(--modal-backdrop-bg);-webkit-backdrop-filter:var(--modal-backdrop-blur);backdrop-filter:var(--modal-backdrop-blur)}.study-time-header{display:flex;align-items:center;padding:var(--modal-padding)}.study-time-title{font-size:1rem;font-weight:500;font-family:Open Sans,system-ui,sans-serif}.study-time-trash{display:flex;align-items:center;justify-content:center;padding:.25rem;background:none;border:none;cursor:pointer;color:var(--color-error, #dc3545);opacity:.7;transition:opacity var(--transition)}.study-time-trash:hover{opacity:1}.study-time-content{display:flex;flex-direction:column;gap:2rem;padding:1rem}.study-time-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.study-time-arrow{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;color:var(--color-accent);transition:background-color var(--transition),opacity var(--transition)}.study-time-arrow:hover:not(:disabled){background-color:var(--color-surface)}.study-time-arrow:active:not(:disabled){background-color:var(--color-accent-subtle)}.study-time-arrow:disabled{opacity:.25;cursor:default}.study-time-center{flex:1;display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:0}.study-time-label{font-size:.9rem;color:var(--color-accent);font-family:JetBrains Mono,monospace;white-space:nowrap}.study-time-value{font-size:1rem;color:var(--color-subtle-text);font-family:JetBrains Mono,monospace}.backup-dialog[open]{display:flex;flex-direction:column;margin:auto;padding:0;width:min(90vw,20rem);border:none;border-radius:var(--radius-lg);background-color:var(--modal-bg);color:inherit}.backup-dialog:focus{outline:none}.backup-dialog::backdrop{background:var(--modal-backdrop-bg);-webkit-backdrop-filter:var(--modal-backdrop-blur);backdrop-filter:var(--modal-backdrop-blur)}.backup-content{display:flex;flex-direction:column;gap:1rem;padding:2rem}.backup-action-btn{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.8rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:transparent;color:var(--color-text);font-size:.95rem;font-family:Open Sans,system-ui,sans-serif;cursor:pointer;transition:background-color var(--transition),border-color var(--transition),opacity var(--transition)}.backup-action-btn:hover{background-color:var(--color-hover);border-color:var(--color-accent)}.backup-action-btn:active{opacity:.7}.backup-action-btn:disabled{opacity:.5;cursor:not-allowed}.backup-action-btn svg{flex-shrink:0;color:var(--color-accent)}.backup-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.action-bar{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;padding:0rem 1rem 1rem;gap:var(--action-bar-gap)}.fab{display:flex;align-items:center;justify-content:center;padding:0;border-radius:50%;cursor:pointer;box-shadow:var(--shadow-elevated);will-change:transform;transform:translateZ(0);transition:transform var(--transition),color var(--transition)}.fab:active{transform:scale(.95)}.next-button{width:var(--next-button-size);height:var(--next-button-size);border:none;font-size:var(--next-button-font-size);transition:transform var(--transition),opacity var(--transition),background-color var(--transition)}.next-button[data-state=hint]{background-color:var(--color-surface);color:var(--color-subtle-text);border:1px solid var(--color-border)}.next-button[data-state=next]{background-color:var(--color-accent);color:var(--color-bg);pointer-events:none;opacity:var(--next-inactive-opacity)}.card.ready~.action-bar .next-button[data-state=next],.next-button[data-state=next].active{pointer-events:auto;opacity:1}.search-button{width:var(--search-button-size);height:var(--search-button-size);border:1px solid var(--color-border);font-size:var(--search-button-font-size);background-color:var(--color-surface);color:var(--color-subtle-text)}.search-button svg{width:1.25rem;height:1.25rem;transform:scaleX(-1)}.search-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:none;overflow:hidden;overscroll-behavior:none}.search-layer[data-search-state=open]{display:flex;flex-direction:column}.search-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);backdrop-filter:var(--modal-backdrop-blur);-webkit-backdrop-filter:var(--modal-backdrop-blur);touch-action:none}.search-panel{position:relative;display:flex;flex-direction:column;width:100%;max-width:37.5rem;max-height:100%;margin:0 auto;overflow:hidden;transform:translateZ(0)}.search-header{display:flex;align-items:center;padding:var(--search-overlay-padding)}.search-input{flex:1;height:var(--search-input-height);padding:0 1rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);color:var(--color-text);font-size:1rem;outline:none;transition:border-color var(--transition)}.search-input:focus{border-color:var(--color-accent)}.search-input::placeholder{color:var(--color-subtle-text)}.search-close{display:flex;align-items:center;justify-content:center;width:var(--search-input-height);height:var(--search-input-height);padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-accent);font-size:1.5rem;cursor:pointer;transition:color var(--transition)}.search-results{flex:1;display:flex;flex-direction:column;gap:var(--search-result-gap);padding:var(--search-overlay-padding);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.search-results:empty:before{content:attr(data-empty-text);display:flex;align-items:center;justify-content:center;height:10rem;color:var(--color-subtle-text);font-size:1rem}.search-hint{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;height:10rem;color:var(--color-subtle-text);text-align:center}.search-hint-icon{font-size:2rem;opacity:.5}.search-result{display:flex;align-items:baseline;gap:.75rem;padding:var(--search-result-padding);background:var(--color-surface);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--transition);touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}.search-result:active{background:var(--color-accent-soft)}.search-result>div:first-child{display:flex;align-items:baseline;gap:.75rem}.search-result__chinese{font-size:1.5rem;color:var(--color-text)}.search-result__pinyin{font-size:.9rem;color:var(--color-accent)}.search-result__translation{flex:1;font-size:.9rem;color:var(--color-subtle-text);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-add-prompt{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:var(--search-result-padding);background:var(--color-surface);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--transition);touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}.search-add-prompt:active{background:var(--color-accent-soft)}.search-add-prompt>span{color:var(--color-subtle-text);font-size:.9rem}.search-add-query{color:var(--color-accent);font-weight:500}.search-add-action{color:var(--color-accent);font-size:.9rem;font-weight:500;white-space:nowrap}.cooldown-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;text-align:center;color:var(--color-subtle-text)}.cooldown-state__title{font-size:1.25rem;color:var(--color-text)}.cooldown-state__timer{font-size:1.1rem;font-family:JetBrainsMono,monospace;color:var(--color-accent)}.cooldown-state__counter{font-size:.875rem}.cooldown-state__groups{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-top:1rem;padding-top:1.5rem;border-top:1px solid var(--color-border);width:100%}.cooldown-state__groups-label{font-size:.875rem}.cooldown-state__select{min-width:10rem;padding:.6rem 1rem;font-size:1rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);cursor:pointer}.loading-indicator{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--loading-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;color:var(--loading-text)}.loading-spinner{width:3.125rem;height:3.125rem;border:.25rem solid var(--loading-spinner-track);border-top-color:var(--loading-spinner-active);border-radius:50%;animation:loading-spin 1s linear infinite}@keyframes loading-spin{to{transform:rotate(360deg)}}.loading-message{margin-top:1.5rem;font-size:1.1rem;text-align:center}.error-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--loading-bg);display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem}.error-content{background:var(--color-bg);padding:2rem;border-radius:.5rem;max-width:25rem;text-align:center}.error-content h3{color:var(--color-negative-text);margin:0 0 1rem;font-size:1.5rem}.error-content p{margin:0 0 1.5rem;color:var(--color-text);line-height:1.5}.error-dismiss{background:var(--color-accent);color:var(--loading-text);border:none;padding:.75rem 2rem;border-radius:.25rem;font-size:1rem;cursor:pointer;transition:opacity .2s}.error-dismiss:hover{opacity:.9}.editor-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:none;overflow:hidden;overscroll-behavior:none}.editor-layer[data-editor-state=open]{display:flex;flex-direction:column}.editor-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--modal-backdrop-bg);backdrop-filter:var(--modal-backdrop-blur);-webkit-backdrop-filter:var(--modal-backdrop-blur);touch-action:none}.editor-panel{position:relative;display:flex;flex-direction:column;width:90vw;max-width:30rem;max-height:100%;margin:0 auto;border-radius:var(--radius-lg);background:var(--modal-bg);color:var(--color-text);overflow:hidden;transform:translateZ(0)}.editor-header{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;padding:.5rem}.editor-chinese{margin-left:auto;margin-right:auto;font-size:1.75rem;color:var(--color-accent)}.editor-form{display:flex;flex-direction:column;flex:1;min-height:0;padding:1.25rem;overflow-y:auto;overscroll-behavior:contain}.editor-fields{display:flex;flex-direction:column;gap:3rem}.editor-field{display:flex;flex-direction:column;gap:.375rem}.editor-label-row{display:flex;flex-direction:row-reverse;align-items:center;justify-content:start;gap:.5rem}.editor-label{font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.editor-input,.editor-textarea{padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:1rem;font-family:inherit;transition:border-color .15s ease}.editor-input:focus,.editor-textarea:focus{outline:none;border-color:var(--color-accent)}.editor-input--readonly{background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:not-allowed}.editor-input--error{border-color:var(--color-danger, #ef4444);animation:shake .3s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-.25rem)}75%{transform:translate(.25rem)}}.editor-textarea-wrapper{display:block;overscroll-behavior:contain}.editor-textarea{width:100%;min-height:2.5rem;resize:none;overflow:hidden;line-height:1.5;-webkit-user-select:text;user-select:text;-webkit-touch-callout:none;touch-action:none;overscroll-behavior:contain}.editor-groups{display:flex;flex-wrap:wrap;gap:.5rem}.editor-group-item{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .625rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);font-size:.875rem;cursor:pointer;transition:all .15s ease}.editor-group-item:has(input:checked){border-color:var(--color-accent);background:var(--color-accent-light, rgba(var(--color-accent-rgb), .1))}.editor-group-item input{margin:0;cursor:pointer}.editor-group-add{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .625rem;border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:.875rem;cursor:pointer;transition:all .15s ease}.editor-group-add:hover{border-color:var(--color-accent);color:var(--color-accent)}.editor-group-add svg{width:.875rem;height:.875rem}.editor-expand-btn{width:100%;padding:.625rem 1rem;margin-top:.5rem;border:1px dashed var(--color-border);border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font-size:.875rem;cursor:pointer;transition:all .15s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.editor-expand-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.editor-expand-btn[data-expanded=true]:after{content:" ▲"}.editor-expand-btn[data-expanded=false]:after{content:" ▼"}.editor-expandable{display:flex;flex-direction:column;gap:2rem;margin-top:2rem}.editor-expandable[hidden]{display:none}.editor-errors{display:flex;flex-direction:column;gap:.25rem;margin-top:.5rem}.editor-errors:empty{display:none}.editor-error{margin:0;padding:.5rem .75rem;border-radius:var(--radius-sm);background:var(--color-danger-light, rgba(239, 68, 68, .1));color:var(--color-danger, #ef4444);font-size:.875rem}.editor-actions{display:flex;justify-content:space-between;gap:1rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--color-border)}.editor-actions-left,.editor-actions-right{display:flex;gap:.5rem}.editor-btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.625rem 1rem;border:1px solid transparent;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.editor-btn svg{width:1rem;height:1rem}.editor-btn--primary{background:var(--color-accent);color:#fff}.editor-btn--primary:hover{opacity:.9}.editor-btn--secondary{border-color:var(--color-border);background:transparent;color:var(--color-text)}.editor-btn--secondary:hover{background:var(--color-bg-hover)}.editor-btn--danger{border-color:var(--color-danger, #ef4444);background:transparent;color:var(--color-danger, #ef4444)}.editor-btn--danger:hover{background:var(--color-danger, #ef4444);color:#fff}.editor-btn:disabled{opacity:.5;cursor:not-allowed}.editor-btn--hidden{display:none}@media (max-width: 480px){.editor-panel{width:100vw;max-width:100vw;border-radius:0}.editor-actions{flex-direction:column-reverse}.editor-actions-left,.editor-actions-right{width:100%}.editor-actions-right{justify-content:flex-end}.editor-btn{flex:1}}.conflict-banner{position:fixed;top:0;left:0;right:0;z-index:1000;padding:.75rem 1rem;background:var(--color-warning-bg, #fef3c7);border-bottom:1px solid var(--color-warning-border, #f59e0b);animation:slideDown .3s ease-out}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.conflict-banner-content{display:flex;align-items:center;gap:.75rem;max-width:37.5rem;margin:0 auto}.conflict-banner-icon{font-size:1.25rem;flex-shrink:0}.conflict-banner-text{flex:1}.conflict-banner-text strong{display:block;color:var(--color-warning-text, #92400e);font-size:.9rem}.conflict-banner-text p{margin:.25rem 0 0;color:var(--color-warning-text, #92400e);font-size:.8rem;opacity:.9}.conflict-banner-actions{display:flex;gap:.5rem;flex-shrink:0}.conflict-banner-btn{padding:.4rem .75rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s ease}.conflict-banner-btn--primary{background:var(--color-warning-text, #92400e);color:#fff;border:none}.conflict-banner-btn--primary:hover{opacity:.9}.conflict-banner-btn--secondary{background:transparent;color:var(--color-warning-text, #92400e);border:1px solid var(--color-warning-text, #92400e)}.conflict-banner-btn--secondary:hover{background:#92400e1a}.resolver-dialog{position:fixed;max-width:31.25rem;width:90vw;max-height:85vh;padding:0;border:none;border-radius:var(--radius-lg);background:var(--modal-bg);color:var(--color-text);overflow:hidden}.resolver-dialog::backdrop{background:var(--modal-backdrop-bg);-webkit-backdrop-filter:var(--modal-backdrop-blur);backdrop-filter:var(--modal-backdrop-blur)}.resolver-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.resolver-title{margin:0;font-size:1.1rem;font-weight:600;flex:1}.resolver-counter{font-size:.85rem;color:var(--color-text-secondary);background:var(--color-bg-secondary);padding:.25rem .5rem;border-radius:var(--radius-sm)}.resolver-content{padding:1.25rem;overflow-y:auto;max-height:calc(85vh - 10rem)}.resolver-character{text-align:center;font-size:3rem;font-family:Noto Sans SC,system-ui,sans-serif;margin-bottom:.75rem}.resolver-message{text-align:center;color:var(--color-text-secondary);font-size:.9rem;margin:0 0 1rem}.resolver-comparison{margin-top:1rem}.resolver-table{width:100%;border-collapse:collapse;font-size:.9rem}.resolver-table th,.resolver-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--color-border)}.resolver-table th{font-weight:500;color:var(--color-text-secondary);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.resolver-field-name{font-weight:500;width:25%}.resolver-value{word-break:break-word}.resolver-value--yours{background:#ef44440d}.resolver-value--new{background:#22c55e0d}.resolver-actions{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-top:1px solid var(--color-border);gap:1rem}.resolver-actions-left,.resolver-actions-right{display:flex;gap:.5rem}.resolver-btn{padding:.5rem 1rem;border-radius:var(--radius-md);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.resolver-btn--primary{background:var(--color-accent);color:#fff;border:none}.resolver-btn--primary:hover{opacity:.9}.resolver-btn--secondary{background:var(--color-bg-secondary);color:var(--color-text);border:1px solid var(--color-border)}.resolver-btn--secondary:hover{background:var(--color-bg-hover)}.resolver-btn--outline{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border);font-size:.8rem;padding:.4rem .75rem}.resolver-btn--outline:hover{border-color:var(--color-accent);color:var(--color-accent)}.resolver-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 480px){.conflict-banner-content{flex-wrap:wrap}.conflict-banner-actions{width:100%;justify-content:flex-end;margin-top:.5rem}.resolver-dialog{width:100vw;max-width:100vw;max-height:100vh;border-radius:0}.resolver-content{max-height:calc(100vh - 10rem)}.resolver-actions{flex-direction:column}.resolver-actions-left,.resolver-actions-right{width:100%;justify-content:center}}.stroke-preload-status{margin-top:.5rem;display:flex;align-items:center;gap:.5rem;font-size:.7rem;color:var(--color-subtle-text)}.stroke-preload-label{white-space:nowrap}.stroke-preload-bar{flex:1;height:.25rem;min-width:3.75rem;background:var(--loading-spinner-track);border-radius:.125rem;overflow:hidden}.stroke-preload-fill{height:100%;width:0%;background:var(--color-accent);border-radius:.125rem;transition:width .3s ease-out}.stroke-preload-percent{font-family:JetBrains Mono,monospace;min-width:2.5em;text-align:right}.stroke-preload-status.complete .stroke-preload-fill{background:var(--color-positive-text)}@keyframes particle-fly{0%{transform:translate(0) scale(.5);opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(var(--scale));opacity:0}}.particle{position:absolute;top:50%;left:50%;color:var(--color-positive-text);font-size:inherit;font-weight:700;pointer-events:none;opacity:0;animation:particle-fly .8s var(--delay) ease-out forwards}.icon-btn{display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer}.icon-btn:focus{outline:none}.icon-btn svg{width:1.25rem;height:1.25rem;flex-shrink:0}.icon-btn--ghost{padding:.5rem;opacity:.5;transition:opacity .15s ease}.icon-btn--ghost:hover{opacity:1}.icon-btn--ghost:active{opacity:.8}.icon-btn--subtle{width:2rem;height:2rem;transition:background .15s ease,color .15s ease}.icon-btn--subtle:hover{background:var(--color-bg-hover);color:var(--color-text)}.icon-btn--subtle:active{opacity:.8}.backspace-btn{margin-left:auto;padding:var(--syllable-delete-padding);min-width:var(--syllable-delete-min-width);font-size:var(--weight-font-size);color:var(--color-subtle-text);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--transition),color var(--transition),transform var(--transition);opacity:var(--syllable-inactive-opacity);pointer-events:none}.backspace-btn--active{opacity:1;pointer-events:auto}.backspace-btn--active:hover{color:var(--color-accent)}.backspace-btn--active:active{transform:scale(.95)}.menu-zoom-controls{display:flex;align-items:center;gap:.5rem;padding:.75rem 0;border-bottom:1px solid var(--color-border)}.zoom-button{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:1.25rem;font-weight:500;cursor:pointer;transition:var(--transition);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.zoom-button:hover:not(:disabled){background:var(--color-hover);border-color:var(--color-accent)}.zoom-button:active:not(:disabled){transform:scale(.95)}.zoom-button:disabled{opacity:.4;cursor:not-allowed}.zoom-display{min-width:3rem;text-align:center;font-size:.875rem;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.zoom-label{margin-left:auto;font-size:.75rem;color:var(--color-text-secondary)}.ai-settings-dialog[open]{position:relative;display:flex;flex-direction:column;margin:auto;padding:0;border-radius:var(--radius-lg);border:none;background-color:var(--modal-bg);color:inherit;min-width:20rem;max-width:24rem;max-height:80vh;overflow:hidden}.ai-settings-dialog::backdrop{background:var(--modal-backdrop-bg);-webkit-backdrop-filter:var(--modal-backdrop-blur);backdrop-filter:var(--modal-backdrop-blur)}.ai-settings-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.ai-settings-title{margin:0;font-size:1.125rem;font-weight:600}.ai-settings-close{display:flex;align-items:center;justify-content:center;padding:.25rem;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;opacity:.6;transition:opacity .15s ease}.ai-settings-close:hover{opacity:1}.ai-settings-content{display:flex;flex-direction:column;gap:1rem;padding:1.25rem;overflow-y:auto}.ai-settings-field{display:flex;flex-direction:column;gap:.375rem}.ai-settings-label{font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.ai-settings-select,.ai-settings-input{width:100%;padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-secondary);color:inherit;font-size:.9375rem;font-family:inherit;transition:border-color .15s ease}.ai-settings-select:focus,.ai-settings-input:focus{outline:none;border-color:var(--color-accent)}.ai-settings-select{cursor:pointer}.ai-settings-field--apikey .ai-settings-apikey-wrapper{position:relative;display:flex;align-items:center}.ai-settings-field--apikey .ai-settings-input{padding-right:2.5rem}.ai-settings-apikey-toggle{position:absolute;right:.5rem;display:flex;align-items:center;justify-content:center;padding:.25rem;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;opacity:.5;transition:opacity .15s ease}.ai-settings-apikey-toggle:hover{opacity:1}.ai-settings-status{padding:.625rem .75rem;border-radius:var(--radius-md);font-size:.875rem;text-align:center}.ai-settings-status:empty{display:none}.ai-settings-status--idle,.ai-settings-status--loading{background-color:var(--color-bg-secondary);color:var(--color-text-secondary)}.ai-settings-status--success{background-color:var(--color-success-bg, rgba(34, 197, 94, .1));color:var(--color-success, #22c55e)}.ai-settings-status--error{background-color:var(--color-error-bg, rgba(239, 68, 68, .1));color:var(--color-error, #ef4444)}.ai-settings-actions{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid var(--color-border)}.ai-settings-btn{padding:.5rem 1rem;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:opacity .15s ease,background-color .15s ease}.ai-settings-btn:disabled{opacity:.5;cursor:not-allowed}.ai-settings-btn--secondary{background-color:var(--color-bg-secondary);color:var(--color-text)}.ai-settings-btn--secondary:hover:not(:disabled){background-color:var(--color-bg-tertiary)}.ai-settings-btn--danger{background-color:transparent;color:var(--color-error, #ef4444)}.ai-settings-btn--danger:hover:not(:disabled){background-color:var(--color-error-bg, rgba(239, 68, 68, .1))}.ai-settings-docs-link{margin-left:auto;font-size:.875rem;color:var(--color-accent);text-decoration:none}.ai-settings-docs-link:hover{text-decoration:underline}.ai-fill-btn{padding:.5rem;border-radius:50%;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:color var(--transition),opacity var(--transition)}.ai-fill-btn:hover:not(:disabled){color:var(--color-text)}.ai-fill-btn:disabled{cursor:not-allowed}.ai-fill-btn__icon{flex-shrink:0}.ai-fill-btn--loading{pointer-events:none;animation:ai-fill-glow 1.5s ease-in-out infinite}.ai-fill-btn--loading .ai-fill-btn__icon{animation:ai-fill-pulse 1.3s ease-in-out infinite}.ai-fill-btn--success{color:var(--color-positive-text)}.ai-fill-btn--error{color:var(--color-negative-text)}@keyframes ai-fill-pulse{0%,to{filter:brightness(.3)}50%{filter:brightness(2)}}@keyframes ai-fill-glow{0%,to{box-shadow:0 0 .25rem var(--color-accent-soft)}50%{box-shadow:0 0 1rem var(--color-accent)}}.ai-icon{flex-shrink:0;vertical-align:middle;color:var(--color-text, inherit)}.tag-field{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:var(--card-buttons-gap);padding:var(--syllable-progress-padding);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);min-height:2.5rem;cursor:text;transition:border-color var(--transition)}.tag-field:focus-within{border-color:var(--color-accent)}.tag-field__item{display:inline-flex;align-items:center;padding:var(--syllable-slot-padding);min-height:var(--syllable-slot-min-height);border-radius:var(--radius-sm);color:var(--color-accent);font-size:var(--syllable-font-size)}.tag-field__input{flex:1;min-width:3rem;padding:.25rem;border:none;background:transparent;color:var(--color-text);font-size:var(--syllable-font-size);font-family:inherit;outline:none}.tag-field__input::placeholder{color:var(--color-subtle-text);opacity:.6}.tag-field__input--error{animation:tag-shake .3s ease}@keyframes tag-shake{0%,to{transform:translate(0)}25%{transform:translate(-.25rem)}75%{transform:translate(.25rem)}}.tag-field:has(.tag-field__item) .backspace-btn{opacity:1;pointer-events:auto}.tag-field:has(.tag-field__item) .backspace-btn:hover{color:var(--color-accent)}.tag-field:has(.tag-field__item) .backspace-btn:active{transform:scale(.95)}.tag-field__suggestions{display:none;gap:.25rem;position:absolute;top:100%;left:0;right:0;margin-top:.25rem;padding:.375rem;background:var(--modal-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:0 .25rem .75rem #00000026;z-index:10}.tag-field__suggestions--visible{display:flex}.tag-field__suggestion{flex:1;padding:.375rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font-size:.9375rem;cursor:pointer;transition:border-color var(--transition)}.tag-field__suggestion:hover{border-color:var(--color-accent)}.tag-field--readonly{background:var(--color-bg-secondary);cursor:not-allowed}.tag-field--readonly .tag-field__input,.tag-field--readonly .backspace-btn{display:none}.field-ai-btn{display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:color var(--transition),opacity var(--transition);flex-shrink:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.field-ai-btn:hover:not(:disabled){color:var(--color-text)}.field-ai-btn:disabled{cursor:not-allowed}.field-ai-btn__icon{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.field-ai-btn--loading{pointer-events:none}.field-ai-btn--loading .field-ai-btn__icon{animation:field-ai-spin .8s linear infinite}.field-ai-btn--success{color:var(--color-positive-text)}.field-ai-btn--error{color:var(--color-negative-text)}@keyframes field-ai-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
