@import "https://fonts.googleapis.com/css2?family=Kiwi+Maru:wght@300;400;500&family=M+PLUS+Rounded+1c:wght@400;700;900&display=swap";:root{--primary-color:#48c774;--secondary-color:#3298dc;--accent-color:#ffdd57;--text-color:#4a4a4a;--bg-color:#fafafa;--font-main:"M PLUS Rounded 1c",sans-serif;--font-hand:"Kiwi Maru",serif;--shadow-sm:0 2px 5px rgba(0,0,0,.1);--shadow-md:0 5px 15px rgba(0,0,0,.1);--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--neo-bg:#f4f4f0;--neo-text:#1a1a1a;--neo-primary:#5b8dee;--neo-secondary:#48c9b0;--neo-accent:#f39c12;--neo-pink:#e74c3c;--neo-purple:#9b59b6;--neo-accent-bg:#fff8e1;--neo-border:3px solid #1a1a1a;--neo-shadow:6px 6px 0px #1a1a1a;--neo-shadow-hover:10px 10px 0px #1a1a1a;--neo-radius:16px}body{font-family:var(--font-main);color:var(--text-color);background-color:var(--bg-color);margin:0;padding-top:70px;position:relative}body:before{content:"";z-index:-2;background:url(/bg_img9.png);width:100%;height:100vh;display:block;position:fixed;top:0;left:0}body:after{content:"";z-index:-1;background-color:rgba(255,255,255,.5);width:100%;height:100vh;display:block;position:fixed;top:0;left:0}body.dashboard-page{background:var(--bg-color);padding-top:0}body.dashboard-page:before,body.dashboard-page:after{display:none}.ultra-wrapper{color:var(--neo-text);background-color:transparent;width:100%;min-height:100vh;font-family:Helvetica Neue,Arial,Hiragino Kaku Gothic ProN,sans-serif;overflow-x:hidden}.pop-title{font-family:var(--font-hand);color:var(--primary-color);text-align:center;margin-bottom:2rem;font-size:2rem;display:inline-block;position:relative}.pop-title:after{content:"";background-color:var(--accent-color);border-radius:2px;width:60px;height:4px;margin:.5rem auto 0;display:block}.no-spin{-moz-appearance:textfield}.no-spin::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.no-spin::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.simple-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;display:grid}.grid-2-cols{grid-template-columns:1fr 1fr}.grid-3-cols{grid-template-columns:repeat(3,1fr)}@media (width<=768px){.grid-2-cols,.grid-3-cols{grid-template-columns:1fr}}.container-fluid{width:100%;margin-left:auto;margin-right:auto}.bubble-bg{z-index:-1;pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.bubble-circle{background:rgba(72,199,116,.1);border-radius:50%;animation:20s linear infinite floatUp;position:absolute}@keyframes floatUp{0%{opacity:0;transform:translateY(100vh)scale(0)}50%{opacity:1}to{opacity:0;transform:translateY(-100px)scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes feedback-pop{0%{opacity:0;transform:scale(.5)}50%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@keyframes wiggle{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}.fun-card{background:var(--card-bg);border:1px solid #eee;border-radius:16px;flex-direction:column;height:100%;padding:2rem;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 4px 12px rgba(0,0,0,.05)}.fun-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.1)}.card-header{border-bottom:2px solid #f0f0f0;margin-bottom:1.5rem;padding-bottom:1rem}.card-title{color:var(--secondary-color);margin:0;font-size:1.4rem;font-weight:700}.card-subtitle{color:#888;margin-top:.25rem;font-size:.9rem}.card-body{flex-grow:1}.card-image{object-fit:cover;border-radius:12px;width:100%;height:200px;margin-bottom:1.5rem}.card-text{margin-bottom:1.5rem;font-size:1rem}.fun-btn{text-align:center;cursor:pointer;box-sizing:border-box;border:none;border-radius:50px;width:100%;margin-top:auto;padding:.8rem 1.5rem;font-weight:700;text-decoration:none;transition:background .2s;display:inline-block}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-secondary{background-color:var(--secondary-color);color:#fff}.btn-accent{background-color:var(--accent-color);color:#333}.btn-dark{color:#fff;background-color:#363636}.btn-link{color:#fff;background-color:#3273dc}.btn-info{color:#fff;background-color:#209cee}.btn-danger{color:#fff;background-color:#ff3860}.btn-warning{color:rgba(0,0,0,.7);background-color:#ffdd57}.btn-black{color:#fff;background-color:#0a0a0a}.fun-btn:hover{opacity:.9}.game-container{border:2px solid var(--accent-color);background-color:#fff8e1}.game-area-box{text-align:center;background:#fff;border:2px dashed #ddd;border-radius:12px;margin-top:1rem;padding:1.5rem}.score-text{color:var(--primary-color);margin-bottom:1rem;font-size:1.2rem;font-weight:700}.code-snippet{color:#76e094;background:#2d2d2d;border-radius:8px;margin-bottom:1rem;padding:.8rem;font-family:monospace}.input-box{box-sizing:border-box;border:2px solid #ddd;border-radius:8px;width:100%;margin-bottom:1rem;padding:.8rem}.booking-list{flex-direction:column;gap:1rem;display:flex}.booking-note{color:#666;text-align:center;margin-top:-.5rem;font-size:.8rem}.contact-info{background:#f9f9f9;border-radius:8px;margin-bottom:2rem;padding:1rem}.contact-label{color:var(--secondary-color);margin-bottom:.5rem;font-weight:700;display:block}.footer-note{text-align:center;color:#999;margin-top:2rem;font-size:.8rem}.top-navbar{z-index:1000;background:#fff;border-bottom:4px solid #1a1a1a;transition:background-color .3s;position:fixed;top:0;left:0;right:0;box-shadow:0 4px 12px rgba(0,0,0,.1)}.top-navbar.type2{box-shadow:none;background:#48c9b0;border-bottom:4px solid #1a1a1a}.top-navbar.type2 .navbar-item,.top-navbar.type2 .navbar-item i{color:#fff!important}@media (width<=968px){.top-navbar.type2 .navbar-menu .navbar-item,.top-navbar.type2 .navbar-menu .navbar-item i{color:#1a1a1a!important}}.navbar-container{justify-content:space-between;align-items:center;max-width:1400px;padding:.5rem 1.5rem;display:flex}.navbar-brand{align-items:center;gap:1rem;display:flex}.navbar-logo{align-items:center;display:flex}.navbar-logo img{width:auto;height:50px;transition:transform .3s}.navbar-logo img:hover{transform:scale(1.05)}.navbar-burger{cursor:pointer;background:0 0;border:2px solid #1a1a1a;border-radius:8px;flex-direction:column;gap:5px;padding:8px;transition:all .3s;display:none}.navbar-burger span{background:#1a1a1a;width:25px;height:3px;transition:all .3s;display:block}.navbar-burger.is-active span:first-child{transform:rotate(45deg)translate(7px,7px)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:rotate(-45deg)translate(7px,-7px)}@media (width<=968px){.navbar-burger{display:flex}}.navbar-menu{align-items:center;display:flex}@media (width<=968px){.navbar-menu{background:#fff;border-bottom:4px solid #1a1a1a;flex-direction:column;max-height:0;transition:max-height .3s;position:absolute;top:100%;left:0;right:0;overflow:hidden}.navbar-menu.is-active{max-height:600px;padding:1rem 0}}.navbar-end{align-items:center;gap:.75rem;display:flex}@media (width<=968px){.navbar-end{flex-direction:column;width:100%;padding:0 1rem}}.navbar-item{color:#1a1a1a;align-items:center;margin-right:1rem;padding:.5rem;font-size:1rem;font-weight:700;text-decoration:none;transition:opacity .3s;display:flex}.navbar-item:last-child{margin-right:0}.navbar-item:hover{opacity:.8}.navbar-item i{margin-right:.5rem;font-size:1.2rem}.navbar-btn{cursor:pointer;color:#1a1a1a;background:#fff;border:3px solid #1a1a1a;border-radius:8px;padding:.6rem 1.2rem;font-family:inherit;font-size:1rem;font-weight:700;text-decoration:none;transition:all .3s;box-shadow:3px 3px #1a1a1a}.navbar-btn:hover{transform:translate(-2px,-2px);box-shadow:5px 5px #1a1a1a}.navbar-btn:active{transform:translate(1px,1px);box-shadow:2px 2px #1a1a1a}@media (width<=968px){.navbar-btn{text-align:center;width:100%}}.btn-game{color:#fff;background:#2c3e50}.btn-blog{color:#fff;background:#e74c3c}.btn-contact{color:#fff;background:#f39c12}.btn-reserve{color:#fff;background:#5b8dee}.btn-dashboard{color:#fff;background:#48c9b0}.navbar-dropdown-wrapper{position:relative}.navbar-dropdown-wrapper:hover .navbar-dropdown{opacity:1;visibility:visible;transform:translateY(0)}@media (width<=968px){.navbar-dropdown-wrapper{width:100%}}.navbar-dropdown{opacity:0;visibility:hidden;background:#fff;border:3px solid #1a1a1a;border-radius:12px;min-width:280px;padding:.5rem 0;transition:all .3s;position:absolute;top:calc(100% + 10px);right:0;transform:translateY(-10px);box-shadow:6px 6px #1a1a1a}@media (width<=968px){.navbar-dropdown{opacity:1;visibility:visible;width:100%;margin-top:.5rem;position:static;transform:none}}.dropdown-label{color:#666;text-transform:uppercase;padding:.5rem 1rem .25rem;font-size:.75rem;font-weight:700;display:block}.dropdown-item{color:#1a1a1a;padding:.5rem 1rem;font-size:.9rem;text-decoration:none;transition:all .2s;display:block}.dropdown-item:hover{background:#f4f4f0;padding-left:1.5rem}.dropdown-divider{border:0;border-top:2px solid #e0e0e0;margin:.5rem 0}.typing-preview{background:#f5f5f5;border-radius:8px;padding:1rem;font-family:monospace;font-size:.9rem;line-height:1.5}.typing-game-container{box-sizing:border-box;background:#fff;border-radius:16px;flex-direction:column;width:100%;max-width:100%;height:calc(100vh - 70px - 1rem);max-height:calc(100vh - 70px - 1rem);margin:0 auto;padding:clamp(.4rem,1vw,.8rem);display:flex;overflow:hidden auto;box-shadow:0 4px 20px rgba(0,0,0,.08)}.typing-game-grid{box-sizing:border-box;grid-template-columns:minmax(140px,.3fr) minmax(0,1.7fr);align-items:flex-start;gap:.6rem;width:100%;height:100%;min-height:0;display:grid;overflow:hidden}.info-column{flex-direction:column;gap:.75rem;max-width:230px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.gameplay-column{flex-direction:column;gap:1rem;min-height:0;display:flex;overflow-y:auto}@media (width<=1400px){.typing-game-grid{grid-template-columns:minmax(150px,.33fr) minmax(0,1.67fr);gap:.6rem}.info-column{max-width:220px}.typing-stats .stat-label{font-size:.58rem}.typing-stats .stat-value{font-size:.95rem}.clear-conditions{font-size:.8rem}}@media (width<=1100px){.typing-game-grid{grid-template-columns:minmax(140px,.33fr) minmax(0,1.67fr);gap:.6rem}.info-column{max-width:240px}.typing-stats .stat-label{font-size:.52rem}.typing-stats .stat-value{font-size:.85rem}.clear-conditions{font-size:.8rem}.typing-line{font-size:1.6rem}}@media (width<=1024px){.typing-game-grid{grid-template-columns:1fr;gap:.6rem}.info-column{max-width:none;overflow:visible}}.typing-area{background:#f9f9f9;border-radius:12px;flex-direction:column;flex-grow:1;justify-content:center;align-items:center;margin-bottom:1rem;padding:2rem;display:flex;position:relative;overflow:hidden}.typing-text{text-align:center;white-space:pre-wrap;word-break:break-all;z-index:1;width:100%;max-width:1200px;font-family:"M PLUS Rounded 1c",monospace;font-size:1.6rem;font-weight:700;line-height:1.5;position:relative}.typing-scroll-container{flex-direction:column;justify-content:center;align-items:center;width:100%;height:300px;display:flex;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(transparent 0%,#000 20% 80%,transparent 100%);mask-image:linear-gradient(transparent 0%,#000 20% 80%,transparent 100%)}.typing-scroll-content{flex-direction:column;align-items:center;width:100%;transition:transform .3s cubic-bezier(.25,1,.5,1);display:flex}.typing-line{color:#ccc;text-align:center;opacity:.4;flex-direction:column;align-items:center;width:100%;padding:.5rem 0;font-size:2.5rem;line-height:1.5;transition:all .3s;display:flex;transform:scale(.9)}.typing-line.active{color:#333;opacity:1;text-shadow:0 2px 4px rgba(0,0,0,.1);font-weight:700;transform:scale(1.1)}.typing-line.completed{color:#888;opacity:.6}@media (width<=768px){.typing-line{font-size:1.2rem}}@media (width<=480px){.typing-line{font-size:.9rem}}.romaji-text{color:#888;height:1em;margin-top:.2rem;font-family:Courier New,Courier,monospace;font-size:.5em;display:block}.char{transition:color .1s;display:inline-block}.char.current{background-color:var(--accent-color);color:#333;border-radius:2px;animation:1s infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:.5}}.caret{background-color:var(--primary-color);vertical-align:middle;width:2px;height:1.2em;margin-left:-1px;animation:1s infinite blink;display:inline-block}.typing-input-hidden{opacity:0;cursor:default;z-index:10;width:100%;height:100%;position:absolute;top:0;left:0}.typing-status-bar{background:#f0f0f0;border-radius:8px;justify-content:space-between;padding:1rem;font-family:monospace;font-size:1.1rem;display:flex}.status-item{flex-direction:column;align-items:center;display:flex}.status-label{color:#666;font-size:.8rem}.status-value{color:#333;font-weight:700}.keyboard-hint{text-align:center;color:#888;margin-top:1rem;font-size:.9rem}.key-hint{background:#fff;border:1px solid #ccc;border-radius:4px;margin:0 .2rem;padding:.2rem .5rem;font-family:monospace;font-weight:700;display:inline-block}.keyboard-responsive-wrapper{transform-origin:top;width:100%;transition:transform .2s;overflow:visible;transform:scale(.75)}@media (width<=1200px){.keyboard-responsive-wrapper{transform:scale(.65)}}@media (width<=980px){.keyboard-responsive-wrapper{transform:scale(.55)}}@media (width<=820px){.keyboard-responsive-wrapper{transform:scale(.48)}}@media (width<=720px){.keyboard-responsive-wrapper{transform:scale(.42)}}@media (width<=600px){.typing-game-container{height:calc(92vh - 70px);max-height:calc(92vh - 70px);padding:.5rem .6rem}.typing-area{padding:.7rem}.typing-text{font-size:1.3rem}.typing-game-grid{grid-template-columns:1fr;height:auto}.info-column{order:2}.gameplay-column{order:1}.typing-status-bar{padding:.5rem;font-size:.9rem}}@media (width<=600px) and (width<=480px){.typing-text{font-size:10px!important}}.typing-line-block{flex-direction:column;justify-content:center;margin-bottom:5px;display:flex}.japanese-text{color:#555;margin-bottom:0;font-size:1em;line-height:1.2em}.romaji-text{color:#888;margin-top:0;font-family:Courier New,Courier,monospace;font-size:2.05em}.typing-line.active .japanese-text{color:#333;font-weight:700}.typing-line.active .romaji-text{color:#555;font-weight:700}.char{transition:color .1s}.char.correct{color:var(--primary-color)}.char.wrong{color:#ff3860;background-color:rgba(255,56,96,.1);border-radius:2px}.char.current{background-color:var(--accent-color);color:#333;border-radius:2px}.next-char-hint{text-align:center;color:var(--secondary-color);background:#e6f7ff;border-radius:8px;margin-top:1rem;padding:.5rem;font-size:1.2rem;font-weight:700;display:inline-block}.start-screen{text-align:center;padding:2rem}.start-title{color:var(--primary-color);margin-bottom:1rem;font-size:2rem}.start-instruction{color:#666;margin-bottom:2rem;font-size:1.2rem}.key-instruction{color:#333;background:#eee;border:2px solid #ccc;border-radius:8px;margin-bottom:.5rem;padding:.5rem 1rem;font-family:monospace;font-size:1.5rem;font-weight:700;display:inline-block}.instruction{color:#666;font-size:1.1rem;animation:2s infinite pulse}.typing-stats{background:linear-gradient(135deg,#e0f7fa 0%,#e8f5e9 100%);border-radius:12px;justify-content:space-around;margin-bottom:.5rem;padding:.75rem;display:flex}.char-correct{color:var(--primary-color)}.char-ng{color:#ff3860}.typing-char{min-width:.65em;font-family:inherit;text-decoration:none;display:inline-block}.char-miss{color:#ff3860}.char-current{border-bottom:3px solid var(--neo-accent);min-width:.5em;padding-bottom:2px;display:inline-block}.char-pending{color:#bbb}span.space-char,span.space-char.char-current,span.space-char.char-ng,span.space-char.char-pending,span.space-char.char-correct{color:transparent!important;text-shadow:0 0!important}.stat-item{text-align:center}.stat-label{color:#666;font-size:.8rem;display:block}.result-card{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:640px;max-height:88vh;margin:0 auto;padding:1.3rem;animation:.5s ease-out slideUp;overflow-y:auto;box-shadow:0 10px 30px rgba(0,0,0,.1)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.result-title{color:var(--primary-color);margin-bottom:2rem;font-size:2rem}.result-score{color:#333;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:2rem;font-size:4rem;font-weight:700}.result-details{text-align:left;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2rem;display:grid}.detail-row{border-bottom:1px solid #eee;justify-content:space-between;padding-bottom:.5rem;display:flex}.detail-label{color:#666}.detail-value{color:#333;font-weight:700}.result-card button{width:100%;margin-top:2rem}.typing-result{max-width:1000px;margin:2rem auto;padding:2rem}.result-header{text-align:center;margin-bottom:3rem}.result-header h2{color:var(--secondary-color);font-size:2.5rem}.result-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;margin-bottom:3rem;display:grid}.stat-card{text-align:center;background:#fff;border:1px solid #eee;border-radius:12px;padding:1.5rem;box-shadow:0 4px 12px rgba(0,0,0,.05)}.stat-card h3{color:#888;margin-bottom:.5rem;font-size:1rem}.stat-card .value{color:var(--primary-color);font-size:2rem;font-weight:700}.ranking-section{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 12px rgba(0,0,0,.05)}.ranking-section h3{color:var(--secondary-color);text-align:center;margin-bottom:1.5rem;font-size:1.5rem}.ranking-list{flex-direction:column;gap:1rem;display:flex}.ranking-item{background:#f9f9f9;border-radius:8px;align-items:center;padding:1rem;transition:transform .2s;display:flex}.ranking-item:hover{background:#f0f0f0;transform:translate(4px)}.ranking-item .rank{color:var(--primary-color);text-align:center;min-width:50px;font-size:1.5rem;font-weight:700}.ranking-item .wpm{color:#333;text-align:center;flex:1;font-size:1.2rem;font-weight:700}.ranking-item .accuracy{color:#666;text-align:right;min-width:80px;font-size:1rem}@media (width<=768px){.typing-stats{flex-direction:column;gap:1rem}.typing-text{font-size:1.5rem}.result-card{max-height:calc(100vh - 1.5rem);margin:0;padding:1.25rem}.result-stats{grid-template-columns:1fr}.ranking-item{text-align:center;flex-direction:column;gap:.5rem}.ranking-item .rank,.ranking-item .wpm,.ranking-item .accuracy{text-align:center;min-width:auto}}.typing-result-overlay{z-index:3000;box-sizing:border-box;background:rgba(0,0,0,.55);justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0;overflow:auto}.typing-result-overlay .result-card{border:2px solid #111}.typing-result-overlay .neo-card-header h3{font-size:1.4rem}.typing-result-overlay .list-group li{font-size:.92rem;padding:.7rem 0!important}@media (height<=900px){.typing-game-container{height:calc(100vh - 70px)}.typing-problem{height:240px;padding:.8rem;font-size:14px}.typing-stats .stat-item{padding:.4rem!important}.typing-stats .stat-label{font-size:.7rem!important}.typing-stats .stat-value{font-size:1.05rem!important}.clear-conditions{padding:.6rem!important;font-size:.8rem!important}.info-column .section-label{font-size:.9rem!important}.result-card{max-height:82vh;padding:1.1rem}.romaji-text{font-size:1.7em}}@media (width<=1280px){.typing-game-grid{grid-template-columns:minmax(140px,.32fr) minmax(0,1.68fr)}.info-column{max-width:210px}.typing-problem{height:260px;font-size:15px}.romaji-text{font-size:1.85em}}.course-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem;padding:2rem;display:grid}.course-card{background:var(--card-bg);color:inherit;border-radius:12px;text-decoration:none;transition:transform .3s,box-shadow .3s;display:block;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.1)}.course-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px rgba(0,0,0,.15)}.course-card-image{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));width:100%;height:200px;overflow:hidden}.course-card-image img{object-fit:cover;width:100%;height:100%}.course-card-placeholder{color:#fff;justify-content:center;align-items:center;width:100%;height:100%;font-weight:700;display:flex}.course-card-content{padding:1.5rem}.course-card-title{color:var(--secondary-color);margin:0 0 .5rem;font-size:1.5rem;font-weight:700}.course-card-category{color:#666;background:#f0f0f0;border-radius:20px;margin-bottom:1rem;padding:.25rem .75rem;font-size:.85rem;display:inline-block}.course-card-description{color:#555;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:1rem;font-size:.95rem;line-height:1.5;display:-webkit-box;overflow:hidden}.course-detail{max-width:1000px;margin:0 auto;padding:2rem}.course-detail-header{background:var(--card-bg);border-radius:12px;flex-direction:column;gap:2rem;margin-bottom:2rem;padding:2rem;display:flex;box-shadow:0 2px 8px rgba(0,0,0,.1)}@media (width>=768px){.course-detail-header{flex-direction:row;align-items:flex-start}}.course-detail-image{object-fit:cover;border-radius:8px;width:100%;height:240px;box-shadow:0 4px 12px rgba(0,0,0,.1)}@media (width>=768px){.course-detail-image{flex-shrink:0;width:320px;height:240px}}.course-detail-info{flex:1}.course-detail-title{color:var(--secondary-color);margin:0 0 1rem;font-size:2rem;font-weight:700}.course-detail-description{color:#555;margin-bottom:1.5rem;font-size:1.1rem;line-height:1.6}.course-detail-progress{margin-bottom:1.5rem}.progress-bar{background:#e0e0e0;border-radius:12px;width:100%;height:24px;margin-bottom:.5rem;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));height:100%;transition:width .3s}.progress-text{color:#666;font-size:.95rem}.btn-enroll{background:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.75rem 2rem;font-size:1rem;font-weight:700;transition:background .3s}.btn-enroll:hover{background:var(--primary-color);filter:brightness(.85)}.course-detail-steps{background:var(--card-bg);border-radius:12px;padding:2rem;box-shadow:0 2px 8px rgba(0,0,0,.1)}.course-detail-steps h2{margin:0 0 1.5rem;font-size:1.5rem}.step-list{flex-direction:column;gap:1rem;display:flex}.step-item{color:inherit;background:#f9f9f9;border-radius:8px;align-items:center;padding:1rem;text-decoration:none;transition:background .3s,transform .2s;display:flex}.step-item.locked{color:#9e9e9e;pointer-events:none;cursor:not-allowed;background:#ededed;border:1px dashed #d0d0d0}.step-item:hover{background:#f0f0f0;transform:translate(4px)}.step-item.completed{border-left:4px solid var(--primary-color);background:#e8f5e9}.step-item-number{background:var(--secondary-color);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;margin-right:1rem;font-weight:700;display:flex}.step-item.completed .step-item-number{background:var(--primary-color)}.step-item.locked .step-item-number{color:#fff;background:#bdbdbd}.step-item-image{object-fit:cover;border-radius:8px;flex-shrink:0;width:60px;height:60px;margin-right:1rem}.step-item-placeholder{background:linear-gradient(135deg,#e0e0e0,silver);border-radius:8px;flex-shrink:0;width:60px;height:60px;margin-right:1rem}.step-item-content{flex:1}.step-item-title{margin:0 0 .25rem;font-size:1.1rem;font-weight:700}.step-item-status{color:#999;font-size:.875rem}.step-item-status.completed{color:var(--primary-color);font-weight:700}.step-page-container{gap:0;max-width:100%;min-height:calc(100vh - 64px);margin:0;padding:0;display:flex}.step-main-content{background:#000;flex-direction:column;flex:1;min-width:0;display:flex}.step-sidebar{z-index:10;background:#fff;border-left:1px solid #e0e0e0;flex-shrink:0;width:320px;height:calc(100vh - 64px);padding:0;position:sticky;top:64px;overflow-y:auto;box-shadow:-2px 0 8px rgba(0,0,0,.05)}.step-sidebar h3{color:#333;z-index:1;background:#fff;border-bottom:1px solid #eee;margin:0;padding:1rem;font-size:1.1rem;position:sticky;top:0}.step-detail-content{box-shadow:none;background:0 0;flex-direction:column;flex:1;margin:0;padding:0;display:flex}.step-video-container{flex-direction:column;flex:1;display:flex}.step-video-container h3{display:none}.step-slide-container{background:#000;flex:1;height:100%;min-height:calc(100vh - 144px);margin-top:0!important}.step-slide-container iframe{min-height:calc(100vh - 144px);height:100%!important}.step-sidebar .step-list{gap:0;padding:.5rem}.step-sidebar .step-item{background:0 0;border-bottom:1px solid #f0f0f0;border-radius:4px;padding:.5rem}.step-sidebar .step-item.locked{color:#b0b0b0;background:0 0;border-left:none}.step-sidebar .step-item:last-child{border-bottom:none}.step-sidebar .step-item:hover{background:#f5f5f5}.step-sidebar .step-item.completed{border-left:3px solid var(--primary-color);background:#f0f9f0}.step-sidebar .step-item-image,.step-sidebar .step-item-placeholder{display:none}.step-sidebar .step-item-number{width:24px;height:24px;margin-right:.75rem;font-size:.75rem}.step-sidebar .step-item-title{margin:0;font-size:.85rem;font-weight:400;line-height:1.3}.step-sidebar .step-item-status{display:none}.step-tabs-container{background:#fff;border-top:1px solid #e0e0e0;flex-direction:column;flex:1;display:flex}.step-tabs-header{background:#fff;border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;padding:0 1rem;display:flex}.step-tabs-list{display:flex}.tab-btn{color:#666;cursor:pointer;background:0 0;border:none;padding:1rem 1.5rem;font-size:.95rem;transition:color .3s;position:relative}.tab-btn:hover{color:var(--primary-color)}.tab-btn.active{color:var(--primary-color);font-weight:700}.tab-btn.active:after{content:"";background:var(--primary-color);width:100%;height:2px;position:absolute;bottom:-1px;left:0}.step-tabs-content{background:#fff;flex:1;min-height:200px;padding:2rem 3rem}.step-description-text{color:#333;margin-bottom:2rem;font-size:1rem;line-height:1.6}.step-action-area{justify-content:center;margin-top:1rem;display:flex}.step-header-actions{align-items:center;gap:.5rem;display:flex}.btn-step-action{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9rem;font-weight:700;text-decoration:none;transition:all .2s;display:flex}.btn-question{color:#666;background:#fff;border:1px solid #ddd}.btn-question:hover{background:#f0f0f0;border-color:#ccc}.btn-next,.btn-prev{background:var(--primary-color);color:#fff;border:1px solid var(--primary-color)}.btn-next:hover,.btn-prev:hover{filter:brightness(.9);color:#fff}.btn-prev{color:var(--primary-color);border:1px solid var(--primary-color);background:#fff}.btn-prev:hover{color:var(--primary-color);background:#f0f9f0}.btn-next.disabled{cursor:not-allowed;pointer-events:none;background:#ccc;border-color:#ccc}@media (width<=768px){.step-tabs-header{flex-direction:column;align-items:stretch;padding:0}.step-tabs-list{white-space:nowrap;border-bottom:1px solid #eee;overflow-x:auto}.step-header-actions{background:#f9f9f9;justify-content:flex-end;padding:.5rem 1rem}}.cleared-users-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem;padding:1rem 0;display:grid}.user-card-small{background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex-direction:column;align-items:center;gap:.75rem;padding:1rem .75rem;transition:transform .2s,box-shadow .2s;display:flex}.user-card-small:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.08)}.user-card-header{flex-direction:column;align-items:center;width:100%;display:flex}.user-avatar-small{object-fit:cover;border:2px solid #fff;border-radius:50%;width:56px;height:56px;margin-bottom:.5rem;box-shadow:0 2px 4px rgba(0,0,0,.1)}.user-nickname{color:#333;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:.9rem;font-weight:700;overflow:hidden}.user-card-actions{justify-content:center;gap:.75rem;display:flex}.btn-profile-link,.btn-message-link{color:#666;background:#f5f5f5;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1rem;text-decoration:none;transition:all .2s;display:flex}.btn-profile-link:hover{color:var(--secondary-color);background:#e3f2fd}.btn-message-link:hover{color:#ff9800;background:#fff3e0}.step-detail-actions{justify-content:center;padding:1.5rem;display:flex}.btn-complete{background:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.75rem 2rem;font-size:1rem;font-weight:700;transition:background .3s}.btn-complete:hover{background:var(--primary-color);filter:brightness(.85)}.step-completed-badge{color:var(--primary-color);background:#e8f5e9;border-radius:8px;align-items:center;gap:.75rem;padding:1rem 2rem;font-weight:700;display:flex}.completed-icon{background:var(--primary-color);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.5rem;display:flex}.step-quiz{background:var(--card-bg);border-radius:12px;margin-top:2rem;padding:2rem;box-shadow:0 2px 8px rgba(0,0,0,.1)}.step-quiz h3{margin:0 0 1.5rem;font-size:1.5rem}.quiz-questions{margin-bottom:1.5rem}.quiz-question{background:#f9f9f9;border-radius:8px;margin-bottom:1rem;padding:1rem}.btn-submit-quiz{background:var(--secondary-color);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.75rem 2rem;font-size:1rem;font-weight:700;transition:background .3s}.btn-submit-quiz:hover{background:var(--secondary-color);filter:brightness(.85)}@media (width<=768px){.course-list{grid-template-columns:1fr;padding:1rem}.course-detail,.step-detail{padding:1rem}.course-detail-title{font-size:1.5rem}.step-item{flex-wrap:wrap}.step-item-number{margin-bottom:.5rem}}.editor-container{border:1px solid #e0e0e0;border-radius:8px;flex-direction:column;height:600px;margin-top:-1rem;display:flex;overflow:hidden}.editor-header{background:#f5f5f5;border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.lang-selector-group{align-items:center;gap:.75rem;display:flex}.lang-hint{color:#666;font-size:.85rem;font-weight:700;display:none}@media (width>=768px){.lang-hint{display:inline}}.lang-select{color:#333;cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:4px;outline:none;padding:.25rem .75rem;font-size:.85rem;font-weight:700}.lang-select:focus{border-color:var(--primary-color)}.editor-actions{gap:.5rem;display:flex}.btn-run{background:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:4px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9rem;transition:filter .2s;display:flex}.btn-run:hover{filter:brightness(.9)}.btn-clear{color:#666;cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:4px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9rem;transition:background .2s;display:flex}.btn-clear:hover{background:#f0f0f0}.editor-main{flex-direction:column;flex:1;min-height:0;display:flex}@media (width>=900px){.editor-main{flex-direction:row}}.code-editor{resize:none;color:#d4d4d4;background:#1e1e1e;border:none;outline:none;flex:1;min-height:200px;padding:1rem;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace;font-size:14px;line-height:1.5}.code-editor:focus{background:#1e1e1e}.console-output{color:#f0f0f0;background:#2d2d2d;border-top:1px solid #e0e0e0;flex-direction:column;flex:1;min-height:200px;display:flex;overflow:hidden}@media (width>=900px){.console-output{border-top:none;border-left:1px solid #e0e0e0;flex:none;width:40%}}.console-header{color:#aaa;background:#1e1e1e;border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:.5rem 1rem;font-size:.8rem;font-weight:700;display:flex}.console-output pre{white-space:pre-wrap;word-break:break-all;flex:1;margin:0;padding:1rem;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace;font-size:13px;line-height:1.4;overflow-y:auto}.step-item.is-current{transform:translate(0);background:#e0f7fa!important;border-left:4px solid #00bcd4!important;font-weight:700!important;box-shadow:0 2px 8px rgba(0,0,0,.1)!important}.step-item.is-current .step-item-number{color:#fff!important;background:#00bcd4!important}.step-sidebar .step-item.is-current{background:#e0f7fa!important;border-left:3px solid #00bcd4!important}.step-ai-chat-fab{z-index:1200;color:#fff;letter-spacing:.02em;cursor:pointer;background:linear-gradient(135deg,#0f766e 0%,#0f172a 100%);border:1px solid rgba(255,255,255,.16);border-radius:999px;align-items:center;gap:.65rem;padding:.9rem 1.1rem;font-size:.95rem;font-weight:800;transition:transform .16s,box-shadow .16s,filter .16s;display:inline-flex;position:fixed;bottom:1.25rem;right:1.25rem;box-shadow:0 18px 40px rgba(15,23,42,.28)}.step-ai-chat-fab:hover{filter:brightness(1.05);transform:translateY(-2px);box-shadow:0 22px 46px rgba(15,23,42,.32)}.step-ai-chat-panel{z-index:1199;color:#e2e8f0;backdrop-filter:blur(18px);background:radial-gradient(circle at 100% 0,rgba(34,197,94,.12),transparent 34%),linear-gradient(rgba(15,23,42,.98),rgba(2,6,23,.98));border:1px solid rgba(148,163,184,.28);border-radius:22px;flex-direction:column;width:min(440px,100vw - 1.5rem);height:min(76vh,760px);animation:.18s ease-out stepAiChatPop;display:flex;position:fixed;bottom:4.9rem;right:1.25rem;overflow:hidden;box-shadow:0 26px 72px rgba(2,6,23,.45)}.step-ai-chat-header{background:linear-gradient(#0f172a,rgba(15,23,42,.86));border-bottom:1px solid rgba(148,163,184,.16);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:1rem 1rem .85rem;display:flex}.step-ai-chat-title-block{min-width:0}.step-ai-chat-eyebrow{color:#86efac;letter-spacing:.12em;text-transform:uppercase;background:rgba(34,197,94,.16);border-radius:999px;align-items:center;margin-bottom:.35rem;padding:.2rem .55rem;font-size:.72rem;font-weight:800;display:inline-flex}.step-ai-chat-title{color:#f8fafc;font-size:1rem;font-weight:800;line-height:1.3}.step-ai-chat-subtitle{color:#94a3b8;margin-top:.15rem;font-size:.9rem;line-height:1.35}.step-ai-chat-close{color:#e2e8f0;cursor:pointer;background:rgba(15,23,42,.8);border:1px solid rgba(148,163,184,.28);border-radius:999px;flex-shrink:0;width:2.2rem;height:2.2rem;transition:transform .16s,background .16s}.step-ai-chat-close:hover{background:rgba(30,41,59,.95);transform:scale(1.03)}.step-ai-chat-context{background:rgba(15,23,42,.72);border-bottom:1px solid rgba(148,163,184,.16);gap:.7rem;padding:.85rem 1rem;display:grid}.step-ai-chat-context-row{flex-wrap:wrap;gap:.5rem;display:flex}.step-ai-chat-chip{color:#bbf7d0;background:rgba(34,197,94,.18);border-radius:999px;align-items:center;min-height:1.9rem;padding:.25rem .65rem;font-size:.75rem;font-weight:800;display:inline-flex}.step-ai-chat-chip-muted{color:#cbd5e1;background:rgba(148,163,184,.14);font-weight:700}.step-ai-chat-context-copy{color:#cbd5e1;font-size:.88rem;line-height:1.6}.step-ai-chat-link{color:#86efac;align-items:center;gap:.45rem;width:fit-content;font-size:.85rem;font-weight:700;text-decoration:none;display:inline-flex}.step-ai-chat-link:hover{color:#bbf7d0;text-decoration:underline}.step-ai-chat-body{flex-direction:column;flex:1;gap:.8rem;min-height:0;padding:1rem;display:flex;overflow:hidden}.step-ai-chat-messages{flex-direction:column;flex:1;gap:.75rem;min-height:0;padding-right:.25rem;display:flex;overflow-y:auto}.step-ai-chat-message{border:1px solid transparent;border-radius:18px;max-width:92%;padding:.8rem .9rem}.step-ai-chat-message-user{color:#fff;background:linear-gradient(135deg,rgba(14,165,233,.95),rgba(15,118,110,.96));border-color:rgba(255,255,255,.08);align-self:flex-end}.step-ai-chat-message-assistant{color:#e2e8f0;background:rgba(15,23,42,.72);border-color:rgba(148,163,184,.16);align-self:flex-start}.step-ai-chat-message-role{letter-spacing:.12em;text-transform:uppercase;opacity:.76;margin-bottom:.35rem;font-size:.72rem;font-weight:900}.step-ai-chat-message-content{white-space:pre-wrap;font-size:.92rem;line-height:1.65}.step-ai-chat-suggestions{flex-wrap:wrap;gap:.5rem;display:flex}.step-ai-chat-suggestion{color:#cbd5e1;cursor:pointer;background:rgba(15,23,42,.68);border:1px solid rgba(148,163,184,.2);border-radius:999px;padding:.42rem .7rem;font-size:.8rem;transition:transform .14s,background .14s,color .14s}.step-ai-chat-suggestion:hover{color:#f8fafc;background:rgba(30,41,59,.92);transform:translateY(-1px)}.step-ai-chat-footer{background:linear-gradient(rgba(2,6,23,.94),rgba(2,6,23,.99));border-top:1px solid rgba(148,163,184,.16);gap:.65rem;padding:.95rem 1rem 1rem;display:grid}.step-ai-chat-input{resize:vertical;color:#f8fafc;background:rgba(15,23,42,.88);border:1px solid rgba(148,163,184,.24);border-radius:16px;outline:none;width:100%;min-height:4.2rem;padding:.85rem .95rem;font-size:.92rem;line-height:1.6;box-shadow:inset 0 1px rgba(255,255,255,.04)}.step-ai-chat-input::placeholder{color:#94a3b8}.step-ai-chat-input:focus{border-color:rgba(34,197,94,.55);box-shadow:0 0 0 3px rgba(34,197,94,.14)}.step-ai-chat-actions{justify-content:flex-end;display:flex}.step-ai-chat-send{color:#fff;cursor:pointer;background:linear-gradient(135deg,#22c55e,#0f766e);border:none;border-radius:999px;min-width:7rem;padding:.7rem 1rem;font-size:.92rem;font-weight:900;transition:transform .14s,filter .14s,box-shadow .14s;box-shadow:0 12px 26px rgba(15,118,110,.28)}.step-ai-chat-send:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 14px 30px rgba(15,118,110,.34)}.step-ai-chat-send:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.step-ai-chat-status{color:#bae6fd;background:rgba(14,165,233,.12);border-radius:12px;padding:.55rem .7rem;font-size:.82rem;line-height:1.45}@keyframes stepAiChatPop{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=768px){.step-ai-chat-fab{bottom:.75rem;right:.75rem}.step-ai-chat-panel{border-radius:18px;width:auto;height:min(78vh,720px);bottom:4.25rem;left:.5rem;right:.5rem}.step-ai-chat-message{max-width:96%}}.profile-container{max-width:1200px;margin:2rem auto;padding:0 1.5rem}.profile-header{background:var(--card-bg);border-radius:16px;align-items:center;gap:2rem;margin-bottom:2rem;padding:2rem;display:flex;box-shadow:0 4px 12px rgba(0,0,0,.05)}.profile-avatar{flex-shrink:0}.avatar-img{object-fit:cover;border:4px solid var(--primary-color);border-radius:50%;width:150px;height:150px}.profile-info{flex-grow:1}.profile-nickname{color:var(--secondary-color);margin:0 0 .5rem;font-size:2rem;font-weight:700}.profile-meta{color:#888;margin-bottom:1rem;font-size:1.1rem}.profile-level{color:var(--primary-color);font-weight:700}.profile-title{color:var(--accent-color);font-style:italic}.profile-actions{margin-top:1rem}.profile-content{flex-direction:column;gap:2rem;display:flex}.profile-section{background:var(--card-bg);border-radius:16px;padding:2rem;box-shadow:0 4px 12px rgba(0,0,0,.05)}.section-title{color:var(--secondary-color);border-bottom:2px solid #f0f0f0;margin-bottom:1.5rem;padding-bottom:.5rem;font-size:1.5rem;font-weight:700}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;display:grid}.stat-card{text-align:center;background:linear-gradient(135deg,#f9f9f9 0%,#fff 100%);border:1px solid #eee;border-radius:12px;padding:1.5rem}.stat-icon{margin-bottom:.5rem;font-size:3rem}.stat-label{color:#888;margin-bottom:.5rem;font-size:.9rem}.stat-value{color:var(--primary-color);font-size:2rem;font-weight:700}.points-grid{flex-direction:column;gap:1.5rem;display:flex}.point-item{align-items:center;gap:1rem;display:flex}.point-label{color:var(--text-color);flex:0 0 200px;font-weight:600}.point-bar-container{background:#f0f0f0;border-radius:12px;flex:1;height:24px;overflow:hidden}.point-bar{border-radius:12px;height:100%;transition:width .5s}.point-value{text-align:right;color:var(--text-color);flex:0 0 60px;font-weight:700}.works-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem;display:grid}.work-card{background:#fff;border-radius:12px;transition:transform .2s;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.1)}.work-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.work-image{width:100%;height:150px;overflow:hidden}.work-image img{object-fit:cover;width:100%;height:100%}.work-info{padding:1rem}.work-title{color:var(--secondary-color);margin:0 0 .5rem;font-size:1.1rem;font-weight:700}.work-category{color:#888;font-size:.9rem}.no-works{text-align:center;color:#888;padding:2rem}.edit-form-container,.avatar-upload-container,.password-change-container{background:var(--card-bg);border-radius:16px;margin-bottom:2rem;padding:2rem;box-shadow:0 4px 12px rgba(0,0,0,.05)}.form-title{color:var(--secondary-color);margin-bottom:1.5rem;font-size:1.5rem;font-weight:700}.edit-form{flex-direction:column;gap:1.5rem;display:flex}.form-group{flex-direction:column;display:flex}.form-label{color:var(--text-color);margin-bottom:.5rem;font-weight:600}.avatar-preview{justify-content:center;margin:2rem 0;display:flex}.avatar-preview-img{object-fit:cover;border:4px solid var(--primary-color);border-radius:50%;width:150px;height:150px}.avatar-upload-form{justify-content:center;margin:1rem 0;display:flex}.file-input{display:none}.upload-note{text-align:center;color:#888;margin-top:1rem;font-size:.85rem}.alert{border-radius:8px;margin-bottom:1rem;padding:1rem}.alert-danger{color:#721c24;background-color:#f8d7da;border:1px solid #f5c6cb}.alert-success{color:#155724;background-color:#d4edda;border:1px solid #c3e6cb}.user-list-container{max-width:1200px;margin:2rem auto;padding:0 1.5rem}.friend-list-header{margin-bottom:2rem}.page-title{color:var(--secondary-color);text-align:center;margin-bottom:2rem;font-size:2rem;font-weight:700}.search-form{max-width:600px;margin:0 auto}.search-box{gap:1rem;display:flex}.search-box .input-box{flex:1}.search-box .fun-btn{flex:none;width:auto}.user-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;display:grid}.user-card-link{color:inherit;text-decoration:none}.user-card-compact{background:var(--card-bg);border-radius:12px;align-items:center;gap:1rem;padding:1.5rem;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 2px 8px rgba(0,0,0,.1)}.user-card-compact:hover{transform:translateY(-4px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.user-card-avatar{flex-shrink:0}.user-card-avatar img{object-fit:cover;border:3px solid var(--primary-color);border-radius:50%;width:80px;height:80px}.user-card-info{flex:1}.user-card-nickname{color:var(--secondary-color);margin:0 0 .5rem;font-size:1.2rem;font-weight:700}.user-card-stats{color:#888;gap:1rem;margin-bottom:.5rem;font-size:.9rem;display:flex}.user-card-level{color:var(--primary-color);font-weight:600}.user-card-points{color:var(--accent-color)}.user-card-title{color:#888;margin:0;font-size:.85rem;font-style:italic}.no-users{text-align:center;color:#888;padding:3rem;font-size:1.1rem}@media (width<=768px){.profile-header{text-align:center;flex-direction:column}.profile-nickname{font-size:1.5rem}.stats-grid{grid-template-columns:1fr}.point-item{flex-direction:column;align-items:flex-start}.point-label{flex:none}.point-bar-container{width:100%}.user-grid{grid-template-columns:1fr}.search-box{flex-direction:column}.search-box .fun-btn{width:100%}}.rankings-page{max-width:1200px;margin:0 auto;padding:2rem 1rem}.page-title{text-align:center;color:var(--primary-color);margin-bottom:2rem;font-size:2.5rem;font-weight:700}.tabs{border-bottom:2px solid #e1e1e1;justify-content:center;gap:1rem;margin-bottom:2rem;display:flex}.tab{cursor:pointer;color:#666;background:0 0;border:none;border-bottom:3px solid transparent;padding:.75rem 2rem;font-size:1.1rem;font-weight:500;transition:all .3s}.tab:hover{color:var(--primary-color)}.tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color);font-weight:700}.ranking-table{background:#fff;border-radius:10px;margin-top:2rem;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.1)}.ranking-table table{border-collapse:collapse;width:100%}.ranking-table thead{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff}.ranking-table th{text-align:left;padding:1rem;font-size:1rem;font-weight:700}.ranking-table td{border-bottom:1px solid #f0f0f0;padding:1rem}.ranking-table tbody tr{transition:background-color .2s}.ranking-table tbody tr:hover{background-color:#f8f9fa}.ranking-table tbody tr.current-user{background-color:#fffbe6;font-weight:700}.ranking-table tbody tr.current-user:hover{background-color:#fff9d9}.rank-badge{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:35px;height:35px;font-weight:700;display:inline-flex}.rank-badge.rank-1{background:linear-gradient(135deg,gold,#ffed4e);box-shadow:0 2px 8px rgba(255,215,0,.5)}.rank-badge.rank-2{background:linear-gradient(135deg,silver,#e8e8e8);box-shadow:0 2px 8px rgba(192,192,192,.5)}.rank-badge.rank-3{background:linear-gradient(135deg,#cd7f32,#e8a87c);box-shadow:0 2px 8px rgba(205,127,50,.5)}.user-info{align-items:center;gap:.75rem;display:flex}.user-info .avatar{object-fit:cover;border-radius:50%;width:40px;height:40px}.user-info .nickname{font-weight:500}@media (width<=768px){.rankings-page{padding:1rem .5rem}.page-title{font-size:1.8rem}.tabs{gap:.5rem}.tab{padding:.5rem 1rem;font-size:.9rem}.ranking-table{overflow-x:auto}.ranking-table table{min-width:600px}.ranking-table th,.ranking-table td{padding:.75rem .5rem;font-size:.9rem}.user-info .avatar{width:30px;height:30px}.rank-badge{width:30px;height:30px;font-size:.9rem}}.tengoku-game-container{max-width:900px;margin:.5rem auto;padding:.5rem;position:relative}.tengoku-game-header{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;padding:.5rem .75rem;display:flex}.tengoku-game-header .progress{font-size:1rem;font-weight:700}.tengoku-game-header .timer{align-items:center;gap:.5rem;display:flex}.tengoku-game-header .score{gap:1rem;display:flex}.tengoku-game-header .score .correct{color:#4ade80}.tengoku-game-header .score .wrong{color:#f87171}.tengoku-problem{background:#fff;border-radius:12px;padding:.5rem;box-shadow:0 4px 6px rgba(0,0,0,.1)}.tengoku-problem .problem-content{margin-bottom:.5rem}.tengoku-problem .problem-content .problem-text{color:#2d3748;text-align:center;background-color:#f7fafc;border:3px dashed #cbd5e0;border-radius:12px;justify-content:center;align-items:center;min-height:80px;margin-bottom:.5rem;padding:1rem .5rem;font-size:1.8rem;font-weight:800;line-height:1.2;display:flex;box-shadow:inset 0 2px 4px rgba(0,0,0,.05)}.tengoku-problem .problem-content .problem-image{text-align:center;margin-top:1rem}.tengoku-problem .problem-content .problem-image img{border-radius:8px;max-width:100%;height:auto}.tengoku-problem .choices .choices-list{flex-wrap:wrap;justify-content:center;gap:2rem;display:flex}.tengoku-problem .choices .choices-list.vertical-layout{flex-direction:column;align-items:stretch;gap:1rem}.tengoku-problem .choices .choices-list.vertical-layout .choice-wrapper{flex-direction:row;justify-content:center;width:100%}.tengoku-problem .choices .choices-list.vertical-layout .choice-key{order:-1}.tengoku-problem .choices .choices-list.vertical-layout .choice-button{flex:1;width:auto;display:block}.tengoku-problem .choices .choice-wrapper{flex-direction:column;align-items:center;gap:.5rem;display:flex}.tengoku-problem .choices .choice-wrapper .choice-key{color:#666;background:#e2e8f0;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;font-size:.9rem;font-weight:700;display:flex}.tengoku-problem .choices .choice-button{text-align:center;cursor:pointer;background:#f7fafc;border:3px solid #e2e8f0;border-radius:12px;min-width:100px;padding:1.5rem 2.5rem;font-size:1.5rem;font-weight:700;transition:all .2s}.tengoku-problem .choices .choice-button:hover:not(:disabled){background:#edf2f7;border-color:#cbd5e0;transform:translateY(-3px);box-shadow:0 4px 12px rgba(0,0,0,.1)}.tengoku-problem .choices .choice-button:active:not(:disabled){transform:translateY(0)}.tengoku-problem .choices .choice-button.selected.correct{color:#155724;background:#d4edda;border-color:#4ade80}.tengoku-problem .choices .choice-button.selected.wrong{color:#721c24;background:#f8d7da;border-color:#f87171}.tengoku-problem .choices .choice-button.correct:not(.selected){background:#d4edda;border-color:#4ade80}.tengoku-problem .choices .choice-button.disabled{opacity:.5;cursor:not-allowed}.answer-feedback{z-index:100;pointer-events:none;text-align:center;justify-content:center;align-items:center;width:100%;height:0;display:flex;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.answer-feedback .feedback-correct{color:#22c55e;text-shadow:0 0 10px rgba(255,255,255,.8);font-size:5rem;animation:.3s ease-out feedback-pop}.answer-feedback .feedback-wrong{color:#ef4444;text-shadow:0 0 10px rgba(255,255,255,.8);font-size:5rem;animation:.3s ease-out feedback-pop}.tengoku-timer{align-items:center;gap:.5rem;display:flex}.tengoku-timer .timer-icon{font-size:1.2rem}.tengoku-timer .timer-text{font-family:monospace;font-size:1.1rem;font-weight:700}.tengoku-result{max-width:900px;margin:2rem auto;padding:1rem}.tengoku-result .result-header{text-align:center;margin-bottom:2rem}.tengoku-result .result-header h2{color:#2d3748;font-size:2.5rem}.tengoku-result .result-summary{gap:2rem;margin-bottom:2rem;display:grid}.tengoku-result .result-summary .score-card{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 6px rgba(0,0,0,.1)}.tengoku-result .result-summary .score-card .score-main{text-align:center;margin-bottom:1.5rem}.tengoku-result .result-summary .score-card .score-main h3{color:#718096;margin-bottom:.5rem;font-size:1.2rem}.tengoku-result .result-summary .score-card .score-main .score-value{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:4rem;font-weight:700}.tengoku-result .result-summary .score-card .score-details{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.tengoku-result .result-summary .score-card .score-details .detail-item{background:#f7fafc;border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem;display:flex}.tengoku-result .result-summary .score-card .score-details .detail-item .label{color:#718096}.tengoku-result .result-summary .score-card .score-details .detail-item .value{font-size:1.1rem;font-weight:700}.tengoku-result .result-summary .score-card .score-details .detail-item .value.correct{color:#4ade80}.tengoku-result .result-summary .score-card .score-details .detail-item .value.wrong{color:#f87171}.tengoku-result .result-summary .advice-card{color:#fff;background:linear-gradient(135deg,#f6d365 0%,#fda085 100%);border-radius:12px;padding:1.5rem;box-shadow:0 4px 6px rgba(0,0,0,.1)}.tengoku-result .result-summary .advice-card h4{margin-bottom:.5rem}.tengoku-result .result-summary .advice-card p{margin:0;font-size:1.1rem}.tengoku-result .result-summary .qualification-card{color:#fff;text-align:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:12px;padding:1.5rem;box-shadow:0 4px 6px rgba(0,0,0,.1)}.tengoku-result .result-summary .qualification-card h4{margin-bottom:.5rem}.tengoku-result .result-summary .qualification-card .qualification-badge{margin:0;font-size:1.5rem;font-weight:700}.tengoku-result .ranking-section{margin-bottom:2rem}.tengoku-result .ranking-section h3{color:#2d3748;margin-bottom:1rem;font-size:1.8rem}.tengoku-result .result-actions{flex-wrap:wrap;justify-content:center;gap:1.5rem;margin-top:2rem;padding:1rem;display:flex}.tengoku-result .result-actions .btn{cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;min-width:200px;padding:1rem 2rem;font-size:1.1rem;font-weight:700;text-decoration:none;transition:all .2s;display:inline-flex}.tengoku-result .result-actions .btn i{font-size:1.2rem}.tengoku-result .result-actions .btn:hover{transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,.15)}.tengoku-result .result-actions .btn:active{transform:translateY(0)}.tengoku-result .result-actions .btn-secondary{color:#fff;background:linear-gradient(135deg,#6b7280 0%,#4b5563 100%)}.tengoku-result .result-actions .btn-secondary:hover{background:linear-gradient(135deg,#4b5563 0%,#374151 100%)}.tengoku-result .result-actions .btn-primary{color:#fff;background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);box-shadow:0 4px 14px rgba(59,130,246,.4)}.tengoku-result .result-actions .btn-primary:hover{background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);box-shadow:0 6px 20px rgba(59,130,246,.5)}.tengoku-ranking-table{background:#fff;border-radius:12px;padding:1.5rem;overflow-x:auto;box-shadow:0 4px 6px rgba(0,0,0,.1)}.tengoku-ranking-table .ranking-table{border-collapse:collapse;width:100%}.tengoku-ranking-table .ranking-table thead th{text-align:left;color:#4a5568;border-bottom:2px solid #e2e8f0;padding:.75rem;font-weight:600}.tengoku-ranking-table .ranking-table tbody .ranking-row{border-bottom:1px solid #f7fafc;transition:background .2s}.tengoku-ranking-table .ranking-table tbody .ranking-row:hover{background:#f7fafc}.tengoku-ranking-table .ranking-table tbody .ranking-row.current-user{background:#edf2f7;font-weight:700}.tengoku-ranking-table .ranking-table tbody .ranking-row td{padding:1rem .75rem}.tengoku-ranking-table .ranking-table .rank-col{width:80px;font-size:1.2rem}.tengoku-ranking-table .ranking-table .name-col .you-badge{color:#667eea;font-size:.9rem}.tengoku-ranking-table .ranking-table .score-col{text-align:right;width:100px}.tengoku-ranking-table .ranking-table .score-col strong{color:#667eea;font-size:1.2rem}.tengoku-ranking-table .ranking-table .correct-col{text-align:right;width:100px}.tengoku-ranking-table .ranking-table .time-col{text-align:right;width:100px;font-family:monospace}.tengoku-ranking-table .ranking-empty{text-align:center;color:#718096;padding:2rem}@media (width<=768px){.tengoku-game-header{flex-direction:column;align-items:flex-start}.tengoku-problem{padding:1rem}.tengoku-problem .problem-content .problem-text{font-size:1.2rem}.tengoku-problem .choices .choices-list{gap:1rem}.tengoku-problem .choices .choice-button{min-width:80px;padding:1rem 1.5rem;font-size:1.2rem}.tengoku-result .result-header h2{font-size:2rem}.tengoku-result .result-summary .score-card .score-main .score-value{font-size:3rem}.tengoku-ranking-table .ranking-table{min-width:600px}}.ultra-headline{color:var(--neo-text);text-transform:uppercase;letter-spacing:-.01em;white-space:nowrap;margin-bottom:1.5rem;font-size:4.2rem;font-weight:900;line-height:1.3}.ultra-headline span{color:#1a1a1a;white-space:nowrap;background:linear-gradient(135deg,#f39c12 0%,#e67e22 100%);border:4px solid #1a1a1a;padding:.2rem .8rem;animation:3s ease-in-out infinite wiggle;display:inline-block;transform:rotate(-2deg);box-shadow:6px 6px #1a1a1a}@media (width<=968px){.ultra-headline{font-size:2.2rem}}@media (width<=640px){.ultra-headline{white-space:normal;font-size:1.8rem}}.ultra-subhead{color:var(--neo-text);border:3px solid var(--neo-text);background:#fff;border-radius:16px;margin-bottom:2.5rem;padding:1.5rem;font-size:1.3rem;font-weight:600;line-height:1.8;display:inline-block;box-shadow:4px 4px rgba(0,0,0,.1)}@media (width<=768px){.ultra-subhead{padding:1rem;font-size:1.1rem}}.section-label{text-transform:uppercase;letter-spacing:.15em;color:#1a1a1a;background:linear-gradient(135deg,#f39c12 0%,#e67e22 100%);border:4px solid #1a1a1a;margin-bottom:1.5rem;padding:.6rem 1.8rem;font-size:1rem;font-weight:900;transition:all .3s;display:inline-block;transform:rotate(-2deg);box-shadow:5px 5px #1a1a1a}.section-label:hover{transform:rotate(0)scale(1.05);box-shadow:7px 7px #1a1a1a}.ultra-hero{background:0 0;grid-template-columns:1fr 1fr;align-items:center;gap:4rem;max-width:1200px;min-height:95vh;margin:0 auto;padding:4rem 3rem;display:grid;position:relative;overflow:hidden}@media (width<=968px){.ultra-hero{grid-template-columns:1fr;gap:2rem;min-height:auto;padding:3rem 2rem}}@keyframes float{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-30px,30px)scale(1.1)}}.hero-content-box{text-align:left;z-index:2;max-width:600px;position:relative}@media (width<=968px){.hero-content-box{text-align:center;max-width:100%}}.hero-logo-background{z-index:2;justify-content:center;align-items:center;display:flex;position:relative}.hero-logo-background img{z-index:1;filter:drop-shadow(0 20px 40px rgba(0,0,0,.3));width:100%;max-width:750px;height:auto;animation:4s ease-in-out infinite bounce-slow;position:relative}@media (width<=968px){.hero-logo-background{order:-1}.hero-logo-background img{max-width:400px}}@keyframes pulse-glow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}@keyframes bounce-slow{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-20px)rotate(2deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.btn-group{flex-wrap:wrap;justify-content:center;gap:1.5rem;display:flex}@media (width<=768px){.btn-group{flex-direction:column;width:100%}}.btn-ultra{cursor:pointer;text-transform:uppercase;letter-spacing:.05em;box-sizing:border-box;border:4px solid #1a1a1a;border-radius:16px;padding:1.2rem 3rem;font-size:1.2rem;font-weight:900;text-decoration:none;transition:all .3s;display:inline-block;position:relative}@media (width<=768px){.btn-ultra{text-align:center;width:100%}}.btn-ultra-primary{color:#fff;background:linear-gradient(135deg,#e74c3c 0%,#c0392b 100%);box-shadow:6px 6px #1a1a1a}.btn-ultra-primary:hover{background:linear-gradient(135deg,#c0392b 0%,#a93226 100%);transform:translate(-3px,-3px);box-shadow:9px 9px #1a1a1a}.btn-ultra-primary:active{transform:translate(2px,2px);box-shadow:2px 2px #1a1a1a}.btn-ultra-outline{color:#1a1a1a;background:#fff;border:4px solid #fff;box-shadow:6px 6px rgba(255,255,255,.3)}.btn-ultra-outline:hover{background:rgba(255,255,255,.95);transform:translate(-3px,-3px);box-shadow:9px 9px rgba(255,255,255,.5)}.btn-ultra-outline:active{transform:translate(2px,2px);box-shadow:2px 2px rgba(255,255,255,.3)}.btn-ultra-danger{color:#fff;background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);box-shadow:6px 6px #1a1a1a}.btn-ultra-danger:hover{background:linear-gradient(135deg,#dc2626 0%,#b91c1c 100%);transform:translate(-3px,-3px);box-shadow:9px 9px #1a1a1a}.btn-ultra-danger:active{transform:translate(2px,2px);box-shadow:2px 2px #1a1a1a}.ultra-section{max-width:1200px;margin:0 auto;padding:3rem 2rem}.bento-grid{grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(220px,auto);gap:2rem;display:grid}.bento-item{background:#fff;border:4px solid #1a1a1a;border-radius:20px;flex-direction:column;justify-content:space-between;padding:2.5rem;transition:all .3s;display:flex;position:relative;overflow:hidden;box-shadow:6px 6px #1a1a1a}.bento-item:before{content:"";opacity:0;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);width:200%;height:200%;transition:opacity .3s;position:absolute;top:-50%;right:-50%}.bento-item:hover:before{opacity:1}.bento-item:hover{transform:translate(-5px,-5px)rotate(-1deg);box-shadow:10px 10px #1a1a1a}.bento-large{background:linear-gradient(135deg,#f39c12 0%,#e67e22 100%);grid-column:span 8}.bento-medium{grid-column:span 6}.bento-medium:nth-child(3){background:linear-gradient(135deg,#48c9b0 0%,#16a085 100%)}.bento-medium:nth-child(4){background:linear-gradient(135deg,#e74c3c 0%,#c0392b 100%)}.bento-small{background:linear-gradient(135deg,#5b8dee 0%,#4a7bd3 100%);grid-column:span 4}@media (width<=900px){.bento-large,.bento-medium,.bento-small{grid-column:span 12}}.bento-title{color:var(--neo-text);text-transform:uppercase;margin-bottom:1rem;font-size:2rem;font-weight:900}.bento-text{color:#333;margin-bottom:1.5rem;font-size:1.1rem;font-weight:500;line-height:1.6}.bento-bg-icon{opacity:.2;pointer-events:none;filter:grayscale();font-size:8rem;position:absolute;bottom:-10px;right:-10px;transform:rotate(-15deg)}.feature-row{border:var(--neo-border);border-radius:var(--neo-radius);box-shadow:var(--neo-shadow);background:#fff;align-items:center;gap:4rem;margin-bottom:6rem;padding:3rem;display:flex}.feature-row.reverse{background:#fab1a0;flex-direction:row-reverse}.feature-image-box{flex:1;position:relative}.feature-img{border:var(--neo-border);border-radius:var(--neo-radius);width:100%;box-shadow:4px 4px #1a1a1a}.feature-content{flex:1}.feature-tag{color:#fff;background:#1a1a1a;margin-bottom:1rem;padding:.25rem 1rem;font-size:.9rem;font-weight:900;display:inline-block;transform:rotate(-2deg)}@media (width<=768px){.feature-row,.feature-row.reverse{flex-direction:column;gap:2rem}}.arcade-scroll{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:2rem;padding:2rem 1rem 4rem;display:flex;overflow-x:auto}.arcade-card{color:#fff;border:var(--neo-border);border-radius:var(--neo-radius);scroll-snap-align:center;min-width:320px;box-shadow:var(--neo-shadow);background:#2d3436;padding:2rem;transition:transform .3s;position:relative}.arcade-card:hover{box-shadow:var(--neo-shadow-hover);border-color:var(--neo-accent);transform:translateY(-10px)}.arcade-icon{color:var(--neo-accent);text-shadow:2px 2px #000;margin-bottom:1rem;font-size:3rem}.arcade-title{color:var(--neo-accent);margin-bottom:.5rem;font-size:1.8rem;font-weight:900}.arcade-btn{background:var(--neo-accent);color:#1a1a1a;border:2px solid #1a1a1a;border-radius:8px;margin-top:1.5rem;padding:.75rem 2rem;font-weight:900;text-decoration:none;transition:all .2s;display:inline-block;box-shadow:4px 4px #1a1a1a}.arcade-btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #1a1a1a}.contact-grid-modern{grid-template-columns:1fr 1fr;gap:2rem;display:grid}.contact-panel{border:var(--neo-border);border-radius:var(--neo-radius);box-shadow:var(--neo-shadow);background:#fff;padding:3rem}.contact-link{color:var(--neo-text);background:#dfe6e9;border:2px solid #1a1a1a;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:1rem 1.5rem;font-weight:900;text-decoration:none;transition:all .2s;display:flex}.contact-link:hover{background:#fff;transform:translate(-2px,-2px);box-shadow:4px 4px #1a1a1a}@media (width<=768px){.contact-grid-modern{grid-template-columns:1fr}.ultra-headline{font-size:2.5rem}}.neo-navbar{border-bottom:var(--neo-border);z-index:1000;background:#fff;position:sticky;top:0;box-shadow:0 4px #1a1a1a}.neo-navbar-container{justify-content:space-between;align-items:center;gap:2rem;max-width:1400px;margin:0 auto;padding:.5rem 2rem;display:flex}.neo-navbar-brand{align-items:center;display:flex}.neo-navbar-logo{align-items:center;gap:.5rem;text-decoration:none;display:flex}.neo-navbar-menu{flex:1;gap:1.5rem;display:flex}.neo-navbar-item{color:var(--neo-text);border:2px solid transparent;padding:.5rem 1rem;font-weight:700;text-decoration:none;transition:all .2s}.neo-navbar-item:hover{border-bottom:2px solid var(--neo-primary);color:var(--neo-primary)}.neo-navbar-actions{gap:1rem;display:flex}.dashboard-container{max-width:100%;margin:0;padding:70px 0 0}.dashboard-container.typing-mode{padding-top:0;overflow:hidden}body.typing-mode{overflow:hidden}body.typing-mode main{padding-top:70px}.dashboard-grid{grid-template-columns:var(--dashboard-sidebar-width,280px)minmax(0,1fr);align-items:flex-start;min-height:calc(100vh - 70px);display:grid}.dashboard-grid.typing-mode{grid-template-columns:1fr}.dashboard-content-grid-4col{grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:.75rem;display:grid}.dashboard-content-grid-bottom{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}.dashboard-column{flex-direction:column;display:flex}.dashboard-column-1{flex-direction:column;grid-column:span 1;display:flex}.dashboard-column-2{flex-direction:column;grid-column:span 2;display:flex}.neo-sidebar{width:var(--dashboard-sidebar-width,280px);max-width:var(--dashboard-sidebar-width,280px);z-index:100;background-color:#48c9b0;border-right:4px solid #1a1a1a;height:calc(100vh - 70px);position:sticky;top:70px;overflow:hidden auto;box-shadow:4px 0 8px rgba(0,0,0,.2)}.neo-sidebar__resize-handle{cursor:col-resize;z-index:3;width:14px;height:100%;position:absolute;top:0;right:0}.neo-sidebar__resize-handle:after{content:"";background:rgba(26,26,26,.35);border-radius:999px;width:4px;position:absolute;top:0;bottom:0;right:3px}body.sidebar-resizing,body.sidebar-resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.dashboard-main{min-width:0;min-height:calc(100vh - 70px);margin-left:0;padding:1.5rem}.dashboard-main.is-typing-mode{padding:.5rem}.sidebar-menu{flex-direction:column;display:flex}.sidebar-menu-item{color:#fff;background:0 0;border-bottom:1px solid rgba(255,255,255,.1);align-items:center;gap:.5rem;min-width:0;padding:.8rem 1rem;font-size:1rem;font-weight:600;text-decoration:none;transition:background .15s;display:flex;overflow:hidden}.sidebar-menu-item span{white-space:nowrap;text-overflow:clip;min-width:0;overflow:hidden}.sidebar-menu-item:last-child{border-bottom:none}.sidebar-menu-item:hover{color:#fff;background:rgba(255,255,255,.1)}.sidebar-menu-item:active{background:rgba(255,255,255,.2)}.sidebar-menu-item .menu-icon{text-align:center;color:#fff;width:1.5rem;font-size:1.1rem}.sidebar-category-title{white-space:nowrap;text-overflow:clip;overflow:hidden}.neo-card{border:var(--neo-border);border-radius:var(--neo-radius);box-shadow:var(--neo-shadow);transition:all .3s;overflow:hidden}.neo-card:hover{box-shadow:var(--neo-shadow-hover);transform:translate(-2px,-2px)}.neo-card-header{border-bottom:var(--neo-border);padding:.5rem}.neo-card-title{text-transform:uppercase;margin:0;font-size:1.25rem;font-weight:900}.neo-card-body{padding:.5rem}.neo-badge{text-align:center;border:2px solid #1a1a1a;border-radius:8px;padding:.5rem 1rem;font-weight:700;display:inline-block}.skill-list{flex-direction:column;gap:1rem;display:flex}.skill-item{background:#fff;border:2px solid #1a1a1a;border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;font-weight:700;display:flex}.skill-name{font-size:.9rem}.skill-value{color:var(--neo-primary);font-size:1.25rem;font-weight:900}.dashboard-main{min-height:600px}.neo-alert{border:var(--neo-border);border-radius:var(--neo-radius);box-shadow:var(--neo-shadow);padding:1.5rem}.neo-course-card{border:var(--neo-border);background:#fff;border-radius:12px;padding:1.5rem;transition:all .3s;box-shadow:4px 4px #1a1a1a}.neo-course-card:hover{transform:translate(-2px,-2px);box-shadow:8px 8px #1a1a1a}.neo-progress-bar{background:#f4f4f0;border:2px solid #1a1a1a;border-radius:10px;height:20px;overflow:hidden}.neo-progress-fill{background:linear-gradient(90deg,var(--neo-primary),var(--neo-secondary));height:100%;transition:width .3s}.btn-ultra{text-transform:uppercase;border:var(--neo-border);cursor:pointer;text-align:center;border-radius:8px;padding:.75rem 1.5rem;font-weight:900;text-decoration:none;transition:all .2s;display:inline-block}.btn-ultra:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #1a1a1a}.btn-ultra-sm{padding:.5rem 1rem;font-size:.875rem}.btn-ultra-primary{background:var(--neo-primary);color:#fff;box-shadow:4px 4px #1a1a1a}.btn-ultra-secondary{background:var(--neo-secondary);color:#fff;box-shadow:4px 4px #1a1a1a}.btn-ultra-accent{background:var(--neo-accent);color:var(--neo-text);box-shadow:4px 4px #1a1a1a}.btn-ultra-outline{color:var(--neo-text);background:#fff;box-shadow:4px 4px #1a1a1a}@media (width<=968px){.dashboard-grid{grid-template-columns:1fr}.neo-sidebar{border-bottom:4px solid #1a1a1a;border-right:none;width:100%;max-width:100%;height:auto;position:relative;top:0;overflow-y:visible}.neo-sidebar__resize-handle{display:none}.dashboard-main{margin-left:0}.dashboard-content-grid-4col,.dashboard-content-grid-bottom{grid-template-columns:1fr}.dashboard-column-1,.dashboard-column-2{grid-column:span 1}.neo-navbar-menu{display:none}}.category-filter{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;display:flex}.filter-btn{border:2px solid var(--secondary-color);color:var(--secondary-color);cursor:pointer;background:#fff;border-radius:25px;padding:.6rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .3s}.filter-btn:hover{background:var(--secondary-color);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px rgba(50,152,220,.3)}.filter-btn.active{background:var(--secondary-color);color:#fff;box-shadow:0 4px 12px rgba(50,152,220,.4)}.typing-card{border-left:5px solid #ccc;transition:all .3s}.typing-card.level-easy{border-left-color:#48c774}.typing-card.level-easy:hover{box-shadow:0 6px 20px rgba(72,199,116,.2)}.typing-card.level-medium{border-left-color:#ffdd57}.typing-card.level-medium:hover{box-shadow:0 6px 20px rgba(255,221,87,.3)}.typing-card.level-hard{border-left-color:#ff3860}.typing-card.level-hard:hover{box-shadow:0 6px 20px rgba(255,56,96,.2)}.level-badge{color:#fff;border-radius:12px;margin-left:.5rem;padding:.25rem .75rem;font-size:.85rem;font-weight:700;display:inline-block}.level-badge.level-easy{background:#48c774}.level-badge.level-medium{color:#333;background:#fa0}.level-badge.level-hard{background:#ff3860}.typing-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;margin-top:2rem;display:grid}@media (width<=768px){.typing-grid{grid-template-columns:1fr}.category-filter{gap:.5rem}.filter-btn{padding:.5rem 1rem;font-size:.85rem}}.keyboard-visual{background:#f5f5f5;border-radius:12px;max-width:900px;margin:.5rem auto 0;padding:.75rem;box-shadow:0 4px 12px rgba(0,0,0,.1)}.keyboard-row{justify-content:center;gap:3px;margin-bottom:4px;display:flex}.keyboard-key{color:#333;cursor:default;-webkit-user-select:none;user-select:none;background:#fff;border:2px solid #ddd;border-radius:4px;justify-content:center;align-items:center;min-width:40px;height:40px;padding:.25rem;font-size:.75rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 2px 4px rgba(0,0,0,.1)}.keyboard-key.key-active{background:var(--primary-color);color:#fff;border-color:var(--primary-color);transform:translateY(2px);box-shadow:0 1px 2px rgba(0,0,0,.2)}.keyboard-key.key-wide{min-width:65px}.keyboard-key.key-extra-wide{min-width:80px}.keyboard-key.key-spacebar{min-width:280px}@media (width<=768px){.keyboard-visual{max-width:100%;padding:1rem}.keyboard-key{min-width:35px;height:40px;padding:.3rem;font-size:.7rem}.keyboard-key.key-wide{min-width:60px}.keyboard-key.key-extra-wide{min-width:70px}.keyboard-key.key-spacebar{min-width:250px}}.sidebar-category-title{color:rgba(255,255,255,.8);box-shadow:none;letter-spacing:.05em;background:0 0;border:none;margin-top:1rem;margin-bottom:.25rem;padding:.25rem .5rem;font-size:.8rem;font-weight:800;transition:all .2s;display:block;transform:none}.sidebar-category-title:hover{color:#fff;transform:none}.dashboard-main{background-color:#f8f9fa;background-image:radial-gradient(#cbd5e0 1px,transparent 1px);background-size:20px 20px;min-height:100vh}.key-active{transform:translateY(2px);background-color:#ffdd57!important;border-color:#ffc107!important;box-shadow:0 0 rgba(0,0,0,.2)!important}.finger{transition:fill .1s}.finger-active{fill:#ffdd57!important;stroke:#ffc107!important}.rotate-90{transform:rotate(90deg)}.keyboard-responsive-wrapper{justify-content:center;width:100%;padding-top:0;display:flex;overflow:hidden}.keyboard-container-wrapper{transform-origin:top;transition:transform .3s;transform:scale(1.1)}@media (width<=1200px){.keyboard-container-wrapper{margin-bottom:-10px;transform:scale(1)}}@media (width<=992px){.keyboard-container-wrapper{margin-bottom:-60px;transform:scale(.85)}}@media (width<=768px){.keyboard-container-wrapper{margin-bottom:-100px;transform:scale(.7)}}@media (width<=480px){.keyboard-container-wrapper{margin-bottom:-150px;transform:scale(.5)}}.char-ng{color:#757575;background-color:rgba(255,39,139,.3);border-radius:4px}.typing-text{letter-spacing:.1em;line-height:2}.tengoku-groups{grid-template-columns:1fr 1fr;align-items:start;gap:1.5rem;display:grid}@media (width<=1200px){.tengoku-groups{grid-template-columns:1fr}}.auth-container{text-align:center;background:#fff;border:3px solid #1a1a1a;border-radius:16px;max-width:500px;margin:8rem auto 4rem;padding:3rem 2rem;box-shadow:6px 6px #1a1a1a}.auth-title{color:#1a1a1a;text-transform:uppercase;margin-bottom:2rem;font-size:2rem;font-weight:900}.auth-container .form-group{text-align:left;margin-bottom:1.5rem}.auth-container label{color:#1a1a1a;margin-bottom:.5rem;font-weight:700;display:block}.auth-container input{box-sizing:border-box;border:2px solid #ddd;border-radius:8px;width:100%;padding:.8rem;font-size:1rem;transition:all .2s}.auth-container input:focus{border-color:#5b8dee;outline:none;box-shadow:0 0 0 3px rgba(91,141,238,.2)}.auth-container .btn-primary{color:#fff;cursor:pointer;background-color:#5b8dee;border:3px solid #1a1a1a;border-radius:8px;width:100%;margin-top:1rem;padding:1rem;font-size:1.1rem;font-weight:700;transition:all .2s;display:inline-block;box-shadow:4px 4px #1a1a1a}.auth-container .btn-primary:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #1a1a1a}.auth-container .btn-primary:active{transform:translate(0);box-shadow:2px 2px #1a1a1a}.auth-link{margin-top:1.5rem;font-size:.9rem}.auth-link a{color:#5b8dee;font-weight:700;text-decoration:none}.auth-link a:hover{text-decoration:underline}.error-message{color:#b91c1c;text-align:left;background-color:#fee2e2;border:2px solid #fca5a5;border-radius:8px;margin-bottom:1.5rem;padding:1rem;font-weight:700}.navbar-logout-btn{cursor:pointer;font-size:inherit;color:inherit;background:0 0;border:none;align-items:center;margin:0;padding:0;font-family:inherit;font-weight:700;text-decoration:none;transition:opacity .2s;display:flex}.navbar-logout-btn:hover{opacity:.8}.sidebar-logout-btn{cursor:pointer;background:0 0;border:none;margin:0;padding:0}.password-toggle{justify-content:flex-end;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.password-toggle input[type=checkbox]{cursor:pointer;width:1rem;height:1rem}.password-toggle label{color:#555;cursor:pointer;margin-bottom:0;font-size:.9rem}.reports-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.reports-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;display:grid}.report-card-hover{cursor:pointer;height:100%;color:inherit;background:#e0f7fa;text-decoration:none;transition:transform .2s;display:block}.report-card-hover:hover{box-shadow:var(--neo-shadow-hover);transform:translateY(-4px)}@media (width<=768px){.reports-header{flex-direction:column;align-items:flex-start}.reports-header .section-label{text-align:center;width:100%}.reports-header>div:last-child{justify-content:center;width:100%}}.status-card{background-color:#e3f2fd}.avatar-card{background-color:#fce4ec}.coin-card{background-color:#fff8e1}.friend-card{background-color:#f3e5f5}.report-card{background-color:#e0f7fa}.work-card{background-color:#f1f8e9}.course-card{background-color:#e8f5e9}.stats-card{background-color:#fffde7}.messages-layout{grid-template-columns:350px 1fr;gap:1.5rem;max-width:1400px;height:calc(100vh - 150px);margin:0 auto;padding:1rem;display:grid}@media (width<=968px){.messages-layout{grid-template-columns:1fr;height:auto;display:block}}.messages-sidebar{background:#fff;border:3px solid #1a1a1a;border-radius:16px;flex-direction:column;height:100%;display:flex;overflow-y:auto;box-shadow:6px 6px #1a1a1a}@media (width<=968px){.messages-sidebar{height:auto;max-height:400px;margin-bottom:2rem}}.messages-main{background:#fff;border:3px solid #1a1a1a;border-radius:16px;flex-direction:column;height:100%;display:flex;overflow:hidden;box-shadow:6px 6px #1a1a1a}@media (width<=968px){.messages-main{height:600px}}.messages-header{background:#fff8e1;border-bottom:3px solid #1a1a1a;justify-content:space-between;align-items:center;padding:1rem;display:flex}.messages-header h3{color:#1a1a1a;margin:0;font-size:1.2rem;font-weight:900}.thread-list{flex:1;overflow-y:auto}.thread-item{cursor:pointer;background:#fff;border-bottom:2px solid #eee;align-items:center;padding:1rem;transition:all .2s;display:flex;position:relative}.thread-item:hover{background:#f8f9fa;padding-left:1.2rem}.thread-item.active{border-left:4px solid var(--neo-primary);background:#eef2ff}.thread-item.unread{background:#fff9e6}.thread-item.unread:after{content:"";background:#e74c3c;border:2px solid #fff;border-radius:50%;width:10px;height:10px;position:absolute;top:1rem;right:1rem}.thread-avatar{object-fit:cover;background:#fff;border:2px solid #1a1a1a;border-radius:50%;flex-shrink:0;width:50px;height:50px;margin-right:1rem}.thread-content{flex:1;min-width:0}.thread-name{color:#1a1a1a;justify-content:space-between;margin-bottom:.2rem;font-size:1rem;font-weight:800;display:flex}.thread-time{color:#888;font-size:.75rem;font-weight:400}.thread-preview{color:#666;white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.conversation-area{background:#fafafa;flex-direction:column;flex:1;padding:1.5rem;display:flex;overflow-y:auto}.message-bubble-container{align-items:flex-end;margin-bottom:1.5rem;display:flex}.message-bubble-container.own{justify-content:flex-end}.message-bubble-container.own .message-bubble{background:var(--neo-primary);color:#fff;border:none;border-radius:18px 18px 0;box-shadow:4px 4px rgba(91,141,238,.3)}.message-bubble-container.own .message-meta{text-align:right}.message-bubble-container.other{justify-content:flex-start}.message-bubble-container.other .message-bubble{color:#1a1a1a;background:#fff;border:2px solid #1a1a1a;border-radius:18px 18px 18px 0;box-shadow:4px 4px #1a1a1a}.message-bubble-container.other .message-meta{text-align:left}.message-avatar{object-fit:cover;background:#fff;border:2px solid #1a1a1a;border-radius:50%;flex-shrink:0;width:36px;height:36px;margin-right:.8rem}.message-content-wrapper{max-width:70%}.message-bubble{word-wrap:break-word;white-space:pre-wrap;padding:.8rem 1.2rem;font-size:1rem;line-height:1.5}.message-meta{color:#888;margin-top:.25rem;font-size:.75rem}.message-input-area{background:#fff;border-top:3px solid #1a1a1a;align-items:center;gap:1rem;padding:1rem;display:flex}.message-input{resize:none;border:2px solid #ddd;border-radius:8px;flex:1;height:50px;padding:.8rem;font-size:1rem;transition:all .2s}.message-input:focus{border-color:var(--neo-primary);outline:none;height:80px}.send-btn{background:var(--neo-primary);color:#fff;width:50px;height:50px;box-shadow:none;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.send-btn:hover{opacity:.9}.send-btn:active{opacity:.8}.send-btn i{font-size:1.2rem}.empty-state{color:#888;text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:2rem;display:flex}.empty-state i{color:#ddd;margin-bottom:1rem;font-size:4rem}.empty-state p{font-size:1.1rem}.math-page-shell{gap:1.5rem;padding:1.25rem 0 2rem;display:grid}.math-page-hero,.math-page-section,.math-panel{border:4px solid #1a1a1a;border-radius:20px;box-shadow:6px 6px #1a1a1a}.math-page-hero{background:linear-gradient(135deg,rgba(255,248,231,.98) 0%,rgba(237,247,255,.98) 52%,rgba(236,252,244,.98) 100%);padding:clamp(1.25rem,2vw,2rem);position:relative;overflow:hidden}.math-page-hero:after{content:"∑";color:rgba(26,26,26,.08);pointer-events:none;font-size:clamp(5rem,14vw,10rem);font-weight:900;position:absolute;top:-.5rem;right:1rem}.math-hero-grid{z-index:1;grid-template-columns:minmax(0,1.4fr) minmax(280px,.9fr);align-items:start;gap:1.25rem;display:grid;position:relative}.math-hero-copy{gap:1rem;display:grid}.math-kicker{letter-spacing:.08em;background:#fff;border:4px solid #1a1a1a;border-radius:16px;align-items:center;gap:.45rem;width:fit-content;padding:.35rem .75rem;font-size:.8rem;font-weight:800;display:inline-flex;box-shadow:4px 4px #1a1a1a}.math-title{color:#111;margin:0;font-family:"M PLUS Rounded 1c",sans-serif;font-size:clamp(2rem,4vw,3.45rem);font-weight:900;line-height:1.1}.math-subtitle{color:#2f3640;max-width:58rem;margin:0;font-size:1rem;line-height:1.8}.math-hero-actions{flex-wrap:wrap;gap:.75rem;display:flex}.math-link-btn{color:#1a1a1a;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:#fff;border:4px solid #1a1a1a;border-radius:16px;justify-content:center;align-items:center;gap:.4rem;padding:.85rem 1.5rem;font-weight:900;text-decoration:none;transition:all .3s;display:inline-flex;box-shadow:4px 4px #1a1a1a}.math-link-btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #1a1a1a}.math-link-btn--primary{background:var(--neo-primary);color:#fff}.math-hero-note{background:rgba(255,255,255,.8);border:4px solid #1a1a1a;border-radius:16px;gap:.75rem;padding:1rem;display:grid;box-shadow:4px 4px #1a1a1a}.math-hero-note h2,.math-section-header h2{color:#111;margin:0;font-size:1.08rem;font-weight:900}.math-hero-note p,.math-section-header p{color:#4b5563;margin:0;line-height:1.7}.math-step-list{gap:.75rem;display:grid}.math-step-item{background:#fff;border:3px solid #1a1a1a;border-radius:16px;gap:.25rem;padding:.85rem .95rem;display:grid;box-shadow:4px 4px #1a1a1a}.math-step-badge{color:#fff;background:#111;border-radius:999px;justify-content:center;align-items:center;width:fit-content;min-width:2rem;padding:.18rem .6rem;font-size:.78rem;font-weight:800;display:inline-flex}.math-step-item strong{font-size:.98rem}.math-step-item span{color:#4b5563;line-height:1.6}.math-page-section{background:rgba(255,255,255,.92);padding:1.25rem}.math-section-header{gap:.35rem;margin-bottom:1rem;display:grid}.math-filter-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem;display:grid}.math-filter-field{gap:.4rem;display:grid}.math-filter-field label{color:#1f2937;font-size:.88rem;font-weight:800}.math-filter-field small{color:#6b7280;line-height:1.5}.math-filter-input,.math-filter-select{color:#1a1a1a;background:#fff;border:4px solid #1a1a1a;border-radius:12px;width:100%;min-height:46px;padding:.75rem .9rem}.math-filter-toggle{color:#1f2937;align-items:center;gap:.55rem;padding-top:1.5rem;font-weight:700;display:flex}.math-filter-toggle input{width:18px;height:18px}.math-problem-grid{grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1rem;display:grid}.math-problem-link{color:inherit;text-decoration:none;display:block}.math-problem-card{background:#fff;border:4px solid #1a1a1a;border-radius:20px;grid-template-columns:140px minmax(0,1fr);gap:1rem;min-height:100%;padding:1rem;transition:all .3s;display:grid;box-shadow:6px 6px #1a1a1a}.math-problem-card:hover{transform:translate(-3px,-3px);box-shadow:9px 9px #1a1a1a}.math-problem-card__media{background:#f8fafc;border:4px solid #1a1a1a;border-radius:16px;min-height:118px;overflow:hidden}.math-problem-card__media img{object-fit:cover;width:100%;height:100%;display:block}.math-problem-card__placeholder{color:#6b7280;place-items:center;width:100%;height:100%;font-weight:700;display:grid}.math-problem-card__body{gap:.75rem;min-width:0;display:grid}.math-problem-card__badges{flex-wrap:wrap;gap:.45rem;display:flex}.math-badge{letter-spacing:.01em;border:2px solid #1a1a1a;border-radius:8px;align-items:center;gap:.3rem;width:fit-content;padding:.22rem .65rem;font-size:.78rem;font-weight:900;display:inline-flex}.math-badge--past{color:#1d4ed8;background:#dbeafe}.math-badge--upload{color:#166534;background:#dcfce7}.math-badge--easy{color:#3f6212;background:#ecfccb}.math-badge--medium{color:#c2410c;background:#ffedd5}.math-badge--hard{color:#991b1b;background:#fee2e2}.math-badge--neutral{color:#374151;background:#f3f4f6}.math-badge--progress{color:#1d4ed8;background:#dbeafe}.math-badge--completed{color:#166534;background:#dcfce7}.math-badge--not-started{color:#374151;background:#f3f4f6}.math-problem-card__title{color:#111;margin:0;font-size:1.05rem;font-weight:900;line-height:1.35}.math-problem-card__text{color:#374151;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;line-height:1.7;display:-webkit-box;overflow:hidden}.math-problem-card__meta{gap:.4rem;display:grid}.math-problem-card__meta-row{gap:.1rem;display:grid}.math-problem-card__meta-row dt{color:#6b7280;font-size:.78rem;font-weight:800}.math-problem-card__meta-row dd{color:#111;margin:0;line-height:1.5}.math-problem-card__footer{gap:.75rem;display:grid}.math-problem-card__hint{color:#6b7280;font-size:.86rem;font-weight:700}.math-problem-card__progress{flex-wrap:wrap;align-items:center;gap:.45rem .6rem;display:flex}.math-problem-card__actions{flex-wrap:wrap;gap:.65rem;display:flex}.math-problem-card__ghost-link{color:#1a1a1a;background:#fff;border:4px solid #1a1a1a;border-radius:8px;justify-content:center;align-items:center;padding:.45rem .8rem;font-weight:900;text-decoration:none;display:inline-flex;box-shadow:4px 4px #1a1a1a}.math-problem-card__cta{background:var(--neo-primary);color:#fff;border:4px solid #1a1a1a;border-radius:8px;justify-content:center;align-items:center;padding:.45rem .8rem;font-weight:900;text-decoration:none;display:inline-flex;box-shadow:4px 4px #1a1a1a}.math-empty-state{text-align:center;background:rgba(255,255,255,.75);border:4px dashed #1a1a1a;border-radius:20px;gap:.8rem;padding:1.5rem;display:grid}.math-empty-state strong{font-size:1.05rem}.math-empty-state p{color:#4b5563;margin:0;line-height:1.7}.math-session-layout,.math-review-layout,.math-insights-layout{gap:1.25rem;width:100%;display:grid}.math-session-shell,.math-session-panels{gap:1.25rem;display:grid}.math-session-panel-slot{min-width:0}.math-session-intro{background:linear-gradient(135deg,rgba(245,250,255,.96),rgba(255,249,239,.96));border:4px solid #1a1a1a;border-radius:20px;gap:.55rem;padding:1.1rem 1.2rem;display:grid;box-shadow:6px 6px #1a1a1a}.math-session-intro h1{margin:0;font-size:clamp(1.5rem,3vw,2.2rem);font-weight:900}.math-session-intro p{color:#4b5563;margin:0;line-height:1.7}.math-session-note{background:#fff;border:4px solid #1a1a1a;border-radius:16px;gap:.5rem;padding:1rem;display:grid;box-shadow:4px 4px #1a1a1a}.math-session-note strong{font-size:1rem}.math-session-note p{color:#4b5563;margin:0;line-height:1.7}.math-insights-action-bar,.math-insights-panel{justify-self:stretch;width:100%}.math-insights-content{grid-template-columns:minmax(0,1.35fr) minmax(320px,.9fr);align-items:start;gap:1.25rem;display:grid}.math-insights-main,.math-insights-side{min-width:0}.math-insights-side{position:sticky;top:1rem}.math-insights-side .math-panel{width:100%}.math-insights-panel{background:#fff}.math-insights-panel__header,.math-insights-panel__body{padding:1.1rem}.math-insights-panel__heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.math-insights-panel__title,.math-insights-stats__title{margin:0;font-weight:900}.math-insights-panel__subtitle{color:#555;margin:.25rem 0 0;line-height:1.7}.math-insights-panel__body{gap:1.25rem;display:grid}.math-insights-overview p{color:#444;margin-top:.35rem}.math-insights-summary-grid{align-items:start;gap:1.25rem;margin-bottom:.5rem;display:grid}.math-insights-summary-grid--triple{grid-template-columns:repeat(3,minmax(0,1fr))}.math-insights-summary-grid--triple .math-session-note{min-height:100%}.math-insights-summary-grid--pair{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1.25rem}.math-insights-summary-grid__list{gap:.35rem;margin:0;padding-left:1.1rem;font-size:.92rem;line-height:1.6;display:grid}.math-insights-summary-grid__list li{margin:0}.math-insights-summary-grid__empty{color:#666;margin:0;line-height:1.7}.math-insights-stats{gap:.75rem;margin-top:1rem;display:grid}.math-insights-stats__empty{color:#666}.math-insights-stats__card{gap:.85rem}.math-insights-stats__table-wrap{overflow-x:auto}.math-insights-stats__table{border-collapse:collapse;width:100%;min-width:620px;font-size:.9rem}.math-insights-stats__table th,.math-insights-stats__table td{border-bottom:2px solid #e5e5e5;padding:.6rem .5rem}.math-insights-stats__table th{text-align:left;white-space:nowrap;border-bottom:3px solid #1a1a1a;font-weight:900}.math-insights-stats__label{vertical-align:top;font-weight:700}.math-insights-stats__num{text-align:right;white-space:nowrap}@media (width<=1100px){.math-insights-summary-grid--triple,.math-insights-summary-grid--pair{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.math-insights-layout{width:100%}.math-insights-content{grid-template-columns:1fr}.math-insights-side{position:static;top:auto}.math-insights-action-bar,.math-insights-panel{justify-self:stretch;width:100%}.math-insights-summary-grid--triple,.math-insights-summary-grid--pair{grid-template-columns:1fr}}.math-session-actions{flex-wrap:wrap;gap:.75rem;display:flex}.math-session-problem__content{gap:.85rem;display:grid}.math-session-problem__statement{white-space:pre-wrap;font-size:.95rem;line-height:1.7}.math-session-problem__plan{border-top:2px solid rgba(26,26,26,.14);min-width:0;padding-top:.2rem}.math-session-plan__stack{gap:.6rem;display:grid}.math-session-plan__summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.math-session-plan__summary-main{gap:.15rem;display:grid}.math-session-plan__route-label{letter-spacing:.08em;color:#0f766e;margin:0;font-size:.72rem;font-weight:900}.math-session-plan__route-name{color:#111;font-size:.95rem;font-weight:700}.math-session-plan__progress-chip{background:#ecfeff;border:2px solid #1a1a1a;border-radius:999px;justify-content:center;align-items:center;min-height:1.9rem;padding:.25rem .7rem;font-size:.78rem;font-weight:900;display:inline-flex;box-shadow:2px 2px #1a1a1a}.math-session-plan__route-switches{flex-wrap:wrap;gap:.5rem;display:flex}.math-session-plan__route-switch{color:#1f2937;cursor:pointer;background:#fff;border:2px solid #1a1a1a;border-radius:999px;min-height:2.1rem;padding:.35rem .8rem;font-size:.84rem;font-weight:600;line-height:1.4;transition:transform .12s,box-shadow .12s,background .12s;box-shadow:2px 2px #1a1a1a}.math-session-plan__route-switch:hover{transform:translate(-1px,-1px);box-shadow:3px 3px #1a1a1a}.math-session-plan__route-switch--active{background:#ecfeff}.math-session-plan__route-switch--selected{background:#fff7ed}.math-session-plan__note{color:#4b5563;background:#fff9db;border:2px solid #1a1a1a;border-radius:12px;margin:0;padding:.55rem .7rem;font-size:.86rem;line-height:1.55;box-shadow:2px 2px #1a1a1a}.math-session-plan__steps{gap:.45rem;display:grid}.math-session-plan__step{border:2px solid #1a1a1a;border-radius:14px;min-width:0;padding:0;overflow:hidden;box-shadow:2px 2px #1a1a1a}.math-session-plan__step--revealed{background:#fff}.math-session-plan__step--current{background:linear-gradient(#fff7ed 0%,#fff 100%)}.math-session-plan__step--locked{background:#eef2ff}.math-session-plan__step-summary{justify-content:space-between;align-items:center;gap:.55rem;min-width:0;padding:.55rem .7rem;list-style:none;display:flex}.math-session-plan__step-summary::-webkit-details-marker{display:none}.math-session-plan__step-index,.math-session-plan__step-state{border-radius:999px;flex-shrink:0;align-items:center;min-height:1.55rem;padding:.1rem .5rem;font-size:.71rem;font-weight:900;display:inline-flex}.math-session-plan__step-index{color:#fff;background:#111827}.math-session-plan__step-state{color:#1f2937;background:#fff;border:1px solid #1a1a1a}.math-session-plan__step-title{text-overflow:ellipsis;white-space:nowrap;color:#111;flex:auto;min-width:0;margin:0;font-size:.92rem;font-weight:400;overflow:hidden}.math-session-plan__step-detail{white-space:pre-wrap;color:#4b5563;border-top:1px solid rgba(26,26,26,.12);margin:0;padding:0 .7rem .7rem;font-size:.88rem;line-height:1.65}.math-session-plan__placeholder{color:#6b7280}.math-session-plan__empty{background:#fff;border:2px dashed #1a1a1a;border-radius:14px;gap:.35rem;padding:.85rem .9rem;display:grid}.math-session-plan__empty p{color:#4b5563;margin:0;font-size:.88rem;line-height:1.55}.neo-card-body.math-session-chat{padding:0}.math-session-chat{gap:1rem;min-width:0;display:grid}.math-session-chat__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.math-session-chat__header .section-label{margin:0}.math-session-chat__header-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.math-session-chat__header-btn{color:#1a1a1a;cursor:pointer;background:#fff;border:3px solid #1a1a1a;border-radius:999px;min-height:42px;padding:.55rem 1rem;font-weight:900;transition:transform .12s,box-shadow .12s,background .12s,color .12s;box-shadow:3px 3px #1a1a1a}.math-session-chat__header-btn:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:4px 4px #1a1a1a}.math-session-chat__header-btn:disabled{cursor:not-allowed;opacity:.58;transform:none;box-shadow:3px 3px #1a1a1a}.math-session-chat__header-btn--clear{color:#c2410c;background:#fff7ed}.math-session-chat__header-btn--complete{color:#166534;background:#ecfdf3}.math-session-chat__timeline{flex-direction:column;gap:.9rem;max-height:420px;padding:.35rem .5rem;display:flex;overflow-y:auto}.math-session-chat__empty{color:#4b5563;background:rgba(255,255,255,.82);border:3px dashed #1a1a1a;border-radius:16px;padding:1rem;line-height:1.7}.math-session-chat__starter{align-self:flex-start}.math-session-chat__bubble--starter{background:linear-gradient(#fff 0%,#f7f5ff 100%);border-color:#1a1a1a;position:relative}.math-session-chat__bubble--starter:after{content:"";border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid #1a1a1a;width:0;height:0;position:absolute;bottom:18px;left:-10px}.math-session-chat__bubble--starter:before{content:"";z-index:1;border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid #f7f5ff;width:0;height:0;position:absolute;bottom:21px;left:-7px}.math-session-chat__message{gap:.35rem;width:100%;max-width:100%;display:grid}.math-session-chat__message-body{align-items:flex-end;gap:.65rem;min-width:0;display:flex}.math-session-chat__content{gap:.35rem;width:fit-content;min-width:0;max-width:min(90%,60rem);display:grid}.math-session-chat__message--assistant{align-self:flex-start}.math-session-chat__message--assistant .math-session-chat__message-body{flex-direction:column;align-items:flex-start;gap:.45rem}.math-session-chat__message--assistant .math-session-chat__content{max-width:min(90%,60rem)}.math-session-chat__assistant-head{align-items:center;gap:.5rem;min-width:0;display:flex}.math-session-chat__message--pending .math-session-chat__bubble{animation:1.1s ease-in-out infinite alternate math-session-chat-pulse}.math-session-chat__message--assistant .math-session-chat__speaker{color:#6b46c1}.math-session-chat__message--assistant .math-session-chat__meta{justify-content:flex-start}.math-session-chat__message--assistant .math-session-chat__bubble{color:#1f2937;background:linear-gradient(#fff 0%,#f8f7ff 100%);border:3px solid #1a1a1a;border-radius:18px 18px 18px 4px;box-shadow:4px 4px #1a1a1a}.math-session-chat__message--user{align-self:flex-end;margin-left:auto}.math-session-chat__message--user .math-session-chat__message-body{justify-content:flex-end}.math-session-chat__message--user .math-session-chat__speaker{color:#1d4ed8}.math-session-chat__message--user .math-session-chat__meta{justify-content:flex-end}.math-session-chat__message--user .math-session-chat__bubble{color:#fff;background:linear-gradient(#5b8dee 0%,#4f7ddb 100%);border:3px solid #1a1a1a;border-radius:18px 18px 4px;box-shadow:4px 4px rgba(30,64,175,.28)}.math-session-chat__meta{align-items:center;gap:.5rem;min-width:0;padding:0 .2rem;display:flex}.math-session-chat__speaker{font-size:.92rem;font-weight:900}.math-session-chat__phase{color:#6b7280;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.76rem;font-weight:700;overflow:hidden}.math-session-chat__avatar{object-fit:cover;background:#fff;border:3px solid #1a1a1a;border-radius:12px;flex:0 0 36px;align-self:flex-start;width:36px;height:36px;box-shadow:3px 3px #1a1a1a}.math-session-chat__bubble{word-break:break-word;min-width:0;padding:.9rem 1rem;line-height:1.7}.math-session-chat__bubble--pending{background:linear-gradient(#fffef7 0%,#f5f3ff 100%)}.math-rich-text{white-space:pre-wrap;line-height:1.7}.math-rich-text .katex{font-size:1.02em}.math-rich-text .katex-display{margin:.45rem 0;overflow:auto hidden}.math-session-chat__message--user .math-rich-text,.math-session-chat__message--user .math-rich-text .katex{color:inherit}.math-chat-diagram{background:rgba(255,255,255,.9);border:2px solid rgba(26,26,26,.14);border-radius:14px;margin-top:.75rem;padding:.75rem}.math-chat-diagram svg{width:100%;height:auto;max-height:220px;display:block}.math-chat-diagram text{fill:#1f2937;font-family:"M PLUS Rounded 1c",sans-serif;font-size:13px;font-weight:700}.math-session-chat__choices{flex-wrap:wrap;gap:.6rem;margin-top:.45rem;display:flex}.math-session-chat__choice-btn{color:#1f2937;text-align:left;cursor:pointer;background:#fff6d6;border:3px solid #1a1a1a;border-radius:16px;max-width:min(100%,30rem);padding:.8rem 1rem;font-size:.95rem;font-weight:800;line-height:1.5;transition:transform .12s,box-shadow .12s,background .12s;box-shadow:3px 3px #1a1a1a}.math-session-chat__choice-btn .math-rich-text{white-space:normal}.math-session-chat__choice-btn:hover{background:#fff0b5;transform:translate(-1px,-1px);box-shadow:4px 4px #1a1a1a}.math-session-chat__choice-btn:disabled{cursor:not-allowed;opacity:.7;transform:none}.math-session-composer{background:linear-gradient(#fffdfa 0%,#fff 100%);border:3px solid #1a1a1a;border-radius:18px;min-width:0;padding:.95rem;box-shadow:4px 4px #1a1a1a}.math-session-composer__layout{grid-template-columns:minmax(0,1fr) clamp(76px,10%,92px);align-items:stretch;gap:.75rem;display:grid}.math-session-composer__input{box-sizing:border-box;resize:vertical;background:#fff;width:100%;min-width:0;max-width:100%;min-height:132px;font-family:inherit;font-size:1rem;line-height:1.7;display:block}.math-session-composer__actions{grid-template-rows:repeat(2,minmax(0,1fr));gap:.6rem;min-width:0;min-height:132px;display:grid}.math-session-composer__icon-btn{color:#1a1a1a;cursor:pointer;background:#fff;border:3px solid #1a1a1a;border-radius:18px;justify-content:center;align-items:center;width:100%;min-height:0;font-size:1.2rem;transition:transform .12s,box-shadow .12s,background .12s,color .12s;display:inline-flex;position:relative;box-shadow:4px 4px #1a1a1a}.math-session-composer__icon-btn:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:5px 5px #1a1a1a}.math-session-composer__icon-btn:focus-visible:not(:disabled){transform:translate(-1px,-1px);box-shadow:5px 5px #1a1a1a}.math-session-composer__icon-btn:focus-visible{outline:none}.math-session-composer__icon-btn:disabled{cursor:not-allowed;opacity:.55;transform:none;box-shadow:4px 4px #1a1a1a}.math-session-composer__icon-btn--send{color:#1d4ed8;background:linear-gradient(#eff6ff 0%,#dbeafe 100%)}.math-session-composer__icon-btn--hint{color:#a16207;background:linear-gradient(#fff7d6 0%,#fef08a 100%)}.math-session-composer__icon-btn--stop{color:#b91c1c;background:linear-gradient(#fee2e2 0%,#fecaca 100%)}.math-session-composer__icon-btn:after{content:attr(data-tooltip);color:#fff;white-space:nowrap;opacity:0;pointer-events:none;z-index:4;background:#1a1a1a;border:2px solid #1a1a1a;border-radius:999px;padding:.28rem .55rem;font-size:.76rem;font-weight:800;line-height:1;transition:opacity 80ms,transform 80ms;position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%,4px)}.math-session-composer__icon-btn:hover:after{opacity:1;transform:translate(-50%)}.math-session-composer__icon-btn:focus-visible:after{opacity:1;transform:translate(-50%)}.math-session-chat__status{text-align:center;border:3px solid #1a1a1a;border-radius:16px;align-self:center;max-width:min(100%,34rem);padding:.75rem 1rem;font-weight:800;line-height:1.65;box-shadow:3px 3px #1a1a1a}.math-session-chat__status--info{color:#166534;background:#eefbf6}.math-session-chat__status--error{color:#b91c1c;background:#fef2f2}@keyframes math-session-chat-pulse{0%{transform:translateY(0);box-shadow:4px 4px #1a1a1a}to{transform:translateY(-1px);box-shadow:5px 5px #1a1a1a}}@media (width>=969px){.math-session-panels{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:start}}.math-portal-shell{gap:1.5rem;padding:.5rem 0 2rem;display:grid}.math-portal-hero{background:linear-gradient(135deg,rgba(255,248,231,.98) 0%,rgba(239,248,255,.98) 46%,rgba(242,255,246,.98) 100%);border:4px solid #1a1a1a;border-radius:20px;gap:.9rem;padding:1.5rem;display:grid;position:relative;overflow:hidden;box-shadow:6px 6px #1a1a1a}.math-portal-topbar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.math-portal-hero .btn-ultra{padding:.75rem 1.5rem;font-size:.95rem}.math-portal-content{display:block}.math-portal-grid{grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);align-items:start;gap:1rem;width:100%;max-width:1240px;margin:0 auto;display:grid}.math-portal-side-column{align-content:start;gap:1rem;display:grid}.math-portal-card{background:#fff;border:4px solid #1a1a1a;border-radius:20px;flex-direction:column;gap:.75rem;padding:1.5rem;transition:all .3s;display:flex;position:relative;overflow:hidden;box-shadow:6px 6px #1a1a1a}.math-portal-card:hover{transform:translate(-3px,-3px);box-shadow:9px 9px #1a1a1a}.math-portal-card--wide{grid-column:span 2}.math-portal-card--selector{gap:1rem}.math-portal-card--action{color:#fff;background:#5b8dee}.math-portal-card--utility{background:#fff3c4}.math-portal-card--utility .math-section-header h2{color:#1a1a1a}.math-portal-card--action .math-section-header h2{color:#fff}.math-portal-card--action .math-summary-row{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.3)}.math-portal-card--action .math-summary-row span,.math-portal-card--action .math-summary-row strong{color:#fff}.math-portal-card .math-section-header{z-index:1;margin-bottom:0;position:relative}.math-portal-card .math-section-header h2{text-transform:uppercase;font-size:1.15rem;font-weight:900}.math-portal-utility-copy{z-index:1;color:#4f3d05;margin:0;font-size:.92rem;line-height:1.6;position:relative}.math-portal-card--selector .math-chip-grid{flex-wrap:wrap;gap:.5rem;display:flex}.math-portal-card--selector .math-choice-subgroup{margin-bottom:0}.math-portal-bg-icon{opacity:.08;pointer-events:none;font-size:8rem;font-weight:900;position:absolute;bottom:-10px;right:-10px;transform:rotate(-15deg)}.math-choice-subgroup{gap:.5rem;margin-bottom:.7rem;display:grid}.math-common-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.math-common-actions .math-link-btn{letter-spacing:0;text-transform:none;border-radius:12px;padding:.6rem 1rem;font-size:.92rem;box-shadow:4px 4px #1a1a1a}.math-common-actions .math-link-btn:hover{box-shadow:6px 6px #1a1a1a}.math-choice-subgroup:last-child{margin-bottom:0}.math-choice-subgroup__title{color:#111;justify-content:space-between;align-items:center;gap:.75rem;font-weight:900;display:flex}.math-problem-option-groups{gap:.8rem;display:grid}.math-problem-option-group{gap:.4rem;display:grid}.math-problem-option-group__title{color:#111;font-size:.88rem;font-weight:900}.math-problem-option-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.45rem;display:grid}.math-choice-chip--problem-option{text-align:left;border-width:3px;border-radius:14px;justify-content:flex-start;align-items:center;width:100%;min-height:0;padding:.58rem .72rem;box-shadow:3px 3px #1a1a1a}.math-choice-chip--problem-option:hover{box-shadow:5px 5px #1a1a1a}.math-choice-chip--inactive{opacity:.58}.math-choice-chip--problem-option.math-choice-chip--progress:not(.math-choice-chip--selected){border-color:#2563eb}.math-choice-chip--problem-option.math-choice-chip--completed:not(.math-choice-chip--selected){border-color:#15803d}.math-problem-option-chip__title{font-size:.88rem;font-weight:900;line-height:1.35}.math-problem-option-chip__row{justify-content:space-between;align-items:flex-start;gap:.6rem;width:100%;display:flex}.math-problem-option-chip__badge{border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-width:2.15rem;min-height:1.55rem;padding:.08rem .5rem;font-size:.72rem;font-weight:900;line-height:1;display:inline-flex}.math-problem-option-chip__badge--new{color:#0369a1;background:#e0f2fe}.math-problem-option-chip__badge--progress{color:#1d4ed8;background:#dbeafe}.math-problem-option-chip__badge--completed{color:#b45309;background:#fef3c7}.math-choice-chip--selected .math-problem-option-chip__badge{color:#fff;background:rgba(255,255,255,.16)}.math-clear-link{color:#0f766e;cursor:pointer;background:0 0;border:0;padding:0;font-weight:800}.math-chip-grid{flex-wrap:wrap;gap:.5rem;display:flex}.math-chip-grid__placeholder{color:#4b5563;background:rgba(255,255,255,.7);border:3px dashed #1a1a1a;border-radius:16px;padding:.9rem 1rem;font-weight:700}.math-choice-chip{color:#1a1a1a;cursor:pointer;background:#fff;border:4px solid #1a1a1a;border-radius:16px;justify-content:space-between;align-items:center;gap:.65rem;min-height:46px;padding:.78rem 1rem;font-weight:900;transition:all .3s;display:inline-flex;box-shadow:4px 4px #1a1a1a}.math-choice-chip:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #1a1a1a}.math-choice-chip--selected{color:#fff;background:#111}.math-choice-chip--wide{min-width:104px}.math-choice-chip__count{background:rgba(17,17,17,.08);border-radius:999px;justify-content:center;align-items:center;min-width:1.75rem;padding:.1rem .5rem;font-size:.76rem;font-weight:900;display:inline-flex}.math-choice-chip--selected .math-choice-chip__count{background:rgba(255,255,255,.16)}.math-summary-grid{gap:.4rem;display:grid}.math-summary-row{background:#fff;border:3px solid #1a1a1a;border-radius:12px;justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem .75rem;display:flex}.math-summary-row span{color:#4b5563;font-weight:700}.math-summary-row strong{color:#111;font-weight:900}.math-summary-actions{gap:.5rem;display:grid}.math-status-banner{color:#1a1a1a;background:linear-gradient(135deg,#48c9b0 0%,#16a085 100%);border:3px solid #1a1a1a;border-radius:12px;padding:.7rem .9rem;font-weight:900;line-height:1.6;box-shadow:4px 4px #1a1a1a}.math-upload-cta{color:#1a1a1a;text-align:left;cursor:pointer;background:linear-gradient(135deg,#f39c12 0%,#e67e22 100%);border:4px dashed #1a1a1a;border-radius:16px;gap:.25rem;padding:.8rem .9rem;transition:all .3s;display:grid;box-shadow:4px 4px #1a1a1a}.math-upload-cta:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #1a1a1a}.math-upload-cta strong{font-size:1rem}.math-upload-cta span{color:#1a1a1a;line-height:1.6}.math-portal-insight-link{color:#fff;text-transform:uppercase;letter-spacing:.05em;background:#1a1a1a;border:4px solid #1a1a1a;border-radius:16px;justify-content:space-between;align-items:center;gap:.65rem;padding:.78rem 1.2rem;font-weight:900;text-decoration:none;transition:all .3s;display:inline-flex;box-shadow:4px 4px rgba(26,26,26,.5)}.math-portal-insight-link:hover{color:#fff;transform:translate(-2px,-2px);box-shadow:6px 6px rgba(26,26,26,.5)}.math-modal-overlay{z-index:2200;backdrop-filter:blur(6px);background:rgba(15,23,42,.55);place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.math-modal-panel{background:#fffdf7;border:4px solid #1a1a1a;border-radius:20px;width:min(100%,980px);max-height:92vh;padding:1.5rem;overflow:auto;box-shadow:10px 10px #1a1a1a}.math-modal-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.math-modal-header h2{margin:.25rem 0 0;font-size:1.4rem;font-weight:900}.math-modal-close{color:#1a1a1a;cursor:pointer;background:#fff;border:4px solid #1a1a1a;border-radius:12px;padding:.7rem .95rem;font-weight:900;transition:all .2s;box-shadow:4px 4px #1a1a1a}.math-modal-close:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #1a1a1a}.math-session-clear-modal{width:min(100%,640px)}.math-session-clear-modal__body{gap:1rem;display:grid}.math-session-clear-modal__lead{color:#1f2937;background:#fff6d6;border:3px solid #1a1a1a;border-radius:16px;padding:1rem;line-height:1.8}.math-session-clear-modal__actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.math-session-clear-modal__confirm{padding:.85rem 1.3rem}.math-upload-panel{gap:1rem;display:grid}.math-admin-shell{gap:1.5rem;max-width:1440px;margin:0 auto;padding:.75rem 0 2.5rem;display:grid}.math-admin-hero{background:#fff7dc;border:4px solid #1a1a1a;border-radius:24px;gap:1.25rem;padding:clamp(1.25rem,2vw,2rem);display:grid;position:relative;overflow:hidden;box-shadow:8px 8px #1a1a1a}.math-admin-hero:after{content:"⌘";color:rgba(26,26,26,.08);pointer-events:none;font-size:clamp(4.5rem,11vw,8rem);font-weight:900;line-height:1;position:absolute;top:-.5rem;right:1.4rem}.math-admin-hero-top{z-index:1;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex;position:relative}.math-admin-heading{gap:.75rem;max-width:52rem;display:grid}.math-admin-kicker{letter-spacing:.08em;background:#fff;border:3px solid #1a1a1a;border-radius:999px;align-items:center;gap:.45rem;width:fit-content;padding:.32rem .75rem;font-size:.78rem;font-weight:900;display:inline-flex;box-shadow:4px 4px #1a1a1a}.math-admin-title{color:#111;margin:0;font-family:"M PLUS Rounded 1c",sans-serif;font-size:clamp(2rem,4vw,3rem);font-weight:900;line-height:1.08}.math-admin-description{color:#374151;margin:0;font-size:1rem;line-height:1.8}.math-admin-toolbar{z-index:1;flex-wrap:wrap;gap:.75rem;display:flex;position:relative}.math-admin-filter-bar{background:#fff;border:2px solid #1a1a1a;border-radius:18px;gap:.75rem;padding:1rem;display:grid;box-shadow:4px 4px #1a1a1a}.math-admin-filter-input{width:100%}.math-admin-filter-meta{color:#6b7280;margin:0;line-height:1.7}.math-admin-layout,.math-admin-split{gap:1.25rem;display:grid}.math-admin-layout{grid-template-columns:minmax(0,1.7fr) minmax(300px,.95fr);align-items:start}.math-admin-layout--single{grid-template-columns:minmax(0,1fr)}.math-admin-split{grid-template-columns:repeat(2,minmax(0,1fr))}.math-admin-main,.math-admin-side{gap:1.25rem;display:grid}.math-admin-panel{background:#fff;border:4px solid #1a1a1a;border-radius:22px;gap:1rem;padding:1.2rem;display:grid;box-shadow:6px 6px #1a1a1a}.math-admin-panel--soft{background:#fffaf0}.math-admin-panel--mint{background:#edfdf5}.math-admin-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.math-admin-panel-title-wrap,.math-admin-section-intro{gap:.35rem;display:grid}.math-admin-panel-title,.math-admin-section-intro h3{color:#111;margin:0;font-size:1.08rem;font-weight:900;line-height:1.4}.math-admin-panel-text,.math-admin-section-intro p{color:#4b5563;margin:0;line-height:1.7}.math-admin-inline-note{background:#fff;border:3px solid #1a1a1a;border-radius:18px;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.9rem 1rem;display:flex;box-shadow:4px 4px #1a1a1a}.math-admin-inline-note strong{color:#111}.math-admin-inline-note span{color:#4b5563}.math-admin-chip{color:#111;background:#f8fafc;border:2px solid #1a1a1a;border-radius:999px;align-items:center;gap:.35rem;width:fit-content;padding:.3rem .7rem;font-size:.8rem;font-weight:800;display:inline-flex}.math-admin-chip--accent{color:#166534;background:#dcfce7}.math-admin-chip--warn{color:#92400e;background:#fef3c7}.math-admin-form{gap:1.25rem;display:grid}.math-admin-form-section{background:rgba(255,255,255,.8);border:2px solid #1a1a1a;border-radius:18px;gap:1rem;padding:1rem;display:grid}.math-admin-field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.math-admin-field{gap:.45rem;min-width:0;display:grid}.math-admin-field--full{grid-column:1/-1}.math-admin-label{color:#111;font-size:.94rem;font-weight:900}.math-admin-help{color:#6b7280;margin:0;font-size:.85rem;line-height:1.6}.math-admin-field .input-box,.math-admin-field select.input-box,.math-admin-field textarea.input-box{color:#111;background:#fff;border:3px solid #1a1a1a;border-radius:14px;min-height:48px;margin-bottom:0;padding:.85rem .95rem}.math-admin-field textarea.input-box{resize:vertical;min-height:132px}.math-admin-field .input-box:focus,.math-admin-field select.input-box:focus,.math-admin-field textarea.input-box:focus{outline:none;box-shadow:0 0 0 4px rgba(29,78,216,.12)}.math-admin-code{background:#f8fafc;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.math-admin-checkbox{color:#111;align-items:center;gap:.6rem;font-weight:900;display:inline-flex}.math-admin-checkbox input{width:18px;height:18px}.math-admin-form-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.math-admin-submit{width:min(100%,320px)}.math-admin-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;display:grid}.math-admin-stat{background:#fff;border:3px solid #1a1a1a;border-radius:16px;gap:.25rem;padding:.9rem 1rem;display:grid;box-shadow:4px 4px #1a1a1a}.math-admin-stat span{letter-spacing:.06em;color:#6b7280;text-transform:uppercase;font-size:.76rem;font-weight:900}.math-admin-stat strong{color:#111;font-size:1.25rem;line-height:1.2}.math-admin-table--sources{min-width:980px}.math-admin-table--problems{min-width:1040px}.math-admin-table-id{color:#111;white-space:nowrap;font-weight:900}.math-admin-table-code{max-width:100%}.math-admin-table-datetime{white-space:nowrap;color:#374151}.math-admin-source-summary{gap:.25rem;display:grid}.math-admin-source-summary strong{color:#111;line-height:1.5}.math-admin-problem-summary{gap:.25rem;display:grid}.math-admin-problem-summary strong{color:#111;line-height:1.5}.math-admin-row-actions{flex-wrap:wrap;gap:.5rem;display:flex}.math-admin-row-actions .btn-ultra{white-space:nowrap}.math-admin-pagination{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.math-admin-pagination-info{gap:.5rem;display:grid}.math-admin-pagination .math-admin-toolbar{justify-content:flex-end}.math-admin-summary-list,.math-admin-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.math-admin-summary-item,.math-admin-list-item{background:#fff;border:2px solid #1a1a1a;border-radius:16px;gap:.3rem;padding:.95rem 1rem;display:grid}.math-admin-summary-item span{letter-spacing:.05em;color:#6b7280;text-transform:uppercase;font-size:.78rem;font-weight:900}.math-admin-summary-item strong,.math-admin-list-item strong{color:#111;line-height:1.5}.math-admin-list-item--interactive{transition:transform .18s,box-shadow .18s,background .18s}.math-admin-list-item--interactive:hover{transform:translate(-2px,-2px);box-shadow:4px 4px #1a1a1a}.math-admin-list-item--selected{background:#fff7dc;border-width:3px}.math-admin-list-link{color:inherit;gap:.35rem;text-decoration:none;display:grid}.math-admin-list-link:hover{color:inherit}.math-admin-list-link:focus-visible{color:inherit}.math-admin-list-item-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.math-admin-meta-line{color:#6b7280;word-break:break-all;margin:0;font-size:.84rem;line-height:1.6}.math-admin-table-wrap{background:#fff;border:2px solid #1a1a1a;border-radius:18px;overflow:auto}.math-admin-table{border-collapse:collapse;width:100%;min-width:640px}.math-admin-table th,.math-admin-table td{text-align:left;vertical-align:top;border-bottom:1px solid #d1d5db;padding:.9rem .95rem}.math-admin-table thead th{color:#374151;letter-spacing:.06em;text-transform:uppercase;background:#f8fafc;font-size:.78rem;font-weight:900}.math-admin-table tbody tr:last-child td{border-bottom:none}.math-admin-empty{background:rgba(255,255,255,.72);border:2px dashed #1a1a1a;border-radius:16px;gap:.35rem;padding:1rem;display:grid}.math-admin-empty strong{color:#111}.math-admin-empty p{color:#6b7280;margin:0;line-height:1.7}@media (width<=900px){.math-hero-grid,.math-problem-card,.math-portal-grid,.math-portal-side-column{grid-template-columns:1fr}.math-portal-card--wide,.math-portal-card--selector{grid-column:span 1}.math-admin-layout,.math-admin-split,.math-admin-field-grid{grid-template-columns:1fr}}@media (width<=640px){.math-page-shell{padding-top:.75rem}.math-page-hero,.math-page-section{border-radius:16px}.math-problem-card__footer{align-items:flex-start}.math-portal-topbar,.math-choice-subgroup__title,.math-summary-row,.math-modal-header{flex-direction:column;align-items:flex-start}.math-admin-shell{gap:1rem;padding-top:.25rem}.math-admin-hero,.math-admin-panel{border-radius:18px}.math-admin-hero-top{align-items:stretch}.math-admin-toolbar{width:100%}.math-admin-toolbar .btn-ultra{justify-content:center;width:100%}}.dashboard-grid.typing-mode{grid-template-columns:1fr!important;display:block!important}.dashboard-grid.typing-mode .neo-sidebar{display:none!important}