:root{--jtip-red:#e60012;--jtip-red-dark:#c90010;--jtip-navy:#082859;--jtip-blue:#1264d8;--bg:#f6f8fb;--surface:#fff;--text-primary:#10213d;--text-muted:#667085;--border:#e5eaf0;--success:#16a565;--warning:#f79009;--danger:#e60012;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow:0 8px 26px rgba(16,33,61,.08)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"Google Sans","Noto Sans Thai",sans-serif;color:var(--text-primary);background:var(--bg)}body{font-size:15px}a{text-decoration:none;color:inherit}.jp,.vocab-expression{font-family:"M PLUS Rounded 1c",sans-serif}.muted{color:var(--text-muted)}.text-red{color:var(--jtip-red)}.text-green{color:var(--success)}.text-blue{color:var(--jtip-blue)}
.brand{display:flex;align-items:center;gap:12px}.brand img{width:68px;height:58px;object-fit:contain}.brand-name{font-weight:800;font-size:28px;color:var(--jtip-red);line-height:1}.brand-copy strong{font-size:14px;display:block;color:var(--jtip-navy)}.brand-copy small{font-size:10px;color:var(--text-muted)}
.jtip-card{background:rgba(255,255,255,.96);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.btn-jtip{border:0;border-radius:10px;padding:12px 20px;font-weight:700;transition:.2s}.btn-jtip:hover{transform:translateY(-1px)}.btn-primary-jtip{background:linear-gradient(135deg,var(--jtip-red),#f01828);color:white}.btn-blue{background:var(--jtip-blue);color:#fff}.btn-outline-jtip{border:1px solid #b8c4d5;background:#fff;color:var(--jtip-navy)}.pill{padding:5px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid}.pill.blue{color:#0b63d7;background:#eef6ff;border-color:#bad7ff}.pill.green{color:#09894f;background:#eefbf4;border-color:#b8ebcf}.pill.orange{color:#e76f00;background:#fff8ee;border-color:#ffd9b1}.pill.red{color:#d71727;background:#fff1f2;border-color:#ffc4ca}.pill.purple{color:#7747d8;background:#f5efff;border-color:#d9c6ff}
.teacher-shell{min-height:100vh}.teacher-sidebar{width:228px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--border);padding:25px 14px 16px;z-index:20;display:flex;flex-direction:column}.teacher-sidebar .brand{padding:0 8px 22px}.teacher-sidebar nav{display:grid;gap:6px}.teacher-sidebar nav a{display:flex;gap:14px;align-items:center;padding:12px 13px;border-radius:9px;color:#31476d;font-weight:600}.teacher-sidebar nav a i{font-size:20px}.teacher-sidebar nav a.active{background:linear-gradient(135deg,var(--jtip-red),#ee1727);color:#fff;box-shadow:0 6px 14px rgba(230,0,18,.22)}.teacher-sidebar .logout{margin-top:auto;border:1px solid var(--border)}.teacher-main{margin-left:228px;min-height:100vh}.teacher-hero{min-height:210px;padding:22px 30px 60px;position:relative;overflow:hidden;background:linear-gradient(90deg,#fff 20%,rgba(255,255,255,.75)),radial-gradient(circle at 75% 10%,#dce8fa 0 12%,transparent 13%),linear-gradient(160deg,#fff,#f5f8fd)}.teacher-hero:after,.student-hero:after{content:"富士";position:absolute;right:5%;bottom:-42px;font-family:"M PLUS Rounded 1c";font-size:190px;font-weight:700;color:#dfe9f7;opacity:.55;transform:skew(-8deg);pointer-events:none}.topbar{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:2}.teacher-title{position:relative;z-index:2;margin-top:35px}.teacher-title h1{font-size:28px;margin:3px 0}.profile-chip{display:flex;align-items:center;gap:10px}.avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#d7e7fb,#ffe8e8);border:3px solid #fff;box-shadow:0 0 0 1px #ccd7e6;font-size:23px}.teacher-content{padding:0 30px 30px;margin-top:-34px;position:relative;z-index:3}.page-grid{display:grid;gap:16px}.kpi-grid{grid-template-columns:repeat(4,1fr)}.kpi{padding:18px;display:flex;gap:14px;align-items:center}.icon-orb{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:22px;background:linear-gradient(145deg,var(--jtip-blue),#0b8cfa);box-shadow:0 6px 14px rgba(18,100,216,.25)}.icon-orb.green{background:linear-gradient(145deg,#44ca79,#079651)}.icon-orb.orange{background:linear-gradient(145deg,#ffb547,#f47a08)}.icon-orb.purple{background:linear-gradient(145deg,#a16ae8,#6c37ce)}.kpi strong{font-size:27px;display:block}.section-card{padding:18px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.section-head h2,.section-head h3{font-size:17px;margin:0}.chart-grid{grid-template-columns:1fr 1fr}.bottom-grid{grid-template-columns:1.05fr 1fr 1fr}.chart-box{height:240px}.filter-bar{padding:16px;display:flex;gap:12px;align-items:end;flex-wrap:wrap}.form-control,.form-select{border-color:#d9e1ec;border-radius:9px;min-height:43px}.table-card{overflow:hidden}.custom-table{width:100%;border-collapse:collapse}.custom-table th{background:#f8fafc;font-size:12px;color:#50627f;text-align:left;padding:12px;border-bottom:1px solid var(--border)}.custom-table td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.student-cell{display:flex;align-items:center;gap:9px}.mini-avatar{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#e8f0fc}.actions{display:flex;gap:6px}.icon-btn{width:34px;height:34px;border:1px solid var(--border);background:#fff;border-radius:8px;display:grid;place-items:center;color:#31476d}.split-admin{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px}.stack{display:grid;gap:14px}.stat-mini{padding:14px;display:flex;align-items:center;justify-content:space-between}.mode-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.mode-card{padding:20px;text-align:center;min-height:240px;cursor:pointer}.mode-card.selected{border:2px solid var(--jtip-red)}.mode-card .icon-orb{margin:0 auto 12px}.builder-grid{display:grid;grid-template-columns:280px 1fr 320px;gap:15px}.bank-list{max-height:560px;overflow:auto}.bank-item{padding:11px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.student-shell{max-width:520px;margin:auto;min-height:100vh;background:#fff;position:relative;padding-bottom:86px;box-shadow:0 0 40px rgba(16,33,61,.08)}.student-hero{min-height:335px;position:relative;overflow:hidden;padding:24px 24px 20px;background:linear-gradient(180deg,#fff 40%,#f4f8fd)}.student-hero:after{font-size:148px;right:-20px;bottom:-10px}.student-hero .brand{position:relative;z-index:2}.student-hero .brand img{width:76px;height:68px}.student-hero .brand-name{font-size:35px}.notification{margin-left:auto;font-size:26px;position:relative}.notification span{position:absolute;right:-6px;top:-6px;background:var(--jtip-red);color:#fff;width:20px;height:20px;border-radius:50%;font-size:11px;display:grid;place-items:center}.student-person{display:flex;align-items:center;gap:15px;position:absolute;left:24px;bottom:28px;z-index:2}.student-person .avatar{width:78px;height:78px;font-size:41px}.student-person h1{font-size:22px;margin:2px 0}.student-content{padding:0 20px 24px;margin-top:-1px}.student-content.overlap{margin-top:-16px;position:relative;z-index:3}.student-card{padding:20px;margin-bottom:16px}.target-row{display:flex;justify-content:space-between;align-items:center}.target-row h2{font-size:34px;margin:5px 0}.ring{--p:62;width:108px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--jtip-blue) calc(var(--p)*1%),#edf1f6 0);position:relative}.ring:before{content:"";position:absolute;width:82%;height:82%;border-radius:50%;background:#fff}.ring strong{z-index:1;color:var(--jtip-blue);font-size:25px}.progress{height:8px;border-radius:8px;background:#edf1f6}.progress-bar{border-radius:8px;background:linear-gradient(90deg,var(--jtip-blue),#2988ee)}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.summary-card{text-align:center;padding:14px 7px}.summary-card i{font-size:25px}.summary-card strong{font-size:25px;display:block}.status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.status-box{padding:12px 7px;text-align:center;border-radius:12px;border:1px solid}.status-box strong{font-size:23px;display:block}.primary-cta{width:100%;font-size:19px;padding:17px}.tip-row,.vocab-row{display:grid;grid-template-columns:105px 1fr 36px;align-items:center;gap:12px}.vocab-row{grid-template-columns:105px 36px 1fr 38px;padding:16px;margin-bottom:10px}.vocab-expression{font-size:29px;line-height:1}.vocab-reading{font-size:13px;margin-top:8px;color:#425472}.student-bottom{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(520px,100%);height:74px;background:rgba(255,255,255,.97);border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(5,1fr);z-index:50;box-shadow:0 -8px 20px rgba(16,33,61,.06);padding-bottom:env(safe-area-inset-bottom)}.student-bottom a{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;color:#506079}.student-bottom i{font-size:23px}.student-bottom a.active{color:var(--jtip-red);font-weight:700}.student-heading{font-size:29px;margin:18px 0 5px}.learning-progress{display:flex;justify-content:space-between;font-weight:700}.flashcard{text-align:center;padding:26px 22px}.flashcard .vocab-expression{font-size:64px;color:var(--jtip-navy);margin:10px}.flashcard .reading{font-size:28px;color:#53627b}.meaning-block{border-top:1px solid var(--border);margin-top:20px;padding-top:19px;text-align:left;display:grid;gap:14px}.rating-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.rating{min-height:104px;border:2px solid;border-radius:13px;background:#fff;font-weight:700}.rating strong{display:block;font-size:28px}.rating.again{color:#e52a3a;background:#fff4f5}.rating.hard{color:#ef7b00;background:#fff8ef}.rating.good{color:#0ca75d;background:#effbf5}.rating.easy{color:#1571df;background:#f0f7ff}.review-hero{display:flex;justify-content:space-between;align-items:center}.review-hero .big{font-size:58px;color:var(--jtip-red);font-weight:800}.review-status{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.review-status .student-card{padding:12px 5px;text-align:center}.review-status strong{display:block;font-size:23px}.tabs{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:15px}.tabs button{border:0;background:#fff;padding:12px;font-weight:700}.tabs button.active{background:var(--jtip-blue);color:#fff}.podium{display:grid;grid-template-columns:1fr 1.1fr 1fr;align-items:end;gap:8px;text-align:center;margin:20px 0}.podium-place{border:1px solid var(--border);border-radius:16px 16px 6px 6px;padding:18px 6px;background:linear-gradient(180deg,#fff,#edf4ff)}.podium-place.first{min-height:210px;background:linear-gradient(180deg,#fff8d9,#fff);border-color:#f1c14e}.podium-place .avatar{margin:auto}.rank-me{border:2px solid var(--jtip-blue);padding:14px;display:flex;align-items:center;gap:12px}.league-path{display:flex;justify-content:space-around;text-align:center}.league-badge{font-size:28px}.quiz-choice{width:100%;text-align:left;padding:15px;margin:7px 0;border:1px solid var(--border);border-radius:12px;background:#fff;font-weight:600}.quiz-choice:hover{border-color:var(--jtip-blue);background:#f3f8ff}.achievement-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.achievement{text-align:center;padding:13px 6px}.achievement .badge-icon{font-size:34px}.login-shell{max-width:520px;margin:auto;min-height:100vh;padding:38px 26px 90px;background:linear-gradient(180deg,#fff,#f6f9fd);position:relative;overflow:hidden}.login-shell:after{content:"日本語";position:absolute;right:-60px;top:220px;font:700 140px "M PLUS Rounded 1c";color:#eaf0f8;transform:rotate(90deg);z-index:0}.login-shell>*{position:relative;z-index:1}.login-title{margin:80px 12px 25px}.login-title h1{font-size:43px;margin:0}.login-card{padding:27px}.form-label{font-weight:700}.input-group-text{background:#fff;border-color:#d9e1ec}.pagination-lite{display:flex;justify-content:space-between;align-items:center;padding:12px}.list-card{padding:14px;margin-bottom:10px}.assignment-card{padding:17px;border-left:4px solid var(--jtip-blue)}
@media(max-width:900px){.teacher-sidebar{width:76px}.teacher-sidebar .brand-copy,.teacher-sidebar .brand-name,.teacher-sidebar nav span,.teacher-sidebar .logout span{display:none}.teacher-sidebar .brand img{width:46px}.teacher-main{margin-left:76px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.bottom-grid,.builder-grid{grid-template-columns:1fr}.mode-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){body{background:#fff}.student-shell{box-shadow:none}.student-hero{min-height:305px;padding:20px}.student-hero .brand-copy small{display:none}.student-hero .brand-copy strong{font-size:12px}.student-hero .brand-name{font-size:29px}.student-person{left:20px}.student-content{padding:0 14px 20px}.student-card{padding:16px}.summary-card strong{font-size:21px}.review-status{overflow-x:auto;grid-template-columns:repeat(5,82px)}.rating-grid{gap:5px}.rating{font-size:12px}.flashcard .vocab-expression{font-size:56px}.achievement-grid{grid-template-columns:repeat(3,1fr)} }
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
