@import"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Noto+Sans+JP:wght@300;400;500;700;900&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--color-bg: #0a0a0a;--color-white: #ffffff;--color-gray: #999999;--color-accent: #ff0000;--color-border: rgba(255, 255, 255, .15);--color-border-hover: rgba(255, 255, 255, .3);--color-card-bg: rgba(255, 255, 255, .02);--color-hover-bg: var(--color-hover-bg);--color-active-bg: var(--color-active-bg);--font-sans: "Inter", Arial, sans-serif;--font-display: "Inter", Arial, sans-serif;--font-jp: "Noto Sans JP", sans-serif;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 9999px;--shadow-hover: 0 4px 16px rgba(0, 0, 0, .3);--shadow-modal: 0 8px 32px rgba(0, 0, 0, .5)}[data-theme=light]{--color-bg: #ffffff;--color-white: #0a0a0a;--color-gray: #666666;--color-accent: #dc2626;--color-border: rgba(0, 0, 0, .12);--color-border-hover: rgba(0, 0, 0, .25);--color-card-bg: rgba(0, 0, 0, .03);--color-hover-bg: rgba(0, 0, 0, .05);--color-active-bg: rgba(0, 0, 0, .08);--shadow-hover: 0 4px 16px rgba(0, 0, 0, .08);--shadow-modal: 0 8px 32px rgba(0, 0, 0, .15)}[data-theme=light] .white-bar{background:#0a0a0a;color:#fff}[data-theme=light] .hero-kanji{-webkit-text-stroke:2px rgba(220,38,38,.4)}[data-theme=light] .login-kanji{color:#dc26260f;-webkit-text-stroke:1px rgba(220,38,38,.25)}[data-theme=light] .keywords-bar{background:#0a0a0a;color:#fff}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-white);font-size:14px;-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none}a:hover{opacity:.6}.theme-toggle{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-white);padding:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.theme-toggle:hover{border-color:var(--color-white);background:var(--color-card-bg)}.nav{padding:28px 36px;display:flex;justify-content:space-between;align-items:flex-start}.nav-logo{font-weight:600;font-size:14px}.nav-center{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:40px}.nav-menu{text-align:center}.nav-menu-label{font-size:12px;font-weight:500;margin-bottom:6px}.nav-menu-links{font-size:13px;color:var(--color-gray)}.nav-dot{width:12px;height:12px;background:var(--color-white);border-radius:50%}.nav-right{display:flex;align-items:flex-start;gap:16px;text-align:right}.nav-right-text{display:flex;flex-direction:column}.nav-location{font-size:13px;font-weight:500}.nav-location .jp{font-family:var(--font-jp)}.nav-tagline{font-size:12px;color:var(--color-gray);margin-top:4px}.hero{padding:60px 36px 0;display:grid;grid-template-columns:1fr 1fr;gap:40px;min-height:50vh;position:relative;overflow:visible}.hero-content{display:flex;flex-direction:column;align-items:flex-start;gap:40px}.hero-text{font-family:var(--font-display);font-size:clamp(32px,4.5vw,48px);font-weight:400;font-optical-sizing:auto;line-height:1.12;letter-spacing:-.02em;max-width:520px}.arrow-link{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-display);font-size:clamp(24px,4vw,36px);font-weight:500;letter-spacing:-.02em;color:var(--color-white);text-decoration:underline;text-underline-offset:6px;transition:all .3s ease;margin-top:20px}.arrow-link .arrow{width:1em;height:1em;align-self:flex-end;margin-bottom:.1em;transition:transform .3s ease}.arrow-link:hover{opacity:1}.arrow-link:hover{color:var(--color-accent)}.arrow-link:hover .arrow{transform:translate(4px,-4px)}.hero-text .jp{font-family:var(--font-jp);font-weight:400}.hero-visual{display:flex;justify-content:flex-end;align-items:center}.hero-kanji{font-family:var(--font-jp);font-size:clamp(200px,30vw,400px);font-weight:900;line-height:1;color:transparent;-webkit-text-stroke:2px rgba(255,0,0,.3)}.white-bar{background:var(--color-white);color:var(--color-bg);padding:18px 36px;display:flex;justify-content:space-between;margin-top:60px;font-size:14px;font-weight:500}.big-name-section{padding:20px 0 60px;background:var(--color-bg)}.big-name{font-family:var(--font-display);font-size:clamp(150px,22vw,320px);font-weight:700;font-optical-sizing:auto;letter-spacing:-.03em;line-height:.8;white-space:nowrap;margin-left:-10px}.big-name .jp{font-family:var(--font-jp);font-weight:700}.big-name sup{font-size:.2em;font-weight:500;vertical-align:top;margin-left:8px}.section-header-bar{padding:14px 36px;display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}.section-header-bar .jp{font-family:var(--font-jp);text-transform:none;letter-spacing:0;margin-left:8px;color:var(--color-gray)}.featured-section{padding:40px 0;overflow:hidden}.marquee{display:flex;animation:marquee 20s linear infinite}.marquee-content{display:flex;align-items:center;white-space:nowrap;padding-right:60px}.featured-text{font-family:var(--font-display);font-size:clamp(100px,18vw,260px);font-weight:700;font-optical-sizing:auto;letter-spacing:-.03em;line-height:.85;white-space:nowrap;display:flex;align-items:center}.featured-text .copyright{margin-right:20px;color:var(--color-accent)}.featured-text .separator{margin:0 40px;opacity:.3}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.content-grid{padding:80px 36px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;position:relative;overflow:visible}.content-description{max-width:480px}.content-description p{font-size:17px;line-height:1.65;color:var(--color-gray);margin-bottom:36px}.content-description strong{color:var(--color-white);font-weight:500}.pill-btn{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 20px;font-size:13px;font-weight:500;letter-spacing:.02em;border:1px solid var(--color-white);border-radius:var(--radius-pill);background:transparent;color:var(--color-white);cursor:pointer;transition:all .2s}.pill-btn:hover{background:var(--color-white);color:var(--color-bg)}.floating-dot{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:14px;height:14px;background:var(--color-white);border-radius:50%}.content-visual{display:flex;flex-direction:column;align-items:flex-end;justify-content:center}.visual-kanji{font-family:var(--font-jp);font-size:clamp(80px,12vw,160px);font-weight:700;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,0,0,.4)}.visual-label{font-size:13px;color:var(--color-gray);margin-top:16px;letter-spacing:.05em}.stats-section{display:flex;justify-content:center;gap:100px;padding:80px 36px;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}.stat{text-align:center}.stat-number{font-family:var(--font-display);font-size:clamp(48px,8vw,80px);font-weight:700;font-optical-sizing:auto;letter-spacing:-.03em;line-height:1}.stat-label{font-size:13px;color:var(--color-gray);margin-top:14px;text-transform:uppercase;letter-spacing:.1em}.flashcard-showcase{background:var(--color-bg);color:var(--color-white);padding:100px 60px;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.showcase-content{max-width:900px;margin:0 auto}.showcase-example{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:40px}.showcase-kanji{font-family:var(--font-jp);font-size:clamp(48px,8vw,72px);font-weight:400;line-height:1;color:var(--color-white)}.showcase-reading{font-family:var(--font-jp);font-size:clamp(28px,4vw,40px);color:var(--color-gray)}.showcase-dot{color:var(--color-border);font-size:24px}.showcase-meaning{font-size:clamp(20px,3vw,28px);color:var(--color-gray);font-style:italic}.showcase-tagline{font-size:clamp(24px,4vw,38px);line-height:1.4;margin-bottom:60px;color:var(--color-white)}.showcase-tagline .highlight{color:var(--color-accent)}.showcase-columns{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-bottom:80px}.showcase-col{padding:24px;border:1px solid var(--color-border);border-radius:var(--radius-md);transition:transform .2s ease,box-shadow .2s ease}.showcase-col:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}.showcase-col h4{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-gray);margin-bottom:16px;font-weight:500}.showcase-col p{font-size:16px;line-height:1.7;color:var(--color-white);opacity:.85}.showcase-carousel-wrapper{overflow:hidden;margin:0 -60px;padding:20px 0}.showcase-carousel{display:flex;gap:24px;animation:scroll-carousel 40s linear infinite;width:max-content}.showcase-carousel:hover{animation-play-state:paused}@keyframes scroll-carousel{0%{transform:translate(0)}to{transform:translate(-50%)}}.showcase-card{width:300px;height:320px;cursor:pointer;perspective:1000px;flex-shrink:0}.showcase-card-inner{position:relative;width:100%;height:100%;transition:transform .5s;transform-style:preserve-3d}.showcase-card.flipped .showcase-card-inner{transform:rotateY(180deg)}.showcase-card-front,.showcase-card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card-bg)}.showcase-card-front{color:var(--color-white)}.showcase-card-back{background:var(--color-card-bg);color:var(--color-white);transform:rotateY(180deg)}.card-kanji{font-family:var(--font-jp);font-size:56px;display:block;margin-bottom:12px;color:var(--color-white)}.card-reading{font-family:var(--font-jp);font-size:28px;color:var(--color-gray)}.card-meaning{font-size:20px;font-weight:500;text-align:center;padding:0 20px;color:var(--color-white)}.showcase-hint{text-align:center;margin-top:24px;font-size:13px;color:var(--color-gray)}@media(max-width:768px){.flashcard-showcase{padding:60px 24px}.showcase-carousel-wrapper{margin:0 -24px}.showcase-columns{grid-template-columns:1fr;gap:40px;margin-bottom:60px}.showcase-example{gap:12px}.showcase-card{width:160px;height:220px}.card-kanji{font-size:44px}}@media(max-width:480px){.flashcard-showcase{padding:50px 20px}.showcase-carousel-wrapper{margin:0 -20px}.showcase-carousel{gap:16px}.showcase-card{width:140px;height:180px}.card-kanji{font-size:36px}.card-reading{font-size:14px}.card-meaning{font-size:16px}}.keywords-bar{background:var(--color-white);color:var(--color-bg);padding:20px 36px;display:flex;justify-content:space-between;font-size:14px;font-weight:500;letter-spacing:.02em}.about-section{padding:100px 36px;text-align:center}.about-text{max-width:620px;margin:0 auto 40px;font-size:15px;line-height:1.75;color:var(--color-gray)}.sticker{position:absolute;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:2;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3));animation:stickerFloat 3s ease-in-out infinite}@keyframes stickerFloat{0%,to{transform:translateY(0) rotate(var(--sticker-rotate, 0deg))}50%{transform:translateY(-8px) rotate(var(--sticker-rotate, 0deg))}}.sticker-happy{width:160px;bottom:-30px;right:60px;--sticker-rotate: 8deg}.sticker-happy2{width:140px;top:-45px;left:20px;--sticker-rotate: -12deg;animation-delay:1s}.sticker-login{width:140px;bottom:-10px;right:-20px;--sticker-rotate: 10deg;animation-delay:.5s}@media(max-width:768px){.sticker-happy{width:110px;bottom:-20px;right:20px}.sticker-happy2{width:100px;top:-30px;left:10px}.sticker-login{width:100px;right:-10px}}@media(max-width:480px){.sticker{display:none}}.sticker-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100;pointer-events:none;animation:stickerPop .9s ease forwards}.sticker-popup img{width:120px;height:auto;filter:drop-shadow(0 4px 16px rgba(0,0,0,.4))}@keyframes stickerPop{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}30%{opacity:1;transform:translate(-50%,-50%) scale(1)}60%{opacity:.6;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.95) translateY(-15px)}}.modern-footer{border-top:1px solid var(--color-border)}.footer-main{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:60px 48px}.footer-left{display:flex;flex-direction:column;gap:32px}.footer-heading{font-family:var(--font-display);font-size:clamp(36px,5vw,56px);font-weight:400;letter-spacing:-.02em;line-height:1.1;margin:0}.footer-desc{font-size:15px;line-height:1.7;color:var(--color-gray);max-width:400px}.footer-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 28px;background:var(--color-white);color:var(--color-bg);font-size:18px;font-weight:500;border-radius:var(--radius-md);transition:all .3s ease;max-width:400px}.footer-cta:hover{transform:translateY(-2px);box-shadow:0 10px 40px #ffffff1a;opacity:1}.footer-cta .arrow{flex-shrink:0;transition:transform .3s ease}.footer-cta:hover .arrow{transform:translate(4px,-4px)}.footer-info{margin-top:16px}.footer-info-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-gray);margin-bottom:8px}.footer-info p{font-size:14px;color:var(--color-gray);line-height:1.6}.footer-right{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end}.footer-contact-row{display:flex;gap:40px;margin-top:40px;text-align:right}.footer-contact a,.footer-contact span{font-size:16px;color:var(--color-white);transition:color .2s ease}.footer-contact a:hover{color:var(--color-accent)}.footer-copyright{padding:24px 48px;border-top:1px solid var(--color-border);font-size:11px;letter-spacing:.05em;color:var(--color-gray);display:flex;justify-content:space-between;align-items:center}.created-by{font-size:11px;color:var(--color-gray);letter-spacing:.05em}.created-by a{color:#f54217;text-decoration:underline}.created-by a:hover{color:var(--color-white);opacity:1}.page-footer{padding:10px 24px;text-align:center;border-top:1px solid var(--color-border);margin-top:auto}[data-theme=light] .footer-cta{background:var(--color-white);color:#fff}[data-theme=light] .footer-cta:hover{box-shadow:0 10px 40px #0000001a}@media(max-width:1200px){.nav{padding:24px 32px}.hero{padding:50px 32px 0;gap:30px}.white-bar,.keywords-bar{padding:16px 32px}.section-header-bar{padding:14px 32px}.content-grid{padding:60px 32px;gap:60px}.stats-section{padding:60px 32px;gap:80px}.about-section{padding:80px 32px}.footer-main{padding:50px 32px;gap:50px}.footer-copyright{padding:20px 32px}}@media(max-width:1024px){.hero{grid-template-columns:1fr;min-height:auto}.hero-visual{justify-content:flex-start;margin-top:30px}.hero-kanji{-webkit-text-stroke:1.5px rgba(255,255,255,.2)}.content-grid{grid-template-columns:1fr}.content-visual{align-items:flex-start;margin-top:30px}.stats-section{gap:60px}.big-name{white-space:normal;word-break:keep-all}}@media(max-width:768px){.nav{flex-direction:column;gap:16px;padding:20px;align-items:flex-start}.nav-center{position:static;transform:none;width:100%;justify-content:flex-start}.nav-dot{display:none}.nav-right{text-align:left;gap:12px}.nav-right-text{display:none}.hero{padding:30px 20px 0}.hero-text{font-size:clamp(24px,6vw,32px);max-width:100%}.hero-kanji{font-size:clamp(100px,25vw,180px);-webkit-text-stroke:1px rgba(255,255,255,.2)}.white-bar,.keywords-bar{flex-wrap:wrap;gap:10px 20px;padding:14px 20px;font-size:13px;justify-content:flex-start}.big-name-section{padding:10px 0 40px}.big-name{font-size:clamp(50px,15vw,100px);margin-left:0;padding:0 20px}.section-header-bar{flex-direction:column;gap:8px;align-items:flex-start;padding:12px 20px;font-size:10px}.featured-section{padding:30px 0}.featured-text{font-size:clamp(40px,12vw,80px);padding-left:20px}.featured-text .copyright{margin-right:10px}.content-grid{padding:50px 20px;gap:40px}.content-description{max-width:100%}.content-description p{font-size:15px;margin-bottom:28px}.pill-btn{padding:12px 24px;font-size:12px}.floating-dot{display:none}.visual-kanji{font-size:clamp(60px,18vw,100px)}.visual-label{font-size:12px;margin-top:12px}.stats-section{flex-direction:column;gap:32px;padding:50px 20px}.stat-number{font-size:clamp(40px,12vw,60px)}.stat-label{font-size:11px;margin-top:8px}.about-section{padding:50px 20px}.about-text{font-size:14px;margin-bottom:32px}.footer-main{grid-template-columns:1fr;gap:50px;padding:40px 20px}.footer-heading{font-size:clamp(28px,8vw,40px)}.footer-desc{font-size:14px}.footer-cta{padding:16px 20px;font-size:15px;width:100%;max-width:none}.footer-right{align-items:flex-start}.footer-contact-row{flex-direction:column;gap:24px;text-align:left}.footer-contact a,.footer-contact span{font-size:14px}.footer-copyright{padding:20px;font-size:10px}}@media(max-width:480px){.nav{padding:16px;gap:12px}.nav-logo{font-size:13px}.nav-menu-label{font-size:11px}.nav-menu-links,.nav-location{font-size:12px}.nav-tagline{font-size:11px}.hero{padding:24px 16px 0}.hero-text{font-size:clamp(22px,5.5vw,28px);line-height:1.2}.hero-kanji{font-size:clamp(80px,22vw,140px)}.white-bar,.keywords-bar{padding:12px 16px;font-size:12px;gap:8px 16px}.big-name{font-size:clamp(40px,13vw,70px);padding:0 16px}.big-name sup{font-size:.25em}.section-header-bar{padding:10px 16px;font-size:9px}.featured-text{font-size:clamp(32px,10vw,60px);padding-left:16px}.content-grid{padding:40px 16px;gap:32px}.content-description p{font-size:14px;line-height:1.6}.pill-btn{padding:10px 20px;font-size:11px;width:100%;justify-content:center;text-align:center}.arrow-link{font-size:20px}.visual-kanji{font-size:clamp(50px,15vw,80px)}.stats-section{padding:40px 16px;gap:28px}.stat-number{font-size:clamp(36px,10vw,50px)}.about-section{padding:40px 16px}.about-text{font-size:13px;line-height:1.7}.footer-main{padding:32px 16px;gap:40px}.footer-heading{font-size:clamp(24px,7vw,32px)}.footer-cta{padding:14px 16px;font-size:14px}.footer-copyright{padding:16px}}.login-page{min-height:100vh;display:flex;flex-direction:column}.login-main{flex:1;display:flex;align-items:center;padding:80px 60px}.login-content{width:100%;max-width:1400px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.login-left{max-width:560px}.login-heading{font-family:var(--font-display);font-size:clamp(40px,6vw,64px);font-weight:700;font-optical-sizing:auto;letter-spacing:-.03em;line-height:1.1;margin-bottom:24px}.login-heading .jp{font-family:var(--font-jp);font-weight:400}.login-desc{font-size:18px;color:var(--color-gray);line-height:1.6;margin-bottom:40px}.login-error{color:var(--color-accent);font-size:14px;margin-bottom:20px}.webview-warning{background:#ffab001a;border:1px solid rgba(255,171,0,.3);border-radius:12px;padding:16px 20px;margin-bottom:20px;font-size:14px;line-height:1.5}.webview-warning p{margin:0 0 8px}.webview-warning p:last-child{margin-bottom:0;opacity:.7}.login-btn{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-display);font-size:clamp(20px,3vw,28px);font-weight:500;letter-spacing:-.02em;color:var(--color-white);background:none;border:none;cursor:pointer;text-decoration:underline;text-underline-offset:6px;transition:all .3s ease;padding:0}.login-btn:hover{color:var(--color-accent)}.login-btn:disabled{opacity:.5;cursor:not-allowed}.login-btn .arrow{width:1em;height:1em;transition:transform .3s ease}.login-btn:hover .arrow{transform:translate(4px,-4px)}.login-note{margin-top:24px;font-size:14px;color:var(--color-gray)}.login-right{display:flex;justify-content:center;align-items:center;position:relative}.login-kanji{font-family:var(--font-jp);font-size:clamp(200px,30vw,400px);font-weight:900;line-height:1;color:#dc26260a;-webkit-text-stroke:1px rgba(220,38,38,.35)}.login-footer{display:flex;justify-content:space-between;align-items:center;padding:24px 60px;border-top:1px solid var(--color-border);font-size:13px;color:var(--color-gray)}.login-footer a{color:var(--color-white);text-decoration:underline;text-underline-offset:3px}.login-footer a:hover{color:var(--color-accent)}.google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;padding:16px 24px;font-size:13px;font-weight:500;background:var(--color-bg);color:var(--color-white);border:1px solid var(--color-white);cursor:pointer;transition:all .2s;text-transform:uppercase;letter-spacing:.06em}.google-btn:hover{background:var(--color-white);color:var(--color-bg)}.google-btn:disabled{opacity:.5;cursor:not-allowed}.google-icon{flex-shrink:0}.login-divider{display:flex;align-items:center;margin:32px 0;color:var(--color-gray);font-size:13px}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#ffffff1a}.login-divider span{padding:0 16px}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--color-gray)}.form-input{padding:14px 18px;font-size:14px;font-family:var(--font-sans);background:transparent;border:1px solid rgba(255,255,255,.2);color:var(--color-white);outline:none;transition:all .2s}.form-input::placeholder{color:var(--color-gray)}.form-input:focus{border-color:var(--color-white)}.login-submit{margin-top:12px;width:100%;text-align:center;justify-content:center}.login-footer-text{margin-top:32px;font-size:14px;color:var(--color-gray);text-align:center}.login-link{color:var(--color-white);text-decoration:underline;text-underline-offset:3px}.login-link:hover{opacity:.8}@media(max-width:1024px){.login-content{grid-template-columns:1fr;gap:40px;text-align:center}.login-left{max-width:100%}.login-right{order:-1}.login-kanji{font-size:clamp(120px,25vw,200px)}}@media(max-width:768px){.login-main{padding:60px 24px}.login-footer{padding:20px 24px}.login-desc{font-size:16px}}@media(max-width:480px){.login-main{padding:40px 20px}.login-footer{padding:16px 20px;flex-direction:column;gap:12px}.login-btn{font-size:18px}}.dashboard-page{height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--color-bg)}.dashboard-nav{padding:14px 28px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--color-border);gap:16px}.dashboard-nav .nav-logo{font-family:var(--font-display);font-size:16px;font-weight:500;letter-spacing:-.01em}.dashboard-nav .nav-logo sup{font-size:8px;opacity:.5}.nav-info{position:absolute;left:50%;transform:translate(-50%)}.dict-count{font-size:11px;color:var(--color-gray)}.nav-actions{display:flex;align-items:center;gap:12px}.nav-icon-btn{width:40px;height:40px;background:none;border:none;color:var(--color-white);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .2s}.nav-icon-btn:hover{color:var(--color-white);background:var(--color-card-bg)}.nav-icon-btn.signout-btn{color:#f44}.nav-icon-btn.signout-btn:hover{color:#f66}.dashboard-nav .theme-toggle{border:none;width:40px;height:40px;padding:0;border-radius:var(--radius-sm)}.nav-upgrade-btn{background:none;border:1px solid #39ff14;color:#39ff14;padding:6px 16px;font-size:11px;font-weight:600;letter-spacing:.5px;font-family:var(--font-sans);cursor:pointer;display:inline-flex;align-items:center;gap:5px;border-radius:var(--radius-pill);transition:all .2s}.nav-upgrade-btn:hover{background:#39ff141a}.nav-upgrade-btn.active{background:#39ff1414}.dashboard-main{flex:1;padding:60px 36px}.dashboard-main h1{font-family:var(--font-display);font-size:clamp(32px,4vw,48px);font-weight:600;letter-spacing:-.02em}@media(max-width:768px){.dashboard-nav{padding:12px 20px}.content-header{flex-direction:column;align-items:flex-start;gap:16px;padding:20px 0}.header-left h1{font-size:18px}.header-stats{gap:8px}.header-actions{width:100%;gap:8px;flex-wrap:wrap}.search-box{flex:1;min-width:120px;height:40px}.word-card{padding:14px 12px!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;gap:6px!important;position:relative;text-align:left!important}.word-main{display:flex!important;align-items:baseline!important;justify-content:flex-start!important;gap:10px!important;width:auto!important}.word-kanji{font-size:24px!important;text-align:left!important}.word-reading{font-size:18px!important;text-align:left!important}.word-meaning{font-size:14px!important;line-height:1.5!important;text-align:left!important;width:100%!important;padding-right:30px;flex:none!important}.word-type{display:none!important}.remove-word-btn{position:absolute!important;top:14px;right:0}.add-word-form{padding:16px 0}.form-row{flex-direction:column;gap:10px}.add-word-form input{height:40px;font-size:14px}.form-actions{margin-top:12px}.pill-btn.small{height:36px;padding:0 16px;font-size:12px}.text-btn{font-size:13px}}@media(hover:none){.remove-word-btn,.delete-btn{opacity:1}}@media(max-width:360px){.hero-text{font-size:20px}.hero-kanji{font-size:70px}.big-name{font-size:36px}.featured-text{font-size:28px}.visual-kanji{font-size:45px}}.dashboard-main-area{flex:1;overflow-y:auto;padding:0 40px 60px}.grid-header{display:flex;justify-content:space-between;align-items:center;padding:48px 0 36px}.grid-header h1{font-family:var(--font-display);font-size:clamp(24px,3vw,32px);font-weight:600;letter-spacing:-.02em}.grid-header-actions{display:flex;gap:10px}.study-grid-btn{border-color:var(--color-accent)!important;flex-shrink:0;width:auto!important}.new-folder-inline{padding:20px 24px;border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:24px;background:var(--color-card-bg)}.new-folder-inline input{width:100%;height:40px;padding:0 16px;font-size:14px;font-family:var(--font-sans);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-white);outline:none;margin-bottom:10px;transition:border-color .2s}.new-folder-inline input:focus{border-color:var(--color-border-hover)}.empty-grid{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 32px;text-align:center}.empty-grid p{font-family:var(--font-display);font-size:20px;color:var(--color-white);margin-bottom:8px;letter-spacing:-.02em}.empty-grid span{font-size:14px;color:var(--color-gray)}.folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.folder-card{display:flex;flex-direction:column;gap:12px;padding:28px 24px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card-bg);cursor:pointer;transition:all .25s ease}.folder-card:hover{border-color:var(--color-border-hover);background:#ffffff0a;transform:translateY(-2px);box-shadow:var(--shadow-hover)}.folder-card-icon{color:var(--color-gray)}.folder-card-name{font-family:var(--font-display);font-size:16px;font-weight:500;letter-spacing:-.01em;color:var(--color-white)}.folder-card-count{font-size:12px;color:var(--color-gray)}.back-btn{background:none;border:none;color:var(--color-gray);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .2s;flex-shrink:0}.study-select-overlay{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.study-select-modal{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);overflow:hidden;width:100%;max-width:560px;max-height:80vh;display:flex;flex-direction:column}.study-select-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--color-border)}.study-select-header h2{font-family:var(--font-display);font-size:18px;font-weight:500;letter-spacing:-.01em}.study-select-grid{padding:24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;overflow-y:auto;flex:1}.study-select-card{display:flex;flex-direction:column;gap:8px;padding:20px 18px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card-bg);cursor:pointer;transition:all .2s}.study-select-card:hover{border-color:var(--color-border-hover)}.study-select-card.selected{border-color:var(--color-accent);background:#ff00000f}.study-select-name{font-size:14px;font-weight:500;color:var(--color-white)}.study-select-count{font-size:12px;color:var(--color-gray)}.study-select-footer{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-top:1px solid var(--color-border)}.study-select-summary{font-size:13px;color:var(--color-gray)}.study-select-start{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 24px;background:var(--color-accent);border:none;border-radius:var(--radius-pill);color:#fff;font-size:13px;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:all .2s}.study-select-start:hover{background:#c00}.study-select-start:disabled{opacity:.3;cursor:not-allowed}.study-select-start:disabled:hover{background:var(--color-accent)}.input-actions{display:flex;gap:12px}.text-btn{display:inline-flex;align-items:center;height:28px;background:none;border:none;color:#7dd3fc;font-size:12px;font-weight:500;font-family:var(--font-sans);cursor:pointer;padding:0;transition:color .2s}.text-btn:hover{color:var(--color-white)}.text-btn.cancel{color:var(--color-gray)}.text-btn.cancel:hover{color:var(--color-white);opacity:1}.text-btn.create-custom{color:var(--color-accent);display:flex;align-items:center;gap:6px}.text-btn.create-custom:hover{color:var(--color-white)}.text-btn.create-custom .plus-icon{font-size:16px;font-weight:300;line-height:1}.custom-word-modal-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.custom-word-modal{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);overflow:hidden;width:100%;max-width:420px;margin:20px}.custom-word-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-border)}.custom-word-modal-header h3{font-size:15px;font-weight:600;letter-spacing:.05em}.modal-close-btn{background:none;border:none;color:var(--color-gray);cursor:pointer;padding:4px;display:flex;transition:color .2s}.modal-close-btn:hover{color:var(--color-white)}.custom-word-modal-body{padding:20px;display:flex;flex-direction:column;gap:16px}.custom-word-field label{display:block;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--color-gray);margin-bottom:8px}.custom-word-field .optional{text-transform:none;letter-spacing:.02em;opacity:.6}.custom-word-field .required{color:var(--color-accent)}.custom-word-field input,.custom-word-field select{width:100%;height:40px;padding:0 14px;font-size:14px;font-family:var(--font-sans);background:transparent;border:1px solid var(--color-border-hover);border-radius:var(--radius-sm);color:var(--color-white);outline:none;transition:border-color .2s}.custom-word-field input:focus,.custom-word-field select:focus{border-color:var(--color-white)}.custom-word-field select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.custom-word-field select option{background:var(--color-bg);color:var(--color-white)}.custom-word-modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--color-border)}.custom-word-modal-actions .cancel-btn{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 16px;background:none;border:1px solid var(--color-border-hover);border-radius:var(--radius-pill);color:var(--color-gray);font-size:12px;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:all .2s}.custom-word-modal-actions .cancel-btn:hover{border-color:var(--color-white);color:var(--color-white)}.custom-word-modal-actions .add-btn{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 16px;background:var(--color-white);border:1px solid var(--color-white);border-radius:var(--radius-pill);color:var(--color-bg);font-size:12px;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:all .2s}.custom-word-modal-actions .add-btn:hover{background:var(--color-accent);border-color:var(--color-accent)}.custom-word-modal-actions .add-btn:disabled{opacity:.3;cursor:not-allowed}.custom-word-modal-actions .add-btn:disabled:hover{background:var(--color-white);border-color:var(--color-white)}.delete-btn{background:none;border:none;color:var(--color-accent);cursor:pointer;padding:4px;transition:all .15s;display:flex;align-items:center;justify-content:center}.delete-btn svg{width:14px;height:14px}@media(hover:hover){.delete-btn{opacity:0}}.delete-btn:hover{color:var(--color-white)}.empty-state{color:var(--color-gray);font-size:13px;text-align:center;padding:32px 16px;letter-spacing:.01em}.content-header{display:flex;flex-direction:column;padding:28px 0;border-bottom:1px solid var(--color-border);gap:20px;margin-bottom:0}.header-left{display:flex;align-items:center;gap:12px}.header-left h1{font-family:var(--font-display);font-size:clamp(20px,2.5vw,26px);font-weight:600;letter-spacing:-.02em;margin:0}.folder-title-editable{cursor:pointer;padding:2px 8px;margin:-2px -8px;border:1px solid transparent;border-radius:var(--radius-sm);transition:all .2s}.folder-title-editable:hover{border-color:var(--color-border-hover);background:var(--color-card-bg)}.rename-folder-input{font-family:var(--font-display);font-size:20px;font-weight:500;letter-spacing:-.02em;background:transparent;border:1px solid var(--color-border-hover);color:var(--color-white);padding:2px 6px;margin:-2px -6px;outline:none;width:100%}.rename-folder-input:focus{border-color:var(--color-white)}.header-stats{display:flex;align-items:center;gap:8px}.stats-loading{font-size:11px;color:var(--color-gray);display:inline-flex;align-items:center;gap:6px;margin-left:4px}.stats-loading-dot{width:4px;height:4px;background:var(--color-gray);border-radius:50%;animation:statsPulse 1s ease-in-out infinite}@keyframes statsPulse{0%,to{opacity:.3}50%{opacity:1}}.word-count{font-size:12px;color:var(--color-gray)}.stat-divider{color:var(--color-gray);opacity:.3;font-size:6px}.stat-dict-count{font-size:12px;color:var(--color-gray)}.stat-mastered{font-size:12px;color:#4ade80}.stat-accuracy{font-size:12px;color:var(--color-gray)}.header-actions{display:flex;gap:8px;align-items:center}.search-box{display:flex;align-items:center;gap:10px;height:44px;padding:0 18px;background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-gray);flex:1;min-width:0;transition:border-color .2s,box-shadow .2s}.search-box:focus-within{border-color:var(--color-border-hover);box-shadow:0 2px 8px #0003}.search-box input{background:none;border:none;color:var(--color-white);font-size:14px;font-family:var(--font-sans);outline:none;width:100%}.search-box input::placeholder{color:var(--color-gray)}.header-action-btns{display:flex;gap:6px;align-items:center}.action-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 16px;font-size:12px;font-weight:500;font-family:var(--font-sans);background:none;color:var(--color-gray);border:1px solid var(--color-border);border-radius:var(--radius-pill);cursor:pointer;transition:all .2s}.action-btn:hover{color:var(--color-white);border-color:var(--color-border-hover)}.action-btn.primary{border-color:var(--color-accent);color:var(--color-white)}.action-btn.primary:hover{background:#ff000014}.action-btn.add{background:var(--color-white);color:var(--color-bg);border-color:var(--color-white);font-weight:600}.action-btn.add:hover{opacity:.85;color:var(--color-bg)}.action-btn.danger{width:36px;padding:0;justify-content:center;border:none;border-radius:var(--radius-sm);color:var(--color-accent)}.action-btn.danger:hover{color:#f66}.practice-page{min-height:100vh;background:var(--color-bg);color:var(--color-white);display:flex;flex-direction:column}.practice-content{flex:1;max-width:680px;width:100%;margin:0 auto;padding:44px 28px 80px}.practice-hero{margin-bottom:32px}.practice-hero h2{font-family:var(--font-display);font-size:clamp(24px,3vw,32px);font-weight:600;letter-spacing:-.02em;margin:0 0 8px}.practice-hero p{font-size:14px;color:var(--color-gray);margin:0;line-height:1.5}.practice-input-area{margin-bottom:32px}.practice-input-row{display:flex;gap:8px}.practice-input{flex:1;background:var(--color-card-bg);border:1px solid var(--color-border);color:var(--color-white);font-size:18px;font-family:var(--font-sans);padding:14px 18px;border-radius:var(--radius-sm);outline:none;transition:border-color .2s,box-shadow .2s}.practice-input:focus{border-color:var(--color-border-hover);box-shadow:0 2px 8px #00000026}.practice-input::placeholder{color:var(--color-gray);font-style:italic}.practice-grade-btn{background:var(--color-white);color:var(--color-bg);border:none;padding:0 28px;font-size:13px;font-weight:600;font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-pill);cursor:pointer;transition:all .2s ease}.practice-grade-btn:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 12px #0003}.practice-grade-btn:disabled{opacity:.3;cursor:not-allowed}.practice-converted{margin-top:10px;font-size:13px;color:var(--color-gray);display:flex;align-items:center;gap:8px}.converted-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em}.converted-text{color:var(--color-white);font-size:16px}.practice-result{animation:gradeIn .3s ease}@keyframes gradeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.grade-section-label{font-size:10px;color:var(--color-gray);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}.grade-hero{text-align:center;padding:36px 0 32px}.grade-score{font-size:80px;font-weight:700;font-family:var(--font-display);line-height:1;margin-bottom:18px}.grade-score.high{color:#4ade80}.grade-score.mid{color:#fbbf24}.grade-score.low{color:var(--color-accent)}.grade-score-bar{width:100%;height:3px;background:var(--color-border);border-radius:var(--radius-pill);margin-bottom:12px}.grade-score-bar-fill{height:100%;width:0;border-radius:var(--radius-pill);transition:width .8s ease-out}.grade-score-label{font-size:10px;color:var(--color-gray);text-transform:uppercase;letter-spacing:.08em}.grade-analysis{background:var(--color-card-bg);border:1px solid var(--color-border);padding:24px 28px;margin-bottom:24px;border-radius:var(--radius-md)}.grade-sentence{font-size:24px;line-height:2;word-break:keep-all;overflow-wrap:break-word}.grade-word{position:relative;cursor:default;transition:opacity .15s}.grade-word:hover{opacity:.8}.grade-word--word{color:var(--color-white)}.grade-word--particle{color:#60a5fa}.grade-word--unknown{color:var(--color-accent);border-bottom:2px solid var(--color-accent);cursor:help}.grade-word--punctuation{color:var(--color-gray);cursor:default}.grade-word--punctuation:hover{opacity:1}.grade-word-tip{position:absolute;top:100%;left:50%;transform:translate(-50%);z-index:10;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:6px 10px;white-space:nowrap;display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:4px;pointer-events:none;animation:tipIn .12s ease}@keyframes tipIn{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.tip-reading{font-size:11px;color:var(--color-gray)}.tip-meaning{font-size:12px;color:var(--color-white)}.tip-type{font-size:9px;color:var(--color-gray);text-transform:uppercase;letter-spacing:.05em}.grade-categories{margin-bottom:28px}.grade-cat-row{display:flex;align-items:center;gap:14px;margin-bottom:10px}.grade-cat-name{font-size:10px;color:var(--color-gray);text-transform:uppercase;letter-spacing:.05em;width:90px;flex-shrink:0}.grade-cat-bar{flex:1;height:4px;background:var(--color-border);border-radius:var(--radius-pill)}.grade-cat-bar-fill{height:100%;width:0;border-radius:var(--radius-pill);transition:width .6s ease-out}.grade-cat-pct{font-size:13px;font-weight:600;width:38px;text-align:right;flex-shrink:0;font-family:var(--font-display)}.grade-tips{margin-bottom:24px}.grade-tip{font-size:13px;color:var(--color-white);line-height:1.6;padding:12px 16px;border-left:3px solid var(--color-gray);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-bottom:6px}.grade-tip--positive{border-left-color:#4ade80}.practice-try-again{background:none;border:1px solid var(--color-border);color:var(--color-white);padding:12px 24px;font-size:13px;font-weight:500;font-family:var(--font-sans);border-radius:var(--radius-pill);cursor:pointer;width:100%;transition:all .2s ease}.practice-try-again:hover{border-color:var(--color-white);transform:translateY(-1px);box-shadow:0 2px 8px #0000001f}.practice-history{margin-top:32px}.practice-history-label{font-size:10px;color:var(--color-gray);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.practice-history-item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:12px 16px;background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-white);font-size:14px;font-family:var(--font-sans);cursor:pointer;margin-bottom:6px;transition:all .2s ease;text-align:left}.practice-history-item:hover{border-color:var(--color-border-hover);transform:translateY(-1px);box-shadow:0 2px 8px #0000001f}.history-sentence{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;margin-right:12px}.history-score{font-size:14px;font-weight:600;flex-shrink:0}.history-score.high{color:#4ade80}.history-score.mid{color:#fbbf24}.history-score.low{color:var(--color-accent)}.practice-loading{font-size:13px;color:var(--color-gray);padding-top:80px;text-align:center}@media(max-width:600px){.practice-content{padding:24px 16px 60px}.practice-hero h2{font-size:22px}.practice-input{font-size:16px;padding:12px 14px}.practice-grade-btn{padding:0 16px;font-size:12px}.grade-score{font-size:56px}.grade-analysis{padding:16px}.grade-sentence{font-size:20px;line-height:1.8}.grade-cat-name{width:72px;font-size:9px}.grade-cat-pct{font-size:12px;width:34px}.grade-word-tip{position:fixed;bottom:80px;left:50%;top:auto;margin-top:0}}.add-word-form{background:transparent;border-bottom:1px solid var(--color-border);padding:20px 0}.form-row{display:flex;gap:8px;margin-bottom:8px}.add-word-form input{flex:1;height:36px;padding:0 14px;font-size:13px;font-family:var(--font-sans);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-white);outline:none;transition:border-color .2s}.add-word-form input:focus{border-color:var(--color-border-hover)}.add-word-form input::placeholder{color:var(--color-gray)}.form-actions{display:flex;gap:24px;align-items:center;margin-top:8px;justify-content:flex-start}.pill-btn.small{height:32px;padding:0 16px;font-size:12px;border-radius:var(--radius-pill)}.word-list{display:flex;flex-direction:column;flex:1;overflow-y:auto;padding:4px 0}.word-card{display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:14px 16px;margin:2px 0;border-bottom:1px solid var(--color-border);border-radius:var(--radius-sm);transition:all .2s;position:relative;text-align:left}.word-card:hover{background:var(--color-card-bg)}.word-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.word-dot.struggling{background:#ef4444}.word-dot.learning{background:#f59e0b}.word-dot.mastered{background:#22c55e}.dot-legend{display:flex;gap:18px;padding:10px 0 16px}.dot-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--color-gray);letter-spacing:.02em}.word-main{display:flex;align-items:baseline;gap:8px;width:200px;flex-shrink:0}.word-kanji{font-family:var(--font-jp);font-size:16px;font-weight:400}.word-reading{font-family:var(--font-jp);font-size:13px;color:#7dd3fc}.word-meaning{flex:1;font-size:13px;color:var(--color-gray);line-height:1.4;min-width:0;text-align:left}.word-type{font-size:10px;color:var(--color-gray);padding:3px 8px;background:var(--color-card-bg);border-radius:var(--radius-sm);flex-shrink:0}.remove-word-btn{background:none;border:none;color:var(--color-accent);cursor:pointer;padding:4px;transition:all .15s;display:flex;flex-shrink:0;margin-left:auto}@media(hover:hover){.remove-word-btn{opacity:0}.word-card:hover .remove-word-btn{opacity:1}}.remove-word-btn:hover{color:var(--color-white)}.delete-modal-overlay{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.delete-modal{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);overflow:hidden;max-width:360px;width:100%}.delete-modal-content{padding:28px 24px;text-align:center}.delete-modal-icon{color:var(--color-accent);margin-bottom:16px}.delete-modal-content h3{font-size:17px;font-weight:600;margin-bottom:12px}.delete-modal-content p{font-size:13px;color:var(--color-gray);margin-bottom:8px}.delete-modal-content p strong{color:var(--color-white)}.delete-warning{font-size:11px;color:var(--color-accent);display:block}.delete-modal-actions{display:flex;border-top:1px solid var(--color-border)}.delete-btn-cancel,.delete-btn-confirm{flex:1;height:44px;font-size:13px;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:all .2s;border:none}.delete-btn-cancel{background:transparent;color:var(--color-gray);border-right:1px solid var(--color-border)}.delete-btn-cancel:hover{color:var(--color-white);background:var(--color-hover-bg)}.delete-btn-confirm{background:transparent;color:var(--color-accent)}.delete-btn-confirm:hover{background:var(--color-accent);color:var(--color-white)}.upgrade-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.upgrade-modal{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);width:100%;max-width:340px;padding:40px 32px 32px;text-align:center;position:relative}.upgrade-close{position:absolute;top:12px;right:12px;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-gray);cursor:pointer;padding:4px;display:flex}.upgrade-close:hover{color:var(--color-white)}.upgrade-icon{margin-bottom:20px}.upgrade-title{font-size:18px;font-weight:600;font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:8px}.upgrade-desc{font-size:13px;color:var(--color-gray);margin-bottom:24px;line-height:1.5}.upgrade-perks{display:flex;flex-direction:column;gap:10px;margin-bottom:28px;text-align:left}.upgrade-perk{display:flex;align-items:center;gap:10px;font-size:13px}.upgrade-cta{width:100%;padding:14px;background:#39ff14;color:#0a0a0a;border:none;border-radius:var(--radius-pill);font-size:13px;font-weight:600;font-family:var(--font-sans);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:opacity .2s;margin-bottom:12px}.upgrade-cta:hover{opacity:.85}.upgrade-dismiss{background:none;border:none;color:var(--color-gray);font-size:12px;font-family:var(--font-sans);cursor:pointer;padding:4px}.upgrade-dismiss:hover{color:var(--color-white)}@media(max-width:600px){.dashboard-main-area{padding:0 16px 40px}.grid-header{padding:28px 0 24px}.grid-header h1{font-size:20px}.folder-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.folder-card{padding:22px 18px}.study-select-grid{grid-template-columns:1fr 1fr}.study-select-modal{max-height:90vh}}.word-search-container{position:relative;margin-bottom:20px}.search-input-wrapper{display:flex;align-items:center;gap:14px;padding:16px 18px;background:transparent;border:1px solid var(--color-border-hover);border-radius:var(--radius-md);color:var(--color-gray)}.search-input-wrapper:focus-within{border-color:var(--color-white)}.search-input-wrapper input{flex:1;background:none;border:none;color:var(--color-white);font-size:16px;font-family:var(--font-sans);outline:none;letter-spacing:.02em}.search-input-wrapper input::placeholder{color:var(--color-gray)}.clear-search{background:none;border:none;color:var(--color-gray);cursor:pointer;padding:4px;display:flex;transition:color .15s}.clear-search:hover{color:var(--color-accent)}.search-results{position:absolute;top:100%;left:0;right:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:0 0 var(--radius-md) var(--radius-md);margin-top:4px;max-height:360px;overflow-y:auto;z-index:100}.search-result-item{padding:16px 18px;cursor:pointer;border-bottom:1px solid var(--color-border);transition:background .15s}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:var(--color-hover-bg)}.search-result-item.selected{background:var(--color-active-bg);border-left:2px solid var(--color-accent)}.result-main{display:flex;align-items:baseline;gap:12px;margin-bottom:8px}.result-word{font-family:var(--font-jp);font-size:18px;font-weight:400}.result-reading{font-family:var(--font-jp);font-size:15px;color:#7dd3fc}[data-theme=light] .result-reading{color:#0369a1}.result-romaji{font-size:12px;color:var(--color-gray);margin-left:8px}.result-romaji:before{content:"•";margin-right:8px;opacity:.5}.result-meaning{font-size:13px;color:var(--color-gray);line-height:1.5;margin:0;letter-spacing:.01em}.result-type{display:inline-block;font-size:9px;color:var(--color-accent);border:1px solid rgba(255,0,0,.3);padding:3px 8px;margin-top:10px;text-transform:uppercase;letter-spacing:.08em}.no-results{padding:32px 18px;text-align:center;color:var(--color-gray);font-size:13px;letter-spacing:.02em}.selected-word-preview{background:#ff000008;border:1px solid rgba(255,0,0,.25);padding:20px;margin-bottom:20px}.preview-header{margin-bottom:12px}.preview-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-gray)}.preview-content{display:flex;flex-wrap:wrap;align-items:baseline;gap:14px}.preview-word{font-family:var(--font-jp);font-size:28px;font-weight:400}.preview-reading{font-family:var(--font-jp);font-size:15px;color:var(--color-gray)}.preview-meaning{width:100%;font-size:14px;color:var(--color-gray);margin:10px 0 0;line-height:1.6;letter-spacing:.01em}.word-type{display:inline-block;font-size:9px;color:var(--color-accent);border:1px solid rgba(255,0,0,.3);padding:4px 10px;margin-top:12px;text-transform:uppercase;letter-spacing:.08em}.pill-btn:disabled{opacity:.3;cursor:not-allowed}.pill-btn:disabled:hover{background:transparent;color:var(--color-white);transform:none}@media(max-width:768px){.nav-info{display:none}}.study-modal-overlay{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.study-modal{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);max-width:400px;width:100%;padding:40px}.study-modal-content{text-align:center;margin-bottom:32px}.study-modal-content h2{font-family:var(--font-display);font-size:18px;font-weight:400;letter-spacing:.02em;margin-bottom:12px}.study-modal-content h2 strong{font-weight:600}.study-word-count{font-size:14px;color:var(--color-gray);letter-spacing:.02em}.study-modal-actions{display:flex;flex-direction:column;gap:16px}.study-btn{padding:14px 24px;font-size:12px;font-weight:500;font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:all .2s;border:none;border-radius:var(--radius-pill)}.study-btn.primary{background:var(--color-white);color:var(--color-bg)}.study-btn.primary:hover{background:var(--color-accent);color:var(--color-white)}.study-btn.text{background:transparent;color:var(--color-gray)}.study-btn.text:hover{color:var(--color-white)}.study-mode-list{display:flex;flex-direction:column;gap:10px}.study-mode-btn{display:flex;flex-direction:column;align-items:flex-start;padding:16px 20px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .2s;text-align:left;font-family:var(--font-sans)}.study-mode-btn:hover{border-color:var(--color-white);background:#ffffff08}.study-mode-btn.primary{border-color:var(--color-white);background:transparent}.study-mode-btn.primary .study-mode-label{color:var(--color-white)}.study-mode-btn.primary .study-mode-desc{color:var(--color-white);opacity:.6}.study-mode-btn.primary:hover{background:#ffffff0d;border-color:var(--color-white)}.study-mode-label{font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--color-white)}.study-mode-desc{font-size:11px;color:var(--color-gray);margin-top:3px;letter-spacing:.02em}.study-page{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg)}.study-loading{flex:1;display:flex;align-items:center;justify-content:center;color:var(--color-gray)}.study-nav{display:flex;align-items:center;justify-content:space-between;padding:14px 36px;border-bottom:1px solid var(--color-border)}.study-nav-actions{display:flex;align-items:center;gap:14px}.back-btn{display:flex;align-items:center;gap:10px;background:none;border:none;color:var(--color-gray);font-size:12px;font-weight:500;font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:color .2s}.back-btn:hover{color:var(--color-white)}.study-title{font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;position:absolute;left:50%;transform:translate(-50%)}.settings-btn{background:none;border:1px solid var(--color-border-hover);border-radius:var(--radius-sm);color:var(--color-gray);padding:10px 14px;cursor:pointer;transition:all .2s;display:flex}.settings-btn:hover{border-color:var(--color-white);color:var(--color-white)}.settings-panel{background:var(--color-card-bg);border-bottom:1px solid var(--color-border);padding:28px 36px;display:flex;gap:48px;flex-wrap:wrap}.settings-group h3{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-gray);margin-bottom:12px}.settings-options{display:flex;gap:8px}.settings-options label{padding:8px 18px;font-size:12px;font-weight:500;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-gray);cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.06em}.settings-options label:hover{border-color:var(--color-white);color:var(--color-white)}.settings-options label.active{background:var(--color-white);border-color:var(--color-white);color:var(--color-bg)}.settings-options input{display:none}.settings-toggles{display:flex;flex-direction:column;gap:12px}.toggle-label{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:13px;color:var(--color-gray)}.toggle-label input{width:16px;height:16px;accent-color:var(--color-accent)}.toggle-label:hover .toggle-text{color:var(--color-white)}.study-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 36px 40px;gap:36px}.flashcard{width:100%;max-width:520px;height:320px;perspective:1000px;cursor:pointer;border-radius:var(--radius-lg);box-shadow:var(--shadow-hover);transition:transform .25s ease,box-shadow .25s ease}.flashcard:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0006}.flashcard-inner{position:relative;width:100%;height:100%;transition:transform .5s;transform-style:preserve-3d}.flashcard.flipped .flashcard-inner{transform:rotateY(180deg)}.flashcard-face{position:absolute;width:100%;height:100%;backface-visibility:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center}.flashcard-front{background:var(--color-card-bg)}.flashcard-back{background:var(--color-card-bg);transform:rotateY(180deg)}.flashcard-content{text-align:center;padding:32px;width:100%}.flashcard-type{display:inline-block;font-size:9px;color:var(--color-accent);border:1px solid rgba(255,0,0,.3);border-radius:var(--radius-pill);padding:4px 10px;margin-bottom:20px;text-transform:uppercase;letter-spacing:.08em}.flashcard-main{margin:0;line-height:1.3}.flashcard-main.kanji{font-family:var(--font-jp);font-size:72px;font-weight:400}.flashcard-main.reading{font-family:var(--font-jp);font-size:48px;font-weight:400}.flashcard-main.meaning{font-family:var(--font-display);font-size:28px;font-weight:400;color:var(--color-white)}.flashcard-romaji{display:block;font-size:14px;color:var(--color-gray);margin-top:12px;letter-spacing:.05em}.flashcard-hint{display:block;font-size:11px;color:var(--color-gray);margin-top:24px;text-transform:uppercase;letter-spacing:.1em}.speak-btn{position:absolute;bottom:20px;right:20px;width:44px;height:44px;background:transparent;border:1px solid var(--color-gray);border-radius:50%;color:var(--color-gray);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.speak-btn:hover{background:var(--color-white);color:var(--color-black);border-color:var(--color-white)}.speak-btn svg{width:20px;height:20px}.speak-btn-small{position:static;width:32px;height:32px;border-radius:50%;flex-shrink:0;margin-left:auto}.speak-btn-small svg{width:16px;height:16px}.flashcard-answer{display:flex;flex-direction:column;gap:20px}.answer-row{display:flex;flex-direction:row;align-items:center;gap:12px}.answer-text{display:flex;flex-direction:column;gap:6px;flex:1}.answer-label{font-size:10px;color:var(--color-gray);text-transform:uppercase;letter-spacing:.12em}.answer-value{font-size:24px}.answer-value.kanji{font-family:var(--font-jp);font-size:36px}.answer-value.reading{font-family:var(--font-jp);font-size:28px}.answer-value.meaning{font-size:20px;color:var(--color-gray)}.flashcard-romaji-inline{display:block;font-size:12px;color:var(--color-gray);margin-top:4px;letter-spacing:.05em}.study-progress{width:100%;max-width:500px;text-align:center}.progress-text{font-size:12px;color:var(--color-gray);letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px;display:block}.study-mode-tag{display:inline-block;background:var(--color-accent);color:var(--color-white);font-size:10px;font-weight:600;padding:2px 8px;border-radius:var(--radius-pill);margin-right:8px;letter-spacing:.06em;vertical-align:middle}.progress-bar{height:3px;background:var(--color-border);border-radius:var(--radius-pill);overflow:hidden}.progress-fill{height:100%;background:var(--color-accent);border-radius:var(--radius-pill);transition:width .3s ease}.answer-buttons{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.answer-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 28px;min-width:110px;background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-white);cursor:pointer;transition:all .2s ease;font-family:var(--font-sans)}.answer-btn:hover{border-color:var(--color-white);transform:translateY(-2px);box-shadow:0 4px 12px #0003}.answer-btn .answer-label{font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--color-white)}.answer-btn .answer-interval{font-size:11px;color:var(--color-gray);letter-spacing:.02em}.answer-btn.again:hover{border-color:#f44;background:#ff44441a}.answer-btn.hard:hover{border-color:#ff8c00;background:#ff8c001a}.answer-btn.good:hover{border-color:#4b4;background:#44bb441a}.answer-btn.easy:hover{border-color:#48f;background:#4488ff1a}.saving-indicator{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;background:var(--color-surface);border-bottom:1px solid var(--color-border);font-size:13px;color:var(--color-gray)}.saving-spinner{width:14px;height:14px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.answer-buttons.disabled{opacity:.6;pointer-events:none}.answer-btn:disabled{cursor:not-allowed;opacity:.6}.study-complete{text-align:center;padding:48px 40px}.complete-icon{margin-bottom:28px;color:var(--color-accent)}.study-complete h2{font-family:var(--font-display);font-size:32px;font-weight:600;letter-spacing:-.02em;margin-bottom:14px}.study-complete>p{font-size:15px;color:var(--color-gray);margin-bottom:44px;line-height:1.5}.session-stats{display:flex;gap:16px;justify-content:center;margin-bottom:44px}.stat-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 28px;background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:transform .2s ease,box-shadow .2s ease}.stat-item:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.stat-item .stat-value{font-size:28px;font-weight:600}.stat-item .stat-label{font-size:10px;color:var(--color-gray);text-transform:uppercase;letter-spacing:.1em}.stat-item.again .stat-value{color:#f44}.stat-item.hard .stat-value{color:#ff8c00}.stat-item.good .stat-value{color:#4b4}.session-accuracy{display:flex;align-items:baseline;justify-content:center;gap:10px;margin-bottom:36px}.accuracy-value{font-size:42px;font-weight:600;color:#7dd3fc}.accuracy-label{font-size:12px;color:var(--color-gray);text-transform:uppercase;letter-spacing:.08em}.stat-item.easy .stat-value{color:#48f}.complete-actions{display:flex;flex-direction:column;gap:16px;align-items:center}@media(max-width:768px){.study-nav{padding:20px;flex-wrap:wrap;gap:16px}.study-title{position:static;transform:none;order:-1;width:100%;text-align:center}.settings-panel{padding:20px;gap:24px}.settings-options{flex-wrap:wrap}.study-content{padding:24px 20px 40px}.flashcard{height:280px}.flashcard-main.kanji{font-size:56px}.flashcard-main.reading{font-size:36px}.flashcard-main.meaning{font-size:22px}.answer-buttons{gap:8px}.answer-btn{min-width:80px;padding:14px 20px}.session-stats{flex-wrap:wrap;gap:12px}.stat-item{padding:14px 18px}.stat-item .stat-value{font-size:24px}}@media(max-width:480px){.study-nav{padding:16px}.back-btn span{display:none}.flashcard{height:240px}.flashcard-main.kanji{font-size:48px}.flashcard-main.reading{font-size:32px}.answer-btn{min-width:70px;padding:12px 16px;border-radius:var(--radius-sm)}.answer-btn .answer-label{font-size:11px}.study-complete h2{font-size:24px}.speak-btn{width:36px;height:36px;bottom:16px;right:16px}.speak-btn svg{width:16px;height:16px}.speak-btn-small{width:28px;height:28px}.speak-btn-small svg{width:14px;height:14px}}@media(max-width:600px){.dashboard-nav{padding:12px 16px;gap:12px}.nav-logo{font-size:12px}.nav-actions{gap:8px}.nav-icon-btn{width:36px;height:36px}.nav-icon-btn svg{width:16px;height:16px}.dashboard-nav .theme-toggle{width:36px;height:36px}.dashboard-nav .theme-toggle svg{width:16px;height:16px}.nav-upgrade-text{display:none}.nav-upgrade-btn{width:36px;height:36px;padding:0;border:none;justify-content:center;border-radius:var(--radius-sm)}}@media(max-width:480px){.study-modal-overlay,.study-select-overlay,.delete-modal-overlay,.custom-word-modal-overlay{padding:16px;align-items:flex-end}.study-modal,.study-select-modal,.delete-modal,.custom-word-modal{max-width:100%;margin:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.study-modal{padding:24px 20px}.study-modal-content{margin-bottom:24px}.study-modal-content h2{font-size:16px}.study-word-count{font-size:13px}.study-modal-actions{gap:12px}.study-btn{padding:14px 20px;font-size:12px}.study-select-footer{flex-direction:column;gap:12px}.delete-modal-content{padding:20px 16px}.delete-modal-content h3{font-size:14px}.delete-modal-content p{font-size:12px}.delete-btn-cancel,.delete-btn-confirm{padding:12px;font-size:11px}.custom-word-modal-header{padding:14px 16px}.custom-word-modal-header h3{font-size:13px}.custom-word-modal-body{padding:16px;gap:14px}.custom-word-field label{font-size:10px;margin-bottom:6px}.custom-word-field input,.custom-word-field select{padding:12px;font-size:16px}.custom-word-modal-actions{padding:14px 16px;gap:10px}.custom-word-modal-actions .cancel-btn,.custom-word-modal-actions .add-btn{padding:12px 16px;font-size:11px}.add-word-form{padding:16px}.form-actions{gap:8px;margin-top:12px}.form-actions .text-btn{padding:10px 16px;font-size:12px}}@media(max-width:600px){.search-input-wrapper{padding:12px 14px;gap:10px}.search-input-wrapper input{font-size:16px}.search-results{max-height:280px}.search-result-item{padding:12px 14px}.result-word{font-size:16px}.result-reading{font-size:14px}.result-meaning{font-size:12px}.result-type{font-size:8px;padding:2px 6px}}@media(max-width:600px){.word-card{padding:12px 16px}.word-kanji{font-size:18px}.word-reading,.word-meaning{font-size:12px}.word-type{font-size:8px;padding:3px 8px}}@media(max-width:600px){.content-header{gap:12px}.action-btn-label{display:none}.action-btn{width:36px;height:36px;padding:0;justify-content:center;border-radius:var(--radius-sm)}.action-btn.danger{width:36px;height:36px}.search-box{height:40px}}@media(max-width:600px){.settings-panel{padding:16px;gap:20px;flex-direction:column}.settings-group h3{font-size:9px;margin-bottom:10px}.settings-options label{padding:6px 12px;font-size:10px}.toggle-label{font-size:12px;gap:10px}.toggle-label input{width:14px;height:14px}}@media(max-width:380px){.answer-buttons{flex-wrap:wrap;gap:6px}.answer-btn{min-width:65px;padding:10px 12px}.answer-btn .answer-label{font-size:10px}.answer-btn .answer-interval{font-size:9px}.flashcard{height:200px}.flashcard-main.kanji{font-size:40px}.flashcard-main.reading{font-size:28px}.flashcard-main.meaning{font-size:18px}.session-stats{gap:8px}.stat-item{padding:10px 14px}.stat-item .stat-value{font-size:20px}.stat-item .stat-label{font-size:8px}}.dashboard-main-area:has(.calendar-page-content){padding:0}.calendar-page-content{display:flex;flex-direction:column;min-height:100%;padding:40px 48px 60px}.calendar-header{display:flex;align-items:center;gap:16px;margin-bottom:48px}.calendar-header h1{font-family:var(--font-display);font-size:28px;font-weight:600;color:var(--color-white);letter-spacing:-.5px}.calendar-container{max-width:700px;margin:0 auto;width:100%}.calendar-month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-nav-btn{background:none;border:1px solid var(--color-border);border-radius:12px;color:var(--color-white);width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .2s}.calendar-nav-btn:hover{border-color:var(--color-border-hover)}.calendar-month-label{display:flex;align-items:baseline;gap:10px}.calendar-month{font-family:var(--font-display);font-size:24px;font-weight:600;color:var(--color-white);letter-spacing:-.3px}.calendar-year{font-size:16px;color:var(--color-gray);font-weight:400}.calendar-month-stats{text-align:center;font-size:13px;color:var(--color-gray);margin-bottom:24px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-day-header{text-align:center;font-size:12px;font-weight:500;color:var(--color-gray);padding:12px 0;text-transform:uppercase;letter-spacing:.5px}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:12px;border:1px solid transparent;cursor:default;transition:background .15s,border-color .15s;position:relative}.calendar-day.empty{pointer-events:none}.calendar-day-number{font-size:16px;font-weight:500;color:var(--color-gray)}.calendar-day.has-study{cursor:pointer}.calendar-day.has-study .calendar-day-number{color:var(--color-white)}.calendar-day.has-study:hover{background:var(--color-card-bg)}.calendar-day.today{border-color:var(--color-border-hover)}.calendar-day.selected{background:#ff000014;border-color:var(--color-accent)}[data-theme=light] .calendar-day.selected{background:#dc262614}.calendar-day-dot{width:6px;height:6px;border-radius:50%;background:var(--color-accent)}.calendar-popup-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.calendar-popup{background:var(--color-bg);border:1px solid var(--color-border);border-radius:12px;padding:28px;width:100%;max-width:420px;max-height:80vh;overflow-y:auto}.calendar-popup-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.calendar-popup-header h3{font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--color-white)}.calendar-popup-close{background:none;border:none;color:var(--color-gray);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:12px;transition:color .15s}.calendar-popup-close:hover{color:var(--color-white)}.calendar-popup-count{font-size:13px;color:var(--color-gray);margin-bottom:20px}.calendar-sessions{display:flex;flex-direction:column;gap:10px}.calendar-session-item{padding:14px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-card-bg)}.session-folder-name{font-size:14px;font-weight:500;color:var(--color-white);margin-bottom:8px}.session-stats-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--color-gray)}.session-accuracy{font-weight:500}@media(max-width:600px){.calendar-page-content{padding:24px 20px 40px}.calendar-header{margin-bottom:32px}.calendar-header h1{font-size:22px}.calendar-month{font-size:20px}.calendar-year{font-size:14px}.calendar-day-number{font-size:13px}.calendar-day-dot{width:5px;height:5px}.calendar-nav-btn{width:36px;height:36px}.calendar-popup{padding:20px}.calendar-popup-header h3{font-size:16px}.calendar-session-item{padding:12px}}.membership-main{flex:1;padding:40px 36px;max-width:680px;margin:0 auto;width:100%;overflow-y:auto}.membership-main .back-btn{display:inline-flex;align-items:center;gap:8px;background:none;border:none;color:var(--color-gray);cursor:pointer;font-size:13px;font-family:var(--font-sans);padding:0;margin-bottom:32px;transition:color .2s}.membership-main .back-btn:hover{color:var(--color-white)}.membership-title{font-family:var(--font-display);font-size:28px;font-weight:600;letter-spacing:-.02em;margin-bottom:32px}.membership-active{border:1px solid var(--color-border);border-radius:0;padding:32px}.membership-badge{display:inline-block;background:var(--color-accent);color:#fff;font-size:11px;font-weight:700;letter-spacing:1px;padding:4px 12px;margin-bottom:24px}.membership-details{display:flex;flex-direction:column;gap:16px;margin-bottom:32px}.membership-detail-row{display:flex;justify-content:space-between;align-items:center}.detail-label{font-size:13px;color:var(--color-gray)}.detail-value{font-size:14px;font-weight:500}.membership-action-btn{width:100%;padding:12px;font-size:14px;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:all .2s}.membership-action-btn.cancel-btn{background:none;border:1px solid var(--color-border);color:var(--color-gray)}.membership-action-btn.cancel-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.membership-action-btn.renew-btn{background:var(--color-white);color:var(--color-bg);border:none}.membership-action-btn.renew-btn:hover{opacity:.85}.membership-action-btn:disabled{opacity:.5;cursor:not-allowed}.membership-desc{font-size:15px;color:var(--color-gray);margin-bottom:28px;line-height:1.5}.currency-toggle{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-pill);overflow:hidden;margin-bottom:24px}.currency-btn{background:transparent;border:none;color:var(--color-gray);font-size:13px;font-weight:500;font-family:var(--font-sans);padding:8px 20px;cursor:pointer;transition:all .2s;letter-spacing:.02em}.currency-btn:hover{color:var(--color-white)}.currency-btn.active{background:var(--color-white);color:var(--color-bg)}.plan-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.plan-card{border:1px solid var(--color-border);border-radius:0;padding:28px 24px;display:flex;flex-direction:column;position:relative}.plan-card.recommended{border-color:var(--color-accent)}.plan-tag{position:absolute;top:-10px;right:16px;background:var(--color-accent);color:#fff;font-size:11px;font-weight:600;padding:2px 10px}.plan-name{font-size:14px;font-weight:500;color:var(--color-gray);margin-bottom:8px}.plan-price{margin-bottom:20px}.price-amount{font-size:32px;font-weight:700;letter-spacing:-.02em}.price-period{font-size:14px;color:var(--color-gray)}.plan-features{list-style:none;padding:0;margin:0 0 24px;display:flex;flex-direction:column;gap:8px;flex:1}.plan-features li{font-size:13px;color:var(--color-gray);padding-left:18px;position:relative}.plan-features li:before{content:"";position:absolute;left:0;top:6px;width:6px;height:6px;background:var(--color-gray)}.plan-subscribe-btn{width:100%;padding:12px;font-size:14px;font-weight:500;font-family:var(--font-sans);cursor:pointer;background:var(--color-white);color:var(--color-bg);border:none;transition:opacity .2s}.plan-subscribe-btn:hover{opacity:.85}.plan-subscribe-btn:disabled{opacity:.5;cursor:not-allowed}.free-limits-info{text-align:center;font-size:12px;color:var(--color-gray);opacity:.7}@media(max-width:768px){.membership-main{padding:24px 16px}.plan-cards{grid-template-columns:1fr}.membership-active{padding:24px 20px}}.footer-legal-links{display:flex;gap:20px}.footer-legal-links a{font-size:11px;color:var(--color-gray);letter-spacing:.05em;transition:color .2s}.footer-legal-links a:hover{color:var(--color-white);opacity:1}.legal-page{height:auto;min-height:100vh;overflow:auto}.legal-main{flex:1;padding:40px 36px 60px;max-width:720px;margin:0 auto;width:100%}.legal-back{display:inline-flex;align-items:center;gap:8px;color:var(--color-gray);font-size:13px;font-family:var(--font-sans);margin-bottom:32px;transition:color .2s;background:none;border:none;padding:0;cursor:pointer;text-decoration:none}.legal-back:hover{color:var(--color-white);opacity:1}.legal-title{font-family:var(--font-display);font-size:28px;font-weight:600;letter-spacing:-.02em;margin-bottom:8px}.legal-updated{font-size:12px;color:var(--color-gray);margin-bottom:40px}.legal-content{display:flex;flex-direction:column;gap:32px}.legal-section h2{font-size:16px;font-weight:600;margin-bottom:12px;letter-spacing:-.01em}.legal-section h3{font-size:14px;font-weight:600;margin-top:16px;margin-bottom:8px}.legal-section p{font-size:14px;line-height:1.7;color:var(--color-gray)}.legal-section ul{list-style:none;padding:0;margin:8px 0}.legal-section ul li{font-size:14px;line-height:1.7;color:var(--color-gray);padding-left:16px;position:relative}.legal-section ul li:before{content:"—";position:absolute;left:0;color:var(--color-gray)}.legal-section a{color:var(--color-accent);text-decoration:underline}.legal-section a:hover{opacity:.7}@media(max-width:768px){.legal-main{padding:24px 16px 40px}.legal-title{font-size:24px}.footer-copyright{flex-direction:column;gap:8px;text-align:center}.footer-legal-links{justify-content:center}}.feedback-subtitle{font-size:14px;line-height:1.6;color:var(--color-gray);margin-bottom:32px}.feedback-form{display:flex;flex-direction:column;gap:24px}.feedback-field{display:flex;flex-direction:column;gap:8px}.feedback-label{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--color-gray)}.feedback-email{font-size:14px;color:var(--color-white);padding:12px 16px;background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);opacity:.7}.feedback-textarea{padding:14px 16px;font-size:14px;font-family:var(--font-sans);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-white);outline:none;resize:vertical;min-height:140px;transition:border-color .2s}.feedback-textarea::placeholder{color:var(--color-gray)}.feedback-textarea:focus{border-color:var(--color-white)}.feedback-submit{align-self:flex-start;padding:12px 28px;font-size:14px;font-weight:500;font-family:var(--font-sans);background:var(--color-white);color:var(--color-bg);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s}.feedback-submit:hover:not(:disabled){opacity:.9;transform:translateY(-1px);box-shadow:var(--shadow-hover)}.feedback-submit:disabled{opacity:.4;cursor:not-allowed}.feedback-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.feedback-thankyou{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:40px 32px;max-width:380px;width:100%;text-align:center;box-shadow:var(--shadow-modal)}.feedback-thankyou-icon{margin-bottom:16px;color:var(--color-accent)}.feedback-thankyou h3{font-size:20px;font-weight:600;margin-bottom:10px;letter-spacing:-.01em}.feedback-thankyou p{font-size:14px;line-height:1.6;color:var(--color-gray);margin-bottom:24px}.feedback-thankyou-btn{padding:12px 28px;font-size:14px;font-weight:500;font-family:var(--font-sans);background:var(--color-white);color:var(--color-bg);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s}.feedback-thankyou-btn:hover{opacity:.9;transform:translateY(-1px);box-shadow:var(--shadow-hover)}
