*{box-sizing:border-box}:root{--color-ink:#171311;--color-ink-2:#201713;--color-surface:#2a201a;--color-surface-soft:#35271f;--color-line:#ffe5c229;--color-cream:#ffe5c2;--color-text:#fff4e3;--color-muted:#c7a98a;--color-gold:#ffd66b;--color-coral:#ff7a59;--color-rust:#b84a32;--color-teal:#2ec4b6;--shadow-warm:0 18px 50px #2a0e0657;--font-ui:-apple-system,BlinkMacSystemFont,"Segoe UI","Inter","Roboto","Helvetica Neue",sans-serif}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#171311;background:var(--color-ink);color:#fff4e3;color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,Helvetica Neue,sans-serif;font-family:var(--font-ui);margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.markdown-text{white-space:pre-wrap;word-break:break-word}.markdown-text strong{font-weight:800}.markdown-text em{font-style:italic}.markdown-text s{text-decoration:line-through}.flashcard-map{color:var(--color-text);padding:20px;width:100%}.flashcard-map-controls{background-color:#2a201ad6;border:1px solid var(--color-line);border-radius:8px;display:flex;flex-wrap:wrap;gap:30px;margin:30px auto;max-width:1200px;padding:20px}.control-group{align-items:center;display:flex;gap:10px}.control-group-toggle{margin-left:auto}.control-group label{color:var(--color-cream);font-size:14px;font-weight:500;white-space:nowrap}.control-select{background-color:#171311d1;border:1px solid #ffe5c22e;border-radius:6px;color:var(--color-text);cursor:pointer;font-size:14px;min-width:150px;padding:8px 12px;transition:all .2s ease}.control-select:focus,.control-select:hover{background-color:#35271fdb;border-color:var(--color-gold)}.control-select:focus{box-shadow:0 0 0 3px #ffd66b24;outline:none}.control-select option{background-color:var(--color-ink);color:var(--color-text)}.map-filter-toggle{align-items:center;background:#1713119e;border:1px solid #ffd66b57;border-radius:8px;color:var(--color-cream);cursor:pointer;display:inline-flex;font-size:14px;font-weight:800;gap:9px;min-height:40px;padding:8px 12px}.map-filter-toggle input{accent-color:var(--color-gold);cursor:pointer;height:18px;width:18px}.flashcard-map-legend{background-color:#2a201ad6;border:1px solid var(--color-line);border-radius:8px;margin:0 auto 20px;max-width:1200px;padding:15px 20px}.legend-title{color:var(--color-cream);font-size:14px;font-weight:600;margin-bottom:10px}.legend-items{display:flex;flex-wrap:wrap;gap:20px}.legend-item{align-items:center;display:flex;gap:8px}.legend-indicator{border:2px solid;border-radius:4px;height:20px;width:20px}.legend-indicator.practice-none{background-color:#dc354526;border-color:#dc3545}.legend-indicator.practice-low{background-color:#ffc10726;border-color:#ffc107}.legend-indicator.practice-medium{background-color:#17a2b826;border-color:#17a2b8}.legend-indicator.practice-high{background-color:#28a74526;border-color:#28a745}.legend-indicator.practice-very-high{background-color:#6f42c126;border-color:#6f42c1}.legend-label{color:var(--color-muted);font-size:13px}.flashcard-map-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin:0 auto;max-width:1200px}.flashcard-map-item{background-color:#2a201ad1;border:2px solid #ffe5c229;border-radius:12px;box-shadow:0 12px 28px #0000002e;cursor:pointer;display:flex;flex-direction:column;min-height:150px;padding:20px;position:relative;transition:all .3s ease}.flashcard-map-item.flipped{background-color:#35271fdb}.flashcard-map-item.flipped .flashcard-map-text{color:var(--color-muted);font-style:italic}.flashcard-map-item.reading-card .flashcard-map-text{align-items:flex-start;justify-content:flex-start;text-align:left}.flashcard-map-item.practice-none{background-color:#ff7a591a;border-color:#dc3545}.flashcard-map-item.practice-none:before{background-color:#dc3545;border-radius:50%;content:"";height:12px;position:absolute;right:10px;top:10px;width:12px}.flashcard-map-item.practice-low{background-color:#ffd66b1f;border-color:#ffc107}.flashcard-map-item.practice-low:before{background-color:#ffc107;border-radius:50%;content:"";height:12px;position:absolute;right:10px;top:10px;width:12px}.flashcard-map-item.practice-medium{background-color:#2ec4b61c;border-color:#17a2b8}.flashcard-map-item.practice-medium:before{background-color:#17a2b8;border-radius:50%;content:"";height:12px;position:absolute;right:10px;top:10px;width:12px}.flashcard-map-item.practice-high{background-color:#ffd66b2e;border-color:#28a745}.flashcard-map-item.practice-high:before{background-color:#28a745;border-radius:50%;content:"";height:12px;position:absolute;right:10px;top:10px;width:12px}.flashcard-map-item.practice-very-high{background-color:#ff7a5929;border-color:#6f42c1}.flashcard-map-item.practice-very-high:before{background-color:#6f42c1;border-radius:50%;content:"";height:12px;position:absolute;right:10px;top:10px;width:12px}.flashcard-map-item.completed:before{opacity:.28}.flashcard-map-cleared-stamp{filter:drop-shadow(0 8px 12px rgba(0,0,0,.32));height:auto;max-width:38%;opacity:.9;pointer-events:none;position:absolute;right:16px;top:14px;transform:rotate(-10deg);width:92px;z-index:9}.flashcard-map-level-badge{background:#78121247;border:1px solid #ff7a5985;border-radius:999px;color:#ff6b62;font-size:12px;font-weight:900;left:10px;line-height:1;min-width:38px;padding:4px 8px;pointer-events:none;position:absolute;text-align:center;top:10px;z-index:9}.flashcard-map-item:hover{box-shadow:0 16px 34px #ff7a5924;transform:translateY(-4px)}.flashcard-map-content{cursor:pointer;display:flex;flex-direction:column;gap:15px;height:100%}.flashcard-map-text{word-wrap:break-word;align-items:center;color:var(--color-cream);display:flex;flex:1 1;font-size:18px;font-weight:500;justify-content:center;line-height:1.4;max-height:100px;overflow-wrap:break-word;overflow-y:auto;padding:5px;text-align:center;white-space:pre-wrap}.flashcard-map-text.small-font{font-size:14px;line-height:1.3}.flashcard-map-text::-webkit-scrollbar{width:6px}.flashcard-map-text::-webkit-scrollbar-track{background:#0000000d;border-radius:3px}.flashcard-map-text::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.flashcard-map-text::-webkit-scrollbar-thumb:hover{background:#0000004d}.flashcard-map-edit-btn{background:none;border:none;border-radius:4px;bottom:8px;color:var(--color-gold);cursor:pointer;font-size:18px;line-height:1;opacity:.92;padding:4px;position:absolute;right:8px;transition:all .2s ease;z-index:10}.flashcard-map-edit-btn:hover{background-color:#ffd66b1f;opacity:1;transform:scale(1.1)}.flashcard-map-edit-btn:active{transform:scale(.95)}.flashcard-map-stats{border-top:1px solid var(--color-line);display:flex;flex-direction:column;gap:5px;padding-top:10px}.flashcard-map-stat-line{align-items:center;color:var(--color-muted);display:flex;flex-wrap:wrap;font-size:14px;font-weight:700;gap:6px;justify-content:center;text-align:center}.flashcard-map-type-line{color:#2ec4b6;font-size:12px;font-weight:900;text-align:center;text-transform:uppercase}.flashcard-map-reading-modal-overlay{z-index:1000}.flashcard-map-reading-modal{background:#1a1714fa;border:1px solid #ffe5c233;border-radius:8px;color:var(--color-text);display:grid;grid-template-rows:auto minmax(0,1fr);max-height:min(760px,calc(100vh - 48px));overflow:hidden;width:min(760px,calc(100vw - 32px))}.flashcard-map-reading-modal .modal-header{border-bottom:1px solid #ffe5c224}.flashcard-map-reading-modal .modal-header h2{color:var(--color-cream);font-size:22px;margin:0}.flashcard-map-reading-body{font-size:17px;line-height:1.7;overflow-y:auto;padding:22px;white-space:pre-wrap}.flashcard-map-dialog-preview{display:flex;flex-direction:column;gap:12px;white-space:normal}.flashcard-map-dialog-row{display:flex;justify-content:flex-start}.flashcard-map-dialog-row.speaker-b{justify-content:flex-end}.flashcard-map-dialog-situation-row{grid-gap:10px;align-items:center;color:#ffe5c2c2;display:grid;font-size:13px;font-weight:900;gap:10px;grid-template-columns:minmax(24px,1fr) auto minmax(24px,1fr);margin:4px auto;max-width:min(76%,560px);text-align:center}.flashcard-map-dialog-situation-line{background:linear-gradient(90deg,#0000,#ffe5c252);height:1px}.flashcard-map-dialog-situation-line:last-child{background:linear-gradient(90deg,#ffe5c252,#0000)}.flashcard-map-dialog-story-row{background:#ffe5c212;border:1px solid #ffe5c224;border-radius:8px;color:#fff7e6d1;line-height:1.65;margin:2px auto;max-width:min(86%,620px);padding:10px 14px;white-space:pre-wrap}.flashcard-map-dialog-bubble{background:#ffe5c21a;border:1px solid #ffe5c229;border-radius:8px;color:var(--color-cream);max-width:min(78%,560px);padding:11px 14px;white-space:pre-wrap}.flashcard-map-dialog-row.speaker-b .flashcard-map-dialog-bubble{background:#2ec4b62e;border-color:#2ec4b652}.practice-icon{font-size:16px}.flashcard-map-stat-value{color:var(--color-cream);font-weight:800}.flashcard-map-stat-separator{color:#ffe5c247}.grade-label{color:var(--color-gold);font-size:13px;font-weight:900}.flashcard-map-evaluation{align-items:center;color:var(--color-gold);display:flex;font-size:14px;font-weight:600;gap:5px;justify-content:center;text-align:center}.grade-icon{font-size:16px}.flashcard-map-empty{align-items:center;display:flex;justify-content:center;min-height:300px;padding:40px}.flashcard-map-empty p{color:var(--color-muted);font-size:18px;text-align:center}@media (max-width:768px){.flashcard-map-controls{gap:15px}.control-group,.flashcard-map-controls{align-items:stretch;flex-direction:column}.control-group-toggle{margin-left:0}.control-select{width:100%}.flashcard-map-legend{padding:12px 15px}.legend-items{gap:12px}.legend-item{font-size:12px}.legend-indicator{height:16px;width:16px}.flashcard-map-grid{gap:15px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.flashcard-map-item{min-height:120px;padding:15px}.flashcard-map-text{font-size:16px}.flashcard-map-text.small-font{font-size:13px}.flashcard-map-edit-btn{bottom:6px;font-size:16px;right:6px}.flashcard-map-cleared-stamp{right:12px;top:12px;width:78px}}@media (max-width:480px){.flashcard-map-controls{gap:15px;padding:15px}.control-group,.flashcard-map-controls{align-items:stretch;flex-direction:column}.map-filter-toggle{justify-content:center}.control-select{min-height:44px;width:100%}.flashcard-map-grid{grid-template-columns:1fr}.legend-items{flex-direction:column;gap:8px}}.flashcard-container{align-items:center;display:flex;flex-direction:column;gap:12px;padding:20px}.flashcard-practice-count{background-color:#2a201adb;border-radius:20px;box-shadow:0 2px 4px #00000014;color:var(--color-cream);font-size:15px;font-weight:600;padding:6px 16px}.flashcard{cursor:pointer;height:320px;perspective:1200px;position:relative;touch-action:none;-webkit-user-select:none;user-select:none;width:450px}.flashcard.is-interaction-disabled{pointer-events:none}.flashcard-inner{height:100%;position:relative;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .24s cubic-bezier(.22,1,.36,1);width:100%;will-change:transform}.flashcard.flashcard-touch-dragging .flashcard-inner{transition-duration:0s}.flashcard-inner.show-front{transform:translateZ(0) rotateY(0deg);transform:translate3d(var(--flashcard-drag-x,0),0,0) rotateY(0deg)}.flashcard-inner.show-back{transform:translateZ(0) rotateY(180deg);transform:translate3d(var(--flashcard-drag-x,0),0,0) rotateY(180deg)}.flashcard-inner.is-flipping{animation-duration:.7s;animation-fill-mode:both;animation-timing-function:cubic-bezier(.4,0,.2,1)}.flashcard-inner.flip-left.flip-from-front{animation-name:flipLeftFrontToBack}.flashcard-inner.flip-left.flip-from-back{animation-name:flipLeftBackToFront}.flashcard-inner.flip-right.flip-from-front{animation-name:flipRightFrontToBack}.flashcard-inner.flip-right.flip-from-back{animation-name:flipRightBackToFront}.flashcard-back,.flashcard-front{align-items:center;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:3px solid #ffe5c22e;border-radius:16px;box-shadow:0 18px 44px #0000003d;display:flex;flex-direction:column;height:100%;justify-content:center;left:0;padding:35px;position:absolute;top:0;transform:translateZ(0);-webkit-transform:translateZ(0);transition:box-shadow .3s ease,border-color .3s ease,opacity .12s ease;width:100%}.flashcard-note-cover{background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:inherit;inset:0;opacity:.25;pointer-events:none;position:absolute;z-index:0}.flashcard-note-cover-front{filter:saturate(.88) brightness(.98)}.flashcard-note-cover-back{filter:saturate(.82) brightness(.82)}.flashcard-inner.show-back .flashcard-back,.flashcard-inner.show-front .flashcard-front{opacity:1;pointer-events:auto;visibility:visible}.flashcard-inner.show-back .flashcard-front,.flashcard-inner.show-front .flashcard-back{opacity:0;pointer-events:none;visibility:hidden}.flashcard-inner.is-flipping .flashcard-back,.flashcard-inner.is-flipping .flashcard-front{opacity:1;pointer-events:none;visibility:visible}.flashcard-corner-caption{border-radius:999px;font-size:12px;font-weight:800;left:16px;letter-spacing:.04em;line-height:1;padding:6px 10px;pointer-events:none;position:absolute;text-transform:uppercase;top:16px;z-index:9}.flashcard-corner-caption-front{background:#24110a1a;color:#24110ac7}.flashcard-corner-caption-quick-test{align-items:center;background:linear-gradient(135deg,#b4ffeec2,#ffe282ad),#fff5dac7;border:1px solid #2ec4b694;box-shadow:0 8px 18px #24110a1f,0 0 18px #2ec4b647;color:#0f2d2bf2;display:inline-flex;gap:8px;padding:7px 11px}.flashcard-corner-caption-quick-test strong{animation:quickTestCaptionPulse .9s ease-in-out infinite;color:#9b3b00;font-size:13px;min-width:34px;text-align:center}.flashcard-corner-caption-quick-test.is-passed{background:linear-gradient(135deg,#bbffd9e6,#84e5c7c7);border-color:#34be80b8;color:#134738}.flashcard-corner-caption-quick-test.is-passed strong{animation:none;color:#05734c}.flashcard-corner-caption-quick-test.is-expired{background:#e6e6e6a8;border-color:#7d7d7d61;box-shadow:none;color:#403934c2}.flashcard-corner-caption-quick-test.is-expired strong{animation:none;color:#666;min-width:74px}.flashcard-corner-caption-back{background:#ffe5c21a;color:#ffe5c2eb}@keyframes quickTestCaptionPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.flashcard-level-badge{background:linear-gradient(135deg,#ffe2daf2,#ffa996e6);border:1px solid #d92f2f57;border-radius:999px;box-shadow:0 6px 18px #24110a1f;color:#c71919;font-size:13px;font-weight:900;left:16px;line-height:1;min-width:42px;padding:5px 9px;pointer-events:none;position:absolute;text-align:center;top:52px;z-index:9}.flashcard-level-badge-back{background:#78121252;border-color:#ff7a597a;box-shadow:0 6px 18px #0000003d;color:#ff6b62}.flashcard-cleared-stamp{bottom:22px;filter:drop-shadow(0 10px 16px rgba(36,17,10,.28));height:auto;max-width:42%;opacity:.88;pointer-events:none;position:absolute;right:24px;transform:rotate(-10deg);width:148px;z-index:8}.flashcard-score-hud{align-items:flex-end;display:flex;flex-direction:column;gap:8px;pointer-events:none}.flashcard-score-hud,.session-count-badge{position:absolute;right:12px;top:12px;z-index:10}.session-count-badge{backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:20px;box-shadow:0 2px 8px #00000026;font-size:20px;font-weight:700;isolation:isolate;padding:8px 16px;pointer-events:auto;transition:all .3s ease}.flashcard-score-hud .session-count-badge{position:relative;right:auto;top:auto}.score-bonus-stack{align-items:flex-end;display:flex;flex-direction:column;gap:5px;pointer-events:none}.score-bonus-chip{align-items:center;animation:scoreBonusPop .52s cubic-bezier(.2,1.4,.36,1) both;background:linear-gradient(135deg,#24110aeb,#ff7a59db);border:1px solid #ffd66bb3;border-radius:999px;box-shadow:0 8px 18px #00000047,0 0 18px #ffd66b47;color:#fff4dc;display:inline-flex;font-size:12px;font-weight:900;gap:7px;line-height:1;min-height:28px;padding:5px 10px;white-space:nowrap}.score-bonus-chip:nth-child(2){animation-delay:70ms}.score-bonus-chip-auto-repeat{animation:autoRepeatScorePop .98s cubic-bezier(.16,1.34,.28,1) both;background:radial-gradient(circle at 20% 30%,#ffffff47,#0000 28%),linear-gradient(135deg,#123a42f5,#2ec4b6db,#ffd66be6);border-color:#2ec4b6d1;box-shadow:0 10px 24px #00000057,0 0 26px #2ec4b685,0 0 34px #ffd66b6b;color:#fffdf0;font-size:13px;min-height:36px;padding:8px 14px}.score-bonus-chip-auto-repeat .score-bonus-points{color:#fff8b8;font-size:18px}.score-bonus-label{letter-spacing:.03em;text-transform:uppercase}.score-bonus-points{color:var(--color-gold);font-size:14px;text-shadow:0 0 10px #ffd66b94}@keyframes scoreBonusPop{0%{filter:brightness(1.25);opacity:0;transform:translate3d(12px,-8px,0) scale(.78)}52%{filter:brightness(1.18);opacity:1;transform:translate3d(0,2px,0) scale(1.08)}to{filter:brightness(1);opacity:1;transform:translateZ(0) scale(1)}}.session-count-badge.count-0{background-color:#e0e0e0;color:#757575}.session-count-badge.count-1-4{background-color:#fff9c4;color:#f57f17}.session-count-badge.count-5-9{background-color:#ffcc80;color:#e65100}.session-count-badge.count-10-14{background-color:#ff9800;color:#fff}.session-count-badge.count-15-19{background-color:#ff5722;color:#fff}.session-count-badge.count-20-plus{animation:pulse 2s infinite;background-color:#d32f2f;color:#fff}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes badgeFlash{0%{box-shadow:0 2px 8px #00000026;transform:scale(1)}50%{box-shadow:0 0 16px #ffc10799;transform:scale(1.25)}to{box-shadow:0 2px 8px #00000026;transform:scale(1)}}.session-count-badge.badge-flash{animation:badgeFlash .4s ease-out}.session-count-badge.auto-repeat-charging{box-shadow:0 0 0 3px #2ec4b647,0 0 26px #2ec4b67a,0 8px 22px #0000003d;overflow:hidden;transform:scale(1.08)}.session-count-badge.auto-repeat-charging:after{animation:autoRepeatCharge 1s linear forwards;background:linear-gradient(90deg,#2ec4b675,#ffd66b85);content:"";inset:0;position:absolute;transform-origin:left center;z-index:-1}.session-count-badge.auto-repeat-burst{animation:autoRepeatBurst .76s cubic-bezier(.16,1.4,.32,1) both}.session-count-badge.auto-repeat-idle-hint{animation:autoRepeatIdleHint 1.12s ease-in-out infinite;box-shadow:0 0 0 3px #ffd66b33,0 0 22px #ffd66b75,0 8px 22px #00000038;transform-origin:center}.flashcard.flashcard-auto-repeat-bursting .flashcard-back,.flashcard.flashcard-auto-repeat-bursting .flashcard-front{animation:autoRepeatCardPulse .98s cubic-bezier(.16,1.2,.3,1) both}@keyframes autoRepeatCharge{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes autoRepeatScorePop{0%{filter:brightness(1.8);opacity:0;transform:translate3d(20px,-12px,0) scale(.6)}34%{filter:brightness(1.35);opacity:1;transform:translate3d(-4px,2px,0) scale(1.18)}to{filter:brightness(1);opacity:1;transform:translateZ(0) scale(1)}}@keyframes autoRepeatBurst{0%{filter:brightness(1);transform:scale(1)}36%{box-shadow:0 0 0 8px #ffd66b29,0 0 38px #ffd66b9e,0 0 54px #2ec4b680;filter:brightness(1.65);transform:scale(1.34)}to{filter:brightness(1);transform:scale(1)}}@keyframes autoRepeatIdleHint{0%,to{filter:brightness(1);transform:translateX(0) scale(1)}12%{transform:translateX(-2px) scale(1.13)}24%{transform:translateX(2px) scale(1.17)}36%{transform:translateX(-2px) scale(1.15)}48%{filter:brightness(1.18);transform:translateX(2px) scale(1.12)}62%{transform:translateX(0) scale(1.08)}}@keyframes autoRepeatCardPulse{0%{border-color:#ffe5c22e;box-shadow:0 18px 44px #0000003d;filter:brightness(1)}36%{border-color:#2ec4b6c7;box-shadow:0 18px 44px #00000047,0 0 0 5px #2ec4b62e,0 0 34px #2ec4b680,0 0 54px #ffd66b6b;filter:brightness(1.08) saturate(1.08)}to{border-color:#ffe5c22e;box-shadow:0 18px 44px #0000003d;filter:brightness(1)}}.gesture-hints{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:5}.gesture-arrow{color:#3e1f0e9e;cursor:pointer;font-size:28px;font-weight:900;opacity:1;padding:20px;pointer-events:auto;position:absolute;text-shadow:0 1px 1px #fff6da8f;transition:color .2s ease,opacity .2s ease,transform .2s ease,background-color .2s ease;-webkit-user-select:none;user-select:none}.gesture-arrow-with-label{align-items:center;display:inline-flex;flex-direction:column;gap:2px;justify-content:center;line-height:1;min-height:58px;min-width:58px}.gesture-arrow-symbol{display:block;line-height:1}.gesture-arrow-label{color:var(--color-muted);display:block;font-size:11px;font-style:italic;font-weight:750;letter-spacing:0;line-height:1.05;opacity:.86;text-shadow:none;text-transform:none}.flashcard.show-back .gesture-arrow-label{color:#ffe5c2c7}.gesture-arrow-answer-ng,.gesture-arrow-answer-ok{align-items:center;border-radius:999px;box-shadow:0 8px 16px #00000038;display:inline-flex;font-size:24px;font-weight:900;height:46px;justify-content:center;width:46px}.gesture-arrow-with-label.gesture-arrow-answer-ng,.gesture-arrow-with-label.gesture-arrow-answer-ok{height:58px;padding:0;width:58px}.gesture-arrow-with-label.gesture-arrow-answer-ng .gesture-arrow-label,.gesture-arrow-with-label.gesture-arrow-answer-ok .gesture-arrow-label{color:#ffffffe0;font-size:10px;font-style:normal;opacity:1}.gesture-arrow-answer-ok{background:#2e9b52;color:#fff;text-shadow:none}.gesture-arrow-answer-ng{background:linear-gradient(135deg,#ff6b62,#d92f2f 55%,#9f1f1f);border:1px solid #ffd0c6b8;box-shadow:0 8px 18px #77141457,inset 0 0 0 1px #ffffff29;color:#fff;text-shadow:none}.gesture-arrow-message{align-items:center;background:#2a201ac7;border:1px solid #ffe5c257;border-radius:999px;box-shadow:0 10px 20px #00000042,inset 0 0 0 1px #ffffff14;color:#fff5dae6;display:inline-flex;font-size:22px;height:48px;justify-content:center;padding:0;text-shadow:none;width:48px}.flashcard.show-back .gesture-arrow{color:#ffd45dc2;text-shadow:0 2px 5px #00000070}.gesture-arrow:hover{color:#24110ad1;opacity:1;transform:scale(1.2)}.flashcard.show-back .gesture-arrow:hover{color:#fff4dcf0}.flashcard.show-back .gesture-arrow-answer-ng:hover,.flashcard.show-back .gesture-arrow-answer-ok:hover{color:#fff}.gesture-arrow:active{transform:scale(1.1)}.flashcard.show-back .gesture-arrow-disabled,.gesture-arrow-disabled{color:#5c4e4047;cursor:not-allowed;opacity:.38;pointer-events:auto}.flashcard.show-back .gesture-arrow-disabled:hover,.gesture-arrow-disabled:hover{background-color:initial;color:#5c4e4047}.flashcard:hover .gesture-arrow{opacity:.9}.arrow-left{left:0;top:50%;transform:translateY(-50%)}.arrow-left:hover{background-color:#24110a0f;transform:translateY(-50%) scale(1.2)}.arrow-left.gesture-arrow-answer-ng:hover{background:linear-gradient(135deg,#ff7b70,#df3232 55%,#a51f1f);transform:translateY(-50%) scale(1.08)}.arrow-left.gesture-arrow-message:hover{background:#2a201ae6;color:#fff6da;transform:translateY(-50%) scale(1.08)}.arrow-left:active{transform:translateY(-50%) scale(1.1)}.arrow-left.gesture-arrow-answer-ng:active{background:linear-gradient(135deg,#e4554f,#bd2727);transform:translateY(-50%) scale(1.02)}.arrow-left.gesture-arrow-message:active{transform:translateY(-50%) scale(1.02)}.card-message-chooser{background:#181412f0;border:1px solid #ffe5c23d;border-radius:8px;box-shadow:0 16px 34px #0000005c;left:54px;max-height:260px;padding:12px;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);width:min(310px,calc(100% - 72px));z-index:20}.card-message-options{display:flex;flex-wrap:wrap;gap:6px;max-height:178px;overflow-y:auto}.card-message-option{background:#ffe5c214;border:1px solid #ffe5c22e;border-radius:999px;color:#fff5dad1;cursor:pointer;font-size:12px;font-weight:800;min-height:30px;padding:0 9px}.card-message-option.is-selected{background:#ffd66b33;border-color:#ffd66bc7;color:#fff6da}.card-message-option:disabled{cursor:not-allowed;opacity:.34}.card-message-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}.card-message-actions button{background:#ffe5c21a;border:1px solid #ffe5c22e;border-radius:8px;color:#fff6da;cursor:pointer;font-weight:850;min-height:32px;padding:0 10px}.card-message-actions button:disabled{cursor:not-allowed;opacity:.45}.arrow-right{right:0;top:50%;transform:translateY(-50%)}.arrow-right:hover{background-color:#24110a0f;transform:translateY(-50%) scale(1.2)}.arrow-right.gesture-arrow-answer-ok:hover{background-color:#2e9b52;transform:translateY(-50%) scale(1.08)}.arrow-right:active{transform:translateY(-50%) scale(1.1)}.arrow-right.gesture-arrow-answer-ok:active{background-color:#267c43;transform:translateY(-50%) scale(1.02)}.arrow-up{left:50%;top:0;transform:translateX(-50%) translateY(12px)}.arrow-up:hover{background-color:#24110a0f;transform:translateX(-50%) translateY(12px) scale(1.2)}.arrow-up:active{transform:translateX(-50%) translateY(12px) scale(1.1)}.arrow-down{bottom:0;left:50%;transform:translateX(-50%) translateY(-12px)}.arrow-down:hover{background-color:#24110a0f;transform:translateX(-50%) translateY(-12px) scale(1.2)}.arrow-down:active{transform:translateX(-50%) translateY(-12px) scale(1.1)}.flashcard:hover .flashcard-back,.flashcard:hover .flashcard-front{border-color:#ffd66b7a;box-shadow:0 8px 24px #0000002e}.flashcard-front{background:linear-gradient(135deg,#ffe5c2f5,#ffd66bd1);border-color:#ffd66bb3}.flashcard-back{background:linear-gradient(135deg,#2a201afa,#ff7a5957);border-color:#ff7a599e;transform:rotateY(180deg);-webkit-transform:rotateY(180deg)}@keyframes flipLeftFrontToBack{0%{transform:translateZ(0) rotateY(0deg);transform:translate3d(var(--flashcard-drag-x,0),0,0) rotateY(0deg)}to{transform:translateZ(0) rotateY(-180deg);transform:translate3d(var(--flashcard-drag-x,0),0,0) rotateY(-180deg)}}@keyframes flipLeftBackToFront{0%{transform:translateZ(0) rotateY(180deg);transform:translate3d(var(--flashcard-drag-x,0),0,0) rotateY(180deg)}to{transform:translateZ(0) rotateY(0deg);transform:translate3d(var(--flashcard-drag-x,0),0,0) rotateY(0deg)}}@keyframes flipRightFrontToBack{0%{transform:translateZ(0) rotateY(0deg);transform:translate3d(var(--flashcard-drag-x,0),0,0) rotateY(0deg)}to{transform:translateZ(0) rotateY(180deg);transform:translate3d(var(--flashcard-drag-x,0),0,0) rotateY(180deg)}}@keyframes flipRightBackToFront{0%{transform:translateZ(0) rotateY(180deg);transform:translate3d(var(--flashcard-drag-x,0),0,0) rotateY(180deg)}to{transform:translateZ(0) rotateY(1turn);transform:translate3d(var(--flashcard-drag-x,0),0,0) rotateY(1turn)}}.flashcard-content{word-wrap:break-word;color:#24110a;font-size:26px;font-weight:400;line-height:1.6;max-height:220px;overflow-wrap:break-word;overflow-y:auto;padding:10px;position:relative;text-align:center;white-space:pre-wrap;width:100%;z-index:2}.flashcard-user-message-layer{inset:18px 22px;pointer-events:none;position:absolute;z-index:5}.flashcard-user-message{color:#922616fa;font-size:clamp(13px,3.1vw,18px);font-weight:900;line-height:1.1;max-width:34%;position:absolute;text-shadow:0 1px 2px #fff5dab8,0 0 14px #ffe28075;-webkit-user-select:none;user-select:none;white-space:nowrap}.flashcard-content>.markdown-text,.flashcard-side-memo{position:relative;z-index:2}.flashcard-content .markdown-text{font-family:var(--font-ui);font-synthesis:initial}.flashcard-side-memo{border-top:1px solid #24110a29;color:#24110ab8;font-size:15px;font-weight:650;line-height:1.45;margin-top:12px;padding-top:10px}.flashcard-side-memo-back{border-top-color:#ffe5c22e;color:#ffe5c2d1}.flashcard-hint{position:relative;z-index:2}.flashcard-cleared-stamp,.flashcard-corner-caption,.gesture-hints,.session-count-badge{z-index:9}.flashcard-content.small-font{font-size:20px;line-height:1.5}.flashcard-back .flashcard-content{color:var(--color-cream);font-weight:450}.flashcard-hint{color:var(--color-muted);font-size:15px;font-style:italic;font-weight:500;margin-top:24px;opacity:.8;transition:opacity .3s ease}.flashcard:hover .flashcard-hint{opacity:1}.flashcard-content::-webkit-scrollbar{width:8px}.flashcard-content::-webkit-scrollbar-track{background:#0000000d;border-radius:4px}.flashcard-content::-webkit-scrollbar-thumb{background:#0003;border-radius:4px}.flashcard-content::-webkit-scrollbar-thumb:hover{background:#0000004d}@media (max-width:600px){.flashcard{height:280px;max-width:450px;width:100%}.flashcard-content{font-size:20px;max-height:160px;padding:8px}.flashcard-content.small-font{font-size:16px}.flashcard-back,.flashcard-front{padding:25px}.flashcard-corner-caption{font-size:11px;left:12px;padding:5px 8px;top:12px}.flashcard-cleared-stamp{bottom:16px;right:16px;width:116px}.flashcard-hint{font-size:13px;margin-top:16px}}@media (max-width:480px){.flashcard{height:260px;max-width:450px;width:100%}.flashcard-back,.flashcard-front{padding:20px}.flashcard-corner-caption{left:10px;top:10px}.flashcard-cleared-stamp{bottom:12px;right:12px;width:96px}.flashcard-content{font-size:20px;max-height:none;padding:6px}.flashcard-content.small-font{font-size:16px}}@media (min-width:601px) and (max-width:900px){.flashcard{height:290px;width:380px}.flashcard-content{font-size:23px}.flashcard-content.small-font{font-size:18px}}.practice-session-card .flashcard{max-width:none}.reading-practice-shell{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:column;gap:10px;justify-content:flex-start;min-height:100%;padding:6px 0 12px;width:100%}.reading-practice-card{background:#1a1714f0;border:1px solid #ffe5c233;border-radius:8px;box-shadow:0 18px 40px #00000042;display:flex;flex-direction:column;min-height:0;overflow:visible;width:min(920px,100%)}.reading-practice-top{grid-gap:10px;align-items:center;border-bottom:1px solid #ffe5c21f;display:grid;gap:10px;grid-template-columns:minmax(92px,.22fr) minmax(0,1fr) minmax(92px,.22fr);padding:14px 16px 10px}.reading-practice-title-block{min-width:0;text-align:center}.reading-practice-kicker{color:var(--color-gold);font-size:12px;font-weight:900;text-transform:uppercase}.reading-practice-title{color:var(--color-cream);font-size:20px;line-height:1.2;margin:3px 0 0}.reading-practice-progress{background:#ffe5c21f;height:5px}.reading-practice-progress-fill{background:linear-gradient(90deg,#2ec4b6,var(--color-gold));height:100%;transition:width .18s ease}.reading-practice-content{color:var(--color-text);cursor:pointer;font-size:19px;line-height:1.75;outline:none;overflow:visible;padding:18px}.reading-practice-content:focus-visible{box-shadow:inset 0 0 0 2px #2ec4b68c}.reading-practice-section{border-left:3px solid #0000;border-radius:6px;margin:0;padding:8px 12px;white-space:pre-wrap}.reading-practice-section+.reading-practice-section{margin-top:18px}.reading-practice-section-next,.reading-practice-section-prev{color:#fff7e6c2}.reading-practice-section-current{background:#2ec4b629;border-left-color:#2ec4b6;color:var(--color-cream);cursor:crosshair;font-size:1.12em;line-height:1.82;position:relative}.reading-practice-scene-row{grid-gap:10px;align-items:center;color:#ffd66beb;display:grid;font-size:.86em;font-weight:900;gap:10px;grid-template-columns:minmax(24px,1fr) auto minmax(24px,1fr);text-align:center;text-transform:uppercase}.reading-practice-scene-row span[aria-hidden=true]{background:#ffd66b5c;height:1px}.reading-practice-speech-row{align-items:flex-start;display:flex;flex-direction:column;gap:5px;margin:6px 0}.reading-practice-speech-row.speaker-b{align-items:flex-end}.reading-practice-speaker-name{color:#ffe5c2b8;font-size:.72em;font-weight:950;text-transform:uppercase}.reading-practice-speech-bubble{background:#2ec4b624;border:1px solid #2ec4b647;border-radius:8px;box-shadow:0 12px 24px #0000002e;color:var(--color-cream);max-width:min(76%,620px);padding:10px 13px}.reading-practice-current-speech.speaker-b .reading-practice-speech-bubble,.reading-practice-speech-row.speaker-b .reading-practice-speech-bubble{background:#ffd66b21;border-color:#ffd66b52}.reading-practice-current-speech{cursor:pointer}.reading-practice-section-current.reading-practice-current-speech.speaker-b{background:#ffd66b24;border-left-color:var(--color-gold)}.reading-practice-section-current.reading-practice-section-pause{cursor:pointer}.reading-practice-current-speech .reading-practice-speech-row.is-current{align-items:center;text-align:center}.reading-practice-current-speech.speaker-b .reading-practice-speaker-name{color:#ffd66be0}.reading-practice-current-speech .reading-practice-speech-bubble{max-width:min(88%,680px)}.reading-practice-section-current.reading-repeat-pop{animation:readingRepeatBoxMotion .36s cubic-bezier(.18,1.22,.32,1) both}.reading-practice-section-current.reading-practice-current-speech.speaker-b.reading-repeat-pop{animation-name:readingRepeatBoxMotion}.reading-practice-drawing-frame{min-height:72px;position:relative}.reading-practice-drawing-canvas{cursor:crosshair;height:100%;inset:0;position:absolute;touch-action:none;width:100%;z-index:3}.reading-nav-button{background:#ffe5c214;border:1px solid #ffe5c233;border-radius:6px;color:var(--color-cream);cursor:pointer;font-weight:900;min-height:44px}.reading-practice-session-status{background:#1a1714b8;border:1px solid #ffe5c229;border-radius:6px;color:var(--color-cream);cursor:pointer;font-size:.82em;font-weight:900;isolation:isolate;justify-content:center;line-height:1;min-height:28px;min-width:62px;overflow:hidden;padding:2px 9px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.reading-practice-session-status,.reading-practice-session-tools{align-items:center;display:inline-flex;margin-left:8px;position:relative;vertical-align:initial}.reading-practice-session-tools{gap:6px;z-index:4}.reading-practice-session-tools .reading-practice-session-status{margin-left:0}.reading-browser-tts-button{align-items:center;background:#1a1714d1;border:1px solid #ffd66b6b;border-radius:50%;color:#ffd66b;cursor:pointer;display:inline-flex;flex:0 0 30px;height:30px;justify-content:center;padding:0;touch-action:manipulation;transition:transform .16s ease,background .16s ease,box-shadow .16s ease;width:30px}.reading-browser-tts-button:focus-visible,.reading-browser-tts-button:hover{background:#ffd66b29;box-shadow:0 0 0 3px #ffd66b1f;outline:none;transform:scale(1.06)}.reading-browser-tts-button.is-speaking{animation:readingBrowserTtsPulse 1.1s ease-in-out infinite;border-color:#2ec4b6b3;box-shadow:0 0 16px #2ec4b64d;color:#7ce8dc}.reading-browser-tts-button.is-locked{background:#1a171494;border-color:#ffe5c22e;color:#ffe5c280}.reading-practice-session-status.auto-repeat-charging{border-color:#2ec4b68f;box-shadow:0 0 0 3px #2ec4b629,0 0 26px #2ec4b657;transform:scale(1.04)}.reading-practice-session-status.auto-repeat-charging:after{animation:readingAutoRepeatCharge 1s linear forwards;background:linear-gradient(90deg,#2ec4b680,#ffd66b73);content:"";inset:0;position:absolute;transform-origin:left center;z-index:-1}.reading-practice-session-status.auto-repeat-burst{animation:readingAutoRepeatBurst .76s cubic-bezier(.16,1.4,.32,1) both}.reading-practice-continue-cue{align-items:center;background:#1a171494;border:1px solid #ffe5c229;border-radius:999px;color:#ffe5c2b3;display:inline-flex;font-size:.72em;font-weight:850;justify-content:center;line-height:1;margin-left:8px;padding:3px 9px}.reading-practice-session-status.repeat-burst{animation:none}.reading-practice-current-speech.speaker-b .reading-practice-session-status.repeat-burst{animation-name:none}.reading-repeat-score-pop{animation:readingRepeatScoreFloat .72s cubic-bezier(.16,1.22,.32,1) both;background:linear-gradient(135deg,#2ec4b6f5,#ffd66beb);border-radius:999px;box-shadow:0 8px 18px #00000047,0 0 18px #2ec4b66b;color:#1d140f;font-size:15px;font-weight:950;line-height:1;padding:4px 9px;pointer-events:none;position:absolute;right:16px;top:50%;z-index:2}.reading-practice-current-speech.speaker-b .reading-repeat-score-pop{background:linear-gradient(135deg,#ffd66bfa,#ff7a59e0);box-shadow:0 8px 18px #00000047,0 0 18px #ffd66b70}@keyframes readingRepeatBoxMotion{0%{transform:translateY(0) scale(1)}38%{transform:translateY(-3px) scale(1.012)}to{transform:translateY(0) scale(1)}}@keyframes readingRepeatScoreFloat{0%{opacity:0;transform:translate3d(0,-40%,0) scale(.72)}28%{opacity:1;transform:translate3d(0,-75%,0) scale(1.08)}to{opacity:0;transform:translate3d(0,-150%,0) scale(1)}}@keyframes readingBrowserTtsPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes readingAutoRepeatCharge{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes readingAutoRepeatBurst{0%{filter:brightness(1);transform:scale(1)}38%{box-shadow:0 0 0 8px #ffd66b24,0 0 36px #2ec4b675;filter:brightness(1.55);transform:scale(1.14)}to{filter:brightness(1);transform:scale(1)}}@media (max-width:640px){.reading-practice-top{gap:8px;grid-template-columns:minmax(76px,auto) minmax(0,1fr) minmax(76px,auto);padding:10px 12px 8px}.reading-practice-title{font-size:17px}.reading-practice-content{font-size:17px;padding:14px}.reading-nav-button{font-size:13px;min-height:40px}}.evaluation-panel{background-color:#2a2a2a;border-radius:8px;padding:12px;text-align:center}.evaluation-prompt{color:#e0e0e0;font-size:15px;font-weight:500;margin:0 0 10px}.star-rating-container{display:flex;gap:5px;justify-content:center;margin-bottom:8px}.star-btn{font-size:36px;line-height:1;padding:0;transition:all .2s}.star-btn:disabled{cursor:wait}.star-btn.filled{color:gold;text-shadow:0 0 3px #ffd70080}.star-btn.empty{color:#ddd}.star-btn:active:not(:disabled){transform:scale(1.1)}.star-btn.selected{transform:scale(1.14)}.star-btn.quick-limit-muted{color:grey;filter:saturate(.2);text-shadow:none}.rating-label-container{align-items:center;display:flex;gap:10px;justify-content:center;min-height:28px}.rating-copy{align-items:center;display:flex;flex-direction:column;gap:4px}.rating-auto-cue{animation:autoGradePulse .9s ease-out;color:#ffcc6e;font-size:12px;font-weight:800;letter-spacing:.03em;margin:0;text-transform:uppercase}.rating-time-limit-cue{color:#b9b9b9}.rating-label{color:#b0b0b0;font-size:13px;font-style:italic;font-weight:500;margin:0;transition:color .2s ease}@keyframes autoGradePulse{0%{opacity:0;transform:translateY(5px) scale(.96)}35%{opacity:1;transform:translateY(0) scale(1.04)}to{opacity:1;transform:translateY(0) scale(1)}}.inline-spinner{animation:spin .8s linear infinite;border:3px solid #ffd7004d;border-radius:50%;border-top-color:gold;height:20px;width:20px}@media (max-width:600px){.star-btn{font-size:36px}}@media (max-width:480px){.evaluation-panel{margin-top:4px;padding:8px 4px}.star-rating-container{gap:12px}.star-btn{align-items:center;display:inline-flex;justify-content:center;min-height:48px;min-width:48px}}.spinner-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:20px}.spinner{animation:spin 1s linear infinite;border-radius:50%}.spinner-small{border:3px solid #e3f2fd;border-top-color:#2196f3;height:20px;width:20px}.spinner-medium{border:4px solid #e3f2fd;border-top-color:#2196f3;height:40px;width:40px}.spinner-large{border:5px solid #e3f2fd;border-top-color:#2196f3;height:60px;width:60px}.spinner-message{color:#2196f3;font-size:14px;font-weight:600;margin-top:12px;text-align:center}.error-message{animation:slideIn .3s ease-out;background-color:#fff;border:1px solid;border-radius:8px;box-shadow:0 2px 4px #0000001a;flex-direction:column;gap:12px;margin:16px 0;padding:16px}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.error-message-network{background-color:#fff3e0;border-color:#ff9800}.error-message-api{background-color:#ffebee;border-color:#f44336}.error-message-validation{background-color:#fbe9e7;border-color:#ff5722}.error-message-general{background-color:#ffebee;border-color:#f44336}.error-message-content{align-items:flex-start;display:flex;gap:12px}.error-message-icon{flex-shrink:0;font-size:24px;line-height:1}.error-message-text{color:#333;flex:1 1;font-size:14px;line-height:1.5;word-break:break-word}.error-message-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.error-message-btn{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s ease}.error-message-btn:hover{box-shadow:0 2px 4px #0003;transform:translateY(-1px)}.error-message-btn:active{transform:translateY(0)}.error-message-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.error-message-btn-retry{background-color:#2196f3;color:#fff}.error-message-btn-retry:hover:not(:disabled){background-color:#1976d2}.error-message-btn-dismiss{background-color:#f5f5f5;color:#666}.error-message-btn-dismiss:hover:not(:disabled){background-color:#e0e0e0}@media (max-width:600px){.error-message{margin:12px 0;padding:12px}.error-message-icon{font-size:20px}.error-message-text{font-size:13px}.error-message-btn{font-size:13px;padding:6px 12px}}.flashcard-form-container{background-color:#fff;border-radius:12px;box-shadow:0 4px 8px #0000001a;margin:0 auto;max-width:600px;padding:30px;position:relative}.form-loading-overlay{align-items:center;background-color:#ffffffe6;border-radius:12px;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.flashcard-form-container h2{color:#333;font-size:24px;margin-bottom:30px;margin-top:0;text-align:center}.flashcard-form{display:flex;flex-direction:column;gap:20px}.form-label-row{align-items:center;display:flex;gap:12px;justify-content:space-between}.card-type-switch{grid-gap:6px;background:#f7efe6;border:1px solid #d8c6b6;border-radius:10px;display:grid;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr));padding:5px}.card-type-switch-create{grid-template-columns:repeat(3,minmax(0,1fr))}.card-type-switch-option{background:#0000;border:0;border-radius:7px;color:#6d5b4d;cursor:pointer;font:inherit;font-weight:850;min-height:38px}.card-type-switch-option.active{background:linear-gradient(135deg,#ffd86b,#ff8a65);box-shadow:0 4px 10px #4e2d1733;color:#1d140f}.card-type-switch-option:disabled{cursor:not-allowed;opacity:.65}.markup-toolbar{display:flex;gap:8px}.markup-toolbar-btn{background:#fff7ef;border:1px solid #d8c6b6;border-radius:8px;color:#5a3422;cursor:pointer;font-size:16px;font-weight:800;min-height:34px;min-width:34px}.markup-toolbar-icon-btn{align-items:center;display:inline-flex;justify-content:center}.markup-toolbar-btn:nth-child(2){font-style:italic}.markup-toolbar-btn:hover:not(:disabled){background:#ffe7cf}.form-field-label,.form-group label{color:#5a3422;font-size:16px;font-weight:850;letter-spacing:.01em}.required{color:#d32f2f;font-weight:700}.form-textarea{border:2px solid #ddd;border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:16px;padding:12px;resize:vertical;transition:border-color .3s ease;width:100%}.form-textarea:focus{border-color:#2196f3;outline:none}.form-textarea.error{border-color:#d32f2f}.form-textarea:disabled{background-color:#f5f5f5;cursor:not-allowed}.flashcard-form-reading-textarea{line-height:1.55;min-height:260px}.error-message{align-items:center;color:#d32f2f;display:flex;font-size:14px;gap:4px;margin-top:4px}.error-message:before{content:"⚠";font-size:16px}.submit-error{background-color:#ffebee;border-left:4px solid #d32f2f;border-radius:6px;padding:12px}.form-actions{align-items:center;display:flex;gap:12px;justify-content:flex-end;margin-top:10px}.btn{border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;min-width:100px;padding:12px 24px;transition:all .3s ease}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-cancel{background-color:#f5f5f5;color:#666}.btn-cancel:hover:not(:disabled){background-color:#e0e0e0;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.btn-cancel:active:not(:disabled){box-shadow:none;transform:translateY(0)}.btn-submit{background-color:#2196f3;color:#fff}.btn-submit:hover:not(:disabled){background-color:#1976d2;box-shadow:0 4px 8px #2196f34d;transform:translateY(-1px)}.btn-submit:active:not(:disabled){box-shadow:0 2px 4px #2196f34d;transform:translateY(0)}.btn-level-up-form{align-items:center;background:linear-gradient(135deg,#ffd66b,#ff7a59);background:linear-gradient(135deg,var(--color-gold,#ffd66b),var(--color-coral,#ff7a59));border:1px solid #ffd66b6b;box-shadow:0 8px 18px #ff7a592e;color:#24110a;display:inline-flex;font-weight:800;gap:6px;justify-content:center}.btn-level-up-form:hover:not(:disabled){box-shadow:0 10px 22px #ff7a593d;filter:brightness(1.04);transform:translateY(-1px)}.btn-level-up-form:active:not(:disabled){transform:translateY(0)}.btn-delete{background:#8c302b24;border:1px solid #b23a3047;color:#b23a30;margin-right:auto}.btn-delete:hover:not(:disabled){background:#b23a302e;box-shadow:0 4px 8px #b23a302e;transform:translateY(-1px)}.btn-delete:active:not(:disabled){box-shadow:0 2px 4px #b23a302e;transform:translateY(0)}@media (max-width:600px){.flashcard-form-container{margin:10px;padding:20px}.flashcard-form-container h2{font-size:20px;margin-bottom:20px}.form-textarea{font-size:14px}.form-label-row{align-items:center;flex-direction:row;gap:10px;justify-content:space-between}.markup-toolbar{flex-shrink:0;margin-left:auto}.form-actions{flex-direction:column-reverse}.form-actions .btn-level-up-form{order:4}.form-actions .btn-submit{order:3}.form-actions .btn-cancel{order:2}.form-actions .btn-delete{order:1}.btn-delete{margin-right:0}.btn{width:100%}}.form-input{border:2px solid #ddd;border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:16px;padding:12px;transition:border-color .3s ease;width:100%}.form-input:focus{border-color:#2196f3;outline:none}.form-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.grade-selector{align-items:center;display:flex;gap:8px}.star-btn{background:none;border:none;color:#ddd;cursor:pointer;font-size:32px;padding:4px;transition:transform .2s ease}.star-btn.filled{color:#ffc107}.star-btn:hover:not(:disabled){transform:scale(1.2)}.star-btn:disabled{cursor:not-allowed;opacity:.6}.level-up-form-container{grid-gap:16px;background:#fffaf2;color:#2a201a;display:grid;gap:16px;padding:20px}.level-up-form-guidance{background:linear-gradient(135deg,#ffd66b47,#2ec4b621),#fff5dc;border:1px solid #ffd66b61;border-radius:8px;color:#4f321f;font-size:.95rem;font-weight:800;line-height:1.45;margin:0;padding:14px 15px}.level-up-form{grid-gap:16px;display:grid;gap:16px}.level-up-form-group{grid-gap:8px;color:#5a3422;display:grid;font-size:16px;font-weight:850;gap:8px}.level-up-form-textarea{background:#fff;border:2px solid #d8c6b6;border-radius:8px;box-sizing:border-box;color:#1f1712;font:inherit;line-height:1.45;min-height:112px;padding:12px;resize:vertical;width:100%}.level-up-form-textarea:focus{border-color:#2196f3;outline:none}.level-up-form-textarea:disabled{background:#f5f5f5;cursor:not-allowed}.level-up-form-actions{display:flex;gap:12px;justify-content:flex-end}@media (max-width:520px){.level-up-form-container{padding:16px}.level-up-form-actions{flex-direction:column}.level-up-form-actions .btn{width:100%}}.gym-icon{--gym-icon-color:currentColor;align-items:center;color:inherit;display:inline-grid;flex:0 0 auto;grid-template-columns:6px 4px 18px 4px 6px;height:20px;width:38px}.gym-icon-bar,.gym-icon-grip,.gym-icon-plate{background:var(--gym-icon-color);display:block}.gym-icon-plate{border-radius:3px;box-shadow:inset 0 -2px 0 #0000002e;height:18px;width:6px}.gym-icon-grip{height:12px;opacity:.8;width:4px}.gym-icon-bar{border-radius:999px;height:5px;width:18px}.gym-icon-plate-left{transform:translateX(1px)}.gym-icon-plate-right{transform:translateX(-1px)}.scene-player{align-items:stretch;color:var(--color-cream);display:flex;inset:0;justify-content:center;overflow:hidden;position:fixed;z-index:520}.scene-player-coaching{background:radial-gradient(circle at 50% 16%,#ffd66b2e,#0000 17rem),linear-gradient(180deg,#3a2619fa,#170c09fc)}.scene-player-opponent{background:linear-gradient(115deg,#ffd2612e,#0000 34%),radial-gradient(circle at 50% 12%,#fff6c13d,#0000 18rem),linear-gradient(180deg,#371810fc,#0e0908)}.scene-player-stage{box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;min-height:100dvh;padding:22px 16px;position:relative;width:min(100%,600px)}.scene-player-flare{animation:scene-player-light-sweep 1.6s ease-in-out infinite alternate;background:linear-gradient(95deg,#0000 0 32%,#ffe78524 46%,#0000 62%),linear-gradient(265deg,#0000 0 36%,#ff79481f 50%,#0000 66%);inset:0 8%;position:absolute;transform:skewX(-8deg)}.scene-player-meta{display:flex;gap:8px;justify-content:center;margin-bottom:10px;position:relative;z-index:2}.scene-player-meta span{background:#120d0bb3;border:1px solid #ffd66b6b;border-radius:999px;color:var(--color-gold);font-size:11px;font-weight:900;letter-spacing:.08em;padding:5px 9px;text-transform:uppercase}.scene-player-character-wrap{align-items:flex-end;animation:scene-player-character-in .52s cubic-bezier(.2,.85,.24,1) both;display:flex;justify-content:center;margin-bottom:16px;min-height:42dvh;position:relative;z-index:1}.scene-player-character{animation:scene-player-idle 1.55s ease-in-out infinite;filter:drop-shadow(0 0 18px rgba(255,208,95,.24)) drop-shadow(0 20px 22px rgba(0,0,0,.42));image-rendering:pixelated;max-height:43dvh;object-fit:contain;position:relative;width:min(62vw,270px);z-index:2}.scene-player-character-placeholder{height:30dvh;width:min(48vw,220px)}.scene-player-vs{color:#ffdb68eb;font-size:54px;font-weight:1000;left:50%;position:absolute;text-shadow:0 0 8px #ff6030a6,0 4px 0 #491a0fcc;top:8%;transform:translateX(-50%) rotate(-8deg);z-index:3}.scene-player-dialogue{animation:scene-player-dialogue-in .42s ease-out .12s both;background:linear-gradient(180deg,#2d201af5,#191210fa),var(--color-surface);border:2px solid #ffd66bb8;border-radius:8px;box-shadow:inset 0 0 0 2px #fff5da14,0 18px 36px #00000061;min-height:176px;padding:18px 18px 16px;position:relative;z-index:4}.scene-player-opponent .scene-player-dialogue{background:linear-gradient(180deg,#341a14f7,#160f0dfc);border-color:#ffae43d1;box-shadow:inset 0 0 0 2px #fff5da14,0 0 28px #ff683133,0 18px 36px #0006}.scene-player-speaker{background:#111814db;border:1px solid #ffd66b80;border-radius:6px;color:var(--color-gold);font-size:12px;font-weight:900;letter-spacing:.08em;margin-bottom:10px;max-width:100%;overflow:hidden;padding:5px 10px;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;width:fit-content}.scene-player-message{color:var(--color-cream);font-size:21px;font-weight:850;line-height:1.35;margin:0 0 18px;min-height:58px}.scene-player-cursor{animation:scene-player-cursor-blink .7s steps(1) infinite;background:var(--color-coral);display:inline-block;height:1em;margin-left:3px;vertical-align:-.16em;width:8px}.scene-player-continue{align-items:center;background:linear-gradient(135deg,var(--color-gold),var(--color-coral));border:0;border-radius:8px;box-shadow:0 12px 24px #ff663c38;color:#17110d;cursor:pointer;display:flex;font-size:17px;font-weight:950;gap:10px;justify-content:center;min-height:50px;transition:transform .15s ease,filter .15s ease;width:100%}.scene-player-continue-icon{height:18px;width:36px}.scene-player-continue:hover{filter:brightness(1.05);transform:translateY(-1px)}.scene-player-continue:active{transform:translateY(1px)}@keyframes scene-player-character-in{0%{opacity:0;transform:translateY(28px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes scene-player-dialogue-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes scene-player-idle{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes scene-player-light-sweep{0%{opacity:.36;transform:translateX(-4%) skewX(-8deg)}to{opacity:.72;transform:translateX(4%) skewX(-8deg)}}@keyframes scene-player-cursor-blink{0%,45%{opacity:1}46%,to{opacity:0}}@media (max-height:640px){.scene-player-stage{padding:14px}.scene-player-character-wrap{margin-bottom:12px;min-height:32dvh}.scene-player-character{max-height:32dvh;width:min(48vw,190px)}.scene-player-message{font-size:18px}}@media (prefers-reduced-motion:reduce){.scene-player-character,.scene-player-character-wrap,.scene-player-cursor,.scene-player-dialogue,.scene-player-flare{animation:none}}.npc-encounter-overlay{align-items:stretch;background:radial-gradient(circle at 50% 8%,#ffd66b47,#0000 14rem),radial-gradient(circle at 18% 72%,#ff5b3a3d,#0000 18rem),linear-gradient(180deg,#36110bfc,#0a0808);color:var(--color-cream);display:flex;inset:0;justify-content:center;overflow:hidden;position:fixed;z-index:610}.npc-encounter-fire{animation:npcFirePulse .84s ease-in-out infinite alternate;background:radial-gradient(ellipse at 20% 100%,#ff582a75,#0000 42%),radial-gradient(ellipse at 48% 100%,#ffd66b80,#0000 44%),radial-gradient(ellipse at 80% 100%,#ff73376b,#0000 40%);filter:blur(10px);height:38%;inset:auto -10% -18% -10%;pointer-events:none;position:absolute}.npc-encounter-overlay.is-critical{background:radial-gradient(circle at 50% 8%,#ffd66b57,#0000 14rem),radial-gradient(circle at 18% 72%,#ff372857,#0000 18rem),linear-gradient(180deg,#4c0c08fc,#0a0808)}.npc-encounter-overlay.is-opponent-critical:after,.npc-encounter-overlay.is-user-critical:after{animation:npcCriticalFrame .52s ease-in-out infinite alternate;border:6px solid #ff2d2166;box-shadow:inset 0 0 44px #ff1e1457;content:"";inset:0;pointer-events:none;position:absolute}.npc-impact-flash{inset:0;opacity:0;pointer-events:none;position:absolute}.npc-encounter-overlay.impact-opponent .npc-impact-flash{animation:npcSuccessFlash .52s ease-out both}.npc-encounter-overlay.impact-user .npc-impact-flash{animation:npcDamageFlash .46s ease-out both}.npc-impact-burst{border:4px solid #ffeb7eeb;border-radius:50%;box-shadow:0 0 0 10px #37e0cb33,0 0 42px #ffe25cb8;height:90px;left:25%;opacity:0;pointer-events:none;position:absolute;top:18%;width:90px;z-index:3}.npc-encounter-overlay.impact-opponent .npc-impact-burst{animation:npcSuccessBurst .52s cubic-bezier(.16,.9,.3,1) both}.npc-impact-label{border-radius:6px;font-size:clamp(19px,5vw,28px);font-weight:1000;left:50%;letter-spacing:.04em;padding:7px 14px;pointer-events:none;position:absolute;text-transform:uppercase;top:23%;white-space:nowrap;z-index:6}.npc-impact-label-opponent{animation:npcSuccessLabel .52s cubic-bezier(.16,1.2,.3,1) both;background:#0e5046e6;border:1px solid #fff097c2;box-shadow:0 0 28px #37e0cb8c;color:#fff3a6}.npc-impact-label-user{animation:npcDamageLabel .46s ease-out both;background:#68110ceb;border:1px solid #ff7353b3;box-shadow:0 0 28px #ff3b2580;color:#ffe0d8}.npc-encounter-panel{box-sizing:border-box;display:flex;flex-direction:column;gap:12px;min-height:100dvh;padding:16px 14px 18px;position:relative;width:min(100%,600px);z-index:1}.npc-encounter-topbar{grid-gap:8px;align-items:center;background:#150e0dc7;border:1px solid #ffd66b57;border-radius:8px;box-shadow:0 12px 28px #00000061;display:grid;gap:8px;grid-template-columns:1fr auto 1fr;padding:10px}.npc-fighter{grid-gap:5px;display:grid;gap:5px;min-width:0}.npc-fighter.is-critical .npc-fighter-name,.npc-fighter.is-critical .npc-hp-value{animation:npcDangerBeat .38s ease-in-out infinite alternate;color:#ff6f58;text-shadow:0 0 14px #ff321fd9}.npc-encounter-overlay.impact-opponent .npc-fighter-opponent{animation:npcOpponentHit .46s cubic-bezier(.2,.92,.2,1) both}.npc-encounter-overlay.impact-opponent .npc-fighter-user{animation:npcSuccessfulAttack .46s cubic-bezier(.2,.92,.2,1) both}.npc-encounter-overlay.impact-user .npc-fighter-user{animation:npcUserHit .46s cubic-bezier(.2,.92,.2,1) both}.npc-fighter-user{text-align:right}.npc-card-caption,.npc-encounter-meta,.npc-fighter-name,.npc-hp-value{font-weight:1000;letter-spacing:.06em;text-transform:uppercase}.npc-fighter-name{color:var(--color-gold);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.npc-hp-track{background:#0000006b;border:1px solid #fff5da29;border-radius:999px;height:13px;overflow:hidden}.npc-hp-fill{height:100%;transition:width .3s ease}.npc-hp-fill-opponent{background:linear-gradient(90deg,#ff3d2f,#ffb23f)}.npc-hp-fill-user{background:linear-gradient(90deg,#55d6ff,#41f2b1);margin-left:auto}.npc-fighter.is-critical .npc-hp-track{border-color:#ff4c34d9;box-shadow:0 0 0 2px #ff4c3429,0 0 20px #ff34246b}.npc-fighter.is-critical .npc-hp-fill{animation:npcHpCritical .46s linear infinite;background:linear-gradient(90deg,#ff1f1f,#ffd24f)}.npc-hp-value{color:#fff3d1;font-size:12px}.npc-versus{background:#3a120de0;border:1px solid #ffd66b6b;border-radius:999px;box-shadow:0 0 22px #ff5e3a57;color:#ffd66b;display:grid;height:42px;place-items:center;width:42px}.npc-encounter-meta{align-items:center;color:#ffd66b;display:flex;font-size:12px;justify-content:space-between}.npc-timer{background:#120808b8;border:1px solid #ffd66b85;border-radius:8px;box-shadow:0 0 18px #ffd66b33;color:#ffe9a3;font-size:30px;line-height:1;min-width:68px;padding:6px 10px;text-align:center;text-shadow:0 0 14px #ffd66b99}.npc-timer.is-danger{animation:npcTimerPanic .28s ease-in-out infinite alternate;border-color:#ff6f58db;box-shadow:0 0 0 2px #ff6f5833,0 0 28px #ff4c3480;color:#ff6f58}.npc-timer.is-timeout{animation:npcTimeoutStamp .36s ease-out both;background:linear-gradient(135deg,#ff5a45,#ffd45e);color:#1a0e0b;min-width:118px;text-shadow:none}.npc-encounter-card-wrap{display:flex;flex:1 1;min-height:0;position:relative}.npc-encounter-card{grid-gap:12px;background:linear-gradient(145deg,#ffebb8fa,#ecbe58fa),#f3cf83;border:2px solid #ffd66b94;border-radius:8px;box-shadow:0 18px 42px #0006,inset 0 0 0 2px #ffffff29;color:#24160f;cursor:pointer;display:grid;gap:12px;padding:14px;width:100%}.npc-encounter-drawing-canvas{border-radius:8px;cursor:crosshair;height:100%;inset:0;position:absolute;touch-action:none;width:100%;z-index:4}.npc-encounter-card.is-revealed{background:linear-gradient(145deg,#f5e8cefa,#ffcd7efa),#f7d59b}.npc-encounter-card.is-timeout{border-color:#ff462fe0;box-shadow:0 18px 42px #0006,0 0 0 4px #ff462f2e,inset 0 0 0 2px #ffffff29}.npc-encounter-card.impact-opponent{animation:npcAttackSurge .52s ease-out both}.npc-encounter-card.impact-user{animation:npcCounterSurge .46s ease-out both}.npc-card-face{background:#ffffff2e;border-radius:8px;display:flex;flex-direction:column;font-size:clamp(22px,5vw,34px);gap:10px;justify-content:center;line-height:1.35;min-height:0;padding:12px}.npc-card-back{animation:npcAnswerDrop .28s ease-out both;border-top:2px dashed #4e2f1d4d}.npc-card-caption{color:#4e2f1da8;font-size:11px}.npc-encounter-actions{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr;min-height:48px}.npc-encounter-hint{align-self:center;color:#fff5dac2;font-size:13px;font-weight:800;grid-column:1/-1;justify-self:center}.npc-action{align-items:center;border:0;border-radius:8px;box-shadow:0 8px 0 #0000002e;color:#1b100c;cursor:pointer;display:inline-flex;font-size:16px;font-weight:1000;gap:8px;justify-content:center;min-height:48px;transition:transform .12s ease,filter .12s ease}.npc-action:not(:disabled):active{box-shadow:0 4px 0 #0000002e;transform:translateY(3px) scale(.98)}.npc-action:disabled{cursor:not-allowed;filter:grayscale(.8) brightness(.7)}.npc-action-ok{animation:npcActionReady .76s ease-in-out infinite alternate;background:linear-gradient(135deg,#70ffc7,#30c4ff)}.npc-action-no{background:linear-gradient(135deg,#ff8068,#ffcd69)}.npc-encounter-card.is-timeout~.npc-encounter-actions .npc-action-no{animation:npcNoEmergency .42s ease-in-out infinite alternate}.npc-outcome{animation:npcOutcomePop .42s ease-out both;color:#fff1c3;font-size:13px;font-weight:1000;letter-spacing:.05em;min-height:22px;text-align:center;text-transform:uppercase}.npc-outcome-ok{color:#8fffe6;text-shadow:0 0 14px #37e0cb94}.npc-outcome-no,.npc-outcome-timeout{color:#ffb09e}.npc-encounter-skip{align-self:center;background:#0000;border:0;color:#fff5da99;cursor:pointer;font-weight:900}@keyframes npcFirePulse{0%{opacity:.64;transform:translateY(0) scaleX(1)}to{opacity:1;transform:translateY(-10px) scaleX(1.05)}}@keyframes npcDangerBeat{0%{transform:scale(1)}to{transform:scale(1.18)}}@keyframes npcTimerPanic{0%{transform:scale(1) rotate(-1deg)}to{transform:scale(1.18) rotate(1deg)}}@keyframes npcTimeoutStamp{0%{opacity:0;transform:scale(1.38) rotate(-3deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}@keyframes npcCriticalFrame{0%{opacity:.3}to{opacity:.86}}@keyframes npcHpCritical{0%,to{filter:brightness(1)}50%{filter:brightness(1.45)}}@keyframes npcSuccessFlash{0%{background:#fff0;opacity:0}16%{background:#fff6a44d;opacity:1}34%{background:#3be6cb33;opacity:.78}to{background:#3be6cb00;opacity:0}}@keyframes npcDamageFlash{0%{background:#ff351f00;opacity:0}18%{background:#ff351f61;opacity:1}to{background:#6b080300;opacity:0}}@keyframes npcSuccessBurst{0%{opacity:0;transform:translate(-50%,-50%) scale(.28)}24%{opacity:1;transform:translate(-50%,-50%) scale(.8)}to{opacity:0;transform:translate(-50%,-50%) scale(2.2)}}@keyframes npcSuccessLabel{0%{opacity:0;transform:translate(-50%,14px) scale(.72)}28%{opacity:1;transform:translate(-50%) scale(1.08)}to{opacity:0;transform:translate(-50%,-12px) scale(1)}}@keyframes npcDamageLabel{0%{opacity:0;transform:translate(-50%) scale(1.28) rotate(-2deg)}28%{opacity:1;transform:translate(-50%) scale(1) rotate(2deg)}to{opacity:0;transform:translate(-50%,8px) scale(.94)}}@keyframes npcOpponentHit{0%{filter:brightness(1);transform:translateX(0)}22%{filter:brightness(1.65);transform:translateX(-14px) skewX(-7deg)}42%{transform:translateX(8px) skewX(4deg)}to{filter:brightness(1);transform:translateX(0)}}@keyframes npcUserHit{0%{filter:brightness(1);transform:translateX(0)}22%{filter:brightness(1.55);transform:translateX(14px) skewX(7deg)}42%{transform:translateX(-8px) skewX(-4deg)}to{filter:brightness(1);transform:translateX(0)}}@keyframes npcSuccessfulAttack{0%{filter:brightness(1);transform:translateX(0) scale(1)}22%{filter:brightness(1.45);transform:translateX(-5px) scale(1.06)}to{filter:brightness(1);transform:translateX(0) scale(1)}}@keyframes npcAttackSurge{0%{transform:scale(1)}22%{border-color:#ffef89f5;box-shadow:0 0 0 5px #37e0cb33,0 0 42px #ffe05ba3;filter:brightness(1.18) saturate(1.12);transform:translateY(-3px) scale(1.03)}to{transform:scale(1)}}@keyframes npcCounterSurge{0%{transform:scale(1)}22%{box-shadow:0 0 38px #ff4e3680;transform:scale(.985)}to{transform:scale(1)}}@keyframes npcActionReady{0%{filter:brightness(1)}to{filter:brightness(1.12)}}@keyframes npcNoEmergency{0%{filter:brightness(1);transform:translateY(0)}to{filter:brightness(1.2);transform:translateY(-2px)}}@keyframes npcAnswerDrop{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes npcOutcomePop{0%{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}.celebration-overlay{align-items:center;animation:celebrationOverlayIn .26s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c0604b8;box-sizing:border-box;display:flex;inset:0;justify-content:center;overflow:hidden;overscroll-behavior:contain;padding:24px;position:fixed;z-index:10000}.celebration-popup{animation:celebrationPopupIn .26s cubic-bezier(.2,.8,.2,1);background:linear-gradient(145deg,#3e2216fa,#180f0cfa),#2b1b14;border:1px solid #ffcc5e57;border-radius:8px;box-shadow:0 24px 70px #00000085,0 0 42px #ff7e4a2e;color:#fff4dc;padding:34px 28px 30px;position:relative;width:min(420px,100%)}.celebration-close-btn{background:#ffffff0d;border:1px solid #ffe7b12e;border-radius:6px;color:#ffd982;cursor:pointer;font-family:inherit;font-size:18px;font-weight:900;height:32px;line-height:1;position:absolute;right:10px;top:10px;transition:background .16s ease,transform .16s ease,color .16s ease;width:32px}.celebration-close-btn:hover{background:#ff7e4a38;color:#fff4dc;transform:translateY(-1px)}.celebration-content{align-items:center;display:flex;flex-direction:column;gap:16px;text-align:center}.celebration-visual-stage{align-items:center;display:flex;justify-content:center;overflow:hidden;position:relative}.celebration-sprite{animation-fill-mode:forwards;background-position:0 0;background-repeat:no-repeat;filter:drop-shadow(0 10px 18px rgba(0,0,0,.38));image-rendering:pixelated;inset:0;position:absolute}.celebration-sprite.playing{animation-name:celebrationSpritePlay}.celebration-sprite.complete{background-position:0 0;background-position:var(--celebration-sprite-final-x,0) 0}.celebration-icon{animation:celebrationIconPop .62s ease-out both;bottom:6px;filter:drop-shadow(0 10px 18px rgba(0,0,0,.38));height:74%;image-rendering:auto;object-fit:contain;pointer-events:none;position:absolute;right:-14px;transform-origin:bottom right;width:74%}.celebration-icon.revealed{opacity:1}.celebration-message h2{color:#ffd45d;font-size:30px;font-weight:900;letter-spacing:0;margin:0 0 10px}.celebration-subtitle{color:#fff0d0;font-size:18px;font-weight:800;line-height:1.38;margin:0}.celebration-overlay.closing{animation:celebrationOverlayOut .26s ease-in forwards}.celebration-popup.closing{animation:celebrationPopupOut .26s ease-in forwards}@keyframes celebrationOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes celebrationOverlayOut{0%{opacity:1}to{opacity:0}}@keyframes celebrationPopupIn{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes celebrationPopupOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(14px) scale(.97)}}@keyframes celebrationIconPop{0%{opacity:0;transform:translateY(8px) scale(.84)}62%{opacity:1;transform:translateY(-4px) scale(1.06)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes celebrationSpritePlay{0%{background-position:0 0}to{background-position:0 0;background-position:var(--celebration-sprite-play-end-x,0) 0}}@media (max-width:480px){.celebration-overlay{padding:18px}.celebration-popup{padding:30px 22px 26px}.celebration-visual-stage{height:104px;width:104px}.celebration-message h2{font-size:25px}.celebration-subtitle{font-size:16px}}.training-achievement-overlay{align-items:center;backdrop-filter:blur(6px) saturate(.92) brightness(1.05);-webkit-backdrop-filter:blur(6px) saturate(.92) brightness(1.05);background:radial-gradient(circle at center,#ffd27842 0,#ffb14a24 24%,#4a291857 70%,#28181185 100%);display:flex;inset:0;justify-content:center;padding:20px;pointer-events:all;position:absolute;z-index:9500}.training-achievement-card{align-items:center;animation:trainingAchievementCard 1s ease-out forwards;background:linear-gradient(180deg,#623f2ae6,#382319f0);border:1px solid #ffe4a447;border-radius:18px;box-shadow:0 26px 42px #00000052,inset 0 0 0 1px #ffd0701f,0 0 22px #ff9a562e;color:#fff4dc;display:flex;flex-direction:column;gap:8px;padding:18px 20px 20px;text-align:center;width:min(320px,86vw)}.training-achievement-sprite{animation:trainingAchievementSprite 1s steps(4) forwards;background-repeat:no-repeat;background-size:320px 80px;height:80px;image-rendering:pixelated;width:80px}.training-achievement-message{color:#ffe08a;font-size:20px;font-weight:900;line-height:1.28;text-shadow:0 2px 0 #3a1e0fe0,0 0 16px #ffaa5f94,0 8px 22px #0000006b}@keyframes trainingAchievementSprite{0%{background-position:0 0}to{background-position:-320px 0;background-position:var(--training-achievement-sprite-play-end-x,-320px) 0}}@keyframes trainingAchievementCard{0%{opacity:0;transform:translateY(18px) scale(.92)}16%{opacity:1;transform:translateY(0) scale(1.03)}72%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(.98)}}@media (max-width:480px){.training-achievement-card{padding:16px 16px 18px;width:min(280px,88vw)}.training-achievement-message{font-size:16px}}.card-listening-control{display:contents}.card-listening-button{background:#ffe5c214;border:1px solid #ffe5c22e;border-radius:50%;color:#fff7e66b;cursor:pointer;display:inline-grid;flex:0 0 26px;height:26px;padding:0;place-items:center;width:26px}.card-listening-control.is-playing .card-listening-button,.card-listening-control.is-ready .card-listening-button{background:#2ec4b624;border-color:#2ec4b69e;color:var(--color-teal)}.card-listening-control.is-question-side.is-autoplay-off .card-listening-button{background:#ffe5c214;border-color:#ffe5c22e;color:#fff7e66b}.card-listening-control.is-question-side.is-autoplay-on .card-listening-button{background:#2ec4b624;border-color:#2ec4b69e;box-shadow:0 0 0 3px #2ec4b61a;color:var(--color-teal)}.card-listening-control.is-playing .card-listening-button{box-shadow:0 0 0 3px #2ec4b61f}.card-listening-control.is-error .card-listening-button{border-color:#ff7a598c;color:var(--color-coral)}.card-listening-button:disabled{cursor:not-allowed;opacity:.52}.card-listening-spinner{animation:cardListeningSpin .8s linear infinite}.card-listening-progress{grid-gap:7px;font-feature-settings:"tnum";align-items:center;color:var(--color-muted);display:grid;flex:1 0 100%;font-size:10px;font-variant-numeric:tabular-nums;gap:7px;grid-template-columns:34px minmax(100px,1fr) 34px}.card-listening-progress input{accent-color:var(--color-teal);width:100%}.card-listening-error{color:var(--color-coral);flex:1 0 100%;font-size:10px;text-align:center}@keyframes cardListeningSpin{to{transform:rotate(1turn)}}.confirm-dialog-overlay{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0705b8;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:3000}.confirm-dialog{background:radial-gradient(circle at 20% 0,#ffd3682e,#0000 12rem),linear-gradient(145deg,#2b1e16fa,#161612fa);border:1px solid #ffd36861;border-radius:14px;box-shadow:0 24px 70px #00000075;color:#fff4dc;padding:26px 22px 20px;position:relative;width:min(420px,100%)}.confirm-dialog-danger{background:radial-gradient(circle at 20% 0,#ff6f612e,#0000 12rem),linear-gradient(145deg,#311816fa,#161612fa);border-color:#ff6f617a}.confirm-dialog-close{background:#fff4dc0f;border:1px solid #fff4dc2e;border-radius:10px;color:#fff4dcc7;cursor:pointer;height:34px;position:absolute;right:12px;top:12px;width:34px}.confirm-dialog-close,.confirm-dialog-icon{align-items:center;display:inline-flex;justify-content:center}.confirm-dialog-icon{background:#ffd3681f;border:1px solid #ffd36857;border-radius:50%;color:#ffd76a;height:58px;margin-bottom:16px;width:58px}.confirm-dialog-danger .confirm-dialog-icon{background:#ff6f611f;border-color:#ff6f615c;color:#ff8a78}.confirm-dialog-copy h2{color:#ffe7ae;font-size:24px;letter-spacing:0;line-height:1.15;margin:0}.confirm-dialog-copy p{color:#fff4dcc7;font-size:15px;line-height:1.5;margin:10px 0 0}.confirm-dialog-actions{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-top:22px}.confirm-dialog-actions .confirm-dialog-confirm:only-child{grid-column:1/-1}.confirm-dialog-button{border:0;border-radius:10px;cursor:pointer;font-weight:850;min-height:46px}.confirm-dialog-cancel{background:#fff4dc2e;color:#fff4dc}.confirm-dialog-confirm{background:linear-gradient(135deg,#ffd76a,#ff7a59);color:#24110a}.confirm-dialog-danger .confirm-dialog-confirm{background:linear-gradient(135deg,#ff8a78,#f23d38);color:#fff}@media (max-width:520px){.confirm-dialog-overlay{align-items:flex-end;padding:14px}.confirm-dialog{border-radius:14px;padding:24px 18px 18px}}.practice-session{background:radial-gradient(circle at 12% 0,#ffd66b1f,#0000 18rem),var(--color-ink);bottom:0;box-sizing:border-box;display:flex;flex-direction:column;left:50%;max-width:600px;overflow:hidden;overscroll-behavior:none;padding:0 12px;position:fixed;top:0;transform:translateX(-50%);width:100%;z-index:100}.practice-card-memo,.practice-session-bottom,.practice-session-card .flashcard-container,.practice-session-header{transition:filter .18s ease,opacity .18s ease,transform .18s ease}.practice-session.practice-session-overlay-active .practice-card-memo,.practice-session.practice-session-overlay-active .practice-session-bottom,.practice-session.practice-session-overlay-active .practice-session-card .flashcard-container,.practice-session.practice-session-overlay-active .practice-session-header{filter:blur(3px) saturate(.78) brightness(.58);opacity:.72;transform:scale(.992)}.practice-loading-overlay{background-color:#171311b8;z-index:200}.npc-encounter-choice,.practice-loading-overlay{align-items:center;display:flex;inset:0;justify-content:center;position:fixed}.npc-encounter-choice{background:radial-gradient(circle at 50% 28%,#ffd66b38,#0000 15rem),radial-gradient(circle at 20% 80%,#ff5d3a33,#0000 17rem),#0d0908e6;box-sizing:border-box;color:var(--color-cream);padding:20px;z-index:605}.npc-encounter-choice-panel{background:linear-gradient(180deg,#421f14fa,#170f0dfc),var(--color-surface);border:2px solid #ffd66ba3;border-radius:8px;box-shadow:0 22px 54px #00000080,0 0 42px #ff56363d;padding:24px 18px 18px;text-align:center;width:min(100%,430px)}.npc-encounter-choice-panel svg{color:#ffd66b;filter:drop-shadow(0 0 14px rgba(255,94,58,.52))}.npc-encounter-choice-panel h2{color:#ffe4a6;font-size:26px;font-weight:1000;letter-spacing:.03em;margin:10px 0 8px;text-transform:uppercase}.npc-encounter-choice-panel p{color:#fff5dacc;font-size:14px;line-height:1.45;margin:0 0 18px}.npc-encounter-choice-actions{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.npc-encounter-choice-actions button{border:0;border-radius:8px;cursor:pointer;font-size:15px;font-weight:1000;min-height:48px}.npc-choice-fight{background:linear-gradient(135deg,#ffd66b,#ff7658);color:#21100b}.npc-choice-skip{background:#fff5da1f;color:#fff5dac7}.npc-encounter-choice-actions .npc-choice-fight:only-child{grid-column:1/-1}.practice-session-header{flex-shrink:0;padding:10px 0 6px}.practice-session-reading .practice-session-header{padding:6px 0 4px}.practice-session-header h2{color:var(--color-cream);font-size:24px;font-weight:700;margin:0 0 8px;text-align:center}.practice-session-header .page-title-fx{display:flex;margin:0 auto 8px;width:fit-content}.practice-session-reading .practice-session-header .page-title-fx{margin-bottom:5px}.practice-header-row{align-items:center;display:flex;justify-content:center;margin-bottom:6px;position:relative}.practice-timer{color:var(--color-gold);font-family:Courier New,monospace;font-size:20px;font-weight:600;gap:8px;letter-spacing:2px;text-align:center}.btn-edit-card,.practice-timer{align-items:center;display:inline-flex}.btn-edit-card{background:#2a201ae0;border:1px solid var(--color-line);border-radius:6px;color:var(--color-muted);cursor:pointer;font-size:15px;gap:6px;line-height:1;padding:7px 11px;transition:background .15s,color .15s}.btn-edit-card:hover{background:var(--color-surface-soft);color:var(--color-cream)}.btn-edit-card.btn-level-up-card{background:linear-gradient(135deg,#2ec4b6f5,#ffd66be6);border-color:#2ec4b694;color:#16110e;font-weight:900}.btn-edit-card.btn-level-up-card:hover{background:linear-gradient(135deg,#43d8cd,#ffe07cfa);color:#16110e}.btn-edit-card:disabled{cursor:not-allowed;opacity:.5}.btn-edit-card.practice-group-edit{border-radius:999px;flex:0 0 26px;gap:0;height:26px;justify-content:center;padding:0;position:static;width:26px}.progress-bar{background-color:#ffe5c21f;border-radius:3px;height:6px;overflow:hidden;width:100%}.progress-bar-fill{background:linear-gradient(90deg,var(--color-gold),var(--color-coral));height:100%;transition:width .3s ease}.practice-current-note{align-items:center;background:#2a201ad1;border:1px solid #ffd66b3d;border-radius:999px;color:var(--color-muted);display:flex;flex-wrap:wrap;font-size:12px;gap:8px;justify-content:center;line-height:1.2;margin:7px auto 0;max-width:100%;min-height:24px;padding:4px 10px;width:fit-content}.practice-session-reading .practice-current-note{font-size:11px;margin-top:4px;min-height:20px;padding:3px 8px}.practice-current-note-name{color:var(--color-cream);font-weight:700;max-width:min(360px,calc(100vw - 128px));min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.practice-sound-toggle{align-items:center;background:#ffe5c214;border:1px solid #ffe5c22e;border-radius:999px;color:var(--color-cream);cursor:pointer;display:inline-flex;flex-shrink:0;height:26px;justify-content:center;transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease;width:26px}.practice-sound-toggle:hover{background:#ffd66b24;border-color:#ffd66b7a;transform:translateY(-1px)}.practice-sound-toggle.is-on{color:var(--color-gold)}.practice-sound-toggle.is-off{color:#fff7e694}.practice-sound-toggle.needs-unlock{animation:practiceSoundNeedsUnlock 1.3s ease-in-out infinite;background:#ff7a591f;border-color:#ff7a5980;color:var(--color-coral)}@keyframes practiceSoundNeedsUnlock{0%,to{box-shadow:0 0 0 0 #ff7a5900}50%{box-shadow:0 0 0 4px #ff7a5924}}.practice-card-type-badge{background:#2ec4b61f;border:1px solid #2ec4b66b;border-radius:999px;color:#2ec4b6;flex-shrink:0;font-size:11px;font-weight:850;line-height:1.2;padding:2px 7px;text-transform:uppercase}.practice-session-card{align-items:stretch;display:flex;flex:1 1;min-height:0;overflow:hidden;position:relative;transition:transform .3s ease,opacity .3s ease}.practice-session-card-reading{-webkit-overflow-scrolling:touch;align-items:flex-start;overflow-y:auto;overscroll-behavior:contain}.practice-session-card .flashcard-container{align-items:stretch;flex:1 1;padding:6px 0;width:100%}.practice-session-card .flashcard{height:100%;width:100%}.practice-session-card .flashcard-level-2 .flashcard-front{background:radial-gradient(circle at 18% 12%,#87cdff33,#0000 15rem),linear-gradient(135deg,#dbeefff5,#8abee6c7);border-color:#6faddead}.practice-session-card .flashcard-level-2 .flashcard-back{background:radial-gradient(circle at 18% 12%,#6fadde29,#0000 15rem),linear-gradient(135deg,#1f2731fa,#5087b857);border-color:#6fadde8f}.practice-session-card .flashcard-level-3 .flashcard-front{background:radial-gradient(circle at 18% 12%,#ff8d7e2e,#0000 15rem),linear-gradient(135deg,#ffe5daf5,#e08073c2);border-color:#db5e4ea8}.practice-session-card .flashcard-level-3 .flashcard-back{background:radial-gradient(circle at 18% 12%,#ff7a5929,#0000 15rem),linear-gradient(135deg,#2e1d1cfa,#ad463e57);border-color:#db5e4e94}.practice-session-card .flashcard-level-2:hover .flashcard-back,.practice-session-card .flashcard-level-2:hover .flashcard-front{border-color:#87cdffc2}.practice-session-card .flashcard-level-3:hover .flashcard-back,.practice-session-card .flashcard-level-3:hover .flashcard-front{border-color:#ff8d7ebd}.practice-session-card .flashcard-type-simple .flashcard-front{background:radial-gradient(circle at 18% 12%,#ffffff80,#0000 14rem),linear-gradient(135deg,#eef2f6fa,#d4dbe4e6);border-color:#c7d2dee6}.practice-session-card .flashcard-type-simple .flashcard-back{background:radial-gradient(circle at 18% 12%,#ffffff14,#0000 14rem),linear-gradient(135deg,#3f4650fa,#272d36f0);border-color:#84909ead}.practice-session-card .flashcard-type-simple:hover .flashcard-back,.practice-session-card .flashcard-type-simple:hover .flashcard-front{border-color:#e2e8f0f2}.practice-session-card.slide-left{animation:slideOutUp .3s ease forwards}.practice-session-card.slide-right{animation:slideOutDown .3s ease forwards}@keyframes slideOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}@keyframes slideOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}.practice-card-memo{align-items:flex-start;background:radial-gradient(circle at 0 0,#ffd3681f,#0000 12rem),#2a201ae6;border:1px solid #ffd36847;border-radius:8px;box-shadow:0 10px 24px #0000002e;color:#fff4dce6;display:flex;flex-shrink:0;font-size:14px;gap:10px;line-height:1.5;margin:7px 0 5px;padding:11px 14px}.practice-card-memo-label{align-items:center;color:#ffd76a;display:inline-flex;flex-shrink:0;font-size:13px;font-weight:850;gap:6px;letter-spacing:.02em;margin-top:1px;text-transform:uppercase}.practice-card-memo-text{color:#fff4dcf0;font-weight:650;white-space:pre-wrap;word-break:break-word}.practice-session-bottom{flex-shrink:0;padding-bottom:env(safe-area-inset-bottom,8px)}.practice-card-info{color:var(--color-muted);display:flex;font-size:13px;gap:20px;justify-content:center;padding:4px 0 2px}.practice-card-info span{align-items:center;display:flex;gap:4px}.practice-card-repeat-progress{color:var(--color-gold);font-weight:600}.practice-session-footer{padding:6px 0 4px;text-align:center}.btn-end-session{align-items:center;background:linear-gradient(135deg,#9f5a42,#c9984b);border:1px solid #ffe5c247;border-radius:8px;box-shadow:0 8px 18px #79432b38;color:#fff0d1;cursor:pointer;display:inline-flex;font-size:15px;font-weight:850;gap:8px;justify-content:center;padding:10px;transition:all .2s ease;width:100%}.btn-end-session:hover{box-shadow:0 11px 22px #79432b42;filter:brightness(1.04)}.btn-end-session:active{box-shadow:0 5px 14px #79432b33;filter:brightness(.94);transform:translateY(1px)}.btn-end-session:disabled{box-shadow:none;cursor:not-allowed;filter:grayscale(.25);opacity:.58}.practice-session-empty{padding:40px;text-align:center}.practice-session-empty p{color:var(--color-muted);font-size:18px;margin-bottom:20px}.practice-session-empty button{background:linear-gradient(135deg,var(--color-gold),var(--color-coral));border:none;border-radius:5px;color:#24110a;cursor:pointer;font-size:16px;padding:10px 30px}.practice-edit-modal-overlay{background:#171311c2;overflow:hidden;overscroll-behavior:none;touch-action:auto}.practice-edit-modal{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}.practice-edit-modal .flashcard-form-container{margin:0;max-width:none}@media (max-width:600px){.practice-edit-modal-overlay{padding:0}.practice-edit-modal{margin:0}.practice-edit-modal .flashcard-form-container{border-radius:0;box-shadow:none;min-height:auto;padding:12px 12px calc(18px + env(safe-area-inset-bottom))}.practice-edit-modal .form-actions{background:#fff;border-top:1px solid #eee;box-shadow:none;margin:8px 0 0;padding:10px 0 0;position:static}.practice-edit-modal .flashcard-form{gap:12px}.practice-edit-modal .form-textarea{min-height:84px}}.session-summary{box-sizing:border-box;display:flex;flex:1 1;flex-direction:column;gap:clamp(14px,2.2dvh,24px);justify-content:center;margin:0 auto;max-width:min(880px,100%);min-height:100%;overflow:hidden;overscroll-behavior:none;padding:clamp(16px,3dvh,28px) 16px;touch-action:manipulation;width:100%}.session-summary *,.session-summary :after,.session-summary :before{box-sizing:border-box;min-width:0}.summary-reveal{animation:summaryStepIn .42s ease-out forwards;animation-delay:0ms;animation-delay:var(--summary-reveal-delay,0ms);backface-visibility:hidden;opacity:0;transform:translateY(10px) scale(.985);transform-style:flat}.summary-reveal-step-1{--summary-reveal-delay:0ms}.summary-reveal-step-2{--summary-reveal-delay:180ms}.summary-reveal-step-3{--summary-reveal-delay:300ms}.summary-reveal-step-4{--summary-reveal-delay:420ms}.summary-reveal-step-5{--summary-reveal-delay:540ms}.summary-reveal-step-6{--summary-reveal-delay:660ms}.summary-reveal-step-7{--summary-reveal-delay:820ms}.summary-reveal-step-8{--summary-reveal-delay:960ms}.summary-reveal-step-9{--summary-reveal-delay:1100ms}.summary-reveal-step-10{--summary-reveal-delay:1240ms}.summary-reveal-step-11{--summary-reveal-delay:1380ms}@keyframes summaryStepIn{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion:reduce){.summary-reveal{animation:none;opacity:1;transform:none}}.session-summary-header{flex-shrink:0;text-align:center}.session-summary-header h2{color:#4caf50;font-size:clamp(26px,5vw,36px);line-height:1.15;margin:0}.session-summary-end-note{color:#ffe5c2db;font-size:clamp(14px,2.8vw,16px);font-weight:700;line-height:1.45;margin:10px auto 0;max-width:560px}.infinity-mode-badge{align-items:center;background:linear-gradient(135deg,#f44,#f64);border-radius:20px;box-shadow:0 2px 8px #ff44444d;display:inline-flex;gap:8px;margin-top:12px;padding:8px 16px}.infinity-mode-badge .infinity-symbol{animation:burning 1.5s ease-in-out infinite;color:#fff;font-size:24px;font-weight:700}.infinity-mode-badge .infinity-label{color:#fff;font-size:14px;font-weight:600;letter-spacing:1px;text-transform:uppercase}@keyframes burning{0%,to{text-shadow:0 0 10px #fffc,0 0 20px #f649}50%{text-shadow:0 0 15px #fff,0 0 30px #f84c}}.session-summary-stats{grid-gap:clamp(10px,1.8dvh,16px);display:grid;flex-shrink:0;gap:clamp(10px,1.8dvh,16px);grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.stat-card{grid-gap:7px;align-content:center;background:linear-gradient(135deg,#2ec4b633,#ffd66b14),#2a201a;border:1px solid #ffeccb1f;border-radius:8px;box-shadow:0 10px 22px #0000002e;display:grid;gap:7px;justify-items:center;min-height:clamp(118px,16dvh,156px);padding:clamp(14px,2.2dvh,20px) 12px;text-align:center}.stat-icon{color:var(--color-gold)}.stat-value{font-size:clamp(30px,8vw,46px)}.stat-value-time{font-family:Courier New,monospace;font-size:clamp(22px,6vw,34px)}.record-label,.stat-label{color:#ffffffe0;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.session-summary-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;width:100%}.session-summary-actions .btn-back,.session-summary-actions .btn-new-session{min-width:min(190px,100%)}.session-summary-actions .btn-result-home{align-items:center;background:linear-gradient(135deg,var(--color-gold),var(--color-coral));border-radius:8px;box-shadow:0 14px 30px #ff7a593d;color:#24110a;display:inline-flex;font-size:16px;font-weight:950;gap:10px;justify-content:center;min-height:52px;width:100%}.session-summary-actions .btn-result-home:hover{background:linear-gradient(135deg,var(--color-gold),var(--color-coral));box-shadow:0 18px 38px #ff7a594d;filter:brightness(1.04)}.session-summary-time{grid-gap:clamp(10px,1.8dvh,16px);display:grid;flex-shrink:0;gap:clamp(10px,1.8dvh,16px);grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.record-card{align-content:center;background:#2a2a2a;border:1px solid #ffffff14;border-radius:8px;display:grid;min-height:clamp(106px,14dvh,142px);padding:clamp(14px,2dvh,20px)}.record-label{color:#ffd66b;margin-bottom:12px}.record-values{grid-gap:8px 12px;align-items:baseline;display:grid;gap:8px 12px;grid-template-columns:minmax(0,1fr) auto}.record-values span{color:#b8afa4;font-size:13px;font-weight:700}.record-values strong{color:#66bb6a;font-family:Courier New,monospace;font-size:17px;overflow-wrap:anywhere;text-align:right}.session-summary-no-evaluations{background-color:#333;border-radius:8px;padding:24px;text-align:center}.session-summary-empty p,.session-summary-no-evaluations p{color:#aaa;font-size:16px;margin:0}.session-summary-empty{padding:40px;text-align:center}@media (max-width:760px){.session-summary{gap:clamp(10px,1.8dvh,16px);max-width:100vw;padding:clamp(14px,2.4dvh,22px) 12px}.session-summary-stats{gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{gap:6px;min-height:clamp(92px,13.5dvh,122px);padding:clamp(10px,1.8dvh,16px) 8px}.stat-value{font-size:28px}.stat-value-time{font-size:21px}.record-label,.stat-label{font-size:10px}.session-summary-time{gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.record-card{min-height:clamp(96px,13dvh,118px);padding:clamp(10px,1.6dvh,14px)}.record-label{margin-bottom:8px}.record-values{gap:5px 8px}.record-values span{font-size:11px}.record-values strong{font-size:14px}.session-summary-actions{display:flex;gap:8px;margin-top:clamp(2px,1dvh,10px)}.session-summary-actions .btn-back,.session-summary-actions .btn-new-session{min-width:min(180px,100%);padding-inline:10px}.session-summary-actions .btn-result-home{min-width:100%}}@media (max-width:360px){.session-summary{justify-content:flex-start}.stat-card{min-height:64px}}.practice-player-error,.practice-player-loading,.practice-player-page{background:#11110f;color:#f7f7f4;margin:0 auto;min-height:100vh;padding:22px 20px 32px;width:min(100%,760px)}.practice-player-page{--practice-player-inline-padding:20px;--practice-player-top-padding:22px;align-items:center;display:flex;flex-direction:column;gap:13px;height:100dvh;overflow:hidden;position:relative}.practice-player-page.has-card-content{padding-top:0}.practice-player-header{display:grid;min-height:44px;place-items:center;position:relative;width:100%}.practice-player-header-stats{align-items:center;display:flex;gap:15px;justify-content:center;min-width:0}.practice-player-timer{font-feature-settings:"tnum";align-items:center;color:#f4c95d;display:inline-flex;font-variant-numeric:tabular-nums;font-weight:500;gap:7px}.practice-player-track-count{font-feature-settings:"tnum";color:#ffffff94;font-size:.82rem;font-variant-numeric:tabular-nums}.practice-player-album{display:grid;flex:1 1 auto;min-height:0;place-items:center;width:100%}.practice-player-cover{aspect-ratio:1;background:#25231f;border:1px solid #f4c95d57;border-radius:5px;box-shadow:0 16px 34px #0000004d;color:#f4c95db3;display:grid;overflow:hidden;place-items:center;position:relative;width:min(70vw,330px,45dvh)}.practice-player-cover img{display:block;height:100%;object-fit:cover;width:100%}.practice-player-page.has-card-content .practice-player-header{color:#fff;left:var(--practice-player-inline-padding);position:absolute;text-shadow:0 1px 8px #000000c2;top:var(--practice-player-top-padding);width:calc(100% - var(--practice-player-inline-padding)*2);z-index:4}.practice-player-page.has-card-content .practice-player-album{margin-inline:calc(var(--practice-player-inline-padding)*-1);min-height:min(42dvh,380px);width:calc(100% + var(--practice-player-inline-padding)*2)}.practice-player-page.has-card-content .practice-player-cover{aspect-ratio:auto;border:0;border-radius:0 0 5px 5px;box-shadow:none;height:100%;min-height:inherit;width:100%}.practice-player-page.has-card-content .practice-player-cover:after{background:linear-gradient(180deg,#0507078f,#05070714 28%,#05070705 68%,#11110f2e 84%,#11110f);content:"";inset:0;pointer-events:none;position:absolute;z-index:1}.practice-player-page.has-card-content .practice-player-cover-score,.practice-player-page.has-card-content .practice-player-cover>svg,.practice-player-page.has-card-content .practice-player-note-name{z-index:2}.practice-player-note-name{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0c0c0bb3;border-radius:3px;bottom:9px;color:#fffffff0;font-size:.78rem;font-weight:400;line-height:1.3;max-width:calc(100% - 18px);overflow:hidden;padding:4px 7px;position:absolute;right:9px;text-overflow:ellipsis;white-space:nowrap}.practice-player-cover-score{animation:practice-player-cover-score-burst 1s ease-out both;background:#0b443adb;border:1px solid #ffffffb8;border-radius:5px;box-shadow:0 0 24px #2dd4bfb8,0 8px 20px #00000057;color:#fff6bc;font-size:1.55rem;font-weight:850;left:50%;line-height:1;min-width:72px;padding:7px 12px;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);z-index:2}@keyframes practice-player-cover-score-burst{0%{opacity:0;transform:translate(-50%,-35%) scale(.72)}24%{opacity:1;transform:translate(-50%,-50%) scale(1.18)}70%{opacity:1;transform:translate(-50%,-58%) scale(1)}to{opacity:0;transform:translate(-50%,-78%) scale(.94)}}.practice-player-content{background:#0000;border:0;max-height:min(40vh,370px);min-height:176px;overflow:auto;width:100%}.practice-player-content.is-card{display:flex;flex:0 0 auto;flex-direction:column;justify-content:center;max-height:none;min-height:0;overflow:visible}.practice-player-copy{align-items:center;color:#ffffff8f;display:flex;font-weight:400;min-height:36px;min-width:0;padding:4px 2px;transition:color .18s ease,opacity .18s ease}.practice-player-copy.is-question{color:#ffffffe6}.practice-player-copy .markdown-text{font-size:1.04rem;font-weight:400;line-height:1.42;width:100%}.practice-player-copy .markdown-text p{margin:0}.practice-player-copy .markdown-text strong,.practice-player-reading-text strong{font-weight:400}.practice-player-copy.is-active{color:#f6cf72}.practice-player-copy.is-active .markdown-text{font-size:1.09rem}.practice-player-reading-heading{align-items:center;background:#11110f;display:flex;gap:9px;padding:10px 2px 12px;position:sticky;top:0;z-index:1}.practice-player-page.has-reading-content .practice-player-album{flex:0 0 auto;min-height:112px}.practice-player-page.has-reading-content .practice-player-cover{width:min(32vw,150px,20dvh)}.practice-player-page.has-reading-content .practice-player-content{flex:1 1 auto;max-height:none;min-height:0}.practice-player-reading-heading h2{font-size:1rem;font-weight:400;margin:0}.practice-player-reading-text{color:#ffffffad;font-size:1rem;font-weight:400;line-height:1.72;padding:8px 2px 20px;transition:color .18s ease}.practice-player-reading-text.is-active{color:#fffffff0}.practice-player-audio-progress,.practice-player-status{align-items:center;color:#ffffff94;display:flex;font-size:.78rem;gap:10px;justify-content:space-between;width:100%}.practice-player-step-count{font-feature-settings:"tnum";color:#f4c95d;font-variant-numeric:tabular-nums}.practice-player-step-bar{background:#ffffff1f;border-radius:2px;height:4px;overflow:hidden;width:100%}.practice-player-step-bar>div{background:#2dd4bf;height:100%;transition:width .18s ease}.practice-player-audio-progress input{accent-color:#2dd4bf;flex:1 1;min-width:0}.practice-player-notice{color:#f3c886;font-size:.75rem;min-height:20px;text-align:center;width:100%}.practice-player-controls{grid-gap:20px;align-items:center;display:grid;gap:20px;grid-template-columns:repeat(3,64px);justify-content:center;min-height:66px;width:min(100%,290px)}.practice-player-main-control,.practice-player-skip-control{background:#0000;border:0;border-radius:0;color:#ffffffeb;cursor:pointer;display:grid;height:56px;padding:0;place-items:center;transition:color .15s ease,transform .15s ease,opacity .15s ease;width:56px}.practice-player-main-control{color:#f7f7f4;height:64px;width:64px}.practice-player-main-control.is-playing{background:#0000;color:#f4c95d}.practice-player-main-control:hover:not(:disabled),.practice-player-skip-control:hover:not(:disabled){color:#5eead4;transform:translateY(-1px)}.practice-player-main-control:disabled,.practice-player-skip-control:disabled{cursor:default;opacity:.28}.practice-player-end{background:linear-gradient(135deg,#d64238,#ff6b5a);border:1px solid #ff6b5a8f;border-radius:6px;box-shadow:0 8px 18px #d6423840;color:#fff;font:inherit;font-size:.8rem;gap:7px;min-height:40px;padding:7px 12px;position:absolute;right:0;top:2px}.practice-player-end,.practice-player-error button{align-items:center;cursor:pointer;display:inline-flex;justify-content:center}.practice-player-error button{background:#282725;border:1px solid #fff3;border-radius:5px;color:#ffffffc7;font:inherit;gap:8px;min-height:42px;padding:9px 18px}.practice-player-error-detail{font-size:.86rem;max-width:32rem;opacity:.78}.practice-player-preparation-count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:.72}.practice-player-error-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.practice-player-saving{background:#11110fe0;display:grid;inset:0;place-items:center;position:absolute;z-index:5}.practice-player-error,.practice-player-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;text-align:center}.practice-player-error p{color:#ffffffad;max-width:480px}.practice-player-results{min-height:100vh}@media (max-width:620px){.practice-player-page{--practice-player-inline-padding:14px;--practice-player-top-padding:15px;gap:11px;padding:15px 14px 24px}.practice-player-header-stats{gap:10px}.practice-player-timer{font-size:.84rem}.practice-player-end{min-height:40px;padding:0;width:42px}.practice-player-end span{clip:rect(0,0,0,0);height:1px;overflow:hidden;position:absolute;width:1px}.practice-player-album{min-height:0}.practice-player-cover{width:min(70vw,310px,44dvh)}.practice-player-note-name{font-size:.73rem}.practice-player-content{max-height:min(39vh,330px);min-height:0}.practice-player-copy{min-height:34px;padding:3px 2px}.practice-player-controls{gap:17px;grid-template-columns:repeat(3,58px)}}.note-card{aspect-ratio:1/1.414;background-color:#2a201ad6;border:1px solid var(--color-line);border-radius:8px;box-shadow:0 12px 28px #00000029;cursor:pointer;display:flex;flex-direction:column;gap:0;overflow:hidden;position:relative;touch-action:pan-y;transition:all .2s ease}.note-card:hover{border-color:#ffd66b94;box-shadow:0 16px 34px #ff7a5929;transform:translateY(-2px)}.note-card:focus{outline:2px solid var(--color-gold);outline-offset:4px}.note-card:active{transform:translateY(0)}.note-card-move-enabled .note-card-cover{box-shadow:0 0 0 2px var(--color-teal),0 16px 34px #23c9be29}.note-card-cover{background-color:var(--color-ink-2);flex:1 1;min-height:0;overflow:hidden;position:relative}.note-card-cover-image{display:block;height:100%;object-fit:cover;width:100%}.note-card-default-cover-image{filter:saturate(.94) brightness(.96)}.note-card-new-flag{background:linear-gradient(135deg,var(--color-coral),var(--color-gold));border-radius:0 0 6px 0;color:#1b1411;font-size:11px;font-weight:950;left:0;letter-spacing:.06em;padding:5px 8px;position:absolute;text-transform:uppercase;top:0;z-index:2}.note-card-completion{bottom:6px;left:8px;pointer-events:none;position:absolute;right:8px;z-index:2}.note-card-completion-line{display:flex}.note-card-completion-track{background:#12191785;border-radius:999px;box-shadow:0 0 0 1px #ffe5c229;flex:1 1;height:4px;overflow:hidden}.note-card-completion-track span{background:linear-gradient(90deg,var(--color-teal),var(--color-gold));border-radius:inherit;display:block;height:100%}.note-card-completion-complete{bottom:auto;display:flex;justify-content:center;top:50%;transform:translateY(-50%)}.note-card-completion-stamp{align-items:center;background:#231c17b8;border:2px solid #ffd66bd1;border-radius:4px;box-shadow:inset 0 0 0 1px #ffd66b2e;color:var(--color-gold);display:inline-flex;font-size:12px;font-weight:950;justify-content:center;letter-spacing:.08em;min-height:24px;min-width:112px;text-transform:uppercase;transform:rotate(-2deg)}.note-card-info{grid-gap:5px;background-color:#2a201af0;border-top:1px solid var(--color-line);display:grid;flex-shrink:0;gap:5px;min-width:0;padding:10px 12px}.note-card-title-row{display:contents}.note-card-title{color:var(--color-cream);display:block;font-size:15px;font-weight:850;line-height:1.25;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-card-options-area{position:absolute;right:7px;top:7px;z-index:7}.note-card-options-btn{align-items:center;background:#0000;border:0;border-radius:999px;color:#ffe5c2db;cursor:pointer;display:inline-flex;height:30px;justify-content:center;padding:0;width:30px}.note-card-options-btn:focus,.note-card-options-btn:hover{background:#ffe5c229;border-color:#ffd66b6b;color:var(--color-cream);outline:none}.note-card-menu{background:#201713fa;border:1px solid var(--color-line);border-radius:8px;box-shadow:0 16px 34px #0000004d;display:grid;min-width:128px;padding:6px;position:absolute;right:0;top:36px;z-index:8}.note-card-menu button{background:#0000;border:0;border-radius:6px;color:var(--color-cream);cursor:pointer;font-size:13px;font-weight:800;padding:9px 10px;text-align:left}.note-card-menu button:focus,.note-card-menu button:hover{background:#ffd66b24;color:var(--color-gold);outline:none}.note-card-meta{align-items:center;color:var(--color-muted);display:flex;flex-wrap:wrap;font-size:12px;gap:5px 8px;line-height:1.35}.note-card-count{align-items:center;color:var(--color-gold);display:inline-flex;font-weight:800;gap:3px}.note-card-date,.note-card-grade{color:#ffe5c28f}.note-card-grade{align-items:center;display:inline-flex;gap:3px}@media (max-width:600px){.note-card{gap:0}.note-card-title{font-size:14px}.note-card-meta{font-size:11px}}@media (prefers-reduced-motion:reduce){.note-card{transition:none}}.note-list-container{background:linear-gradient(135deg,#ffd66b0f,#ff7a590a),#2a201a7a;border:1px solid var(--color-line);border-radius:8px;box-shadow:0 12px 28px #0000001f;margin:0 auto;max-width:1200px;padding:20px;width:100%}.note-list-header{align-items:center;border-bottom:1px solid var(--color-line);display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:10px}.note-list-title{color:var(--color-cream);font-size:24px;font-weight:850;margin:0}.note-list-title-block{grid-gap:6px;display:grid;gap:6px;min-width:0}.note-list-count{background-color:#ffd66b1f;border:1px solid #ffd66b38;border-radius:12px;color:var(--color-gold);font-size:14px;font-weight:750;padding:4px 12px}.note-list-loading{align-items:center;color:var(--color-muted);display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.note-list-spinner{animation:spin 1s linear infinite;border:4px solid #ffe5c224;border-radius:50%;border-top:4px solid var(--color-gold);height:40px;margin-bottom:16px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.note-list-loading p{font-size:16px;margin:0}.note-list-empty{align-items:center;background-color:#201713c2;border:2px dashed #ffe5c238;border-radius:8px;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.note-list-empty-icon{font-size:64px;margin-bottom:16px;opacity:.6}.note-list-empty-title{color:var(--color-cream);font-size:24px;font-weight:600;margin:0 0 12px}.note-list-empty-message{color:var(--color-muted);font-size:16px;margin:0;max-width:400px}.note-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}@media (max-width:600px){.note-list-container{padding:12px}.note-list-header{align-items:center;flex-direction:row;gap:10px}.note-list-title{font-size:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-list-title-block{min-width:0}.note-list-count{flex:0 0 auto;font-size:13px;padding:4px 10px;white-space:nowrap}.note-grid{gap:12px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}@media (max-width:480px){.note-grid{gap:10px;grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion:reduce){.note-list-spinner{animation:none;transition:none}}[role=listitem]{position:relative}.note-card-drag-handle{align-items:center;background:#14100ebd;border:1px solid #ffe5c22e;border-radius:999px;color:var(--color-cream);cursor:grab;display:flex;font-size:0;height:32px;justify-content:center;left:8px;line-height:1;opacity:0;pointer-events:none;position:absolute;top:8px;touch-action:none;transition:opacity .15s,background .15s;-webkit-user-select:none;user-select:none;width:32px;z-index:6}.note-card-drag-handle:before{content:"⋮⋮";font-size:18px;font-weight:900;line-height:1}.note-card-drag-handle.is-visible{opacity:1;pointer-events:auto}.note-card-drag-handle:active,.note-card-drag-handle:hover{background:#23c9be3d;cursor:grabbing}.practice-settings-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.practice-settings-modal{background-color:#2a2a2a;border-radius:12px;box-shadow:0 4px 20px #000000b3;display:flex;flex-direction:column;max-height:90vh;max-width:500px;overflow:hidden;width:90%}.practice-settings-header{align-items:center;border-bottom:1px solid #404040;display:flex;justify-content:space-between;padding:20px 20px 16px}.practice-settings-header h2{color:#e0e0e0;font-size:24px;margin:0}.close-btn{align-items:center;background:none;border:none;border-radius:4px;color:grey;cursor:pointer;display:flex;font-size:32px;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.close-btn:hover{background-color:#404040;color:#e0e0e0}.btn-start-practice{align-items:center;background-color:#4caf50;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:17px;font-weight:700;gap:10px;justify-content:center;letter-spacing:.3px;min-height:50px;min-width:0;padding:11px 14px;transition:all .2s ease}.btn-start-practice-icon{flex:0 0 auto;height:32px;object-fit:contain;width:32px}.btn-start-practice:hover{background-color:#45a049;box-shadow:0 4px 12px #4caf5059;transform:translateY(-1px)}.btn-start-practice:active{box-shadow:none;transform:translateY(0)}.practice-settings-body{flex:1 1;overflow-y:auto;padding:18px 20px 8px}.practice-settings-details{background:#222;border:1px solid #464646;border-radius:8px;margin-bottom:10px}.practice-settings-details summary{grid-gap:9px;align-items:center;color:#e0e0e0;cursor:pointer;display:grid;font-size:15px;font-weight:750;gap:9px;grid-template-columns:minmax(0,1fr) auto 20px;list-style:none;min-height:48px;padding:0 12px}.practice-settings-details summary::-webkit-details-marker{display:none}.practice-settings-details-value{color:#ffcf67;font-size:13px}.practice-settings-details-chevron{color:#aaa;transition:transform .18s ease}.practice-settings-details[open] .practice-settings-details-chevron{transform:rotate(180deg)}.practice-settings-details .practice-card-type-filter{margin:0 10px 10px}.practice-settings-actions{grid-gap:10px;border-top:1px solid #ffffff1a;display:grid;gap:10px;grid-template-columns:minmax(0,1fr);padding:12px 20px 20px}.practice-settings-actions>button{width:100%}.btn-start-player{align-items:center;background:#183b3a;border:1px solid #2dd4bf9e;border-radius:6px;color:#b9fff4;cursor:pointer;display:flex;font:inherit;font-weight:800;gap:9px;justify-content:center;min-height:48px;min-width:0}.btn-start-player-icon{flex:0 0 auto;height:30px;object-fit:contain;width:30px}.btn-advanced-toggle{align-items:center;background:#333;border:1px solid #444;border-radius:8px;color:#b0b0b0;cursor:pointer;display:flex;font-size:14px;font-weight:600;justify-content:space-between;padding:10px 14px;transition:background .15s,color .15s;width:100%}.btn-advanced-toggle:hover{background:#3a3a3a;color:#e0e0e0}.toggle-arrow{display:inline-block;font-size:12px;transition:transform .2s ease}.toggle-arrow.open{transform:rotate(180deg)}.advanced-options{margin-top:16px}.setting-group{margin-bottom:12px}.setting-group label{color:#e0e0e0;display:block;font-size:16px;font-weight:600;margin-bottom:8px}.setting-label-row{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:8px}.setting-label-row label{margin-bottom:0}.btn-reset-weights{background:#ffcc661a;border:1px solid #ffcc666b;border-radius:8px;color:#ffdd8b;cursor:pointer;font-size:12px;font-weight:800;padding:6px 10px}.btn-reset-weights:hover{background:#ffcc662e}.setting-hint{color:#b0b0b0;font-size:13px;font-style:italic;margin-top:6px}.practice-card-type-filter{grid-gap:6px;background:#1f1f1f;border:1px solid #464646;border-radius:10px;display:grid;gap:6px;grid-template-columns:repeat(4,minmax(0,1fr));padding:5px}.practice-card-type-filter-btn{background:#0000;border:0;border-radius:7px;color:#b8b8b8;cursor:pointer;font-size:13px;font-weight:800;min-height:38px}.practice-card-type-filter-btn.active{background:linear-gradient(135deg,#ffd86b,#ff8a65);box-shadow:0 4px 10px #00000047;color:#1d140f}.practice-card-type-filter-btn:hover:not(.active){background:#333;color:#f4f0df}.checkbox-label{align-items:center;cursor:pointer;display:flex;font-weight:600;gap:10px}.setting-checkbox{cursor:pointer;height:20px;width:20px}.checkbox-label span{color:#e0e0e0;font-size:16px}.grade-checkboxes{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px}.grade-check-label{align-items:center;color:#e0e0e0;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px}.grade-check-label input{cursor:pointer;height:16px;width:16px}.setting-number-input,.setting-select{font-feature-settings:"tnum";background:#1d1d1d;border:1px solid #505050;border-radius:8px;color:#f4f0df;font-size:16px;font-variant-numeric:tabular-nums;font-weight:700;max-width:100%;outline:none;padding:10px 12px;width:140px}.setting-select{cursor:pointer;width:220px}.setting-number-input:focus,.setting-select:focus{border-color:#fc6;box-shadow:0 0 0 3px #ffcc662e}.weights-preview{color:#888;font-size:12px;font-style:normal;margin-bottom:12px}.weight-sliders{display:flex;flex-direction:column;gap:10px}.weight-row{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:130px 1fr 36px}.weight-label{color:#b0b0b0;font-size:13px}.weight-slider{appearance:none;background:#505050;border-radius:3px;cursor:pointer;height:6px;outline:none;width:100%}.weight-slider::-webkit-slider-thumb{appearance:none;background:#4caf50;border-radius:50%;cursor:pointer;height:16px;width:16px}.weight-slider::-moz-range-thumb{background:#4caf50;border:none;border-radius:50%;cursor:pointer;height:16px;width:16px}.weight-value{font-feature-settings:"tnum";color:#e0e0e0;font-size:13px;font-variant-numeric:tabular-nums;text-align:right}@media (max-width:600px){.practice-settings-modal{max-height:95vh;width:95%}.practice-settings-header h2{font-size:20px}.practice-card-type-filter{grid-template-columns:repeat(2,minmax(0,1fr))}}.streak-counter{grid-column-gap:14px;grid-row-gap:8px;align-content:stretch;align-items:center;background:linear-gradient(135deg,#2ec4b629,#ffd66b14),#201713d1;border:1px solid #2ec4b652;border-radius:8px;box-shadow:0 12px 28px #0000002e;color:var(--color-text);column-gap:14px;cursor:pointer;display:grid;font-family:inherit;grid-template-columns:minmax(110px,.9fr) minmax(132px,1.1fr);grid-template-rows:auto 1fr auto;justify-items:stretch;min-height:132px;padding:18px;position:relative;row-gap:8px;text-align:left;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;width:100%}.streak-counter:before{align-self:start;color:var(--color-teal);content:"Training Log";font-size:12px;font-weight:850;grid-column:1/-1;justify-self:start;letter-spacing:.06em;text-transform:uppercase}.streak-counter:after{color:var(--color-muted);content:"Open training log";font-size:13px;font-weight:600;grid-column:1/-1;justify-self:start}.streak-counter:hover{border-color:#2ec4b694;box-shadow:0 16px 34px #2ec4b624;transform:translateY(-2px)}.streak-counter:active{transform:translateY(0)}.streak-counter:disabled{cursor:not-allowed;opacity:.64}.streak-counter-active{border-color:#ffd66b7a}.streak-counter-active:before{color:var(--color-gold)}.streak-counter-inactive{border-color:#ffe5c233}.streak-counter-with-bubble{overflow:visible;z-index:3}.streak-counter-loading,.streak-counter-no-bubble{grid-template-columns:1fr}.streak-counter-loading{border-color:#ffe5c233;color:var(--color-muted)}.streak-content{grid-gap:8px;align-content:center;display:grid;gap:8px;grid-column:1;justify-items:start;min-width:0}.streak-counter-no-bubble .streak-content{align-self:center;grid-area:2/1/3/-1;justify-items:center;justify-self:stretch;text-align:center;width:100%}.streak-character-row{align-items:center;display:flex;gap:10px;justify-content:center;min-width:0;width:100%}.streak-character-row.has-bubble{justify-content:flex-start;position:relative}.streak-counter-no-bubble .streak-character-row{justify-content:center}.streak-icon{align-self:center;display:block;filter:drop-shadow(0 8px 12px rgba(0,0,0,.18));height:68px;justify-self:start;object-fit:contain;object-position:center;width:68px}.streak-icon-placeholder{background:linear-gradient(135deg,#ffeccb1f,#2ec4b61a),#120e0c47;border:1px solid #ffeccb1a;border-radius:8px;filter:none}.streak-icon-character{image-rendering:pixelated;image-rendering:crisp-edges}.streak-counter-inactive .streak-icon-character,.streak-counter-loading .streak-icon-character{filter:grayscale(.18) saturate(.75) brightness(.92) drop-shadow(0 10px 14px rgba(0,0,0,.14))}.streak-text{color:var(--color-cream);font-size:28px;font-weight:850;justify-self:start;line-height:1;text-align:left;white-space:nowrap}.streak-counter-no-bubble .streak-text{justify-self:center;text-align:center}.streak-speech-bubble{align-items:center;background:linear-gradient(145deg,#fffdf3,#ffe79d);border:3px solid #f2dba8;border-radius:18px;box-shadow:0 10px 18px #00000038,inset 0 -2px 0 #ffd66b52;box-sizing:border-box;color:#2a201a;display:inline-flex;font-size:12px;font-weight:850;justify-content:center;left:76px;line-height:1.2;min-height:68px;padding:14px 16px;position:absolute;text-align:center;text-transform:uppercase;top:0;width:190px;z-index:4}.streak-speech-bubble:before{content:none}.streak-counter-active .streak-speech-bubble{filter:saturate(1.08)}@media (max-width:480px){.streak-counter{column-gap:10px;grid-template-columns:minmax(86px,.86fr) minmax(114px,1.14fr);min-height:118px;padding:16px}.streak-counter-no-bubble{grid-template-columns:1fr}.streak-icon{height:58px;width:58px}.streak-text{font-size:24px}.streak-speech-bubble{font-size:10px;left:68px;min-height:58px;padding:10px 14px;top:0;width:174px}}.tournament-result-overlay{align-items:center;background:#0c0907b8;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1200}.tournament-result-popup{background:linear-gradient(180deg,#2f241cfa,#1f1816fa),var(--color-ink);border:1px solid #ffd66b57;border-radius:8px;box-shadow:0 28px 70px #00000073;color:var(--color-text);padding:24px;position:relative;width:min(520px,100%)}.tournament-result-popup.is-win{border-color:#ffd66b9e}.tournament-result-popup.is-loss{border-color:#9bb7ff75}.tournament-result-champion{background:radial-gradient(circle at 50% 0,#ffd66b3d,#0000 18rem),linear-gradient(180deg,#3a2618fa,#1f1816fa),var(--color-ink);border-color:#ffd66bb8}.tournament-result-close{background:#ffffff0f;border:1px solid #ffeccb38;border-radius:8px;color:var(--color-cream);cursor:pointer;font-weight:900;height:34px;position:absolute;right:12px;top:12px;width:34px}.tournament-result-heading{padding:4px 36px 18px;text-align:center}.tournament-result-heading span{color:var(--color-gold);font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.tournament-result-heading h2{color:var(--color-cream);font-size:1.75rem;margin:6px 0}.tournament-result-heading p{color:var(--color-muted);font-size:.95rem;margin:0}.tournament-result-fighters{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:1fr auto 1fr}.tournament-result-fighter{grid-gap:7px;align-content:start;background:#ffffff0f;border:1px solid #ffeccb24;border-radius:8px;display:grid;gap:7px;justify-items:center;min-height:210px;min-width:0;padding:14px 10px}.tournament-result-fighter.is-sad{background:#7892be1f}.tournament-result-fighter img{height:112px;object-fit:contain;width:112px}.tournament-result-fighter-label{color:var(--color-muted);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.tournament-result-fighter strong{color:var(--color-cream);font-size:.95rem;max-width:100%;overflow-wrap:anywhere;text-align:center}.tournament-result-score{color:var(--color-gold);font-size:1.45rem;font-weight:950}.tournament-champion-stage{grid-gap:12px;background:linear-gradient(135deg,#ffd66b1f,#ff7a591f),#ffffff0f;border:1px solid #ffd66b3d;border-radius:8px;display:grid;gap:12px;justify-items:center;padding:18px;text-align:center}.tournament-champion-stage img{filter:drop-shadow(0 18px 28px rgba(0,0,0,.34));height:148px;object-fit:contain;width:148px}.tournament-champion-name{grid-gap:4px;display:grid;gap:4px}.tournament-champion-name span{color:var(--color-gold);font-size:12px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.tournament-champion-name strong{color:var(--color-cream);font-size:1.45rem;overflow-wrap:anywhere}.tournament-champion-stage p{color:var(--color-muted);font-weight:750;line-height:1.45;margin:0}.tournament-result-vs{color:var(--color-coral);font-size:.9rem;font-weight:950}.tournament-result-primary{background:linear-gradient(135deg,var(--color-gold),var(--color-coral));border:none;border-radius:8px;color:#24110a;cursor:pointer;font-weight:950;margin-top:18px;min-height:44px;width:100%}@media (max-width:520px){.tournament-result-popup{padding:18px}.tournament-result-fighters{grid-template-columns:1fr}.tournament-result-vs{text-align:center}}.notification-overlay{align-items:center;background:#14100ec7;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1150}.notification-popup{background:#2f2926;border:1px solid #ffd66b6b;border-radius:8px;box-shadow:0 24px 70px #00000075;color:var(--color-text);max-height:calc(100dvh - 40px);overflow-y:auto;padding:28px;position:relative;width:min(500px,100%)}.notification-close{background:#ffffff14;border:0;border-radius:50%;color:var(--color-cream);cursor:pointer;display:grid;height:36px;padding:0;place-items:center;position:absolute;right:12px;top:12px;width:36px}.notification-heading{padding-right:38px}.notification-heading span{color:var(--color-gold);display:block;font-size:.75rem;font-weight:900;margin-bottom:6px;text-transform:uppercase}.notification-heading h2{color:var(--color-cream);font-size:1.45rem;letter-spacing:0;margin:0;overflow-wrap:anywhere}.notification-message{color:var(--color-text);line-height:1.65;margin:22px 0;overflow-wrap:anywhere;white-space:pre-wrap}.notification-dismiss-option{align-items:center;color:var(--color-muted);cursor:pointer;display:flex;gap:9px;margin-bottom:18px}.notification-dismiss-option input{accent-color:var(--color-gold);height:18px;width:18px}.notification-primary{background:var(--color-gold);border:0;border-radius:8px;color:#2a2019;cursor:pointer;font-weight:900;min-height:44px;width:100%}@media (max-width:520px){.notification-overlay{padding:12px}.notification-popup{max-height:calc(100dvh - 24px);padding:22px 18px}}.main-page{background:radial-gradient(circle at 14% 0,#ffd66b24,#0000 24rem),radial-gradient(circle at 88% 7%,#2ec4b61a,#0000 22rem),var(--color-ink);min-height:100vh;padding:2rem 2rem 5rem;position:relative}.main-page-content{margin:0 auto;max-width:1180px}.start-test-container{grid-gap:16px;align-items:stretch;display:grid;gap:16px;grid-template-columns:minmax(240px,.76fr) minmax(360px,1.24fr);margin-bottom:2rem}.btn-start-test{align-items:center;background:linear-gradient(135deg,#ffd66bf5,#ff7a59f0),var(--color-coral);border:none;border-radius:8px;box-shadow:0 16px 36px #ff7a593d;color:#23110a;cursor:pointer;display:flex;font-size:clamp(1.35rem,2vw,1.9rem);font-weight:900;gap:14px;grid-row:span 2;justify-content:center;min-height:132px;padding:1.25rem;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.btn-start-test-icon{flex:0 0 auto;height:42px;object-fit:contain;width:42px}.btn-start-test:hover:not(:disabled){box-shadow:0 20px 44px #ff7a5957;filter:brightness(1.03);transform:translateY(-2px)}.btn-start-test:active:not(:disabled){transform:translateY(0)}.btn-start-test:disabled{cursor:not-allowed;opacity:.5}.challenge-progress-mini,.start-test-container>.streak-counter{min-height:132px}.challenge-progress-mini{grid-gap:10px;align-content:space-between;background:linear-gradient(135deg,#ffd66b21,#ff7a591a),#2a201adb;border:1px solid #ff7a5961;border-radius:8px;box-shadow:0 12px 28px #0000002e;color:var(--color-text);cursor:pointer;display:grid;font-family:inherit;gap:10px;min-width:260px;padding:18px;text-align:left;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.challenge-progress-mini-visual{align-items:flex-start;display:flex}.challenge-scoreboard{background:linear-gradient(180deg,#121813f5,#1b221cf0);border:1px solid #ffd66b3d;border-radius:8px;box-shadow:inset 0 1px 0 #fff5e40f,0 8px 16px #00000038;min-height:68px;padding:9px 12px 10px;width:min(100%,232px)}.challenge-scoreboard-footer,.challenge-scoreboard-header{align-items:center;color:#ffeccbb8;display:flex;font-size:10px;font-weight:800;justify-content:space-between;letter-spacing:.08em;text-transform:uppercase}.challenge-scoreboard-main{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:1fr auto 1fr;margin:8px 0 7px}.challenge-scoreboard-team{grid-gap:4px;display:grid;gap:4px;justify-items:center}.challenge-scoreboard-team-label{color:#ffd66be0;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.challenge-scoreboard-divider,.challenge-scoreboard-score{color:#ffd66b;font-family:Arial Black,Segoe UI,sans-serif;line-height:1;text-shadow:0 0 10px #ffd66b38}.challenge-scoreboard-score{font-size:1.55rem;font-weight:900}.challenge-scoreboard-divider{font-size:1rem;margin-top:12px}.challenge-scoreboard-footer{gap:7px;justify-content:flex-start}.challenge-scoreboard-dot{background:#ff7a59;border-radius:999px;box-shadow:0 0 12px #ff7a598c;height:8px;width:8px}.challenge-progress-mini:hover{border-color:#ff7a599e;box-shadow:0 16px 34px #ff7a5929;transform:translateY(-2px)}.challenge-progress-mini-idle{border-color:#ffd66b61}.level-up-progress-mini{background:linear-gradient(135deg,#2ec4b62e,#ffd66b1a),#2a201ae0;border-color:#2ec4b67a}.level-up-progress-mini-body{align-items:center;display:flex;justify-content:center;min-height:44px}.level-up-progress-mini-icon{filter:drop-shadow(0 8px 14px rgba(46,196,182,.2));height:54px;object-fit:contain;width:54px}.level-up-progress-mini:hover{border-color:#2ec4b6b8;box-shadow:0 16px 34px #2ec4b621}.triumph-review-progress-mini{background:linear-gradient(135deg,#4b79ff2e,#2ec4b61f),#2a201ae0;border-color:#4b79ff7a}.triumph-review-progress-mini-body{align-items:center;display:flex;filter:drop-shadow(0 8px 14px rgba(75,121,255,.2));justify-content:center;min-height:44px}.triumph-review-progress-mini-icon{height:54px;object-fit:contain;width:54px}.triumph-review-progress-mini:hover{border-color:#4b79ffb8;box-shadow:0 16px 34px #4b79ff21}.challenge-progress-mini-disabled,.challenge-progress-mini:disabled{cursor:not-allowed;filter:grayscale(.35);opacity:.48}.challenge-progress-mini-disabled:hover,.challenge-progress-mini:disabled:hover{box-shadow:0 12px 28px #0000002e;transform:none}.challenge-progress-mini-title{color:var(--color-gold);font-size:12px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.challenge-progress-mini-values{color:var(--color-muted);font-size:13px;font-weight:600;line-height:1.2}.add-note-container{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-bottom:2rem;margin-top:2rem}.btn-user-fixed{background:#2a201aeb;border:1px solid var(--color-line);border-radius:8px;box-shadow:0 12px 26px #00000038;color:var(--color-cream);cursor:pointer;font-weight:800;min-height:44px;padding:0 16px;position:fixed;right:2rem;top:1.5rem;z-index:100}.main-page-loading{align-items:center;background:#2a201ad1;border:1px solid var(--color-line);border-radius:8px;box-shadow:var(--shadow-warm);display:flex;justify-content:center;min-height:400px}@media (max-width:900px){.start-test-container{grid-template-columns:repeat(2,minmax(0,1fr))}.challenge-progress-mini{min-width:0}.btn-start-test{grid-column:1/-1;grid-row:auto}}@media (max-width:768px){.main-page{padding:1rem 1rem 5rem}.btn-start-test{min-height:96px}.btn-user-fixed{right:1rem;top:1rem}}@media (max-width:480px){.main-page{padding:.75rem .75rem 5rem}.challenge-progress-mini{min-width:0;width:100%}.challenge-scoreboard{width:100%}}.login-page{align-items:center;background:radial-gradient(circle at 18% 18%,#ffd66b38,#0000 18rem),radial-gradient(circle at 78% 24%,#ff7a5933,#0000 24rem),linear-gradient(135deg,#171311,#201713 52%,#2a0e06);box-sizing:border-box;display:flex;inset:0;justify-content:center;overflow:hidden;padding:24px;position:fixed;z-index:100}.login-page:before{background:linear-gradient(#ffe5c20a 1px,#0000 0),linear-gradient(90deg,#ffe5c20a 1px,#0000 0);background-size:44px 44px;content:"";inset:0;-webkit-mask-image:linear-gradient(180deg,#000000d9,#0000 78%);mask-image:linear-gradient(180deg,#000000d9,#0000 78%);pointer-events:none;position:absolute}.login-page-actions{align-items:center;display:flex;gap:8px;position:absolute;right:max(16px,env(safe-area-inset-right));top:max(16px,env(safe-area-inset-top));z-index:3}.login-language-toggle,.login-pwa-install-button{background:#2a201ad1;border:1px solid #ffe5c23d;border-radius:999px;box-shadow:0 12px 28px #0003;color:var(--color-cream);cursor:pointer;font:inherit;font-size:13px;font-weight:900;letter-spacing:.03em;min-height:38px;min-width:58px;padding:8px 13px}.login-pwa-install-button{align-items:center;color:#ffe29a;display:inline-flex;gap:7px;justify-content:center}.login-language-toggle:hover,.login-pwa-install-button:hover{border-color:#2ec4b69e;color:#bffaf2}.login-language-toggle:disabled,.login-pwa-install-button:disabled{cursor:not-allowed;opacity:.62}.login-install-dialog-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#080605c2;display:grid;inset:0;padding:20px;place-items:center;position:fixed;z-index:20}.login-install-dialog{grid-gap:14px;background:#2a201a;border:1px solid #ffd66b6b;border-radius:14px;box-shadow:0 26px 70px #00000080;color:var(--color-text);display:grid;gap:14px;padding:28px;position:relative;width:min(420px,100%)}.login-install-dialog h2,.login-install-dialog p{margin:0}.login-install-dialog h2{color:var(--color-gold);font-size:22px}.login-install-dialog p{color:var(--color-cream);font-size:15px;line-height:1.6}.login-install-dialog-icon{background:#2ec4b624;border:1px solid #2ec4b675;border-radius:50%;color:#8cf4e8;display:grid;height:52px;place-items:center;width:52px}.login-install-dialog-close{background:#1713118a;border:1px solid #ffe5c229;border-radius:50%;color:var(--color-muted);cursor:pointer;display:grid;height:40px;place-items:center;position:absolute;right:12px;top:12px;width:40px}.login-install-dialog-done{background:linear-gradient(135deg,var(--color-gold),var(--color-coral));border:0;border-radius:8px;color:#24110a;cursor:pointer;font:inherit;font-weight:900;min-height:44px}.login-hero{grid-gap:20px;align-items:stretch;display:grid;gap:20px;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);position:relative;width:min(960px,100%);z-index:1}.login-brand-panel,.login-form{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#2a201ac7;border:1px solid var(--color-line);box-shadow:var(--shadow-warm)}.login-brand-panel{align-items:center;align-self:start;border-radius:22px;display:inline-flex;gap:18px;justify-content:flex-start;justify-self:start;max-width:100%;overflow:hidden;padding:clamp(28px,5vw,56px);width:fit-content}.login-brand-copy{grid-gap:2px;display:grid;gap:2px;min-width:0}.login-wordmark{display:grid;font-size:clamp(36px,7vw,74px);font-weight:950;line-height:.92;max-width:360px;text-shadow:0 18px 42px #00000057}.login-wordmark-club,.login-wordmark-language,.login-wordmark-pt{display:block}.login-wordmark-language{color:var(--color-cream)}.login-wordmark-pt{color:var(--color-gold)}.login-wordmark-club{color:var(--color-coral)}.login-subtitle{color:var(--color-muted);font-size:12px;font-weight:800;letter-spacing:.18em;margin-top:-2px;text-transform:uppercase}.login-character{filter:drop-shadow(0 22px 34px rgba(255,122,89,.24));flex:0 0 auto;height:146px;image-rendering:pixelated;image-rendering:crisp-edges;margin-bottom:0;object-fit:contain;object-position:center;pointer-events:none;width:108px}.login-overlay{align-items:center;display:flex}.login-form{border-radius:18px;display:flex;flex-direction:column;gap:18px;padding:clamp(24px,4vw,36px);width:100%}.login-form-heading{grid-gap:6px;display:grid;gap:6px;margin-bottom:4px}.login-form-heading strong{align-items:baseline;color:var(--color-text);display:inline-flex;flex-wrap:nowrap;font-size:28px;line-height:1.15;white-space:nowrap}.login-form-heading-line{color:var(--color-coral)}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{color:var(--color-cream);font-size:14px;font-weight:700}.form-group input,.form-group select{background-color:#171311bd;border:1px solid #ffe5c238;border-radius:10px;color:var(--color-text);font-size:15px;padding:13px 15px;transition:border-color .2s,box-shadow .2s,background-color .2s;width:100%}.form-group input:focus,.form-group select:focus{background-color:#171311eb;border-color:var(--color-gold);box-shadow:0 0 0 3px #ffd66b29;outline:none}.form-group input::placeholder{color:#ffe5c275}.form-group input:disabled,.form-group select:disabled{cursor:not-allowed;opacity:.6}.login-error{background-color:#621e188f;border:1px solid #ff7a596b;border-radius:10px;color:#ffd2c8}.login-error,.login-message{font-size:14px;padding:11px 14px}.login-message{background-color:#2ec4b629;border:1px solid #2ec4b66b;border-radius:10px;color:#d4fff9}.login-agreement-panel{grid-gap:12px;background:#17131194;border:1px solid #ffd66b3d;border-radius:12px;color:var(--color-text);display:grid;gap:12px;padding:16px}.login-agreement-panel h2{color:var(--color-gold);font-size:18px;line-height:1.2;margin:0}.login-agreement-panel p{color:var(--color-muted);font-size:14px;line-height:1.5;margin:0}.login-agreement-list{grid-gap:8px;color:#ffe5c2db;display:grid;font-size:13px;gap:8px;line-height:1.45;margin:0;max-height:min(210px,28vh);overflow-y:auto;padding:0 0 0 18px}.login-agreement-emphasis{background:#2ec4b61a;border:1px solid #2ec4b647;border-radius:10px;color:#d4fff9!important;font-weight:800;padding:10px 12px}.login-agreement-check{align-items:flex-start;color:var(--color-cream);cursor:pointer;display:flex;font-size:13px;font-weight:750;gap:10px;line-height:1.45}.login-agreement-check input{accent-color:var(--color-gold);flex:0 0 auto;height:18px;margin-top:1px;width:18px}.login-agreement-actions{grid-gap:10px;display:grid;gap:10px;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.login-secondary-button{background:#ffe5c21f;border:1px solid #ffe5c22e;border-radius:10px;color:var(--color-cream);cursor:pointer;font:inherit;font-size:15px;font-weight:850;padding:15px 18px}.login-secondary-button:disabled{cursor:not-allowed;opacity:.6}.login-links{display:flex;flex-wrap:wrap;font-size:14px;gap:10px 14px;justify-content:center}.login-links a{color:var(--color-gold);font-weight:800;text-decoration:none}.login-button{background:linear-gradient(135deg,var(--color-gold),var(--color-coral));border:none;border-radius:10px;box-shadow:0 12px 28px #ff7a593d;color:#24110a;cursor:pointer;font-size:16px;font-weight:850;padding:15px 24px;transition:transform .2s,box-shadow .2s,filter .2s}.login-button:hover:not(:disabled){box-shadow:0 16px 36px #ff7a5952;filter:brightness(1.04);transform:translateY(-2px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{cursor:not-allowed;opacity:.6}@media (max-width:760px){.login-page{overflow-y:auto;padding:14px}.login-hero{grid-template-columns:1fr}.login-brand-panel{align-items:center;border-radius:18px;gap:10px;width:100%}.login-wordmark{font-size:clamp(34px,12vw,58px);max-width:none}.login-subtitle{font-size:11px}.login-character{height:124px;margin-bottom:0;width:92px}}.admin-page{background:radial-gradient(circle at 16% 10%,#2ec4b624,#0000 22rem),radial-gradient(circle at 86% 18%,#ff5c4f1f,#0000 26rem),var(--color-ink);color:var(--color-text);min-height:100vh;padding:24px}.admin-header,.admin-login-card,.admin-panel{margin:0 auto;max-width:1120px}.admin-login-card,.admin-panel{background:#2a201adb;border:1px solid var(--color-line);border-radius:8px;box-shadow:0 16px 34px #00000038}.admin-login-card{margin-top:clamp(40px,12vh,120px);padding:24px;width:min(480px,100%)}.admin-brand,.admin-header,.admin-panel-title{align-items:center;display:flex;gap:12px}.admin-brand{color:var(--color-gold);margin-bottom:20px}.admin-brand h1,.admin-header h1,.admin-panel-title h2{color:var(--color-cream);margin:0}.admin-brand p,.admin-header p{color:var(--color-muted);font-weight:800;margin:4px 0 0}.admin-create-form,.admin-login-form{grid-gap:10px;display:grid;gap:10px}.admin-login-form label{color:var(--color-cream);font-size:13px;font-weight:850}.admin-create-form input,.admin-create-form select,.admin-filters input,.admin-filters select,.admin-login-form input{background:#0c0a09b3;border:1px solid #ffe5c233;border-radius:8px;box-sizing:border-box;color:var(--color-text);font:inherit;min-height:42px;min-width:0;padding:0 12px}.admin-create-form button,.admin-delete-user,.admin-filters button,.admin-login-form button,.admin-logout{border:0;border-radius:8px;cursor:pointer;font:inherit;font-weight:900;min-height:42px}.admin-create-form button,.admin-filters button,.admin-login-form button{background:linear-gradient(135deg,var(--color-gold),var(--color-coral));color:#24110a}.admin-header{justify-content:space-between;margin-bottom:16px}.admin-logout{align-items:center;background:#ff5c4f2e;border:1px solid #ff5c4f5c;color:#ffd8cf;display:inline-flex;gap:8px;padding:0 14px}.admin-panel{margin-bottom:16px;padding:18px}.admin-panel-title{color:var(--color-gold)}.admin-panel-title span{color:var(--color-muted);font-size:13px;font-weight:900}.admin-create-form{grid-template-columns:1fr 1fr 1fr 130px 140px auto;margin-top:14px}.admin-toolbar{grid-gap:12px;display:grid;gap:12px}.admin-filters{grid-gap:10px;display:grid;gap:10px;grid-template-columns:minmax(180px,1fr) 220px auto}.admin-table-wrap{margin-top:14px;overflow-x:auto;width:100%}.admin-user-table{border-collapse:collapse;min-width:760px;width:100%}.admin-user-table td,.admin-user-table th{border-bottom:1px solid #ffe5c21a;padding:12px 10px;text-align:left;vertical-align:middle}.admin-user-table th{color:var(--color-gold);font-size:12px;text-transform:uppercase}.admin-user-table td{color:var(--color-cream);font-weight:750}.admin-user-table small{color:var(--color-muted);display:block;font-weight:700;margin-top:4px}.admin-membership-select{background:#251b16;border:1px solid #ffd15c4d;border-radius:4px;color:#f7e4c7;min-width:118px;padding:7px 8px}.is-stale-unverified{background:#ff5c4f14}.admin-status-pill{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:900;min-height:26px;padding:0 9px}.admin-status-pill.is-verified{background:#2ec4b62e;color:#bffaf2}.admin-status-pill.is-unverified{background:#ffd66b24;color:#ffe8a6}.admin-delete-user{align-items:center;background:#ff5c4f29;border:1px solid #ff5c4f57;color:#ffd8cf;display:inline-flex;gap:6px;padding:0 10px}.admin-error,.admin-message{border-radius:8px;font-size:14px;font-weight:800;margin:0 auto 14px;max-width:1120px;padding:11px 14px}.admin-error{background:#621e188f;border:1px solid #ff7a596b;color:#ffd2c8}.admin-message{background:#2ec4b629;border:1px solid #2ec4b66b;color:#d4fff9}.admin-empty{color:var(--color-muted)!important;text-align:center!important}@media (max-width:820px){.admin-page{padding:16px}.admin-header{align-items:flex-start}.admin-create-form,.admin-filters{grid-template-columns:1fr}}.user-page{background:linear-gradient(160deg,#2ec4b614,#0000 34rem),var(--color-ink);color:var(--color-text);min-height:100vh;padding:24px}.user-page-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin:0 auto 18px;max-width:1080px;min-height:76px;position:relative}.user-page-logout{align-items:center;border:1px solid var(--color-line);border-radius:8px;color:var(--color-cream);cursor:pointer;display:inline-flex;font-weight:700;justify-content:center;min-height:46px;transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}.user-page-header .btn-back-inline{left:0;position:absolute}.user-page-logout{background:linear-gradient(135deg,#d64238,#ff6b5a);border-color:#ff5c4f6b;box-shadow:0 10px 22px #d642383d;color:#fff8ef;gap:8px;margin-left:auto;padding:0 16px}.user-page-logout:hover{filter:brightness(1.04);transform:translateY(-1px)}.user-page-title-block{left:50%;min-width:0;position:absolute;text-align:center;transform:translateX(-50%);width:min(100% - 132px,720px)}.user-page-title-block h1{margin:0}.user-page-title-block p{color:var(--color-muted);font-size:13px;font-weight:800;margin:5px 0 0;text-transform:uppercase}.page-title-user{color:var(--color-cream);text-align:center}.user-page-section{background:#2a201ad6;border:1px solid var(--color-line);border-radius:8px;box-shadow:0 12px 28px #0000002e;margin:0 auto 20px;max-width:1080px;padding:20px}.user-page-title{color:var(--color-gold);margin:0 0 16px}.user-profile-card{grid-gap:10px;background:linear-gradient(135deg,#2ec4b624,#ffd66b14),#171311c2;border:1px solid #ffe5c21a;border-radius:8px;display:grid;gap:10px;margin-bottom:14px;padding:18px}.user-account-card{background:#171311c2}.user-account-heading{align-items:center;display:flex;gap:12px;justify-content:space-between}.user-membership-badge{background:#ffc4411a;border:1px solid #ffd25c73;border-radius:6px;color:#ffd45f;font-size:.72rem;font-weight:900;padding:6px 10px;text-transform:uppercase}.user-membership-badge.is-trial{background:#2fad9a1f;border-color:#4bccb87a;color:#77e2d0}.user-membership-badge.is-user{background:#d7c9b90f;border-color:#d7c9b940;color:#d7c9b9}.user-membership-message{background:#ffc94f14;border-left:3px solid #ffc94f;color:#f5e5ca;line-height:1.55;margin:14px 0;padding:14px 16px}.user-membership-message.is-trial{background:#42cdb614;border-left-color:#42cdb6}.user-membership-message.is-user{background:#9f8e7b14;border-left-color:#9f8e7b}.user-account-details{color:var(--color-cream);display:flex;flex-wrap:wrap;font-weight:750;gap:8px 16px}.user-danger-zone{grid-gap:12px;align-items:center;border-top:1px solid #ff5c4f42;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;margin-top:6px;padding-top:14px}.user-danger-zone strong{color:#ffd8cf;font-size:14px}.user-danger-zone p{color:var(--color-muted);font-size:13px;font-weight:700;margin:4px 0 0}.user-danger-actions button,.user-delete-account-button{background:#d6423829;border:1px solid #ff5c4f6b;border-radius:8px;color:#ffd8cf;cursor:pointer;font-weight:850;min-height:36px;padding:0 12px}.user-delete-account-button{align-items:center;display:inline-flex;gap:7px;justify-content:center;white-space:nowrap}.user-delete-account-form{grid-gap:8px;display:grid;gap:8px;justify-items:end}.user-delete-account-form input{background:#0c0a099e;border:1px solid #ffe5c238;border-radius:8px;box-sizing:border-box;color:var(--color-text);min-height:38px;padding:0 12px;width:min(240px,100%)}.user-danger-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:end}.user-password-card{background:#171311c2}.user-password-card:not(.is-open){padding:0}.user-password-open{align-items:center;background:#ffe5c214;border:0;border-radius:8px;color:var(--color-cream);cursor:pointer;display:inline-flex;font:inherit;font-weight:850;gap:8px;justify-content:center;min-height:48px;padding:0 14px}.user-password-open:hover{background:#ffe5c221;color:var(--color-gold)}.user-password-form{grid-gap:10px;display:grid;gap:10px}.user-password-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:minmax(0,1fr)}.user-password-grid input{background:#0c0a099e;border:1px solid #ffe5c238;border-radius:8px;color:var(--color-text);min-width:0;padding:11px 12px}.user-password-message{color:#9ff4e9;font-size:13px;font-weight:800}.user-profile-name{color:var(--color-cream);font-size:clamp(32px,7vw,52px);font-weight:950;line-height:1;overflow-wrap:anywhere;text-shadow:0 2px 8px #00000047}.user-goal-journey{background:radial-gradient(circle at 82% 16%,#ffd36a2e,#0000 24rem),linear-gradient(135deg,#2ec4b62e,#ff7a5914),#12100ed6;border:1px solid #ffd36a47;border-radius:8px;margin-bottom:16px;overflow:hidden;padding:18px;position:relative}.user-goal-journey:before{background:linear-gradient(90deg,#0000,#ffffff14,#0000),repeating-linear-gradient(120deg,#ffe5c20a 0 2px,#0000 2px 16px);content:"";inset:0;opacity:.38;pointer-events:none;position:absolute}.user-goal-heading,.user-goal-stats{position:relative;z-index:1}.user-goal-heading{align-items:start;display:flex;gap:12px;justify-content:space-between}.user-goal-heading div{grid-gap:4px;display:grid;gap:4px}.user-goal-heading span,.user-goal-stats span,.user-level-kicker{color:var(--color-muted);font-size:12px;font-weight:900;text-transform:uppercase}.user-goal-heading strong{color:var(--color-gold);font-size:clamp(28px,8vw,42px);line-height:1}.user-goal-road{background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-radius:8px;box-shadow:inset 0 0 0 1px #ffe5c229,0 16px 28px #00000038;margin:18px 0 16px;overflow:hidden;position:relative;width:100%;z-index:1}.user-goal-runner{animation:runner-breathe 1.6s ease-in-out infinite;aspect-ratio:1/1;display:grid;place-items:center;position:absolute;transition:left .26s ease;will-change:left,transform}.user-goal-runner img{display:block;filter:drop-shadow(0 10px 8px rgba(0,0,0,.34));height:100%;object-fit:contain;width:100%}.user-goal-journey-active .user-goal-runner{animation-duration:1s}.user-goal-journey-fast .user-goal-runner{animation:runner-dash .52s ease-in-out infinite}.user-goal-stats{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.user-goal-stats div{grid-gap:5px;background:#12100e8f;border:1px solid #ffe5c21f;border-radius:8px;display:grid;gap:5px;min-width:0;padding:12px}.user-goal-stats strong{color:#fff;font-size:16px;overflow-wrap:anywhere}@keyframes runner-breathe{0%,to{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-5px)}}@keyframes runner-dash{0%,to{transform:translateX(-50%) translateY(0) rotate(-1deg)}50%{transform:translateX(-50%) translateY(-7px) rotate(1deg)}}.achievement-grid,.user-stats-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.achievement-card,.user-stat-box{grid-gap:7px;align-content:center;background:linear-gradient(135deg,#2ec4b633,#ffd66b14),#2a201a;border:1px solid #ffeccb1f;border-radius:8px;box-shadow:0 10px 22px #0000002e;display:grid;gap:7px;justify-items:center;min-height:116px;min-width:0;padding:14px 12px;text-align:center}.achievement-icon,.user-stat-icon{color:var(--color-gold);filter:drop-shadow(0 2px 7px rgba(255,214,107,.22))}.achievement-title,.user-stat-label{color:#ffffffe0;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.achievement-value,.user-stat-value{color:#fff;font-size:clamp(30px,8vw,46px);font-weight:900;line-height:1;overflow-wrap:anywhere;text-shadow:0 2px 4px #0000004d}.user-stat-value-time{font-size:clamp(24px,6vw,34px)}.achievement-value-text{font-size:22px;overflow-wrap:anywhere}.user-nickname-display,.user-nickname-editor{grid-gap:10px;display:grid;gap:10px;min-width:0}.user-nickname-display{align-items:center;grid-template-columns:minmax(0,1fr) auto}.user-nickname-actions button,.user-nickname-display button{background:#ffe5c21a;cursor:pointer;font-weight:800;min-height:36px}.user-nickname-actions button,.user-nickname-display button,.user-nickname-editor input{border:1px solid var(--color-line);border-radius:8px;color:var(--color-cream);padding:0 12px}.user-nickname-editor input{background:#171311e6;box-sizing:border-box;font:inherit;min-height:42px;width:100%}.user-nickname-actions{display:flex;flex-wrap:wrap;gap:8px}.user-nickname-error{color:#ffb4a2;font-size:13px;font-weight:700}@media (max-width:640px){.user-page{padding:16px}.user-page-header{display:flex}.user-page-title-block{width:calc(100% - 108px)}.user-page-logout{padding:0;width:46px}.user-page-logout span{clip:rect(0,0,0,0);height:1px;overflow:hidden;position:absolute;width:1px}.user-goal-journey{padding:14px}.user-goal-heading{align-items:stretch}.user-goal-road{margin:14px 0}.user-goal-stats{gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.user-goal-stats strong{font-size:14px}.achievement-grid,.user-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.achievement-card,.user-stat-box{min-height:86px;padding:10px 8px}.achievement-value,.user-stat-value{font-size:28px}.achievement-value-text,.user-stat-value-time{font-size:22px}.achievement-title,.user-stat-label{font-size:10px}.user-danger-zone,.user-nickname-display{grid-template-columns:1fr}.user-danger-zone{align-items:stretch}.user-delete-account-form{justify-items:stretch}.user-delete-account-form input{width:100%}.user-danger-actions{justify-content:stretch}.user-danger-actions button,.user-delete-account-button{width:100%}}@media (prefers-reduced-motion:reduce){.user-goal-runner{animation:none}}.month-navigation{background:#2a2a2a;border:1px solid #404040;border-radius:8px;gap:20px;margin-bottom:20px;padding:20px}.month-navigation,.nav-button{align-items:center;display:flex;justify-content:center}.nav-button{background:#1a1a1a;border:2px solid #505050;border-radius:50%;color:#e0e0e0;cursor:pointer;font-size:24px;font-weight:700;height:40px;transition:all .2s ease;-webkit-user-select:none;user-select:none;width:40px}.nav-button:hover{background:#252525;border-color:#007bff;transform:scale(1.05)}.nav-button:active{transform:scale(.95)}.nav-button:disabled{cursor:not-allowed;opacity:.4}.nav-button:disabled:hover{background:#1a1a1a;border-color:#505050;transform:none}.month-display{align-items:center;display:flex;gap:12px;justify-content:center;min-width:200px}.month-name{color:#e0e0e0;font-size:20px;font-weight:600;transition:color .3s ease}.month-name.current-month{color:#ff6b35;font-weight:700}.year-selector{background:#1a1a1a;border:2px solid #505050;border-radius:6px;color:#e0e0e0;cursor:pointer;font-family:inherit;font-size:16px;font-weight:600;padding:8px 12px;transition:all .2s ease}.year-selector:hover{background:#252525;border-color:#007bff}.year-selector:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff33;outline:none}.year-selector option{background-color:#1a1a1a;color:#e0e0e0}@media (max-width:480px){.month-navigation{gap:12px;padding:16px}.nav-button{font-size:20px;height:36px;width:36px}.month-display{gap:8px;min-width:160px}.month-name{font-size:18px}.year-selector{font-size:14px;padding:6px 10px}}.day-cell{background:#2a201ac7;border:1px solid #ffe5c229;border-radius:4px;display:flex;flex-direction:column;min-height:80px;padding:8px;transition:all .2s ease}.day-number{color:var(--color-cream);font-size:14px;font-weight:600;margin-bottom:4px}.day-stats{word-wrap:break-word;color:var(--color-muted);font-size:12px;margin-top:auto}.day-cell-practiced{background:linear-gradient(135deg,#ffd66b38,#ff7a5924);border-color:#ffd66b7a}.day-cell-practiced:hover{border-color:var(--color-gold);box-shadow:0 10px 24px #ff7a592e;transform:translateY(-2px)}.day-cell-practiced .day-number{color:var(--color-gold)}.day-cell-practiced .day-stats{color:var(--color-cream);font-weight:500}.day-cell-empty{background:#201713b8;border-color:#ffe5c21a}.day-cell-empty:hover{background:#35271fc7}.day-cell-empty .day-number{color:#ffe5c27a}.day-cell-today{border:2px solid var(--color-teal);box-shadow:0 0 0 1px #2ec4b680}.day-cell-today .day-number{color:var(--color-teal);font-weight:700}.day-cell-other-month{opacity:.4;pointer-events:none}.day-cell-other-month .day-number{color:#ffe5c247}@media (max-width:768px){.day-cell{min-height:60px;padding:6px}.day-number{font-size:12px}.day-stats{font-size:10px}}@media (max-width:480px){.day-cell{aspect-ratio:1;min-height:40px;min-width:40px;padding:4px}.day-number{font-size:11px}.day-stats{font-size:9px}}.calendar-grid{margin:0 auto;max-width:800px;width:100%}.calendar-grid-header{grid-gap:4px;background-color:#2a201adb;border:1px solid var(--color-line);border-radius:8px;display:grid;gap:4px;grid-template-columns:repeat(7,1fr);margin-bottom:8px;padding:12px 4px}.day-header{color:var(--color-cream);font-size:14px;font-weight:600;padding:8px 0;text-align:center}.calendar-days{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(7,1fr);padding:4px}.day-cell-empty-slot{aspect-ratio:1;min-height:80px}@media (max-width:768px){.day-header{font-size:12px;padding:6px 0}.day-cell-empty-slot{min-height:60px}}@media (max-width:480px){.calendar-grid-header{gap:2px;margin-bottom:4px;padding:8px 2px}.calendar-days{gap:2px;padding:2px}.day-header{font-size:0;line-height:1;overflow:hidden;padding:4px 0}.day-header:first-letter{font-size:11px}.day-cell-empty-slot{min-height:40px}}.monthly-summary{background:linear-gradient(135deg,#2ec4b614,#ff7a590f),#231b17e6;border:1px solid var(--color-line);border-radius:8px;box-shadow:0 16px 34px #0000002e;margin-top:32px;padding:18px}.monthly-summary-title{color:var(--color-gold);font-size:14px;font-weight:900;letter-spacing:.04em;margin:0 0 16px;text-transform:uppercase}.monthly-summary-stats{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.summary-stat{grid-gap:7px;align-content:center;background:linear-gradient(135deg,#2ec4b633,#ffd66b14),#2a201a;border:1px solid #ffeccb1f;border-radius:8px;box-shadow:0 10px 22px #0000002e;display:grid;gap:7px;justify-items:center;min-height:116px;min-width:0;padding:14px 12px;text-align:center}.summary-stat-icon{color:var(--color-gold);filter:drop-shadow(0 2px 7px rgba(255,214,107,.22))}.stat-label{color:#ffffffe0;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.stat-value{color:#fff;font-size:clamp(28px,5vw,42px);font-weight:900;line-height:1;overflow-wrap:anywhere;text-shadow:0 2px 4px #0000004d}.stat-value-time{font-size:clamp(22px,4vw,32px)}@media (max-width:768px){.monthly-summary{padding:14px}.monthly-summary-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-stat:first-child{order:1}.summary-stat:nth-child(5){order:2}.summary-stat:nth-child(2){order:3}.summary-stat:nth-child(6){order:4}.summary-stat:nth-child(3){order:5}.summary-stat:nth-child(7){order:6}.summary-stat:nth-child(4){order:7}.summary-stat:nth-child(8){order:8}}@media (max-width:480px){.monthly-summary-title{font-size:14px}.summary-stat{gap:6px;min-height:78px;padding:10px 8px}.stat-label{font-size:10px}.stat-value{font-size:28px}.stat-value-time{font-size:21px}}.statistics-view{display:flex;flex-direction:column;gap:24px}.statistics-section{width:100%}@media (max-width:768px){.statistics-view{gap:20px}}@media (max-width:480px){.statistics-view{gap:16px}}@media (max-width:320px){.statistics-view{gap:12px}}.date-range-selector{background:#2a201ad1;border:1px solid var(--color-line);border-radius:8px;margin-top:24px;padding:24px}.date-range-title{color:var(--color-cream);font-size:20px;font-weight:600;margin:0 0 16px}.date-range-inputs{align-items:flex-end;display:flex;gap:24px}.date-input-group{display:flex;flex:1 1;flex-direction:column;gap:8px}.date-label{color:var(--color-muted);font-size:14px;font-weight:500}.date-input{background:#171311d1;border:1px solid #ffe5c22e;border-radius:4px;color:var(--color-text);font-family:inherit;font-size:16px;padding:10px 12px;transition:border-color .2s}.date-input:focus{border-color:var(--color-gold);box-shadow:0 0 0 3px #ffd66b24;outline:none}.date-input:hover{border-color:#ffe5c257}.date-input::-webkit-calendar-picker-indicator{cursor:pointer;filter:invert(1)}.validation-error{background:#621e1880;border:1px solid #ff7a5973;border-radius:4px;color:#ffd2c8;font-size:14px;margin-top:12px;padding:10px 12px}@media (max-width:768px){.date-range-selector{padding:20px}.date-range-inputs{align-items:stretch;flex-direction:column;gap:16px}.date-input-group{width:100%}}@media (max-width:480px){.date-range-selector{padding:16px}.date-range-inputs{align-items:stretch;flex-direction:column;gap:12px}.date-input-group{width:100%}.date-range-title{font-size:18px}.date-label{font-size:13px}.date-input{box-sizing:border-box;font-size:14px;padding:8px 10px;width:100%}}.daily-trend-section{background:#2a2a2a;border:1px solid #404040;border-radius:8px;margin-top:24px;padding:20px}.daily-trend-section-title{color:#e0e0e0;font-size:18px;font-weight:600;margin:0 0 14px}.daily-trend-no-data{color:#888;padding:40px 0;text-align:center}.trend-tooltip{background:#1a1a1a;border:1px solid #404040;border-radius:6px;color:#e0e0e0;font-size:13px;line-height:1.7;padding:10px 14px}.trend-tooltip-date{color:#b0b0b0;font-weight:600;margin-bottom:4px}.calendar-page{color:var(--color-text);margin:0 auto;max-width:1200px;padding:20px}.calendar-header{align-items:center;display:flex;gap:15px;justify-content:center;margin-bottom:30px;min-height:58px;position:relative}.calendar-header .btn-back-inline{background:none;border:none;border-radius:4px;color:var(--color-cream);cursor:pointer;font-size:2rem;left:0;padding:8px 16px;position:absolute;transition:all .2s ease}.calendar-header .btn-back-inline:hover{background-color:#ffe5c21a;transform:translateX(-2px)}.calendar-header .btn-back-inline:active{transform:translateX(-4px)}.calendar-header h1{color:var(--color-cream);font-size:2rem;font-weight:850;left:50%;margin:0;max-width:calc(100% - 112px);position:absolute;transform:translateX(-50%);width:fit-content}.calendar-loading{color:var(--color-muted);padding:40px;text-align:center}.calendar-loading p{font-size:1.1rem}.calendar-error{background:#621e186b;border:1px solid #ff7a595c;border-radius:8px;color:#ffd2c8;padding:40px;text-align:center}.calendar-error p{font-size:1.1rem;margin-bottom:20px}.calendar-error button{background:linear-gradient(135deg,var(--color-gold),var(--color-coral));border:none;border-radius:4px;color:#24110a;cursor:pointer;font-size:1rem;padding:10px 20px;transition:background-color .2s}.calendar-error button:hover{filter:brightness(1.04)}.calendar-error button:active{filter:brightness(.98)}@media (max-width:768px){.calendar-page{padding:10px}.calendar-header h1{font-size:1.5rem}}@media (max-width:480px){.calendar-header{align-items:center;gap:4px}.calendar-header .btn-back-inline{align-items:center;display:flex;justify-content:center;left:0;min-height:44px;min-width:44px;position:absolute}.calendar-header h1{font-size:1.3rem;text-align:center}}.tournament-page{color:var(--color-text);margin:0 auto;max-width:1180px;min-height:100vh;padding:20px}.tournament-page-header{align-items:center;display:flex;gap:16px;justify-content:center;margin-bottom:22px;min-height:68px;position:relative;text-align:center}.tournament-page-header>div{left:50%;position:absolute;transform:translateX(-50%);width:min(100% - 112px,860px)}.tournament-page-header .btn-back-inline{left:0;position:absolute}.tournament-page-header h1{color:var(--color-cream);font-size:clamp(1.45rem,3vw,2.2rem);margin:0}.tournament-page-header p{color:var(--color-muted);font-weight:700;margin:4px 0 0}.tournament-error,.tournament-hero,.tournament-loading,.tournament-section{background:#2a201ad6;border:1px solid #ffeccb24;border-radius:8px;box-shadow:0 14px 32px #0000002e}.tournament-error,.tournament-loading{padding:36px;text-align:center}.tournament-error{border-color:#ff7a596b}.tournament-error button,.tournament-primary-btn{background:linear-gradient(135deg,var(--color-gold),var(--color-coral));border:none;border-radius:8px;color:#24110a;cursor:pointer;font-weight:950;min-height:44px}.tournament-hero{grid-gap:20px;align-items:center;background:linear-gradient(135deg,#ffd66b29,#2ec4b61a),#2a201ae6;display:grid;gap:20px;grid-template-columns:1fr auto;margin-bottom:16px;padding:24px}.tournament-hero-info{background:linear-gradient(90deg,#120e0cd1,#120e0c80),url(/static/media/tournament_gate.dd0d27c57e359812405d.png) 50% /cover no-repeat;border-radius:8px;box-shadow:inset 0 0 0 1px #ffeccb1a;min-height:112px;padding:16px}.tournament-hero span,.tournament-section-heading span{color:var(--color-gold);font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.tournament-hero h2{color:var(--color-cream);font-size:clamp(1.35rem,3vw,2rem);margin:6px 0}.tournament-hero p,.tournament-muted{color:var(--color-muted);font-weight:650}.tournament-hero-stats{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(86px,1fr))}.tournament-hero-stats div{grid-gap:3px;background:#ffffff12;border-radius:8px;display:grid;gap:3px;justify-items:center;min-height:74px;padding:12px}.tournament-hero-stats strong{color:var(--color-cream);font-size:1.7rem}.tournament-section{margin-bottom:16px;padding:18px}.tournament-section-heading{align-items:baseline;display:flex;gap:14px;justify-content:space-between;margin-bottom:14px}.tournament-section-heading h2{color:var(--color-cream);font-size:1.15rem;margin:0}.tournament-name-field{grid-gap:8px;display:grid;gap:8px}.tournament-name-field span{color:var(--color-muted);font-size:13px;font-weight:850}.tournament-name-field input{background:#ffffff14;border:1px solid #ffeccb2e;border-radius:8px;color:var(--color-cream);font:inherit;min-height:44px;padding:0 12px;width:100%}.tournament-player-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));margin:14px 0}.tournament-player-grid button{background:#ffffff0f;border:1px solid #ffeccb24;border-radius:8px;cursor:pointer;min-height:82px}.tournament-player-grid button.is-selected{border-color:var(--color-gold);box-shadow:0 0 0 2px #ffd66b33}.tournament-player-grid img{height:64px;object-fit:contain;width:64px}.tournament-form-error{color:#ffd2c8;font-weight:750}.tournament-primary-btn{width:100%}.tournament-primary-btn:disabled{cursor:not-allowed;opacity:.55}.tournament-participant-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.tournament-participant-row,.tournament-result-row{grid-gap:8px;align-items:center;background:#ffffff0d;border:1px solid #ffeccb1a;border-radius:8px;display:grid;gap:8px;min-height:52px;min-width:0;padding:8px}.tournament-participant-row{grid-template-columns:32px 40px minmax(0,1fr) auto}.tournament-participant-row.is-eliminated{background:hsla(0,0%,100%,.025);border-color:#ffeccb0f;filter:grayscale(.9) saturate(.35);opacity:.46}.tournament-participant-row.is-eliminated .tournament-participant-name,.tournament-participant-row.is-eliminated .tournament-slot{color:#ffe5c27a}.tournament-participant-row.is-eliminated .tournament-type-badge{background:#ffffff0f;color:#ffe5c27a}.tournament-participant-row.is-user{background:linear-gradient(135deg,#2ec4b629,#ffd66b14),#ffffff0f;border-color:#2ec4b6b8;box-shadow:0 0 0 2px #2ec4b624;filter:none;opacity:1}.tournament-participant-row.is-user .tournament-participant-name,.tournament-participant-row.is-user .tournament-slot{color:var(--color-cream)}.tournament-participant-row.is-user .tournament-type-badge{background:#2ec4b6e6;color:#16110e}.tournament-rank,.tournament-slot{color:var(--color-gold);font-weight:950}.tournament-participant-name,.tournament-result-row strong{color:var(--color-cream);font-weight:850;overflow-wrap:anywhere}.tournament-type-badge{background:#ffffff14;border-radius:999px;color:var(--color-muted);font-size:11px;font-weight:850;padding:4px 7px}.tournament-type-badge.human{background:var(--color-gold);color:#24110a}.tournament-avatar{flex:0 0 auto;object-fit:contain}.tournament-avatar-placeholder{background:linear-gradient(135deg,#ffffff0f,#0000),#ffffff0a;border:1px dashed #ffeccb38;border-radius:8px;display:inline-block}.tournament-avatar-xs{height:28px;width:28px}.tournament-avatar-sm{height:40px;width:40px}.tournament-avatar-md{height:72px;width:72px}.tournament-user-group{grid-gap:14px;display:grid;gap:14px}.tournament-standing-table{grid-gap:6px;display:grid;gap:6px}.tournament-standing-head,.tournament-standing-table>div:not(.tournament-standing-head){grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:56px minmax(0,1fr) 42px 72px;min-height:38px;padding:6px 8px}.tournament-standing-head{color:var(--color-muted);font-size:12px;font-weight:900;text-transform:uppercase}.tournament-standing-table>div:not(.tournament-standing-head){background:#ffffff0d;border-radius:8px}.tournament-standing-table .is-user{outline:1px solid #ffd66b8a}.tournament-standing-table span:nth-child(2){align-items:center;display:flex;gap:8px;min-width:0;overflow-wrap:anywhere}.tournament-match-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.tournament-match-card{background:#ffffff0d;border:1px solid #ffeccb1f;border-radius:8px;padding:12px}.tournament-match-card.is-resolved{border-color:#ffd66b33}.tournament-match-meta{color:var(--color-muted);display:flex;font-size:11px;font-weight:900;justify-content:space-between;text-transform:uppercase}.tournament-match-fighters{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:1fr auto 1fr;margin-top:10px}.tournament-match-fighters>div{grid-gap:4px;display:grid;gap:4px;justify-items:center;min-width:0}.tournament-match-fighters strong{color:var(--color-cream);font-size:.86rem;max-width:100%;overflow-wrap:anywhere;text-align:center}.tournament-match-fighters span{color:var(--color-gold);font-weight:950}.tournament-match-fighters em{color:var(--color-coral);font-style:normal;font-weight:950}.tournament-match-fighters .is-winner{filter:drop-shadow(0 0 10px rgba(255,214,107,.18))}.tournament-match-note{color:var(--color-muted);font-size:12px;margin:8px 0 0;text-align:center}.tournament-bracket-section{overflow-x:auto;padding:14px 10px 10px}.tournament-bracket-scroll{overflow-x:auto;padding:0}.tournament-final-focus{grid-gap:12px;background:radial-gradient(circle at 50% 0,#ffd66b38,#0000 56%),linear-gradient(135deg,#2ec4b61f,#ff775b1f),#231b17f0;border:1px solid #ffd66b57;border-radius:8px;box-shadow:0 14px 30px #0003;display:grid;gap:12px;margin:2px 0 16px;padding:12px}.tournament-final-focus-heading{align-items:center;color:var(--color-gold);display:flex;font-size:.78rem;font-weight:950;gap:10px;justify-content:space-between;letter-spacing:.08em;text-transform:uppercase}.tournament-final-focus-heading strong{color:var(--color-cream);font-size:.78rem}.tournament-final-fighters{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.tournament-final-fighters em{color:var(--color-gold);font-size:.88rem;font-style:normal;font-weight:950}.tournament-final-fighter{grid-gap:8px;align-items:center;background:hsla(0,0%,100%,.055);border:1px solid #ffeccb1f;border-radius:8px;display:grid;gap:8px;grid-template-columns:36px minmax(0,1fr) auto;min-height:54px;min-width:0;padding:8px}.tournament-final-fighter strong{color:var(--color-cream);font-size:.9rem;font-weight:900;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tournament-final-fighter span{color:var(--color-gold);font-size:1rem;font-weight:950}.tournament-final-fighter.is-winner{background:#ffd66b24;border-color:#ffd66b6b}.tournament-final-fighter.is-loser{filter:grayscale(.85) saturate(.5);opacity:.62}.tournament-final-fighter.is-user{border-color:#2ec4b6d6;box-shadow:0 0 0 2px #2ec4b629}.tournament-bracket{height:840px;position:relative;width:390px}.tournament-bracket-phase-label{color:var(--color-gold);font-size:.9rem;font-weight:950;letter-spacing:.04em;position:absolute;text-align:center;text-transform:uppercase;top:0;width:82px}.tournament-bracket-phase-label.is-current-phase{color:var(--color-cream);text-shadow:0 0 12px #ffd66b6b}.tournament-bracket-connectors{height:840px;inset:0;pointer-events:none;position:absolute;width:390px}.tournament-bracket-connector{fill:none;stroke:#ffeccb33;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.tournament-bracket-connector.is-resolved{stroke:#ffd66b7a}.tournament-bracket-connector.is-active{stroke:#2ec4b6a8;stroke-width:3}.tournament-bracket-match{grid-gap:6px;background:linear-gradient(135deg,hsla(0,0%,100%,.055),hsla(0,0%,100%,.025)),#231b17f2;border:1px solid #ffeccb1f;border-radius:8px;color:inherit;cursor:pointer;display:grid;font:inherit;gap:6px;min-height:58px;padding:6px;position:absolute;text-align:left;width:82px;z-index:1}.tournament-bracket-match.is-resolved{border-color:#ffd66b3d}.tournament-bracket-match.is-pending{background:hsla(0,0%,100%,.025);border-style:dashed}.tournament-bracket-match.is-current-phase{background:linear-gradient(135deg,#2ec4b62e,#ffd66b14),#231b17fa;border-color:#2ec4b6eb;box-shadow:0 0 0 2px #2ec4b62e,0 12px 28px #2ec4b61f}.tournament-bracket-match.is-selected{border-color:#ffd66bdb;box-shadow:0 0 0 2px #ffd66b2e,0 14px 30px #00000047;z-index:5}.tournament-bracket-match:focus-visible{outline:2px solid #2ec4b6e0;outline-offset:3px}.tournament-bracket-fighter{grid-gap:7px;align-items:center;background:#ffffff0a;border-radius:6px;display:grid;gap:7px;grid-template-columns:22px minmax(0,1fr);min-height:30px;padding:4px}.tournament-bracket-fighter strong{color:var(--color-gold);font-size:.72rem;line-height:1;text-align:right}.tournament-bracket-fighter.is-empty{opacity:.58}.tournament-bracket-empty-avatar{background:#ffffff0a;border:1px dashed #ffeccb38;border-radius:50%;height:22px;width:22px}.tournament-bracket-fighter.is-winner{background:#ffd66b1f;outline:1px solid #ffd66b47}.tournament-bracket-fighter.is-loser{filter:grayscale(.9) saturate(.4);opacity:.52}.tournament-bracket-fighter.is-user{background:linear-gradient(135deg,#2ec4b638,#ffd66b14),#ffffff0f;box-shadow:0 0 0 3px #2ec4b61f;filter:none;opacity:1;outline:2px solid #2ec4b6c7}.tournament-bracket-fighter.is-user span,.tournament-bracket-fighter.is-user strong{color:var(--color-cream)}.tournament-bracket-tooltip{background:#171311fa;border:1px solid #ffd66b7a;border-radius:8px;box-shadow:0 14px 28px #00000052;left:50%;max-width:240px;min-width:160px;padding:8px;position:absolute;top:calc(100% + 8px);transform:translateX(-50%);z-index:10}.tournament-bracket-tooltip:after{background:#171311fa;border-left:1px solid #ffd66b7a;border-top:1px solid #ffd66b7a;content:"";height:10px;left:50%;position:absolute;top:-6px;transform:translateX(-50%) rotate(45deg);width:10px}.tournament-bracket-tooltip div{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto;min-height:24px}.tournament-bracket-tooltip span{color:var(--color-cream);font-size:.75rem;font-weight:850;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tournament-bracket-tooltip strong{color:var(--color-gold);font-size:.78rem}.tournament-bracket-tooltip .is-winner span,.tournament-bracket-tooltip .is-winner strong{color:var(--color-gold)}.tournament-results{grid-gap:8px;display:grid;gap:8px}.tournament-result-row{grid-template-columns:54px 44px minmax(0,1fr) 80px 128px;min-height:48px;padding-block:4px}.tournament-result-row .tournament-avatar{height:44px;width:44px}.tournament-result-row.is-user{background:linear-gradient(135deg,#2ec4b62b,#ffd66b17),#ffffff0f;border-color:#2ec4b6b8;box-shadow:0 0 0 2px #2ec4b624}.tournament-result-row.is-user .tournament-rank,.tournament-result-row.is-user em,.tournament-result-row.is-user strong{color:var(--color-cream)}.tournament-result-row.is-user span:nth-child(4){color:var(--color-gold)}.tournament-result-row span:nth-child(4){color:var(--color-gold);font-weight:950}.tournament-result-row em{color:var(--color-muted);font-style:normal;font-weight:800}@media (max-width:760px){.tournament-page{padding:12px}.tournament-page-header{justify-content:center;padding-left:0;text-align:center}.tournament-hero{grid-template-columns:1fr}.tournament-section-heading{display:grid}.tournament-result-row{grid-template-columns:48px 64px minmax(0,1fr);min-height:82px;padding-block:8px}.tournament-result-row .tournament-avatar{align-self:center;grid-row:1/4;height:64px;width:64px}.tournament-result-row em,.tournament-result-row span:nth-child(4){grid-column:3}}.tournament-entry-scene{color:var(--color-text);display:grid;min-height:100vh;padding:20px;place-items:center}.tournament-entry-panel{grid-gap:16px;background:#2a201ae6;border:1px solid #ffeccb24;border-radius:8px;box-shadow:0 18px 38px #0000003d;display:grid;gap:16px;padding:18px;width:min(760px,100%)}.tournament-entry-image,.tournament-entry-image-placeholder{border-radius:8px;display:block;max-height:420px;width:100%}.tournament-entry-image{object-fit:cover;object-position:center}.tournament-entry-image-placeholder{background:linear-gradient(135deg,#ffeccb14,#2ec4b614),#120e0c61;border:1px solid #ffeccb1a;height:clamp(220px,52vw,420px)}.tournament-entry-copy{grid-gap:8px;display:grid;gap:8px;text-align:center}.tournament-entry-event,.tournament-entry-support{margin:0}.tournament-entry-event{color:var(--color-cream);font-size:clamp(1.2rem,3vw,1.8rem);font-weight:950}.tournament-entry-support{color:var(--color-muted);font-size:1rem;font-weight:750}.tournament-entry-button{background:linear-gradient(135deg,var(--color-gold),var(--color-coral));border:none;border-radius:8px;color:#24110a;cursor:pointer;font-weight:950;min-height:46px}.tournament-entry-button:disabled{cursor:wait;opacity:.65}@media (max-width:640px){.tournament-entry-panel,.tournament-entry-scene{padding:12px}.tournament-entry-image,.tournament-entry-image-placeholder{max-height:300px}.tournament-entry-image-placeholder{height:clamp(190px,50vw,300px)}}.level-up-page{background:radial-gradient(circle at 15% 0,#2ec4b626,#0000 24rem),radial-gradient(circle at 86% 10%,#ffd66b1f,#0000 22rem),var(--color-ink);color:var(--color-text);min-height:100vh;padding:24px}.level-up-shell{margin:0 auto;width:min(1180px,100%)}.level-up-header{align-items:center;display:flex;justify-content:center;margin-bottom:22px;min-height:74px;position:relative;text-align:center}.level-up-title-block{grid-gap:6px;display:grid;gap:6px;justify-items:center;left:50%;position:absolute;transform:translateX(-50%);width:min(100% - 112px,760px)}.level-up-header h1{color:var(--color-cream);font-size:clamp(1.45rem,3vw,2.2rem);margin:0}.level-up-header p{color:var(--color-muted);font-size:.98rem;font-weight:800;margin:0}.level-up-header .btn-back-inline{left:0;position:absolute}.level-up-grid{grid-gap:18px;display:grid;gap:18px}.level-up-group{grid-gap:12px;display:grid;gap:12px}.level-up-group-heading{align-items:end;display:flex;gap:14px;justify-content:space-between;padding:0 4px}.level-up-group-heading h2{color:var(--color-cream);font-size:1.2rem;margin:0}.level-up-group-heading p{color:var(--color-muted);font-size:.9rem;font-weight:800;margin:4px 0 0}.level-up-section{grid-gap:12px;background:#16120f6b;border:1px solid #ffe5c224;border-radius:8px;display:grid;gap:12px;padding:14px}.level-up-section-header{align-items:center;display:flex;gap:12px;justify-content:space-between}.level-up-section-header h2{color:var(--color-cream);font-size:1rem;margin:0}.level-up-section-header p{color:var(--color-muted);font-size:.82rem;font-weight:800;margin:3px 0 0}.level-up-section-header>span{background:#ffe5c21a;border-radius:999px;color:var(--color-gold);font-size:.84rem;font-weight:900;min-width:38px;padding:6px 10px;text-align:center}.level-up-section-empty{border:1px dashed #ffe5c229;border-radius:8px;color:var(--color-muted);font-size:.9rem;font-weight:800;padding:16px}.level-up-list{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.level-up-card-preview{grid-gap:9px;background:#2a201ad6;border:1px solid #ffe5c229;border-radius:8px;color:var(--color-text);cursor:pointer;display:grid;font:inherit;gap:9px;min-height:82px;padding:0 12px 11px;position:relative;text-align:left;width:100%}.level-up-card-gold{background:linear-gradient(135deg,#ffd66b2e,#2a201ac7),#2a201ad6;border-color:#ffd66b57}.level-up-card-blue{background:linear-gradient(135deg,#2ec4b62e,#202d40b8),#202d40b8;border-color:#2ec4b65c}.level-up-card-red{background:linear-gradient(135deg,#ff775b2e,#371c20bd),#371c20bd;border-color:#ff775b61}.level-up-card-preview.is-readonly{cursor:default}.level-up-card-preview.selected{border-color:#2ec4b6b8;box-shadow:0 0 0 3px #2ec4b61a}.level-up-card-level{border:1px solid #ffd66b66;border-radius:999px;color:var(--color-gold);font-size:12px;font-weight:900;line-height:1;min-width:42px;padding:4px 7px;text-align:center}.level-up-card-caption{align-items:center;background:#100e0d3d;border-bottom:1px solid #ffe5c224;display:flex;gap:10px;justify-content:space-between;margin:0 -12px;min-height:33px;min-width:0;padding:8px 11px}.level-up-card-note{color:var(--color-cream);font-size:12px;font-weight:900;line-height:1.1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.level-up-card-caption-meta,.level-up-card-score{align-items:center;display:inline-flex}.level-up-card-caption-meta{flex:0 0 auto;gap:7px}.level-up-card-score{font-feature-settings:"tnum";color:var(--color-gold);font-size:12px;font-variant-numeric:tabular-nums;font-weight:900;gap:4px}.level-up-card-answer{color:var(--color-cream);display:block;font-size:.92rem;font-weight:800;line-height:1.3;max-height:44px;overflow:hidden}.level-up-empty{background:#2a201ad6;border:1px solid #ffe5c229;border-radius:8px;color:var(--color-muted);padding:30px}.level-up-modal-overlay{align-items:flex-start;background:#000000b8;display:flex;inset:0;justify-content:center;overflow-y:auto;overscroll-behavior:contain;padding:20px;position:fixed;z-index:1000}.level-up-modal-content{background:#2a2a2a;border-radius:8px;box-shadow:0 20px 50px #00000073;display:flex;flex-direction:column;margin:auto 0;max-height:calc(100dvh - 40px);overflow:hidden;width:min(620px,100%)}.level-up-modal-header{align-items:center;background:#333;border-bottom:1px solid #404040;display:flex;gap:16px;justify-content:space-between;padding:18px 20px}.level-up-modal-header h2{color:#f4eadb;font-size:1.25rem;margin:0}.level-up-modal-header p{color:var(--color-gold);font-size:.86rem;font-weight:900;margin:4px 0 0}.level-up-modal-close{background:none;border:0;color:#e0e0e0;cursor:pointer;font-size:28px;line-height:1}.level-up-modal-content>.flashcard-form-container{-webkit-overflow-scrolling:touch;border-radius:0;box-shadow:none;flex:1 1;margin:0;max-width:none;min-height:0;overflow-y:auto;overscroll-behavior:contain;width:100%}.level-up-empty h2{color:var(--color-cream);margin:0 0 8px}.level-up-empty p{margin:0}@media (max-width:820px){.level-up-page{padding:16px}.level-up-header{align-items:center}.level-up-group-heading,.level-up-section-header{align-items:start}.level-up-modal-overlay{padding:10px}.level-up-modal-content{max-height:calc(100dvh - 20px)}}.triumph-page{color:var(--color-text);margin:0 auto;max-width:980px;padding:20px 18px 56px;width:100%}.triumph-page-header{align-items:center;display:flex;justify-content:center;margin-bottom:18px;min-height:74px;position:relative;text-align:center}.triumph-page-header .btn-back-inline{left:0;position:absolute;z-index:1}.triumph-title-block{left:50%;position:absolute;text-align:center;transform:translateX(-50%);width:min(100% - 112px,720px)}.page-title-triumph{margin:0}.triumph-title-block p{color:var(--color-muted);font-weight:700;margin:6px 0 0}.triumph-locked{grid-gap:14px;background:linear-gradient(135deg,#2ec4b614,#ffd66b14),#2a201adb;border:1px solid #ffd66b3d;border-radius:8px;color:#ffeccbc2;display:grid;gap:14px;justify-items:center;min-height:360px;padding:42px 22px;text-align:center}.triumph-locked h2{color:var(--color-cream);margin:0}.triumph-locked p{color:var(--color-muted);font-weight:650;margin:0;max-width:380px}.triumph-stats-table-wrap{background:linear-gradient(135deg,#1c4e60b3,#2c261edb),#1c1c1ce6;border:1px solid #2ec4b63d;border-radius:8px;box-shadow:inset 0 1px 0 #ffffff0d;margin-bottom:16px;overflow:hidden}.triumph-stats-table{border-collapse:collapse;color:var(--color-cream);min-width:0;table-layout:fixed;width:100%}.triumph-stats-table td,.triumph-stats-table th{border-bottom:1px solid #ffeccb1a;font-weight:850;padding:12px 10px;text-align:right}.triumph-stats-table th:first-child{text-align:center;width:44px}.triumph-stats-row-icon{background:#1111113d;border:1px solid #ffd66b38;border-radius:8px;color:#ffd66b;display:inline-grid;height:28px;place-items:center;width:28px}.triumph-stats-table thead th{background:#11111140;color:#ffd66b;font-size:12px;letter-spacing:.06em;text-transform:uppercase}.triumph-stats-table tbody th{color:#ffeccbb3}.triumph-stats-table td{color:#f7fbff;font-size:1.05rem;overflow-wrap:anywhere}.triumph-stats-table tr:last-child td,.triumph-stats-table tr:last-child th{border-bottom:0}.triumph-board{background:#2a201adb;border:1px solid #ff7a593d;border-radius:8px;padding:16px}.triumph-toolbar{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:minmax(180px,1fr) auto auto auto;margin-bottom:14px}.triumph-search{align-items:center;background:#1111118f;border:1px solid #ffeccb2e;border-radius:8px;display:flex;gap:8px;padding:10px 12px}.triumph-search input{background:#0000;border:0;color:var(--color-cream);font:inherit;outline:0;width:100%}.triumph-search input::placeholder{color:#ffeccb80}.triumph-filter-button,.triumph-pagination button,.triumph-review-button,.triumph-toolbar select{background:#231a15eb;border:1px solid #ffeccb2e;border-radius:8px;color:var(--color-cream);font:inherit;font-weight:800;min-height:42px}.triumph-filter-button,.triumph-pagination button,.triumph-review-button{align-items:center;cursor:pointer;display:inline-flex;gap:7px;justify-content:center;padding:0 13px}.triumph-filter-button.active{border-color:#ffd66b8c;color:#ffd66b}.triumph-review-button{background:linear-gradient(135deg,#36c9c6,#4b79ff);border-color:#0000;color:#f7fbff}.triumph-favorite-button:disabled,.triumph-pagination button:disabled,.triumph-review-button:disabled{cursor:not-allowed;opacity:.5}.triumph-card-list{grid-gap:10px;display:grid;gap:10px}.triumph-card-row{grid-gap:12px;align-items:center;background:linear-gradient(135deg,#ffd66b14,#2ec4b60f),#181412e6;border:1px solid #ffd66b2e;border-radius:8px;display:grid;gap:12px;grid-template-columns:54px minmax(0,1fr) 42px;min-height:108px;padding:12px}.triumph-card-stamp{filter:drop-shadow(0 5px 10px rgba(0,0,0,.28));height:52px;object-fit:contain;opacity:.82;width:52px}.triumph-card-copy{min-width:0}.triumph-card-back,.triumph-card-front{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.triumph-card-front{color:var(--color-cream);font-weight:850}.triumph-card-back{color:#ffeccbb8;font-size:.94rem;margin-top:5px}.triumph-card-reading-title{white-space:nowrap}.triumph-card-reading-preview{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;line-height:1.35;max-height:2.7em;overflow:hidden;text-overflow:ellipsis;white-space:normal}.triumph-card-reading-preview .markdown-text{display:inline}.triumph-card-meta{color:#ffd66bd1;display:flex;flex-wrap:wrap;font-size:11px;font-weight:850;gap:8px;letter-spacing:.04em;margin-top:10px;text-transform:uppercase}.triumph-favorite-button{background:#231a15eb;border:1px solid #ffeccb2e;border-radius:999px;color:#ffeccba6;cursor:pointer;height:42px;width:42px}.triumph-favorite-button.active{border-color:#ff7a897a;color:#ff7a89}.triumph-empty-results{color:var(--color-muted);font-weight:750;padding:32px 12px;text-align:center}.triumph-pagination{align-items:center;color:var(--color-muted);display:flex;font-weight:850;gap:12px;justify-content:center;margin-top:16px}@media (max-width:760px){.triumph-page{padding:16px 12px 42px}.triumph-toolbar{grid-template-columns:1fr 1fr}.triumph-review-button,.triumph-search{grid-column:1/-1}}@media (max-width:460px){.triumph-stats-table td,.triumph-stats-table th{padding:10px 5px}.triumph-stats-table th:first-child{width:36px}.triumph-stats-row-icon{border-radius:7px;height:24px;width:24px}.triumph-stats-table thead th{font-size:10px;letter-spacing:.02em}.triumph-stats-table td{font-size:.9rem}.triumph-card-row{grid-template-columns:42px minmax(0,1fr)}.triumph-card-stamp{height:40px;width:40px}.triumph-favorite-button{grid-column:2;justify-self:end}}.preset-detail-page,.preset-library-page{color:var(--color-text);margin:0 auto;max-width:1180px;width:100%}.preset-library-header{grid-gap:14px;align-items:center;border-bottom:1px solid var(--color-line);display:grid;gap:14px;grid-template-columns:44px minmax(0,1fr) auto;padding:12px 0 24px}.preset-detail-copy h1,.preset-library-header h1{letter-spacing:0;margin:0}.preset-library-header h1{font-size:1.75rem}.preset-library-header p{color:var(--color-muted);font-size:.92rem;margin:5px 0 0}.preset-library-icon-button{background:var(--color-surface);border:1px solid var(--color-line);border-radius:6px;color:var(--color-text);cursor:pointer;display:inline-grid;height:42px;padding:0;place-items:center;width:42px}.preset-library-icon-button:hover{border-color:var(--color-gold);color:var(--color-gold)}.preset-library-filter,.preset-library-locale{grid-gap:5px;color:var(--color-muted);display:grid;font-size:.72rem;font-weight:800;gap:5px;text-transform:uppercase}.preset-library-filter select,.preset-library-locale select{background:var(--color-surface);border:1px solid var(--color-line);border-radius:6px;color:var(--color-text);font:inherit;font-size:.9rem;min-height:40px;padding:0 34px 0 11px;text-transform:none}.preset-library-toolbar{grid-gap:12px;display:grid;gap:12px;grid-template-columns:minmax(240px,1fr) 190px;padding:18px 0 8px}.preset-library-search{align-items:center;background:#231d1b;border:1px solid var(--color-line);border-radius:6px;color:var(--color-muted);display:flex;gap:9px;min-height:44px;padding:0 13px}.preset-library-search:focus-within{border-color:var(--color-teal)}.preset-library-search input{background:#0000;border:0;color:var(--color-text);font:inherit;min-width:0;outline:0;width:100%}.preset-library-search input::placeholder{color:#947f70}.preset-library-content{grid-gap:30px;display:grid;gap:30px;padding:24px 0 48px}.preset-library-shelf{min-width:0}.preset-library-shelf-heading{align-items:baseline;display:flex;gap:9px;margin-bottom:12px}.preset-library-shelf-heading h2{font-size:1.12rem;letter-spacing:0;margin:0}.preset-library-shelf-heading span{color:var(--color-muted);font-size:.76rem}.preset-library-row{grid-gap:14px;display:grid;gap:14px;grid-auto-columns:148px;grid-auto-flow:column;overflow-x:auto;overscroll-behavior-inline:contain;padding:2px 2px 14px;scrollbar-color:#6d5a4b #0000;scrollbar-width:thin}.preset-library-item{background:#0000;border:0;color:inherit;cursor:pointer;display:grid;min-width:0;padding:0;text-align:left}.preset-library-cover{aspect-ratio:2/3;background:#2a201a;border:1px solid #ffe5c238;border-radius:6px;box-shadow:0 9px 24px #00000047;display:block;overflow:hidden;position:relative;width:148px}.preset-detail-cover-wrap img,.preset-library-cover img{height:100%;object-fit:cover;width:100%}.preset-detail-cover-wrap img.is-fallback,.preset-library-cover img.is-fallback{object-fit:cover;opacity:.92}.preset-library-item:hover .preset-library-cover{border-color:var(--color-gold);transform:translateY(-2px)}.preset-library-item:focus-visible{outline:2px solid var(--color-teal);outline-offset:4px}.preset-library-installed{align-items:center;background:#0a302af5;border:1px solid #97f6e294;border-radius:4px;box-shadow:0 3px 12px #00000061;color:#a0f6e6;display:inline-flex;font-size:.67rem;font-weight:900;gap:4px;padding:5px 8px;position:absolute;right:7px;top:7px}.preset-library-item-title{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;font-size:.9rem;font-weight:800;line-height:1.3;margin-top:9px;min-height:38px;overflow:hidden}.preset-library-item-meta{color:var(--color-muted);font-size:.7rem;margin-top:3px}.preset-library-state{color:var(--color-muted);display:grid;min-height:280px;padding:40px 20px;place-items:center;text-align:center}.preset-library-state p{margin:0 0 14px}.preset-library-state button{background:var(--color-surface);border:1px solid var(--color-line);border-radius:6px;color:var(--color-text);cursor:pointer;min-height:40px;padding:0 16px}.preset-library-error{color:#ffb6a2}.preset-library-license{color:var(--color-muted);font-size:.75rem;padding:0 0 42px;text-align:center}.preset-detail-page{padding-bottom:56px}.preset-detail-back{align-items:center;background:#0000;border:0;color:var(--color-muted);cursor:pointer;display:inline-flex;font:inherit;font-weight:700;gap:7px;margin:8px 0 20px;min-height:40px;padding:0 10px}.preset-detail-back:hover{color:var(--color-gold)}.preset-detail-main{grid-gap:42px;align-items:start;display:grid;gap:42px;grid-template-columns:minmax(210px,300px) minmax(0,1fr);padding:8px 0 44px}.preset-detail-cover-wrap{aspect-ratio:2/3;background:var(--color-surface);border:1px solid #ffe5c238;border-radius:7px;box-shadow:0 18px 45px #00000052;overflow:hidden;width:100%}.preset-detail-copy{padding-top:10px}.preset-detail-kicker{color:var(--color-teal);font-size:.78rem;font-weight:900;margin-bottom:9px;text-transform:uppercase}.preset-detail-copy h1{font-size:2.35rem;line-height:1.12;max-width:760px}.preset-detail-description{color:#e0cbb6;font-size:1rem;line-height:1.7;margin:18px 0;max-width:760px}.preset-detail-facts{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 25px}.preset-detail-facts span,.preset-detail-tags span{align-items:center;background:#231d1b;border:1px solid var(--color-line);border-radius:5px;color:var(--color-muted);display:inline-flex;font-size:.76rem;font-weight:750;gap:6px;min-height:31px;padding:0 9px}.preset-detail-recommendation{border-bottom:1px solid var(--color-line);border-top:1px solid var(--color-line);max-width:720px;padding:18px 0}.preset-detail-preview h2,.preset-detail-recommendation h2{font-size:1rem;margin:0}.preset-detail-recommendation ul{color:#dbc2aa;line-height:1.55;margin:10px 0 0;padding-left:20px}.preset-detail-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.preset-detail-tags span{border-color:#ff7a5959;color:#ffad98}.preset-detail-import{align-items:center;background:var(--color-gold);border:1px solid #ffd66b;border-radius:6px;color:#24180d;cursor:pointer;display:inline-flex;font:inherit;font-weight:900;gap:8px;justify-content:center;margin-top:26px;min-height:46px;min-width:170px;padding:0 20px}.preset-detail-import:disabled{cursor:default}.preset-detail-import.is-installed{background:#173a35;border-color:#2ec4b673;color:#8df0df}.preset-detail-error{color:#ffad98;margin-top:18px}.preset-detail-preview{grid-gap:28px;border-top:1px solid var(--color-line);display:grid;gap:28px;grid-template-columns:200px minmax(0,1fr);padding:32px 0 0}.preset-detail-preview>div:first-child p{color:var(--color-muted);font-size:.82rem;margin:7px 0 0}.preset-detail-preview-list{grid-gap:9px;display:grid;gap:9px}.preset-detail-preview-card{grid-gap:12px;background:#241d1a;border:1px solid var(--color-line);border-radius:6px;display:grid;gap:12px;grid-template-columns:34px minmax(0,1fr);min-height:74px;padding:13px}.preset-detail-preview-card>span{color:var(--color-coral);font-size:.72rem;font-weight:900}.preset-detail-preview-card p{line-height:1.45;margin:0}.preset-detail-preview-card p+p{color:var(--color-muted);margin-top:5px}.preset-detail-preview-card small{color:var(--color-teal);display:block;font-weight:800;margin-bottom:5px}@media (max-width:720px){.preset-library-header{grid-template-columns:42px minmax(0,1fr)}.preset-library-locale{grid-column:2;width:min(210px,100%)}.preset-library-toolbar{grid-template-columns:1fr}.preset-library-row{grid-auto-columns:132px}.preset-library-cover{width:132px}.preset-detail-main{gap:20px;grid-template-columns:1fr}.preset-detail-cover-wrap{margin:0 auto;width:142px}.preset-detail-copy h1{font-size:1.55rem}.preset-detail-description{font-size:.9rem}.preset-detail-facts{gap:5px}.preset-detail-import{min-width:0;width:100%}.preset-detail-preview{gap:16px;grid-template-columns:1fr}}.grade-summary{background:linear-gradient(135deg,#ffd66b14,#ff7a590d),#2a201ad6;border:1px solid var(--color-line);border-radius:8px;box-shadow:0 12px 28px #00000029;margin-top:32px;padding:24px}.grade-summary-title{color:var(--color-cream);font-size:20px;font-weight:850;margin:0 0 16px}.grade-histogram{display:flex;flex-direction:column;gap:8px}.grade-histogram-row{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:68px 1fr 36px}.grade-histogram-label{color:var(--color-muted);font-size:13px;font-weight:650;text-align:right;white-space:nowrap}.grade-histogram-track{background:#171311c7;border:1px solid #ffe5c214;border-radius:4px;height:18px;overflow:hidden}.grade-histogram-bar{border-radius:4px;height:100%;min-width:3px;transition:width .4s ease}.grade-histogram-count{color:var(--color-cream);font-size:13px;font-weight:700;text-align:right}@media (max-width:480px){.grade-summary{padding:16px}.grade-summary-title{font-size:18px}.grade-histogram-row{gap:8px;grid-template-columns:58px 1fr 30px}.grade-histogram-label{font-size:12px}.grade-histogram-track{height:14px}.grade-histogram-count{font-size:12px}}.repeat-summary{background:linear-gradient(135deg,#2ec4b612,#ffd66b0f),#2a201ad6;border:1px solid var(--color-line);border-radius:8px;box-shadow:0 12px 28px #00000029;margin-top:32px;padding:24px}.repeat-summary-title{color:var(--color-cream);font-size:20px;font-weight:850;margin:0 0 16px}.repeat-histogram{display:flex;flex-direction:column;gap:8px}.repeat-histogram-row{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:80px 1fr 36px}.repeat-histogram-label{color:var(--color-muted);font-size:12px;font-weight:650;text-align:right;white-space:nowrap}.repeat-histogram-track{background:#171311c7;border:1px solid #ffe5c214;border-radius:4px;height:18px;overflow:hidden}.repeat-histogram-bar{border-radius:4px;height:100%;min-width:3px;transition:width .4s ease}.repeat-histogram-count{color:var(--color-cream);font-size:13px;font-weight:700;text-align:right}@media (max-width:480px){.repeat-summary{padding:16px}.repeat-summary-title{font-size:18px}.repeat-histogram-row{gap:8px;grid-template-columns:64px 1fr 30px}.repeat-histogram-label{font-size:11px}.repeat-histogram-track{height:14px}.repeat-histogram-count{font-size:12px}}.note-stats-panel{background:linear-gradient(135deg,#2ec4b614,#ff7a590f),#231b17e6;border:1px solid var(--color-line);border-radius:8px;box-shadow:0 16px 34px #0000002e;margin:0 auto 28px;max-width:900px;padding:18px}.note-stats-panel-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:16px}.note-stats-panel-title{color:var(--color-gold);font-size:14px;font-weight:900;letter-spacing:.04em;margin:0;text-transform:uppercase}.note-stats-panel-subtitle{color:var(--color-cream);font-size:18px;font-weight:850;line-height:1.25;margin:4px 0 0}.note-stats-summary-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.note-stats-stat{grid-gap:7px;align-content:center;background:linear-gradient(135deg,#2ec4b633,#ffd66b14),#2a201a;border:1px solid #ffeccb1f;border-radius:8px;box-shadow:0 10px 22px #0000002e;display:grid;gap:7px;justify-items:center;min-height:116px;min-width:0;padding:14px 12px;text-align:center}.note-stats-stat-icon{color:var(--color-gold);filter:drop-shadow(0 2px 7px rgba(255,214,107,.22))}.note-stats-stat-label{color:#ffffffe0;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.note-stats-stat-value{color:#fff;font-size:clamp(30px,8vw,46px);font-weight:900;line-height:1;overflow-wrap:anywhere;text-shadow:0 2px 4px #0000004d}.note-stats-stat-sub{color:var(--color-muted);font-size:13px;font-weight:750;margin-left:3px}.note-stats-chart-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px}.note-stats-chart-grid .grade-summary,.note-stats-chart-grid .repeat-summary{margin-top:0;padding:18px}.note-stats-chart-grid .grade-summary-title,.note-stats-chart-grid .repeat-summary-title{font-size:17px}@media (max-width:720px){.note-stats-panel{padding:14px}.note-stats-chart-grid{gap:8px}.note-stats-chart-grid,.note-stats-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:480px){.note-stats-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.note-stats-panel-subtitle{font-size:16px}.note-stats-stat{gap:6px;min-height:78px;padding:10px 8px}.note-stats-stat-value{font-size:28px}.note-stats-stat-label{font-size:10px}.note-stats-chart-grid{gap:6px}.note-stats-chart-grid .grade-summary,.note-stats-chart-grid .repeat-summary{padding:10px 8px}.note-stats-chart-grid .grade-summary-title,.note-stats-chart-grid .repeat-summary-title{font-size:13px;margin-bottom:10px}.note-stats-chart-grid .grade-histogram,.note-stats-chart-grid .repeat-histogram{gap:6px}.note-stats-chart-grid .grade-histogram-row,.note-stats-chart-grid .repeat-histogram-row{gap:5px;grid-template-columns:16px minmax(0,1fr) 22px}.note-stats-chart-grid .grade-histogram-count,.note-stats-chart-grid .grade-histogram-label,.note-stats-chart-grid .repeat-histogram-count,.note-stats-chart-grid .repeat-histogram-label{font-size:10px}.note-stats-chart-grid .grade-histogram-track,.note-stats-chart-grid .repeat-histogram-track{height:12px}}.cover-upload-widget{margin-bottom:16px;width:100%}.cover-upload-widget.is-uploading,.cover-upload-widget.is-uploading *{cursor:wait}.cover-source-tabs{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}.cover-source-tab{background:#f7f7f7;border:1px solid #ddd;border-radius:6px;color:#555;cursor:pointer;font-size:13px;font-weight:700;padding:10px 12px;transition:all .2s ease}.cover-btn.disabled,.cover-btn:disabled,.cover-gallery-tile:disabled,.cover-source-tab:disabled{opacity:.58;pointer-events:none}.cover-source-tab.active{background:#2196f3;border-color:#2196f3;color:#fff}.cover-upload-area{align-items:center;background-color:#f5f5f5;border:2px dashed #ddd;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:8px;justify-content:center;padding:32px 16px;transition:all .2s ease}.cover-upload-area:hover{background-color:#e8f4fd;border-color:#2196f3}.cover-upload-icon{font-size:32px}.cover-upload-text{color:#555;font-size:14px;font-weight:600}.cover-upload-hint{color:#999;font-size:12px}.cover-file-input{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.cover-preview-container{background-color:#f5f5f5;border-radius:8px;overflow:hidden;position:relative}.cover-preview-image{border-radius:8px;display:block;max-height:240px;object-fit:cover;width:100%}.cover-gallery-panel{margin-top:12px}.cover-gallery-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));max-height:320px;overflow-y:auto;padding:2px}.cover-gallery-tile{background:#f5f5f5;border:2px solid #0000;border-radius:8px;color:#555;cursor:pointer;display:flex;flex-direction:column;gap:6px;min-width:0;padding:6px;text-align:left;transition:all .2s ease}.cover-gallery-tile.active,.cover-gallery-tile:hover{background:#e8f4fd;border-color:#2196f3}.cover-gallery-thumbnail{aspect-ratio:4/3;background:#ddd;border-radius:6px;display:block;object-fit:cover;width:100%}.cover-gallery-name{color:inherit;font-size:11px;font-weight:700;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cover-gallery-state{background:#f7f7f7;border:1px dashed #ddd;border-radius:8px;color:#777;font-size:13px;padding:20px 12px;text-align:center}.cover-preview-actions{display:flex;gap:8px;justify-content:center;padding:12px 0 4px}.cover-btn{border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;padding:6px 16px;text-align:center;transition:all .2s ease}.cover-btn:hover{box-shadow:0 2px 4px #00000026;transform:translateY(-1px)}.cover-btn:active{transform:translateY(0)}.cover-btn-change{background-color:#2196f3;color:#fff}.cover-btn-change:hover{background-color:#1976d2}.cover-btn-remove{background-color:#f5f5f5;color:#666}.cover-btn-remove:hover{background-color:#ffebee;color:#d32f2f}.cover-error{align-items:center;background-color:#ffebee;border-left:3px solid #d32f2f;border-radius:4px;color:#c62828;display:flex;font-size:13px;gap:6px;margin-top:8px;padding:8px 12px}.cover-error-icon{flex-shrink:0;font-size:14px}.cover-error-text{flex:1 1;line-height:1.4}@media (max-width:600px){.cover-upload-area{padding:24px 12px}.cover-preview-image{max-height:180px}.cover-btn{font-size:12px;padding:6px 12px}.cover-gallery-grid{gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));max-height:260px}}.cover-upload-progress{grid-gap:8px;background:#e8f4fd;border:1px solid #2196f338;border-radius:8px;color:#1c5f93;display:grid;font-size:13px;gap:8px;margin-top:10px;padding:10px 12px}.cover-upload-progress-row{align-items:center;display:flex;font-weight:700;gap:12px;justify-content:space-between}.cover-upload-progress-track{background:#2196f329;border-radius:999px;height:8px;overflow:hidden}.cover-upload-progress-fill{background:linear-gradient(90deg,#2196f3,#2ec4b6);border-radius:inherit;height:100%;transition:width .18s ease}.cancel-button:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.note-composer-page{background:#171817;color:#f4f1e8;min-height:100dvh;padding:28px 20px 56px}.note-composer-header,.note-composer-main{margin:0 auto;width:min(980px,100%)}.note-composer-header{align-items:center;display:flex;gap:14px;margin-bottom:26px}.composer-modal-header h2,.note-composer-fields h2,.note-composer-header h1{letter-spacing:0;margin:0}.note-composer-header h1{font-size:clamp(1.65rem,4vw,2.2rem)}.composer-modal-kicker,.note-composer-eyebrow{color:#d4a92d;font-size:.73rem;font-weight:800;letter-spacing:0;margin-bottom:4px;text-transform:uppercase}.composer-icon-button{background:#252724;border:1px solid #4a4c48;border-radius:50%;color:#f4f1e8;cursor:pointer;display:inline-grid;flex:0 0 auto;height:44px;place-items:center;width:44px}.composer-icon-button:hover:not(:disabled){border-color:#3ba9a2;color:#65d1ca}.note-composer-fields{border-bottom:1px solid #464940;border-top:1px solid #464940;padding:24px 0 28px}.note-composer-fields h2{color:#c7c8c2;font-size:1rem;margin-bottom:18px}.note-composer-field{grid-gap:8px;display:grid;gap:8px;margin-bottom:18px}.composer-builder-editor label,.composer-preview-label,.composer-type-selector legend,.note-composer-field label{color:#c8cac5;font-size:.83rem;font-weight:700}.composer-builder-editor textarea,.note-composer-field input,.note-composer-field textarea{background:#222421;border:1px solid #52564f;border-radius:6px;box-sizing:border-box;color:#f5f2e9;font-size:1rem;width:100%}.note-composer-field input{min-height:48px;padding:11px 13px}.note-composer-field input[readonly]{background:#1d1f1c;color:#b8bbb4}.composer-builder-editor textarea,.note-composer-field textarea{font-family:Consolas,Courier New,monospace;line-height:1.6;padding:14px;resize:vertical}.note-composer-field textarea{min-height:420px}.composer-builder-editor textarea{height:100%;min-height:390px}.composer-builder-editor textarea:focus,.note-composer-field input:focus,.note-composer-field textarea:focus{border-color:#0000;outline:2px solid #3ba9a2;outline-offset:1px}.note-composer-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.composer-button,.composer-tool-button{align-items:center;background:#282a27;border:1px solid #51554e;border-radius:6px;color:#ece9e0;cursor:pointer;display:inline-flex;font:inherit;font-weight:700;gap:8px;justify-content:center;min-height:42px;padding:9px 14px;text-decoration:none}.composer-button.secondary:hover:not(:disabled),.composer-tool-button:hover{background:#313430;border-color:#7c8177}.composer-tool-button.primary-tool{border-color:#337d78;color:#80ddd7}.note-composer-guidance{color:#9fa39a;font-size:.9rem;margin:10px 0 20px}.composer-modal-actions,.note-composer-page-actions{display:flex;gap:10px;justify-content:flex-end}.composer-button.primary{background:#247c77;border-color:#3ba9a2;color:#fff}.composer-button.primary:hover:not(:disabled){background:#2b918a}.composer-button:disabled{cursor:not-allowed;opacity:.55}.composer-page-error,.composer-preview-error{background:#33231f;border-left:3px solid #cf765d;color:#ffd2c5;line-height:1.45;margin:14px 0;padding:12px 14px}.composer-modal-overlay{background:#080908d1;display:grid;inset:0;padding:18px;place-items:center;position:fixed;z-index:1600}.composer-builder-dialog,.composer-confirm-dialog{background:#1d1f1c;border:1px solid #585c54;border-radius:8px;box-shadow:0 20px 60px #00000073;display:flex;flex-direction:column;max-height:calc(100dvh - 36px);overflow:hidden;width:min(1050px,100%)}.composer-confirm-dialog{width:min(860px,100%)}.composer-modal-header{align-items:flex-start;border-bottom:1px solid #41443e;display:flex;gap:16px;justify-content:space-between;padding:20px 22px 16px}.composer-modal-header h2{font-size:1.35rem}.composer-modal-header p{color:#aeb1aa;margin:6px 0 0}.composer-type-selector{border:0;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:16px 22px}.composer-type-selector legend{margin-bottom:8px}.composer-type-selector label{align-items:center;border:1px solid #50544d;border-radius:6px;color:#bfc2bb;cursor:pointer;display:inline-flex;min-height:40px;padding:8px 12px;position:relative}.composer-type-selector label.selected{background:#1d302e;border-color:#3ba9a2;color:#72d8d1}.composer-type-selector input{opacity:0;pointer-events:none;position:absolute}.composer-builder-workspace{grid-gap:18px;display:grid;flex:1 1;gap:18px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0;overflow:auto;padding:0 22px 18px}.composer-builder-editor,.composer-builder-preview{display:flex;flex-direction:column;gap:8px;min-width:0}.composer-builder-preview{min-height:390px}.composer-preview-waiting{border:1px dashed #4c5049;color:#90958b;display:grid;min-height:200px;place-items:center}.composer-preview-error{align-items:flex-start;display:flex;gap:9px}.composer-modal-actions{border-top:1px solid #41443e;padding:14px 22px 18px}.composer-dialog-preview,.composer-qa-preview,.composer-reading-preview{background:#eef0ed;border:1px solid #c5c9c4;border-radius:8px;color:#222520;min-height:250px;overflow:hidden;position:relative}.composer-qa-preview{align-items:center;cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:14px;justify-content:center;padding:38px 24px 28px;width:100%}.composer-qa-preview.compact{min-height:190px}.composer-preview-side{color:#247c77;font-weight:900;left:14px;position:absolute;top:13px}.composer-preview-flip-icon{bottom:12px;color:#697067;position:absolute;right:14px}.composer-qa-text{font-size:1.25rem;line-height:1.45;text-align:center}.composer-qa-memo{border-top:1px solid #c8cbc6;color:#62675f;padding-top:12px;text-align:center;width:100%}.composer-reading-preview-heading{align-items:center;background:#e2e6e1;border-bottom:1px solid #c7cbc6;display:flex;gap:8px;padding:14px 16px}.composer-reading-preview-heading h3{font-size:1.05rem;letter-spacing:0;margin:0}.composer-dialog-content,.composer-reading-preview-body{max-height:330px;overflow-y:auto;padding:18px}.composer-article-paragraph{line-height:1.6;margin-bottom:14px}.composer-dialog-scene{color:#676d64;font-size:.84rem;margin:4px 0 14px;text-align:center}.composer-dialog-story{background:#fff;border-left:3px solid #d4a92d;line-height:1.5;margin:12px 0;padding:10px 12px}.composer-dialog-row{display:flex;margin:10px 0}.composer-dialog-row.speaker-b{justify-content:flex-end}.composer-dialog-bubble{background:#d9e9e6;border-radius:8px 8px 8px 2px;max-width:78%;padding:10px 12px}.composer-dialog-row.speaker-b .composer-dialog-bubble{background:#f1dda2;border-radius:8px 8px 2px 8px}.composer-dialog-row.display-only .composer-dialog-bubble{background:#d8d9d6;color:#646861}.composer-dialog-speaker{color:#4f5750;display:block;font-size:.7rem;font-weight:800;margin-bottom:4px}.composer-dialog-answer{border-top:1px solid #2d363033;font-weight:700;margin-top:8px;padding-top:8px}.composer-confirm-list{min-height:0;overflow-y:auto;padding:18px 22px}.composer-confirm-list .flashcard-map{padding:0}.composer-confirm-list .flashcard-map-grid{margin:0}.composer-confirm-item{min-width:0;position:relative}.composer-confirm-item-number,.composer-confirm-item-type{font-size:.7rem;font-weight:900;position:absolute;top:10px;z-index:2}.composer-confirm-item-number{background:#247c77;border-radius:50%;color:#fff;display:grid;height:23px;left:12px;place-items:center;width:23px}.composer-confirm-item-type{color:#5d635b;right:12px;text-transform:uppercase}.composer-confirm-item .composer-reading-preview-heading{padding-top:39px}.composer-spin{animation:composer-spin .8s linear infinite}.note-composer-loading{display:grid;min-height:60dvh;place-items:center}@keyframes composer-spin{to{transform:rotate(1turn)}}@media (max-width:760px){.note-composer-page{padding:18px 12px 36px}.note-composer-field textarea{min-height:52dvh}.composer-modal-overlay{padding:0}.composer-builder-dialog,.composer-confirm-dialog{border:0;border-radius:0;height:100dvh;max-height:100dvh;width:100%}.composer-builder-workspace{grid-template-columns:1fr}.composer-builder-editor textarea,.composer-builder-preview{min-height:300px}.note-composer-page-actions .composer-button{flex:1 1}}.App{background:radial-gradient(circle at 18% 0,#ffd66b1f,#0000 26rem),radial-gradient(circle at 95% 12%,#ff7a591a,#0000 28rem),var(--color-ink);display:flex;flex-direction:column;min-height:100vh}.App,.App-header{color:var(--color-text)}.App-header{background:#171311db;border-bottom:1px solid var(--color-line);box-shadow:0 2px 18px #00000047;padding:.5rem 1rem;text-align:center}.App-header h1{font-size:1.5rem;font-weight:600;margin:0}.app-logo{cursor:pointer;display:block;height:auto;margin:0 auto;max-width:100%;transition:opacity .2s ease,transform .2s ease}.app-logo:hover{opacity:.8;transform:scale(1.02)}.app-logo:active{transform:scale(.98)}.app-title-logo{display:inline-grid;font-family:var(--font-ui);gap:4px;justify-content:center;letter-spacing:0;line-height:1;min-height:52px;padding:4px 10px}.app-title-logo-title{align-items:baseline;display:inline-flex;flex-wrap:wrap;font-size:clamp(20px,3vw,34px);font-weight:900;gap:8px;justify-content:center}.app-title-logo-language{color:var(--color-cream)}.app-title-logo-pt{color:var(--color-gold)}.app-title-logo-club{color:var(--color-coral)}.app-title-subtitle{color:var(--color-muted);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.page-title-fx{align-items:center;color:var(--color-cream);display:inline-flex;font-weight:950;justify-content:center;letter-spacing:.04em;line-height:1.08;margin-inline:auto;max-width:100%;padding:4px 14px 10px;position:relative;text-align:center;text-shadow:0 2px 0 #0000006b,0 0 18px #ffd66b33;text-transform:uppercase;width:fit-content}.page-title-fx:after,.page-title-fx:before{content:"";left:50%;pointer-events:none;position:absolute;transform:translateX(-50%)}.page-title-fx:before{background:linear-gradient(90deg,#0000,var(--color-gold),#0000);background:linear-gradient(90deg,#0000,var(--title-accent,var(--color-gold)),#0000);border-radius:999px;bottom:0;box-shadow:0 0 14px #ffd66b61;box-shadow:0 0 14px var(--title-glow,#ffd66b61);height:3px;width:min(100%,360px)}.page-title-fx:after{background:#171311eb;border:1px solid var(--title-accent,var(--color-gold));border-radius:999px;bottom:-4px;box-shadow:inset 0 0 12px #ffd66b3d;box-shadow:inset 0 0 12px var(--title-glow,#ffd66b3d);height:8px;width:46px}.page-title-practice{--title-accent:#2ec4b6;--title-glow:#2ec4b66b}.page-title-calendar{--title-accent:#ffd66b;--title-glow:#ffd66b6b}.page-title-tournament{--title-accent:#ff7a59;--title-glow:#ff7a5966}.page-title-map{--title-accent:#ffd66b;--title-glow:#ffd66b5c}.page-title-level-up{--title-accent:#2ec4b6;--title-glow:#2ec4b666}.App-main{box-sizing:border-box;flex:1 1;margin:0 auto;max-width:1200px;padding:1rem;width:100%}.App-main.App-main-practice-player{background:#11110f;height:100dvh;margin:0;max-width:none;overflow:hidden;padding:0}.loading-message{color:#b0b0b0;font-size:18px;padding:40px;text-align:center}.error-message{background-color:#3d1f1f;border:1px solid #5c2e2e;border-radius:4px;margin:20px 0;padding:20px;text-align:center}.error-message p{color:#ff6b6b;margin:0 0 10px}.error-message button{background-color:#c33;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 16px}.error-message button:hover{background-color:#a22}.success-message{background-color:#1f3d1f;border:1px solid #2e5c2e;border-radius:4px;color:#6bff6b;margin:20px 0;padding:20px;text-align:center}.create-view,.edit-view,.import-view,.map-view,.practice-view{position:relative;width:100%}.view-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.view-header h2{margin:0}.view-header-centered{margin-bottom:20px;padding-top:10px;text-align:center}.view-header-centered h2{color:var(--color-cream);margin:0}.map-page-header{align-items:center;display:flex;justify-content:center;margin-bottom:20px;min-height:56px;padding-top:10px;position:relative;text-align:center}.map-page-header .btn-back-inline{left:0;position:absolute}.map-page-title-block{grid-gap:6px;display:grid;gap:6px;justify-items:center;left:50%;position:absolute;transform:translateX(-50%);width:min(100% - 112px,720px)}.map-page-title-block h1{font-size:clamp(1.5rem,4vw,2rem);margin:0}.map-page-title-block p{color:var(--color-muted);font-size:.95rem;font-weight:800;margin:0}.view-actions{display:flex;gap:10px}.btn-back-corner{align-items:center;background-color:initial;border:none;border-radius:6px;color:#aaa;cursor:pointer;display:flex;font-size:24px;font-weight:600;height:44px;justify-content:center;left:calc(50% - 288px);line-height:1;min-width:auto;padding:8px 12px;position:fixed;top:10px;transition:all .2s ease;width:44px;z-index:150}.btn-back-corner:hover{background-color:#ffe5c214;color:var(--color-cream)}@media (max-width:600px){.btn-back-corner{left:12px}}.btn-back-corner:hover{background-color:#ffe5c21f;box-shadow:0 2px 4px #9999994d;transform:translateY(-1px)}.btn-back-corner:active{box-shadow:none;transform:translateY(0)}.btn-back-inline{align-items:center;background:none;border:none;border-radius:4px;color:var(--color-cream);cursor:pointer;display:flex;flex-shrink:0;font-size:2rem;font-weight:600;justify-content:center;line-height:1;min-height:44px;min-width:44px;padding:8px 16px;transition:all .2s ease}.btn-back-inline:hover{background-color:#ffe5c21a;transform:translateX(-2px)}.btn-back-inline:active{transform:translateX(-4px)}.map-cover-banner{border-radius:10px;line-height:0;margin:0 auto 12px;max-width:900px;overflow:hidden}.map-cover-image{display:block;max-height:280px;object-fit:contain;width:100%}.map-cover-actions{display:flex;gap:8px;margin:0 auto 8px;max-width:900px}.btn-edit-cover{background:#2a201ad6;border:1px solid var(--color-line);border-radius:6px;color:var(--color-muted);cursor:pointer;font-size:13px;padding:6px 14px;transition:background .15s,color .15s}.btn-edit-cover:hover{background:var(--color-surface-soft);color:var(--color-cream)}.practice-result-view{display:flex;flex-direction:column;height:100dvh;max-width:100vw;overflow:hidden;overscroll-behavior:none;touch-action:manipulation;width:100%}.btn-back,.btn-cancel,.btn-create,.btn-delete,.btn-import,.btn-new-session,.btn-practice,.btn-preset,.btn-refresh{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.btn-refresh{background-color:#61dafb;color:#282c34}.btn-refresh:hover{background-color:#4fc3e8;box-shadow:0 2px 4px #61dafb4d;transform:translateY(-1px)}.btn-refresh:active{box-shadow:none;transform:translateY(0)}.btn-new-session,.btn-practice{background-color:#4caf50;color:#fff}.btn-new-session:hover,.btn-practice:hover{background-color:#45a049;box-shadow:0 2px 4px #4caf504d;transform:translateY(-1px)}.btn-new-session:active,.btn-practice:active{box-shadow:none;transform:translateY(0)}.btn-create{background-color:#2196f3;color:#fff}.btn-create:hover{background-color:#0b7dda;box-shadow:0 2px 4px #2196f34d;transform:translateY(-1px)}.btn-create:active{box-shadow:none;transform:translateY(0)}.btn-import{background:linear-gradient(135deg,var(--color-gold),var(--color-coral));box-shadow:0 12px 28px #ff7a592e;color:#24110a;font-weight:850}.btn-import:hover{box-shadow:0 16px 34px #ff7a593d;filter:brightness(1.04);transform:translateY(-1px)}.btn-import:active{box-shadow:none;transform:translateY(0)}.btn-preset{background:#2a201aeb;border:1px solid #ffd66b61;box-shadow:0 12px 28px #0000002e;color:var(--color-cream);font-weight:850}.btn-preset:hover{background:var(--color-surface-soft);border-color:#ff7a5994;color:var(--color-coral);transform:translateY(-1px)}.btn-preset:active{box-shadow:none;transform:translateY(0)}.btn-back,.btn-cancel{background-color:#999;color:#fff}.btn-back:hover,.btn-cancel:hover{background-color:#777;box-shadow:0 2px 4px #9999994d;transform:translateY(-1px)}.btn-back:active,.btn-cancel:active{box-shadow:none;transform:translateY(0)}.btn-delete{background-color:#f44336;color:#fff;margin-top:20px}.btn-delete:hover{background-color:#da190b;box-shadow:0 2px 4px #f443364d;transform:translateY(-1px)}.btn-delete:active{box-shadow:none;transform:translateY(0)}.delete-note-container{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:center;padding:16px 20px}.btn-add-flashcards{background-color:#2196f3;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.btn-add-flashcards:hover{background-color:#0b7dda;box-shadow:0 2px 4px #2196f34d;transform:translateY(-1px)}.btn-add-flashcards:active{box-shadow:none;transform:translateY(0)}.btn-copy-note{background-color:#61dafb;border:none;border-radius:4px;color:#282c34;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.btn-copy-note:hover{background-color:#4fc3e8;box-shadow:0 2px 4px #61dafb4d;transform:translateY(-1px)}.btn-copy-note:active{box-shadow:none;transform:translateY(0)}.btn-delete-note{background-color:#f44336;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.btn-delete-note:hover{background-color:#da190b;box-shadow:0 2px 4px #f443364d;transform:translateY(-1px)}.btn-delete-note:active{box-shadow:none;transform:translateY(0)}.btn-delete-note:disabled{background-color:#e57373;box-shadow:none;cursor:not-allowed;transform:none}.edit-actions{margin-top:20px;text-align:center}.deleting-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.import-actions{margin-top:20px;text-align:center}.practice-empty{padding:40px;text-align:center}.practice-empty h2{color:#e0e0e0;margin-bottom:10px}.practice-empty p{color:#b0b0b0;margin-bottom:20px}.practice-empty button{margin:10px}.practice-actions{gap:10px;margin-top:20px;text-align:center}.modal-overlay,.practice-actions{display:flex;justify-content:center}.modal-overlay{align-items:flex-start;background-color:#000000b3;bottom:0;left:0;overflow-y:auto;overscroll-behavior:contain;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background-color:#2a2a2a;border-radius:8px;box-shadow:0 4px 20px #00000080;display:flex;flex-direction:column;margin:auto 0;max-height:calc(100dvh - 40px);max-width:600px;min-height:0;width:100%}.flashcard-edit-modal-content,.modal-content{overflow:hidden}.flashcard-edit-modal-content>.flashcard-form-container{-webkit-overflow-scrolling:touch;border-radius:0;box-shadow:none;flex:1 1;margin:0;max-width:none;min-height:0;overflow-y:auto;overscroll-behavior:contain;width:100%}.modal-header{align-items:center;background-color:#333;border-bottom:1px solid #404040;display:flex;justify-content:space-between;padding:12px 16px}.modal-header h2{color:#e0e0e0;font-size:20px;line-height:1.15;margin:0}.modal-close{align-items:center;background:none;border:none;border-radius:4px;color:#999;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;line-height:1;padding:0;transition:all .2s ease;width:32px}.modal-close:hover{background-color:#404040;color:#e0e0e0}.import-dialog{display:flex;flex-direction:column;height:100%;min-height:0}.import-dialog-header{align-items:center;border-bottom:1px solid #404040;display:flex;justify-content:space-between;padding:20px}.import-dialog-header h2{color:#e0e0e0;font-size:24px;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:4px;color:#999;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.close-button:hover{background-color:#404040;color:#e0e0e0}.import-dialog-body{flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:20px}.note-name-input-area{margin-bottom:20px}.note-name-input-area label{color:#e0e0e0;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.note-name-input{background-color:#333;border:1px solid #505050;border-radius:4px;box-sizing:border-box;color:#e0e0e0;font-family:inherit;font-size:14px;padding:10px 12px;transition:border-color .2s ease;width:100%}.note-name-input:focus{border-color:#2196f3;box-shadow:0 0 0 2px #2196f31a;outline:none}.note-name-input::placeholder{color:grey}.import-dialog-footer{border-top:1px solid #404040;display:flex;gap:10px;justify-content:flex-end;padding:20px}.import-method-tabs{border-bottom:2px solid #404040;display:flex;gap:0;margin-bottom:20px}.method-tab{background:none;border:none;border-bottom:3px solid #0000;bottom:-2px;color:#b0b0b0;cursor:pointer;flex:1 1;font-size:16px;font-weight:500;padding:12px 20px;position:relative;transition:all .2s ease}.method-tab:hover{background-color:#333;color:#2196f3}.method-tab.active{border-bottom-color:#2196f3;color:#2196f3}.import-method-content{min-height:200px}.file-selection-area,.text-paste-area{padding:10px 0}.cancel-button{background-color:#2a2a2a;border:1px solid #505050;border-radius:4px;color:#b0b0b0;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.cancel-button:hover{background-color:#333;border-color:#606060}.import-button{background-color:#2196f3;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.import-button:hover:not(:disabled){background-color:#0b7dda;box-shadow:0 2px 4px #2196f34d;transform:translateY(-1px)}.import-button:active:not(:disabled){box-shadow:none;transform:translateY(0)}.import-button:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.text-paste-area label{color:#b0b0b0;display:block;font-size:14px;font-weight:500;margin-bottom:10px}.text-input{background-color:#333;border:1px solid #505050;border-radius:4px;box-sizing:border-box;color:#e0e0e0;font-family:Courier New,monospace;font-size:14px;line-height:1.5;padding:12px;resize:vertical;transition:border-color .2s ease;width:100%}.text-input:focus{border-color:#2196f3;box-shadow:0 0 0 2px #2196f31a;outline:none}.text-input::placeholder{color:grey}.format-hint{background-color:#333;border-left:3px solid #2196f3;border-radius:4px;color:#b0b0b0;font-size:13px;margin-top:10px;padding:10px}.format-hint strong{color:#2196f3}.file-picker-button{background-color:#2a2a2a;border:1px solid #2196f3;border-radius:4px;color:#2196f3;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.file-picker-button:hover{background-color:#2196f3;color:#fff}.selected-file-info{align-items:center;background-color:#333;border-radius:4px;display:flex;gap:10px;margin-top:15px;padding:10px}.file-name{color:#e0e0e0;font-weight:500}.file-size{color:grey;font-size:13px}.file-content-preview{margin-top:15px}.file-content-preview label{color:#b0b0b0;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.content-preview{word-wrap:break-word;background-color:#333;border:1px solid #505050;border-radius:4px;color:#e0e0e0;font-family:Courier New,monospace;font-size:13px;line-height:1.5;max-height:200px;overflow-y:auto;padding:12px;white-space:pre-wrap}@media (max-width:768px){.App-header h1{font-size:1.25rem}.App-main{padding:.75rem}.view-header{align-items:stretch;gap:1rem}.view-actions,.view-header{flex-direction:column}.view-actions button{width:100%}.modal-content{max-height:calc(100dvh - 1.5rem);width:95%}.flashcard-edit-modal-content{border-radius:0;height:100dvh;max-height:100dvh;width:100%}.flashcard-edit-modal-content>.flashcard-form-container{padding-bottom:calc(28px + env(safe-area-inset-bottom))}.import-method-tabs{flex-direction:column}.method-tab{border-bottom:none;border-left:3px solid #0000}.method-tab.active{border-bottom-color:#0000;border-left-color:#2196f3}}*{transition:background-color .2s ease,color .2s ease,transform .2s ease}.method-tab,.nav-link,button{min-height:44px;min-width:44px}
/*# sourceMappingURL=main.3c693b20.css.map*/