@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2) format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2) format("woff2"),url(/assets/space-grotesk-latin-600-normal-BflQw4A9.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2) format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff) format("woff")}:root{--nav-bg: linear-gradient(135deg, #130b37 0%, #2b1685 44%, #155ee7 100%);--nav-aurora-surface: linear-gradient(120deg, rgba(10, 8, 35, .94), rgba(44, 27, 135, .92), rgba(17, 89, 214, .92), rgba(68, 56, 202, .92), rgba(14, 10, 45, .94));--bg: #eef1ff;--bg-deep: #090a22;--card-bg: rgba(255, 255, 255, .88);--surface-strong: rgba(255, 255, 255, .97);--surface-glass: rgba(255, 255, 255, .78);--note-bg: linear-gradient(145deg, #fff8c7, #f8e993);--note-text: #45370e;--text: #16152c;--text-strong: #08071b;--muted: #4e547a;--border: rgba(96, 105, 190, .3);--input-border: rgba(94, 100, 178, .34);--hover: rgba(106, 96, 255, .12);--chip-bg: rgba(231, 235, 255, .88);--accent: #745cff;--accent-2: #1f8cff;--accent-3: #79e4ff;--accent-strong: #3f2ed1;--accent-soft: rgba(116, 92, 255, .14);--off-bg: rgba(232, 236, 255, .82);--off-text: #62658d;--radius: 16px;--radius-sm: 10px;--shadow-sm: 0 1px 2px rgba(20, 24, 72, .08), 0 0 0 1px rgba(255, 255, 255, .5) inset;--shadow-md: 0 14px 35px rgba(31, 42, 126, .16), 0 2px 8px rgba(31, 42, 126, .08);--shadow-lg: 0 28px 80px rgba(8, 8, 38, .42), 0 0 0 1px rgba(255,255,255,.18) inset;--shadow-glow: 0 14px 36px rgba(88, 83, 255, .34), 0 0 22px rgba(44, 166, 255, .18);--font-display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;--font-body: "Inter", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--ease-spring: cubic-bezier(.2, 1.1, .22, 1);--ease-snap: cubic-bezier(.2, .8, .2, 1);font-family:var(--font-body);font-size:16.5px;color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.app.theme-dark{--nav-bg: linear-gradient(135deg, #07081c 0%, #201052 42%, #073e9d 100%);--bg: #080919;--card-bg: rgba(18, 20, 46, .78);--surface-strong: rgba(24, 27, 60, .94);--surface-glass: rgba(22, 24, 56, .62);--note-bg: linear-gradient(145deg, #173a5c, #101f45);--note-text: #d9f3ff;--text: #e8e9ff;--text-strong: #faf9ff;--muted: #bcc1ee;--border: rgba(158, 166, 255, .24);--input-border: rgba(158, 163, 255, .26);--hover: rgba(128, 113, 255, .18);--chip-bg: rgba(55, 57, 111, .76);--accent: #9a89ff;--accent-2: #42a5ff;--accent-3: #80ecff;--accent-strong: #c4bcff;--accent-soft: rgba(154, 137, 255, .18);--off-bg: rgba(34, 37, 78, .72);--off-text: #a6a9cd;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .42), 0 0 0 1px rgba(255,255,255,.04) inset;--shadow-md: 0 14px 42px rgba(0, 0, 0, .42), 0 0 0 1px rgba(255,255,255,.06) inset;--shadow-lg: 0 20px 50px rgba(0, 0, 0, .55);--shadow-glow: 0 16px 38px rgba(92, 116, 255, .34), 0 0 28px rgba(58, 179, 255, .18);background-color:#080919;color-scheme:dark}*{box-sizing:border-box}html{background-color:#21105f;background-image:var(--nav-aurora-surface);background-size:320% 320%;animation:nav-aurora 26s ease infinite}body{margin:0;background:var(--bg-deep);overscroll-behavior-y:none}.app{background:transparent;color:var(--text);position:relative;isolation:isolate}.app{display:flex;flex-direction:column;height:100vh;height:100dvh}.cosmos-layer{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 12% 18%,rgba(130,103,255,.3),transparent 27%),radial-gradient(circle at 84% 8%,rgba(43,139,255,.3),transparent 25%),radial-gradient(circle at 72% 86%,rgba(77,225,255,.18),transparent 27%),linear-gradient(140deg,#f7f8ff,#edf1ff 42%,#e7ecff)}.cosmos-layer:before{content:"";position:absolute;inset:0;opacity:.46;background-image:radial-gradient(1px 1px at 8% 14%,rgba(255,255,255,.95),transparent),radial-gradient(1px 1px at 22% 74%,rgba(91,109,255,.65),transparent),radial-gradient(1.2px 1.2px at 38% 34%,rgba(255,255,255,.9),transparent),radial-gradient(1px 1px at 51% 82%,rgba(61,151,255,.62),transparent),radial-gradient(1.4px 1.4px at 66% 18%,rgba(255,255,255,.9),transparent),radial-gradient(1px 1px at 80% 62%,rgba(116,92,255,.58),transparent),radial-gradient(1.2px 1.2px at 92% 28%,rgba(255,255,255,.9),transparent);background-size:260px 260px;animation:star-drift 34s linear infinite,star-pulse 5.5s ease-in-out infinite alternate}.cosmos-layer:after{content:"";position:absolute;inset:-20%;background:radial-gradient(1px 1px at 12% 42%,rgba(255,255,255,.9),transparent),radial-gradient(1.5px 1.5px at 28% 18%,rgba(120,231,255,.75),transparent),radial-gradient(1px 1px at 44% 74%,rgba(255,255,255,.8),transparent),radial-gradient(1.4px 1.4px at 67% 32%,rgba(162,140,255,.72),transparent),radial-gradient(1px 1px at 83% 62%,rgba(255,255,255,.85),transparent);background-size:360px 360px;opacity:.58;animation:star-drift-slow 58s linear infinite}.app:before{content:"";position:fixed;top:9%;left:-18%;width:18rem;height:2px;z-index:-1;pointer-events:none;opacity:.56;background:linear-gradient(90deg,transparent,rgba(255,255,255,.95),rgba(121,228,255,.78),transparent);filter:drop-shadow(0 0 10px rgba(121,228,255,.72));transform:rotate(-18deg);animation:comet-pass 18s var(--ease-snap) infinite}.app:after{content:"";position:fixed;right:8%;bottom:10%;width:18rem;height:18rem;z-index:-1;pointer-events:none;border-radius:50%;opacity:.16;background:radial-gradient(circle,rgba(121,228,255,.78),rgba(116,92,255,.38) 38%,transparent 68%);filter:blur(20px);animation:nebula-breathe 9s ease-in-out infinite alternate}.app.theme-dark .cosmos-layer{background:radial-gradient(circle at 14% 16%,rgba(104,80,255,.3),transparent 27%),radial-gradient(circle at 86% 12%,rgba(17,92,220,.34),transparent 25%),radial-gradient(circle at 78% 86%,rgba(44,204,255,.16),transparent 27%),linear-gradient(140deg,#060716,#0b102b 44%,#08091b)}.app.theme-dark .cosmos-layer:before{opacity:.55}@keyframes star-drift{0%{background-position:0 0}to{background-position:260px 260px}}@keyframes star-drift-slow{0%{transform:translateZ(0)}to{transform:translate3d(-90px,70px,0)}}@keyframes star-pulse{0%{opacity:.34}to{opacity:.72}}@keyframes comet-pass{0%,72%{transform:translateZ(0) rotate(-18deg);opacity:0}78%{opacity:.68}to{transform:translate3d(140vw,24vh,0) rotate(-18deg);opacity:0}}@keyframes nebula-breathe{0%{transform:translate3d(-12px,8px,0) scale(.92);opacity:.12}to{transform:translate3d(10px,-12px,0) scale(1.08);opacity:.2}}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation:none!important}}.skip-link{position:fixed;top:10px;left:12px;z-index:300;transform:translateY(-160%);background:#fff;color:#17142f;border:2px solid var(--accent);border-radius:10px;padding:10px 14px;font-weight:750;box-shadow:var(--shadow-md);transition:transform .16s ease}.skip-link:focus{transform:translateY(0)}.app.density-compact{font-size:13px}.app.density-compact .lesson-card .content{font-size:13px;padding:7px 9px 10px}.app.density-compact .lesson-card .head{padding:5px 8px}.app.density-compact .lesson-card .titlebar{padding:5px 8px;font-size:12px}.app.density-compact .sticky-note{min-height:56px;font-size:12px;padding:7px}.app.density-compact .week-grid{gap:7px;padding:8px 10px}.app.density-compact .btn{padding:7px 13px;font-size:14px}.app.density-compact .list-row{padding:8px 12px}.app.density-compact .day-col{gap:3px}.app.density-compact .lesson-card.blank-lesson{height:auto;min-height:0;border:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.app.density-compact .lesson-card.blank-lesson:before,.app.density-compact .lesson-card.blank-lesson:after,.app.density-compact .lesson-card.blank-lesson .titlebar,.app.density-compact .lesson-card.blank-lesson .content,.app.density-compact .lesson-card.blank-lesson .att-badge,.app.density-compact .lesson-card.blank-lesson .week-edit-hint,.app.density-compact .lesson-card.blank-lesson .lesson-card-actions{display:none}.app.density-compact .lesson-card.blank-lesson .head{padding:6px 9px;border-radius:7px;box-shadow:0 5px 12px #0d164e1f}.app.density-compact .lesson-card.blank-lesson:hover{transform:none;box-shadow:none}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;color:#e8ecffad;background:var(--bg-deep)}.loading-wordmark{width:min(300px,62vw);margin-bottom:6px;animation:loading-breathe 2.2s ease-in-out infinite}@keyframes loading-breathe{0%,to{opacity:1;transform:scale(1)}50%{opacity:.72;transform:scale(.985)}}.toast-stack{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:200;align-items:center;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;max-width:min(560px,90vw);padding:11px 16px;border-radius:14px;background:var(--surface-strong);border:1px solid var(--border);color:var(--text);font-size:14.5px;box-shadow:var(--shadow-md);pointer-events:auto;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:toast-in .22s var(--ease-spring)}@keyframes toast-in{0%{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}.toast-success{border-color:#54c48a8c}.toast-error{border-color:#eb6a6099}.toast-success:before{content:"✓";color:#3fa06f;font-weight:800}.toast-error:before{content:"!";color:#d9544a;font-weight:800}.app.theme-dark .toast-success:before{color:#6fdba0}.app.theme-dark .toast-error:before{color:#ff9187}.toast-msg{min-width:0}.toast-action{border:none;background:none;cursor:pointer;padding:2px 6px;color:var(--accent-strong);font-weight:700;font-size:14px;font-family:var(--font-display);flex:0 0 auto}.toast-close{border:none;background:none;cursor:pointer;color:var(--muted);padding:2px 4px;flex:0 0 auto;font-size:13px}.update-pill{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:210;border:none;cursor:pointer;padding:10px 18px;border-radius:999px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-family:var(--font-display);font-weight:700;font-size:14.5px;box-shadow:0 12px 30px #4e60ff73;animation:toast-in .3s var(--ease-spring)}.update-pill:hover{filter:brightness(1.08)}.palette-backdrop{align-items:flex-start;padding-top:min(16vh,150px)}.palette{width:min(620px,94vw);background:var(--card-bg);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-lg, 0 30px 70px rgba(10, 8, 40, .45));overflow:hidden;display:flex;flex-direction:column;animation:toast-in .18s var(--ease-spring)}.palette-input-row{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);color:var(--muted)}.palette-input-row input{flex:1;min-width:0;border:none;background:none;outline:none;font-size:17px;color:var(--text);font-family:var(--font-display);font-weight:600}.palette kbd{font-family:var(--font-body, inherit);font-size:11px;color:var(--muted);border:1px solid var(--border);border-radius:5px;padding:2px 6px;background:var(--surface-strong)}.palette-list{max-height:min(380px,48vh);overflow-y:auto;padding:7px}.palette-empty{padding:18px;text-align:center;color:var(--muted)}.palette-item{display:flex;align-items:center;gap:11px;width:100%;padding:10px 12px;border:none;border-radius:11px;cursor:pointer;background:none;color:var(--text);font-size:15px;text-align:left;font-family:var(--font-display);font-weight:600}.palette-item.selected{background:var(--accent-soft);color:var(--accent-strong)}.palette-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette-hint{color:var(--muted);font-size:12.5px;font-weight:500;flex:0 0 auto}.palette-footer{display:flex;gap:16px;justify-content:center;padding:9px 14px;border-top:1px solid var(--border);color:var(--muted);font-size:12px}.editor-modal.drop-target{outline:3px dashed var(--accent);outline-offset:-3px;box-shadow:0 0 0 6px var(--accent-soft),var(--shadow-md)}.lesson-card .head.lesson-drag-handle{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.lesson-card .head.lesson-drag-handle:active{cursor:grabbing}.lesson-card.drag-src{opacity:.45}.lesson-card.drag-src .head.lesson-drag-handle{cursor:grabbing}.lesson-card.drop-target{outline:3px dashed var(--accent);outline-offset:-3px;box-shadow:0 0 0 5px var(--accent-soft),var(--shadow-md);transform:scale(1.012)}.lesson-drag-ghost{position:fixed;z-index:120;pointer-events:none;display:flex;align-items:center;gap:8px;width:min(260px,68vw);padding:10px 14px;color:#fff;font-family:var(--font-display);font-weight:700;font-size:14px;border:1px solid rgba(255,255,255,.55);border-left:5px solid var(--lesson-color);border-radius:12px;background:#16123feb;box-shadow:0 20px 55px #09082a61,0 0 28px color-mix(in srgb,var(--lesson-color) 38%,transparent);-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);transform:translate(-24px,-50%) rotate(1.5deg) scale(1.03);animation:drag-ghost-in .18s var(--ease-spring) both}.lesson-drag-ghost span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes drag-ghost-in{0%{opacity:0;transform:translate(-24px,-45%) scale(.94)}}.topnav{position:relative;z-index:30;overflow:visible;display:flex;align-items:center;gap:10px;background:transparent;color:#fff;padding:calc(8px + env(safe-area-inset-top,0px)) 12px 8px;box-shadow:0 2px #ffffff1a inset,0 14px 45px #0a0d3847;scrollbar-width:none}.topnav>.topnav-safe-backdrop{position:absolute;inset:calc(-1*env(safe-area-inset-top,0px)) 0 0;z-index:0;pointer-events:none;background:var(--nav-aurora-surface);background-size:320% 320%;animation:nav-aurora 26s ease infinite}.topnav::-webkit-scrollbar{display:none}.mac-native .topnav{padding-left:86px}@keyframes nav-aurora{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.topnav:before{content:"";position:absolute;inset:calc(-1*env(safe-area-inset-top,0px)) 0 0;pointer-events:none;opacity:.68;background-image:radial-gradient(1.4px 1.4px at 8% 30%,#fff,transparent),radial-gradient(1px 1px at 18% 65%,#fff,transparent),radial-gradient(1.4px 1.4px at 27% 20%,#fff,transparent),radial-gradient(1px 1px at 38% 55%,#fff,transparent),radial-gradient(1.4px 1.4px at 49% 75%,#fff,transparent),radial-gradient(1px 1px at 58% 25%,#fff,transparent),radial-gradient(1.4px 1.4px at 68% 60%,#fff,transparent),radial-gradient(1px 1px at 77% 15%,#fff,transparent),radial-gradient(1.4px 1.4px at 86% 70%,#fff,transparent),radial-gradient(1px 1px at 95% 40%,#fff,transparent);animation:nav-twinkle 5s ease-in-out infinite alternate}.topnav:after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(128,228,255,.65),rgba(154,137,255,.45),transparent);pointer-events:none}@keyframes nav-twinkle{0%{opacity:.3}to{opacity:.85}}.topnav>*{position:relative;z-index:1}.topnav .brand{display:inline-flex;align-items:center;flex:0 0 auto;white-space:nowrap;min-width:0;background:transparent;border:0;padding:10px 22px;border-radius:16px;position:relative;-webkit-user-select:none;user-select:none}.topnav button.brand,.topnav button.brand:active{border-color:transparent;box-shadow:none}.brand:before{content:"";position:absolute;z-index:2;pointer-events:none;inset:10px 22px;background:linear-gradient(110deg,transparent 22%,rgba(154,226,255,.28) 38%,#fff 50%,rgba(207,177,255,.42) 60%,transparent 76%);background-size:260% 100%;background-position:135% 50%;-webkit-mask:var(--wordmark-url) center / contain no-repeat;mask:var(--wordmark-url) center / contain no-repeat;opacity:0;transform:scale(1);transform-origin:center}.brand-wordmark{height:44px;width:auto;object-fit:contain;object-position:left center;position:relative;z-index:1;filter:drop-shadow(0 0 14px rgba(104,230,255,.24)) drop-shadow(0 8px 16px rgba(0,0,0,.28));transform:scale(1);transition:transform .34s var(--ease-spring);-webkit-user-drag:none;-webkit-user-select:none;user-select:none;pointer-events:none}.brand:hover .brand-wordmark{transform:scale(1.065)}.brand:hover:before{animation:brand-wordmark-shine 1.35s ease-in-out infinite}.nav-tabs{flex:1 1 auto;min-width:0;display:grid;grid-template-columns:repeat(7,minmax(78px,1fr));gap:6px}.topnav button{display:inline-flex;align-items:center;justify-content:center;gap:7px;position:relative;overflow:hidden;background:#ffffff17;border:1px solid rgba(255,255,255,.14);color:#f4f8ffe6;font-family:var(--font-display);font-size:15.5px;font-weight:650;padding:9px 10px;cursor:pointer;border-radius:999px;transform-origin:center center;transform:scale(1);z-index:1;box-shadow:inset 0 1px #fff3,inset 0 -1px #0000001a;transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,filter .18s ease,transform .22s var(--ease-spring);min-width:0;white-space:nowrap}.topnav button:hover{color:#fff;background:#ffffff47;border-color:#ffffff61;box-shadow:inset 0 1px #ffffff73,inset 0 -1px #00000014,0 10px 24px #00000038;filter:saturate(1.12)}.topnav button:not(.brand):hover{transform:scale(1.15);z-index:5}.topnav button:active{transform:scale(1.07)}.topnav button.brand{overflow:visible;background:transparent;border-color:transparent;box-shadow:none}.topnav button.brand:hover{background:transparent;border-color:transparent;box-shadow:none;filter:none}@keyframes brand-wordmark-shine{0%{background-position:135% 50%;opacity:0;transform:scale(1.065)}16%{opacity:.9}64%,to{background-position:-35% 50%;opacity:0;transform:scale(1.065)}}.topnav button.active{color:#fff;font-weight:700;background:linear-gradient(135deg,#ffffff3d,#7edbff29);border-color:#b2d8ff5c;box-shadow:inset 0 1px #ffffff4d,0 12px 28px #0003,0 0 24px #7edbff24 inset}.nav-tabs button:hover{z-index:4;background:linear-gradient(160deg,#9780fff7,#409cfff2);border-color:#ffffff80;box-shadow:inset 0 1px #ffffff8c,inset 0 -1px #0000001a,0 18px 36px #0000004d,0 0 30px #7edbff61}.nav-icon{width:24px;height:24px;border-radius:999px;display:grid;place-items:center;color:#e8f8ff;background:transparent;flex:0 0 auto;transition:transform .26s var(--ease-spring),background .18s ease,box-shadow .18s ease}.nav-icon svg{width:20px;height:20px}.topnav button:hover .nav-icon{transform:translateY(-1px) rotate(-4deg) scale(1.08);background:#fff3;box-shadow:0 0 18px #7edbff38}.topnav button.active .nav-icon{animation:icon-orbit-pop .55s var(--ease-spring) both}.icon-btn{width:48px;height:48px;padding:0!important;line-height:1;flex:0 0 auto;border-radius:50%!important}.nav-action{min-width:48px;justify-content:center;background:transparent!important;border-color:transparent!important}.nav-action:hover{background:#ffffff21!important;border-color:#ffffff2e!important}.phone-nav,.phone-more-layer{display:none}.spin-icon{animation:icon-spin .8s linear infinite}@keyframes icon-spin{to{transform:rotate(360deg)}}@keyframes icon-orbit-pop{0%{transform:scale(.88) rotate(-8deg)}55%{transform:scale(1.13) rotate(5deg)}to{transform:scale(1) rotate(0)}}@media(max-width:1180px){.nav-tabs{grid-template-columns:repeat(7,minmax(68px,1fr))}.topnav button{padding-inline:8px;font-size:14.5px}}main{flex:1;overflow:auto;position:relative;animation:view-arrive .24s var(--ease-snap)}.view-loading{min-height:46vh;display:grid;place-items:center}.view-loading-orbit{width:42px;height:42px;border-radius:50%;border:3px solid rgba(116,92,255,.18);border-top-color:var(--accent);box-shadow:0 0 28px #4392ff38;animation:icon-spin .8s linear infinite}@keyframes view-arrive{0%{transform:translateY(6px) scale(.996)}to{transform:none}}.nav-tabs{flex-basis:0%;flex-grow:1;flex-shrink:1;transition:flex-grow .55s var(--ease-snap),opacity .4s ease}.nav-tabs-collapsed{flex-grow:0!important;opacity:0;overflow:hidden;pointer-events:none}.inline-search{flex:0 1 0%;min-width:0;overflow:hidden;opacity:0;display:flex;align-items:center;transition:flex-grow .55s var(--ease-snap),opacity .4s ease;pointer-events:none}.inline-search-open{flex-grow:1;opacity:1;pointer-events:auto}.inline-search input{width:100%;min-width:0;border-radius:999px;padding:10px 18px;font-size:15.5px;background:#ffffff1f;border:1px solid rgba(255,255,255,.22);color:#fff}.inline-search input::placeholder{color:#f4f8ff9e}.inline-search input:focus{background:#ffffff2e;border-color:#fff6}.icon-btn.nav-action.active{background:#ffffff3d!important;border-color:#fff6!important}.week-toolbar{display:flex;align-items:center;gap:8px;padding:9px 14px;background:var(--surface-glass);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5;overflow-x:auto;-webkit-backdrop-filter:blur(22px) saturate(1.2);backdrop-filter:blur(22px) saturate(1.2);box-shadow:0 1px #ffffffa6 inset,0 10px 28px #18216714}.week-toolbar h2{font-size:23px;margin:0 8px;font-weight:700;font-family:var(--font-display);font-variant-numeric:tabular-nums}.btn{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(180deg,#ffffffeb,#f4f7ffbd);border:1px solid rgba(111,121,207,.3);color:var(--text);border-radius:999px;min-height:40px;padding:9px 15px;font-family:var(--font-display);font-size:15.5px;font-weight:700;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .22s var(--ease-spring),box-shadow .16s ease,filter .16s ease;box-shadow:0 1px #ffffffd1 inset,0 8px 18px #2937881a}.btn:before{content:"";position:absolute;inset:1px;border-radius:inherit;pointer-events:none;z-index:-1;background:linear-gradient(135deg,rgba(255,255,255,.34),transparent 58%)}.btn:after{content:"";position:absolute;inset:-40% auto -40% -55%;width:42%;z-index:-1;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(126,92,255,.4),rgba(255,255,255,.85),rgba(126,92,255,.4),transparent);transform:skew(-18deg);transition:left .42s var(--ease-snap)}.btn:hover{background:linear-gradient(180deg,#fffffffa,#ebf0ffd6);border-color:#5b68e673;box-shadow:0 1px #ffffffe6 inset,0 12px 26px #3645aa26;transform:translateY(-2px) scale(1.025)}.btn:hover:after{left:115%}.btn:active{transform:translateY(1px) scale(.98)}.btn:disabled{cursor:default;opacity:.62;transform:none;box-shadow:none}.btn:disabled:hover{background:var(--card-bg);filter:none}.btn.primary{background:linear-gradient(135deg,#815fff,#286cff 54%,#27c3ff);border-color:#ffffff42;color:#fff;box-shadow:var(--shadow-glow);font-weight:600}.btn-icon{width:1.25em;height:1.25em;flex:0 0 auto}.btn-icon.solo{width:1.45em;height:1.45em}.btn.primary:disabled:hover{background:linear-gradient(135deg,var(--accent),var(--accent-2))}.btn.primary:hover{filter:brightness(1.06);box-shadow:0 18px 40px #4e60ff61,0 0 24px #27c3ff40}.btn:hover .btn-icon{animation:icon-bob .42s var(--ease-spring)}@keyframes icon-bob{0%,to{transform:translateY(0) rotate(0)}45%{transform:translateY(-2px) rotate(-6deg)}}.btn.danger{color:#d9444f;border-color:#d9444f47}.app.theme-dark .btn.danger{color:#ff8a75;border-color:#5c332c}.app.theme-dark .btn{background:linear-gradient(180deg,#2d3063e0,#1c1f46c7);border-color:#9aa3ff33;box-shadow:0 1px #ffffff14 inset,0 10px 24px #00000038}.app.theme-dark .btn:hover{background:linear-gradient(180deg,#3a3e7ceb,#222652d1);border-color:#9aa3ff57}.app.theme-dark .btn.primary{background:linear-gradient(135deg,#815fff,#286cff 54%,#27c3ff);border-color:#ffffff42;color:#fff}.app.theme-dark .btn.primary:hover{filter:brightness(1.06);box-shadow:0 18px 40px #4e60ff61,0 0 24px #27c3ff40}.week-grid{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));gap:8px;padding:10px 12px 18px;align-items:start}.week-grid>*{animation:card-arrive .28s var(--ease-snap)}.week-grid>*:nth-child(5n+2){animation-delay:25ms}.week-grid>*:nth-child(5n+3){animation-delay:.05s}.week-grid>*:nth-child(5n+4){animation-delay:75ms}.week-grid>*:nth-child(5n){animation-delay:.1s}@keyframes card-arrive{0%{transform:translateY(7px) scale(.992)}to{transform:none}}.day-col{display:flex;flex-direction:column;gap:8px;min-width:0}.day-col-head{display:flex;flex-direction:column;gap:7px;min-width:0}.day-head{font-family:var(--font-display);font-size:14.5px;padding:1px 3px;color:var(--muted);display:flex;align-items:center}.day-head b{color:var(--text-strong);font-weight:700}.sticky-note{background:var(--note-bg);color:var(--note-text);border-radius:12px;min-height:66px;padding:9px 10px;font-size:14.5px;width:100%;border:1px solid rgba(153,126,28,.18);resize:vertical;font-family:inherit;line-height:1.35;box-shadow:0 9px 22px #9c821c1f,0 1px #ffffff8c inset;transition:transform .22s var(--ease-spring),box-shadow .18s ease,border-color .18s ease}.sticky-note:hover,.sticky-note:focus{transform:translateY(-2px) rotate(-.35deg);border-color:#997e1c57;box-shadow:0 13px 28px #9c821c2e,0 1px #ffffff9e inset}.offday{background:var(--off-bg);border-radius:var(--radius);text-align:center;padding:26px 8px;color:var(--off-text);font-weight:700;font-size:17px}.offday small{display:block;font-weight:400;margin-top:4px}.lesson-card{background:linear-gradient(180deg,var(--surface-strong),var(--card-bg));border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;position:relative;border:1px solid var(--border);height:300px;transition:box-shadow .24s ease,transform .26s var(--ease-spring),border-color .18s ease,filter .18s ease;-webkit-backdrop-filter:blur(18px) saturate(1.08);backdrop-filter:blur(18px) saturate(1.08);display:flex;flex-direction:column}.lesson-card:after{content:"";position:absolute;inset:auto 10% -34px;height:46px;pointer-events:none;opacity:0;border-radius:50%;background:radial-gradient(ellipse at center,rgba(116,92,255,.24),transparent 68%);transition:opacity .22s ease,transform .26s var(--ease-spring)}.lesson-card:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:linear-gradient(135deg,rgba(255,255,255,.24),transparent 34%)}.lesson-card>*{position:relative;z-index:1}.lesson-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px) scale(1.006);border-color:#7361ff57}.lesson-card:hover:after{opacity:1;transform:translateY(-8px) scale(1.08)}.lesson-card:hover .head{filter:saturate(1.08) brightness(1.03)}.lesson-card .head{color:#fff;padding:7px 86px 7px 10px;font-family:var(--font-display);font-size:13px;flex-shrink:0;overflow:hidden;box-shadow:0 -1px #ffffff40 inset,0 10px 28px #0d164e1a}.lesson-card .head .subj{font-weight:700;letter-spacing:.4px;text-transform:uppercase}.lesson-card .head .subject-name-no-break{display:inline-block;max-width:100%;white-space:nowrap}.lesson-card .head .time{opacity:.92;margin-top:1px;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time-compact{display:none}.lesson-card .titlebar{display:flex;align-items:center;gap:5px;padding:6px 9px;border-bottom:1px solid var(--border);font-family:var(--font-display);font-size:14.5px;background:#ffffff4d;flex-shrink:0}.app.theme-dark .lesson-card .titlebar{background:#2629588c}.unit-chip{color:#fff;font-size:11px;border-radius:999px;padding:2px 7px;white-space:nowrap;box-shadow:0 6px 16px #00000029}.unit-chip.lg{font-size:15px;font-weight:700;padding:5px 13px;border-radius:7px}.card-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;cursor:pointer;color:var(--text-strong)}.att-badge{display:inline-block;font-size:12.5px;color:#fff;border-radius:999px;padding:2px 8px;margin:6px 0 0 10px;box-shadow:0 6px 16px #00000029}.lesson-card .content{position:relative;flex:1 1 auto;padding:8px 10px 16px;font-family:var(--font-display);font-size:14px;line-height:1.36;max-height:210px;overflow:hidden;cursor:pointer}.lesson-card .content *,.editor-body .tiptap *{font-family:var(--font-display)!important;font-size:14px!important}.lesson-preview-body *{font-family:var(--font-display)!important;font-size:18px!important}.app.preview-text-regular .lesson-preview-body,.app.preview-text-regular .lesson-preview-body *{font-size:15px!important}.lesson-card .content:after{content:"";position:absolute;left:0;right:0;bottom:0;height:18px;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(251,252,255,.82))}.app.theme-dark .lesson-card .content:after{background:linear-gradient(180deg,transparent,rgba(18,20,46,.92))}.today-card .content:after{display:none}.lesson-card .content ul{margin:4px 0;padding-left:18px}.lesson-card .content p{margin:3px 0}.lesson-card .content img{max-width:100%}.app.density-comfortable .week-grid .lesson-card{height:190px}.app.density-comfortable .week-grid .lesson-card .content{max-height:100px}@media(min-width:1180px){.lesson-card{height:380px}.lesson-card .content{max-height:290px}.app.density-comfortable .week-grid .lesson-card{height:220px}.app.density-comfortable .week-grid .lesson-card .content{max-height:130px}}.lesson-card-actions{position:absolute;z-index:8;top:5px;right:5px;display:flex;align-items:center;gap:3px;opacity:0;pointer-events:none;transform:translateY(-3px) scale(.94);transition:opacity .16s ease,transform .2s var(--ease-spring)}.lesson-card:hover .lesson-card-actions,.lesson-card:focus-within .lesson-card-actions,.lesson-card-actions:has([aria-expanded=true]){opacity:1;pointer-events:auto;transform:none}.lesson-card-action{width:34px;height:34px;padding:0;display:grid;place-items:center;color:#fff;background:#0c0d3047;border:1px solid rgba(255,255,255,.24);border-radius:9px;cursor:pointer;box-shadow:inset 0 1px #ffffff29;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .18s var(--ease-spring),background .16s ease,box-shadow .16s ease}.lesson-card-action:hover,.lesson-card-action:focus-visible{background:#11123ba8;transform:translateY(-1px) scale(1.06);box-shadow:0 8px 18px #0809283d,inset 0 1px #ffffff47}.lesson-drag-handle{cursor:grab;touch-action:none}.lesson-drag-handle:active{cursor:grabbing;transform:scale(.94)}.lesson-card-menu{position:absolute;z-index:12;top:39px;right:0;width:248px;display:grid;gap:3px;padding:7px;color:var(--text);background:color-mix(in srgb,var(--surface-strong) 94%,transparent);border:1px solid var(--border);border-radius:12px;box-shadow:0 22px 50px #0b0d3147;-webkit-backdrop-filter:blur(24px) saturate(1.25);backdrop-filter:blur(24px) saturate(1.25);animation:lesson-menu-in .2s var(--ease-spring) both}.lesson-card-menu button{min-height:39px;display:flex;align-items:center;gap:9px;padding:8px 10px;color:var(--text-strong);background:transparent;border:0;border-radius:8px;font:650 13px/1.2 var(--font-display);text-align:left;cursor:pointer}.lesson-card-menu button:hover,.lesson-card-menu button:focus-visible{background:var(--accent-soft);color:var(--accent-strong)}.lesson-card-menu button:disabled{opacity:.42;cursor:not-allowed}.lesson-menu-divider{height:1px;margin:3px 5px;background:var(--border)}@keyframes lesson-menu-in{0%{opacity:0;transform:translateY(-6px) scale(.96)}}.btn.week-edit-hint{position:absolute;bottom:7px;right:7px;opacity:0;font-size:11px;padding:5px 9px;min-height:0;transition:opacity .16s ease,transform .22s var(--ease-spring)}.lesson-card:hover .btn.week-edit-hint,.lesson-card:focus-within .btn.week-edit-hint{opacity:1}.modal-backdrop{position:fixed;inset:0;background:radial-gradient(circle at 50% 10%,rgba(98,87,255,.22),transparent 35%),#07091c94;display:flex;align-items:flex-start;justify-content:center;z-index:50;padding:40px 20px;animation:backdrop-in .14s ease;-webkit-backdrop-filter:blur(12px) saturate(1.2);backdrop-filter:blur(12px) saturate(1.2)}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(14px) scale(.97);filter:blur(5px)}72%{transform:translateY(-2px) scale(1.006);filter:blur(0)}to{opacity:1;transform:none;filter:blur(0)}}.confirm-backdrop{z-index:80;align-items:center}.confirm-dialog{width:min(500px,calc(100vw - 32px));display:grid;grid-template-columns:auto 1fr;gap:14px 16px;padding:22px;color:var(--text);background:color-mix(in srgb,var(--surface-strong) 96%,transparent);border:1px solid rgba(255,255,255,.38);border-radius:18px;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(24px) saturate(1.2);backdrop-filter:blur(24px) saturate(1.2);animation:modal-in .24s var(--ease-spring)}.confirm-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;color:var(--accent-strong);background:var(--accent-soft)}.confirm-icon.danger{color:#c73748;background:#d9444f1f}.confirm-copy h2{margin:1px 0 6px;font:700 20px/1.2 var(--font-display)}.confirm-copy p{margin:0;color:var(--muted);font-size:15px;line-height:1.5}.confirm-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:9px;margin-top:4px}.move-collision-dialog{position:relative;width:min(590px,calc(100vw - 28px));padding:25px;color:var(--text);background:color-mix(in srgb,var(--surface-strong) 97%,transparent);border:1px solid rgba(255,255,255,.4);border-radius:18px;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(26px) saturate(1.2);backdrop-filter:blur(26px) saturate(1.2);animation:modal-in .24s var(--ease-spring)}.move-collision-close{position:absolute;top:13px;right:13px;width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:50%;color:var(--muted);background:var(--chip-bg);cursor:pointer}.move-collision-kicker{color:var(--accent-strong);font:750 12px/1 var(--font-display);text-transform:uppercase}.move-collision-copy h2{margin:7px 46px 7px 0;font:700 24px/1.2 var(--font-display)}.move-collision-copy p{margin:0;color:var(--muted);font-size:15px;line-height:1.5}.move-collision-copy p b{color:var(--text-strong)}.move-collision-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.move-choice{min-width:0;min-height:116px;padding:15px;display:flex;align-items:flex-start;gap:12px;text-align:left;color:var(--text);background:var(--card-bg);border:1px solid var(--border);border-radius:12px;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .2s var(--ease-spring),border-color .16s ease,box-shadow .16s ease}.move-choice:hover,.move-choice:focus-visible{transform:translateY(-3px);border-color:var(--accent);box-shadow:var(--shadow-md)}.move-choice-icon{width:42px;height:42px;flex:0 0 auto;display:grid;place-items:center;border-radius:10px;color:#b13142;background:#d9444f1f}.move-choice-icon.swap{color:var(--accent-strong);background:var(--accent-soft)}.move-choice span:last-child{min-width:0;display:flex;flex-direction:column;gap:5px}.move-choice b{color:var(--text-strong);font:700 16px/1.2 var(--font-display)}.move-choice small{color:var(--muted);font-size:13px;line-height:1.35}.move-collision-cancel{margin-top:12px}.editor-modal{background:linear-gradient(180deg,var(--surface-strong),var(--card-bg));border-radius:20px;width:min(880px,96vw);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg);animation:modal-in .28s var(--ease-spring);border:1px solid rgba(255,255,255,.34);-webkit-backdrop-filter:blur(22px) saturate(1.18);backdrop-filter:blur(22px) saturate(1.18)}.app.theme-dark .editor-modal{border-color:#9aa3ff2e}.editor-head{color:#fff;padding:15px 18px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 -1px #fff3 inset}.editor-head h2{margin:0;font-family:var(--font-display);font-size:20px;line-height:1.2}.editor-head .when{font-size:15px;opacity:.9;margin-top:3px;font-variant-numeric:tabular-nums}.editor-head .subj{font-family:var(--font-display);font-weight:700;letter-spacing:.2px;font-size:17.5px}.editor-head button{background:none;border:none;color:#fff;font-size:21.5px;cursor:pointer}.editor-head .modal-close:hover{transform:rotate(7deg) scale(1.08)}.editor-head-actions{display:flex;align-items:center;gap:10px}.editor-saved-indicator{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;background:#0c122f38;color:#fff;font-family:var(--font-display);font-size:12px;font-weight:700}.editor-head .modal-close{width:40px;height:40px;min-width:40px;padding:0;border-radius:50%;display:grid;place-items:center;background:#ffffff24;border:1px solid rgba(255,255,255,.24);color:#fff;box-shadow:inset 0 1px #ffffff2e;transition:transform .2s var(--ease-spring),background .16s ease}.editor-head .modal-close:hover{transform:scale(1.08);background:#ffffff3d}.editor-title-row{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border);align-items:center;flex-wrap:wrap}.editor-title-row input[type=text]{flex:1 1 260px;min-width:0;border:1px solid var(--input-border);background:#ffffffa8;color:var(--text);border-radius:12px;padding:10px 12px;font-size:17.5px;box-shadow:0 1px #ffffffb8 inset}.app.theme-dark .editor-title-row input[type=text]{background:#0b0e266b}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:9px 14px;border-bottom:1px solid var(--border)}.toolbar button{display:inline-flex;align-items:center;justify-content:center;background:#ffffff6b;border:1px solid rgba(96,105,190,.22);border-radius:11px;min-width:38px;height:36px;padding:0 10px;font-family:var(--font-display);font-size:17px;font-weight:700;cursor:pointer;color:var(--text);box-shadow:0 1px #ffffff94 inset;transition:background .14s ease,border-color .14s ease,transform .2s var(--ease-spring),box-shadow .14s ease}.toolbar button:hover{background:#ffffffb8;border-color:#745cff5c;transform:translateY(-2px) scale(1.05);box-shadow:var(--shadow-sm)}.toolbar button:active{transform:translateY(1px) scale(.96)}.toolbar button.on{background:linear-gradient(135deg,#815fff2e,#27c3ff24);color:var(--accent-strong);border-color:#745cff57;animation:selected-pulse .32s var(--ease-spring)}@keyframes selected-pulse{0%{transform:scale(.94)}70%{transform:scale(1.07)}to{transform:scale(1)}}.toolbar .sep{width:1px;background:var(--border);margin:3px 6px}.toolbar-color-swatch{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:36px;padding:0 10px;position:relative;background:#ffffff6b;border:1px solid rgba(96,105,190,.22);border-radius:11px;color:var(--text);cursor:pointer;box-shadow:0 1px #ffffff94 inset;transition:background .14s ease,border-color .14s ease,transform .2s var(--ease-spring),box-shadow .14s ease}.toolbar-color-swatch:hover{background:#ffffffb8;border-color:#745cff5c;transform:translateY(-2px) scale(1.05);box-shadow:var(--shadow-sm)}.toolbar-color-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.editor-body{flex:1;overflow:auto;padding:14px 18px}.editor-body .tiptap{outline:none;min-height:240px;font-family:var(--font-display);font-size:14px;line-height:1.5}.editor-body .tiptap ul{padding-left:20px}.editor-body .tiptap table{border-collapse:collapse}.editor-body .tiptap td,.editor-body .tiptap th{border:1px solid #bbb;padding:4px 8px}.editor-attachments{padding:9px 18px;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:7px;align-items:center;font-size:16px}.att-chip{max-width:min(100%,520px);background:var(--chip-bg);border:1px solid var(--border);border-radius:7px;padding:4px 5px 4px 8px;display:inline-flex;gap:5px;align-items:center}.attachment-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.att-chip .attachment-icon-btn{width:32px;height:32px;flex:0 0 auto;display:grid;place-items:center;padding:0;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;transition:color .16s ease,background .16s ease,transform .18s var(--ease-spring)}.att-chip .attachment-icon-btn:hover,.att-chip .attachment-icon-btn:focus-visible{color:var(--accent-strong);background:var(--accent-soft);transform:translateY(-1px)}.att-chip .attachment-save{color:var(--accent-strong)}.att-chip .attachment-remove{width:28px;height:28px;display:grid;place-items:center;padding:0;border-radius:7px}.trove-btn{display:inline-flex;align-items:center;gap:7px}.trove-icon{width:22px;height:22px;border-radius:6px;display:block}.trove-login{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:10px 0 4px}.trove-login-icon{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent-strong);margin-bottom:2px}.trove-login p{color:var(--muted);margin:0 0 4px}.trove-login input{width:100%;max-width:280px;padding:11px 14px;text-align:center;border-radius:12px;border:1px solid var(--input-border);background:var(--surface-strong);color:var(--text);font-size:15.5px}.trove-login input.err{border-color:#ff9d8f}.trove-login .btn.primary{margin-top:6px}.trove-search-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;border:1px solid var(--input-border);background:var(--surface-strong);margin-bottom:14px;color:var(--muted)}.trove-search-bar input{flex:1;min-width:0;border:none;background:none;font-size:15.5px;color:var(--text);outline:none}.trove-results{display:flex;flex-direction:column;gap:10px;max-height:50vh;overflow-y:auto}.trove-result{margin:0}.trove-thumb{flex:0 0 auto;width:52px;height:68px;object-fit:cover;border-radius:8px;border:1px solid var(--border);background:var(--surface-strong)}.trove-thumb-fallback{display:flex;align-items:center;justify-content:center;color:var(--muted)}.trove-result-clickable{display:flex;align-items:center;gap:12px;flex:1;min-width:0;cursor:pointer}.trove-preview-backdrop{align-items:center;z-index:60}.trove-preview-modal{width:min(560px,92vw);height:min(760px,90vh);display:flex;flex-direction:column}.trove-preview-body{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:18px;overflow:hidden;background:var(--surface-strong)}.trove-preview-large{max-width:100%;max-height:100%;object-fit:contain;border-radius:10px;box-shadow:var(--shadow-md);border:1px solid var(--border)}.trove-preview-fallback{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--muted)}.trove-preview-nav-btn{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:var(--surface-strong);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-sm)}.trove-preview-nav-btn:disabled{opacity:.5;cursor:default}.trove-preview-nav-btn.left{left:10px}.trove-preview-nav-btn.right{right:10px}.trove-preview-pagecount{text-align:center;padding:6px 0;color:var(--muted);font-size:13px;border-top:1px solid var(--border)}.trove-preview-actions{display:flex;justify-content:center;padding:14px 18px;border-top:1px solid var(--border)}.att-chip button{border:none;background:none;cursor:pointer;color:var(--muted)}.editor-actions{display:flex;gap:8px;padding:11px 18px;border-top:1px solid var(--border);align-items:center}.editor-actions .spacer{flex:1}.saved-status{color:var(--muted);font-family:var(--font-display);font-size:14px;font-weight:700}.lesson-preview-backdrop{align-items:center}.lesson-preview-modal{width:min(1040px,94vw);height:min(860px,90vh);max-height:90vh}.preview-actions{display:flex;align-items:center;gap:8px}.preview-sequence-wrap{position:relative;display:inline-flex}.preview-sequence-menu{top:46px;min-width:285px}.lesson-preview-title{padding:15px 18px 8px;font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--text-strong);border-bottom:1px solid var(--border)}.lesson-preview-body{flex:1;padding:16px 20px 22px;overflow:auto;font-family:var(--font-display);font-size:18px;line-height:1.6}.lesson-preview-body ul{margin:6px 0;padding-left:20px}.lesson-preview-body p{margin:5px 0}.preview-empty{color:var(--muted)}.preview-attachments{border-top:1px solid var(--border)}.preview-attachments .attachment-actions{padding-left:10px}.today-off{display:flex;align-items:center;gap:7px}.settings-modal{width:min(620px,94vw);max-height:min(900px,92dvh)}.settings-body{padding:18px;overflow-y:auto;font-size:16px}.settings-section{padding:0 0 18px;margin:0 0 18px;border-bottom:1px solid var(--border)}.settings-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:0}.settings-section h3{margin:0 0 12px;color:var(--text-strong);font-family:var(--font-display);font-size:18px;font-weight:750}.settings-group+.settings-group{margin-top:13px}.settings-label,.settings-field>span{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px;color:var(--muted);font-size:13px;font-weight:750;text-transform:uppercase;letter-spacing:.45px}.settings-field small{font-size:12px;font-weight:600;text-transform:none;letter-spacing:0}.settings-segment{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;background:var(--chip-bg);border:1px solid var(--border);border-radius:13px}.settings-segment button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted);font:700 14px var(--font-display);cursor:pointer;transition:color .16s ease,background .16s ease,box-shadow .16s ease,transform .18s var(--ease-spring)}.settings-segment button:hover{color:var(--text);background:#ffffff75;transform:translateY(-1px)}.settings-segment button.selected{color:var(--accent-strong);background:var(--surface-strong);border-color:#745cff33;box-shadow:var(--shadow-sm),0 8px 22px #484cae1a}.settings-toggle{position:relative;display:flex;align-items:center;gap:11px;min-height:58px;padding:9px 0;cursor:pointer}.settings-toggle+.settings-toggle{border-top:1px solid var(--border)}.settings-toggle-icon{width:38px;height:38px;flex:0 0 auto;display:grid;place-items:center;border-radius:11px;background:var(--accent-soft);color:var(--accent-strong)}.settings-toggle-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.settings-toggle-copy b{color:var(--text-strong);font-family:var(--font-display);font-size:15.5px}.settings-toggle-copy small{color:var(--muted);font-size:13.5px;line-height:1.35}.settings-toggle input{position:absolute;opacity:0;pointer-events:none}.switch-track{width:48px;height:28px;flex:0 0 auto;padding:3px;border-radius:999px;background:#6f759d57;border:1px solid var(--border);transition:background .18s ease,border-color .18s ease}.switch-track span{display:block;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 8px #14163a47;transition:transform .22s var(--ease-spring)}.settings-toggle input:checked+.switch-track{background:linear-gradient(135deg,var(--accent),var(--accent-2));border-color:transparent}.settings-toggle input:checked+.switch-track span{transform:translate(20px)}.settings-toggle:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:3px;border-radius:10px}.settings-name-input{width:100%;margin-bottom:15px;font-size:16px}.settings-path{margin:0 0 6px;padding:9px 11px;border-radius:9px;word-break:break-all;color:var(--muted);background:var(--chip-bg);font:12.5px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.settings-help{margin:8px 0 13px;color:var(--muted);font-size:13.5px;line-height:1.45}.settings-action+.settings-action{margin-left:7px}.settings-scan-result>p{margin:8px 0}.settings-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.menu{position:absolute;right:0;top:38px;background:var(--surface-strong);border-radius:14px;box-shadow:var(--shadow-lg);border:1px solid var(--border);z-index:10;min-width:240px;padding:7px;animation:modal-in .12s ease;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.menu button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;padding:12px 13px;font-family:var(--font-display);font-size:16px;font-weight:650;cursor:pointer;border-radius:10px;color:var(--text);transition:background .14s ease,transform .18s var(--ease-spring)}.menu button:hover{background:var(--hover);transform:translate(3px)}.menu button:disabled{opacity:.42;cursor:not-allowed;transform:none}.menu button.danger{color:#c73748}.app.theme-dark .menu button.danger{color:#ff9585}.menu-icon{width:19px;height:19px;flex:0 0 auto}.menu .menu-sep{height:1px;background:var(--border);margin:4px 0}.tt-wrap{display:flex;gap:14px;padding:12px 16px;height:calc(100dvh - 78px);min-height:540px;overflow:hidden}.tt-side{width:244px;flex-shrink:0;display:flex;flex-direction:column;gap:8px;overflow-y:auto;overscroll-behavior:contain;padding:2px 4px 12px 0}.tt-side-title{margin:2px 0 0;font-family:var(--font-display);font-weight:700;font-size:23px}.tt-hidden-warning{background:#fff4e0;color:#8a5a00;border:1px solid #f0d9a8;border-radius:8px;padding:10px 12px;font-size:14px;line-height:1.4}.tt-warning-title{display:flex;align-items:center;gap:7px;font-family:var(--font-display);font-weight:750;margin-bottom:3px}.app.theme-dark .tt-hidden-warning{background:#3a2e12;color:#f0c060;border-color:#5a4a20}.class-card{border-radius:13px;color:#fff;padding:10px 11px;box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,transform .24s var(--ease-spring),filter .18s ease;border:1px solid rgba(255,255,255,.22);position:relative;overflow:hidden;flex:0 0 auto}.class-card:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.24),transparent 42%)}.class-card>*{position:relative}.class-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px) rotate(-.25deg);filter:saturate(1.08)}.class-card-summary{display:grid;gap:2px}.class-card b{display:block;min-width:0;font-size:14.5px;line-height:1.2;letter-spacing:-.01em}.class-card small{opacity:.92;font-size:12.5px}.class-card-summary>small{white-space:nowrap}.class-card.teachable{border-color:#ffffff6b;box-shadow:0 12px 25px #1c194e38}.class-card.non-teachable{filter:saturate(.68);box-shadow:0 5px 13px #1c1f3821}.class-card.non-teachable:hover{filter:saturate(.82)}.class-type-badge{display:inline-flex;margin-top:5px;padding:2px 7px;border-radius:999px;background:#0a0c282e;font-size:11px;font-weight:750}.class-card .class-card-details{margin-top:5px;font-size:12px}.class-card .class-card-details summary{cursor:pointer;font-weight:700;opacity:.9}.class-card .class-card-details small{display:block;margin-top:4px;white-space:pre-line;line-height:1.3}.class-card .row{display:flex;gap:6px;margin-top:7px;flex-wrap:nowrap;align-items:center}.class-card .row .btn{min-height:34px;padding:6px 9px;font-size:13px}.class-card .btn{background:#ffffff29;border-color:#fff6;color:#fff}.class-card .btn:hover{background:#ffffff47}.class-card:has(.class-edit-form):hover{transform:none;filter:none}.tt-side>.btn{flex:0 0 auto}.class-edit-form{display:grid;gap:9px}.class-edit-form label{display:grid;gap:3px;margin:0;color:#fff}.class-edit-form label>span{font-size:12px;font-weight:750;letter-spacing:.02em}.class-edit-form input:not([type=checkbox]),.class-edit-form textarea{width:100%;margin:0;padding:8px 9px;border-radius:8px;border:1px solid rgba(255,255,255,.48);background:#fffffff0;color:#182040;font:inherit}.class-edit-form textarea{min-height:72px;resize:vertical;line-height:1.35}.class-edit-form .class-type-toggle{display:flex;grid-template-columns:none;align-items:center;gap:8px}.class-edit-form .class-type-toggle input{width:auto;margin:0}.color-swatch{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;flex-shrink:0;position:relative;background:#ffffff29;border:2px solid rgba(255,255,255,.4);color:#fff;cursor:pointer;transition:background .15s ease}.color-swatch:hover{background:#ffffff47}.color-swatch-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tt-grid-outer{flex:1;height:100%;overflow:auto;background:var(--surface-glass);border-radius:18px;border:1px solid var(--border);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(18px) saturate(1.1);backdrop-filter:blur(18px) saturate(1.1)}.tt-grid{display:grid}.tt-grid .corner,.tt-grid .dayhead{position:sticky;top:0;background:var(--surface-strong);border-bottom:1px solid var(--border);padding:9px;font-size:16.5px;font-weight:700;font-family:var(--font-display);text-align:center;z-index:2}.tt-grid .hour{font-size:14px;color:var(--muted);border-top:1px solid var(--border);padding:2px 7px;font-weight:500}.tt-cell{border-top:1px solid var(--border);border-left:1px solid var(--border);position:relative}.tt-block{position:absolute;left:4px;right:4px;border-radius:7px;color:#fff;font-family:var(--font-display);font-size:13px;font-weight:700;line-height:1.25;padding:4px 8px;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;justify-content:center;gap:1px;box-shadow:0 10px 24px #0000002e;transition:box-shadow .18s ease,transform .22s var(--ease-spring),filter .18s ease;border:1px solid rgba(255,255,255,.2)}.tt-block-time{white-space:nowrap;font-size:11.5px;opacity:.94}.tt-block-subject{overflow-wrap:normal;white-space:nowrap;font-size:11px!important;letter-spacing:-.01em}.tt-block .subject-name-no-break,.class-card .subject-name-no-break{display:inline-block;max-width:100%;white-space:nowrap}.tt-block:hover{box-shadow:var(--shadow-md);transform:translateY(-3px) scale(1.01);filter:saturate(1.1);z-index:3}.tt-block.teachable{border-color:#ffffff6b;box-shadow:0 10px 24px #14124838}.tt-block.non-teachable{filter:saturate(.68);box-shadow:0 5px 12px #1c1f3821}.tt-block.non-teachable:hover{filter:saturate(.82)}.tt-block.selected{box-shadow:0 0 0 3px var(--accent),var(--shadow-md);z-index:3}.tt-block small{display:block;opacity:.97;font-family:var(--font-body);font-size:13.5px;font-weight:700;line-height:1.2}.tt-side .tt-edit-form{display:block;padding:16px 18px;border-left-width:4px;border-left-style:solid}.tt-edit-form-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.tt-edit-form b{font-family:var(--font-display);font-size:17px}.tt-edit-form-close{flex:0 0 auto;width:28px;height:28px;display:grid;place-items:center;border-radius:999px;color:var(--muted);background:transparent;border:0;cursor:pointer;transition:background .15s ease,color .15s ease}.tt-edit-form-close:hover{background:var(--accent-soft);color:var(--accent-strong)}.tt-edit-fields{margin-top:12px;display:grid;gap:12px;font-size:16px}.tt-edit-fields label{display:grid;gap:5px;min-width:0}.tt-edit-fields label span{color:var(--muted);font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.tt-edit-fields select,.tt-edit-fields input[type=time]{width:100%;box-sizing:border-box;min-height:42px;border:1px solid var(--input-border);background:var(--card-bg);color:var(--text);border-radius:10px;padding:9px 11px;font-size:16px}.tt-edit-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.page{padding:26px;max-width:1180px;margin:0 auto;width:100%;box-sizing:border-box}.page h2{margin-top:0;font-family:var(--font-display);font-weight:700;font-size:36px;letter-spacing:0;color:var(--text-strong)}.page>*{animation:page-item-rise .26s var(--ease-snap)}.page>*:nth-child(2){animation-delay:35ms}.page>*:nth-child(3){animation-delay:.07s}.page>*:nth-child(4){animation-delay:.105s}@keyframes page-item-rise{0%{transform:translateY(7px)}to{transform:none}}.cards{display:flex;gap:14px;flex-wrap:wrap}.sem-card{background:linear-gradient(180deg,var(--surface-strong),var(--card-bg));border-radius:18px;box-shadow:var(--shadow-sm);border:1px solid var(--border);width:280px;overflow:hidden;transition:box-shadow .22s ease,transform .26s var(--ease-spring),border-color .18s ease;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.sem-card:hover{box-shadow:var(--shadow-md);transform:translateY(-5px) rotate(-.35deg);border-color:#745cff4d}.sem-card .sem-head{color:#fff;padding:16px;font-family:var(--font-display);font-weight:700;font-size:20px;box-shadow:0 -1px #ffffff38 inset}.sem-card .sem-body{padding:15px 17px;font-size:16.5px}.sem-card label{display:block;font-size:13.5px;color:var(--muted);margin-top:9px;text-transform:uppercase;letter-spacing:.4px;font-weight:700}.sem-card input{width:100%;border:1px solid var(--input-border);background:var(--card-bg);color:var(--text);border-radius:10px;padding:9px 10px;font-size:16.5px}.sem-dates{font-weight:700;font-size:16.5px;font-variant-numeric:tabular-nums}.sem-stat{margin-top:6px;color:var(--muted);font-size:14.5px}.sem-actions{margin-top:14px;display:flex;gap:6px;flex-wrap:wrap}.sem-card-add{display:flex;align-items:center;justify-content:center;min-height:180px;cursor:pointer;border:1px dashed rgba(116,92,255,.42)!important;box-shadow:none!important;background:#ffffff47!important;color:var(--accent-strong);font-size:16px;font-weight:750;transition:border-color .18s ease,color .18s ease,transform .24s var(--ease-spring),box-shadow .18s ease}.sem-card-add:hover{border-color:var(--accent)!important;color:var(--accent);transform:translateY(-3px) scale(1.01);box-shadow:0 14px 30px #745cff1f!important}.list-row{background:linear-gradient(180deg,var(--surface-strong),var(--card-bg));border-radius:16px;box-shadow:var(--shadow-sm);border:1px solid var(--border);padding:16px 18px;display:flex;align-items:center;gap:12px;margin-bottom:12px;transition:box-shadow .22s ease,transform .26s var(--ease-spring),border-color .18s ease;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.list-row:hover{box-shadow:var(--shadow-md);transform:translateY(-4px) scale(1.004);border-color:#745cff4d}.list-row b{flex:0 0 auto;font-family:var(--font-display);font-size:18.5px;color:var(--text-strong)}.list-row .grow{flex:1;min-width:0}.list-row small{color:var(--muted);font-size:15.5px}.unit-row{width:calc(100% - 24px);color:inherit;font:inherit;text-align:left;border-left:4px solid transparent;cursor:pointer}.unit-row:disabled{cursor:default;opacity:.7}.inline-meta{display:inline-flex;align-items:center;gap:3px;margin-left:5px}.search-input{width:100%;border:1px solid var(--input-border);background:var(--surface-strong);color:var(--text);border-radius:16px;padding:14px 16px;font-size:18px;margin-bottom:16px;box-shadow:var(--shadow-sm)}.search-input:focus{border-color:var(--accent)}select,input[type=date],input[type=number],input[type=time],input[type=text]{border:1px solid var(--input-border);background:var(--surface-strong);color:var(--text);border-radius:12px;padding:10px 12px;font:inherit;box-shadow:0 1px #ffffff9e inset}select:focus,input:focus,textarea:focus{outline:2px solid rgba(116,92,255,.4);outline-offset:2px}.lib-preview{font-size:16.5px;color:var(--muted);max-height:70px;overflow:hidden;line-height:1.45}.lib-sub{color:var(--muted);font-size:16px;margin-top:-6px}.lib-empty{color:var(--muted);font-size:17px;margin-top:20px}.library-controls{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px;margin:14px 0 12px}.library-semester{margin:22px 0 28px;background:#ffffff5c;border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow-sm);overflow:hidden;-webkit-backdrop-filter:blur(18px) saturate(1.1);backdrop-filter:blur(18px) saturate(1.1);transition:transform .26s var(--ease-spring),box-shadow .22s ease,border-color .18s ease}.library-semester>summary{list-style:none;cursor:pointer}.library-semester>summary::-webkit-details-marker,.library-subject>summary::-webkit-details-marker{display:none}.app.theme-dark .library-semester{background:#0a0c2280}.library-semester:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:#745cff40}.library-semester-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 18px;background:linear-gradient(135deg,#1c185ceb,#2867e2d1);color:#fff}.library-semester-head h3{margin:0 0 3px;font-family:var(--font-display);font-size:25px;letter-spacing:0}.library-semester-head small{color:#ecf4ffdb;font-size:15px}.library-level-label{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;color:#ffffffdb;font:700 12px var(--font-display);text-transform:uppercase}.library-level-label:after,.library-subject-head:after{content:"";width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .22s var(--ease-spring)}.library-semester[open] .library-level-label:after{transform:rotate(225deg) translate(-2px,-2px)}.library-semester-actions{display:flex;justify-content:flex-end;padding:10px 16px 0}.library-subject-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;padding:16px}.library-subject{background:linear-gradient(180deg,var(--surface-strong),var(--card-bg));border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .24s var(--ease-spring),box-shadow .2s ease,border-color .18s ease}.library-subject>summary{list-style:none;cursor:pointer}.library-subject:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:#745cff47}.library-subject-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-top:4px solid;background:#ffffff7a}.library-subject-head:after{color:var(--accent-strong);margin-left:2px}.library-subject[open]>.library-subject-head:after{transform:rotate(225deg) translate(-2px,-2px)}.library-subject-head small{margin-left:auto}.library-units{border-top:1px solid var(--border)}.app.theme-dark .library-subject-head{background:#1416328c}.library-subject-head small{color:var(--muted);font-weight:700}.library-unit{border-top:1px solid var(--border)}.library-unit summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;font-family:var(--font-display);font-weight:700;color:var(--text-strong);background:#edf1ff8c;transition:background .16s ease,color .16s ease,padding-left .2s var(--ease-spring)}.library-unit summary:hover{background:#e2e8ffc7;color:var(--accent-strong);padding-left:18px}.app.theme-dark .library-unit summary{background:#2629588c}.app.theme-dark .library-unit summary:hover{background:#363a76b8;color:var(--accent-strong)}.library-unit summary::-webkit-details-marker{display:none}.library-unit summary:before{content:"▾";color:var(--accent-strong);margin-right:4px;display:inline-block;transition:transform .22s var(--ease-spring)}.library-unit:not([open]) summary:before{content:"▸"}.library-unit[open] summary:before{transform:rotate(180deg)}.library-unit summary small{color:var(--muted);background:var(--chip-bg);border-radius:999px;padding:2px 9px}.library-unit .list-row{margin:10px 12px;border-radius:14px;padding:13px 14px}.library-unit .list-row b{font-size:19px;line-height:1.25}.unit-row-title-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.template-page{max-width:1120px;margin:0 auto}.template-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px}.template-page-heading h2{margin-bottom:8px}.template-coverage-note{margin:5px 0 0;color:var(--muted);font-size:13px}.template-new{flex:0 0 auto}.template-search{min-height:52px;display:flex;align-items:center;gap:10px;margin-bottom:18px;padding:0 16px;color:var(--muted);background:var(--surface-strong);border:1px solid var(--input-border);border-radius:16px;box-shadow:var(--shadow-sm)}.template-search:focus-within{border-color:var(--accent);outline:2px solid rgba(116,92,255,.22)}.template-search input{width:100%;min-width:0;min-height:50px;padding:0;color:var(--text);background:transparent;border:0;outline:0;font:500 16px var(--font-body)}.template-search input::placeholder{color:var(--muted);opacity:.82}.template-tree{display:grid;gap:15px;padding-bottom:30px}.template-subject,.template-unit,.template-lesson{overflow:hidden;background:var(--surface-strong);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.template-subject{border-radius:20px}.template-unit{margin:12px;border-radius:14px}.template-lesson{margin:9px 10px;border-radius:11px;background:var(--card-bg)}.template-subject>summary,.template-unit>summary,.template-lesson>summary{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer;color:var(--text-strong)}.template-subject>summary::-webkit-details-marker,.template-unit>summary::-webkit-details-marker,.template-lesson>summary::-webkit-details-marker{display:none}.template-subject>summary{padding:16px 18px;color:#fff;background:linear-gradient(135deg,#271d6ff7,#2267dee8)}.template-subject>summary>span:first-child,.template-lesson>summary>span:first-child{min-width:0;display:flex;flex-direction:column;gap:2px}.template-subject>summary b{font:750 21px var(--font-display)}.template-subject>summary small{color:#f0f4ffdb}.template-unit>summary{padding:12px 14px;background:var(--accent-soft);font:700 16px var(--font-display)}.template-unit>summary:before,.template-lesson>summary:before{content:"▸";flex:0 0 auto;color:var(--accent-strong);transition:transform .18s var(--ease-spring)}.template-unit[open]>summary:before,.template-lesson[open]>summary:before{transform:rotate(90deg)}.template-unit>summary>span:first-of-type{margin-right:auto}.template-unit>summary small{min-width:28px;padding:3px 8px;text-align:center;color:var(--accent-strong);background:var(--surface-strong);border-radius:999px}.template-sections{display:grid;grid-template-columns:repeat(3,1fr);align-items:start;gap:14px;padding:14px}.template-section{overflow:hidden;background:var(--surface-strong);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;min-width:0}.template-section-head{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;color:var(--text-strong);font:750 17px var(--font-display);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 22%,transparent),color-mix(in srgb,var(--accent) 8%,transparent))}.template-section-head small{min-width:28px;padding:3px 8px;text-align:center;color:var(--accent-strong);background:var(--surface-strong);border-radius:999px;font:700 13px var(--font-display)}.template-section-groups{display:grid;padding:4px 0;border-top:1px solid var(--border)}.template-group{margin:8px 12px;border-radius:12px;background:var(--card-bg);border:1px solid var(--border);overflow:hidden}.template-group>summary{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer;padding:10px 14px;color:var(--text-strong);font:700 15px var(--font-display);background:var(--accent-soft)}.template-group>summary::-webkit-details-marker{display:none}.template-group>summary:before{content:"▸";flex:0 0 auto;color:var(--accent-strong);transition:transform .18s var(--ease-spring)}.template-group[open]>summary:before{transform:rotate(90deg)}.template-group>summary>span:first-of-type{margin-right:auto}.template-group>summary small{min-width:24px;padding:2px 7px;text-align:center;color:var(--accent-strong);background:var(--surface-strong);border-radius:999px;font:700 12px var(--font-display)}.template-lessons{padding:1px 0 5px;border-top:1px solid var(--border)}.template-lesson>summary{padding:10px 12px;justify-content:flex-start}.template-lesson>summary>span:first-child{margin-right:auto}.template-lesson>summary b{font:700 15px var(--font-display)}.template-lesson>summary small{color:var(--muted);overflow-wrap:anywhere}.template-add-btn{flex:0 0 auto;min-height:auto;padding:5px 12px;gap:5px;font-size:12.5px;font-weight:750}.add-template-modal{width:min(760px,94vw)}.add-template-body{overflow-y:auto;padding:4px 4px 18px}.add-template-cal-toolbar{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 16px 4px}.add-template-cal-toolbar h2{margin:0;font-size:18px;min-width:170px;text-align:center}.add-template-calendar{grid-auto-rows:minmax(64px,1fr);padding:10px 14px 14px}.add-template-back{margin:14px 16px 4px}.add-template-day-head{display:flex;align-items:baseline;gap:10px;padding:6px 18px 12px}.add-template-day-head b{font:750 19px var(--font-display);color:var(--text-strong)}.add-template-day-head span{color:var(--muted);font-weight:700;font-size:13.5px}.add-template-empty{color:var(--muted);padding:10px 18px}.add-template-slots{display:grid;gap:10px;padding:0 16px}.add-template-slot{display:block;text-align:left;width:100%;cursor:pointer;background:var(--card-bg);border:1px solid var(--border);border-left-width:4px;border-left-style:solid;border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow .18s ease,transform .22s var(--ease-spring)}.add-template-slot:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.add-template-slot:disabled{opacity:.6;cursor:default;transform:none}.add-template-slot-subj{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;font:800 13.5px var(--font-display);letter-spacing:.3px}.add-template-slot-subj small{font-weight:700;opacity:.9;font-size:12px}.add-template-slot-lesson{padding:9px 14px;color:var(--text);font-size:14.5px}.add-template-done{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:34px 24px 26px}.add-template-done-icon{width:56px;height:56px;border-radius:999px;display:grid;place-items:center;margin-bottom:6px;background:linear-gradient(135deg,#21c584,#17a06b);color:#fff;box-shadow:var(--shadow-md)}.add-template-done b{font:750 20px var(--font-display);color:var(--text-strong)}.add-template-done span{color:var(--muted);font-size:15px}.add-template-done-actions{justify-content:center;padding:0;margin-top:20px}.template-lesson-preview{padding:14px 16px 16px 42px;border-top:1px solid var(--border)}.template-preview-html{color:var(--text);line-height:1.55}.template-preview-html ul{margin:5px 0 12px;padding-left:21px}.template-preview-html p{margin:12px 0 4px;font-weight:750;color:var(--accent-strong)}.template-empty{min-height:94px;display:flex;align-items:center;justify-content:center;gap:13px;padding:20px;color:var(--muted);background:var(--card-bg);border:1px dashed var(--border);border-radius:16px}.template-empty>div{display:flex;flex-direction:column;gap:3px}.template-empty b{color:var(--text-strong)}.template-empty.compact{min-height:100px;flex-direction:column;text-align:center;border:0}.template-editor-modal{max-height:calc(100dvh - 80px);overflow:hidden}.template-editor-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;padding:15px 17px;border-bottom:1px solid var(--border)}.template-editor-fields label{display:grid;gap:5px;color:var(--muted);font-size:13px;font-weight:700}.template-editor-fields input,.template-editor-fields select{width:100%;min-height:44px}.template-editor-body{min-height:210px}.template-form-error{margin:0;padding:9px 17px;color:#a7283b;background:#d9444f1a}.app.theme-dark .template-form-error{color:#ffb4bf}.template-picker-backdrop{z-index:76;align-items:center;padding:24px}.template-picker-modal{width:min(1120px,96vw);height:min(780px,calc(100dvh - 48px));min-height:560px;display:flex;flex-direction:column;overflow:hidden;color:var(--text);background:color-mix(in srgb,var(--surface-strong) 98%,transparent);border:1px solid rgba(255,255,255,.35);border-radius:22px;box-shadow:var(--shadow-lg);animation:modal-in .24s var(--ease-spring)}.template-picker-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 22px 12px}.template-picker-head h2{margin:3px 0;font:750 27px/1.15 var(--font-display)}.template-picker-head p{margin:0;color:var(--muted);font-size:14px}.template-picker-eyebrow{color:var(--accent-strong);font:750 11px var(--font-display);letter-spacing:.1em;text-transform:uppercase}.template-picker-search{margin:0 22px 14px;flex:0 0 auto}.template-picker-layout{min-height:0;display:grid;grid-template-columns:minmax(340px,.9fr) minmax(380px,1.1fr);flex:1;border-top:1px solid var(--border)}.template-picker-browser{min-height:0;overflow:auto;padding:12px;border-right:1px solid var(--border);background:color-mix(in srgb,var(--chip-bg) 44%,transparent)}.template-picker-subject{margin-bottom:10px;overflow:hidden;background:var(--surface-strong);border:1px solid var(--border);border-radius:13px}.template-picker-subject>summary,.template-picker-unit>summary{min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;list-style:none;cursor:pointer}.template-picker-subject>summary::-webkit-details-marker,.template-picker-unit>summary::-webkit-details-marker{display:none}.template-picker-subject>summary>span:first-child{display:flex;flex-direction:column;gap:1px}.template-picker-subject>summary small{color:var(--muted)}.template-suggested{padding:4px 8px;color:var(--accent-strong);background:var(--accent-soft);border-radius:999px;font-size:10px;font-weight:750;white-space:nowrap}.template-picker-unit{border-top:1px solid var(--border)}.template-picker-unit>summary{min-height:46px;padding-left:18px;color:var(--text-strong);font-weight:700}.template-picker-unit>summary small{padding:2px 7px;color:var(--muted);background:var(--chip-bg);border-radius:999px}.template-picker-lessons{display:grid;gap:5px;padding:5px 8px 10px}.template-picker-lessons button{width:100%;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;color:var(--text);background:transparent;border:1px solid transparent;border-radius:9px;text-align:left;cursor:pointer}.template-picker-lessons button:hover,.template-picker-lessons button:focus-visible{background:var(--hover)}.template-picker-lessons button.selected{color:var(--accent-strong);background:var(--accent-soft);border-color:var(--accent)}.template-picker-lessons button>span{min-width:0;display:flex;flex-direction:column;gap:2px}.template-picker-lessons button b{font:700 13px var(--font-display)}.template-picker-lessons button small{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.template-picker-preview{min-height:0;display:flex;flex-direction:column;overflow:auto;padding:22px}.template-preview-heading>span{color:var(--accent-strong);font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.06em}.template-preview-heading h3{margin:5px 0 2px;font:750 22px var(--font-display)}.template-preview-heading p{margin:0 0 14px;color:var(--muted);font-size:13px}.template-preview-paper{padding:19px 21px;color:var(--text);background:var(--surface-strong);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);line-height:1.55}.template-preview-paper h4{margin:0 0 13px;padding-bottom:7px;color:var(--text-strong);border-bottom:2px solid var(--accent);font:750 20px var(--font-display)}.template-preview-paper ul{margin:5px 0 12px;padding-left:22px}.template-preview-paper p{margin:12px 0 4px;color:var(--accent-strong);font-weight:750}.template-replace-note{margin:14px 0 0;padding:10px 12px;color:var(--muted);background:var(--accent-soft);border-radius:10px;font-size:13px}.template-use-button{min-height:48px;justify-content:center;margin-top:13px}.template-preview-empty{height:100%;min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;color:var(--muted)}.template-preview-empty b{color:var(--text-strong);font:700 17px var(--font-display)}.template-preview-empty span{max-width:340px;font-size:14px}.tag{background:var(--accent-soft);color:var(--accent-strong);font-size:13.5px;font-weight:700;border-radius:999px;padding:4px 10px;margin-right:4px;border:1px solid rgba(116,92,255,.16);transition:transform .2s var(--ease-spring),box-shadow .18s ease}.tag:hover{transform:translateY(-1px) scale(1.04);box-shadow:0 8px 18px #745cff24}.saved-only-tag{margin-left:8px;color:var(--accent-strong);background:var(--accent-soft)}.empty-state{margin-top:24px;min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(180deg,#ffffff75,#ffffff38);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(18px) saturate(1.1);backdrop-filter:blur(18px) saturate(1.1);color:var(--muted)}.empty-state h3{margin:12px 0 4px;color:var(--text-strong);font-family:var(--font-display);font-size:24px}.empty-state p{margin:0;max-width:520px;line-height:1.5}.empty-orbit{width:58px;height:58px;display:grid;place-items:center;border-radius:50%;color:#fff;font-weight:800;background:linear-gradient(135deg,#815fff,#27c3ff);box-shadow:var(--shadow-glow);animation:orbit-float 3.4s ease-in-out infinite}@keyframes orbit-float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-7px) rotate(5deg)}}.ai-btn{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(135deg,#8c5dff,#2d7bff 55%,#20d8ff);color:#fff;border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:8px 15px;font-size:16px;cursor:pointer;font-weight:750;transition:filter .16s ease,transform .22s var(--ease-spring),box-shadow .16s ease;box-shadow:var(--shadow-glow)}.ai-btn:after{content:"";position:absolute;inset:-40% auto -40% -55%;width:42%;z-index:-1;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(255,255,255,.65),transparent);transform:skew(-18deg);transition:left .42s var(--ease-snap)}.ai-btn:hover:after{left:115%}.ai-btn:hover{filter:brightness(1.08);transform:translateY(-3px) scale(1.025)}.ai-btn:active{transform:translateY(1px) scale(.98)}.ai-panel{padding:12px 15px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#745cff29,#27c3ff1a)}.ai-panel textarea{width:100%;border:1px solid var(--input-border);background:var(--surface-strong);color:var(--text);border-radius:13px;padding:10px 12px;font-size:16.5px;font-family:inherit;resize:vertical}.sync-error-banner{background:#fdeceae0;color:#9a2f24;padding:8px 16px;font-size:15px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #f3c6c0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.sync-error-banner button{margin-left:auto;background:none;border:none;color:#9a2f24;cursor:pointer;font-size:16px}.app.theme-dark .sync-error-banner{background:#3a201d;color:#ff9d8f;border-bottom-color:#5a2e28}.app.theme-dark .sync-error-banner button{color:#ff9d8f}.login-screen{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 18% 20%,rgba(104,80,255,.32),transparent 30%),radial-gradient(circle at 84% 78%,rgba(44,204,255,.2),transparent 32%),linear-gradient(150deg,#060716,#0b102b 46%,#08091b);color:#e8e9ff;font-family:var(--font-body)}.login-starfield{position:absolute;inset:0;pointer-events:none;opacity:.6;background-image:radial-gradient(1px 1px at 8% 14%,rgba(255,255,255,.95),transparent),radial-gradient(1px 1px at 22% 74%,rgba(154,137,255,.7),transparent),radial-gradient(1.2px 1.2px at 38% 34%,rgba(255,255,255,.9),transparent),radial-gradient(1px 1px at 51% 82%,rgba(66,165,255,.68),transparent),radial-gradient(1.4px 1.4px at 66% 18%,rgba(255,255,255,.9),transparent),radial-gradient(1px 1px at 80% 62%,rgba(154,137,255,.62),transparent),radial-gradient(1.2px 1.2px at 92% 28%,rgba(255,255,255,.9),transparent),radial-gradient(1.5px 1.5px at 30% 92%,rgba(128,236,255,.7),transparent);background-size:260px 260px;animation:star-drift 34s linear infinite,star-pulse 5.5s ease-in-out infinite alternate}.login-card{position:relative;width:100%;max-width:380px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:40px 34px 34px;border-radius:22px;background:#141632ad;border:1px solid rgba(158,166,255,.26);box-shadow:0 24px 70px #0000008c,0 0 0 1px #ffffff0d inset,0 0 32px #5c74ff38;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:login-card-in .5s var(--ease-spring)}@keyframes login-card-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.login-wordmark{height:46px;width:auto;margin-bottom:14px;filter:drop-shadow(0 0 18px rgba(120,231,255,.35))}.login-icon{width:52px;height:52px;border-radius:50%;margin-bottom:6px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#9a89ff47,#42a5ff38);border:1px solid rgba(158,166,255,.34);color:#c4bcff;box-shadow:0 0 24px #5c74ff4d}.login-card h1{font-family:var(--font-display);font-size:21px;margin:4px 0 2px;color:#faf9ff;letter-spacing:-.01em}.login-card p{font-size:14.5px;color:#a6a9cd;margin:0 0 20px}.login-card input{width:100%;padding:13px 16px;font-size:16px;text-align:center;letter-spacing:.04em;border-radius:13px;border:1px solid rgba(158,163,255,.3);background:#0a0b1e99;color:#e8e9ff;transition:border-color .16s ease,box-shadow .16s ease}.login-card input::placeholder{color:#6c709c}.login-card input:focus{outline:none;border-color:#9a89ff;box-shadow:0 0 0 3px #9a89ff38}.login-card input.err{border-color:#ff9d8f;box-shadow:0 0 0 3px #ff9d8f2e}.login-error{font-size:13.5px;color:#ff9d8f;margin-top:10px}.login-card .btn.primary{width:100%;justify-content:center;margin-top:18px;padding:13px 18px;font-size:16px}@media(pointer:coarse){.btn{min-height:44px;padding:9px 16px;font-size:15.8px}.topnav{padding-top:calc(8px + env(safe-area-inset-top,0px))}.topnav button{min-height:44px;padding:9px 10px}.icon-btn{width:50px;height:50px}.toolbar button{min-width:44px;height:44px;font-size:17px}.week-grid{grid-template-columns:repeat(5,minmax(230px,1fr));overflow-x:auto}.lesson-card-action{width:40px;height:40px}.lesson-card-actions{top:4px;right:4px}.lesson-card .head{padding-right:10px}.lesson-card-menu{top:45px;width:min(270px,75vw)}.lesson-card-menu button{min-height:44px;font-size:14px}.lesson-card-actions,.btn.week-edit-hint{opacity:0;pointer-events:none}}@media(pointer:coarse)and (min-width:601px)and (max-width:1200px){.topnav{gap:7px;padding-inline:9px}.brand-wordmark{height:40px;width:auto}.nav-tabs{grid-template-columns:repeat(7,minmax(48px,1fr));gap:5px}.nav-tabs button{padding:9px 7px}.nav-tabs button>span:not(.nav-icon){display:none}.nav-icon{width:27px;height:27px;background:transparent}.nav-icon svg{width:22px;height:22px}.tt-wrap{flex-direction:row;padding:10px;gap:10px}.tt-side{width:220px}}@media(max-width:1100px){.topnav{gap:7px;padding:7px 9px}.brand-wordmark{height:40px;width:auto}.nav-tabs{grid-template-columns:repeat(7,minmax(48px,1fr));gap:5px}.nav-tabs button{padding:9px 7px}.nav-tabs button>span:not(.nav-icon){display:none}.nav-icon{width:27px;height:27px;background:transparent}.nav-icon svg{width:22px;height:22px}.icon-btn{width:46px;height:46px}}@media(max-width:900px){.template-sections{grid-template-columns:1fr}.topnav{padding:8px 10px;flex-wrap:wrap}.brand-wordmark{height:38px;width:auto}.nav-tabs{order:3;width:100%;grid-template-columns:repeat(7,minmax(0,1fr))}.topnav button{font-size:15px;padding:8px 9px}.inline-search-open{order:3;width:100%;flex:1 1 100%}.library-controls,.library-subject-grid{grid-template-columns:1fr}.week-toolbar h2{font-size:20px;white-space:nowrap}.week-grid{grid-template-columns:repeat(5,minmax(0,1fr));overflow-x:hidden;gap:6px;padding-inline:6px}.day-col,.day-col-head{min-width:0}.lesson-card,.offday{min-height:auto}.tt-wrap{flex-direction:column}.tt-side{width:auto}.today-hero{flex-wrap:wrap;gap:10px}.today-ring svg{width:48px;height:48px}.month-grid{grid-template-columns:repeat(5,minmax(132px,1fr));overflow-x:auto}}@media(max-width:900px)and (min-width:701px){.week-grid .day-head{font-size:12px}.week-grid .sticky-note{min-height:58px;padding:7px;font-size:12px}.week-grid .lesson-card{height:270px}.week-grid .lesson-card .head{padding:6px 7px;font-size:11px}.week-grid .lesson-card .head .time{font-size:10.5px}.week-grid .lesson-card .time-full{display:none}.week-grid .lesson-card .time-compact{display:inline}.week-grid .lesson-card .titlebar{padding:6px 7px;font-size:11.5px}.week-grid .lesson-card .content,.week-grid .lesson-card .content *{font-size:12.2px!important;line-height:1.34}.week-grid .lesson-card .content{padding:7px 7px 13px;max-height:190px}.week-grid .lesson-card .content li:nth-child(n+3){display:none}}@media(pointer:coarse)and (min-width:601px)and (max-width:1180px){:root{--tablet-gutter: clamp(20px, 3vw, 42px)}main{min-height:calc(100dvh - 74px - env(safe-area-inset-top,0px))}.tt-wrap{flex-direction:row;padding:10px;gap:10px}.tt-side{width:220px}.app.density-comfortable .week-grid .lesson-card{height:190px}.app.density-comfortable .week-grid .lesson-card .content{max-height:100px}.page{max-width:none;min-height:100%;padding:28px var(--tablet-gutter) 38px}.page h2{font-size:clamp(30px,4vw,38px)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.sem-card{width:auto;min-height:220px}.library-subject-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.template-page{max-width:none}.modal-backdrop{padding:clamp(24px,5dvh,72px) var(--tablet-gutter);align-items:center}.editor-modal{width:min(960px,calc(100vw - (var(--tablet-gutter) * 2)));max-height:calc(100dvh - clamp(48px,10dvh,144px))}.lesson-preview-modal,.template-picker-modal{width:min(1120px,calc(100vw - (var(--tablet-gutter) * 2)));height:min(900px,calc(100dvh - clamp(48px,10dvh,144px)));max-height:calc(100dvh - clamp(48px,10dvh,144px))}.settings-modal,.add-template-modal,.export-modal,.trove-panel,.trove-preview-modal{width:min(780px,calc(100vw - (var(--tablet-gutter) * 2)))!important}.confirm-dialog{width:min(620px,calc(100vw - (var(--tablet-gutter) * 2)))}.move-collision-dialog{width:min(700px,calc(100vw - (var(--tablet-gutter) * 2)))}.palette-backdrop{padding-top:clamp(64px,13dvh,160px)}.palette{width:min(760px,calc(100vw - (var(--tablet-gutter) * 2)))}.menu,.lesson-card-menu{max-width:min(360px,calc(100vw - (var(--tablet-gutter) * 2)))}.preview-sequence-menu{max-width:min(420px,calc(100vw - (var(--tablet-gutter) * 2)))}}@media(pointer:coarse)and (min-width:601px)and (max-width:900px){.template-sections{grid-template-columns:repeat(2,minmax(0,1fr))}.week-grid{grid-template-columns:repeat(5,minmax(148px,1fr));overflow-x:auto}.month-grid{grid-template-columns:repeat(5,minmax(138px,1fr))}.tt-wrap{padding-inline:var(--tablet-gutter)}}@media(max-width:600px){.app{min-height:100svh}.tt-wrap{height:auto;min-height:0;overflow:visible;flex-direction:column}.topnav{position:relative;flex-wrap:wrap;gap:6px;padding:calc(1px + env(safe-area-inset-top,0px)) 7px 4px;background-position:50% 50%}.topnav>.topnav-safe-backdrop{animation:none;background-position:50% 50%}.topnav .brand{flex:1 1 auto;justify-content:flex-start;min-height:42px;padding:3px 6px}.brand-wordmark{height:31px}.topnav .nav-tabs,.topnav .desktop-refresh{display:none}.topnav .icon-btn{width:42px;height:42px;min-width:42px;min-height:42px}.topnav .inline-search{order:4;flex-basis:100%;width:100%;height:0;transition:height .28s var(--ease-snap),opacity .22s ease}.topnav .inline-search-open{height:48px}.inline-search input{min-height:44px;padding:10px 15px;font-size:16px}main{min-height:0;padding-bottom:calc(62px + env(safe-area-inset-bottom,0px));overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}.phone-nav{position:fixed;z-index:55;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));min-height:calc(58px + env(safe-area-inset-bottom,0px));padding:3px 5px calc(2px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--surface-strong) 91%,transparent);border-top:1px solid var(--border);box-shadow:0 -12px 36px #0a0d3829,inset 0 1px #ffffff80;-webkit-backdrop-filter:blur(26px) saturate(1.35);backdrop-filter:blur(26px) saturate(1.35)}.phone-nav button{position:relative;min-width:0;min-height:50px;padding:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;border-radius:11px;background:transparent;color:var(--muted);font:700 10px var(--font-display);cursor:pointer;transition:color .16s ease,background .16s ease,transform .18s var(--ease-spring)}.phone-nav button:before{content:"";position:absolute;top:-2px;width:24px;height:3px;border-radius:999px;background:transparent;transition:width .2s var(--ease-spring),background .16s ease}.phone-nav button.active{color:var(--accent-strong);background:var(--accent-soft)}.phone-nav button.active:before{width:34px;background:linear-gradient(90deg,var(--accent),var(--accent-2));box-shadow:0 0 14px color-mix(in srgb,var(--accent) 45%,transparent)}.phone-nav button:active{transform:scale(.93)}.phone-more-layer{position:fixed;z-index:54;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:12px 8px calc(62px + env(safe-area-inset-bottom,0px));background:#07091c61;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:backdrop-in .16s ease}.phone-more-sheet{width:min(100%,440px);padding:8px 10px 12px;color:var(--text);background:color-mix(in srgb,var(--surface-strong) 96%,transparent);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-lg);animation:phone-sheet-in .25s var(--ease-spring)}@keyframes phone-sheet-in{0%{opacity:0;transform:translateY(24px) scale(.98)}}.phone-more-handle{width:40px;height:4px;margin:1px auto 9px;border-radius:999px;background:var(--border)}.phone-more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.phone-more-grid button{min-width:0;min-height:72px;padding:9px 5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border);border-radius:11px;background:var(--chip-bg);color:var(--text);cursor:pointer;font:700 12px var(--font-display)}.phone-more-grid button.active{color:var(--accent-strong);background:var(--accent-soft);border-color:var(--accent)}.week-toolbar{overflow:visible}.planner-toolbar{display:grid;grid-template-columns:auto 44px 44px 1fr auto;gap:7px;padding:8px}.planner-toolbar h2{grid-column:1 / -1;grid-row:1;margin:0;padding:2px 2px 3px;font-size:18px;white-space:normal}.planner-toolbar>.btn{grid-row:2;min-width:44px;padding-inline:12px;white-space:nowrap}.planner-toolbar>.btn:nth-of-type(1){grid-column:1}.planner-toolbar>.btn:nth-of-type(2){grid-column:2;padding:0}.planner-toolbar>.btn:nth-of-type(3){grid-column:3;padding:0}.planner-toolbar>.spacer{grid-column:4;grid-row:2}.planner-toolbar>.btn:nth-of-type(4){grid-column:5}.month-toolbar{display:grid;grid-template-columns:auto 44px 44px 1fr;gap:7px;padding:8px}.month-toolbar h2{grid-column:1 / -1;grid-row:1;margin:0;padding:2px;font-size:20px;white-space:normal}.month-toolbar>.btn{grid-row:2;min-width:44px;padding-inline:12px;white-space:nowrap}.month-toolbar>.btn:nth-of-type(2),.month-toolbar>.btn:nth-of-type(3){padding:0}.week-grid{display:flex;gap:8px;padding:8px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:8px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.week-grid::-webkit-scrollbar{display:none}.day-col{min-width:calc(100vw - 16px);scroll-snap-align:start;scroll-snap-stop:always}.day-head{min-height:44px;display:flex;align-items:center;justify-content:center}.day-menu-btn{min-width:44px;min-height:44px;font-size:20px}.sticky-note{min-height:68px;font-size:14px}.month-grid{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:20px;grid-auto-rows:minmax(84px,1fr);gap:3px;padding:7px 5px 12px;overflow-x:visible}.month-head{padding:0;text-align:center;font-size:11.5px}.month-cell{min-width:0;padding:5px 3px;border-radius:8px}.month-date{align-items:flex-start;gap:2px;font-size:13px}.month-rot{font-size:10.5px}.month-rot-prefix{display:none}.month-chip{padding:2px 4px;margin-bottom:2px;border-radius:4px;font-size:10px}.month-off{padding:2px 3px;font-size:9.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tt-wrap{padding:12px 10px;gap:14px}.tt-side{width:100%}.tt-grid-outer{width:100%;max-width:calc(100vw - 20px);min-height:520px;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}.tt-grid{min-width:max-content}.tt-grid .dayhead{scroll-snap-align:start}.page{padding:18px 12px 24px}.page h2{font-size:29px}.cards,.sem-card{width:100%}.library-semester{margin:14px 0 20px;border-radius:12px}.library-semester-head{padding:13px 12px}.library-semester-head h3{font-size:21px}.library-level-label{font-size:0}.library-level-label:after{width:10px;height:10px}.library-semester-actions{padding:8px 8px 0}.library-subject-grid{padding:8px;gap:9px}.library-subject{border-radius:10px}.library-unit summary{min-height:48px;padding:10px 11px}.library-unit .list-row{width:calc(100% - 16px);margin:8px;padding:11px}.move-collision-dialog{align-self:center;padding:21px 16px 16px;border-radius:16px}.move-collision-copy h2{font-size:21px}.move-collision-options{grid-template-columns:1fr}.move-choice{min-height:88px}.modal-backdrop{z-index:70;padding:0;align-items:stretch;background:#07091ca8}.modal-backdrop:not(.confirm-backdrop)>.editor-modal{width:100%!important;height:100dvh;max-height:none;border:0;border-radius:0;box-shadow:none;background:#f7f8ff}.app.theme-dark .modal-backdrop:not(.confirm-backdrop)>.editor-modal{background:#11142d}.editor-head{min-height:calc(66px + env(safe-area-inset-top,0px));padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px;gap:8px}.editor-head>div:first-child{min-width:0}.editor-head .subj{font-size:16px}.editor-head .when{font-size:12.5px;line-height:1.25}.editor-head .modal-close{width:44px;height:44px;min-width:44px}.editor-title-row{display:grid;grid-template-columns:1fr auto;padding:9px}.editor-title-row select,.editor-title-row input[type=text]{grid-column:1 / -1;width:100%;max-width:none!important;min-height:44px}.editor-title-row>.btn{min-width:0;padding-inline:12px}.toolbar{flex-wrap:nowrap;overflow-x:auto;padding:7px 9px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.toolbar::-webkit-scrollbar{display:none}.toolbar .sep{flex:0 0 1px}.editor-body{min-height:0;padding:12px}.editor-body .tiptap{min-height:clamp(150px,25dvh,230px)}.editor-attachments{padding:9px}.att-chip{width:100%;max-width:100%;min-height:44px}.att-chip .attachment-icon-btn{width:44px;height:44px}.editor-actions{flex-shrink:0;position:sticky;bottom:0;padding:9px 10px calc(9px + env(safe-area-inset-bottom,0px));background:var(--surface-strong)}.lesson-preview-modal{height:100dvh}.lesson-preview-modal .editor-head{align-items:flex-start}.preview-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px}.preview-actions .btn{min-height:44px;padding:8px 11px}.preview-sequence-menu{position:absolute;z-index:75;top:52px;right:0;bottom:auto;width:min(355px,calc(100vw - 20px));min-width:0;background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}.app.theme-dark .preview-sequence-menu{background:#1b1f45}.lesson-preview-title{padding:12px 14px 8px;font-size:20px}.lesson-preview-body{padding:13px 14px 20px;line-height:1.55}.settings-modal{width:100%}.settings-body{padding:15px 13px calc(20px + env(safe-area-inset-bottom,0px))}.settings-segment button{min-height:48px;font-size:12.5px}.settings-toggle{min-height:64px}.trove-panel,.trove-preview-modal{width:100%!important}.list-row{flex-wrap:wrap}.list-row select{flex:1 1 auto;min-width:150px}.today-hero h1{font-size:25px}}@media(pointer:coarse)and (min-width:601px){.topnav{padding-top:calc(8px + env(safe-area-inset-top,0px));padding-bottom:max(8px,env(safe-area-inset-bottom,0px))}}@media(max-width:900px){.template-picker-layout{grid-template-columns:minmax(285px,.9fr) minmax(310px,1.1fr)}.template-picker-preview{padding:16px}}@media(max-width:600px){.template-page-heading{align-items:stretch;flex-direction:column;gap:10px}.template-new{width:100%;min-height:48px;justify-content:center}.template-search{min-height:50px;margin-bottom:12px;border-radius:12px}.template-tree{gap:10px}.template-subject{border-radius:13px}.template-subject>summary{min-height:60px;padding:12px}.template-subject>summary b{font-size:18px}.template-unit{margin:8px}.template-unit>summary,.template-lesson>summary{min-height:48px;padding:9px 10px}.template-lesson-preview{padding:12px}.template-editor-fields{grid-template-columns:1fr;padding:12px}.template-picker-backdrop{z-index:82;padding:0}.template-picker-modal{width:100%;height:100dvh;min-height:0;border:0;border-radius:0;background:#f7f8ff;box-shadow:none}.app.theme-dark .template-picker-modal{background:#11142d}.template-picker-head{min-height:calc(78px + env(safe-area-inset-top,0px));padding:calc(10px + env(safe-area-inset-top,0px)) 11px 8px}.template-picker-head h2{font-size:20px}.template-picker-head p{display:none}.template-picker-head .modal-close{width:44px;height:44px;min-width:44px}.template-picker-search{margin:0 10px 9px}.template-picker-layout{display:flex;flex-direction:column;overflow:hidden;border-top:1px solid var(--border)}.template-picker-browser{flex:1 1 48%;padding:8px;border-right:0;border-bottom:1px solid var(--border)}.template-picker-subject>summary,.template-picker-unit>summary,.template-picker-lessons button{min-height:48px}.template-picker-preview{flex:1 1 52%;padding:12px}.template-preview-empty{min-height:180px}.template-preview-heading h3{font-size:18px}.template-preview-heading p{margin-bottom:9px}.template-preview-paper{padding:13px 14px}.template-preview-paper h4{font-size:18px}.template-use-button{position:sticky;bottom:0;min-height:50px;margin-top:10px}}@media(hover:none){.topnav button:hover,.nav-tabs button:hover,.topnav button.brand:hover,.brand:hover .brand-wordmark{transform:none}.brand:hover:before{animation:none}.topnav button:not(.brand):hover:before{animation:none}}.today-hero{display:flex;align-items:center;gap:22px;margin-bottom:8px}.today-ring{flex-shrink:0}.cycle-ring-num{font-family:var(--font-display);font-weight:700;font-size:23px;fill:var(--text-strong)}.today-hero-text{min-width:0}.today-hero h1{margin:0 0 3px;font-size:31px;font-family:var(--font-display);font-weight:700;letter-spacing:0}.today-hero p{margin:3px 0;font-size:16.5px;color:var(--muted);font-variant-numeric:tabular-nums}.today-hero .today-off{color:#9a6a1e;font-weight:700}.app.theme-dark .today-hero .today-off{color:#e0ac5a}.btn.today-edit-btn{background:#ffffffeb;color:#1c2033;border-color:#14142d24}.btn.today-edit-btn:hover{background:#fff;color:#1c2033}.app.theme-dark .btn.today-edit-btn{background:linear-gradient(180deg,#2d3063eb,#1c1f46e0);color:#e8e9ff;border-color:#9aa3ff47}.app.theme-dark .btn.today-edit-btn:hover{background:linear-gradient(180deg,#3a3e7cf2,#222652e6);color:#fff;border-color:#9aa3ff6b}.today-next{background:var(--chip-bg);display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;font-size:15.5px!important;font-weight:650;border:1px solid var(--border);box-shadow:var(--shadow-sm)}.today-next.now{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.mission-control-btn{position:relative;isolation:isolate;overflow:hidden;margin-left:auto;flex-shrink:0;display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#815fff29,#27c3ff1f);border:1px solid rgba(116,92,255,.3);color:var(--accent-strong);border-radius:999px;padding:10px 18px;font-family:var(--font-display);font-size:15px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .2s var(--ease-spring),box-shadow .14s ease,background .14s ease}.mission-control-btn:after{content:"";position:absolute;inset:-40% auto -40% -55%;width:42%;z-index:-1;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(126,92,255,.4),transparent);transform:skew(-18deg);transition:left .42s var(--ease-snap)}.mission-control-btn:hover:after{left:115%}.mission-control-btn:hover{transform:translateY(-2px) scale(1.03);box-shadow:var(--shadow-md)}.mission-control-btn.on{background:linear-gradient(135deg,#815fff52,#27c3ff3d)}@media(max-width:760px){.mission-control-btn{margin-left:0}}@keyframes mission-panel-in{0%{opacity:0;transform:translateY(-8px) scaleY(.96)}to{opacity:1;transform:none}}.mission-control-panel{transform-origin:top;animation:mission-panel-in .26s var(--ease-spring);background:linear-gradient(180deg,var(--surface-strong),var(--card-bg));border:1px solid rgba(116,92,255,.24);border-radius:16px;padding:14px 18px 16px;margin-bottom:16px;box-shadow:var(--shadow-sm)}.mission-control-head{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-display);font-weight:700;font-size:14.5px;color:var(--accent-strong);letter-spacing:.3px;margin-bottom:8px}.mission-control-head span{display:inline-flex;align-items:center;gap:7px}.mission-control-head button{background:none;border:none;cursor:pointer;color:var(--muted);padding:2px}.mission-control-head button:hover{color:var(--text)}.mission-control-body{display:flex;flex-direction:column;gap:6px}.mission-text{font-size:15.5px;line-height:1.55;color:var(--text);font-family:var(--font-display)}.mission-text p{margin:0 0 10px;white-space:pre-wrap}.mission-text p:last-child{margin-bottom:0}.mission-text strong{color:var(--accent-strong);font-weight:700}.mission-text.mission-preparing{color:var(--muted);font-style:italic;margin:0}.mission-error{color:#b6491f;font-size:14.5px;margin:0}.app.theme-dark .mission-error{color:#ff9868}.mission-cursor{display:inline-block;width:7px;height:15px;margin-top:-4px;background:var(--accent);vertical-align:text-bottom;animation:cursor-blink .9s steps(1) infinite}@keyframes cursor-blink{50%{opacity:0}}.today-card{height:auto;min-height:220px;margin-bottom:14px}.upcoming-section{margin:20px 0 24px}.upcoming-heading-row{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:11px}.section-kicker{display:inline-flex;align-items:center;gap:6px;color:var(--accent-strong);font:700 12px/1.2 var(--font-display);text-transform:uppercase}.upcoming-heading-row h2{margin:3px 0 0;font:700 24px/1.2 var(--font-display)}.upcoming-summary{color:var(--muted);font-size:14px}.upcoming-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:10px}.upcoming-day{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:linear-gradient(180deg,var(--surface-strong),var(--card-bg));box-shadow:var(--shadow-sm);transition:transform .22s var(--ease-spring),box-shadow .2s ease,border-color .2s ease}.upcoming-day:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:#7361ff4d}.upcoming-day-open{width:100%;min-height:48px;display:flex;align-items:center;gap:8px;padding:8px 10px;color:var(--text-strong);background:var(--surface-glass);border:0;border-bottom:1px solid var(--border);font:600 14px/1.2 var(--font-display);text-align:left;cursor:pointer}.upcoming-day-open>span{display:flex;align-items:baseline;gap:6px;min-width:0}.upcoming-day-open b{font-size:16px}.upcoming-day-open small{color:var(--muted);font-size:12px}.upcoming-day-open em{margin-left:auto;color:var(--accent-strong);font-style:normal;font-size:11px;white-space:nowrap}.upcoming-lessons{display:grid;gap:1px;padding:5px}.upcoming-lesson{min-height:43px;width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;padding:6px 7px;color:var(--text-strong);background:transparent;border:0;border-left:3px solid;border-radius:5px;font:600 12px/1.25 var(--font-display);text-align:left;cursor:pointer}.upcoming-lesson:hover,.upcoming-lesson:focus-visible{background:var(--accent-soft)}.upcoming-subject{max-width:74px;padding:3px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;font-size:10px;text-transform:uppercase}.upcoming-lesson>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upcoming-lesson .unplanned{color:var(--muted);font-style:italic;font-weight:500}@media(max-width:700px){.upcoming-heading-row{align-items:start}.upcoming-summary{padding-top:19px}.upcoming-grid{grid-template-columns:1fr}}.inline-status-icon{display:inline-flex;align-items:center;justify-content:center}.month-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:22px;grid-auto-rows:minmax(clamp(82px,calc((100dvh - 250px) / var(--month-rows, 6)),190px),1fr);gap:7px;padding:10px 14px 16px}.month-cell-blank{background:none;border:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;cursor:default;pointer-events:none}.month-grid>*{animation:month-tile-in .28s var(--ease-snap)}.month-grid>*:nth-child(5n+2){animation-delay:25ms}.month-grid>*:nth-child(5n+3){animation-delay:.05s}.month-grid>*:nth-child(5n+4){animation-delay:75ms}.month-grid>*:nth-child(5n){animation-delay:.1s}@keyframes month-tile-in{0%{transform:translateY(7px) scale(.992)}to{transform:none}}.month-head{font-weight:700;font-size:15px;color:var(--muted);padding:1px 5px;font-family:var(--font-display);align-self:end}.month-cell{background:linear-gradient(180deg,var(--surface-strong),var(--card-bg));border-radius:14px;min-height:0;padding:7px 8px;box-shadow:var(--shadow-sm);border:1px solid var(--border);cursor:pointer;overflow:hidden;transition:box-shadow .22s ease,transform .26s var(--ease-spring),border-color .18s ease,filter .18s ease;transform-origin:center}.month-grid button.month-cell{width:100%;color:inherit;font:inherit;text-align:left}.month-cell:hover{box-shadow:var(--shadow-md);border-color:#745cff57;transform:translateY(-4px) scale(1.006);filter:saturate(1.05)}.month-cell:active{transform:translateY(0) scale(.985)}.month-date{font-size:15px;font-weight:700;display:flex;justify-content:space-between;margin-bottom:3px;font-variant-numeric:tabular-nums}.month-rot{font-weight:600;color:var(--muted);font-size:12px}.month-off{font-size:12px;color:#9a6a1e;background:var(--note-bg);border-radius:4px;padding:2px 5px;margin-bottom:3px}.month-chip{color:#fff;font-size:12.3px;border-radius:999px;padding:2px 7px;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 7px 16px #00000024;transition:transform .22s var(--ease-spring),filter .16s ease}.month-cell:hover .month-chip{transform:translate(2px);filter:brightness(1.04)}.month-cell:hover .month-chip:nth-of-type(2){transition-delay:25ms}.month-cell:hover .month-chip:nth-of-type(3){transition-delay:.05s}.day-head{position:relative}.day-menu-btn{border:none;background:none;cursor:pointer;color:var(--muted);font-size:15px;padding:0 5px;border-radius:4px}.day-menu-btn:hover{background:var(--hover);color:var(--text-strong)}.day-menu{left:0;right:auto;top:20px;min-width:250px}.exp-label{display:block;font-size:13.5px;font-weight:600;color:var(--muted);letter-spacing:.5px;margin-bottom:5px}.export-modal{width:min(560px,94vw)}.export-body{padding:18px;overflow-y:auto}.export-section{margin:0 0 16px}.export-format-note{display:flex;flex-direction:column;gap:3px;margin:0 0 16px;padding:13px 15px;border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:12px;background:var(--accent-soft);color:var(--text)}.export-format-note b{font-family:var(--font-display);font-size:14.5px}.export-format-note span{color:var(--muted);font-size:13px;line-height:1.35}.export-subjects{display:flex;flex-wrap:wrap;gap:7px}.export-subjects .btn{box-shadow:none}.export-subjects .btn.selected{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border-color:transparent;box-shadow:var(--shadow-glow)}.export-notes-toggle{border-top:1px solid var(--border);margin-top:4px;padding-top:13px}@media(pointer:coarse)and (min-width:1181px)and (max-width:1500px){:root{--ipad13-gutter: clamp(28px, 3.25vw, 52px)}main{min-height:calc(100dvh - 82px - env(safe-area-inset-top,0px))}.page{max-width:1366px;min-height:100%;padding:30px var(--ipad13-gutter) 42px}.page h2{font-size:clamp(32px,3vw,40px)}.today-page{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px;align-content:start}.today-page>.today-hero,.today-page>#today-note,.today-page>.mission-control-panel,.today-page>.upcoming-section,.today-page>p{grid-column:1 / -1}.today-page>.today-card{min-width:0;margin-bottom:18px}.today-card .content{max-height:min(42dvh,420px)!important}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.sem-card{width:auto;min-height:230px}.library-subject-grid{grid-template-columns:repeat(auto-fit,minmax(310px,1fr))}.template-page{max-width:1366px}.week-toolbar,.tt-wrap{padding-inline:var(--ipad13-gutter)}main[data-view=month]{display:flex;flex-direction:column;overflow:hidden}.calendar-view{flex:1 1 0;height:0;min-height:0;display:flex;flex-direction:column}.calendar-view .month-toolbar{flex:0 0 auto}.week-grid{gap:11px;padding:14px var(--ipad13-gutter) 22px}.week-grid .lesson-card{height:380px}.week-grid .lesson-card .content{max-height:290px}.month-grid{flex:1 1 auto;min-height:0;grid-template-rows:22px repeat(var(--month-rows, 6),minmax(0,1fr));grid-auto-rows:unset;gap:7px;padding:10px var(--ipad13-gutter) 22px;overflow:hidden}.month-cell{min-height:0}.modal-backdrop{padding:clamp(30px,5dvh,72px) var(--ipad13-gutter);align-items:center}.editor-modal{width:min(1020px,calc(100vw - (var(--ipad13-gutter) * 2)));max-height:calc(100dvh - clamp(60px,10dvh,144px))}.lesson-preview-modal,.template-picker-modal{width:min(1240px,calc(100vw - (var(--ipad13-gutter) * 2)));height:min(900px,calc(100dvh - clamp(60px,10dvh,144px)));max-height:calc(100dvh - clamp(60px,10dvh,144px))}.settings-modal,.add-template-modal,.export-modal,.trove-panel,.trove-preview-modal{width:min(820px,calc(100vw - (var(--ipad13-gutter) * 2)))!important}.confirm-dialog{width:min(660px,calc(100vw - (var(--ipad13-gutter) * 2)))}.move-collision-dialog{width:min(760px,calc(100vw - (var(--ipad13-gutter) * 2)))}.palette-backdrop{padding-top:clamp(80px,14dvh,170px)}.palette{width:min(820px,calc(100vw - (var(--ipad13-gutter) * 2)))}.menu,.lesson-card-menu{max-width:min(390px,calc(100vw - (var(--ipad13-gutter) * 2)))}.preview-sequence-menu{max-width:min(460px,calc(100vw - (var(--ipad13-gutter) * 2)))}}.print-root{display:none}@media print{.topnav,.week-toolbar,.week-grid,.week-edit-hint,.modal-backdrop,.page,.skip-link{display:none!important}main{overflow:visible}html,body{background:#fff!important}.app{height:auto;display:block}.cosmos-layer{display:none}.print-root{display:block;font-family:var(--font-body);font-size:12pt;color:#141426;background:#fff}.pr-sheet{break-after:page}.pr-sheet:last-child{break-after:auto}.pr-report-head{display:flex;align-items:flex-end;justify-content:space-between;gap:8mm;margin:0 0 3mm;padding:4mm 4.5mm;color:#18204a;background:linear-gradient(135deg,#eef1ff,#f6f2ff);border:.35mm solid #cbd4f4;border-radius:3mm;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pr-eyebrow{color:#5b54a8;font-size:8.5pt;font-weight:800;text-transform:uppercase;letter-spacing:1.4px}.pr-title{margin:1.6mm 0 0;padding-bottom:2mm;color:#171b3f;font:800 19pt/1.05 var(--font-body);letter-spacing:-.2px;border-bottom:.6mm solid #8f7ee8;display:inline-block}.pr-report-meta{display:flex;gap:5mm;flex:0 0 auto}.pr-report-meta span{min-width:30mm;display:flex;flex-direction:column;gap:.5mm;border-left:.8mm solid #9188db;padding-left:2.5mm}.pr-report-meta small{color:#61688a;font-size:8pt;font-weight:700;text-transform:uppercase}.pr-report-meta b{color:#20264c;font-size:10pt}.pr-continuation-head{display:flex;align-items:center;justify-content:space-between;gap:5mm;min-height:6mm;margin-bottom:2mm;padding:0 1mm 1.5mm;color:#68708e;border-bottom:.35mm solid #cbd4ec;font-size:8.5pt}.pr-continuation-head b{color:#5b54a8;text-transform:uppercase;letter-spacing:.5px}.pr-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2.4mm;align-items:start}.layout-day .pr-grid{display:block;border:none}.layout-day .pr-day{border:.35mm solid #cbd4ec;margin-bottom:6mm}.pr-day{min-width:0;border:.35mm solid #cbd4ec;border-radius:2.5mm;overflow:visible;break-inside:auto;page-break-inside:auto;background:#fff}.pr-dayhead{min-height:12mm;display:flex;align-items:center;justify-content:space-between;gap:2mm;background:#edf1ff;border-bottom:.35mm solid #cbd4ec;padding:2.2mm 2.5mm;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pr-sheet:not(:first-child) .pr-dayhead{min-height:10mm;padding:1.5mm 2.2mm}.pr-dayhead span{display:flex;flex-direction:column;gap:.2mm;min-width:0}.pr-dayhead b{color:#1f2754;font-size:11pt}.pr-dayhead small{color:#5f6788;font-size:8.5pt;font-weight:650}.pr-dayhead em{flex:0 0 auto;padding:1mm 1.7mm;color:#544c9c;background:#fff;border:.3mm solid #c9c8eb;border-radius:99mm;font-size:8pt;font-style:normal;font-weight:800}.pr-note{display:flex;flex-direction:column;gap:.7mm;background:#f2f9fb;min-height:10mm;padding:2mm 2.5mm;font-size:10pt;border-bottom:.35mm solid #cbd4ec;border-left:1mm solid #79b9c8;white-space:pre-wrap;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pr-note b{color:#357384;font-size:7.5pt;text-transform:uppercase}.pr-off{text-align:center;color:#6b7290;font-weight:700;padding:8mm 4px;background:repeating-linear-gradient(135deg,#f7f8fc,#f7f8fc 3mm,#f1f2f9 3mm 6mm);-webkit-print-color-adjust:exact;print-color-adjust:exact}.pr-off small{display:block;margin-top:1mm;font-weight:700;font-size:7.5pt;letter-spacing:1px;color:#9298b8}.pr-block{border-bottom:.3mm solid #d8dcef;border-left:1mm solid transparent;break-inside:auto;page-break-inside:auto;overflow:visible;background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pr-subj{display:flex;flex-direction:column;gap:.3mm;font-family:var(--font-body);font-weight:800;font-size:10pt;letter-spacing:.2px;padding:1.7mm 2.4mm;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pr-subj small{color:inherit;font-size:8pt;font-weight:700;opacity:.92}.pr-lt{color:#20264c;font-weight:800;padding:2mm 2.4mm 0;font-size:12pt;line-height:1.25}.pr-html{padding:4px 7px 7px;font-family:var(--font-body);font-size:12pt;line-height:1.27;overflow:visible}.pr-html,.pr-html *{font-family:var(--font-body)!important;font-size:12pt!important;line-height:1.27!important}.pr-html ul{margin:3px 0;padding-left:16px}.pr-html p{margin:3px 0}.pr-html img{max-width:100%}.pr-atts{display:flex;flex-wrap:wrap;align-items:center;gap:1.5mm;padding:1.5mm 2.4mm 2.8mm}.pr-atts-label{font-size:7pt;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:#8991b3;margin-right:.5mm}.pr-att-chip{display:inline-flex;align-items:center;gap:1mm;font-size:8.5pt;font-weight:650;color:#3d3a7a;text-decoration:none;background:#f1efff;border:.3mm solid #ddd8f8;border-radius:1.5mm;padding:.8mm 2mm}.pr-att-chip:before{content:"";width:2.2mm;height:2.6mm;flex:0 0 auto;background:#7f74d6;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);clip-path:polygon(0 0,65% 0,100% 35%,100% 100%,0 100%)}.pr-footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:baseline;gap:5mm;margin-top:3mm;padding-top:2mm;border-top:.3mm solid #d7dced;font-size:8pt;color:#68708e}.pr-footer-brand{justify-self:start;color:#5b54a8;font-weight:800;letter-spacing:.3px}.pr-footer-brand em{font-style:normal;font-weight:600;color:#7f7aa8;text-transform:none}.pr-footer>span:nth-child(2){justify-self:center;text-align:center}.pr-footer-page{justify-self:end;font-weight:700;color:#8991b3;white-space:nowrap}.pr-sheet{display:block;color:#202334;background:#fff}.pr-report-head{align-items:center;margin-bottom:4mm;padding:3.8mm 4.5mm;background:#f5f6fb;border-color:#d9ddea;border-radius:2.2mm}.pr-kicker{color:#5f5a92;font-size:7.5pt;font-weight:800;text-transform:uppercase;letter-spacing:1.3px}.pr-title{margin-top:1mm;padding:0;border:0;color:#202446;font-size:18pt;letter-spacing:-.25px}.pr-report-meta span{min-width:29mm;border-left-color:#746bb8}.pr-grid{display:block}.pr-day,.layout-day .pr-day{border:0;border-radius:0;margin:0;overflow:visible}.pr-dayhead{min-height:17mm;padding:2.6mm 3.2mm;margin-bottom:3mm;background:#2b315c;border:0;border-radius:2mm}.pr-dayhead b{color:#fff;font-size:14pt;letter-spacing:-.1px}.pr-dayhead small{color:#dfe4ff;font-size:8.5pt}.pr-dayhead .pr-kicker{color:#bec8ff;font-size:6.8pt;letter-spacing:1.1px}.pr-dayhead em{padding:1.3mm 2.3mm;color:#2b315c;background:#fff;border:0;font-size:8.3pt}.pr-note{display:grid;grid-template-columns:23mm 1fr;align-items:start;min-height:auto;margin:0 0 3mm;padding:2.4mm 3mm;background:#f2f8fa;border:.3mm solid #cfe2e7;border-left:1.1mm solid #5795a4;border-radius:1.8mm;font-size:9.5pt;line-height:1.35}.pr-note b{padding-top:.2mm;color:#376e7a;font-size:7.3pt;letter-spacing:.7px}.pr-block{margin:0 0 2.8mm;border:.3mm solid #d7dbe7;border-left:1.2mm solid transparent;border-radius:1.8mm;overflow:hidden;break-inside:avoid;page-break-inside:avoid;box-shadow:0 .5mm 1.5mm #252a4d0e}.pr-block.non-teachable{background:#fafafa;border-style:solid;box-shadow:none}.pr-subj{flex-direction:row;align-items:center;justify-content:space-between;gap:3mm;padding:1.8mm 2.4mm;background:#f5f6fa;border-bottom:.3mm solid #e0e3ec}.pr-subj-name{display:inline-flex;align-items:center;max-width:72%;padding:1.05mm 2.4mm;border-radius:99mm;font-size:9.2pt;font-weight:800;line-height:1.1;white-space:nowrap;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pr-time{color:#4f566f;font-size:8.5pt;font-weight:750;white-space:nowrap}.pr-group-details{padding:1.5mm 2.8mm 0;color:#687087;font-size:8pt;font-style:italic}.pr-lesson-body{padding:2.2mm 2.8mm 2.6mm}.pr-lesson-label{margin-bottom:.8mm;color:#737b92;font-size:7.2pt;font-weight:800;letter-spacing:.75px;text-transform:uppercase}.pr-lt{padding:0;color:#252a4c;font-size:11.5pt;line-height:1.25}.pr-html{padding:.8mm 0 0;font-size:10pt;line-height:1.35}.pr-html,.pr-html *{font-size:10pt!important;line-height:1.35!important}.pr-html p:first-child{margin-top:0}.pr-blank-lines{height:7mm;margin-top:1mm;background:repeating-linear-gradient(to bottom,transparent 0,transparent 3.2mm,#dfe2eb 3.2mm,#dfe2eb 3.45mm)}.pr-atts{padding:0 2.8mm 2.8mm}.pr-footer{margin-top:5mm}}.lesson-preview-split,.editor-body-split{flex:1;min-height:0;display:flex;overflow:hidden}.lesson-preview-split>.lesson-preview-body,.editor-body-split>.editor-body{flex:1;min-width:0}.lesson-preview-split.with-tips>.lesson-preview-body,.editor-body-split.with-tips>.editor-body{flex:1 1 46%}.tips-inline{flex:1 1 54%;min-width:0;display:flex;flex-direction:column;border-left:1px solid var(--border);background:var(--surface-glass);animation:tips-in .2s var(--ease-spring)}@keyframes tips-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}.tips-inline-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 11px;border-bottom:1px solid var(--border)}.tips-inline-head h3{margin:0 0 2px;color:var(--text-strong);font:750 19px var(--font-display)}.tips-inline-head p{margin:0;color:var(--accent-strong);font-size:14px;font-weight:650}.tips-inline-close{flex:0 0 auto;display:grid;place-items:center;width:32px;height:32px;color:var(--muted);background:none;border:none;border-radius:9px;cursor:pointer}.tips-inline-close:hover{color:var(--text-strong);background:var(--chip-bg)}.tips-inline-body{flex:1;min-height:0;overflow:auto;padding:14px 16px 20px}.tips-inline-body section{margin-bottom:16px}.tips-inline-body h4{display:flex;align-items:center;gap:6px;margin:0 0 6px;color:var(--accent-strong);font:750 13px var(--font-display);text-transform:uppercase;letter-spacing:.05em}.tips-inline-body p,.tips-inline-body li{font-size:16px;line-height:1.55;color:var(--text)}.tips-inline-body p{margin:0}.tips-unit-note{padding:11px 13px;background:var(--accent-soft);border-radius:12px;border:1px solid var(--accent-soft)}.tips-unit-note h4{margin-bottom:4px}.tips-steps{margin:0;padding-left:21px}.tips-steps li{margin-bottom:9px}.tips-steps li::marker{color:var(--accent-strong);font-weight:750}.tips-say{color:var(--text-strong);font-weight:700}.tips-watch{margin:0;padding-left:21px}.tips-watch li{margin-bottom:6px;color:var(--muted)}.tips-foot{padding-top:12px;border-top:1px solid var(--border);color:var(--muted);font-size:14px;line-height:1.5}.tips-foot p{margin:0 0 4px;font-size:inherit}.tips-foot b{color:var(--text-strong)}.tips-trigger{color:var(--accent-strong)}.tips-trigger.on{color:#fff;background:var(--accent);border-color:var(--accent)}@media(max-width:860px){.lesson-preview-split,.editor-body-split{flex-direction:column;overflow:auto}.lesson-preview-split.with-tips>.lesson-preview-body,.editor-body-split.with-tips>.editor-body{flex:0 0 auto}.tips-inline{flex:0 0 auto;border-left:none;border-top:1px solid var(--border)}}.template-preview-resources{margin-top:13px;padding:11px 13px;background:var(--accent-soft);border-radius:12px}.template-preview-resources b{color:var(--accent-strong);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.template-preview-resources ul{margin:7px 0 6px;padding:0;list-style:none}.template-preview-resources li{display:flex;align-items:center;gap:6px;font-size:13.5px;margin-bottom:3px}.template-preview-resources small{color:var(--muted);font-size:11.5px}@media(max-width:600px){.tips-panel{width:100vw;border-left:none}}.template-extension-picker{margin-top:13px;padding:11px 13px;background:var(--surface-glass);border:1px solid var(--border);border-radius:12px}.template-extension-picker>b{color:var(--accent-strong);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.template-extension-picker>b{display:block;margin-bottom:7px}.template-extension-picker>div{display:flex;flex-wrap:wrap;gap:6px}.template-extension-picker button{min-height:34px;padding:5px 11px;font:650 13px var(--font-body, inherit);color:var(--text);background:var(--card-bg);border:1px solid var(--border);border-radius:999px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.template-extension-picker button:hover{border-color:var(--accent)}.template-extension-picker button.on{color:#fff;background:var(--accent);border-color:var(--accent)}.template-extension-picker>div>small{display:block;margin:9px 0 5px;color:var(--muted);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.tips-errors{margin:0}.tips-errors>div{margin-bottom:10px;padding-left:11px;border-left:3px solid var(--accent-soft)}.tips-errors dt{margin-bottom:2px;color:var(--muted);font-size:14px;font-weight:700}.tips-errors dd{margin:0;font-size:16px;line-height:1.5}.tips-pace{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:1px 8px;color:var(--muted);background:var(--chip-bg);border-radius:999px;font-size:12.5px;font-weight:650}.tips-pace-note{margin-top:5px!important;color:var(--muted);font-size:14px!important}.tips-morph-toggle{padding:5px 11px;color:var(--accent-strong);background:var(--chip-bg);border:1px solid var(--border);border-radius:999px;cursor:pointer;font:650 13.5px var(--font-body, inherit)}.tips-morph-toggle:hover{border-color:var(--accent)}.tips-morph{margin-top:9px}.tips-morph>p{margin-bottom:6px}.tips-morph small{display:block;margin:11px 0 4px;color:var(--accent-strong);font-size:11.5px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.tips-morph dl{margin:0}.tips-morph dl>div{display:flex;gap:8px;margin-bottom:3px;font-size:14.5px}.tips-morph dt{flex:0 0 8.5em;color:var(--text-strong);font-weight:700}.tips-morph dd{margin:0;color:var(--muted)}.tips-morph-families{color:var(--muted)}.app.density-compact .week-grid .lesson-card{height:190px}.app.density-compact .week-grid .lesson-card .content{max-height:100px}.app.density-compact .lesson-card .content{font-size:15px;padding:8px 10px 16px}.app.density-compact .lesson-card .head{padding:7px 86px 7px 10px}.app.density-compact .lesson-card .titlebar{padding:6px 9px;font-size:15.5px}.app.density-compact .sticky-note{min-height:66px;font-size:15.5px;padding:9px 10px}@media(min-width:1180px){.app.density-compact .week-grid .lesson-card{height:220px}.app.density-compact .week-grid .lesson-card .content{max-height:130px}}.app.density-compact .lesson-card.blank-lesson .head{cursor:pointer}.lesson-card .head{font-size:14.5px}.lesson-card .head .time{font-size:13px}.lesson-card .titlebar{font-size:15.5px}.lesson-card .content{font-size:15px}.day-head{font-size:16px}.sticky-note{font-size:15.5px}.lesson-preview-title{font-size:24px}.lesson-card-menu{width:268px}.lesson-card-menu button{font-size:14px}.lesson-card-menu button.danger{color:var(--danger, #c0392b)}.lesson-card-menu button.danger:hover,.lesson-card-menu button.danger:focus-visible{color:#fff;background:var(--danger, #c0392b)}.sw-signal{margin:0 0 12px;padding:12px 14px;border:1px solid var(--border);border-left:3px solid var(--accent-strong);border-radius:12px;background:var(--chip-bg)}.sw-signal header{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.1em}.sw-signal-due{margin-left:auto;font-style:normal;font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--accent-strong);text-transform:none}.sw-signal-state{display:block;margin:7px 0 0;color:var(--text-strong);font:700 17px var(--font-display)}.sw-signal ul{margin:7px 0 0;padding-left:18px}.sw-signal li{color:var(--muted);font-size:13px;line-height:1.45}.sw-signal-watch{margin:8px 0 0;color:var(--text-strong);font-size:13px}.sw-signal-watch b{margin-right:6px;font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.sw-signal footer{margin-top:9px;padding-top:8px;border-top:1px solid var(--border);color:var(--muted);font-size:12px}.decodable-backdrop{z-index:90}.decodable-picker{width:min(620px,94vw);height:min(760px,88vh);display:flex;flex-direction:column}.decodable-suggestion{display:flex;align-items:center;gap:10px;margin:12px 16px 0;padding:11px 13px;text-align:left;color:var(--text);background:var(--accent-soft);border:1px solid rgba(116,92,255,.22);border-radius:12px;cursor:pointer}.decodable-suggestion:hover{border-color:var(--accent)}.decodable-suggestion span{display:flex;flex-direction:column;min-width:0}.decodable-suggestion b{color:var(--text-strong);font-size:15px}.decodable-suggestion small{color:var(--muted);font-size:13px}.decodable-search{margin:12px 16px}.decodable-list{flex:1;min-height:0;overflow:auto;padding:0 16px 18px}.decodable-list section{margin-bottom:14px}.decodable-list h3{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 5px;color:var(--accent-strong);font:750 13px var(--font-display);text-transform:uppercase;letter-spacing:.04em}.decodable-list h3 small{color:var(--muted);font-size:11.5px;text-transform:none;letter-spacing:0}.decodable-row{width:100%;display:flex;align-items:center;gap:9px;margin-bottom:4px;padding:9px 11px;text-align:left;color:var(--text);background:var(--card-bg);border:1px solid var(--border);border-radius:10px;cursor:pointer;font-size:15px}.decodable-row:hover{border-color:var(--accent)}.decodable-row.current{border-color:var(--accent);background:var(--accent-soft)}.decodable-row.read{opacity:.62}.decodable-title{flex:1;min-width:0;display:flex;align-items:baseline;gap:7px}.decodable-title small{color:var(--muted);font-size:12.5px}.decodable-flag{padding:1px 7px;color:var(--muted);background:var(--chip-bg);border-radius:999px;font-size:11.5px;font-weight:750}.decodable-read{padding:1px 8px;color:var(--muted);background:var(--chip-bg);border-radius:999px;font-size:12px;font-weight:650}.template-reading>p{margin:0 0 8px;color:var(--text-strong);font-size:14.5px}
