:root{font-family:Pretendard,Noto Sans KR,-apple-system,BlinkMacSystemFont,sans-serif;font-size:16px;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background-color:#13131f;color:#cdd6f4;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}a{text-decoration:none;color:inherit}button{font-family:inherit;font-size:inherit;cursor:pointer}h1,h2,h3,h4,h5,h6{line-height:1.3}.navbar{background-color:#1e1e2e;border-bottom:1px solid #2a2a3e;position:sticky;top:0;z-index:100}.navbar-inner{max-width:1080px;margin:0 auto;padding:0 2rem;height:64px;display:flex;align-items:center;gap:.5rem}.navbar-brand{font-family:Pretendard,sans-serif;font-size:1.1rem;font-weight:700;color:#cba6f7;letter-spacing:-.3px;text-decoration:none;transition:opacity .15s;flex-shrink:0;margin-right:.5rem}.navbar-brand:hover{opacity:.8}.navbar-links{display:flex;align-items:center;gap:.25rem;flex:1}.navbar-links a{color:#a6adc8;font-size:.95rem;font-weight:500;padding:.45rem .85rem;border-radius:8px;transition:all .15s;text-decoration:none;white-space:nowrap}.navbar-links a:hover{color:#cdd6f4;background-color:#2a2a3e}.navbar-links a.active{color:#cba6f7;background-color:#2a2a3e}.nav-dropdown-wrap{position:relative}.nav-dropdown-btn{display:flex;align-items:center;gap:.3rem;background:transparent;border:none;color:#a6adc8;font-size:.95rem;font-weight:500;padding:.45rem .85rem;border-radius:8px;cursor:pointer;font-family:inherit;transition:all .15s;white-space:nowrap}.nav-dropdown-btn:hover,.nav-dropdown-btn.open{color:#cdd6f4;background-color:#2a2a3e}.drop-arrow{font-size:.7rem;transition:transform .2s}.nav-dropdown-btn.open .drop-arrow{transform:rotate(180deg)}.nav-dropdown-menu{position:absolute;top:calc(100% + 6px);left:0;background:#1e1e2e;border:1px solid #313244;border-radius:10px;padding:.4rem;min-width:140px;display:flex;flex-direction:column;gap:.15rem;box-shadow:0 8px 24px #0006}.nav-dropdown-menu a{color:#a6adc8;font-size:.9rem;font-weight:500;padding:.5rem .75rem;border-radius:7px;transition:all .15s;text-decoration:none}.nav-dropdown-menu a:hover{color:#cdd6f4;background:#2a2a3e}.nav-dropdown-menu a.active{color:#cba6f7;background:#2a2a3e}.navbar-user{display:flex;align-items:center;gap:.6rem;margin-left:auto;flex-shrink:0}.navbar-username{font-size:.88rem;color:#585b70;padding:0 .4rem}.navbar-logout{background:transparent;border:1px solid #45475a;color:#a6adc8;padding:.35rem .8rem;border-radius:8px;font-size:.88rem;cursor:pointer;transition:all .15s;font-family:inherit}.navbar-logout:hover{border-color:#f38ba8;color:#f38ba8}.navbar-login{color:#a6adc8;font-size:.95rem;padding:.45rem .9rem;border-radius:8px;transition:all .15s;text-decoration:none}.navbar-login:hover{color:#cdd6f4;background-color:#2a2a3e}.navbar-register{background:#cba6f7;color:#1e1e2e!important;font-size:.9rem;font-weight:700;padding:.4rem 1rem;border-radius:8px;transition:opacity .15s;text-decoration:none}.navbar-register:hover{opacity:.85}.lang-toggle{background:transparent;border:1px solid #45475a;color:#585b70;padding:.28rem .65rem;border-radius:6px;font-size:.78rem;font-weight:700;cursor:pointer;transition:all .15s;font-family:inherit;letter-spacing:.05em}.lang-toggle:hover{border-color:#cba6f7;color:#cba6f7}.mobile-lang{align-self:flex-start;font-size:.9rem;padding:.5rem .75rem;border-radius:8px;letter-spacing:0}.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;background:transparent;border:none;cursor:pointer;padding:6px;border-radius:6px;transition:background .15s;margin-left:auto}.hamburger:hover{background:#2a2a3e}.hamburger span{display:block;width:22px;height:2px;background:#cdd6f4;border-radius:2px;transition:all .25s;transform-origin:center}.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-menu{display:none;flex-direction:column;padding:.75rem 1.5rem 1.25rem;border-top:1px solid #2a2a3e;background:#1e1e2e;gap:.25rem}.mobile-menu a{color:#a6adc8;font-size:1rem;font-weight:500;padding:.65rem .75rem;border-radius:8px;transition:all .15s;text-decoration:none}.mobile-menu a:hover,.mobile-menu a.active{color:#cdd6f4;background:#2a2a3e}.mobile-menu a.active{color:#cba6f7}.mobile-section-label{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#585b70;padding:.6rem .75rem .2rem;margin-top:.3rem}.mobile-sub{padding-left:1.25rem!important}.mobile-divider{height:1px;background:#2a2a3e;margin:.5rem 0}.mobile-username{font-size:.85rem;color:#585b70;padding:.2rem .75rem .4rem}.mobile-logout{align-self:flex-start;margin-top:.2rem}.mobile-register{text-align:center;margin-top:.4rem}@media (max-width: 768px){.desktop-only{display:none!important}.hamburger,.mobile-menu{display:flex}.navbar-inner{padding:0 1.25rem}}.footer{background:#0e0e1a;border-top:1px solid #1e1e2e;padding:2.5rem 0 1.5rem;margin-top:auto}.footer-inner{max-width:960px;margin:0 auto;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.5rem;margin-bottom:2rem}.footer-logo{font-size:1rem;font-weight:700;color:#cba6f7;display:block;margin-bottom:.3rem}.footer-tagline{font-size:.85rem;color:#585b70}.footer-rep{font-size:.78rem;color:#45475a;margin-bottom:.4rem}.footer-bottom-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.footer-nav{display:flex;gap:1.5rem}.footer-nav a{font-size:.9rem;color:#a6adc8;transition:color .15s}.footer-nav a:hover{color:#cdd6f4}.footer-bottom{max-width:960px;margin:0 auto;padding:1rem 2rem 0;border-top:1px solid #1e1e2e;font-size:.8rem;color:#45475a;display:flex;flex-direction:column;gap:.35rem}.footer-policy{color:#45475a;font-size:.8rem;text-decoration:none;transition:color .15s}.footer-policy:hover{color:#a6adc8}@media (max-width: 768px){.footer-inner{flex-direction:column;align-items:flex-start;padding:0 1.25rem;gap:1rem}.footer-bottom{padding:1rem 1.25rem 0}.footer-nav{gap:1rem;flex-wrap:wrap}}.splash-page{min-height:100vh;background:#0d0d1a;display:flex;align-items:center;justify-content:center;padding:24px}.splash-card{display:flex;flex-direction:column;align-items:center;gap:0;text-align:center}.splash-logo{font-size:56px;font-weight:800;color:#fff;letter-spacing:-1px;line-height:1;margin-bottom:24px;background:linear-gradient(135deg,#a78bfa,#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.splash-badge{display:inline-block;background:#a78bfa26;border:1px solid rgba(167,139,250,.4);color:#c4b5fd;font-size:13px;font-weight:600;padding:6px 18px;border-radius:100px;letter-spacing:.5px;margin-bottom:40px}.splash-actions{display:flex;flex-direction:column;gap:12px;width:260px}.splash-login-btn{background:#4f46e5;color:#fff;border:none;padding:13px 0;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:background .2s;width:100%}.splash-login-btn:hover{background:#4338ca}.splash-register-btn{background:transparent;color:#94a3b8;border:1px solid #334155;padding:13px 0;border-radius:10px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s;width:100%}.splash-register-btn:hover{border-color:#475569;color:#cbd5e1}.splash-blocked{margin-top:18px;background:#ef44441f;border:1px solid rgba(239,68,68,.35);color:#fca5a5;font-size:13px;padding:10px 20px;border-radius:8px;animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.pillar-wrap{display:flex;flex-direction:column;gap:2rem}.pillar-label-wrap{text-align:center}.pillar-content{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.pillar-wrap.reverse .pillar-content{direction:rtl}.pillar-wrap.reverse .pillar-content>*{direction:ltr}@media (max-width: 768px){.pillar-content{grid-template-columns:1fr;gap:2rem}.pillar-wrap.reverse .pillar-content{direction:ltr}}.pillar-title{font-size:1.9rem;font-weight:800;color:#cdd6f4;letter-spacing:-.5px;line-height:1.3;margin-bottom:1rem}.pillar-accent.purple{background:linear-gradient(135deg,#cba6f7,#89b4fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.pillar-accent.blue{background:linear-gradient(135deg,#89b4fa,#74c7ec);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.pillar-desc{font-size:.95rem;color:#a6adc8;line-height:1.8;margin-bottom:1.2rem}.pillar-points{list-style:none;display:flex;flex-direction:column;gap:.6rem}.pillar-points li{display:flex;align-items:center;gap:.7rem;font-size:.92rem;color:#cdd6f4}.point-icon{font-size:1rem}.pillar-visual{border-radius:16px;padding:2px}.purple-glow{background:linear-gradient(135deg,#cba6f74d,#89b4fa1a)}.blue-glow{background:linear-gradient(135deg,#89b4fa4d,#74c7ec1a)}.visual-card{background:#1e1e2e;border-radius:14px;padding:1.8rem;display:flex;flex-direction:column;gap:1rem}.visual-row{display:flex;align-items:center;gap:.8rem;font-size:.88rem;color:#585b70;background:#181825;border:1px solid #313244;border-radius:8px;padding:.7rem 1rem}.visual-row.done{color:#a6e3a1;border-color:#a6e3a133;background:#a6e3a10a}.v-icon{font-size:1rem}.visual-arrow{font-size:.8rem;color:#45475a;text-align:center;padding:.2rem 0}.curriculum-banner{background:linear-gradient(135deg,#89b4fa14,#74c7ec0d);border-bottom:1px solid rgba(137,180,250,.2);padding:.7rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center}.curriculum-badge{flex-shrink:0;font-size:.78rem;font-weight:700;color:#89b4fa;background:#89b4fa1f;border:1px solid rgba(137,180,250,.25);padding:.2rem .65rem;border-radius:20px;white-space:nowrap;margin-top:.1rem}.curriculum-text{font-size:.85rem;color:#a6adc8;line-height:1.6;max-width:580px}.main-page{width:100%}.container{max-width:960px;margin:0 auto;padding:0 2rem}.section{padding:6rem 0}.section-header{text-align:center;margin-bottom:3.5rem}.section-label{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#cba6f7;background:#2a1f3d;padding:.3rem .9rem;border-radius:20px;margin-bottom:1rem}.section-title{font-size:2rem;font-weight:800;color:#cdd6f4;letter-spacing:-.5px;margin-bottom:.8rem}.section-sub{color:#a6adc8;font-size:1rem;max-width:520px;margin:0 auto;line-height:1.7}.pain-tagline{font-size:1.15rem;font-weight:700;color:#a6adc8;margin-bottom:.5rem;letter-spacing:-.2px}.pain-tagline-accent{background:linear-gradient(135deg,#cba6f7,#89b4fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:1.25rem}.pain-tagline-note{font-size:.8rem;font-weight:400;color:#6c6c8a;vertical-align:middle}[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .6s ease,transform .6s ease}[data-reveal].revealed{opacity:1;transform:translateY(0)}.hero{position:relative;min-height:calc(100vh - 64px);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;text-align:center;padding:6rem 2rem 4rem}.hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(203,166,247,.12) 0%,transparent 70%),radial-gradient(ellipse 60% 40% at 80% 80%,rgba(137,180,250,.08) 0%,transparent 60%);pointer-events:none}.hero-inner{position:relative;z-index:1;max-width:720px}.hero-badge{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#cba6f7;background:#cba6f71f;border:1px solid rgba(203,166,247,.3);padding:.35rem 1rem;border-radius:20px;margin-bottom:1.5rem}.hero-title{font-size:clamp(2.4rem,5vw,3.6rem);font-weight:900;color:#cdd6f4;letter-spacing:-1.5px;line-height:1.2;margin-bottom:1.5rem}.hero-accent{background:linear-gradient(135deg,#cba6f7,#89b4fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-title-note{font-size:.9rem;font-weight:400;color:#6c6c8a;-webkit-text-fill-color:#6c6c8a;vertical-align:middle}.hero-desc{font-size:1.1rem;color:#a6adc8;line-height:1.8;margin-bottom:2.5rem}.hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.cta-btn{display:inline-block;padding:.8rem 1.8rem;border-radius:10px;font-size:1rem;font-weight:600;transition:all .2s;text-decoration:none}.cta-primary{background:#cba6f7;color:#1e1e2e}.cta-primary:hover{background:#d4b3ff;transform:translateY(-2px);box-shadow:0 8px 24px #cba6f74d}.cta-secondary{background:transparent;color:#cdd6f4;border:1px solid #45475a}.cta-secondary:hover{border-color:#cba6f7;color:#cba6f7;transform:translateY(-2px)}.hero-scroll-hint{position:absolute;bottom:2rem;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:.5rem;color:#45475a;font-size:.8rem;z-index:1}.scroll-arrow{width:20px;height:20px;border-right:2px solid #45475a;border-bottom:2px solid #45475a;transform:rotate(45deg);animation:bounce 1.6s ease-in-out infinite}@keyframes bounce{0%,to{transform:rotate(45deg) translateY(0)}50%{transform:rotate(45deg) translateY(5px)}}.hero-animate-1{opacity:0;animation:heroFadeUp .7s ease .1s forwards}.hero-animate-2{opacity:0;animation:heroFadeUp .7s ease .3s forwards}.hero-animate-3{opacity:0;animation:heroFadeUp .7s ease .5s forwards}.hero-animate-4{opacity:0;animation:heroFadeUp .7s ease .7s forwards}@keyframes heroFadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.features-section{background:#181825}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}@media (max-width: 768px){.features-grid{grid-template-columns:1fr}}.feature-card{background:#1e1e2e;border:1px solid #313244;border-radius:16px;padding:2rem 1.6rem;transition:transform .25s,box-shadow .25s,border-color .25s}.feature-card:hover{transform:translateY(-4px)}.feature-purple:hover{border-color:#cba6f7;box-shadow:0 8px 32px #cba6f71f}.feature-blue:hover{border-color:#89b4fa;box-shadow:0 8px 32px #89b4fa1f}.feature-green:hover{border-color:#a6e3a1;box-shadow:0 8px 32px #a6e3a11f}.feature-icon-wrap{font-size:2rem;width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:1.2rem}.feature-icon-purple{background:#cba6f71f}.feature-icon-blue{background:#89b4fa1f}.feature-icon-green{background:#a6e3a11f}.feature-title{font-size:1.1rem;font-weight:700;color:#cdd6f4;margin-bottom:.7rem}.feature-desc{font-size:.9rem;color:#a6adc8;line-height:1.7}.steps-section{background:#13131f}.steps-row{display:flex;gap:0;align-items:flex-start;position:relative}@media (max-width: 768px){.steps-row{flex-direction:column}.step-arrow{display:none}}.step-item{flex:1;position:relative;text-align:center;padding:0 1.5rem}.step-num{font-size:2.8rem;font-weight:900;color:#cba6f733;line-height:1;margin-bottom:.8rem;font-variant-numeric:tabular-nums}.step-title{font-size:1.05rem;font-weight:700;color:#cdd6f4;margin-bottom:.6rem}.step-desc{font-size:.88rem;color:#a6adc8;line-height:1.6}.step-arrow{position:absolute;top:1.3rem;right:-12px;width:24px;height:24px;border-right:2px solid #313244;border-top:2px solid #313244;transform:rotate(45deg);z-index:1}.users-section{background:#181825}.users-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}@media (max-width: 768px){.users-grid{grid-template-columns:1fr}}.user-card{background:#1e1e2e;border:1px solid #313244;border-radius:16px;padding:2rem 1.6rem;display:flex;flex-direction:column;gap:1rem;transition:transform .25s,border-color .25s}.user-card:hover{transform:translateY(-4px);border-color:#45475a}.user-icon{font-size:2.4rem}.user-role{font-size:1.1rem;font-weight:700;color:#cdd6f4}.user-pain,.user-gain{display:flex;flex-direction:column;gap:.3rem}.user-pain p,.user-gain p{font-size:.88rem;color:#a6adc8;line-height:1.5}.pain-label,.gain-label{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.15rem .55rem;border-radius:4px;width:fit-content}.pain-label{background:#f38ba81f;color:#f38ba8}.gain-label{background:#a6e3a11f;color:#a6e3a1}.cta-section-bottom{background:#13131f}.cta-box{background:linear-gradient(135deg,#cba6f70f,#89b4fa0f);border:1px solid rgba(203,166,247,.2);border-radius:24px;padding:4rem 2rem;text-align:center}.cta-box-title{font-size:2rem;font-weight:800;color:#cdd6f4;letter-spacing:-.5px;margin:.6rem 0}.cta-box-sub{color:#a6adc8;font-size:1rem;margin-bottom:2rem}@media (max-width: 768px){.container{padding:0 1.25rem}.section{padding:4rem 0}.section-title{font-size:1.55rem}.section-sub{font-size:.92rem}.hero{padding:4rem 1.25rem 3rem;min-height:calc(100vh - 64px)}.hero-title{font-size:clamp(1.8rem,7vw,2.6rem);letter-spacing:-1px}.hero-desc{font-size:.95rem}.hero-cta{flex-direction:column;align-items:center}.cta-btn{width:100%;max-width:280px;text-align:center}.pillar-title{font-size:1.5rem}.cta-box{padding:2.5rem 1.25rem;border-radius:16px}.cta-box-title{font-size:1.5rem}}.auth-page{min-height:calc(100vh - 64px);display:flex;align-items:center;justify-content:center;padding:2rem}.auth-card{background:#1e1e2e;border:1px solid #313244;border-radius:20px;padding:2.5rem 2rem;width:100%;max-width:420px}.auth-logo{display:block;font-size:1.3rem;font-weight:800;color:#cba6f7;text-decoration:none;margin-bottom:1.8rem;letter-spacing:-.3px}.auth-coming-soon{display:inline-block;background:#cba6f71f;border:1px solid rgba(203,166,247,.35);color:#cba6f7;font-size:12px;font-weight:600;padding:4px 14px;border-radius:100px;letter-spacing:.4px;margin-bottom:1.4rem}.auth-title{font-size:1.6rem;font-weight:800;color:#cdd6f4;letter-spacing:-.5px;margin-bottom:.4rem}.auth-sub{font-size:.9rem;color:#a6adc8;margin-bottom:1.8rem}.auth-error{background:#f38ba81a;border:1px solid #f38ba8;color:#f38ba8;border-radius:8px;padding:.7rem 1rem;font-size:.9rem;margin-bottom:1.2rem}.auth-form{display:flex;flex-direction:column;gap:1.2rem}.auth-field{display:flex;flex-direction:column;gap:.5rem}.auth-field label{font-size:.88rem;color:#a6adc8;font-weight:500}.auth-hint{color:#585b70;font-weight:400}.auth-field input{background:#181825;border:1px solid #313244;border-radius:10px;color:#cdd6f4;padding:.7rem 1rem;font-size:.95rem;outline:none;transition:border-color .15s;font-family:inherit}.auth-field input:focus{border-color:#cba6f7}.auth-field input::placeholder{color:#45475a}.auth-btn{margin-top:.4rem;background:#cba6f7;color:#1e1e2e;border:none;border-radius:10px;padding:.8rem;font-size:1rem;font-weight:700;cursor:pointer;transition:opacity .15s,transform .15s;font-family:inherit}.auth-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.auth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-switch{text-align:center;margin-top:1.5rem;font-size:.9rem;color:#585b70}.auth-switch a{color:#cba6f7;font-weight:600;text-decoration:none}.auth-switch a:hover{text-decoration:underline}.field-hint-error{font-size:.78rem;color:#f38ba8;margin-top:.2rem}.pending-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:9999;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fade-in .2s ease}.pending-modal{background:#1e1e2e;border:1px solid #45475a;border-radius:16px;padding:2.5rem 2rem;max-width:400px;width:100%;text-align:center;box-shadow:0 20px 60px #0009;animation:slide-up .25s ease}@keyframes slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.pending-modal-icon{font-size:2.5rem;margin-bottom:1rem}.pending-modal-title{font-size:1.2rem;font-weight:700;color:#cdd6f4;margin:0 0 .75rem}.pending-modal-desc{font-size:.9rem;color:#a6adc8;line-height:1.8;margin:0 0 1.5rem}.pending-modal-btn{background:#cba6f7;border:none;color:#1e1e2e;font-size:.95rem;font-weight:700;padding:.6rem 2rem;border-radius:8px;cursor:pointer;transition:opacity .15s}.pending-modal-btn:hover{opacity:.85}.pending-icon{font-size:2.5rem;text-align:center;margin-bottom:.5rem}.register-korean-notice{font-size:.85rem;color:#89b4fa;background:#89b4fa14;border:1px solid rgba(137,180,250,.2);border-radius:8px;padding:.55rem .9rem;margin-top:.5rem;text-align:center}.page{max-width:960px;margin:0 auto;padding:3rem 2rem}.page-title{font-size:1.75rem;font-weight:700;color:#cdd6f4;margin-bottom:.5rem;letter-spacing:-.5px}.tab-group{display:flex;gap:.25rem;border-bottom:2px solid var(--border, #313244)}.tab-btn{padding:.5rem 1.25rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;color:var(--text-muted, #a6adc8);cursor:pointer;font-size:.95rem;font-weight:500;transition:color .15s}.tab-btn:hover{color:var(--text, #cdd6f4)}.tab-btn.active{color:var(--accent, #cba6f7);border-bottom-color:var(--accent, #cba6f7)}.page-desc{color:#a6adc8;font-size:1rem;margin-bottom:2.5rem;line-height:1.6}.dropzone{border:2px dashed #45475a;border-radius:12px;padding:3rem 2rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:#181825}.dropzone:hover,.dropzone.dragging{border-color:#cba6f7;background:#1e1e2e}.dropzone.has-file{border-color:#a6e3a1}.dropzone-hint p{color:#a6adc8;margin:.3rem 0}.upload-icon{font-size:2rem;display:block;margin-bottom:.5rem}.format-hint{font-size:.8rem;color:#585b70!important}.file-info{display:flex;align-items:center;justify-content:center;gap:.8rem;color:#cdd6f4}.file-icon{font-size:1.5rem}.file-name{font-weight:500}.file-size{color:#a6adc8;font-size:.85rem}.action-row{display:flex;justify-content:flex-end;gap:.8rem;margin-top:1.2rem}.btn-primary{background:#cba6f7;color:#1e1e2e;border:none;padding:.6rem 1.4rem;border-radius:8px;font-weight:600;cursor:pointer;transition:opacity .2s}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary.full{width:100%;padding:.8rem;font-size:1rem;margin-top:.5rem}.btn-secondary{background:#313244;color:#cdd6f4;border:none;padding:.6rem 1.4rem;border-radius:8px;font-weight:500;cursor:pointer}.btn-ghost{background:transparent;color:#cba6f7;border:1px solid #cba6f7;padding:.4rem 1rem;border-radius:6px;cursor:pointer;font-size:.85rem}.convert-section{margin-top:1.5rem;background:#181825;border:1px solid #313244;border-radius:12px;padding:1.5rem}.convert-question{color:#cdd6f4;font-size:1rem;margin-bottom:.4rem}.convert-desc{color:#a6adc8;font-size:.85rem;margin-bottom:1.2rem}.choice-group{display:flex;gap:.8rem}.choice-btn{flex:1;padding:.7rem 1rem;border-radius:8px;border:1px solid #45475a;background:#313244;color:#cdd6f4;cursor:pointer;font-size:.9rem;transition:all .15s}.choice-btn:hover{border-color:#cba6f7}.choice-btn.selected{background:#cba6f7;color:#1e1e2e;border-color:#cba6f7;font-weight:600}.choice-btn.selected.secondary{background:#313244;color:#a6e3a1;border-color:#a6e3a1}.form-card{background:#181825;border:1px solid #313244;border-radius:12px;padding:2rem;display:flex;flex-direction:column;gap:1.8rem}.form-group label{display:block;font-size:.9rem;color:#a6adc8;margin-bottom:.7rem;font-weight:500}.chip-group{display:flex;flex-wrap:wrap;gap:.5rem}.chip{background:#313244;color:#cdd6f4;border:1px solid #45475a;padding:.4rem 1rem;border-radius:20px;cursor:pointer;font-size:.9rem;transition:all .15s}.chip:hover{border-color:#cba6f7;color:#cba6f7}.chip.selected{background:#cba6f7;color:#1e1e2e;border-color:#cba6f7;font-weight:600}.text-input{background:#313244;border:1px solid #45475a;border-radius:8px;color:#cdd6f4;padding:.5rem .9rem;font-size:.9rem;width:100%;outline:none;transition:border-color .15s}.text-input:focus{border-color:#cba6f7}.text-input::placeholder{color:#585b70}.count-control{display:flex;align-items:center;gap:1rem}.count-btn{background:#313244;color:#cdd6f4;border:1px solid #45475a;width:36px;height:36px;border-radius:8px;cursor:pointer;font-size:1.1rem}.count-value{font-size:1.2rem;font-weight:600;color:#cdd6f4;min-width:2rem;text-align:center}.history-list{display:flex;flex-direction:column;gap:.8rem}.history-card{background:#181825;border:1px solid #313244;border-radius:10px;padding:1rem 1.2rem;display:flex;align-items:center;gap:1rem}.history-meta{display:flex;flex-direction:column;gap:.3rem;min-width:90px}.history-date{font-size:.8rem;color:#a6adc8}.history-badge{font-size:.75rem;padding:.1rem .5rem;border-radius:20px;font-weight:600;width:fit-content}.badge-generate{background:#313244;color:#cba6f7}.badge-extract{background:#1e3a2f;color:#a6e3a1}.history-info{flex:1;display:flex;flex-direction:column;gap:.2rem}.history-subject{font-weight:600;color:#cdd6f4}.history-detail{font-size:.85rem;color:#a6adc8}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem;background:#11111bb3;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.loading-spinner{width:52px;height:52px;border:4px solid #313244;border-top-color:#cba6f7;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-label{color:#cdd6f4;font-size:1.05rem;font-weight:500;letter-spacing:.02em}.loading-sub{color:#585b70;font-size:.85rem;margin-top:-.6rem}.progress-bar-track{width:280px;height:6px;background:#313244;border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;background:#cba6f7;border-radius:3px;transition:width .4s ease}.progress-stage{color:#a6adc8;font-size:.9rem}.progress-percent{color:#cba6f7;font-size:1.2rem;font-weight:700}.alert{padding:1rem 1.2rem;border-radius:10px;margin-bottom:1.5rem;font-size:.95rem;display:flex;align-items:center}.alert-success{background:#1e3a2f;color:#a6e3a1;border:1px solid #a6e3a1}.alert-error{background:#3d1f2a;color:#f38ba8;border:1px solid #f38ba8}.alert-warning{background:#2e2a1a;color:#f9e2af;border:1px solid #f9e2af}.upload-title-row{display:flex;align-items:center;gap:10px;margin-bottom:.25rem}.upload-title-row .page-title{margin:0}.info-wrap{position:relative;display:inline-flex;align-items:center}.info-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#4f46e5;color:#fff;font-size:12px;font-weight:700;cursor:default;font-style:normal;flex-shrink:0}.info-tooltip{display:none;position:absolute;left:28px;top:50%;transform:translateY(-50%);background:#1e1e2e;color:#cdd6f4;border:1px solid #45475a;border-radius:8px;padding:12px 16px;width:280px;font-size:13px;line-height:1.7;z-index:100;box-shadow:0 4px 16px #0000004d}.info-tooltip p{margin:0 0 4px}.info-tooltip p:last-child{margin:0}.info-wrap:hover .info-tooltip{display:block}.subject-section{margin-top:1.5rem;background:#181825;border:1px solid #313244;border-radius:10px;padding:1rem 1.25rem}.subject-label{font-size:13px;font-weight:600;color:#cdd6f4;margin:0 0 .75rem}.optional-tag{font-size:11px;font-weight:400;color:#6c7086;margin-left:6px}.subject-step{display:flex;align-items:center;gap:12px;margin-bottom:.6rem}.subject-step:last-child{margin-bottom:0}.step-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#45475a;color:#cdd6f4;font-size:12px;font-weight:700;flex-shrink:0}.lang-tab-group{display:flex;gap:0;border-radius:8px;overflow:hidden;border:1px solid #313244;width:fit-content}.lang-tab{padding:.5rem 1.5rem;background:transparent;border:none;cursor:pointer;font-size:.9rem;font-weight:500;color:#a6adc8;transition:all .15s}.lang-tab:not(:last-child){border-right:1px solid #313244}.lang-tab.active{background:#cba6f7;color:#1e1e2e;font-weight:700}.lang-tab:not(.active):hover{background:#cba6f71a;color:#cba6f7}.problem-list-header{margin-bottom:.5rem}.problem-card.checked{border-color:#89b4fa;background:#1e1e2e88}.problem-list{display:flex;flex-direction:column;gap:.8rem}.problem-card{background:#181825;border:1px solid #313244;border-radius:10px;overflow:hidden}.problem-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.2rem;cursor:pointer;transition:background .15s}.problem-header:hover{background:#1e1e2e}.problem-num{font-size:.8rem;font-weight:700;color:#cba6f7;white-space:nowrap;min-width:50px}.problem-preview{flex:1;color:#a6adc8;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expand-icon{color:#585b70;font-size:.75rem}.problem-body{border-top:1px solid #313244;padding:1.2rem;display:flex;flex-direction:column;gap:1rem}.problem-section h4{font-size:.8rem;font-weight:600;color:#a6adc8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem}.problem-section p{color:#cdd6f4;font-size:.92rem;line-height:1.6;white-space:pre-wrap}.problem-section.answer{background:#1e1e2e;border-radius:8px;padding:.8rem 1rem}.problem-section.answer h4{color:#cba6f7}.problem-section.answer p{color:#cba6f7;font-weight:600}.problem-section.solution{background:#1a2530;border-radius:8px;padding:.8rem 1rem}.problem-section.solution h4{color:#89dceb}.problem-section.solution p{color:#cdd6f4}.pdf-action-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem;background:#1e1e2e;border-radius:8px;border:1px solid #313244}.pdf-action-bar span{color:#cdd6f4;font-size:.9rem;margin-right:.5rem}.btn-pdf{padding:.4rem .9rem;border-radius:6px;border:1px solid #89b4fa;background:transparent;color:#89b4fa;font-size:.85rem;cursor:pointer;transition:background .15s}.btn-pdf:hover{background:#89b4fa22}.row-checked{background:#1e1e2e88}.tab-bar{display:flex;gap:.3rem;margin-bottom:1.5rem;border-bottom:1px solid #313244;padding-bottom:0}.tab-btn{background:transparent;border:none;color:#a6adc8;padding:.6rem 1.2rem;font-size:.95rem;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s}.tab-btn:hover{color:#cdd6f4}.tab-btn.active{color:#cba6f7;border-bottom-color:#cba6f7;font-weight:600}.filter-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.filter-bar-left{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.filter-dropdown-wrap{position:relative}.filter-header-btn{background:#1e1e2e;border:1px solid #313244;color:#a6adc8;padding:.4rem .8rem;border-radius:8px;font-size:.9rem;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:all .15s;white-space:nowrap}.filter-header-btn:hover,.filter-header-btn.open{border-color:#585b70;color:#cdd6f4}.filter-header-btn.active{border-color:#cba6f7;color:#cba6f7;background:#2a1f3d}.filter-arrow{font-size:.65rem;color:#585b70}.filter-dropdown{position:absolute;top:calc(100% + 4px);left:0;background:#1e1e2e;border:1px solid #313244;border-radius:10px;padding:.4rem;z-index:200;min-width:130px;box-shadow:0 8px 24px #0006}.filter-option{padding:.5rem .8rem;border-radius:6px;font-size:.9rem;color:#a6adc8;cursor:pointer;transition:all .1s;white-space:nowrap}.filter-option:hover{background:#313244;color:#cdd6f4}.filter-option.selected{color:#cba6f7;font-weight:600}.filter-reset{background:transparent;border:1px solid #45475a;color:#585b70;padding:.4rem .8rem;border-radius:8px;font-size:.85rem;cursor:pointer;transition:all .15s}.filter-reset:hover{border-color:#f38ba8;color:#f38ba8}.search-box{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:.7rem;font-size:.85rem;opacity:.4;pointer-events:none}.search-input{background:#1e1e2e;border:1px solid #313244;border-radius:8px;color:#cdd6f4;padding:.4rem .9rem .4rem 2.2rem;font-size:.9rem;width:220px;outline:none;transition:border-color .15s}.search-input:focus{border-color:#cba6f7}.search-input::placeholder{color:#45475a}.th-filter{padding:0;position:relative}.th-filter-btn{display:flex;align-items:center;gap:.4rem;padding:.8rem 1rem;cursor:pointer;color:#a6adc8;font-weight:600;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:color .15s}.th-filter-btn:hover{color:#cdd6f4}.th-filter.th-filter-active .th-filter-btn{color:#cba6f7}.th-search-input{width:100%;background:#313244;border:1px solid #45475a;border-radius:6px;color:#cdd6f4;padding:.4rem .7rem;font-size:.9rem;outline:none;box-sizing:border-box}.th-search-input:focus{border-color:#cba6f7}.history-page{max-width:1280px}.history-filter{display:flex;flex-direction:column;gap:8px;margin-bottom:1.5rem;background:#181825;border:1px solid #313244;border-radius:10px;padding:1rem 1.25rem}.history-filter-row{display:flex;align-items:center;gap:12px}.history-filter-label{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#45475a;color:#cdd6f4;font-size:12px;font-weight:700;flex-shrink:0}.history-filter-reset{background:transparent;border:1px solid #45475a;color:#585b70;padding:.3rem .8rem;border-radius:6px;font-size:.82rem;cursor:pointer;transition:all .15s;align-self:flex-start;margin-top:4px}.history-filter-reset:hover{border-color:#f38ba8;color:#f38ba8}.history-list{display:flex;flex-direction:column;gap:8px}.history-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#181825;border:1px solid #313244;border-radius:10px;padding:.75rem 1rem;flex-wrap:wrap}.history-item-main{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.history-item-name{font-size:.9rem;color:#cdd6f4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.history-item-tag{font-size:.78rem;background:#2a1f3d;color:#cba6f7;padding:2px 8px;border-radius:20px;white-space:nowrap;flex-shrink:0}.history-item-date{font-size:.8rem;color:#585b70;white-space:nowrap;flex-shrink:0}.history-item-actions{display:flex;gap:6px;align-items:center;flex-shrink:0}.table-wrapper{overflow-x:auto;min-height:420px}.data-table{width:100%;border-collapse:collapse;font-size:1rem}.data-table th{text-align:left;padding:.8rem 1rem;color:#a6adc8;font-weight:600;border-bottom:1px solid #313244;white-space:nowrap;-webkit-user-select:none;user-select:none}.data-table th.sortable{cursor:pointer}.data-table th.sortable:hover{color:#cdd6f4}.sort-icon{margin-left:.3rem;font-size:.75rem;color:#585b70}.sort-icon.active{color:#cba6f7}.data-table td{padding:1rem;color:#cdd6f4;border-bottom:1px solid #1e1e2e;font-size:1rem}.data-table tr:hover td{background:#181825}.filename-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a6adc8;font-size:.85rem}.badge{padding:.2rem .6rem;border-radius:20px;font-size:.8rem;font-weight:600}.badge-suneung{background:#2a1f3d;color:#cba6f7}.badge-naesin{background:#1e3a2f;color:#a6e3a1}.action-btns{display:flex;gap:.4rem;align-items:center}.icon-btn{background:#313244;border:1px solid #45475a;color:#cdd6f4;padding:.3rem .7rem;border-radius:6px;cursor:pointer;font-size:.8rem;white-space:nowrap;transition:all .15s}.icon-btn:hover{border-color:#cba6f7;color:#cba6f7}.icon-btn.danger{color:#6c7086;border-color:#45475a;margin-left:auto}.icon-btn.danger:hover{color:#f38ba8;border-color:#f38ba8;background:#3d1f2a}.empty-state{text-align:center;color:#585b70;padding:3rem}.toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:500;z-index:9999;pointer-events:none;animation:toast-in .2s ease}.toast-success{background:#1e3a2f;border:1px solid #a6e3a1;color:#a6e3a1}.toast-error{background:#3d1f2a;border:1px solid #f38ba8;color:#f38ba8}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.pagination{display:flex;justify-content:center;align-items:center;gap:4px;margin-top:1.5rem}.page-btn{background:#1e1e2e;border:1px solid #313244;color:#a6adc8;padding:.35rem .7rem;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .15s;min-width:34px}.page-btn:hover:not(:disabled){border-color:#cba6f7;color:#cba6f7}.page-btn.active{background:#cba6f7;border-color:#cba6f7;color:#1e1e2e;font-weight:700}.page-btn:disabled{opacity:.3;cursor:not-allowed}.privacy-page{min-height:calc(100vh - 64px);padding:4rem 0 6rem}.privacy-container{max-width:720px;margin:0 auto;padding:0 2rem}.privacy-title{font-size:2rem;font-weight:800;color:#cdd6f4;letter-spacing:-.5px;margin-bottom:.4rem}.privacy-updated{font-size:.85rem;color:#585b70;margin-bottom:2rem}.privacy-intro{font-size:.95rem;color:#a6adc8;line-height:1.8;margin-bottom:2.5rem;padding-bottom:2.5rem;border-bottom:1px solid #2a2a3e}.privacy-section{margin-bottom:2.2rem}.privacy-section-title{font-size:1.05rem;font-weight:700;color:#cdd6f4;margin-bottom:.8rem}.privacy-section p,.privacy-section li{font-size:.92rem;color:#a6adc8;line-height:1.8}.privacy-section ul{list-style:none;display:flex;flex-direction:column;gap:.4rem;padding-left:0}.privacy-section ul li:before{content:"–";margin-right:.5rem;color:#585b70}@media (max-width: 768px){.privacy-container{padding:0 1.25rem}.privacy-title{font-size:1.6rem}}.notice-page{min-height:60vh}.notice-container{max-width:860px;margin:0 auto;padding:2rem 1rem 4rem}.notice-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:2rem}.notice-label{font-size:.82rem;color:#6c7086;text-transform:uppercase;letter-spacing:.08em;margin:0 0 .4rem}.notice-title{font-size:1.6rem;font-weight:700;color:#cdd6f4;margin:0}.notice-write-btn{background:#cba6f7;border:none;color:#1e1e2e;font-size:.9rem;font-weight:700;padding:.5rem 1.2rem;border-radius:8px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:opacity .15s}.notice-write-btn:hover{opacity:.85}.notice-write-btn:disabled{opacity:.5;cursor:not-allowed}.notice-table{width:100%;border-collapse:collapse}.notice-table thead tr{border-bottom:2px solid #45475a}.notice-table th{padding:.7rem .8rem;font-size:.82rem;font-weight:600;color:#6c7086;text-align:center;white-space:nowrap}.notice-table th.col-title{text-align:left}.notice-table .col-no{width:60px}.notice-table .col-cat{width:80px}.notice-table .col-date{width:110px}.notice-table .col-views{width:70px}.notice-row{border-bottom:1px solid #1e1e2e;cursor:pointer;transition:background .12s}.notice-row:hover td{background:#181825}.notice-row.pinned-row td{background:#1e1e2e44}.notice-table td{padding:.9rem .8rem;font-size:.9rem;color:#a6adc8;text-align:center;vertical-align:middle}.notice-table td.col-title{text-align:left;color:#cdd6f4;font-weight:500}.notice-table td.col-views,.notice-table td.col-date{color:#585b70;font-size:.82rem}.pin-mark{margin-right:6px;font-size:.85rem}.cat-badge{display:inline-block;padding:.15rem .6rem;border-radius:20px;font-size:.78rem;font-weight:600;white-space:nowrap}.cat-badge.cat-notice{background:#2a1f3d;color:#cba6f7}.cat-badge.cat-update{background:#1e3a2f;color:#a6e3a1}.cat-badge.cat-event{background:#2a1f2a;color:#f38ba8}.notice-empty{color:#585b70;text-align:center;padding:3rem;font-size:.95rem}.notice-back-btn{background:none;border:1px solid #45475a;color:#a6adc8;font-size:.9rem;padding:.5rem 1.2rem;border-radius:8px;cursor:pointer;margin-bottom:1.5rem;display:inline-block;transition:all .15s}.notice-back-btn:hover{border-color:#cba6f7;color:#cba6f7}.notice-detail{background:#181825;border:1px solid #313244;border-radius:12px;padding:2rem}.notice-detail-meta{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.detail-date,.detail-views{font-size:.82rem;color:#585b70}.notice-detail-title{font-size:1.35rem;font-weight:700;color:#cdd6f4;margin:0 0 1rem;line-height:1.45}.notice-detail-divider{border:none;border-top:1px solid #313244;margin-bottom:1.5rem}.notice-detail-content p{margin:0 0 .7rem;font-size:.95rem;color:#a6adc8;line-height:1.8}.notice-detail-content p:last-child{margin-bottom:0}.notice-detail-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:2rem;padding-top:1rem;border-top:1px solid #313244}.notice-edit-btn{background:#313244;border:1px solid #45475a;color:#cdd6f4;font-size:.85rem;padding:.4rem 1rem;border-radius:8px;cursor:pointer;transition:all .15s}.notice-edit-btn:hover{border-color:#cba6f7;color:#cba6f7}.notice-delete-btn{background:#313244;border:1px solid #45475a;color:#6c7086;font-size:.85rem;padding:.4rem 1rem;border-radius:8px;cursor:pointer;transition:all .15s}.notice-delete-btn:hover{border-color:#f38ba8;color:#f38ba8;background:#3d1f2a}.notice-form-title{font-size:1.4rem;font-weight:700;color:#cdd6f4;margin:0 0 1.5rem}.notice-form{display:flex;flex-direction:column;gap:1rem;background:#181825;border:1px solid #313244;border-radius:12px;padding:1.5rem 2rem}.form-row{display:flex;flex-direction:column;gap:.4rem}.form-row label{font-size:.82rem;font-weight:600;color:#6c7086}.form-row input,.form-row select,.form-row textarea{background:#1e1e2e;border:1px solid #313244;border-radius:8px;color:#cdd6f4;font-size:.95rem;padding:.6rem .9rem;outline:none;transition:border-color .15s;font-family:inherit;resize:vertical}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border-color:#cba6f7}.form-row select{cursor:pointer}.form-row-check{flex-direction:row;align-items:center}.check-label{display:flex;align-items:center;gap:.6rem;cursor:pointer;font-size:.9rem;color:#cdd6f4;font-weight:500}.check-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#cba6f7;padding:0;background:none;border:none;border-radius:0}.check-hint{font-size:.78rem;color:#585b70;font-weight:400}.form-error{color:#f38ba8;font-size:.85rem;margin:0}.form-btns{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;margin-top:.5rem}.form-btns button{padding:.5rem 1.2rem;font-size:.9rem;border-radius:8px;line-height:1.4;box-sizing:border-box;margin-bottom:0}.contact-page{min-height:calc(100vh - 64px);padding:4rem 0 6rem}.contact-container{max-width:640px;margin:0 auto;padding:0 2rem}.contact-header{text-align:center;margin-bottom:3rem}.contact-label{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#cba6f7;background:#2a1f3d;padding:.3rem .9rem;border-radius:20px;margin-bottom:1rem}.contact-title{font-size:1.8rem;font-weight:800;color:#cdd6f4;letter-spacing:-.5px;margin-bottom:.6rem}.contact-sub{font-size:.95rem;color:#a6adc8;line-height:1.7}.contact-wrap{display:flex;flex-direction:column;gap:1.5rem}.contact-info-box{background:#1e1e2e;border:1px solid #313244;border-radius:14px;padding:1.4rem 1.8rem;display:flex;flex-direction:column;gap:1rem}.contact-info-item{display:flex;align-items:center;gap:1rem}.contact-info-icon{font-size:1.4rem;flex-shrink:0}.contact-info-label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#585b70;margin-bottom:.2rem}.contact-info-value{font-size:.95rem;color:#cdd6f4;text-decoration:none}a.contact-info-value:hover{color:#cba6f7}.contact-form{background:#1e1e2e;border:1px solid #313244;border-radius:14px;padding:1.8rem;display:flex;flex-direction:column;gap:1.2rem}.contact-field{display:flex;flex-direction:column;gap:.45rem}.contact-field label{font-size:.88rem;font-weight:600;color:#cdd6f4}.contact-field input,.contact-field textarea{background:#181825;border:1px solid #313244;border-radius:8px;color:#cdd6f4;font-size:.95rem;padding:.7rem 1rem;font-family:inherit;transition:border-color .15s;resize:vertical}.contact-field input:focus,.contact-field textarea:focus{outline:none;border-color:#cba6f7}.contact-field input::placeholder,.contact-field textarea::placeholder{color:#45475a}.btn-primary.full{width:100%;padding:.85rem;background:#cba6f7;color:#1e1e2e;border:none;border-radius:10px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit}.btn-primary.full:hover:not(:disabled){background:#d4b3ff;transform:translateY(-1px)}.btn-primary.full:disabled{opacity:.4;cursor:not-allowed}.contact-sent{background:#1e1e2e;border:1px solid rgba(166,227,161,.2);border-radius:14px;padding:3rem 2rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}.contact-sent span{font-size:2rem}.contact-sent p{color:#a6adc8;font-size:.95rem;line-height:1.7}.btn-ghost{background:transparent;border:1px solid #45475a;color:#a6adc8;padding:.4rem 1rem;border-radius:8px;font-size:.9rem;cursor:pointer;transition:all .15s;font-family:inherit}.btn-ghost:hover{border-color:#cba6f7;color:#cba6f7}@media (max-width: 768px){.contact-container{padding:0 1.25rem}.contact-title{font-size:1.5rem}}.editor-page{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:#e8e8e8}.editor-header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#1a1a2e;color:#fff;flex-shrink:0}.editor-back{background:transparent;color:#aaa;border:none;cursor:pointer;font-size:14px;padding:4px 10px;border-radius:4px;white-space:nowrap}.editor-back:hover{color:#fff;background:#ffffff1a}.editor-filename{flex:1;font-size:13px;color:#bbb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-err-msg{font-size:12px;color:#fca5a5}.editor-save-btn{background:#3a7bd5;color:#fff;border:none;padding:6px 20px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;white-space:nowrap;transition:background .2s}.editor-save-btn:hover:not(:disabled){background:#2c63b8}.editor-save-btn:disabled{opacity:.6;cursor:not-allowed}.editor-save-btn.saved{background:#16a34a}.editor-save-btn.err{background:#dc2626}.editor-pdf-btn{background:#7c3aed;color:#fff;border:none;padding:6px 20px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;white-space:nowrap;transition:background .2s}.editor-pdf-btn:hover:not(:disabled){background:#6d28d9}.editor-pdf-btn:disabled{opacity:.6;cursor:not-allowed}.math-toolbar{display:flex;align-items:center;gap:10px;padding:8px 16px;background:#f0f4ff;border-bottom:1px solid #c7d2fe;flex-shrink:0;flex-wrap:wrap}.math-toolbar-label{font-size:13px;font-weight:600;color:#3730a3;white-space:nowrap}.math-toolbar-input{display:flex;align-items:center}.math-insert-btn{background:#4f46e5;color:#fff;border:none;padding:6px 16px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;white-space:nowrap}.math-insert-btn:hover{background:#4338ca}.math-toolbar-hint{font-size:11px;color:#6b7280}.math-guide-btn{background:transparent;border:1px solid #a5b4fc;color:#4f46e5;font-size:12px;padding:4px 10px;border-radius:6px;cursor:pointer;white-space:nowrap;margin-left:auto;transition:all .15s}.math-guide-btn:hover{background:#e0e7ff}.math-guide-panel{background:#f8f9ff;border-bottom:1px solid #c7d2fe;padding:10px 16px;flex-shrink:0}.guide-section-title{font-size:12px;font-weight:700;color:#3730a3;margin:0 0 6px}.guide-how-to{background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px;margin-bottom:10px;overflow:hidden}.guide-howto-toggle{width:100%;background:none;border:none;padding:8px 14px;text-align:left;font-size:12px;font-weight:700;color:#3730a3;cursor:pointer;display:flex;align-items:center;gap:6px}.guide-howto-toggle:hover{background:#e0e7ff}.guide-howto-body{padding:0 14px 10px}.guide-steps{margin:0 0 8px;padding-left:20px;font-size:12px;color:#374151;line-height:1.9}.guide-steps li{margin:0}.guide-steps strong{color:#1d4ed8}.guide-tips{display:flex;flex-wrap:wrap;gap:6px}.guide-tip{background:#fff;border:1px solid #c7d2fe;border-radius:5px;font-size:11px;color:#4b5563;padding:2px 8px}.guide-tip kbd{background:#f3f4f6;border:1px solid #d1d5db;border-radius:3px;padding:0 4px;font-family:inherit;font-size:10px;color:#111827}.guide-tip code{font-family:Consolas,monospace;background:#e8ecff;padding:0 4px;border-radius:3px;color:#1d4ed8;font-size:10px}.guide-title{font-size:11px;color:#6b7280;margin:0 0 8px}.guide-title code{font-family:Consolas,monospace;background:#e8ecff;padding:1px 5px;border-radius:3px;color:#1d4ed8;font-size:11px}.quick-btn-row{display:flex;flex-wrap:wrap;gap:6px}.quick-math-btn{background:#fff;border:1px solid #c7d2fe;color:#3730a3;font-size:12px;font-weight:600;padding:4px 12px;border-radius:6px;cursor:pointer;transition:all .12s;white-space:nowrap}.quick-math-btn:hover{background:#4f46e5;border-color:#4f46e5;color:#fff}.editor-iframe{width:100%;height:100%;border:none;background:#fff}.editor-toolbar{display:flex;align-items:center;gap:2px;padding:6px 12px;background:#f9f9f9;border-bottom:1px solid #d0d0d0;flex-shrink:0;flex-wrap:wrap}.tb-btn{padding:5px 10px;border:1px solid transparent;border-radius:4px;background:transparent;cursor:pointer;font-size:13px;color:#333;transition:all .1s;white-space:nowrap}.tb-btn:hover{background:#ececec;border-color:#ccc}.tb-btn.active{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8;font-weight:600}.tb-sep{width:1px;height:22px;background:#d0d0d0;margin:0 4px;flex-shrink:0}.tb-hint{font-size:12px;color:#888;margin-left:auto}.tb-hint code{background:#efefef;padding:1px 5px;border-radius:3px;font-family:Consolas,monospace;font-size:11px;color:#555}.editor-body{flex:1;overflow-y:auto;padding:32px 24px;display:flex;justify-content:center}.tiptap-doc{background:#fff;width:100%;max-width:820px;min-height:calc(100vh - 200px);padding:60px 72px;box-shadow:0 2px 12px #00000026;outline:none;font-family:Malgun Gothic,Apple SD Gothic Neo,Noto Sans KR,sans-serif;font-size:15px;line-height:2;color:#1a1a1a}.tiptap-doc h1{font-size:1.55em;border-bottom:3px solid #1a1a2e;padding-bottom:8px;color:#1a1a2e;margin:0 0 20px}.tiptap-doc h2{font-size:1.1em;color:#1a1a2e;margin:28px 0 4px;border-left:4px solid #3a7bd5;padding-left:10px}.tiptap-doc h3{font-size:1em;color:#333;margin:20px 0 4px}.tiptap-doc p{margin:4px 0}.tiptap-doc strong{font-weight:700}.tiptap-doc em{font-style:italic}.tiptap-doc s{text-decoration:line-through;color:#888}.tiptap-doc ul,.tiptap-doc ol{padding-left:24px;margin:6px 0}.tiptap-doc li{margin:2px 0}.tiptap-doc p.is-editor-empty:first-child:before{content:"여기에 내용을 입력하세요...";color:#bbb;pointer-events:none;float:left;height:0}.math-inline{display:inline;cursor:pointer}.math-inline.ProseMirror-selectednode{background:#dbeafe;border-radius:3px;outline:2px solid #93c5fd}.math-display{display:block;text-align:center;margin:16px 0;cursor:pointer}.math-display.ProseMirror-selectednode{background:#dbeafe;border-radius:4px;outline:2px solid #93c5fd}.katex{font-size:1.1em}.katex-display{margin:0}.ctx-menu{position:fixed;z-index:9999;background:#2d2d2d;border:1px solid #555;border-radius:6px;padding:4px 0;box-shadow:0 4px 20px #00000080;min-width:160px;font-size:13px;color:#eee;-webkit-user-select:none;user-select:none}.ctx-submenu-wrapper{position:relative}.ctx-item{padding:8px 16px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:4px;margin:0 4px}.ctx-item:hover{background:#4f46e5;color:#fff}.ctx-arrow{font-size:10px;opacity:.7}.ctx-submenu{position:absolute;left:100%;top:-4px;background:#2d2d2d;border:1px solid #555;border-radius:6px;padding:8px;box-shadow:0 4px 20px #00000080;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;min-width:240px}.ctx-sym-btn{background:#3d3d3d;border:1px solid #555;color:#eee;font-size:11px;font-weight:600;padding:7px 4px;border-radius:4px;cursor:pointer;text-align:center;transition:all .1s;white-space:nowrap}.ctx-sym-btn:hover{background:#4f46e5;border-color:#4f46e5;color:#fff}.math-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:10000;display:flex;align-items:center;justify-content:center}.math-modal{background:#fff;border-radius:12px;box-shadow:0 8px 32px #00000040;width:340px;overflow:hidden}.math-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#1a1a2e;color:#fff;font-size:15px;font-weight:600}.math-modal-close{background:none;border:none;color:#aaa;font-size:16px;cursor:pointer;padding:2px 6px;border-radius:4px}.math-modal-close:hover{color:#fff;background:#ffffff26}.math-modal-body{padding:20px 18px 12px;display:flex;flex-direction:column;gap:14px}.math-modal-field{display:flex;flex-direction:column;gap:5px}.math-modal-field label{font-size:12px;font-weight:600;color:#374151}.math-modal-field input{border:1.5px solid #d1d5db;border-radius:6px;padding:8px 12px;font-size:15px;font-family:Consolas,monospace;outline:none;transition:border-color .15s}.math-modal-field input:focus{border-color:#4f46e5}.math-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px 16px}.math-modal-cancel{background:#f3f4f6;border:1px solid #d1d5db;color:#374151;padding:8px 20px;border-radius:6px;font-size:14px;cursor:pointer}.math-modal-cancel:hover{background:#e5e7eb}.math-modal-confirm{background:#4f46e5;border:none;color:#fff;padding:8px 24px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer}.math-modal-confirm:hover{background:#4338ca}.editor-loading,.editor-error{display:flex;align-items:center;justify-content:center;height:60vh;font-size:16px;color:#666}.editor-error{color:#dc2626}.popup-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:9000;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.popup-box{background:#1e1e2e;border:1px solid #45475a;border-radius:16px;width:100%;max-width:520px;box-shadow:0 20px 60px #0009;animation:slide-up .25s ease;overflow:hidden}@keyframes slide-up{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.popup-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .75rem;border-bottom:1px solid #313244}.popup-badge{font-size:.85rem;font-weight:700;color:#cba6f7;letter-spacing:.03em}.popup-close-x{background:none;border:none;color:#585b70;font-size:1rem;cursor:pointer;padding:.2rem .4rem;border-radius:4px;transition:color .15s}.popup-close-x:hover{color:#cdd6f4}.popup-body{padding:1.25rem 1.5rem;max-height:340px;overflow-y:auto}.popup-title{font-size:1.1rem;font-weight:700;color:#cdd6f4;margin:0 0 1rem;line-height:1.4}.popup-content p{margin:0 0 .6rem;font-size:.9rem;color:#a6adc8;line-height:1.7}.popup-content p:last-child{margin-bottom:0}.popup-footer{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.25rem;border-top:1px solid #313244;background:#181825}.popup-hide-btn{background:none;border:none;color:#585b70;font-size:.82rem;cursor:pointer;text-decoration:underline;padding:0;transition:color .15s}.popup-hide-btn:hover{color:#a6adc8}.popup-close-btn{background:#313244;border:1px solid #45475a;color:#a6adc8;font-size:.85rem;padding:.4rem 1rem;border-radius:8px;cursor:pointer;transition:all .15s}.popup-close-btn:hover{border-color:#cba6f7;color:#cba6f7}.popup-detail-btn{background:#cba6f7;border:1px solid #cba6f7;color:#1e1e2e;font-size:.85rem;font-weight:700;padding:.4rem 1rem;border-radius:8px;cursor:pointer;transition:opacity .15s}.popup-detail-btn:hover{opacity:.85}.app-content{flex:1}
