.portal-auth,.profile-page{min-height:100vh;background:radial-gradient(circle at 20% 10%,#fff1bd,transparent 34%),#f7f9ff;padding:35px;display:grid;place-items:center}.auth-card{width:min(680px,100%);background:#fff;border:1px solid #e0e6f1;border-radius:28px;padding:36px;box-shadow:0 25px 70px rgba(18,34,74,.14)}.auth-card .brand{margin-bottom:30px}.auth-kicker{font-size:11px;letter-spacing:.14em;font-weight:900;color:#1746d1}.auth-card h1,.profile-page h1,.portal-main>h1{font-size:clamp(34px,5vw,54px);letter-spacing:-.05em;margin:8px 0 24px}.auth-card label,.booking-form label{display:block;font-weight:800;font-size:14px}.auth-card input,.auth-card select,.booking-form select,.settings-card textarea{width:100%;height:50px;border:1px solid #dce2ed;border-radius:12px;padding:0 13px;margin:7px 0 15px;font:inherit}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.auth-card button,.booking-form>button{width:100%;border:0;border-radius:13px;background:#1746d1;color:#fff;padding:15px;font-weight:900}.auth-card>p{text-align:center;color:#6c7891}.auth-card>p a{color:#1746d1;font-weight:800}.portal-error{background:#ffe8e5;color:#ad2a26;padding:12px;border-radius:11px;margin-bottom:16px}.profile-page main{text-align:center;width:min(940px,100%)}.profile-page .brand{justify-content:center;margin-bottom:55px}.profile-page>main>p{color:#6d7890}.profile-grid{display:flex;justify-content:center;flex-wrap:wrap;gap:18px;margin:40px 0}.profile-card{width:240px;min-height:260px;background:#fff;border:2px solid #e1e6f0;border-radius:25px;padding:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 14px 35px rgba(25,43,85,.08);transition:.2s}.profile-card:hover{transform:translateY(-6px);border-color:#1746d1}.profile-card.child{background:#1746d1;color:#fff}.profile-avatar{width:80px;height:80px;border-radius:50%;display:grid;place-items:center;background:#e9efff;color:#1746d1;font-size:34px;font-weight:900}.child .profile-avatar{background:#fff2bf;color:#f04b46}.profile-card h2{margin:18px 0 6px}.profile-card small{color:#758098}.child small{color:#c5d2f6}.profile-card b{margin-top:13px;color:#ffcf27}.logout-link{color:#68748d}.portal-body,.child-portal,.lesson-body{background:#f5f7fb;min-height:100vh}.portal-header{height:76px;background:#fff;border-bottom:1px solid #e0e5ef;padding:0 5vw;display:flex;align-items:center;gap:32px}.portal-header nav{flex:1}.portal-header>a:last-child{margin-left:auto;color:#1746d1;font-weight:800;font-size:14px}.portal-main{max-width:1180px;margin:auto;padding:54px 24px}.portal-main.narrow{max-width:940px}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:32px}.dashboard-card{background:#fff;border:1px solid #dfe5ef;border-radius:22px;padding:25px;min-height:210px}.dashboard-card.accent{background:#1746d1;color:#fff}.dashboard-card>span,.materials .section-title span{font-size:10px;letter-spacing:.12em;font-weight:900;opacity:.72}.dashboard-card h2{font-size:24px}.dashboard-card p{color:#77839a}.dashboard-card.accent p{color:#c8d4f5}.dashboard-card a{display:inline-block;margin-top:15px;font-weight:900;color:#1746d1}.dashboard-card.accent a{color:#fff2bf}.child-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #edf0f5}.child-row small{color:#7b879e}.child-welcome{display:flex;justify-content:space-between;align-items:center;background:#fff2bf;border-radius:28px;padding:36px;margin-bottom:24px}.child-welcome h1{font-size:42px;max-width:750px;margin:8px 0}.mascot{width:100px;height:100px;border-radius:35px;background:#1746d1;color:#fff;display:grid;place-items:center;font-size:35px;font-weight:900;transform:rotate(5deg)}.star-counter{margin-left:auto;background:#fff2bf;padding:9px 14px;border-radius:99px;font-weight:900;color:#9a6b00}.materials{margin-top:35px}.section-title h2{font-size:32px;margin:7px 0 20px}.material-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.material-card{background:#fff;border-top:7px solid var(--cover);border-radius:18px;padding:22px;box-shadow:0 8px 24px rgba(20,37,78,.07)}.material-card>span{color:var(--cover);font-size:11px;font-weight:900}.material-card p{color:#77839a}.material-card>div{display:flex;justify-content:space-between}.empty-material{background:#fff;border:2px dashed #dbe1ec;border-radius:18px;padding:35px;text-align:center;grid-column:1/-1}.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:25px 0}.slot-card input{position:absolute;opacity:0}.slot-card span{display:flex;flex-direction:column;background:#fff;border:2px solid #dfe5ef;border-radius:16px;padding:18px}.slot-card input:checked+span{border-color:#1746d1;background:#edf2ff}.slot-card strong{font-size:24px;margin:6px 0}.slot-card small{color:#7a859c}.plans-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:35px}.plan-card{background:#fff;border:2px solid #e0e5ef;border-radius:25px;padding:30px;position:relative}.plan-card.featured{border-color:#1746d1}.plan-card>i{position:absolute;top:-13px;right:20px;background:#1746d1;color:#fff;border-radius:99px;padding:7px 12px;font-size:10px;font-weight:900}.plan-card>strong{font-size:28px}.plan-card li{margin:12px 0}.plan-card button{width:100%;padding:14px;border:0;border-radius:12px;background:#dfe4ee;color:#707b91;font-weight:900}.center-heading{text-align:center}.lesson-page{max-width:850px;margin:auto;padding:60px 24px}.lesson-page h1{font-size:48px;letter-spacing:-.04em}.lesson-summary{font-size:19px;color:#6e7890}.lesson-content{background:#fff;border-radius:22px;padding:35px;margin:25px 0;line-height:1.7}.video-link,.worksheet{display:inline-block;background:#e9efff;color:#1746d1;padding:12px 15px;border-radius:11px;font-weight:900}.complete-lesson{width:100%;border:0;background:#1746d1;color:#fff;padding:16px;border-radius:13px;font-weight:900;font-size:16px}.wide-card{max-width:none}.schedule-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;padding:13px 0;border-bottom:1px solid #e8ecf3}@media(max-width:800px){.form-grid,.dashboard-grid,.material-grid,.plans-grid,.slot-grid{grid-template-columns:1fr}.portal-header nav{display:none}.child-welcome{align-items:flex-start}.mascot{display:none}}
.lesson-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px}.lesson-actions form{margin:0}.lesson-actions .cancel-booking{background:#fff;color:#b42318;border:1px solid #f1a6a0;border-radius:12px;padding:12px 16px;font-weight:800;cursor:pointer}.lesson-actions .cancel-booking:hover{background:#fff1f0;border-color:#d92d20}
