
/* SchoolOS 10.1 – locally implemented React Bits-inspired microinteractions */
:root{--os-spring:cubic-bezier(.2,1.4,.45,1);--os-ease:cubic-bezier(.22,1,.36,1);--os-tap:150ms;--os-ui:260ms}
.brand-mark{font-size:0!important;background:transparent!important;box-shadow:none!important;border:0!important;overflow:visible!important;position:relative}
.brand-mark::before{content:"";display:block;width:100%;height:100%;min-width:42px;min-height:42px;background:url('./assets/icon.svg') center/contain no-repeat;filter:drop-shadow(0 4px 9px #5245b52b)}
.os11-splash{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 43%,#403176 0%,#171a37 44%,#0d152c 100%);pointer-events:auto;transition:opacity 420ms ease,visibility 420ms ease}
.os11-splash.os11-exit{opacity:0;visibility:hidden;pointer-events:none}.os11-splash-inner{display:grid;justify-items:center;gap:14px;animation:os11-enter 520ms var(--os-ease) both}.os11-splash-logo{width:110px;height:110px;border-radius:26px;filter:drop-shadow(0 18px 35px #8d6dff55);animation:os11-logo 950ms var(--os-spring) both}.os11-splash-title{color:#fff;font-size:27px;font-weight:760;letter-spacing:-.8px}.os11-splash-sub{color:#c2bce7;font-size:13px;letter-spacing:.12em;text-transform:uppercase}.os11-splash-line{width:96px;height:3px;border-radius:8px;background:#ffffff30;overflow:hidden;margin-top:12px}.os11-splash-line::after{content:"";display:block;height:100%;width:55%;background:#b4a5ff;border-radius:8px;animation:os11-progress 800ms ease-out both}
@keyframes os11-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes os11-logo{0%{opacity:0;transform:scale(.65) rotate(-9deg)}65%{opacity:1;transform:scale(1.08) rotate(2deg)}100%{transform:scale(1) rotate(0)}}@keyframes os11-progress{from{transform:translateX(-120%)}to{transform:translateX(95%)}}
/* Spring Check */
.tick{position:relative;min-width:30px;min-height:30px;transition:transform var(--os-tap) var(--os-spring),background var(--os-ui)!important}.tick.os11-pop,.tick.checked{animation:os11-check 350ms var(--os-spring)}@keyframes os11-check{0%{transform:scale(.72)}65%{transform:scale(1.2)}100%{transform:scale(1)}}
/* Rubber Segment + Jelly Radio */
.day-tabs,.subject-tab-group{padding:4px;border-radius:16px;background:color-mix(in srgb,var(--accent-soft) 70%,transparent);gap:4px}.day-tab,.subject-tab,.filter,.tab{transition:background 220ms ease,transform 270ms var(--os-spring),box-shadow 220ms ease!important}.day-tab.selected,.filter.active,.tab.active,.subject-tab.active{transform:scale(1.025);box-shadow:0 3px 12px #6852c626}.day-tab:active,.filter:active,.tab:active{transform:scale(.94)}
/* Gooey-inspired active navigation, no canvas/particles */
.sidebar .nav-link{position:relative;isolation:isolate;transition:color 200ms,transform 200ms var(--os-spring),background 240ms!important}.sidebar .nav-link.active{box-shadow:inset 0 0 0 1px #a99af644,0 4px 14px #7561c31a}.sidebar .nav-link.active::before{content:"";position:absolute;inset:3px;border-radius:12px;background:linear-gradient(125deg,#c7bcff26,transparent 70%);z-index:-1;animation:os11-goo 360ms var(--os-spring)}@keyframes os11-goo{from{opacity:0;transform:scale(.87,.75)}to{opacity:1;transform:scale(1)}}
/* Magic Bento / Spotlight, touch-friendly and no permanent animation */
#main.view-dashboard .card{position:relative;overflow:hidden;transition:transform 180ms var(--os-ease),box-shadow 220ms ease,border-color 220ms ease!important}#main.view-dashboard .card:active{transform:scale(.986)}@media(hover:hover){#main.view-dashboard .card:hover{box-shadow:0 15px 40px #52439b21;border-color:#b7a8f6}#main.view-dashboard .card::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(380px circle at var(--os-x,50%) var(--os-y,50%),#c6b6ff26,transparent 65%);transition:opacity 180ms}#main.view-dashboard .card:hover::after{opacity:1}}
/* Prompt Bar */
.chat-bottom{border-radius:21px;padding:8px;box-shadow:0 7px 24px #5544a415}.chat-bottom textarea{font-size:16px!important}.chat-bottom:focus-within{box-shadow:0 0 0 3px #a99aff33,0 8px 30px #5544a424}.chat-bottom button{transition:transform 180ms var(--os-spring)}.chat-bottom button:active{transform:scale(.9)}
/* Bell toggle and swipe toast */
.os11-bell{display:inline-flex;align-items:center;justify-content:center;min-width:38px;min-height:38px;border-radius:13px;background:var(--accent-soft);font-size:18px}.os11-bell.on{animation:os11-ring 420ms ease-in-out}@keyframes os11-ring{0%,100%{transform:rotate(0)}20%{transform:rotate(17deg)}45%{transform:rotate(-15deg)}70%{transform:rotate(8deg)}}
#toast{touch-action:pan-y;transition:transform 220ms var(--os-ease),opacity 220ms ease}#toast.os11-dismiss{transform:translateX(110vw)!important;opacity:0!important}
/* Sheets + buttons */
.button,.icon-button,.top-plus,.os10-bottom-nav button{transition:transform 150ms var(--os-spring),box-shadow 200ms ease,background 200ms ease}.button:active,.icon-button:active,.top-plus:active{transform:scale(.955)}.overlay:not(.hidden) .modal{animation:os10-sheet-in 290ms var(--os-spring)}
/* Hold to delete: progress is visual; original action is only dispatched after hold */
.os11-hold{position:relative;overflow:hidden;touch-action:none}.os11-hold::before{content:"";position:absolute;inset:0;background:#e94b6555;transform:scaleX(var(--hold-progress,0));transform-origin:left;pointer-events:none}.os11-hold>*{position:relative}
@media(max-width:760px){.os11-splash-logo{width:96px;height:96px}.os10-bottom-nav{box-shadow:0 10px 36px #342c6b26, inset 0 1px #fff9}.os10-bottom-nav button[aria-current=page]{animation:os11-goo 280ms var(--os-spring)}.chat-bottom{box-shadow:none}}
@media(prefers-reduced-motion:reduce){.os11-splash,.os11-splash-inner,.os11-splash-logo,.os11-splash-line::after{animation:none!important;transition:none!important}.os11-splash{display:none!important}}
@media(prefers-reduced-transparency:reduce){.os11-splash{background:#151a36}.chat-bottom{backdrop-filter:none}}

/* 10.2: shader-inspired launch mesh + restrained metallic glint */
.os11-splash{background:radial-gradient(ellipse at 50% 44%,#333d62 0%,#1a253e 50%,#10192c 100%)}
.os12-mesh{position:absolute;width:min(94vw,540px);height:min(94vw,540px);opacity:.8;pointer-events:none;mask-image:radial-gradient(circle,#000 24%,transparent 73%)}
.os11-splash-inner{position:relative;z-index:1}.os11-splash-logo{box-shadow:0 18px 45px #070d2044;filter:drop-shadow(0 16px 32px #a6b6ff25)}
.os11-splash-logo::after{content:''}.os11-splash-sub{color:#b6c2de}.os11-splash-line::after{background:linear-gradient(90deg,#849ad4,#e6eaff)}
/* Dimmed navigation bug: scrim never intercepts taps unless drawer is visibly open */
.os10-scrim:not(.visible){display:none!important;opacity:0!important;pointer-events:none!important}
@media(max-width:760px){.os10-scrim.visible{pointer-events:auto}}
/* Sketch layout retained, but secondary cards no longer have a rainbow palette */
#main.view-dashboard .dashboard-grid>.card:nth-child(n+2),#main.view-dashboard .next-grid>.card{background:var(--surface)!important;border-color:var(--border)!important}
#main.view-dashboard .card .button{box-shadow:none}
#main.view-dashboard .card:nth-child(n+2) .tag{background:var(--accent-soft);color:var(--accent-deep)}
@media(prefers-color-scheme:dark){#main.view-dashboard .dashboard-grid>.card:nth-child(n+2),#main.view-dashboard .next-grid>.card{background:var(--surface)!important}}
@media(prefers-reduced-motion:reduce){.os12-mesh{display:none}}
