:root{color-scheme:dark;--bg: #151b1d;--bg-deep: #111718;--surface: #20292b;--surface-raised: #293437;--surface-hover: #314043;--border: #344044;--border-strong: #526163;--text: #f3f7f6;--text-soft: #c4d0cd;--text-muted: #94a6a2;--accent: #84ded3;--accent-strong: #b0f1e8;--accent-ink: #0b3230;--danger: #ffa29c;--warning: #e9cb8c;--radius: 14px;--radius-small: 9px;--sidebar-width: 248px;--content-width: 820px;--ease: cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100dvh;background:var(--bg);color:var(--text);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI Variable,Segoe UI,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[contenteditable=true]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100dvh}.shell-menu-button{position:fixed;z-index:60;display:grid;width:36px;height:36px;place-items:center;border-radius:var(--radius-small);border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;text-decoration:none}.shell-menu-button{display:none;top:14px;left:14px}.shell-menu-button:hover{background:var(--surface-raised);color:var(--text)}.sidebar-wrap{grid-column:1;position:fixed;inset:0 auto 0 0;z-index:20;width:var(--sidebar-width)}.sidebar{display:flex;height:100dvh;flex-direction:column;border-right:1px solid var(--border);background:var(--surface)}.sidebar__top{padding:14px 12px 11px}.search-trigger{display:flex;width:100%;align-items:center;gap:8px;padding:8px 9px;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--bg-deep);color:var(--text-soft);cursor:pointer;text-align:left}.search-trigger span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}kbd{padding:1px 5px;border:1px solid var(--border-strong);border-radius:4px;color:var(--text-muted);font-family:inherit;font-size:11px}.tree{flex:1;overflow:auto;padding:6px 8px 16px}.tree__semester-link,.tree__subject-link{display:flex;align-items:center;text-decoration:none}.tree__semester-link{gap:6px;padding:7px 8px;color:var(--text);font-weight:620}.tree__subjects{margin-left:14px;padding-left:10px;border-left:1px solid var(--border-strong)}.tree__subject-link{min-height:34px;margin:1px 0;padding:6px 10px;border-radius:var(--radius-small);color:var(--text-soft)}.tree__subject-link:hover,.tree__subject-link.active{background:var(--surface-hover);color:var(--text)}.sidebar__new{display:flex;align-items:center;gap:7px;margin:10px 12px 13px;padding:9px 10px;border:0;border-radius:var(--radius-small);background:transparent;color:var(--text-muted)}.main-area{grid-column:2;min-width:0;min-height:100dvh}.route-skeleton{width:min(760px,calc(100% - 48px));height:420px;margin:72px auto;border-radius:var(--radius);background:linear-gradient(110deg,var(--surface) 25%,var(--surface-raised) 37%,var(--surface) 63%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}.page{width:min(100%,calc(var(--content-width) + 96px));margin:0 auto;padding:52px 48px 96px}.page-header{position:relative;margin-bottom:42px}.breadcrumb{margin:0 0 10px;color:var(--text-muted);font-size:13px}h1{margin:0;color:var(--text);font-size:clamp(2rem,4vw,3.35rem);font-weight:720;letter-spacing:-.045em;line-height:1.06}h2{color:var(--text);font-size:16px;font-weight:650;letter-spacing:-.01em}.page-header__meta{position:absolute;right:0;bottom:4px;margin:0;color:var(--text-muted);font-size:12px}.section-heading-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.section-heading-row h2{margin:0}.notes-editor{margin-bottom:50px}.editor-toolbar{display:flex;gap:3px;padding:6px;border:1px solid var(--border);border-bottom:0;border-radius:var(--radius) var(--radius) 0 0;background:var(--surface)}.editor-toolbar button{display:grid;width:32px;height:30px;place-items:center;border:0;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer}.editor-toolbar button:hover,.editor-toolbar button.is-active{background:var(--surface-hover);color:var(--text)}.notes-editor .tiptap{min-height:170px;padding:20px 22px;border:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);background:var(--bg-deep);color:var(--text-soft)}.notes-editor .tiptap:focus{outline:0;border-color:var(--border-strong);box-shadow:inset 3px 0 0 var(--accent)}.notes-editor .tiptap p:first-child{margin-top:0}.notes-editor .tiptap p:last-child{margin-bottom:0}.notes-editor .tiptap h2{margin-top:1.4em;font-size:1.3rem}.editor-skeleton{min-height:230px;border-radius:var(--radius);background:linear-gradient(110deg,var(--surface) 25%,var(--surface-raised) 37%,var(--surface) 63%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position-x:-200%}}.entry-sections{display:grid;gap:42px}.entry-section h2{display:flex;align-items:center;gap:8px;margin:0 0 11px}.entry-list{border-top:1px solid var(--border)}.entry-row{display:flex;min-height:76px;align-items:center;gap:20px;padding:15px 2px;border-bottom:1px solid var(--border)}.entry-row__body{min-width:0;flex:1}.entry-row__title{display:flex;align-items:center;gap:8px}.entry-row p{margin:4px 0 0;color:var(--text-soft)}.entry-row__meta{display:inline-flex;align-items:center;gap:5px;margin-top:7px;color:var(--text-muted);font-size:12px}.score{color:var(--accent);font-variant-numeric:tabular-nums;font-size:13px}.result-state{color:var(--text-muted);font-size:12px;text-transform:capitalize;white-space:nowrap}.result-state--confirmed{color:var(--accent)}.semester-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:36px;padding:20px 0 48px}.semester-hero p:not(.breadcrumb){max-width:540px;margin:18px 0 0;color:var(--text-soft);font-size:17px}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 14px;border-radius:var(--radius-small);font-weight:650;text-decoration:none;white-space:nowrap;cursor:pointer}.primary-button{border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink)}.secondary-button{border:1px solid var(--border-strong);background:var(--surface);color:var(--text)}.primary-button:active,.secondary-button:active{transform:translateY(1px)}.semester-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--border)}.semester-summary div{display:flex;flex-direction:column;padding:21px 23px;background:var(--surface)}.semester-summary strong{font-size:24px;font-weight:680}.semester-summary span{color:var(--text-muted);font-size:13px}.semester-content{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:56px;margin-top:48px}.semester-subjects h2,.semester-aside h2{margin:0 0 12px}.semester-subjects>a{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:55px;padding:12px 0;border-bottom:1px solid var(--border);text-decoration:none}.semester-subjects>a:hover>span:first-child{color:var(--accent)}.semester-subjects>a>span:last-child{display:flex;align-items:center;gap:7px;color:var(--text-muted);font-size:12px}.semester-aside{padding:18px;border-radius:var(--radius);background:var(--surface);align-self:start}.semester-aside p,.semester-aside a{display:flex;align-items:center;gap:8px;margin:13px 0;color:var(--text-soft);text-decoration:none}.semester-aside a:hover{color:var(--accent)}.graph-page{display:flex;min-height:100dvh;flex-direction:column;padding:10px 12px 12px}.graph-canvas{position:relative;min-height:0;flex:1;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-deep)}.graph-node{display:grid!important;width:80px!important;height:80px!important;place-items:center;padding:9px!important;border:1px solid color-mix(in srgb,var(--accent) 65%,var(--border))!important;border-radius:50%!important;background:#20302f!important;color:var(--text)!important;text-align:center;font-size:11px!important;box-shadow:none!important}.graph-node--semester{width:96px!important;height:96px!important;border-color:var(--text-soft)!important;background:var(--surface-raised)!important;font-weight:700}.graph-node--subject:hover{background:#29413f!important}.react-flow__handle{opacity:0}.react-flow__controls{overflow:hidden;border:1px solid var(--border)!important;border-radius:var(--radius-small)!important;background:var(--surface)!important;box-shadow:none!important}.react-flow__controls-button{border-color:var(--border)!important;background:var(--surface)!important;fill:var(--text-soft)!important}.dialog-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:start center;padding:13vh 18px 18px;background:#0b0d0dad;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.search-dialog{width:min(640px,100%);overflow:hidden;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);box-shadow:0 28px 90px #080b0a6b}.search-dialog__input-row{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}.search-dialog__input-row input{min-width:0;flex:1;border:0;background:transparent;color:var(--text);outline:0}.search-dialog__input-row button{display:grid;place-items:center;border:0;background:transparent;color:var(--text-muted);cursor:pointer}.search-dialog__results{max-height:50vh;overflow:auto;padding:7px}.search-dialog__results>button{display:flex;width:100%;flex-direction:column;gap:2px;padding:10px 11px;border:0;border-radius:var(--radius-small);background:transparent;color:var(--text);cursor:pointer;text-align:left}.search-dialog__results>button:hover{background:var(--surface-hover)}.search-dialog__results span{overflow:hidden;color:var(--text-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.empty-copy{padding:20px;color:var(--text-muted);text-align:center}.drawer-scrim{display:none}@media(max-width:900px){.app-shell{grid-template-columns:minmax(0,1fr)}.main-area{grid-column:1}.shell-menu-button{display:grid}.sidebar-wrap{z-index:50;transform:translate(calc(-1 * var(--sidebar-width)));transition:transform .24s var(--ease)}.sidebar-wrap--open{transform:translate(0)}.drawer-scrim{display:block;position:fixed;inset:0;z-index:40;border:0;background:#0a0c0c94}.page{padding-inline:34px}.semester-content{grid-template-columns:1fr}.semester-aside{order:-1}}@media(max-width:620px){.page{padding:34px 20px 72px}.page-header{margin-bottom:32px}.page-header__meta{position:static;margin-top:8px}.semester-hero{align-items:flex-start;flex-direction:column;padding:4px 0 34px}.semester-summary{grid-template-columns:1fr}.semester-content{margin-top:36px;gap:32px}.section-heading-row{align-items:flex-start;flex-direction:column;gap:6px}.entry-row{align-items:flex-start;flex-direction:column;gap:10px}.search-trigger kbd{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body{font-size:14px}h1{font-size:clamp(30px,3vw,43px);font-weight:650;letter-spacing:-.045em;line-height:1.15}h2{font-size:15px;font-weight:600}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.35;cursor:not-allowed}textarea{resize:vertical}html{scroll-behavior:smooth;scroll-padding-top:75px}textarea:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.sidebar-wrap{z-index:50}.sidebar__top{padding:26px 16px 25px}.search-trigger{font-size:11px;border-radius:6px;color:var(--text-muted)}.search-trigger kbd{font-size:9px;white-space:nowrap}.sidebar-label{display:flex;align-items:center;justify-content:space-between;padding:0 20px 8px;color:var(--text-muted);font-size:9px;letter-spacing:.11em;font-weight:650}.sidebar-label .icon-button{width:24px;height:24px}.tree{flex:1;overflow-y:auto;padding:0 10px}.tree__semester{margin-bottom:13px}.tree__semester-row{display:flex;align-items:center}.tree__semester-row>button{width:23px;flex-shrink:0}.tree__semester-link{flex:1;padding:8px 9px;font-size:12px;border-radius:6px}.tree__semester-link.active{color:var(--text);background:var(--surface-raised)}.tree__add-subject{width:24px;height:24px;margin-right:4px;opacity:.65}.tree__semester-row:hover .tree__add-subject,.tree__semester-row:focus-within .tree__add-subject{opacity:1}.tree__subjects{margin:5px 0 5px 17px;padding-left:13px}.tree__subject-link{display:flex;align-items:center;gap:10px;margin:2px 0;font-size:12px;padding:9px 10px}.tree__subject-link.active{color:var(--accent);background:#293b38}.subject-color--0{--subject-color: #86c9b4;color:var(--subject-color)}.subject-color--1{--subject-color: #d6b77f;color:var(--subject-color)}.subject-color--2{--subject-color: #a6b6df;color:var(--subject-color)}.subject-color--3{--subject-color: #cf9eae;color:var(--subject-color)}.subject-color--4{--subject-color: #b8c896;color:var(--subject-color)}.subject-color--5{--subject-color: #8dbbc8;color:var(--subject-color)}.sidebar__new{margin:10px 17px;font-size:12px}.sidebar-archived{display:grid;max-height:150px;gap:4px;overflow:auto;padding:12px 18px;border-top:1px solid var(--border)}.sidebar-archived strong{color:var(--text-muted);font-size:9px;letter-spacing:.11em}.sidebar-archived button{padding:5px 0;border:0;background:none;color:var(--text-soft);font-size:11px;text-align:left}.sidebar-archived button:hover{color:var(--accent)}.sidebar-error{margin:0 18px}.page{max-width:1160px;padding:43px 55px 80px;animation:page-enter .25s ease-out}.page--subject{max-width:980px}.page-header{margin-bottom:34px}.subject-header{display:flex;align-items:center;justify-content:space-between;gap:20px}.subject-header h1{flex:1;min-width:0}.page--subject .subject-title-input{display:block;width:100%;padding:0;border:0;border-bottom:1px solid transparent;border-radius:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit}.page--subject .subject-title-input:focus-visible{outline:0;border-bottom-color:var(--accent)}.page-title-row{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}.page-icon{display:inline-grid;width:57px;height:57px;place-items:center;border:1px solid #40534d;border-radius:14px;background:#273932;color:#9cd5b8;margin-bottom:20px}.page-title-row .page-icon{margin-bottom:0}.page-icon>span{font-size:18px;font-weight:650;letter-spacing:-.05em}.header-actions{display:flex;gap:5px}.page-description{margin:12px 0 0;color:var(--text-muted);font-size:14px}.breadcrumb{font-size:11px}.breadcrumb a{text-decoration:none}.breadcrumb a:hover{color:var(--accent)}.eyebrow{margin:0 0 11px;font-size:9px;font-weight:550;color:var(--text-muted);letter-spacing:.14em}.semester-hero p.eyebrow{margin:0 0 11px;font-size:9px;color:var(--text-muted);letter-spacing:.14em}.setup-steps{margin:12px 0 0;padding-left:18px;font-size:11px;color:var(--text-muted)}.setup-steps li{margin:9px 0}.account-footnote{margin-top:16px;font-size:10px!important}.semester-hero{display:block;padding:0 0 32px}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.semester-hero .hero-bottom p:last-child{margin:12px 0 0;color:var(--text-muted);font-size:13px}.primary-button,.secondary-button{min-height:36px;padding:8px 13px;font-size:12px;border-radius:6px;font-weight:550}.primary-button:hover{background:var(--accent-strong)}.secondary-button:hover{background:var(--surface-raised);color:var(--text)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:0;border-radius:5px;background:transparent;color:var(--text-muted);text-decoration:none;flex-shrink:0}.icon-button:hover{color:var(--text);background:var(--surface-hover)}.text-button{display:inline-flex;gap:5px;align-items:center;padding:4px 0;background:none;border:0;color:var(--text-muted);font-size:11px;white-space:nowrap}.text-button:hover{color:var(--accent)}.plain-button{background:none;color:inherit;border:0;padding:0;text-align:left}.semester-summary{border-radius:0;border-inline:0;padding:23px 0;gap:0;background:none}.semester-summary>div{padding:0 25px;border-right:1px solid var(--border);background:none}.semester-summary>div:first-child{padding-left:0}.semester-summary>div:last-child{border-right:0;padding-right:0}.semester-summary>div>span{display:flex;align-items:center;gap:7px;color:var(--text-muted);font-size:11px}.semester-summary>div>span svg{color:var(--text-soft)}.semester-summary strong{display:flex;align-items:baseline;gap:12px;font-size:29px;letter-spacing:-.04em;font-weight:500;margin-top:7px;font-variant-numeric:tabular-nums}.semester-summary small{color:var(--text-muted);font-size:10px;font-weight:400;letter-spacing:0}.semester-content{grid-template-columns:minmax(0,1fr) 250px;gap:37px;margin-top:37px}.section-heading-row h2{display:flex;align-items:center;gap:8px;margin:0}.count{display:inline-grid;min-width:18px;height:18px;padding:0 5px;place-items:center;border:1px solid var(--border);border-radius:5px;font-size:10px;color:var(--text-muted);font-weight:400}.section-description{font-size:11px;color:var(--text-muted);margin-bottom:18px}.subject-list-row{display:flex;align-items:center;border-bottom:1px solid var(--border)}.subject-list-row>a{display:flex;align-items:center;flex:1;min-width:0;gap:12px;text-decoration:none;padding:17px 0}.subject-symbol{display:grid;place-items:center;width:37px;height:39px;flex-shrink:0;border:1px solid color-mix(in srgb,var(--subject-color) 18%,transparent);background:color-mix(in srgb,var(--subject-color) 7%,transparent);border-radius:7px;font-size:11px;font-weight:600;letter-spacing:-.04em}.subject-list-name{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.subject-list-name strong{font-size:12px;font-weight:550;color:var(--text-soft)}.subject-list-name small{font-size:10px;color:var(--text-muted)}.subject-list-row:hover .subject-list-name strong{color:var(--accent)}.subject-list-row>a>svg{color:var(--text-muted);width:14px}.subject-task-count{display:flex;align-items:center;gap:4px;color:var(--text-muted);font-size:10px;white-space:nowrap}.subject-task-count.has-tasks{color:#d6bc88}.reorder-actions{display:flex;flex-direction:column;margin-left:8px;opacity:0}.reorder-actions .icon-button{height:20px;width:20px}.subject-list-row:hover .reorder-actions,.subject-list-row:focus-within .reorder-actions{opacity:1}.semester-aside{padding:19px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.semester-aside h2{font-size:13px}.semester-aside .section-description{display:block;margin:0 0 18px;font-size:11px;color:var(--text-muted)}.next-task{display:flex;align-items:flex-start;gap:9px;margin:20px 0}.next-task a{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;text-decoration:none;margin:0}.next-task strong{font-size:11px;line-height:1.5;color:var(--text-soft);font-weight:500}.next-task a:hover strong{color:var(--accent)}.next-task span{color:var(--text-muted);font-size:10px}.next-task .task-check{margin-top:3px}.semester-aside .aside-link{display:flex;justify-content:space-between;align-items:center;color:var(--text-soft);font-size:10px;padding-top:12px;margin:18px 0 0;border-top:1px solid var(--border)}.semester-resource{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:24px;border-top:1px solid var(--border);padding-top:20px}.semester-resource>svg{color:#b4c8bf}.semester-resource strong{font-size:11px;font-weight:550}.semester-resource p{display:block;font-size:10px;color:var(--text-muted);margin:-4px 0 2px}.semester-resource a{display:flex;align-items:center;gap:10px;margin:0;font-size:10px;color:var(--accent)}.all-done{padding:15px 0;color:var(--accent)}.all-done p{color:var(--text-muted);font-size:12px}.semester-notes{margin-top:45px}.notes-editor{position:relative;margin-bottom:38px}.page--subject .notes-editor .tiptap{min-height:1.7em;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--text-soft);font-size:14px;line-height:1.7;overflow-wrap:anywhere}.page--subject .notes-editor .tiptap:focus{outline:0;border:0;box-shadow:none}.notes-editor__content h2{font-size:20px}.notes-editor__content pre{background:var(--surface);padding:12px;border-radius:5px;overflow-x:auto}.notes-editor__content a{color:var(--accent)}.notes-editor__content ul[data-type=taskList]{list-style:none;padding-left:0}.notes-editor__content li[data-type=taskItem]{display:flex;align-items:flex-start;gap:9px}.notes-editor__content li[data-type=taskItem]>label{margin-top:2px}.notes-editor__content li[data-type=taskItem]>div{flex:1}input[type=checkbox]{accent-color:var(--accent)}.entry-sections{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:35px;row-gap:40px}.entry-section--exam,.entry-sections>.inline-alert,.entry-sections>.undo-bar{grid-column:1 / -1}.entry-section{min-width:0;scroll-margin-top:80px}.entry-section__title{display:flex;align-items:center;gap:4px}.entry-add-button{display:inline-grid;width:26px;height:26px;place-items:center;padding:0;border:0;border-radius:5px;background:transparent;color:var(--text-muted)}.entry-add-button:hover,.entry-add-button:focus-visible{background:var(--surface-hover);color:var(--accent)}.entry-row{gap:13px;padding:17px 0}.entry-row-button{width:100%;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background .12s ease,border-radius .12s ease}.entry-row-button:hover{border-radius:8px;background:var(--surface-hover)}.entry-row-button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.entry-row strong{font-size:12px;font-weight:550}.entry-row p{color:var(--text-muted);font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}.entry-row__description{display:block;margin-top:4px;color:var(--text-muted);font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}.entry-row p a{text-decoration:none}.entry-row p a:hover{color:var(--accent)}.entry-row__meta{font-size:10px}.entry-row__meta.is-overdue{color:var(--warning)}.score{font-size:13px;white-space:nowrap}.score>span{color:var(--text-muted);font-size:10px}.result-state{font-size:10px;flex-shrink:0}.entry-row--assessment .score,.entry-row--assessment .result-state{color:var(--assessment-accent)}.task-check{display:grid;place-items:center;width:16px;height:16px;flex-shrink:0;padding:0;border:1px solid #66786f;border-radius:4px;background:none;color:var(--accent-ink)}.task-check:hover{border-color:var(--accent)}.task-check--done{border-color:var(--accent);background:var(--accent)}.entry-row--done .entry-row__title strong{text-decoration:line-through;color:var(--text-muted)}.entry-delete-button{margin-right:auto;color:var(--danger)}.entry-delete-button:hover{color:var(--danger)}.section-empty{padding:20px 0;margin:0;border-top:1px solid var(--border);color:var(--text-muted);font-size:12px}.source-notes{margin:35px 0;padding:15px;border:1px solid var(--border);border-radius:7px;font-size:11px;color:var(--text-muted)}summary{cursor:pointer}.source-notes pre{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere}.source-notes p{margin-top:15px}.modal{width:min(510px,calc(100% - 32px));max-height:88dvh;margin:auto;padding:24px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface);color:var(--text);box-shadow:0 25px 100px #0006}.modal::backdrop{background:#0b100dc9;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal__header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.modal__header h2{margin:0;font-size:18px}.modal__actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding-top:12px}.form-stack{display:grid;gap:16px}.form-stack label,.field-label{display:grid;gap:6px;font-size:12px;color:var(--text-soft)}input:not([type=checkbox]),textarea,select{min-width:0;max-width:100%;padding:9px 11px;border:1px solid var(--border-strong);border-radius:5px;background:var(--bg-deep);color:var(--text)}input::placeholder,textarea::placeholder{color:var(--text-muted);font-size:12px}.form-stack small{color:var(--text-muted);font-size:11px}.assessment-accent-picker{min-width:0;margin:0;padding:0;border:0}.assessment-accent-picker legend{padding:0;margin-bottom:8px;color:var(--text-soft);font-size:12px}.assessment-accent-picker__options{display:flex;flex-wrap:wrap;gap:8px}.assessment-accent-picker__choice{display:grid;width:55px;justify-items:center;gap:7px;padding:4px;border:0;border-radius:6px;background:transparent;color:var(--text-muted);font-size:10px}.assessment-accent-picker__choice:hover{background:var(--surface-hover);color:var(--text)}.assessment-accent-picker__swatch{display:block;width:29px;height:29px;border-radius:50%;border:1px solid #ffffff55}.assessment-accent-picker__choice[aria-pressed=true]{color:var(--text)}.assessment-accent-picker__choice[aria-pressed=true] .assessment-accent-picker__swatch{outline:2px solid var(--text);outline-offset:3px}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-error{font-size:12px;color:var(--danger);margin:0}.form-success{font-size:12px;color:var(--accent);margin:0}.search-modal{width:min(610px,calc(100% - 32px));padding:18px}.search-modal .modal__header{margin:0 0 8px}.search-modal .modal__header h2{font-size:13px;color:var(--text-muted)}.search-dialog__input-row{padding:0 0 12px}.search-dialog__input-row>svg{color:var(--accent)}.search-dialog__input-row input{border:0;background:none;outline:none;padding:7px 0;font-size:15px}.search-dialog__results{max-height:45dvh}.search-dialog__results>button.is-selected{background:var(--surface-hover)}.search-dialog__results strong{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:550}.search-dialog__results span{font-size:11px;max-width:100%}.search-footer{display:flex;justify-content:space-between;padding-top:10px;border-top:1px solid var(--border);color:var(--text-muted);font-size:10px}.empty-state{display:flex;flex-direction:column;align-items:center;gap:9px;padding:40px 20px;text-align:center;color:var(--text-muted)}.empty-state svg{color:var(--accent);margin-bottom:8px}.empty-state h3{color:var(--text-soft);margin:0;font-size:15px}.empty-state p{margin-bottom:7px;font-size:12px}.empty-page{padding-top:100px}.empty-page p{margin-top:20px;color:var(--text-muted)}.inline-alert,.global-error,.undo-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 15px;border:1px solid #665d3e;border-radius:6px;background:#302e21;color:var(--warning);font-size:11px;margin:15px 0}.inline-alert button,.undo-bar button{color:var(--accent);background:none;border:0;text-decoration:underline;font-size:11px}.global-error{margin:15px 30px}.undo-bar{position:sticky;top:65px;z-index:10;border-color:var(--border-strong);background:var(--surface-raised);color:var(--text-soft)}.undo-bar button{margin-left:auto}.undo-bar .icon-button{margin-left:0;text-decoration:none}.graph-page{height:100dvh;min-height:360px}.graph-canvas{width:100%;min-height:0}.circle-node__button{position:absolute;inset:0;display:grid;place-items:center;border:0;border-radius:inherit;padding:8px;background:transparent;color:inherit;font:inherit;line-height:1.3;text-align:center;cursor:grab;touch-action:none}.circle-node__button:active{cursor:grabbing}.graph-node--semester .circle-node__button{cursor:pointer}.graph-note-toolbar{display:grid;width:min(260px,calc(100vw - 36px));gap:9px;padding:12px;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface);box-shadow:0 14px 42px #0008;color:var(--text);text-align:left}.graph-note-toolbar__header{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.graph-note-toolbar__actions{display:flex;align-items:center;gap:2px}.graph-note-toolbar__header button{display:grid;width:24px;height:24px;place-items:center;padding:0;border:0;border-radius:5px;background:transparent;color:var(--text-muted)}.graph-note-toolbar__header button:hover{background:var(--surface-hover);color:var(--text)}.graph-note-toolbar__text{min-height:20px;color:var(--text-soft);font-size:11px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.graph-note-toolbar__text button{padding:0;border:0;background:none;color:var(--text-muted);font-size:inherit}.graph-note-toolbar__text button:hover{color:var(--text)}.graph-note-toolbar__text a{color:var(--accent);font-size:inherit;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}.graph-note-toolbar__editor{display:block;width:100%;min-height:28px;padding:0!important;resize:none;overflow:hidden;border:0!important;border-radius:0;background:transparent!important;color:var(--text);font-size:11px;line-height:1.5;overflow-wrap:anywhere}.graph-semester-selector{margin:16px!important}.graph-semester-selector select{min-width:140px;padding:9px 12px;background:var(--surface);font-size:12px;box-shadow:0 4px 16px #0002}.graph-task-panel{max-height:calc(100% - 28px);margin:14px!important}.graph-task-list{display:flex;width:220px;max-height:calc(100dvh - 50px);min-height:0;flex-direction:column;overflow:hidden;border:1px solid transparent;border-radius:8px;background:transparent;box-shadow:none;color:var(--text-soft);transition:background .16s var(--ease),border-color .16s var(--ease),box-shadow .16s var(--ease)}.graph-task-list:hover,.graph-task-list:focus-within{border-color:var(--border);background:#252626c7;box-shadow:0 8px 24px #0003}.graph-task-list__heading{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px;border-bottom:1px solid transparent;font-size:11px}.graph-task-list:hover .graph-task-list__heading,.graph-task-list:focus-within .graph-task-list__heading{border-bottom-color:var(--border)}.graph-task-list ul{display:grid;gap:1px;min-height:0;overflow:auto;margin:0;padding:4px 0;list-style:none}.graph-task-list li{display:flex;align-items:center;gap:8px;min-width:0;padding:5px 10px}.graph-task-check{display:grid;width:16px;height:16px;flex:0 0 16px;place-items:center;padding:0;border:1px solid var(--border-strong);border-radius:4px;background:transparent;color:var(--accent)}.graph-task-check svg{opacity:0}.graph-task-check:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.graph-task-check:hover svg{opacity:1}.graph-task-list li>a{display:flex;min-width:0;flex:1;flex-direction:column;gap:2px;overflow:hidden;color:var(--text-soft);font-size:10px;text-decoration:none}.graph-task-list li>a span,.graph-task-list li>a small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.graph-task-list li>a:hover{color:var(--accent)}.graph-task-list li>a small{color:var(--text-muted);font-size:9px}.graph-task-list>p{margin:0;padding:12px;color:var(--text-muted);font-size:10px}.graph-empty button{display:block;padding:9px 13px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-soft);font-size:12px}.graph-empty button:hover{color:var(--text);background:var(--surface-raised)}.skip-link{position:fixed;z-index:200;top:-60px;left:15px;padding:10px;background:var(--accent);color:var(--accent-ink)}.skip-link:focus{top:10px}@keyframes page-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media(max-width:1200px){.page{padding-inline:32px}.semester-content{grid-template-columns:minmax(0,1fr) 220px;gap:25px}.semester-summary strong{gap:7px}.semester-summary small,.subject-list-name small{font-size:9px}.subject-task-count{display:none}}@media(max-width:1024px){.semester-content{grid-template-columns:1fr}.semester-aside{order:0}.semester-summary strong{display:block}.semester-summary small{display:block;margin-top:4px;line-height:1.4}}@media(max-width:900px){.sidebar-wrap{transform:translate(-100%)}.sidebar-wrap--open{transform:translate(0)}.graph-task-panel{margin-top:60px!important}.page{max-width:850px;padding-inline:36px}.subject-task-count{display:flex}}@media(max-width:760px){.entry-sections{grid-template-columns:minmax(0,1fr)}}@media(max-width:620px){.page{padding:28px 21px 60px}.hero-bottom{align-items:flex-start;flex-direction:column;gap:21px}h1{font-size:33px}.page-icon{width:49px;height:49px;border-radius:12px}.semester-hero .hero-bottom p:last-child{max-width:250px;line-height:1.8;font-size:12px}.semester-summary{grid-template-columns:repeat(3,minmax(0,1fr));padding-block:20px}.semester-summary>div{padding:0 13px}.semester-summary>div>span{font-size:9px;gap:4px}.semester-summary>div>span svg{width:12px}.semester-summary strong{font-size:26px}.semester-summary small{font-size:8px}.semester-content{margin-top:29px;gap:30px}.subject-task-count{display:none}.subject-list-row>a{gap:10px}.subject-list-name strong{font-size:11px}.subject-list-name small{font-size:9px}.reorder-actions{opacity:.5;margin-left:5px}.subject-symbol{width:32px;height:35px}.entry-row{flex-direction:row;flex-wrap:wrap;gap:9px}.entry-row__body{flex-basis:55%}.entry-row>.result-state{width:auto;margin-left:auto}.section-heading-row{flex-direction:row;align-items:center;gap:7px}.section-heading-row h2{font-size:13px}.graph-page{height:100dvh;min-height:360px;padding:6px}.graph-canvas{min-height:0}.graph-semester-selector{margin:12px!important}.graph-semester-selector select{min-width:125px;font-size:11px}.graph-task-panel{max-height:calc(100% - 69px);margin:60px 9px 9px!important}.graph-task-list{width:min(190px,calc(100vw - 84px));max-height:calc(100dvh - 81px)}.modal{padding:20px}.search-footer{font-size:9px}}html{background:var(--bg)}body{font-size:14px;font-optical-sizing:auto;text-rendering:optimizeLegibility}h1{font-weight:690;letter-spacing:-.038em;line-height:1.09}h2{font-size:16px;font-weight:650;letter-spacing:-.018em}button,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[contenteditable=true]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.sidebar{border-right-color:#46575a80;background:linear-gradient(155deg,#243032f5,#1b2426f7);-webkit-backdrop-filter:blur(24px) saturate(125%);backdrop-filter:blur(24px) saturate(125%)}.search-trigger{min-height:42px;padding:9px 11px;border-color:#70807f55;border-radius:10px;background:#0d1415a6;color:var(--text-soft);font-size:12px;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.search-trigger:hover,.search-trigger:focus-visible{border-color:#9ad7ce82;background:#162425e6;box-shadow:0 0 0 3px #84ded315}.search-trigger kbd{color:var(--text-muted);font-size:10px}.sidebar-label{color:#a8bab6;font-size:10px;letter-spacing:.1em}.tree__semester-main{display:flex;min-width:0;flex:1;align-items:center;border-radius:10px}.tree__semester-main:hover,.tree__semester-main:has(.tree__semester-link.active){background:#84ded31b}.tree__semester-main:has(.tree__semester-link.active){box-shadow:inset 0 0 0 1px #84ded328}.tree__semester-main .tree__semester-link{min-width:0;min-height:40px;border-radius:10px;background:transparent;font-size:13px}.tree__semester-main .tree__semester-link:hover,.tree__semester-main .tree__semester-link.active{background:transparent;color:var(--text)}.tree__semester-main .tree__add-subject{width:30px;height:30px;margin-right:5px}.tree__subjects{border-left-color:#79948e70}.tree__subject-link{min-height:39px;border-radius:9px;color:var(--text-soft);font-size:13px}.tree__subject-link:hover{background:#ffffff0b}.tree__subject-link.active{background:#84ded31f;color:var(--accent-strong)}.sidebar__new{min-height:38px;color:var(--text-soft);font-size:13px}.sidebar__new:hover{background:#ffffff0c;color:var(--accent-strong)}.page--subject .subject-title-input{font-optical-sizing:auto}.page--subject .subject-title-input:focus-visible{box-shadow:none}.page--subject .notes-editor .tiptap{color:var(--text-soft);font-size:15px;line-height:1.7}.entry-sections{row-gap:46px}.entry-section h2{font-size:17px}.entry-add-button{width:30px;height:30px;border-radius:8px;transition:background .14s ease,color .14s ease,transform .14s ease}.entry-add-button:active,.icon-button:active{transform:scale(.93)}.entry-list{border-top-color:#61727175}.entry-row-button{padding:17px 12px;border-bottom-color:#61727175;border-radius:10px;transition:background .14s ease,box-shadow .14s ease}.entry-row-button:hover,.entry-row-button:focus-visible{border-radius:10px;background:#ffffff0d;box-shadow:inset 0 0 0 1px #ffffff0a}.entry-row-button:active{background:#84ded31c}.entry-row strong{color:var(--text);font-size:13px;font-weight:620}.entry-row__description,.entry-row p{color:var(--text-soft);font-size:12px;line-height:1.5}.entry-row__meta,.result-state{font-size:11px}.section-empty{color:var(--text-muted);font-size:13px}.source-notes{border-radius:11px;background:#ffffff05}.graph-page{--bg: #1e1e1e;--bg-deep: #191a1a;--surface: #252626;--surface-raised: #2c2e2e;--surface-hover: #343737;--border: #373a39;--border-strong: #484d4c;--text: #eef2f1;--text-soft: #b7bfbd;--text-muted: #838d8b;--accent: #50d6cf;--accent-strong: #6ee4de;--radius: 12px;--radius-small: 8px;background:var(--bg)}.modal{border-color:#9db8b355;border-radius:18px;background:#212b2df7;-webkit-backdrop-filter:blur(26px) saturate(130%);backdrop-filter:blur(26px) saturate(130%);box-shadow:0 28px 90px #0009,inset 0 1px #ffffff12}.modal::backdrop{background:#091011b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal__header h2{font-size:19px}.form-stack label,.field-label{font-size:13px}input:not([type=checkbox]),textarea,select{border-color:var(--border-strong);border-radius:9px;background:#10191a;color:var(--text)}input:not([type=checkbox]):focus-visible,textarea:focus-visible,select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px #84ded31c}.search-dialog__input-row input{border:0;background:transparent;box-shadow:none;padding:7px 0}.search-dialog__input-row input:focus-visible,.graph-note-toolbar__editor:focus-visible{box-shadow:none}.primary-button,.secondary-button{min-height:39px;border-radius:9px;font-size:13px}.primary-button:active,.secondary-button:active{transform:scale(.98)}.access-page{display:grid;min-height:100dvh;place-items:center;padding:24px;background:var(--bg)}.access-form{width:min(310px,100%)}.access-form__row{display:flex;align-items:center;gap:8px}.access-form input{width:100%;min-height:44px;flex:1;border-radius:10px;background:var(--surface);font-size:15px;letter-spacing:.1em}.access-form input::placeholder{color:var(--text-muted);font-size:14px;letter-spacing:0}.access-form button{display:grid;width:44px;height:44px;flex:0 0 44px;place-items:center;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);color:var(--accent)}.access-form button:hover{border-color:var(--accent);background:var(--surface-hover)}.access-form button:active{transform:translate(1px)}.access-form .form-error{display:block;margin-top:9px}.cloud-conflict button{padding:6px 10px;border:1px solid currentColor;border-radius:7px;background:transparent;color:inherit}.cloud-conflict button:hover{background:#ffffff14}.cloud-notice{margin:12px 18px 0;padding:9px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text-soft);font-size:12px}@media(max-width:620px){.entry-row-button{padding-inline:10px}}@media(prefers-reduced-transparency:reduce){.sidebar,.graph-note-toolbar,.graph-task-list:hover,.graph-task-list:focus-within,.graph-semester-selector select,.react-flow__controls,.modal{background:var(--surface)!important;-webkit-backdrop-filter:none;backdrop-filter:none}}@media(prefers-contrast:more){:root{--border: #748783;--border-strong: #a5b9b4;--text-muted: #b8c7c3}.graph-node,.graph-node--semester{border-width:2px!important}.graph-task-list:hover,.graph-task-list:focus-within,.graph-note-toolbar{background:var(--surface)!important}}@media(prefers-reduced-motion:reduce){.entry-add-button:active,.icon-button:active,.primary-button:active,.secondary-button:active{transform:none}}
