:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;color:#182a3d;background:#f4f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #81d2f9;outline-offset:2px}.app{min-height:100vh}.top{height:75px;display:flex;align-items:center;gap:12px;background:#fff;padding:12px max(20px,calc((100vw - 850px)/2));box-shadow:0 1px 8px #132d4410}.logo{height:45px;width:45px;border-radius:12px;background:#0085c8;color:#fff;display:grid;place-items:center}.top strong{display:block;font-size:18px}.top small{display:block;font-size:12px;color:#778a9e;margin-top:2px}.top-right{margin-left:auto;font-size:12px;color:#608299;display:flex;align-items:center;gap:6px}.online-dot{width:7px;height:7px;background:#28b98e;border-radius:50%}main{max-width:850px;margin:auto;padding:26px 20px 36px}.hero{background:linear-gradient(115deg,#056da9,#0096d9);color:#fff;padding:27px 25px;border-radius:20px;margin-bottom:20px;box-shadow:0 10px 24px #047db020}.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.6px;opacity:.72}.hero h1{font-size:27px;margin:9px 0}.hero p{font-size:14px;margin:0;line-height:1.5;opacity:.9}.picker{width:100%;border:1px solid #dfe9f2;background:#fff;display:flex;align-items:center;gap:14px;text-align:left;padding:14px;border-radius:16px;color:#698197;box-shadow:0 3px 15px #163a4d08}.picker-icon,.result-icon{background:#e8f5fc;color:#0586c6;border-radius:12px;display:grid;place-items:center;min-width:44px;height:44px}.picker-label{flex:1}.picker-label small{display:block;font-size:12px;color:#8090a2;margin-bottom:3px}.picker-label strong{font-size:17px;color:#20354a}.calendar{background:#fff;margin-top:22px;border:1px solid #e1eaf2;border-radius:18px;padding:20px 16px}.calendar-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.blue{color:#0089c9;opacity:1}.calendar h2{font-size:18px;margin:7px 0 0}.week-controls{display:flex;gap:6px}.week-controls button,.sheet-header button{border:1px solid #e1e9f1;background:#fff;border-radius:9px;color:#486175;width:37px;height:37px;display:grid;place-items:center}.days{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin-top:21px}.day{background:#f4f7fa;border:1px solid transparent;border-radius:12px;padding:12px 0;display:flex;flex-direction:column;align-items:center;gap:7px;color:#7890a5}.day span{font-size:12px}.day strong{font-size:18px;color:#2c455d}.day.active{background:#0089c9;color:#fff;box-shadow:0 5px 12px #0089c938}.day.active strong{color:#fff}.schedule{margin-top:27px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;color:#0089c9}.section-heading h2{color:#172f44;font-size:20px;margin:0 0 5px;text-transform:capitalize}.section-heading p{color:#8695a6;font-size:13px;margin:0}.lesson{display:flex;gap:18px;background:#fff;border:1px solid #e3ebf2;border-radius:16px;padding:18px;margin-bottom:12px;box-shadow:0 2px 8px #1a344108}.lesson-time{min-width:108px;border-right:1px solid #e7edf2;padding-right:15px}.lesson-time strong{display:block;color:#087db9;font-size:13px;white-space:nowrap}.lesson-time span{display:block;margin-top:8px;font-size:12px;color:#8192a3}.lesson-body{min-width:0}.lesson-type{color:#0b91c7;background:#e9f7fc;display:inline-block;font-size:11px;font-weight:700;padding:4px 8px;border-radius:7px}.lesson h3{font-size:16px;margin:10px 0 12px;line-height:1.4}.lesson-meta{display:flex;align-items:flex-start;gap:7px;font-size:12px;color:#6b7f92;margin-top:7px;line-height:1.4}.lesson-meta svg{flex-shrink:0}.state{display:flex;align-items:center;justify-content:center;gap:12px;flex-direction:column;text-align:center;min-height:135px;border:1px dashed #cddce7;background:#fff;border-radius:14px;padding:22px;color:#668198;font-size:14px;line-height:1.6}.state.warning{border-color:#f4c68c;color:#8d622c}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.note{margin-top:20px;display:flex;align-items:center;gap:10px;background:#e8f5fc;border-radius:12px;padding:13px 15px;color:#35779b;font-size:12px;line-height:1.5}footer{text-align:center;color:#8d9ca8;font-size:11px;line-height:1.8;padding:0 16px 25px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#102a4090;display:flex;justify-content:center;align-items:flex-end;z-index:20}.sheet{background:#fff;width:min(100%,700px);height:min(85vh,800px);border-radius:24px 24px 0 0;padding:23px 20px;display:flex;flex-direction:column}.sheet-header{display:flex;justify-content:space-between;align-items:center}.sheet-header h2{font-size:21px}.search-field{display:flex;align-items:center;gap:10px;background:#f3f7fa;padding:12px;border-radius:12px;color:#698398}.search-field input{border:0;background:transparent;outline:none;width:100%;font-size:14px}.chips{display:flex;gap:7px;margin:14px 0}.chip{background:#f0f5f8;border:0;border-radius:30px;padding:8px 15px;color:#60788c;font-size:13px}.chip.active{background:#0089c9;color:#fff}.results{overflow:auto;flex:1}.results>button{display:flex;width:100%;align-items:center;text-align:left;gap:12px;background:#fff;border:0;border-bottom:1px solid #edf1f4;padding:13px 3px;color:#5b7589}.results>button>span:nth-child(2){flex:1}.results strong,.results small{display:block}.results strong{color:#253b4d;font-size:14px}.results small{font-size:11px;margin-top:4px;color:#8699a8}@media(max-width:500px){.hero{padding:23px 20px}.hero h1{font-size:24px}.top-right{font-size:0}.calendar h2{font-size:15px}.lesson{gap:12px;padding:14px}.lesson-time{min-width:95px;padding-right:10px}.lesson-time strong{font-size:12px}.lesson h3{font-size:15px}.days{gap:4px}.day{padding:10px 0}}.search-field input{font-size:16px;min-width:0}.sheet{max-height:calc(100dvh - env(safe-area-inset-top,0px));height:min(85dvh,800px);padding-bottom:max(20px,env(safe-area-inset-bottom,0px))}.results{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.auth-banner{margin-bottom:14px;padding:10px 14px;background:#e8f8f1;color:#17694d;border-radius:12px;font-size:13px;font-weight:700}.auth-hint{margin-bottom:14px;padding:12px;background:#edf5fc;color:#486e8d;border-radius:12px;font-size:13px}.auth-message{min-height:auto;margin-bottom:14px}.welcome{padding:32px 20px;text-align:center;border:1px solid #dce9f3;border-radius:20px;background:#fff;color:#087db9}.welcome h2{color:#20354a;font-size:22px;margin:14px 0 8px}.welcome p{color:#71869b;font-size:14px;line-height:1.6}.welcome-actions{display:grid;gap:10px;margin-top:22px}.welcome-actions button{background:#0789c8;color:#fff;border:0;border-radius:12px;padding:15px;font-weight:700;font-size:15px}.welcome-actions button+button{background:#e8f5fc;color:#087db9}.subscribe-panel{display:flex;align-items:center;gap:12px;margin-top:20px;padding:16px;background:#e8f5fc;border-radius:14px;color:#087db9;flex-wrap:wrap}.subscribe-panel>div{flex:1;min-width:150px}.subscribe-panel strong{font-size:14px}.subscribe-panel p{font-size:12px;color:#527e96;margin:5px 0 0}.subscribe-panel button{border:0;border-radius:10px;background:#0089c9;color:#fff;padding:12px 16px;font-size:13px;font-weight:700}.subscribe-panel button:disabled{background:#9ebacb;cursor:not-allowed}.app-nav{display:flex;gap:9px;margin:0 0 18px}.app-nav button{display:flex;align-items:center;justify-content:center;gap:7px;flex:1;padding:12px 9px;border:1px solid #dbe9f2;background:#fff;border-radius:12px;color:#56758d;font-weight:700;font-size:13px}.app-nav button.active{background:#0089c9;color:#fff;border-color:#0089c9}.app-nav span{font-size:11px;opacity:.8}.retry-auth,.refresh-subs{border:0;border-radius:10px;background:#0089c9;color:#fff;padding:10px 14px;font-weight:700;display:inline-flex;gap:8px;align-items:center;justify-content:center}.my-subs{background:#fff;border:1px solid #dce9f3;border-radius:18px;padding:22px;margin-bottom:20px}.my-subs h2{margin:0 0 8px;font-size:22px}.my-subs p{font-size:13px;color:#72879a;line-height:1.5}.my-subs-list{margin-top:14px}.my-subs-list button{width:100%;display:flex;align-items:center;gap:12px;padding:16px 4px;border:0;border-bottom:1px solid #e5edf3;background:#fff;color:#0586c6;text-align:left}.my-subs-list button span{flex:1}.my-subs-list strong,.my-subs-list small{display:block}.my-subs-list strong{color:#243d52}.my-subs-list small{color:#8295a4;font-size:12px;margin-top:4px}.my-subs .state{margin-top:14px;min-height:90px}@media(max-width:400px){.app-nav button{font-size:12px;padding:11px 6px}}
