*{box-sizing:border-box}:root{--paper:#f4eee2;--cream:#fffcf5;--ink:#2d261e;--muted:#8b7e6d;--yellow:#fac22c;--red:#ed6647;--blue:#3069be;--green:#66a36b}body{margin:0;color:var(--ink);background:var(--paper);font-family:PingFang SC,Noto Sans SC,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.login-screen{display:grid;min-height:100vh;grid-template-columns:1.15fr .85fr;background:var(--cream)}.login-art{position:relative;display:flex;overflow:hidden;flex-direction:column;justify-content:center;padding:8vw;color:#fff;background:var(--blue)}.login-art:after{position:absolute;right:-8vw;bottom:-16vw;width:42vw;height:42vw;background:var(--yellow);border-radius:43% 57% 48% 52%;content:"";transform:rotate(14deg)}.login-art h1{position:relative;z-index:2;margin:36px 0 18px;font-family:STKaiti,KaiTi,serif;font-size:clamp(46px,5vw,76px);line-height:1.18}.brand-en{margin:16px 0 0;font-size:12px;font-weight:800;letter-spacing:4px;opacity:.7}.login-lead{max-width:520px;color:hsla(0,0%,100%,.7);font-size:16px;line-height:1.8}.login-lead,.logo-mark{position:relative;z-index:2}.logo-mark{width:96px;height:96px;overflow:hidden;flex-shrink:0;background:#fff;border:5px solid hsla(0,0%,100%,.92);border-radius:50%;box-shadow:0 10px 0 rgba(22,18,14,.14);transform:rotate(-3deg)}.logo-mark img{position:absolute;top:-57%;left:-50%;width:208%;height:208%;-o-object-fit:cover;object-fit:cover}.logo-mark.inverse{background:transparent;border:0;box-shadow:none;mix-blend-mode:screen}.logo-mark.inverse img{filter:invert(1);opacity:.96}.logo-mark.small{width:52px;height:52px;border-width:3px;box-shadow:0 5px 0 rgba(0,0,0,.22);transform:rotate(-3deg)}.logo-mark.small.inverse{box-shadow:none}.scribble{position:absolute;left:5vw;bottom:7vw;width:120px;height:60px;border:7px solid hsla(0,0%,100%,.25);border-color:transparent transparent hsla(0,0%,100%,.25) hsla(0,0%,100%,.25);border-radius:50%;transform:rotate(18deg)}.login-box{display:flex;width:min(430px,70%);margin:auto;flex-direction:column}.eyebrow{color:var(--red);font-size:11px;font-weight:900;letter-spacing:3px}.login-box h2{margin:12px 0 38px;font-family:STKaiti,serif;font-size:42px}label{display:flex;flex-direction:column;gap:9px;margin-bottom:20px;color:var(--muted);font-size:13px;font-weight:700}input,select{height:48px;padding:0 15px;color:var(--ink);background:#fff;border:1px solid #ddd3c3;border-radius:13px;outline:none}input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(48,105,190,.08)}.login-box button,.modal-submit{display:flex;align-items:center;justify-content:space-between;height:54px;margin-top:8px;padding:0 22px;color:#fff;font-weight:800;background:var(--ink);border:0;border-radius:28px 24px 30px 25px;box-shadow:0 7px 0 rgba(45,38,30,.12)}.login-box>p{color:#a69b8c;font-size:12px;text-align:center}.workspace{min-width:1180px;min-height:100vh}.sidebar{position:fixed;z-index:10;top:0;bottom:0;left:0;display:flex;width:236px;padding:28px 20px 20px;flex-direction:column;color:#fff;background:var(--ink)}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 26px}.brand>div:last-child{display:flex;flex-direction:column}.brand strong{font-family:STKaiti,serif;font-size:21px;letter-spacing:2px}.brand small{margin-top:1px;color:hsla(0,0%,100%,.4);font-size:9px;letter-spacing:2px}nav{display:flex;flex-direction:column;gap:6px}nav button{display:flex;align-items:center;gap:14px;height:48px;padding:0 16px;color:hsla(0,0%,100%,.57);background:transparent;border:0;border-radius:14px;font-size:14px;text-align:left}nav button.active{color:var(--ink);font-weight:800;background:var(--yellow);transform:rotate(-.3deg)}.nav-icon{width:22px;font-size:18px;text-align:center}.nav-icon+span{flex:1}nav em{display:flex;align-items:center;justify-content:center;width:19px;height:19px;color:#fff;font-size:10px;background:var(--red);border-radius:50%}.studio-card{display:flex;margin-top:auto;padding:18px;flex-direction:column;background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.07);border-radius:18px}.studio-card .palette{font-size:28px;color:var(--yellow)}.studio-card strong{margin-top:8px;font-size:13px}.studio-card span{margin-top:3px;color:hsla(0,0%,100%,.38);font-size:10px}.logout{margin-top:10px;padding:12px;color:hsla(0,0%,100%,.38);background:transparent;border:0}.main{min-height:100vh;margin-left:236px}.topbar{display:flex;height:108px;padding:24px 38px;align-items:center;justify-content:space-between;background:hsla(40,45%,92%,.92);border-bottom:1px solid rgba(45,38,30,.07)}.crumb{margin:0 0 6px;color:var(--muted);font-size:11px}.topbar h1{margin:0;font-family:STKaiti,serif;font-size:29px}.top-actions{display:flex;align-items:center;gap:12px}.demo-badge{padding:8px 12px;color:#8b6c00;font-size:11px;background:rgba(250,194,44,.22);border-radius:18px}.round{width:36px;height:36px;color:var(--muted);background:#fff;border:1px solid #e1d7c8;border-radius:50%}.admin-avatar{display:flex;align-items:center;justify-content:center;width:40px;height:40px;color:#fff;font-family:STKaiti,serif;font-weight:900;background:var(--blue);border-radius:48% 52%}.admin-name{display:flex;flex-direction:column}.admin-name b{font-size:12px}.admin-name small{color:var(--muted);font-size:9px}.page{padding:28px 38px 50px}.hero-banner{position:relative;display:flex;min-height:220px;padding:36px 42px;overflow:hidden;color:#fff;background:var(--blue);border-radius:28px 22px 32px 24px;box-shadow:0 16px 35px rgba(48,105,190,.13)}.hero-banner h2{margin:13px 0 8px;font-family:STKaiti,serif;font-size:34px}.hero-banner mark{color:var(--yellow);background:none}.hero-banner p{color:hsla(0,0%,100%,.65);font-size:13px}.hero-banner button{margin-top:18px;padding:9px 15px;color:var(--ink);font-size:11px;font-weight:800;background:var(--yellow);border:0;border-radius:18px}.hero-banner .eyebrow{color:hsla(0,0%,100%,.55)}.hero-doodle{position:absolute;right:7%;bottom:-20px;width:280px;height:210px}.sun{right:5px;top:2px;display:flex;align-items:center;justify-content:center;width:65px;height:65px;color:var(--ink);font-size:30px;background:var(--yellow);border-radius:47% 53%}.easel,.sun{position:absolute}.easel{right:60px;bottom:0;width:140px;height:130px;border:10px solid #b77b3c;border-bottom:0;transform:rotate(3deg)}.easel i{position:absolute;inset:8px;background:#fff4d7}.easel b{position:absolute;left:30px;top:30px;width:60px;height:45px;background:var(--red);border-radius:50%;box-shadow:24px 13px 0 var(--blue),-14px 19px 0 var(--yellow)}.metric-grid{display:grid;margin-top:22px;grid-template-columns:repeat(4,1fr);gap:16px}.metric-grid article{position:relative;display:flex;align-items:center;gap:15px;padding:22px;background:var(--cream);border:1px solid rgba(45,38,30,.06);border-radius:19px;box-shadow:0 8px 24px rgba(64,50,30,.04)}.metric-icon{display:flex;align-items:center;justify-content:center;width:47px;height:47px;font-size:22px;border-radius:16px}.metric-grid article.yellow .metric-icon{background:rgba(250,194,44,.25)}.metric-grid article.blue .metric-icon{color:var(--blue);background:rgba(48,105,190,.12)}.metric-grid article.red .metric-icon{color:var(--red);background:rgba(237,102,71,.12)}.metric-grid article.green .metric-icon{color:var(--green);background:rgba(102,163,107,.12)}.metric-grid article>div:nth-child(2){display:flex;flex-direction:column}.metric-grid article b{font-family:Georgia,serif;font-size:25px}.metric-grid article span{color:var(--muted);font-size:10px}.metric-grid article small{position:absolute;right:15px;bottom:12px;color:#a49a8b;font-size:8px}.dashboard-grid{display:grid;margin-top:22px;grid-template-columns:1.55fr .75fr;gap:18px}.panel{padding:24px;background:var(--cream);border:1px solid rgba(45,38,30,.06);border-radius:21px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.panel-head h3{margin:5px 0 0;font-family:STKaiti,serif;font-size:22px}.panel-head button{color:var(--muted);font-size:10px;background:transparent;border:0}.lesson-row{display:flex;align-items:center;min-height:67px;border-top:1px dashed #ded5c7}.lesson-row time{width:52px;font-family:Georgia,serif;font-weight:700}.lesson-row>i{width:8px;height:42px;margin-right:14px;border-radius:50%}.lesson-row>div{display:flex;flex:1;flex-direction:column}.lesson-row b{font-size:13px}.lesson-row span{margin-top:4px;color:var(--muted);font-size:10px}.lesson-row em{padding:5px 9px;font-size:9px;font-style:normal;border-radius:12px}.lesson-row em.done{color:var(--green);background:rgba(102,163,107,.11)}.lesson-row em.waiting{color:#9a7a05;background:rgba(250,194,44,.16)}.empty-line{margin:34px 0;text-align:center}.balance-tip,.empty-line{color:var(--muted);font-size:11px}.balance-tip{padding:13px;background:#f6f0e5;border-radius:12px}.balance-tip b{color:var(--red)}.mini-student{display:flex;align-items:center;gap:11px;padding:11px 2px;border-bottom:1px solid #eee6da}.mini-student>div{display:flex;align-items:center;justify-content:center;width:35px;height:35px;color:#fff;font-weight:800;border-radius:50%}.mini-student span{display:flex;flex:1;flex-direction:column}.mini-student b{font-size:11px}.mini-student small{color:var(--muted);font-size:8px}.mini-student em{color:var(--red);font-family:Georgia,serif;font-size:14px;font-weight:800;font-style:normal}.toolbar{gap:12px;margin-bottom:18px}.search,.toolbar{display:flex;align-items:center}.search{width:310px;height:44px;gap:8px;padding:0 14px;background:#fff;border:1px solid #ded4c5;border-radius:12px}.search span{font-size:20px;color:var(--muted)}.search input{width:100%;height:40px;padding:0;border:0;background:transparent;box-shadow:none}.date-input,.toolbar select{height:44px}.toolbar select{width:150px}.primary,.soft-button{height:44px;padding:0 17px;font-size:12px;font-weight:800;border-radius:12px}.soft-button{color:var(--ink);background:#fff;border:1px solid #ddd3c3}.template-button{margin-left:auto}.primary{color:#fff;background:var(--ink);border:0;box-shadow:0 5px 0 rgba(45,38,30,.1)}.file-input{display:none}.table-card{overflow:hidden;background:var(--cream);border:1px solid rgba(45,38,30,.07);border-radius:19px;box-shadow:0 8px 24px rgba(70,53,30,.03)}.table-card table{width:100%;border-collapse:collapse}th{height:48px;color:var(--muted);font-size:10px;font-weight:700;text-align:left;background:#f8f3e9}td,th{padding:0 18px}td{height:70px;font-size:11px;border-top:1px solid #eee6d9}tbody tr:hover{background:#fffdf8}.disabled-row{opacity:.58}.course-name,.person{display:flex;align-items:center;gap:11px}.person>div{display:flex;align-items:center;justify-content:center;width:38px;height:38px;color:#fff;font-weight:900;border-radius:47% 53%}.course-name span,.person span{display:flex;flex-direction:column}.course-name b,.person b{font-size:12px}.block,.course-name small,.person small{margin-top:3px;color:var(--muted);font-size:9px}.status{display:inline-block;padding:5px 9px;font-size:9px;border-radius:12px}.status.ok{color:var(--green);background:rgba(102,163,107,.11)}.status.off{color:var(--muted);background:#eee9df}.status.warn{color:#9b7100;background:rgba(250,194,44,.15)}.hours-cell b{font-family:Georgia,serif;font-size:14px}.hours-cell b.danger{color:var(--red)}.hours-cell>div{width:70px;height:4px;margin-top:5px;overflow:hidden;background:#e9e1d5;border-radius:3px}.hours-cell i{display:block;height:100%;background:var(--blue);border-radius:3px}.link,.more{color:var(--blue);font-size:10px;font-weight:700;background:transparent;border:0}.more{margin-left:8px;color:var(--muted)}.course-name i{width:8px;height:38px;border-radius:50%}.sms-copy{max-width:280px;color:var(--muted)}.teacher-toolbar{justify-content:space-between}.teacher-toolbar p{margin:0;color:var(--muted);font-size:11px}.teacher-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.teacher-card{overflow:hidden;background:var(--cream);border-radius:22px;box-shadow:0 10px 30px rgba(62,46,25,.05)}.teacher-card.disabled-card{opacity:.62}.teacher-cover{position:relative;height:105px}.teacher-cover>span{position:absolute;left:24px;bottom:-28px;display:flex;align-items:center;justify-content:center;width:68px;height:68px;color:#fff;font-family:STKaiti,serif;font-size:28px;font-weight:900;background:var(--ink);border:5px solid var(--cream);border-radius:48% 52%}.teacher-cover i{position:absolute;right:24px;top:18px;color:hsla(0,0%,100%,.6);font-size:32px}.teacher-body{padding:37px 24px 22px}.teacher-body>div:first-child{display:flex;align-items:center;justify-content:space-between}.teacher-body h3{margin:0;font-family:STKaiti,serif;font-size:21px}.teacher-body p{color:var(--muted);font-size:10px}.teacher-body dl{display:flex;margin:20px 0;padding:14px 0;border-top:1px dashed #ded5c7;border-bottom:1px dashed #ded5c7}.teacher-body dl div{display:flex;width:50%;flex-direction:column;align-items:center}.teacher-body dl div:first-child{border-right:1px solid #e4dbcf}.teacher-body dt{font-family:Georgia,serif;font-size:20px;font-weight:800}.teacher-body dd{margin:4px 0 0;color:var(--muted);font-size:9px}.teacher-actions{display:flex;align-items:center;justify-content:space-between}.teacher-actions small{color:var(--muted);font-size:9px}.notice{display:flex;align-items:center;gap:16px;margin-bottom:18px;padding:16px 20px;color:#765d08;background:rgba(250,194,44,.17);border:1px solid rgba(250,194,44,.45);border-radius:14px}.notice b{font-size:12px}.notice span{font-size:10px}.settings-page{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;align-items:start}.settings-card{padding:26px;background:var(--cream);border:1px solid rgba(45,38,30,.07);border-radius:19px}.settings-card h3{margin:7px 0 25px;font-family:STKaiti,serif;font-size:23px}.settings-card input,.settings-card select{width:100%}.modal-hint,.setting-tip{padding:12px;color:var(--muted);font-size:10px;line-height:1.5;background:#f6f0e6;border-radius:10px}.unit-input{position:relative}.unit-input input{width:100%;padding-right:60px}.unit-input span{position:absolute;right:14px;top:15px;color:var(--muted);font-size:11px}.switch-row{display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin:24px 0}.switch-row>span{display:flex;flex-direction:column;color:var(--ink)}.switch-row small{margin-top:4px;color:var(--muted);font-size:9px}.switch{position:relative;width:42px;height:23px;background:#d4ccbf;border:0;border-radius:14px}.switch i{position:absolute;top:3px;left:3px;width:17px;height:17px;background:#fff;border-radius:50%}.switch.on{background:var(--green)}.switch.on i{left:22px}.save{width:100%;height:46px;color:#fff;font-size:12px;font-weight:800;background:var(--ink);border:0;border-radius:23px}.security-save{margin-top:18px}.modal-mask{position:fixed;z-index:50;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(29,24,18,.48);backdrop-filter:blur(3px)}.modal{position:relative;width:450px;padding:32px;background:var(--cream);border-radius:25px 20px 29px 22px;box-shadow:0 28px 70px rgba(30,22,14,.25)}.modal h2{margin:8px 0 28px;font-family:STKaiti,serif;font-size:28px}.modal label input,.modal label select{width:100%}.modal-close{position:absolute;right:20px;top:18px;width:32px;height:32px;color:var(--muted);font-size:22px;background:#f0e9dd;border:0;border-radius:50%}.modal-person{display:flex;align-items:center;gap:13px;margin-bottom:22px;padding:15px;background:#f7f1e7;border-radius:14px}.modal-person>div{display:flex;align-items:center;justify-content:center;width:45px;height:45px;color:#fff;font-weight:900;border-radius:50%}.modal-person span{display:flex;flex-direction:column}.modal-person b{font-size:12px}.modal-person small{margin-top:3px;color:var(--muted);font-size:9px}.preview-line{display:flex;align-items:center;justify-content:space-between;margin:20px 0 8px;padding:15px;color:var(--muted);font-size:11px;background:rgba(48,105,190,.08);border-radius:12px}.preview-line b{color:var(--blue);font-family:Georgia,serif;font-size:17px}.modal-submit{width:100%;border:0}.toast{position:fixed;z-index:80;left:50%;bottom:40px;padding:13px 20px;color:#fff;font-size:12px;font-weight:700;background:var(--ink);border-radius:23px;box-shadow:0 12px 30px rgba(45,38,30,.22);transform:translateX(-50%)}.toast-enter-active,.toast-leave-active{transition:.2s}.toast-enter,.toast-leave-to{opacity:0;transform:translate(-50%,10px)}@media(max-width:1300px){.metric-grid,.teacher-grid{grid-template-columns:repeat(2,1fr)}}