
:root{color-scheme:dark;--bg:#090e17;--card:#121b28;--line:#233043;--text:#ecf1f8;--muted:#8d9bae;--cyan:#85dde6;--purple:#a79be2;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 80% 0%,#122235 0,transparent 45%),var(--bg);color:var(--text);min-height:100vh}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit;border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}.shell{max-width:1060px;margin:auto;padding:0 38px}header{height:116px;display:flex;align-items:center;justify-content:space-between}.brand{font-size:44px;letter-spacing:-5px;font-weight:650;display:flex;align-items:center;gap:15px}.brand span{width:6px;height:6px;background:var(--cyan);border-radius:50%;margin-top:16px}.header-right{display:flex;gap:22px;align-items:center}.small,.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted);font-weight:600}.avatar{height:36px;width:36px;display:grid;place-items:center;border:1px solid #344459;background:#1c293b;border-radius:50%;color:var(--cyan)}main{min-height:65vh;padding-top:30px;animation:appear .3s ease}.date{font-size:12px;color:var(--muted);margin:0 0 13px}.greeting{font-size:clamp(26px,4vw,38px);font-weight:500;letter-spacing:-1.2px;margin:0 0 12px}.greeting em{font-style:normal;color:var(--cyan)}.subtitle{color:var(--muted);font-size:14px;margin:0;line-height:1.6}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;gap:14px}.page-head h1{font-size:30px;font-weight:500;letter-spacing:-.8px;margin:0 0 9px}.home-grid{display:grid;grid-template-columns:1.75fr 1fr;gap:18px;margin-top:32px}.card{background:linear-gradient(135deg,#151f2e,#111a26);border:1px solid #263244;border-radius:22px;padding:26px;box-shadow:0 12px 35px #0000000c}.hero{min-height:230px;position:relative;overflow:hidden}.hero:after{content:'';width:210px;height:210px;border:1px solid #56899b22;border-radius:50%;position:absolute;right:-90px;top:-80px;box-shadow:0 0 0 35px #5b9aad07,0 0 0 70px #5b9aad05;pointer-events:none}.hero h2{font-size:26px;line-height:1.25;font-weight:500;margin:25px 0 12px;max-width:90%;letter-spacing:-.6px}.hero .meta{margin-top:24px}.eyebrow.cyan{color:var(--cyan)}.pill{font-size:11px;padding:5px 9px;border-radius:6px;background:#233848;color:#a2dfe7}.meta{display:flex;flex-wrap:wrap;align-items:center;gap:14px;font-size:13px;color:#bdc9d7}.weather{display:flex;flex-direction:column;justify-content:space-between;min-height:230px}.weather-main{display:flex;align-items:center;justify-content:space-between}.temperature{font-size:51px;letter-spacing:-3px;font-weight:350}.weather-icon{font-size:43px;color:#a7bfda}.weather p{margin:6px 0}.weather small{font-size:11px;color:var(--muted)}.section-head{display:flex;justify-content:space-between;align-items:center;margin:34px 0 17px}.section-head h2{font-size:15px;font-weight:500;margin:0}.section-head span{font-size:11px;color:var(--muted)}.shortcuts{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.shortcut{background:#121b28;border:1px solid #243042;border-radius:17px;padding:21px;text-align:left;min-height:116px;transition:.2s}.shortcut:hover{background:#1a293b;transform:translateY(-2px)}.icon{width:21px;height:21px;display:block;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.shortcut .icon{color:var(--cyan);margin-bottom:21px}.shortcut:nth-child(4) .icon{color:var(--purple)}.shortcut b{font-size:13px;font-weight:500}.row{display:flex;gap:12px;align-items:center;justify-content:space-between}.hint{font-size:12px;color:var(--muted);line-height:1.7}.preview{font-size:11px;color:#c1b889;margin-top:22px}.quiet-link{color:var(--cyan);font-size:12px}.button{padding:13px 19px;border-radius:12px;background:var(--cyan);color:#10242d;font-weight:600;font-size:13px;display:inline-flex;justify-content:center;align-items:center;gap:8px}.button.secondary{background:#202e41;color:#d7e4f1}.button.danger{background:#432833;color:#ffb2c0}.button:disabled{opacity:.5;cursor:wait}.text-button{background:none;padding:8px;color:var(--muted);font-size:12px}.text-button:hover{color:var(--cyan)}#nav{display:flex;justify-content:center;gap:12px;max-width:540px;margin:45px auto 0;background:#111a27eF;border:1px solid #263244;border-radius:19px;padding:8px;backdrop-filter:blur(16px)}#nav a{display:flex;gap:8px;align-items:center;justify-content:center;flex:1;padding:14px 10px;font-size:11px;border-radius:12px;color:var(--muted)}#nav .icon{width:18px;height:18px}#nav a.active{background:#233448;color:var(--cyan)}footer{text-align:center;font-size:10px;color:#566477;margin:24px 0 30px;letter-spacing:1.5px}footer span{margin:0 5px}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:24px}.day{padding:16px 5px;border:1px solid var(--line);background:#101927;border-radius:13px;font-size:12px;color:var(--muted)}.day span{display:block;font-size:18px;margin-top:8px;color:var(--text)}.day.active{background:#223c4a;border-color:#557c8b;color:var(--cyan)}.lesson{display:grid;grid-template-columns:75px 1fr auto;gap:20px;margin-bottom:12px;align-items:center;padding:23px}.lesson.next{border-color:#53878f;background:linear-gradient(110deg,#1a333f,#131e2d)}.lesson.canceled{opacity:.55}.lesson.canceled h3{text-decoration:line-through}.lesson-time{font-size:18px;color:var(--cyan)}.lesson-time small{display:block;font-size:12px;color:var(--muted);margin-top:7px}.lesson h3{font-size:16px;margin:0 0 10px;font-weight:500}.lesson .meta{font-size:12px;gap:8px}.lesson-actions{display:flex;flex-direction:column;align-items:flex-end}.empty{padding:60px 22px;text-align:center;color:var(--muted);line-height:1.8;border:1px dashed #29374a;border-radius:20px}.empty strong{display:block;color:var(--text);font-size:22px;font-weight:500;margin-bottom:8px}.empty .button{margin-top:20px}.list{display:grid;gap:14px}.note{display:block;width:100%;text-align:left}.note h3{font-size:18px;font-weight:500;margin:0 0 12px;overflow-wrap:anywhere}.note p{color:var(--muted);font-size:13px;line-height:1.7;white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.note small{color:#61748c;font-size:11px}.settings-row{padding:21px 0;border-bottom:1px solid var(--line)}.settings-row:last-child{border-bottom:0}.settings-row b{font-size:14px;font-weight:500}.switch{appearance:none;width:44px;height:26px;border-radius:30px;background:#344257;position:relative;cursor:pointer;margin:0;flex-shrink:0}.switch:checked{background:var(--cyan)}.switch:before{content:'';position:absolute;width:18px;height:18px;top:4px;left:4px;border-radius:50%;background:#c7d3e4;transition:.2s}.switch:checked:before{transform:translateX(18px);background:#173141}.route-diagram{margin:26px 0;padding:28px;background:radial-gradient(ellipse at top right,#183843,#111c2a);border-radius:16px}.route-stop{display:flex;gap:17px;align-items:center;font-size:17px}.route-stop i{border:2px solid var(--cyan);width:13px;height:13px;border-radius:50%;flex-shrink:0}.route-line{margin:8px 0 8px 6px;border-left:1px dashed #5c899a;padding:17px 0 17px 24px;color:var(--muted);font-size:11px}.bus-list{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.bus{padding:12px 22px;border:1px solid #3a5267;border-radius:11px;color:var(--cyan);font-size:20px}.route-links{display:flex;gap:10px;flex-wrap:wrap}.more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.more-grid .shortcut{min-height:160px}.more-grid p{color:var(--muted);font-size:12px;line-height:1.6}.games-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.game-card{text-align:left;padding:23px;cursor:pointer}.game-art{height:145px;display:grid;place-items:center;font-size:50px;letter-spacing:-4px;color:var(--cyan);background:radial-gradient(ellipse,#29475866,transparent);border-radius:12px;margin-bottom:18px}.game-card:nth-child(2) .game-art{color:var(--purple);letter-spacing:0}.game-card h2{font-size:20px;font-weight:500}.game-card p{font-size:12px;line-height:1.7;color:var(--muted)}dialog{width:min(520px,calc(100% - 24px));border:1px solid #344358;border-radius:23px;padding:28px;background:#141f2e;color:var(--text);max-height:90vh;overflow:auto;box-shadow:0 30px 150px #0009}dialog::backdrop{background:#030811b8;backdrop-filter:blur(5px)}dialog h2{margin:0 0 25px;font-size:22px;font-weight:500}label.field{display:block;font-size:12px;color:var(--muted);margin-bottom:16px}input:not(.switch),textarea,select{display:block;width:100%;margin-top:8px;border:1px solid #334358;background:#0d1623;border-radius:10px;color:var(--text);padding:13px;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--cyan)}textarea{resize:vertical;min-height:180px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:23px}.form-error{color:#ffb2c0;font-size:13px;min-height:18px}.note-date{font-size:11px;color:var(--muted)}#toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%);z-index:10;background:#28434c;color:#d9f8fa;padding:14px 24px;border-radius:13px;font-size:13px;pointer-events:none;opacity:0;transition:opacity .2s;max-width:90vw}#toast.visible{opacity:1}.game-wrap{max-width:480px;margin:auto;text-align:center}.game-score{font-size:13px;color:var(--muted);margin:16px 0}.game-score b{color:var(--cyan);font-size:22px;margin-left:8px}.board2048{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;background:#0c1420;border:1px solid #2d4055;padding:12px;border-radius:17px;touch-action:none}.tile{aspect-ratio:1;border-radius:10px;background:#192536;display:grid;place-items:center;font-size:29px;font-weight:600;color:#bddfe7}.tile.v2{background:#253d4c}.tile.v4{background:#2c5160}.tile.v8{background:#347585}.tile.v16{background:#418d9d}.tile.v32{background:#589eae;color:#102530}.tile.v64{background:#82d2d5;color:#102530}.tile.high{background:#a294d6;color:#182033;font-size:24px}.game-controls{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:18px}.game-controls button{min-width:54px;min-height:45px}.game-canvas{display:block;margin:15px auto;max-width:100%;border-radius:14px;border:1px solid #2c4057;background:#0c1420;touch-action:none}.game-message{color:var(--cyan);min-height:25px;font-size:14px;margin:14px 0}.auth-gate{max-width:480px;margin:50px auto;text-align:center}.auth-gate img{width:90px;border-radius:24px;margin-bottom:18px}@keyframes appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media(max-width:650px){.shell{padding:0 20px}header{height:88px}.brand{font-size:39px}.header-right .small{display:none}main{padding-top:17px;padding-bottom:95px}.greeting{font-size:29px}.home-grid{grid-template-columns:1fr;gap:13px;margin-top:27px}.card{padding:22px}.hero{min-height:220px}.weather{min-height:145px}.weather-main{justify-content:flex-start;gap:28px}.temperature{font-size:42px}.weather-icon{font-size:32px}.weather{position:relative}.weather small{position:absolute;right:20px;bottom:22px;font-size:10px}.weather .hint{max-width:62%}.shortcuts{grid-template-columns:repeat(3,1fr);gap:9px}.shortcut{padding:18px 14px;min-height:110px}.shortcut b{font-size:12px}.shortcut .icon{margin-bottom:18px}#nav{position:fixed;bottom:max(14px,env(safe-area-inset-bottom));left:14px;right:14px;margin:0;max-width:none;gap:4px;z-index:5;padding:7px}#nav a{flex-direction:column;gap:6px;padding:10px 3px;font-size:10px}footer{display:none}.page-head h1{font-size:28px}.page-head{margin-bottom:24px}.days{gap:5px}.day{padding:13px 3px;font-size:11px}.lesson{grid-template-columns:58px 1fr;gap:12px;padding:19px}.lesson-time{font-size:16px}.lesson h3{font-size:15px}.lesson-actions{grid-column:2;flex-direction:row;justify-content:flex-start;gap:10px}.lesson-actions .text-button{padding:5px 0}.more-grid,.games-grid{grid-template-columns:1fr}.more-grid .shortcut{min-height:125px}.game-card{display:grid;grid-template-columns:100px 1fr;column-gap:20px}.game-art{height:110px;grid-row:1/3;margin:0;font-size:38px}.game-card h2{margin:13px 0 0}.game-card p{margin:8px 0}.route-stop{font-size:15px}.route-diagram{padding:22px}.bus{padding:10px 19px}.tile{font-size:25px}dialog{padding:23px}.header-right{gap:10px}.page-head .button{padding:12px 14px}}

.spaced{margin-top:18px}
.tetris-canvas{max-height:min(480px,48vh);width:auto}
