:where(html){--gray-0: #f8f9fa;--gray-1: #f1f3f5;--gray-2: #e9ecef;--gray-3: #dee2e6;--gray-4: #ced4da;--gray-5: #adb5bd;--gray-6: #868e96;--gray-7: #495057;--gray-8: #343a40;--gray-9: #212529;--gray-10: #16191d;--gray-11: #0d0f12;--gray-12: #030507}:where(html){--teal-0: #e6fcf5;--teal-1: #c3fae8;--teal-2: #96f2d7;--teal-3: #63e6be;--teal-4: #38d9a9;--teal-5: #20c997;--teal-6: #12b886;--teal-7: #0ca678;--teal-8: #099268;--teal-9: #087f5b;--teal-10: #066649;--teal-11: #054d37;--teal-12: #033325}:where(html){--blue-0: #e7f5ff;--blue-1: #d0ebff;--blue-2: #a5d8ff;--blue-3: #74c0fc;--blue-4: #4dabf7;--blue-5: #339af0;--blue-6: #228be6;--blue-7: #1c7ed6;--blue-8: #1971c2;--blue-9: #1864ab;--blue-10: #145591;--blue-11: #114678;--blue-12: #0d375e}:where(html){--green-0: #ebfbee;--green-1: #d3f9d8;--green-2: #b2f2bb;--green-3: #8ce99a;--green-4: #69db7c;--green-5: #51cf66;--green-6: #40c057;--green-7: #37b24d;--green-8: #2f9e44;--green-9: #2b8a3e;--green-10: #237032;--green-11: #1b5727;--green-12: #133d1b}@custom-media --motionOK (prefers-reduced-motion: no-preference);@custom-media --motionNotOK (prefers-reduced-motion: reduce);@custom-media --opacityOK (prefers-reduced-transparency: no-preference);@custom-media --opacityNotOK (prefers-reduced-transparency: reduce);@custom-media --useDataOK (prefers-reduced-data: no-preference);@custom-media --useDataNotOK (prefers-reduced-data: reduce);@custom-media --OSdark (prefers-color-scheme: dark);@custom-media --OSlight (prefers-color-scheme: light);@custom-media --highContrast (prefers-contrast: more);@custom-media --lowContrast (prefers-contrast: less);@custom-media --invertedColors (inverted-colors: inverted);@custom-media --forcedColors (forced-colors: active);@custom-media --portrait (orientation: portrait);@custom-media --landscape (orientation: landscape);@custom-media --HDcolor (dynamic-range: high) or (color-gamut: p3);@custom-media --touch (hover: none) and (pointer: coarse);@custom-media --stylus (hover: none) and (pointer: fine);@custom-media --pointer (hover) and (pointer: coarse);@custom-media --mouse (hover) and (pointer: fine);@custom-media --xxs-only (0px <= width < 240px);@custom-media --xxs-n-above (width >= 240px);@custom-media --xxs-n-below (width < 240px);@custom-media --xxs-phone (--xxs-only) and (--portrait);@custom-media --xs-only (240px <= width < 360px);@custom-media --xs-n-above (width >= 360px);@custom-media --xs-n-below (width < 360px);@custom-media --xs-phone (--xs-only) and (--portrait);@custom-media --sm-only (360px <= width < 480px);@custom-media --sm-n-above (width >= 480px);@custom-media --sm-n-below (width < 480px);@custom-media --sm-phone (--sm-only) and (--portrait);@custom-media --md-only (480px <= width < 768px);@custom-media --md-n-above (width >= 768px);@custom-media --md-n-below (width < 768px);@custom-media --md-phone (--md-only) and (--portrait);@custom-media --lg-only (768px <= width < 1024px);@custom-media --lg-n-above (width >= 1024px);@custom-media --lg-n-below (width < 1024px);@custom-media --lg-phone (--lg-only) and (--portrait);@custom-media --xl-only (1024px <= width < 1440px);@custom-media --xl-n-above (width >= 1440px);@custom-media --xl-n-below (width < 1440px);@custom-media --xxl-only (1440px <= width < 1920px);@custom-media --xxl-n-above (width >= 1920px);@custom-media --xxl-n-below (width < 1920px);:where(html){--shadow-color: 220 3% 15%;--shadow-strength: 1%;--shadow-strength-3: calc(var(--shadow-strength) + 2%);--shadow-strength-4: calc(var(--shadow-strength) + 3%);--shadow-strength-5: calc(var(--shadow-strength) + 4%);--shadow-strength-6: calc(var(--shadow-strength) + 5%);--shadow-strength-7: calc(var(--shadow-strength) + 6%);--shadow-strength-8: calc(var(--shadow-strength) + 7%);--shadow-strength-10: calc(var(--shadow-strength) + 9%);--inner-shadow-highlight: inset 0 -.5px 0 0 #fff, inset 0 .5px 0 0 #0001;--shadow-1: 0 1px 2px -1px hsl(var(--shadow-color) / var(--shadow-strength-10));--shadow-2: 0 3px 5px -2px hsl(var(--shadow-color) / var(--shadow-strength-4)), 0 7px 14px -5px hsl(var(--shadow-color) / var(--shadow-strength-6));--shadow-3: 0 -1px 3px 0 hsl(var(--shadow-color) / var(--shadow-strength-3)), 0 1px 2px -5px hsl(var(--shadow-color) / var(--shadow-strength-3)), 0 2px 5px -5px hsl(var(--shadow-color) / var(--shadow-strength-5)), 0 4px 12px -5px hsl(var(--shadow-color) / var(--shadow-strength-6)), 0 12px 15px -5px hsl(var(--shadow-color) / var(--shadow-strength-8));--shadow-4: 0 -2px 5px 0 hsl(var(--shadow-color) / var(--shadow-strength-3)), 0 1px 1px -2px hsl(var(--shadow-color) / var(--shadow-strength-4)), 0 2px 2px -2px hsl(var(--shadow-color) / var(--shadow-strength-4)), 0 5px 5px -2px hsl(var(--shadow-color) / var(--shadow-strength-5)), 0 9px 9px -2px hsl(var(--shadow-color) / var(--shadow-strength-6)), 0 16px 16px -2px hsl(var(--shadow-color) / var(--shadow-strength-7));--shadow-5: 0 -1px 2px 0 hsl(var(--shadow-color) / var(--shadow-strength-3)), 0 2px 1px -2px hsl(var(--shadow-color) / var(--shadow-strength-4)), 0 5px 5px -2px hsl(var(--shadow-color) / var(--shadow-strength-4)), 0 10px 10px -2px hsl(var(--shadow-color) / var(--shadow-strength-5)), 0 20px 20px -2px hsl(var(--shadow-color) / var(--shadow-strength-6)), 0 40px 40px -2px hsl(var(--shadow-color) / var(--shadow-strength-8));--shadow-6: 0 -1px 2px 0 hsl(var(--shadow-color) / var(--shadow-strength-3)), 0 3px 2px -2px hsl(var(--shadow-color) / var(--shadow-strength-4)), 0 7px 5px -2px hsl(var(--shadow-color) / var(--shadow-strength-4)), 0 12px 10px -2px hsl(var(--shadow-color) / var(--shadow-strength-5)), 0 22px 18px -2px hsl(var(--shadow-color) / var(--shadow-strength-6)), 0 41px 33px -2px hsl(var(--shadow-color) / var(--shadow-strength-7)), 0 100px 80px -2px hsl(var(--shadow-color) / var(--shadow-strength-8));--inner-shadow-0: inset 0 0 0 1px hsl(var(--shadow-color) / var(--shadow-strength-10));--inner-shadow-1: inset 0 1px 2px 0 hsl(var(--shadow-color) / var(--shadow-strength-10)), var(--inner-shadow-highlight);--inner-shadow-2: inset 0 1px 4px 0 hsl(var(--shadow-color) / var(--shadow-strength-10)), var(--inner-shadow-highlight);--inner-shadow-3: inset 0 2px 8px 0 hsl(var(--shadow-color) / var(--shadow-strength-10)), var(--inner-shadow-highlight);--inner-shadow-4: inset 0 2px 14px 0 hsl(var(--shadow-color) / var(--shadow-strength-10)), var(--inner-shadow-highlight)}@media(--OSdark){:where(html){--shadow-color: 220 40% 2%;--shadow-strength: 25%;--inner-shadow-highlight: inset 0 -.5px 0 0 #fff1, inset 0 .5px 0 0 #0007}}:where(html){--ease-1: cubic-bezier(.25, 0, .5, 1);--ease-2: cubic-bezier(.25, 0, .4, 1);--ease-3: cubic-bezier(.25, 0, .3, 1);--ease-4: cubic-bezier(.25, 0, .2, 1);--ease-5: cubic-bezier(.25, 0, .1, 1);--ease-in-1: cubic-bezier(.25, 0, 1, 1);--ease-in-2: cubic-bezier(.5, 0, 1, 1);--ease-in-3: cubic-bezier(.7, 0, 1, 1);--ease-in-4: cubic-bezier(.9, 0, 1, 1);--ease-in-5: cubic-bezier(1, 0, 1, 1);--ease-out-1: cubic-bezier(0, 0, .75, 1);--ease-out-2: cubic-bezier(0, 0, .5, 1);--ease-out-3: cubic-bezier(0, 0, .3, 1);--ease-out-4: cubic-bezier(0, 0, .1, 1);--ease-out-5: cubic-bezier(0, 0, 0, 1);--ease-in-out-1: cubic-bezier(.1, 0, .9, 1);--ease-in-out-2: cubic-bezier(.3, 0, .7, 1);--ease-in-out-3: cubic-bezier(.5, 0, .5, 1);--ease-in-out-4: cubic-bezier(.7, 0, .3, 1);--ease-in-out-5: cubic-bezier(.9, 0, .1, 1);--ease-elastic-out-1: cubic-bezier(.5, .75, .75, 1.25);--ease-elastic-out-2: cubic-bezier(.5, 1, .75, 1.25);--ease-elastic-out-3: cubic-bezier(.5, 1.25, .75, 1.25);--ease-elastic-out-4: cubic-bezier(.5, 1.5, .75, 1.25);--ease-elastic-out-5: cubic-bezier(.5, 1.75, .75, 1.25);--ease-elastic-in-1: cubic-bezier(.5, -.25, .75, 1);--ease-elastic-in-2: cubic-bezier(.5, -.5, .75, 1);--ease-elastic-in-3: cubic-bezier(.5, -.75, .75, 1);--ease-elastic-in-4: cubic-bezier(.5, -1, .75, 1);--ease-elastic-in-5: cubic-bezier(.5, -1.25, .75, 1);--ease-elastic-in-out-1: cubic-bezier(.5, -.1, .1, 1.5);--ease-elastic-in-out-2: cubic-bezier(.5, -.3, .1, 1.5);--ease-elastic-in-out-3: cubic-bezier(.5, -.5, .1, 1.5);--ease-elastic-in-out-4: cubic-bezier(.5, -.7, .1, 1.5);--ease-elastic-in-out-5: cubic-bezier(.5, -.9, .1, 1.5);--ease-step-1: steps(2);--ease-step-2: steps(3);--ease-step-3: steps(4);--ease-step-4: steps(7);--ease-step-5: steps(10);--ease-elastic-1: var(--ease-elastic-out-1);--ease-elastic-2: var(--ease-elastic-out-2);--ease-elastic-3: var(--ease-elastic-out-3);--ease-elastic-4: var(--ease-elastic-out-4);--ease-elastic-5: var(--ease-elastic-out-5);--ease-squish-1: var(--ease-elastic-in-out-1);--ease-squish-2: var(--ease-elastic-in-out-2);--ease-squish-3: var(--ease-elastic-in-out-3);--ease-squish-4: var(--ease-elastic-in-out-4);--ease-squish-5: var(--ease-elastic-in-out-5);--ease-spring-1: linear( 0, .006, .025 2.8%, .101 6.1%, .539 18.9%, .721 25.3%, .849 31.5%, .937 38.1%, .968 41.8%, .991 45.7%, 1.006 50.1%, 1.015 55%, 1.017 63.9%, 1.001 );--ease-spring-2: linear( 0, .007, .029 2.2%, .118 4.7%, .625 14.4%, .826 19%, .902, .962, 1.008 26.1%, 1.041 28.7%, 1.064 32.1%, 1.07 36%, 1.061 40.5%, 1.015 53.4%, .999 61.6%, .995 71.2%, 1 );--ease-spring-3: linear( 0, .009, .035 2.1%, .141 4.4%, .723 12.9%, .938 16.7%, 1.017, 1.077, 1.121, 1.149 24.3%, 1.159, 1.163, 1.161, 1.154 29.9%, 1.129 32.8%, 1.051 39.6%, 1.017 43.1%, .991, .977 51%, .974 53.8%, .975 57.1%, .997 69.8%, 1.003 76.9%, 1 );--ease-spring-4: linear( 0, .009, .037 1.7%, .153 3.6%, .776 10.3%, 1.001, 1.142 16%, 1.185, 1.209 19%, 1.215 19.9% 20.8%, 1.199, 1.165 25%, 1.056 30.3%, 1.008 33%, .973, .955 39.2%, .953 41.1%, .957 43.3%, .998 53.3%, 1.009 59.1% 63.7%, .998 78.9%, 1 );--ease-spring-5: linear( 0, .01, .04 1.6%, .161 3.3%, .816 9.4%, 1.046, 1.189 14.4%, 1.231, 1.254 17%, 1.259, 1.257 18.6%, 1.236, 1.194 22.3%, 1.057 27%, .999 29.4%, .955 32.1%, .942, .935 34.9%, .933, .939 38.4%, 1 47.3%, 1.011, 1.017 52.6%, 1.016 56.4%, 1 65.2%, .996 70.2%, 1.001 87.2%, 1 );--ease-bounce-1: linear( 0, .004, .016, .035, .063, .098, .141, .191, .25, .316, .391 36.8%, .563, .766, 1 58.8%, .946, .908 69.1%, .895, .885, .879, .878, .879, .885, .895, .908 89.7%, .946, 1 );--ease-bounce-2: linear( 0, .004, .016, .035, .063, .098, .141 15.1%, .25, .391, .562, .765, 1, .892 45.2%, .849, .815, .788, .769, .757, .753, .757, .769, .788, .815, .85, .892 75.2%, 1 80.2%, .973, .954, .943, .939, .943, .954, .973, 1 );--ease-bounce-3: linear( 0, .004, .016, .035, .062, .098, .141 11.4%, .25, .39, .562, .764, 1 30.3%, .847 34.8%, .787, .737, .699, .672, .655, .65, .656, .672, .699, .738, .787, .847 61.7%, 1 66.2%, .946, .908, .885 74.2%, .879, .878, .879, .885 79.5%, .908, .946, 1 87.4%, .981, .968, .96, .957, .96, .968, .981, 1 );--ease-bounce-4: linear( 0, .004, .016 3%, .062, .141, .25, .391, .562 18.2%, 1 24.3%, .81, .676 32.3%, .629, .595, .575, .568, .575, .595, .629, .676 48.2%, .811, 1 56.2%, .918, .86, .825, .814, .825, .86, .918, 1 77.2%, .94 80.6%, .925, .92, .925, .94 87.5%, 1 90.9%, .974, .965, .974, 1 );--ease-bounce-5: linear( 0, .004, .016 2.5%, .063, .141, .25 10.1%, .562, 1 20.2%, .783, .627, .534 30.9%, .511, .503, .511, .534 38%, .627, .782, 1 48.7%, .892, .815, .769 56.3%, .757, .753, .757, .769 61.3%, .815, .892, 1 68.8%, .908 72.4%, .885, .878, .885, .908 79.4%, 1 83%, .954 85.5%, .943, .939, .943, .954 90.5%, 1 93%, .977, .97, .977, 1 );--ease-circ-in: cubic-bezier(.6,.04,.98,.335);--ease-circ-in-out: cubic-bezier(.785,.135,.15,.86);--ease-circ-out: cubic-bezier(.075,.82,.165,1);--ease-cubic-in: cubic-bezier(.55,.055,.675,.19);--ease-cubic-in-out: cubic-bezier(.645,.045,.355,1);--ease-cubic-out: cubic-bezier(.215,.61,.355,1);--ease-expo-in: cubic-bezier(.95,.05,.795,.035);--ease-expo-in-out: cubic-bezier(1,0,0,1);--ease-expo-out: cubic-bezier(.19,1,.22,1);--ease-quad-in: cubic-bezier(.55,.085,.68,.53);--ease-quad-in-out: cubic-bezier(.455,.03,.515,.955);--ease-quad-out: cubic-bezier(.25,.46,.45,.94);--ease-quart-in: cubic-bezier(.895,.03,.685,.22);--ease-quart-in-out: cubic-bezier(.77,0,.175,1);--ease-quart-out: cubic-bezier(.165,.84,.44,1);--ease-quint-in: cubic-bezier(.755,.05,.855,.06);--ease-quint-in-out: cubic-bezier(.86,0,.07,1);--ease-quint-out: cubic-bezier(.23,1,.32,1);--ease-sine-in: cubic-bezier(.47,0,.745,.715);--ease-sine-in-out: cubic-bezier(.445,.05,.55,.95);--ease-sine-out: cubic-bezier(.39,.575,.565,1)}:where(html){--border-size-1: 1px;--border-size-2: 2px;--border-size-3: 5px;--border-size-4: 10px;--border-size-5: 25px;--radius-1: 2px;--radius-2: 5px;--radius-3: 1rem;--radius-4: 2rem;--radius-5: 4rem;--radius-6: 8rem;--radius-drawn-1: 255px 15px 225px 15px / 15px 225px 15px 255px;--radius-drawn-2: 125px 10px 20px 185px / 25px 205px 205px 25px;--radius-drawn-3: 15px 255px 15px 225px / 225px 15px 255px 15px;--radius-drawn-4: 15px 25px 155px 25px / 225px 150px 25px 115px;--radius-drawn-5: 250px 25px 15px 20px / 15px 80px 105px 115px;--radius-drawn-6: 28px 100px 20px 15px / 150px 30px 205px 225px;--radius-round: 1e5px;--radius-blob-1: 30% 70% 70% 30% / 53% 30% 70% 47%;--radius-blob-2: 53% 47% 34% 66% / 63% 46% 54% 37%;--radius-blob-3: 37% 63% 56% 44% / 49% 56% 44% 51%;--radius-blob-4: 63% 37% 37% 63% / 43% 37% 63% 57%;--radius-blob-5: 49% 51% 48% 52% / 57% 44% 56% 43%;--radius-conditional-1: clamp(0px, calc(100vw - 100%) * 1e5, var(--radius-1));--radius-conditional-2: clamp(0px, calc(100vw - 100%) * 1e5, var(--radius-2));--radius-conditional-3: clamp(0px, calc(100vw - 100%) * 1e5, var(--radius-3));--radius-conditional-4: clamp(0px, calc(100vw - 100%) * 1e5, var(--radius-4));--radius-conditional-5: clamp(0px, calc(100vw - 100%) * 1e5, var(--radius-5));--radius-conditional-6: clamp(0px, calc(100vw - 100%) * 1e5, var(--radius-6))}:where(html){--animation-fade-in: fade-in .5s var(--ease-3);--animation-fade-in-bloom: fade-in-bloom 2s var(--ease-3);--animation-fade-out: fade-out .5s var(--ease-3);--animation-fade-out-bloom: fade-out-bloom 2s var(--ease-3);--animation-scale-up: scale-up .5s var(--ease-3);--animation-scale-down: scale-down .5s var(--ease-3);--animation-slide-out-up: slide-out-up .5s var(--ease-3);--animation-slide-out-down: slide-out-down .5s var(--ease-3);--animation-slide-out-right: slide-out-right .5s var(--ease-3);--animation-slide-out-left: slide-out-left .5s var(--ease-3);--animation-slide-in-up: slide-in-up .5s var(--ease-3);--animation-slide-in-down: slide-in-down .5s var(--ease-3);--animation-slide-in-right: slide-in-right .5s var(--ease-3);--animation-slide-in-left: slide-in-left .5s var(--ease-3);--animation-shake-x: shake-x .75s var(--ease-out-5);--animation-shake-y: shake-y .75s var(--ease-out-5);--animation-shake-z: shake-z 1s var(--ease-in-out-3);--animation-spin: spin 2s linear infinite;--animation-ping: ping 5s var(--ease-out-3) infinite;--animation-blink: blink 1s var(--ease-out-3) infinite;--animation-float: float 3s var(--ease-in-out-3) infinite;--animation-bounce: bounce 2s var(--ease-squish-2) infinite;--animation-pulse: pulse 2s var(--ease-out-3) infinite}@keyframes fade-in{to{opacity:1}}@keyframes fade-in-bloom{0%{opacity:0;filter:brightness(1) blur(20px)}10%{opacity:1;filter:brightness(2) blur(10px)}to{opacity:1;filter:brightness(1) blur(0)}}@keyframes fade-out{to{opacity:0}}@keyframes fade-out-bloom{to{opacity:0;filter:brightness(1) blur(20px)}10%{opacity:1;filter:brightness(2) blur(10px)}0%{opacity:1;filter:brightness(1) blur(0)}}@keyframes scale-up{to{transform:scale(1.25)}}@keyframes scale-down{to{transform:scale(.75)}}@keyframes slide-out-up{to{transform:translateY(-100%)}}@keyframes slide-out-down{to{transform:translateY(100%)}}@keyframes slide-out-right{to{transform:translate(100%)}}@keyframes slide-out-left{to{transform:translate(-100%)}}@keyframes slide-in-up{0%{transform:translateY(100%)}}@keyframes slide-in-down{0%{transform:translateY(-100%)}}@keyframes slide-in-right{0%{transform:translate(-100%)}}@keyframes slide-in-left{0%{transform:translate(100%)}}@keyframes shake-x{0%,to{transform:translate(0)}20%{transform:translate(-5%)}40%{transform:translate(5%)}60%{transform:translate(-5%)}80%{transform:translate(5%)}}@keyframes shake-y{0%,to{transform:translateY(0)}20%{transform:translateY(-5%)}40%{transform:translateY(5%)}60%{transform:translateY(-5%)}80%{transform:translateY(5%)}}@keyframes shake-z{0%,to{transform:rotate(0)}20%{transform:rotate(-2deg)}40%{transform:rotate(2deg)}60%{transform:rotate(-2deg)}80%{transform:rotate(2deg)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes ping{90%,to{transform:scale(2);opacity:0}}@keyframes blink{0%,to{opacity:1}50%{opacity:.5}}@keyframes float{50%{transform:translateY(-25%)}}@keyframes bounce{25%{transform:translateY(-20%)}40%{transform:translateY(-3%)}0%,60%,to{transform:translateY(0)}}@keyframes pulse{50%{transform:scale(.9)}}@media(--OSdark){@keyframes fade-in-bloom{0%{opacity:0;filter:brightness(1) blur(20px)}10%{opacity:1;filter:brightness(.5) blur(10px)}to{opacity:1;filter:brightness(1) blur(0)}}}@media(--OSdark){@keyframes fade-out-bloom{to{opacity:0;filter:brightness(1) blur(20px)}10%{opacity:1;filter:brightness(.5) blur(10px)}0%{opacity:1;filter:brightness(1) blur(0)}}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: var(--blue-7);--primary-dark: var(--blue-9);--primary-light: var(--blue-1);--bg: var(--gray-1);--surface: #ffffff;--text: var(--gray-8);--text-muted: var(--gray-6);--border: var(--gray-3);--radius: var(--radius-2);--radius-lg: var(--radius-3);--shadow: var(--shadow-2);--shadow-sm: var(--shadow-1);--shadow-lg: var(--shadow-3);--header-height: 56px}html{font-size:16px;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg);color:var(--text);line-height:1.6;-webkit-text-size-adjust:100%;overflow-x:hidden}.app-header{background:linear-gradient(135deg,var(--blue-7) 0%,var(--blue-9) 100%);color:#fff;position:sticky;top:0;z-index:100;box-shadow:var(--shadow-2);padding-top:env(safe-area-inset-top)}.app-header-inner{max-width:1200px;margin:0 auto;padding:0 max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));height:var(--header-height);display:flex;justify-content:space-between;align-items:center}.app-logo{display:flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font-weight:600;font-size:15px}.app-logo:hover{text-decoration:none;opacity:.9}.logo-mark{font-size:13px;font-weight:800;background:#fff3;padding:2px 6px;border-radius:4px}.app-nav{display:flex;gap:2px;align-items:center}.nav-link{padding:6px 12px;color:#ffffffbf;text-decoration:none;font-size:13px;font-weight:500;border-radius:6px;transition:all .2s var(--ease-3);display:flex;align-items:center}.nav-link:hover{background:#ffffff26;color:#fff;text-decoration:none}.nav-link.active{background:#ffffff40;color:#fff}.nav-link-icon{padding:6px 8px}#app{max-width:1200px;margin:0 auto;padding:16px;min-height:calc(100dvh - var(--header-height))}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:12px}.skeleton-text{display:inline-block;height:1em;min-width:60px;border-radius:4px;background:linear-gradient(90deg,var(--gray-2) 25%,var(--gray-1) 50%,var(--gray-2) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}.skeleton-card{opacity:.6}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}html[lang=en] .ja-only{display:none}@media(max-width:640px){.logo-text{display:none}.app-header-inner{height:48px;padding:0 8px}.app-nav{gap:0}.nav-link{padding:10px 6px;font-size:11px;min-height:44px;display:flex;align-items:center}.nav-link-icon{padding:10px 4px}#app{padding:12px}}.text-selection-bookmark-btn{padding:8px 14px;background:var(--primary, #4d9e80);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-3);white-space:nowrap;animation:selBtnFadeIn .15s ease-out}.text-selection-bookmark-btn:hover{background:var(--primary-dark, #3a8068)}.text-selection-bookmark-btn:disabled{opacity:.6;cursor:not-allowed}@keyframes selBtnFadeIn{0%{opacity:0;transform:translate(-50%,-100%) scale(.9)}to{opacity:1;transform:translate(-50%,-100%) scale(1)}}:root{--prestudy-primary: var(--primary);--prestudy-primary-dark: var(--primary-dark);--prestudy-primary-hover: var(--blue-8);--bg-color: var(--bg);--card-bg: var(--surface);--text-color: var(--text);--text-muted: var(--gray-6);--border-color: var(--gray-3)}.prestudy-container{max-width:1200px;margin:0 auto}.clickable-text{cursor:pointer;border-radius:6px;transition:background .15s}.clickable-text:hover{background:color-mix(in srgb,var(--prestudy-primary) 8%,transparent)}.btn-complete-float{position:fixed;bottom:24px;right:24px;z-index:100;padding:10px 20px;border:none;border-radius:24px;font-size:13px;font-weight:600;cursor:pointer;background:var(--prestudy-primary);color:#fff;box-shadow:0 2px 12px #0003;transition:all .2s}.btn-complete-float:hover:not(:disabled):not(.completed){background:var(--prestudy-primary-dark);box-shadow:0 4px 16px #00000040}.btn-complete-float.completed{background:#10b981;pointer-events:none}.article-selector{padding:16px 20px;background:var(--card-bg);border-radius:12px;margin-bottom:20px;box-shadow:0 1px 3px #0000001a}.source-tabs{display:flex;gap:4px;margin-bottom:12px;background:var(--bg-color);border-radius:8px;padding:4px}.source-tab{flex:1;padding:8px 16px;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;background:transparent;color:var(--text-muted);transition:all .2s}.source-tab:hover{color:var(--text-color)}.source-tab.active{background:var(--prestudy-primary);color:#fff}.selector-row{display:flex;align-items:center;gap:10px}.source-selector{display:none;flex:1;gap:10px;min-width:0}.source-selector.active{display:flex}.article-selector select{flex:1;padding:10px 14px;border:1px solid var(--border-color);border-radius:8px;font-size:14px;background:#fff;color:var(--text-color);min-width:0}.article-selector select:focus{outline:none;border-color:var(--prestudy-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--prestudy-primary) 15%,transparent)}.article-selector select:disabled{opacity:.5}.btn-load{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;background:linear-gradient(135deg,var(--prestudy-primary),var(--prestudy-primary-dark));color:#fff;white-space:nowrap;flex-shrink:0;min-width:110px;text-align:center;align-self:center}.btn-load:hover:not(:disabled){background:linear-gradient(135deg,var(--prestudy-primary-hover),var(--blue-10))}.btn-load:disabled{cursor:not-allowed;opacity:.6}.prestudy-container:not(.deep-study) .deep-study-section{display:none}.study-mode-bar{display:flex;justify-content:flex-end;margin-bottom:12px}.study-mode-toggle{display:flex;gap:2px;background:var(--bg-color);border-radius:8px;padding:3px;box-shadow:0 1px 3px #00000014}.mode-btn{padding:6px 16px;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;background:transparent;color:var(--text-muted);transition:all .2s}.mode-btn:hover{color:var(--text-color)}.mode-btn.active{background:var(--prestudy-primary);color:#fff}.prestudy-tabs{display:flex;gap:8px;margin-bottom:20px;background:var(--card-bg);padding:8px;border-radius:12px;box-shadow:0 1px 3px #0000001a}.prestudy-tabs .tab-btn{flex:1;padding:12px 20px;border:none;background:transparent;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;color:var(--text-muted)}.prestudy-tabs .tab-btn:hover{background:var(--bg-color);color:var(--text-color)}.prestudy-tabs .tab-btn.active{background:var(--prestudy-primary);color:#fff}.prestudy-tabs .tab-btn:disabled{opacity:.35;cursor:default}.prestudy-tabs .tab-btn:disabled:hover{background:transparent;color:var(--text-muted)}.prestudy-tabs .tab-btn:disabled.active{background:transparent;color:var(--text-muted)}.speed-control-bar{display:flex;align-items:center;justify-content:center;gap:24px;padding:12px 20px;background:var(--card-bg);border-radius:10px;margin-bottom:20px;box-shadow:0 1px 3px #0000001a}#speed-slider{width:120px;accent-color:var(--prestudy-primary);cursor:pointer}#speed-value{font-size:13px;font-weight:600;color:var(--prestudy-primary);min-width:36px;text-align:center}.voice-btn{padding:8px 16px;border:1px solid var(--border-color);background:#fff;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s}.voice-btn:hover{border-color:var(--prestudy-primary)}.voice-btn.active{background:var(--prestudy-primary);color:#fff;border-color:var(--prestudy-primary)}.empty-state p{color:var(--text-muted);font-size:14px}.overview-card{background:var(--card-bg);border-radius:12px;padding:24px;margin-bottom:20px;box-shadow:0 1px 3px #0000001a}.overview-title{font-size:24px;line-height:1.4;color:var(--text-color);transition:color .2s}.overview-title.playing{color:var(--prestudy-primary)}.overview-title-jp{font-size:14px;color:var(--text-muted);margin-top:8px;min-height:1.4em}.warmup-questions{margin-top:12px}.warmup-label{font-size:12px;font-weight:600;color:var(--prestudy-primary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.warmup-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:var(--bg-color);border-radius:8px;margin-bottom:6px;border-left:3px solid var(--prestudy-primary)}.warmup-item.playing{background:var(--blue-0)}.warmup-number{flex-shrink:0;width:22px;height:22px;background:var(--prestudy-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.warmup-content{display:flex;flex-direction:column;gap:2px}.warmup-text{font-size:14px;line-height:1.5;color:var(--text-color)}.warmup-jp{font-size:12px;color:var(--text-muted);line-height:1.4}.warmup-loading{padding:12px;text-align:center}.vocabulary-list{display:flex;flex-direction:column;gap:12px}.vocab-card{background:var(--card-bg);border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a;transition:all .2s}.vocab-card:hover{box-shadow:0 2px 8px color-mix(in srgb,var(--prestudy-primary) 15%,transparent)}.vocab-word-row{display:flex;align-items:center;gap:8px;padding:4px 8px;margin:-4px -8px 6px}.vocab-word-row.playing{background:var(--blue-0)}.vocab-word-row .word{font-size:18px;font-weight:600;color:var(--prestudy-primary-dark)}.vocab-japanese{font-size:14px;color:var(--text-muted);margin-bottom:8px;margin-left:8px}.vocab-definition{font-size:13px;color:var(--text-muted);font-style:italic;margin-bottom:8px;margin-left:8px}.vocab-example{display:flex;align-items:center;font-size:14px;color:var(--text-color);font-style:italic;padding:8px 10px;background:var(--bg-color);border-radius:8px;border-left:3px solid var(--prestudy-primary)}.vocab-example.playing{background:var(--blue-0)}.vocab-example-text{flex:1;min-width:0}.vocab-example-jp{font-size:13px;color:var(--text-muted);margin-top:4px;padding-left:14px;font-style:normal;min-height:1em}.article-content{background:var(--card-bg);border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a}.article-paragraph-block{margin-bottom:16px}.article-paragraph-block:last-child{margin-bottom:0}.article-paragraph{padding:16px;border-radius:8px;transition:all .2s;font-family:Georgia,Times New Roman,serif;font-size:18px;line-height:1.9}.article-paragraph:hover{background:var(--blue-0)}.article-paragraph.playing{background:var(--blue-0);border:2px solid var(--prestudy-primary)}.article-paragraph-jp{font-size:13px;color:var(--text-muted);margin-top:6px;padding:0 16px;line-height:1.6;min-height:1em}.vocab-highlight{background-color:color-mix(in srgb,var(--primary) 18%,transparent);border-bottom:1.5px solid var(--primary);border-radius:2px;cursor:pointer;position:relative}.vocab-highlight:hover{background-color:color-mix(in srgb,var(--primary) 30%,transparent)}.vocab-popup{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:10px 12px;min-width:160px;max-width:260px;box-shadow:0 4px 16px #00000026;z-index:100;white-space:normal;pointer-events:none}.vocab-popup-word{font-weight:600;font-size:14px;color:var(--primary);margin-bottom:2px}.vocab-popup-jp{font-size:13px;color:var(--text-secondary);margin-bottom:4px}.vocab-popup-def{font-size:12px;color:var(--text-muted);line-height:1.5}.comp-q{display:flex;align-items:flex-start;gap:8px;padding:8px 12px;margin:8px 16px 0;background:var(--blue-0);border-radius:6px;border-left:3px solid var(--prestudy-primary);cursor:pointer;transition:background .15s}.comp-q:hover{background:var(--blue-0)}.comp-q.playing{background:var(--blue-1)}.comp-q-icon{flex-shrink:0;width:20px;height:20px;background:var(--prestudy-primary);color:#fff;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;margin-top:1px}.comp-q-content{display:flex;flex-direction:column;gap:2px}.comp-q-text{font-size:14px;color:var(--text-color);line-height:1.5}.comp-q-jp{font-size:12px;color:var(--text-muted);line-height:1.4}.comp-q-choices{display:flex;flex-direction:column;gap:6px;margin-top:8px}.comp-q-choice{text-align:left;padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;background:#fff;font-size:13px;color:var(--text-color);cursor:pointer;transition:all .15s;line-height:1.5}.comp-q-choice:hover:not(:disabled){border-color:var(--prestudy-primary);background:var(--blue-0)}.comp-q-choice.answered{cursor:default;opacity:.7}.comp-q-choice.correct{border-color:#10b981;background:#ecfdf5;color:#065f46;opacity:1;font-weight:600}.comp-q-choice.incorrect{border-color:#ef4444;background:#fef2f2;color:#991b1b;opacity:1}.discussion-list{display:flex;flex-direction:column;gap:16px}.discussion-topic-group{margin-bottom:20px}.discussion-topic-group:last-child{margin-bottom:0}.discussion-topic-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:15px;font-weight:700;color:var(--prestudy-primary-dark);margin-bottom:12px;padding:8px 12px;background:var(--blue-0);border-radius:8px}.topic-label{font-size:11px;font-weight:600;color:#fff;background:var(--prestudy-primary);padding:2px 8px;border-radius:4px;flex-shrink:0}.topic-name{flex-shrink:0}.discussion-card{background:var(--card-bg);border-radius:12px;padding:20px;margin-bottom:12px;box-shadow:0 1px 3px #0000001a;cursor:pointer;transition:all .2s;display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.discussion-card-jp{width:100%;font-size:13px;color:var(--text-muted);line-height:1.6;margin:0;padding-left:52px;min-height:1em}.discussion-topic-jp{font-size:13px;font-weight:400;color:var(--text-muted)}.discussion-phrases{width:100%;padding-left:52px;margin-top:4px}.phrases-label{font-size:11px;color:var(--text-muted);margin-bottom:4px}.phrase-chip{display:inline-block;background:var(--blue-0);color:var(--blue-10);font-size:12px;padding:3px 10px;border-radius:12px;margin:2px 4px 2px 0;line-height:1.5}.phrases-loading{font-size:12px;color:var(--text-muted);font-style:italic}.discussion-card:hover{background:var(--blue-0);box-shadow:0 2px 8px color-mix(in srgb,var(--prestudy-primary) 15%,transparent)}.discussion-card.playing{background:var(--blue-0);border:2px solid var(--prestudy-primary)}.discussion-number{flex-shrink:0;width:36px;height:36px;background:linear-gradient(135deg,var(--prestudy-primary),var(--prestudy-primary-dark));color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px}.discussion-text{font-size:15px;line-height:1.6;color:var(--text-color);flex:1}.discussion-answer{width:100%;padding-left:52px;margin-top:8px}.discussion-answer-label{font-size:11px;color:var(--text-muted);margin-bottom:4px}.discussion-answer textarea{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:8px;font-size:14px;font-family:inherit;color:var(--text-color);resize:vertical;transition:border-color .2s;box-sizing:border-box}.discussion-answer textarea:focus{outline:none;border-color:var(--prestudy-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--prestudy-primary) 15%,transparent)}.discussion-answer-actions{display:flex;gap:8px;margin-top:6px;align-items:center}.discussion-answer-btn{padding:6px 20px;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;background:var(--prestudy-primary);color:#fff;transition:all .2s}.discussion-mic-btn{padding:6px 10px;border:1px solid var(--border-color);border-radius:6px;font-size:16px;cursor:pointer;background:#fff;transition:all .2s;line-height:1}.discussion-mic-btn:hover{border-color:var(--prestudy-primary);background:var(--blue-0)}.discussion-mic-btn.listening{background:#ef4444;border-color:#ef4444;color:#fff;animation:mic-pulse 1.5s infinite}@keyframes mic-pulse{0%,to{opacity:1}50%{opacity:.6}}.discussion-answer-btn:hover:not(:disabled){background:var(--prestudy-primary-hover)}.discussion-answer-btn:disabled{opacity:.4;cursor:not-allowed}.discussion-answer-btn.done{background:#10b981;opacity:1}.discussion-feedback{margin-top:8px}.discussion-feedback:empty{display:none}.discussion-feedback-corrected{font-size:14px;color:var(--text-color);padding:10px 12px;background:#ecfdf5;border-radius:8px;border-left:3px solid #10b981;line-height:1.6;cursor:pointer;transition:background .15s}.discussion-feedback-corrected:hover,.discussion-feedback-corrected.playing{background:#d1fae5}.discussion-feedback-comment{font-size:13px;color:var(--text-muted);margin-top:6px;line-height:1.5}.review-expression-context{font-size:13px;color:var(--text-muted);margin-bottom:4px}.review-expression-example{font-size:14px;color:var(--text-color);font-style:italic;padding:8px 12px;background:#fff;border-radius:6px;border-left:3px solid var(--blue-5)}.review-improvements{margin-top:12px}.review-improvements h4{font-size:15px;font-weight:600;color:var(--text-color);margin-bottom:8px}.review-improvements ul{list-style:none;padding:0}.review-improvement{font-size:14px;color:var(--text-color);padding:8px 12px;margin-bottom:6px;background:var(--bg-color);border-radius:8px;line-height:1.5}.expressions-section{margin-top:20px;background:var(--card-bg);border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a}.expressions-section h3{font-size:18px;font-weight:600;color:var(--text-color);margin-bottom:4px}.expressions-description{font-size:13px;color:var(--text-muted);margin-bottom:16px}.expressions-loading{display:flex;align-items:center;gap:12px;padding:20px;color:var(--text-muted);font-size:14px}.expressions-loading .loading-spinner,.warmup-loading .loading-spinner,.phrases-loading .loading-spinner{width:20px;height:20px;border:2px solid var(--border-color);border-top-color:var(--prestudy-primary);border-radius:50%;animation:spin .8s linear infinite}.expression-cards{display:flex;flex-direction:column;gap:12px}.expression-card{padding:14px 16px;border-radius:10px;background:var(--bg-color);transition:all .2s}.expression-text{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;color:var(--prestudy-primary-dark);padding:6px 8px;margin:-6px -8px 6px}.expression-text.playing{background:var(--blue-0)}.expression-label{min-width:0}.expression-example{display:flex;align-items:center;font-size:14px;color:var(--text-color);font-style:italic;margin-bottom:4px;padding:6px 8px;margin-left:-8px;margin-right:-8px}.expression-example.playing{background:var(--blue-0)}.expression-japanese{font-size:13px;color:var(--text-muted);margin-left:8px;margin-bottom:8px}.expression-example-japanese{font-size:13px;color:var(--text-muted);margin-left:8px}.word-span{cursor:pointer;border-radius:3px;padding:1px 2px;transition:all .15s}.word-span:hover{background:color-mix(in srgb,var(--prestudy-primary) 15%,transparent);color:var(--prestudy-primary-dark)}.word-span:active{background:color-mix(in srgb,var(--prestudy-primary) 25%,transparent)}.bookmark-icon{font-size:20px;cursor:pointer;opacity:.4;transition:all .2s;flex-shrink:0}.bookmark-icon:hover{opacity:1;transform:scale(1.15)}.bookmark-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(20px);background:var(--gray-9);color:#fff;padding:12px 24px;border-radius:10px;font-size:14px;z-index:10000;opacity:0;transition:all .3s ease;pointer-events:none;box-shadow:0 4px 12px #0003}.bookmark-toast.show{opacity:1;transform:translate(-50%) translateY(0)}.bookmark-list{display:flex;flex-direction:column;gap:12px}.bookmark-card{background:var(--card-bg);border-radius:12px;padding:16px 20px;box-shadow:0 1px 3px #0000001a;transition:all .2s}.bookmark-card:hover{box-shadow:0 2px 8px color-mix(in srgb,var(--prestudy-primary) 15%,transparent)}.bookmark-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.bookmark-type-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:12px;text-transform:uppercase}.bookmark-type-badge.expression{background:var(--blue-0);color:var(--prestudy-primary-dark)}.bookmark-type-badge.word{background:var(--blue-1);color:var(--blue-8)}.bookmark-delete-btn{background:none;border:none;cursor:pointer;font-size:14px;color:var(--text-muted);padding:4px 8px;border-radius:6px;transition:all .2s}.bookmark-delete-btn:hover{background:#fef2f2;color:#ef4444}.bookmark-text{font-size:16px;font-weight:600;color:var(--prestudy-primary-dark);margin-bottom:4px;cursor:pointer;transition:color .2s}.bookmark-text:hover{color:var(--prestudy-primary)}.bookmark-context{font-size:14px;color:var(--text-color);font-style:italic;margin-bottom:4px;padding:8px 12px;background:var(--bg-color);border-radius:6px;border-left:3px solid var(--prestudy-primary);cursor:pointer;transition:color .2s}.bookmark-context:hover{color:var(--prestudy-primary)}.bookmark-japanese{font-size:13px;color:var(--text-muted);margin-top:4px}.bookmark-text-row{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}.bookmark-mic-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1.5px solid var(--border-color);border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s;flex-shrink:0}.bookmark-mic-btn:hover{border-color:var(--prestudy-primary);color:var(--prestudy-primary)}.bookmark-mic-btn.recording{border-color:#ef4444;color:#ef4444;animation:mic-pulse 1s ease-in-out infinite}@keyframes mic-pulse{0%,to{box-shadow:0 0 #ef44444d}50%{box-shadow:0 0 0 6px #ef444400}}.pronunciation-result{font-size:13px;padding:4px 10px;border-radius:6px;margin-top:6px}.pronunciation-result.listening{color:var(--text-muted)}.pronunciation-result.correct{color:#16a34a;background:#f0fdf4}.pronunciation-result.incorrect{color:#dc2626;background:#fef2f2}.bookmark-source{font-size:12px;color:var(--text-muted);margin-top:6px;opacity:.7}.read-aloud-section{margin:8px 16px 4px}.read-aloud-btn{padding:6px 14px;border:1px solid var(--prestudy-primary);border-radius:6px;background:#fff;color:var(--prestudy-primary);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.read-aloud-btn:hover{background:var(--prestudy-primary);color:#fff}.read-aloud-btn.listening{background:#ef4444;border-color:#ef4444;color:#fff}.read-aloud-result{margin-top:6px;font-size:13px;color:var(--text-muted)}.read-aloud-score{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:12px;font-size:13px;font-weight:600}.read-aloud-score.good{background:#ecfdf5;color:#065f46}.read-aloud-score.ok{background:#fefce8;color:#713f12}.read-aloud-score.poor{background:#fef2f2;color:#991b1b}.summary-section{margin-top:24px;padding:20px;background:var(--blue-0);border-radius:10px;border:1px dashed var(--prestudy-primary)}.summary-section h3{font-size:15px;font-weight:600;color:var(--prestudy-primary-dark);margin-bottom:10px}.summary-section textarea{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:8px;font-size:14px;font-family:inherit;color:var(--text-color);resize:vertical;min-height:80px;box-sizing:border-box;transition:border-color .2s}.summary-section textarea:focus{outline:none;border-color:var(--prestudy-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--prestudy-primary) 15%,transparent)}.summary-section button{margin-top:8px;padding:8px 20px;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;background:var(--prestudy-primary);color:#fff;transition:all .2s}.summary-section button:hover:not(:disabled){background:var(--prestudy-primary-hover)}.summary-section button:disabled{opacity:.4;cursor:not-allowed}.summary-feedback{margin-top:10px}.summary-feedback:empty{display:none}.summary-score-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.summary-score-badge{font-size:22px;font-weight:700;color:var(--prestudy-primary-dark)}.summary-feedback-text{font-size:13px;color:var(--text-color);line-height:1.6;padding:10px 12px;background:#fff;border-radius:8px;border-left:3px solid var(--prestudy-primary)}.fill-blank-section{margin-top:24px;padding:20px;background:var(--blue-0);border-radius:10px;border:1px dashed var(--prestudy-primary)}.fill-blank-section h3{font-size:15px;font-weight:600;color:var(--prestudy-primary-dark);margin-bottom:12px}.fill-blank-list{display:flex;flex-direction:column;gap:10px}.fill-blank-item{background:#fff;border-radius:8px;padding:12px 14px;box-shadow:0 1px 3px #0000000f}.fill-blank-sentence{font-size:14px;line-height:1.8;color:var(--text-color);display:flex;align-items:center;flex-wrap:wrap;gap:4px}.fill-blank-input{display:inline-block;border:none;border-bottom:2px solid var(--prestudy-primary);background:transparent;font-size:14px;font-family:inherit;color:var(--prestudy-primary-dark);padding:1px 4px;min-width:80px;outline:none;transition:all .2s}.fill-blank-input.correct{color:#065f46;border-bottom-color:#10b981;background:#ecfdf5}.fill-blank-input.incorrect{color:#991b1b;border-bottom-color:#ef4444;background:#fef2f2}.fill-blank-answer-hint{font-size:12px;color:#065f46;margin-left:4px;font-weight:600}.fill-blank-check-btn{margin-top:12px;padding:8px 20px;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;background:var(--prestudy-primary);color:#fff;transition:all .2s}.fill-blank-check-btn:hover{background:var(--prestudy-primary-hover)}.expr-write-section{margin-top:10px;padding:12px 14px;background:#f8fafc;border-radius:8px;border:1px dashed var(--gray-4)}.expr-write-label{font-size:12px;color:var(--text-muted);margin-bottom:6px}.expr-write-section textarea{width:100%;padding:8px 10px;border:1px solid var(--border-color);border-radius:6px;font-size:13px;font-family:inherit;color:var(--text-color);resize:vertical;min-height:56px;box-sizing:border-box;transition:border-color .2s}.expr-write-section textarea:focus{outline:none;border-color:var(--prestudy-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--prestudy-primary) 15%,transparent)}.expr-write-btn{margin-top:6px;padding:6px 16px;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;background:var(--prestudy-primary);color:#fff;transition:all .2s}.expr-write-btn:hover:not(:disabled){background:var(--prestudy-primary-hover)}.expr-write-btn:disabled{opacity:.4;cursor:not-allowed}.expr-write-feedback{margin-top:8px}.expr-write-feedback:empty{display:none}.expr-write-corrected{font-size:13px;color:var(--text-color);padding:8px 10px;background:#ecfdf5;border-radius:6px;border-left:3px solid #10b981;line-height:1.6;cursor:pointer;transition:background .15s}.expr-write-corrected:hover{background:#d1fae5}.expr-write-comment{font-size:12px;color:var(--text-muted);margin-top:5px;line-height:1.5}@media(max-width:768px){.selector-row{flex-wrap:wrap}.source-selector.active,.btn-load{flex-basis:100%}.prestudy-tabs{flex-wrap:wrap;gap:4px;padding:6px}.prestudy-tabs .tab-btn{flex:1 1 auto;padding:12px 8px;font-size:12px;white-space:nowrap;min-height:44px}.overview-card,.article-content,.last-lesson-review,.expressions-section{padding:16px}.overview-title{font-size:20px}.article-paragraph{font-size:16px;padding:12px}.discussion-card-jp,.discussion-phrases,.discussion-answer{padding-left:0}.speed-control-bar{flex-direction:column;gap:12px}.speed-control-bar .control-group{flex-wrap:wrap;justify-content:center}}.flashcard-banner{display:flex;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(135deg,var(--blue-0),var(--blue-1));border-radius:12px;text-decoration:none;color:var(--text-color, #333);transition:box-shadow .2s,transform .1s;margin-bottom:4px}.flashcard-banner:hover{box-shadow:0 2px 10px color-mix(in srgb,var(--prestudy-primary) 20%,transparent);transform:translateY(-1px)}.flashcard-banner-icon{font-size:28px;flex-shrink:0}.flashcard-banner-body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.flashcard-banner-body strong{font-size:14px;font-weight:700}.flashcard-banner-body small{font-size:12px;color:var(--text-muted, #666)}.flashcard-banner-arrow{font-size:18px;color:var(--text-muted, #666);flex-shrink:0}:root{--primary-color: var(--primary);--primary-hover: var(--primary-dark);--success-color: #10b981;--warning-color: #f59e0b;--danger-color: #ef4444;--purple-color: var(--blue-6);--bg-color: var(--bg);--card-bg: var(--surface);--text-color: var(--text);--text-muted: var(--gray-6);--border-color: var(--gray-3)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--bg-color);color:var(--text-color);line-height:1.6}.practice-container{max-width:1200px;margin:0 auto}.practice-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:linear-gradient(135deg,var(--primary-color),var(--purple-color));color:#fff;border-radius:12px;margin-bottom:20px}.header-left{display:flex;align-items:center;gap:12px}.header-left .logo{font-size:28px}.header-left h1{font-size:24px;font-weight:600}.demo-btn{background:#fff3;padding:8px 16px;border-radius:20px;font-size:13px;font-weight:500;border:1px solid rgba(255,255,255,.3);color:#fff;cursor:pointer;transition:all .2s}.demo-btn:hover{background:#ffffff4d}.header-right{display:flex;gap:8px}.demo-btn.active{background:#ffffffe6;color:var(--primary-color)}.demo-badge{background:var(--blue-5);color:#fff;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;margin-left:12px}.empty-state{text-align:center;padding:48px 24px;background:var(--card-bg);border-radius:12px;box-shadow:0 1px 3px #0000001a}.empty-state-icon{font-size:64px;margin-bottom:16px}.empty-state h2{font-size:20px;color:var(--text-color);margin-bottom:8px}.empty-state p{color:var(--text-muted);font-size:14px;margin-bottom:24px}.empty-state .btn-primary{display:inline-block}.practice-tabs{display:flex;gap:8px;margin-bottom:20px;background:var(--card-bg);padding:8px;border-radius:12px;box-shadow:0 1px 3px #0000001a}.practice-tabs .tab-btn{flex:1;padding:12px 20px;border:none;background:transparent;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;color:var(--text-muted)}.practice-tabs .tab-btn:hover{background:var(--bg-color);color:var(--text-color)}.practice-tabs .tab-btn.active{background:var(--primary-color);color:#fff}.tab-content{display:none}.tab-content.active{display:block}.summary-header{text-align:center;margin-bottom:24px}.summary-header h2{font-size:22px;margin-bottom:8px}.lesson-meta{display:flex;justify-content:center;gap:20px;color:var(--text-muted);font-size:14px}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.summary-card{background:var(--card-bg);border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a}.summary-card h3{font-size:16px;margin-bottom:16px;color:var(--text-color)}.summary-card ul{list-style:none}.summary-card li{padding:8px 0;border-bottom:1px solid var(--border-color);font-size:14px}.summary-card li:last-child{border-bottom:none}.summary-card li:before{content:"•";color:var(--primary-color);margin-right:8px}.metrics-list{display:flex;flex-direction:column;gap:16px}.metric-item{display:flex;flex-direction:column;gap:6px}.metric-header{display:flex;justify-content:space-between;align-items:center}.metric-label{font-size:14px;font-weight:500;color:var(--text-color)}.metric-value{font-size:16px;font-weight:600;color:var(--primary-color)}.metric-description{font-size:12px;color:var(--text-muted)}.metric-na{opacity:.5}.metric-na .metric-value{color:var(--text-muted)}.metric-bar{height:8px;background:var(--bg-color);border-radius:4px;overflow:hidden}.metric-bar-fill{height:100%;border-radius:4px;transition:width .5s ease}.metric-bar-fill.green{background:linear-gradient(90deg,var(--blue-5),var(--blue-3))}.metric-bar-fill.blue{background:linear-gradient(90deg,var(--primary-color),var(--blue-3))}.metric-bar-fill.purple{background:linear-gradient(90deg,var(--blue-6),var(--blue-4))}.metric-bar-fill.amber{background:linear-gradient(90deg,var(--blue-5),var(--blue-3))}.metric-bar-fill.pink{background:linear-gradient(90deg,var(--blue-4),var(--blue-2))}.metric-stars{display:flex;gap:4px}.metric-stars .star{font-size:18px;color:var(--gray-4)}.metric-stars .star.filled{color:var(--blue-5)}.metric-delta{font-size:12px;font-weight:500;margin-left:8px}.metric-delta.positive{color:#10b981}.metric-delta.negative{color:#ef4444}.metric-delta.neutral{color:var(--gray-6)}.growth-chart{grid-column:span 2}.chart-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px;flex-wrap:wrap}.chart-tabs{display:flex;gap:8px}.period-selector select{padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:13px;background:#fff;cursor:pointer}.chart-tab{padding:8px 16px;border:1px solid var(--border-color);background:#fff;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s}.chart-tab:hover{border-color:var(--primary-color)}.chart-tab.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.chart-container{background:var(--bg-color);border-radius:8px;padding:12px}.chart-svg{width:100%;height:auto;display:block}.chart-summary{display:flex;justify-content:space-around;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}.chart-stat{text-align:center}.chart-stat-label{font-size:12px;color:var(--text-muted);margin-bottom:4px}.chart-stat-value{font-size:18px;font-weight:600;color:var(--text-color)}.chart-stat-value.positive{color:#10b981}.chart-stat-value.negative{color:#ef4444}.phase-list{display:flex;flex-direction:column;gap:12px}.phase-item{display:grid;grid-template-columns:100px 1fr;grid-template-rows:auto auto;gap:6px 16px;padding:14px 16px;background:var(--bg-color);border-radius:10px;align-items:center}.phase-badge{grid-row:1 / 3;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600;color:#fff;text-align:center;white-space:nowrap}.phase-stars{font-size:18px;letter-spacing:3px;line-height:1}.phase-stars .stars{color:var(--blue-5)}.phase-reason{font-size:13px;color:var(--text-color);line-height:1.5}.expression-tags{display:flex;flex-wrap:wrap;gap:8px}.expression-tag{background:var(--bg-color);padding:6px 12px;border-radius:16px;font-size:13px;color:var(--text-color)}.expression-to-learn{padding:12px;background:var(--bg-color);border-radius:8px;margin-bottom:12px}.expression-to-learn:last-child{margin-bottom:0}.expression-to-learn .expression{font-weight:600;color:var(--primary-color);font-size:15px}.expression-to-learn .context{font-size:12px;color:var(--text-muted);margin:4px 0}.expression-to-learn .example{font-size:13px;font-style:italic;color:var(--text-color)}.practice-intro{text-align:center;padding:24px;background:var(--card-bg);border-radius:12px;margin-bottom:24px;box-shadow:0 1px 3px #0000001a}.practice-intro h2{font-size:20px;margin-bottom:8px}.practice-intro p{color:var(--text-muted);font-size:14px}.speed-control-bar{display:none;align-items:center;justify-content:center;gap:24px;padding:12px 20px;background:var(--card-bg);border-radius:10px;margin-bottom:20px;box-shadow:0 1px 3px #0000001a}.speed-control-bar.visible{display:flex}.speed-control-bar .control-group{display:flex;align-items:center;gap:8px}.speed-control-bar label{font-size:14px;color:var(--text-muted)}.voice-btn,.voice-tutor-btn,.voice-user-btn{padding:8px 16px;border:1px solid var(--border-color);background:#fff;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s}.voice-tutor-btn,.voice-user-btn{padding:6px 12px}.voice-btn:hover,.voice-tutor-btn:hover,.voice-user-btn:hover{border-color:var(--primary-color)}.voice-btn.active,.voice-tutor-btn.active,.voice-user-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.voice-roleplay{gap:6px!important}.voice-roleplay label{margin-left:8px}.voice-roleplay label:first-child{margin-left:0}.speed-btn{padding:8px 16px;border:1px solid var(--border-color);background:#fff;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s}.speed-btn:hover{border-color:var(--primary-color)}.speed-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.reading-categories,.shadowing-categories{display:flex;flex-direction:column;gap:20px}.practice-category{background:var(--card-bg);border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a}.practice-category h3{font-size:16px;margin-bottom:16px;display:flex;align-items:center;gap:8px}.practice-item{display:flex;flex-direction:column;padding:16px;background:var(--bg-color);border-radius:8px;margin-bottom:12px;cursor:pointer;transition:all .2s}.practice-item:last-child{margin-bottom:0}.practice-item:hover{background:var(--border-color)}.practice-item.playing{background:var(--blue-1);border:2px solid var(--primary-color)}.practice-item .english{font-size:15px;font-weight:500;margin-bottom:6px}.practice-item .japanese{font-size:13px;color:var(--text-muted)}.practice-item .play-icon{font-size:18px;opacity:.6}.practice-item:hover .play-icon{opacity:1}.scenario-selector{display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--card-bg);border-radius:12px;margin-bottom:20px;box-shadow:0 1px 3px #0000001a}.scenario-selector label{font-size:14px;color:var(--text-muted)}.scenario-selector select{flex:1;padding:10px 14px;border:1px solid var(--border-color);border-radius:8px;font-size:14px;background:#fff}.btn-primary,.btn-secondary{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--bg-color);color:var(--text-color);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--border-color)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.roleplay-area{background:var(--card-bg);border-radius:12px;padding:24px;min-height:300px;box-shadow:0 1px 3px #0000001a}.roleplay-placeholder{display:flex;align-items:center;justify-content:center;height:250px;color:var(--text-muted);font-size:14px}.roleplay-exchange{padding:16px;margin-bottom:12px;border-radius:12px;max-width:80%;cursor:pointer;transition:all .2s}.roleplay-exchange:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.roleplay-exchange.playing{box-shadow:0 0 0 2px var(--primary-color)}.roleplay-exchange.tutor{background:var(--blue-0);border:1px solid var(--blue-2);margin-right:auto}.roleplay-exchange.user{background:var(--blue-0);border:1px solid var(--blue-2);margin-left:auto}.roleplay-exchange.active{animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.roleplay-exchange .speaker{font-size:12px;font-weight:600;margin-bottom:6px;color:var(--text-muted)}.roleplay-exchange .text{font-size:15px;line-height:1.5}.roleplay-exchange .hint{font-size:12px;color:var(--warning-color);margin-top:8px;font-style:italic}.roleplay-exchange.waiting{opacity:.5}.roleplay-exchange.completed{opacity:.7}.roleplay-controls{display:flex;justify-content:center;gap:12px;margin-top:20px}.btn-complete{display:block;width:100%;max-width:400px;margin:0 auto 16px;padding:14px 24px;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));color:#fff}.btn-complete:hover:not(.completed){background:linear-gradient(135deg,var(--primary-hover),var(--blue-10));transform:translateY(-1px);box-shadow:0 4px 12px var(--shadow-3)}.btn-complete.completed{background:linear-gradient(135deg,var(--blue-5),var(--blue-7));pointer-events:none}.practice-footer{text-align:center;padding:24px;color:var(--text-muted);font-size:13px}@media(max-width:768px){.practice-container{padding:12px}.practice-header{flex-direction:column;gap:12px;text-align:center;padding:16px}.header-left h1{font-size:20px}.practice-tabs{flex-wrap:wrap;gap:4px;padding:6px}.practice-tabs .tab-btn{flex:1 1 45%;padding:10px;font-size:13px}.summary-grid{grid-template-columns:1fr}.growth-chart{grid-column:span 1}.chart-controls{flex-direction:column;align-items:stretch}.chart-tabs{flex-wrap:wrap}.phase-item{grid-template-columns:80px 1fr;gap:4px 12px}.scenario-selector{flex-direction:column;align-items:stretch}.roleplay-exchange{max-width:95%}.speed-control-bar{flex-direction:column;gap:12px}.speed-control-bar .control-group{flex-wrap:wrap;justify-content:center}}.history-container{max-width:1200px;margin:0 auto;background:var(--surface);border-radius:16px;box-shadow:var(--shadow-2);overflow:hidden}.header{background:linear-gradient(135deg,var(--primary) 0%,var(--blue-8) 100%);color:#fff;padding:24px 32px}.header-content{display:flex;justify-content:space-between;align-items:center}.title{display:flex;align-items:center;gap:12px;font-size:28px;font-weight:600}.logo{font-size:32px}.btn{padding:10px 16px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-primary:hover{background:var(--blue-8)}.main{padding:32px;min-height:400px}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--gray-6)}.spinner{width:40px;height:40px;border:4px solid var(--gray-2);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}.empty-state{text-align:center;padding:60px 20px;color:var(--gray-6)}.empty-icon{font-size:64px;margin-bottom:16px}.empty-state h2{font-size:24px;margin-bottom:8px;color:var(--gray-7)}.empty-state p{font-size:16px}.lesson-list{display:flex;flex-direction:column;gap:20px}.rj-lesson-card{background:var(--gray-0);border-radius:12px;padding:20px;border:1px solid var(--gray-2);transition:all .2s}.rj-lesson-card:hover{box-shadow:0 4px 12px #0000001a;border-color:var(--gray-4)}.rj-card-header{display:flex;justify-content:space-between;align-items:center}.rj-card-info{display:flex;flex-direction:column;gap:4px}.rj-card-date{font-size:16px;font-weight:600;color:var(--gray-9)}.rj-card-time{font-size:13px;color:var(--gray-6)}.rj-card-teacher{font-size:14px;color:var(--gray-7);margin-top:2px}.rj-card-actions{display:flex;gap:8px;align-items:center}.btn-report{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:linear-gradient(135deg,var(--primary),var(--blue-8));color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-report:hover{transform:translateY(-1px);box-shadow:0 2px 8px var(--shadow-3)}.btn-report.has-report{background:#fff;color:var(--primary);border:1.5px solid var(--primary)}.btn-report.has-report:hover{background:var(--blue-0);box-shadow:0 2px 8px color-mix(in srgb,var(--primary) 20%,transparent)}.btn-report:disabled{opacity:.7;cursor:not-allowed;transform:none;box-shadow:none}.btn-report.loading{background:var(--gray-6)}.btn-detail-link{display:inline-flex;align-items:center;gap:4px;padding:8px 12px;background:#fff;color:var(--gray-7);border:1px solid var(--gray-2);border-radius:8px;font-size:13px;cursor:pointer;transition:all .2s;text-decoration:none}.btn-detail-link:hover{background:var(--gray-1);border-color:var(--gray-4)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:#fff;border-radius:16px;max-width:700px;width:100%;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-4)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--gray-2);flex-shrink:0}.modal-header h2{font-size:20px;color:var(--gray-9);display:flex;align-items:center;gap:12px}.swap-speakers-btn{font-size:13px;padding:4px 12px;border:1px solid var(--blue-4);border-radius:6px;background:var(--blue-0);color:var(--blue-7);cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}.swap-speakers-btn:hover{background:var(--blue-1);border-color:var(--blue-7)}.swap-speakers-btn:disabled{opacity:.6;cursor:not-allowed}.modal-close{background:none;border:none;font-size:28px;color:var(--gray-5);cursor:pointer;padding:4px 8px;line-height:1;border-radius:4px}.modal-close:hover{color:var(--gray-7);background:var(--gray-1)}.modal-body{padding:24px;overflow-y:auto}.report-section{margin-bottom:24px}.report-section:last-child{margin-bottom:0}.report-section h3{font-size:16px;font-weight:600;color:var(--primary);margin-bottom:10px;padding-bottom:6px;border-bottom:2px solid var(--gray-2)}.report-section p{font-size:14px;line-height:1.8;color:var(--gray-7)}.report-section ul{list-style:none;padding:0}.report-section li{font-size:14px;line-height:1.7;color:var(--gray-7);padding:6px 0 6px 20px;position:relative}.report-section li:before{content:"";position:absolute;left:0;top:13px;width:8px;height:8px;background:var(--primary);border-radius:50%}.report-section.expressions li:before{background:var(--blue-5)}.speaking-stats{background:var(--gray-0);border-radius:12px;padding:20px;border:1px solid var(--gray-2)}.ratio-bar-container{margin-bottom:16px}.ratio-bar{display:flex;height:32px;border-radius:8px;overflow:hidden;font-size:13px;font-weight:600;color:#fff}.ratio-bar-teacher{background:var(--blue-6);display:flex;align-items:center;justify-content:center;min-width:40px}.ratio-bar-student{background:var(--primary);display:flex;align-items:center;justify-content:center;min-width:40px}.ratio-bar-labels{display:flex;justify-content:space-between;margin-top:4px;font-size:12px;color:var(--gray-6)}.ratio-label-teacher{color:var(--blue-6);font-weight:600}.ratio-label-student{color:var(--primary);font-weight:600}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px}.stat-item{text-align:center}.stat-value{font-size:20px;font-weight:700;color:var(--gray-9)}.stat-label{font-size:12px;color:var(--gray-6);margin-top:2px}.comparison-row{display:flex;gap:12px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--gray-2);font-size:13px}.comparison-label{color:var(--gray-6);font-weight:600}.comparison-up{color:#16a34a;font-weight:600}.comparison-down{color:#dc2626;font-weight:600}.comparison-same{color:var(--gray-5);font-weight:600}.correction-item{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:start;padding:12px;margin-bottom:12px;border-radius:8px;background:#fafafa;border:1px solid var(--gray-2)}.correction-item:last-child{margin-bottom:0}.correction-original{background:#fef2f2;padding:8px 12px;border-radius:6px;font-size:14px;color:#991b1b;text-decoration:line-through;line-height:1.6}.correction-arrow{display:flex;align-items:center;font-size:18px;color:var(--gray-5);padding-top:6px}.correction-corrected{background:var(--blue-0);padding:8px 12px;border-radius:6px;font-size:14px;color:#166534;font-weight:500;line-height:1.6}.correction-explanation{grid-column:1 / -1;font-size:13px;color:var(--gray-6);line-height:1.5;padding-top:4px}.correction-type-badge{display:inline-block;font-size:11px;font-weight:600;border-radius:4px;padding:1px 6px;grid-column:1 / -1}.correction-type-badge.accuracy{color:var(--blue-8);background:var(--blue-0);border:1px solid var(--blue-2)}.correction-type-badge.error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca}.correction-item.accuracy{border-left:3px solid var(--blue-5)}.correction-item.error{border-left:3px solid #ef4444}.correction-item.accuracy .correction-original{text-decoration:none;color:var(--blue-9)}.missed-expression-item{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:start;padding:10px 14px;border-radius:8px;background:var(--blue-1);border-left:3px solid var(--blue-5);margin-bottom:8px}.missed-attempted{color:var(--blue-9);font-size:14px;font-style:italic}.missed-suggested{color:#065f46;font-weight:500;font-size:14px}.missed-expression-item .correction-arrow{color:var(--blue-5)}.missed-expression-item .correction-explanation{grid-column:1 / -1}.paraphrase-item{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:start;padding:10px 14px;border-radius:8px;background:var(--blue-0);border-left:3px solid var(--blue-6);margin-bottom:8px}.paraphrase-original{color:var(--blue-9);font-size:14px}.paraphrase-improved{color:#065f46;font-weight:500;font-size:14px}.paraphrase-item .correction-arrow{color:var(--blue-6)}.paraphrase-item .correction-explanation{grid-column:1 / -1}.report-section.teacher-expressions li:before{background:var(--blue-6)}.report-section.teacher-expressions li{margin-bottom:8px}.teacher-expr-context{font-size:13px;color:var(--gray-6);margin-top:2px}.teacher-expr-example{font-size:13px;color:var(--gray-7);font-style:italic;margin-top:2px}.btn-transcript{display:inline-flex;align-items:center;gap:4px;padding:8px 12px;background:#fff;color:var(--primary);border:1.5px solid var(--primary);border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-transcript:hover{background:var(--blue-0);border-color:var(--blue-8)}.btn-transcript:disabled{opacity:.7;cursor:not-allowed}.transcript-container{display:flex;flex-direction:column;gap:6px;padding:8px 0}.transcript-segment{display:flex;max-width:80%;font-size:14px;line-height:1.6}.transcript-teacher{align-self:flex-start}.transcript-student{align-self:flex-end}.transcript-unknown{align-self:flex-start}.transcript-bubble{padding:8px 12px;border-radius:12px}.transcript-teacher .transcript-bubble{background:var(--blue-0);border-top-left-radius:4px}.transcript-student .transcript-bubble{background:var(--blue-0);border-top-right-radius:4px}.transcript-unknown .transcript-bubble{background:var(--gray-0)}.transcript-speaker{display:block;font-size:11px;font-weight:600;margin-bottom:2px}.transcript-teacher .transcript-speaker{color:var(--blue-6)}.transcript-student .transcript-speaker{color:var(--primary)}.transcript-unknown .transcript-speaker{color:var(--gray-5)}.transcript-text{color:var(--gray-7)}.transcript-time{display:block;font-size:11px;color:var(--gray-5);font-variant-numeric:tabular-nums;margin-top:4px;text-align:right}.sns-post-section{border:1.5px dashed var(--blue-3);border-radius:12px;padding:16px;background:var(--blue-0)}.sns-post-section h3{color:var(--blue-8);border-bottom-color:var(--blue-2)}.sns-generating{font-size:13px;color:var(--gray-6)}.sns-template-block{position:relative;background:#fff;border:1px solid var(--blue-2);border-radius:10px;padding:16px;margin-bottom:16px}.sns-title{font-size:16px;font-weight:700;color:var(--gray-9);margin-bottom:10px;line-height:1.5}.sns-body{font-size:14px;line-height:1.9;color:var(--gray-7);word-break:break-word}.btn-copy{display:inline-block;margin-top:10px;padding:5px 12px;background:#fff;color:var(--primary);border:1.5px solid var(--primary);border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.btn-copy:hover{background:var(--blue-0)}.sns-highlights-block{margin-bottom:8px}.sns-highlights-label{font-size:13px;font-weight:700;color:var(--gray-7);margin-bottom:10px}.sns-highlight-card{padding:8px 0;border-bottom:1px solid var(--gray-2)}.sns-highlight-card:last-child{border-bottom:none}.sns-phrase{font-size:14px;font-weight:700;color:var(--gray-9);font-style:italic;word-break:break-word}.sns-translation{font-size:13px;color:var(--gray-6);line-height:1.6;margin-top:2px}.sns-error{font-size:13px;color:#dc2626;margin-bottom:10px}.sns-regen-area{margin-top:16px;padding-top:14px;border-top:1px solid var(--blue-2)}.btn-sns-regen{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;background:#fff;color:var(--primary);border:1.5px solid var(--primary);border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.btn-sns-regen:hover{background:var(--blue-0)}.sns-regen-input-area{margin-top:10px}.sns-regen-textarea{width:100%;min-height:64px;padding:10px 12px;border:1px solid var(--gray-4);border-radius:8px;font-size:13px;line-height:1.6;resize:vertical;color:var(--gray-7);box-sizing:border-box}.sns-regen-textarea:focus{outline:none;border-color:var(--primary)}.sns-regen-actions{display:flex;gap:8px;margin-top:8px}.btn-sns-submit{padding:8px 16px;background:linear-gradient(135deg,var(--primary),var(--blue-8));color:#fff;border:none;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.btn-sns-submit:hover{opacity:.9}.btn-sns-cancel{padding:8px 14px;background:#fff;color:var(--gray-6);border:1px solid var(--gray-2);border-radius:7px;font-size:13px;cursor:pointer;transition:all .15s}.btn-sns-cancel:hover{background:var(--gray-1)}.btn-delete{padding:8px 12px;background:none;color:#e87171;border:1px solid #e87171;border-radius:8px;font-size:13px;cursor:pointer;transition:all .2s}.btn-delete:hover{color:#fff;background:#dc2626;border-color:#dc2626}.btn-delete:disabled{opacity:.7;cursor:not-allowed}@media(max-width:768px){.header{padding:16px 20px}.header-content{flex-direction:column;align-items:flex-start;gap:16px}.title{font-size:22px}.main{padding:16px}.rj-card-header{flex-direction:column;align-items:flex-start;gap:12px}.rj-card-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.btn-report,.btn-detail-link,.btn-delete,.btn-transcript{font-size:12px;padding:8px 10px;justify-content:center;text-align:center;min-width:0;white-space:nowrap}.modal{max-height:90vh;border-radius:12px}.modal-overlay{padding:12px}.modal-header,.modal-body{padding:16px}.correction-item{grid-template-columns:1fr}.correction-arrow{justify-content:center;padding:0}.correction-explanation{grid-column:1}.stats-grid{grid-template-columns:repeat(3,1fr)}.comparison-row{flex-wrap:wrap}.history-container{box-shadow:none;border-radius:12px}.rj-lesson-card{padding:16px}}.dashboard-container{max-width:640px;margin:0 auto;padding:20px 0}.hidden{display:none!important}.loading-section{text-align:center;padding:60px 20px}.loading-section .spinner{width:32px;height:32px;border:3px solid var(--gray-2);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}.loading-section p{font-size:15px;color:var(--gray-6)}@keyframes spin{to{transform:rotate(360deg)}}.section{padding:0}.login-card{background:#fff;border-radius:12px;box-shadow:0 2px 12px var(--shadow-1);padding:32px 28px;max-width:420px;margin:40px auto 0}.login-title{font-size:20px;font-weight:700;color:var(--gray-9);margin-bottom:4px}.section-message{margin-bottom:20px;color:var(--gray-6);font-size:14px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:14px;color:var(--gray-7);font-weight:500}.text-input{width:100%;padding:12px 14px;border:1px solid var(--gray-2);border-radius:8px;font-size:15px;color:var(--gray-9);background:#fff;transition:border-color .2s,box-shadow .2s}.text-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}.remember-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--gray-6);margin-bottom:16px;cursor:pointer;-webkit-user-select:none;user-select:none}.remember-label input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.btn{padding:12px 20px;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.btn.full-width{width:100%}.btn-primary:disabled{background:var(--blue-4);cursor:not-allowed}.btn-small{padding:8px 14px;font-size:13px}.error-message{background:#fef2f2;color:#dc2626;padding:12px 14px;border-radius:8px;margin-top:16px;font-size:14px}.auth-links{display:flex;justify-content:space-between;margin-top:20px;padding-top:16px;border-top:1px solid var(--gray-2)}.auth-links a{color:var(--primary);text-decoration:none;font-size:13px}.auth-links a:hover{text-decoration:underline}.welcome-card{background:#fff;border-radius:12px;box-shadow:0 2px 12px var(--shadow-1);padding:16px 20px;display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.welcome-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.user-name{font-size:16px;font-weight:700;color:var(--gray-9)}.btn-logout{background:none;border:1px solid var(--gray-2);color:var(--gray-6);padding:6px 14px;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s}.btn-logout:hover{background:var(--gray-1);color:var(--gray-7)}.streak-badges{display:flex;gap:6px;flex-wrap:wrap}.streak-badge-item{font-size:12px;font-weight:600;padding:3px 8px;border-radius:6px;white-space:nowrap}.streak-badge-lesson{color:var(--blue-8);background:var(--blue-0)}.streak-badge-prestudy{color:var(--blue-9);background:var(--blue-0)}.streak-badge-review{color:var(--blue-8);background:var(--blue-0)}.active-lesson{margin-bottom:16px}.active-lesson-card{background:linear-gradient(135deg,var(--blue-0),var(--blue-1));border:2px solid var(--primary);border-radius:12px;padding:16px 20px}.active-lesson-status{display:flex;align-items:center;gap:10px;margin-bottom:6px}.status-badge{display:inline-block;background:var(--primary);color:#fff;font-size:12px;font-weight:600;padding:3px 10px;border-radius:6px}.active-lesson-time{font-size:18px;font-weight:700;color:var(--gray-9)}.active-lesson-teacher{font-size:15px;font-weight:600;color:var(--gray-9);margin-bottom:4px}.active-lesson-material{font-size:13px;color:var(--primary);margin-bottom:10px}.btn-room{display:block;width:100%;padding:12px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;text-align:center;text-decoration:none;transition:transform .15s,box-shadow .15s}.btn-room:hover{transform:translateY(-1px);box-shadow:0 4px 12px var(--shadow-3);text-decoration:none;color:#fff}.btn-room:active{transform:translateY(0)}.btn-room[disabled]{background:linear-gradient(135deg,var(--blue-4),var(--blue-5));cursor:not-allowed;opacity:.6;transform:none;box-shadow:none}.reminder-card{background:#fff;border-radius:12px;box-shadow:0 2px 12px var(--shadow-1);padding:20px;margin-bottom:16px;border-left:4px solid var(--blue-5)}.reminder-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.reminder-header h3{font-size:16px;color:var(--blue-8);margin:0;font-weight:700}.next-lesson{padding:4px 0}.no-lesson{color:var(--gray-5);font-size:14px;text-align:center;padding:12px 0}.lesson-card{background:var(--blue-0);border-radius:8px;padding:12px 16px}.lesson-time{font-size:20px;font-weight:700;color:var(--blue-8);margin-bottom:2px}.lesson-date{font-size:13px;color:var(--gray-6);margin-bottom:4px}.lesson-teacher{font-size:14px;color:var(--gray-9)}.lesson-actions{margin-top:10px;display:flex;gap:8px}.lesson-actions .btn-room{flex:1}.study-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.prestudy-card,.review-card{background:#fff;border-radius:12px;box-shadow:0 2px 12px var(--shadow-1);padding:20px}.prestudy-card{border-top:4px solid var(--blue-6)}.review-card{border-top:4px solid var(--primary)}.prestudy-card h3,.review-card h3{font-size:16px;margin:0 0 6px;font-weight:700}.prestudy-card h3{color:var(--blue-7)}.review-card h3{color:var(--blue-8)}.study-desc{font-size:13px;color:var(--gray-6);margin-bottom:12px;line-height:1.5}.btn-prestudy-action{background:linear-gradient(135deg,var(--blue-6),var(--blue-8));color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;font-size:14px}.btn-prestudy-action:hover{background:linear-gradient(135deg,var(--blue-7),var(--blue-9))}.btn-review{background:linear-gradient(135deg,var(--blue-8),var(--blue-9));color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;font-size:14px}.btn-review:hover{background:linear-gradient(135deg,var(--blue-9),var(--blue-10))}.btn-history{background:#fff;color:var(--gray-7);border:1px solid var(--gray-2);display:flex;align-items:center;justify-content:center;gap:8px;font-weight:600;padding:12px 16px;font-size:15px;border-radius:12px;box-shadow:0 2px 12px var(--shadow-1)}.btn-history:hover{background:var(--blue-0);border-color:var(--primary);color:var(--primary-dark)}.btn-icon-small{background:none;border:none;cursor:pointer;padding:6px;border-radius:6px;color:var(--gray-6);display:flex;align-items:center;transition:all .2s}.btn-icon-small:hover{background:var(--gray-1);color:var(--primary)}.btn-icon-small.spinning svg{animation:spin .8s linear infinite}@media(max-width:640px){.dashboard-container{padding:12px 0}.login-card{margin:20px auto 0;padding:24px 20px}.study-grid{grid-template-columns:1fr}.welcome-card,.reminder-card,.prestudy-card,.review-card,.active-lesson-card{padding:16px}}.settings-container{max-width:600px;margin:0 auto;padding:16px}.settings-header{margin-bottom:24px}.settings-header h1{font-size:24px;font-weight:600;color:var(--gray-9)}.settings-main{background:#fff;border-radius:12px;padding:20px;border:1px solid var(--gray-2);display:flex;flex-direction:column;gap:16px}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.setting-info{flex:1}.setting-info label{display:block;font-weight:500;color:var(--gray-9);margin-bottom:2px}.setting-desc{font-size:12px;color:var(--gray-6)}.select-input{min-width:100px;padding:8px 12px;border:1px solid var(--gray-2);border-radius:6px;font-size:13px;color:var(--gray-9);background:#fff;cursor:pointer;transition:border-color .2s}.select-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 10%,transparent)}.toggle{position:relative;width:48px;height:26px;flex-shrink:0}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--gray-4);border-radius:26px;transition:.3s}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:.3s;box-shadow:0 2px 4px #0000001a}.toggle input:checked+.toggle-slider{background-color:var(--primary)}.toggle input:checked+.toggle-slider:before{transform:translate(22px)}.divider{border:none;border-top:1px solid var(--gray-2);margin:4px 0}.settings-footer{margin-top:20px}.footer-actions{display:flex;gap:12px}.footer-actions .btn{flex:1}.btn{padding:10px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-primary.saved{background:var(--blue-7);pointer-events:none}.btn-secondary{background:#fff;color:var(--gray-7);border:1px solid var(--gray-2)}.btn-secondary:hover{background:var(--gray-1)}.status-message{padding:8px 0;font-size:12px;text-align:center;display:none}.status-message.success{display:block;color:var(--blue-7)}.status-message.error{display:block;color:#dc2626}.usage-container{max-width:600px;margin:0 auto;padding:16px}.usage-header{margin-bottom:24px}.usage-header h1{font-size:24px;font-weight:600;color:var(--gray-9)}.usage-main{display:flex;flex-direction:column;gap:24px}.usage-loading,.usage-error{color:var(--gray-6);text-align:center;padding:32px 0}.usage-meters{background:var(--surface);border:1px solid var(--gray-2);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:24px}.usage-meter-block{display:flex;flex-direction:column;gap:6px}.usage-meter-header{display:flex;justify-content:space-between;align-items:baseline}.usage-meter-label{font-size:14px;font-weight:600;color:var(--gray-9)}.usage-meter-numbers{font-size:13px;color:var(--gray-6)}.usage-meter-bar-bg{height:10px;background:var(--gray-1);border-radius:9999px;overflow:hidden}.usage-meter-bar{height:100%;background:var(--primary);border-radius:9999px;transition:width .4s ease}.usage-meter-bar.warn{background:#f59e0b}.usage-meter-bar.danger{background:#ef4444}.usage-meter-footer{display:flex;justify-content:space-between;font-size:12px;color:var(--gray-5)}.usage-plan-note{font-size:12px;color:var(--gray-5);margin-top:-12px}.usage-section-title{font-size:16px;font-weight:600;color:var(--gray-9)}.usage-table-wrap{background:var(--surface);border:1px solid var(--gray-2);border-radius:12px;overflow:hidden}.usage-table{width:100%;border-collapse:collapse;font-size:14px}.usage-table th,.usage-table td{padding:10px 16px;text-align:left;border-bottom:1px solid var(--gray-1)}.usage-table th{background:#f8fafc;font-weight:600;color:var(--gray-7);font-size:12px}.usage-table tbody tr:last-child td{border-bottom:none}.usage-table .num{text-align:right;font-variant-numeric:tabular-nums}.usage-table .no-data{text-align:center;color:var(--gray-5)}
