/* Quiet feedback; motion is only used for actions, never to decorate idle pages. */
:root{--ease-out:cubic-bezier(.2,.8,.2,1);--motion-fast:150ms;--motion-page:220ms}
button,.button,a,input,textarea,select{touch-action:manipulation}
button,.button{transition:background-color var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-fast) var(--ease-out)}
button:not(:disabled):active,.button:active{transform:translateY(1px)}
button:disabled{opacity:.5;transform:none;box-shadow:none}
button:focus-visible,a:focus-visible,.button:focus-within{outline:2px solid var(--brand);outline-offset:3px}
.primary{border-color:transparent;box-shadow:inset 0 1px 0 #ffffff12}
.ui-icon{width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
#nav button>span,#mobile-nav button>span{display:flex;align-items:center;justify-content:center}#nav button{position:relative;min-height:45px}#nav button.active:before{content:'';position:absolute;left:0;top:15px;bottom:15px;width:2px;border-radius:2px;background:var(--brand)}#nav button>span{transition:transform .18s var(--ease-out)}
.topbar{gap:12px}.topbar-location{min-width:0}.topbar-location>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-tools{flex-shrink:0}.quick-search{display:flex;align-items:center;gap:9px;background:transparent;color:var(--muted);padding:8px 11px}.quick-search .ui-icon{width:16px;height:16px}.quick-search kbd{font:10px inherit;border:1px solid var(--line);border-radius:4px;padding:2px 4px;color:var(--muted);margin-left:14px}.settings-access{min-height:35px}
.sidebar{z-index:20;transition:transform var(--motion-page) var(--ease-out),visibility 0s linear;will-change:auto}.shell{transition:margin-left var(--motion-page) var(--ease-out)}.sidebar-collapsed .sidebar{display:flex;transform:translateX(-100%);visibility:hidden;transition:transform var(--motion-page) var(--ease-out),visibility 0s var(--motion-page)}
.card{border-color:var(--line)}.subject-tile,.shortcut,.program-card,.note-tile,.grades-subject-card{transition:border-color .18s,background-color .18s,box-shadow .18s,transform .18s var(--ease-out)}
.task-row{transition:background-color .15s;position:relative}.task-row .check{width:22px;height:22px;border-radius:7px;transition:background-color .15s,border-color .15s,box-shadow .15s}.check.checked{background:var(--action);border-color:var(--action);color:white}.task-row .delete{color:var(--muted)}.task-row .task-name{padding:4px 0}.task-row .task-name strong{line-height:1.45}.task-row time{font-variant-numeric:tabular-nums}.task-row.done{opacity:.7}.lesson-row{border-radius:8px;padding-left:8px;padding-right:8px}.home-result{border-radius:6px;padding-left:8px;padding-right:8px}.home-result,.lesson-row,.material-row{transition:background-color .15s,color .15s}.material-row{padding-left:8px;padding-right:8px;border-radius:8px}.material-row>a{padding:4px 0}.subject-monogram{transition:background-color .18s,transform .18s var(--ease-out)}
input,textarea,select{transition:border-color .15s,box-shadow .15s;background-color:var(--field)}input:focus,textarea:focus,select:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 12%,transparent)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.65}input[type=checkbox]{accent-color:var(--action)}
dialog{box-shadow:0 24px 90px #0007;padding:26px;border-color:var(--line)}dialog[open]{animation:dialog-appear .18s var(--ease-out)}dialog::backdrop{background:#0009;backdrop-filter:blur(4px)}@keyframes dialog-appear{from{opacity:0;transform:translateY(7px) scale(.99)}to{opacity:1;transform:none}}
button[aria-busy=true]{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;opacity:.8}button[aria-busy=true]:before{content:'';width:12px;height:12px;flex:none;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:busy-turn .8s linear infinite}@keyframes busy-turn{to{transform:rotate(360deg)}}
#toast{box-shadow:0 8px 30px #0004;border:1px solid #ffffff15;padding:12px 18px;font-weight:450;transition:opacity .18s,transform .18s var(--ease-out);max-width:min(90vw,560px)}
.command-dialog{width:min(600px,calc(100vw - 32px));padding:0;margin:14vh auto auto;max-height:70dvh;overflow:hidden;border-radius:18px}.command-search{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}.command-search>svg{color:var(--brand)}.command-search input{border:0;padding:8px 0;background:transparent;box-shadow:none;font-size:15px}.command-search input:focus{outline:none;box-shadow:none}.command-search button{font-size:11px;padding:5px 7px;background:transparent;color:var(--muted)}#command-results{padding:8px;max-height:45dvh;overflow:auto;overscroll-behavior:contain}.command-option{display:flex;align-items:center;gap:13px;padding:12px;border-radius:10px;cursor:pointer;color:var(--muted)}.command-option.selected,.command-option:hover{background:var(--blue-soft);color:var(--brand)}.command-option>span:nth-child(2){flex:1;min-width:0}.command-option strong{display:block;font-weight:500;font-size:13px;overflow-wrap:anywhere;color:var(--ink)}.command-option small{display:block;font-size:11px;margin-top:5px;color:var(--muted)}.command-return{opacity:0}.command-option.selected .command-return{opacity:1}.command-footer{padding:12px 20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:10px}.command-empty{padding:25px;text-align:center;color:var(--muted);font-size:13px}
.grades-lower-grid{grid-template-columns:1fr}.grades-overview-spark{display:none}.grades-section-heading .eyebrow{display:none}.grades-overall p{font-size:12px}.grades-chart-card{min-width:0}.school-status{display:flex;align-items:center;gap:8px}.school-status[data-kind=error]{color:var(--warning)}.school-status[data-kind=success]:before{content:'✓';color:var(--success)}.school-retry{font-size:12px}.subject-search{max-width:360px;margin-bottom:20px}.subject-search input{margin:0}.subject-directory-count{font-size:12px;color:var(--muted);margin-bottom:16px}.subject-tile[hidden]{display:none}
@media(hover:hover) and (pointer:fine){button:not(:disabled):hover,.button:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--line))}.primary:not(:disabled):hover{background:var(--action-hover);box-shadow:0 3px 16px #174bc52b,inset 0 1px 0 #ffffff20;transform:translateY(-1px)}#nav button:not(.active):hover{background:var(--surface-raised);color:var(--ink)}#nav button:hover>span{transform:translateX(2px)}.subject-tile:hover,.shortcut:hover,.note-tile:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 40%,var(--line));box-shadow:0 8px 24px #0002}.subject-tile:hover .subject-monogram{transform:scale(1.04)}.task-row:hover{background:color-mix(in srgb,var(--brand) 3%,transparent)}.check:not(:disabled):hover{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 12%,transparent)}.task-row .delete:hover{background:var(--warning-bg);color:var(--warning)}.home-result:hover,.material-row:hover,.lesson-row:hover{background:var(--blue-soft)}.text-button:hover{color:var(--ink);background:var(--surface-raised)}.quick-search:hover{background:var(--surface-raised);color:var(--ink)}}
@media(max-width:760px){.sidebar,.sidebar-collapsed .sidebar{display:none}.shell{transition:none}.topbar{gap:8px}.header-tools{gap:6px}.quick-search{min-width:36px;min-height:36px;padding:9px}.quick-search span,.quick-search kbd{display:none}.settings-access{padding:8px}.topbar strong{margin-left:0}#mobile-nav .ui-icon{width:19px;height:19px}#mobile-nav button{min-height:50px}#mobile-nav{padding-bottom:env(safe-area-inset-bottom,0px)}main{padding-bottom:calc(95px + env(safe-area-inset-bottom,0px))}.command-dialog{margin-top:10vh;max-height:65dvh}.command-search{padding:13px}.command-search input{font-size:16px}.command-footer{padding:12px}.command-footer span:last-child{display:none}dialog input,dialog textarea,dialog select{font-size:16px}.task-row .delete{min-width:30px;min-height:32px}.subject-search{max-width:none}.school-toolbar .button-row{flex-wrap:nowrap}.school-toolbar .button-row button{white-space:nowrap}.subject-trend{max-height:120px}.note-editor-properties{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}button:not(:disabled):hover,.subject-tile:hover,.shortcut:hover,.note-tile:hover{transform:none!important}}

*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.command-search input::-webkit-search-cancel-button{cursor:pointer}
