:root{color:#252b28;font-synthesis:none;text-rendering:optimizelegibility;--canvas:#f3f0e9;--surface:#faf8f3;--surface-raised:#fffdf8;--surface-muted:#ece9e1;--ink:#252b28;--ink-soft:#4f5a55;--muted:#727b76;--faint:#969d98;--line:#d9d7cf;--line-strong:#c7c8bf;--accent:#31564a;--accent-strong:#24473c;--accent-soft:#dfe7e0;--danger:#914f49;--danger-soft:#f2e6df;--nav-width:232px;--detail-width:clamp(360px, 31vw, 420px);--radius-small:7px;--radius-medium:12px;--radius-large:18px;--shadow-soft:0 18px 55px #28302b17;--motion-fast:.12s;--motion-short:.18s;--motion-medium:.24s;--motion-panel:.28s;--motion-slow:.36s;background:#f3f0e9;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 82% -14%, #e2e8dea3 0, #e2e8de00 34rem), var(--canvas);min-width:320px;min-height:100vh;color:var(--ink);margin:0}button,input,textarea,select{font:inherit}:where(input:not([type=checkbox]):not([type=radio]),select,textarea){background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-small);min-height:44px;color:inherit;padding:10px 13px}*,:before,:after{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:3px;outline:2px solid #648174}.app-shell{min-height:100dvh}.main-nav{width:var(--nav-width);border-right:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:10;background:#ece9e1e0;flex-direction:column;align-items:stretch;padding:38px 24px 26px;display:flex;position:fixed;inset:0 auto 0 0}.brand{min-height:42px;color:var(--accent-strong);align-items:center;gap:12px;margin:0 7px 44px;display:flex}.brand>span:last-child{gap:4px;display:grid}.brand strong{letter-spacing:.055em;font-family:ui-serif,Songti SC,SimSun,serif;font-size:15px;font-weight:650}.brand small{color:var(--muted);letter-spacing:.2em;font-size:8px;font-weight:700}.brand-mark{border:1px solid #31564a94;border-radius:14px 14px 9px 9px;width:28px;height:32px;display:block;position:relative}.brand-mark i{background:var(--accent);width:10px;height:1px;position:absolute;left:8px}.brand-mark i:first-child{top:11px}.brand-mark i:last-child{width:7px;top:17px}.nav-primary{gap:6px;display:grid}.nav-utility{border-top:1px solid #c7c8bfb8;margin-top:24px;padding-top:18px}.main-nav button{color:#5b6560;text-align:left;min-height:48px;transition:color var(--motion-fast) ease-out, background-color var(--motion-fast) ease-out, transform var(--motion-fast) ease-out;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex;position:relative}.main-nav button:hover{color:var(--accent-strong);background:#ffffff6b}.main-nav button:active{transform:translateY(1px)}.main-nav button.active{background:var(--surface-raised);color:var(--accent-strong);box-shadow:0 5px 20px #2d3b330f}.main-nav button.active:before{content:"";background:var(--accent);border-radius:0 2px 2px 0;width:3px;height:22px;position:absolute;left:-24px}.nav-glyph{flex:0 0 22px;place-items:center;width:22px;height:22px;display:grid}.nav-glyph svg{fill:none;stroke:currentColor;stroke-width:1.45px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.nav-label{letter-spacing:.015em;font-size:14px;font-weight:540}.nav-label-short{display:none}.nav-search-trigger .search-trigger-glyph{width:22px;height:22px}.nav-note{color:var(--faint);white-space:nowrap;margin:auto 9px 48px;font-family:ui-serif,Songti SC,serif;font-size:10px;line-height:1.7}.main-content{margin-left:var(--nav-width);max-width:1280px;min-height:100dvh;transition:margin-right var(--motion-panel) ease-out;padding:64px clamp(34px,5.4vw,86px) 144px}.app-shell:has(.detail-panel) .main-content{margin-right:var(--detail-width)}.page-transition{animation:page-content-in var(--motion-medium) ease-out both}@keyframes page-content-in{0%{opacity:.58;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.page-header{border-bottom:1px solid #d9d7cfc7;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:48px;padding-bottom:18px;display:flex}.connection-status{border-radius:var(--radius-small);color:#665d4b;background:#f4eddf;border:1px solid #d7cdb8;align-items:center;gap:12px;max-width:680px;margin:-24px 0 30px;padding:11px 14px;display:flex}.connection-status>span{background:#9b8062;border-radius:50%;flex:0 0 8px;width:8px;height:8px}.connection-status div{gap:2px;display:grid}.connection-status strong{font-size:12px;font-weight:650}.connection-status small{font-size:11px;line-height:1.5}.surface-state{align-items:center;gap:22px;max-width:680px;min-height:240px;padding:34px 0;display:flex}.surface-state h1{margin:0 0 9px;font-size:clamp(23px,2.4vw,31px)}.surface-state p{color:var(--muted);margin:0;line-height:1.65}.loading-mark{border:1px solid var(--line-strong);border-radius:50%;flex:0 0 42px;width:42px;height:42px;position:relative}.loading-mark:after{content:"";background:var(--accent-soft);border-radius:50%;animation:1.5s ease-in-out infinite alternate loading-breathe;position:absolute;inset:9px}@keyframes loading-breathe{0%{opacity:.45;transform:scale(.78)}to{opacity:1;transform:scale(1)}}.semester-switcher{color:var(--muted);align-items:center;gap:10px;font-size:12px;display:flex}.semester-switcher select{border:1px solid var(--line);color:inherit;background:#faf8f3b8;border-radius:18px;padding:8px 30px 8px 12px}.page-title-block{min-width:0}.page-deck{max-width:560px;color:var(--muted);margin:11px 0 0;font-size:13px;line-height:1.65}.page-header-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:18px;display:flex}.search-shortcut{border:1px solid var(--line);min-height:38px;color:var(--ink-soft);transition:border-color var(--motion-fast) ease-out, color var(--motion-fast) ease-out, background-color var(--motion-fast) ease-out;background:#faf8f3b8;border-radius:20px;align-items:center;gap:8px;padding:8px 13px;font-size:12px;display:inline-flex}.search-shortcut:hover{border-color:var(--line-strong);background:var(--surface-raised);color:var(--accent-strong)}.search-trigger-glyph{flex:none;place-items:center;width:18px;height:18px;display:grid}.search-trigger-glyph svg{fill:none;stroke:currentColor;stroke-width:1.55px;stroke-linecap:round;width:100%;height:100%}.back-link{color:var(--muted);background:0 0;border:0;align-items:center;gap:7px;margin:0 0 22px;padding:0;font-size:12px;display:inline-flex}.back-link:hover{color:var(--accent)}.semester-create-area{border-top:1px solid var(--line);margin-top:54px;padding-top:22px}.semester-create-area>.quiet-button{margin-right:18px}.semester-weeks{margin:22px 0 30px}.semester-weeks h2{margin:0 0 6px;font-size:17px}.course-header-actions{gap:12px;display:flex}.course-delete-confirmation{background:#f6f0eb;border:1px solid #cbb7ad;border-radius:6px;margin-bottom:28px;padding:20px 22px}.course-delete-confirmation h2{margin:0 0 10px;font-size:20px}.course-delete-confirmation p{margin:0 0 12px}.course-delete-confirmation ul{max-height:220px;margin:0 0 20px;padding-left:21px;overflow:auto}.course-delete-actions{flex-wrap:wrap;gap:10px;display:flex}.course-delete-actions button{border:1px solid var(--line);background:var(--surface-raised);color:inherit;border-radius:6px;padding:9px 12px}.course-delete-actions button.danger{color:#fff;background:#9c655f;border-color:#9c655f}.semester-create{gap:12px;max-width:360px;margin-top:14px;display:grid}.semester-create label{color:var(--muted);gap:5px;font-size:12px;display:grid}.semester-create input{border:1px solid var(--line);background:var(--surface-raised);border-radius:6px;min-height:40px;padding:8px 10px}.semester-create button,.course-candidate button:first-child{background:var(--accent);color:#fff;border:0;border-radius:6px;padding:10px 14px}.course-candidate{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 0 24px;padding:16px 0}.course-candidate p{margin:0 0 8px}.course-candidate-note{color:var(--muted);font-size:12px}.course-candidate div{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.section-note{color:var(--muted);font-size:13px}.schedule-list{border-top:1px solid var(--line);margin:22px 0;padding:0;list-style:none}.schedule-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 0;display:flex}.schedule-form{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:10px;margin-top:28px;display:grid}.schedule-form>.schedule-editing-note{grid-column:1/-1}.schedule-form label{min-width:0;color:var(--muted);gap:5px;font-size:12px;display:grid}.schedule-form input,.schedule-form select,.schedule-form .datetime-wrap,.schedule-form .select-wrap{width:100%;min-width:0}.schedule-form input,.schedule-form select{border:1px solid var(--line);background:var(--surface-raised);border-radius:6px;min-height:44px;padding:7px 9px}.schedule-form button{background:var(--accent);color:#fff;border:0;border-radius:6px;min-height:44px;padding:8px 14px}.eyebrow{letter-spacing:.24em;color:#8b948d;margin:0 0 10px;font-size:11px;font-weight:700}h1{letter-spacing:-.025em;margin:0;font-family:ui-serif,Songti SC,STSong,serif;font-size:clamp(28px,3vw,37px);font-weight:650;line-height:1.15}h2{font-weight:600}.section-heading{color:var(--ink-soft);letter-spacing:.06em;margin:0 0 15px;font-size:13px;font-weight:650}.item-list{max-width:840px}.item-list section{margin-bottom:43px}.item-list ul,.course-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.item-row{border-bottom:1px solid var(--line);isolation:isolate;min-height:78px;transition:opacity var(--motion-short) ease, transform var(--motion-medium) ease, background-color var(--motion-fast) ease-out;align-items:stretch;display:flex;position:relative}.item-row:after{content:"";z-index:-1;border-radius:var(--radius-small);transition:background-color var(--motion-fast) ease-out;background:0 0;position:absolute;inset:7px -8px}.item-row:hover:after{background:#fffdf894}.item-row.selected:after{background:#dfe7e094}.item-row.leaving{animation:item-leave calc(var(--motion-short) + var(--motion-medium)) ease both}.item-row.deleting{pointer-events:none;animation:item-delete var(--motion-medium) ease-in both}.item-row.entering{animation:item-enter var(--motion-slow) ease-out both}.item-row.completed.entering{animation-name:completed-item-enter}@keyframes item-leave{0%,43%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(12px)}}@keyframes item-delete{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}@keyframes item-enter{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes completed-item-enter{0%{opacity:0;transform:translateY(-9px)}to{opacity:1;transform:translateY(0)}}.completion-target{width:52px;min-height:72px;color:var(--accent);border-radius:var(--radius-small);background:0 0;border:0;flex:0 0 52px;place-items:center;padding:0;display:grid}.completion-target:hover{background:0 0}.completion-target:hover .completion-indicator{transform:scale(1.1)}.completion-target.checked{color:#7b857f}.completion-indicator{width:20px;height:20px;transition:color var(--motion-short) ease, background-color var(--motion-short) ease, transform var(--motion-short) ease;border:1.5px solid;border-radius:50%;place-items:center;font-size:12px;line-height:1;display:grid}.item-row.completed .completion-indicator{background:var(--accent-soft);transform:scale(.96)}.item-body{text-align:left;min-width:0;color:inherit;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:6px;padding:16px 8px 17px 3px;display:flex}.item-title{letter-spacing:.005em;overflow-wrap:anywhere;transition:color var(--motion-short) ease, opacity var(--motion-short) ease;font-size:15px;font-weight:610;line-height:1.45}.item-meta,.detail-meta{color:var(--muted);font-size:11.5px;line-height:1.55}.item-row.completed .item-title{color:#8b918c;font-weight:430;text-decoration:line-through}.item-row.completed .item-meta{color:#9da49c}.section-toggle{text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;width:100%;padding:8px 0;display:flex}.section-chevron{width:8px;height:8px;transition:transform var(--motion-short) ease-out;border-bottom:1px solid;border-right:1px solid;margin:2px 4px 0 0;transform:rotate(45deg)}.section-chevron.open{transform:translateY(4px)rotate(225deg)}.completed-list-reveal{animation:completed-list-reveal var(--motion-medium) ease-out both}@keyframes completed-list-reveal{0%{opacity:0;transform:translateY(-6px)}}.empty-state{color:var(--muted);padding:22px 0;font-size:14px;line-height:1.6}.item-empty-state{border-top:1px solid var(--line);align-items:center;gap:12px;display:flex}.item-empty-state>span{color:var(--line-strong);font-size:20px}.item-empty-state p{margin:0}.quick-capture{z-index:16;--capture-size:58px;position:fixed;bottom:32px;right:34px}.quick-capture form{height:var(--capture-size);width:var(--capture-size);background:var(--accent);color:#fff;border-radius:calc(var(--capture-size) / 2);transition:width var(--motion-medium) ease-out, background-color var(--motion-short) ease-out, box-shadow var(--motion-short) ease-out;border:1px solid #ffffff1f;justify-content:flex-end;align-items:center;display:flex;overflow:hidden;box-shadow:0 12px 32px #233a3138}.quick-capture.expanded form{width:min(480px, calc(100vw - var(--nav-width) - 76px));box-shadow:0 16px 42px #233a3140}.quick-capture.error form{background:#7d4843}.quick-capture-field{opacity:0;min-width:0;transition:opacity var(--motion-short) ease-out 40ms, transform var(--motion-medium) ease-out;flex:auto;transform:translate(8px)}.quick-capture.expanded .quick-capture-field{opacity:1;transform:translate(0)}.quick-capture input{width:100%;min-width:120px;height:calc(var(--capture-size) - 2px);color:#fff;caret-color:#fff;background:0 0;border:0;outline:none;padding:0 8px 0 21px}.quick-capture input::placeholder{color:#edf3eec7}.quick-capture button{color:#fff;width:var(--capture-size);height:var(--capture-size);flex:0 0 var(--capture-size);transition:background-color var(--motion-fast) ease-out;background:0 0;border:0;border-radius:50%;position:relative}.quick-capture button:hover{background:#ffffff17}.quick-capture-feedback{border-radius:var(--radius-small);max-width:min(300px,100vw - 36px);box-shadow:var(--shadow-soft);color:var(--ink);opacity:0;pointer-events:none;transition:opacity var(--motion-short) ease-in, transform var(--motion-short) ease-in;background:#fffdf8f5;border:1px solid #c7c8bfbf;gap:3px;padding:10px 13px;display:grid;position:absolute;bottom:calc(100% + 10px);right:0;transform:translateY(5px)}.quick-capture-feedback strong{color:var(--accent);font-size:12px;font-weight:680}.quick-capture-feedback>span{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.quick-capture.saved .quick-capture-feedback{opacity:1;transition-timing-function:ease-out;transform:translateY(0)}.capture-idle-symbol,.capture-idle-symbol:after,.capture-idle-symbol:before{content:"";background:currentColor;border-radius:2px;width:16px;height:1.5px;display:block;position:absolute}.capture-idle-symbol{transition:opacity var(--motion-fast) ease-out, transform var(--motion-medium) ease-out;top:50%;left:50%;transform:translate(-50%,-50%)}.capture-idle-symbol:before{transform:rotate(90deg)}.capture-idle-symbol:after{display:none}.capture-submit-symbol{opacity:0;transition:opacity var(--motion-fast) ease-out, transform var(--motion-medium) ease-out;place-items:center;font-size:21px;display:grid;position:absolute;inset:0;transform:translate(5px)}.quick-capture.expanded .capture-idle-symbol{opacity:0;transform:translate(-58%,-50%)rotate(45deg)scale(.7)}.quick-capture.expanded .capture-submit-symbol{opacity:1;transform:translate(0)}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.course-create,.course-item-form{gap:10px;max-width:620px;margin-bottom:28px;display:flex}.course-create input,.course-item-form input,.detail-panel input,.detail-panel select{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-small);min-height:44px;color:inherit;padding:10px 13px}.detail-panel textarea{background:var(--surface-raised);border:1px solid var(--line);min-height:44px;color:inherit;border-radius:6px;padding:10px 13px}.course-create input,.course-item-form input{flex:1;min-width:0}.course-create button,.course-item-form button,.detail-actions button,.danger-zone button.danger{background:var(--accent);border:1px solid var(--accent);color:#fff;border-radius:var(--radius-small);padding:10px 16px}.course-index{max-width:840px}.course-index-intro,.subsection-header{justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:25px;display:flex}.course-index-intro h2,.subsection-header h2{color:var(--ink);margin:0 0 7px;font-family:ui-serif,Songti SC,STSong,serif;font-size:21px;font-weight:650}.course-index-intro p,.subsection-header p{color:var(--muted);margin:0;font-size:12px;line-height:1.65}.course-index-intro .section-kicker{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px;font-size:10px;font-weight:700}.secondary-action{border:1px solid var(--line-strong);min-height:40px;color:var(--accent-strong);transition:border-color var(--motion-fast) ease-out, background-color var(--motion-fast) ease-out;background:#faf8f39e;border-radius:20px;flex:none;padding:9px 14px;font-size:12px}.secondary-action:hover{background:var(--surface-raised);border-color:#9fac9f}.course-index-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.course-import-panel{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 0 30px;padding:22px 0 27px}.course-import-heading,.course-import-summary{justify-content:space-between;align-items:flex-start;gap:22px;display:flex}.course-import-heading h3{margin:2px 0 6px;font-family:ui-serif,Songti SC,STSong,serif;font-size:20px}.course-import-heading p,.course-import-summary span,.course-import-note,.course-import-progress,.course-import-no-schedule{color:var(--muted);margin:0;font-size:12px;line-height:1.65}.course-import-file{border:1px dashed var(--line-strong);border-radius:var(--radius-small);color:var(--accent-strong);cursor:pointer;background:#faf8f38f;gap:4px;margin-top:22px;padding:16px 18px;display:grid}.course-import-file small{color:var(--muted)}.course-import-file-row{align-items:center;gap:10px;min-height:40px;margin-top:8px;display:flex}.course-import-file-row input[type=file]{opacity:0;clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:0;padding:0;position:absolute;overflow:hidden}.course-import-file-button{border:1px solid var(--line-strong);color:var(--ink);background:#ffffffb3;border-radius:10px;flex:none;padding:8px 14px;font-size:13px;font-weight:600}.course-import-file-button.is-disabled{opacity:.55}.course-import-file:focus-within .course-import-file-button{outline:2px solid var(--accent-strong,#31564a);outline-offset:2px}.course-import-file-name{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.course-import-progress,.course-import-note,.course-import-success{margin-top:14px}.course-import-success{color:var(--accent-strong);font-size:13px}.course-import-review{margin-top:24px}.course-import-summary{align-items:baseline;padding-bottom:12px}.course-import-summary strong{color:var(--ink);margin-left:auto;font-size:13px}.course-import-courses{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.course-import-courses>li{border-bottom:1px solid var(--line);padding:18px 0}.course-import-course-copy{justify-content:space-between;gap:18px;display:flex}.course-import-course-copy span,.course-import-schedules{color:var(--muted);font-size:12px}.course-import-schedules{margin:10px 0 0;padding-left:18px;line-height:1.75}.course-import-no-schedule{margin-top:8px}.course-import-duplicate{border-radius:var(--radius-small);background:#f3efe5;border:1px solid #c9c2ae;margin:15px 0 0;padding:15px 16px}.course-import-duplicate legend{color:var(--ink);padding:0 5px;font-size:13px;font-weight:650}.course-import-duplicate p{color:var(--muted);margin:0 0 11px;font-size:12px}.course-import-duplicate>div{flex-wrap:wrap;gap:8px;display:flex}.course-import-duplicate button,.course-import-commit{border:1px solid var(--line-strong);border-radius:var(--radius-small);background:var(--surface-raised);min-height:40px;color:var(--accent-strong);padding:9px 13px}.course-import-duplicate button.selected,.course-import-commit{border-color:var(--accent);background:var(--accent);color:#fff}.course-import-actions{flex-wrap:wrap;align-items:stretch;gap:8px;margin-top:18px;display:flex}.course-import-actions .course-import-commit{flex:220px;width:auto;min-height:44px;margin-top:0}.course-import-actions .course-import-discard{min-height:44px}.course-import-discard{border:1px solid var(--line-strong);border-radius:var(--radius-small);background:var(--surface-raised);min-height:40px;color:var(--muted);padding:9px 13px}.course-import-discard:hover:not(:disabled){border-color:var(--accent);color:var(--accent-strong)}.course-import-commit{margin-top:18px}.course-import-commit:disabled{border-color:var(--line);color:var(--muted);background:#e6e2d9}.inline-reveal{animation:inline-reveal var(--motion-medium) ease-out both}@keyframes inline-reveal{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.course-list li{border-bottom:1px solid var(--line)}.course-list button{text-align:left;width:100%;color:inherit;transition:background-color var(--motion-fast) ease-out, padding var(--motion-fast) ease-out;background:0 0;border:0;justify-content:space-between;align-items:center;padding:20px 8px 20px 5px;display:flex}.course-list button:hover{background:#fffdf894;padding-left:11px}.course-row-copy{gap:6px;display:grid}.course-row-copy strong{font-family:ui-serif,Songti SC,STSong,serif;font-size:17px;font-weight:650}.course-list span{color:var(--muted);font-size:12px}.course-list .course-row-arrow{color:var(--faint);transition:transform var(--motion-fast) ease-out;font-size:17px}.course-list button:hover .course-row-arrow{transform:translate(3px)}.course-tabs{border-bottom:1px solid var(--line);color:#8b918c;gap:30px;max-width:840px;margin-bottom:30px;display:flex}.course-tabs span{padding:0 3px 13px}.course-tabs .selected{color:var(--accent);border-bottom:2px solid var(--accent)}.course-tabs button{color:#8b918c;transition:color var(--motion-fast) ease-out;background:0 0;border:0;padding:0 3px 14px;font-size:13px}.course-tabs button.selected{color:var(--accent);border-bottom:2px solid var(--accent)}.course-tab-content{animation:content-switch-in var(--motion-short) ease-out both}@keyframes content-switch-in{0%{opacity:.55;transform:translateY(3px)}}.information-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.course-information{max-width:840px}.information-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;min-height:62px;padding:13px 4px;display:flex}.information-list li.search-arrival{animation:1.6s ease-out both search-arrival}@keyframes search-arrival{0%,24%{background:var(--accent-soft);box-shadow:inset 3px 0 var(--accent)}to{background:0 0;box-shadow:inset 0 0 #0000}}.information-list li p{color:var(--ink-soft);margin:0;line-height:1.65}.information-list li div{gap:12px;display:flex}.information-list li form{flex:1;gap:10px;display:flex}.information-list li form input{flex:1;min-width:0}.attention-panel{border:1px solid var(--line);border-radius:var(--radius-medium);max-width:760px;transition:border-color var(--motion-short) ease-out, background-color var(--motion-short) ease-out;background:#faf8f3b3;margin:0 0 32px;overflow:hidden}.attention-panel.expanded{background:var(--surface-raised)}.attention-summary{width:100%;min-height:76px;color:inherit;text-align:left;background:0 0;border:0;grid-template-columns:8px minmax(0,1fr) auto 24px;align-items:center;gap:14px;padding:15px 18px;display:grid}.attention-summary:hover{background:#ece9e16b}.attention-indicator{background:#8d8061;border-radius:50%;width:7px;height:7px}.tone-conflict .attention-indicator{background:#97655e}.tone-repair .attention-indicator{background:#947648}.attention-copy{gap:3px;min-width:0;display:grid}.attention-copy .eyebrow{font-size:8px}.attention-copy strong{font-size:14px;font-weight:620}.attention-copy small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.attention-count{background:var(--surface-muted);min-width:25px;height:25px;color:var(--ink-soft);border-radius:14px;place-items:center;padding:0 7px;font-size:11px;font-weight:650;display:grid}.attention-chevron{color:var(--muted);text-align:center;font-size:18px;font-weight:350}.attention-body{border-top:1px solid var(--line);animation:attention-body-in var(--motion-medium) ease-out both;padding:0 20px 22px}@keyframes attention-body-in{0%{opacity:0;transform:translateY(-5px)}}.attention-intro{color:var(--muted);margin:17px 0 0;font-size:12px;line-height:1.65}.pending-row{border-bottom:1px solid var(--line);transition:opacity var(--motion-short) ease-out, transform var(--motion-short) ease-out;padding:22px 0 7px}.pending-row:last-child{border-bottom:0}.pending-record-head .eyebrow{margin-bottom:6px;font-size:8px}.pending-record-head h3{margin:0 0 7px;font-family:ui-serif,Songti SC,SimSun,serif;font-size:18px;font-weight:560;line-height:1.5}.pending-record-head small{color:var(--muted);font-size:11px;line-height:1.55}.capture-suggestion{color:var(--ink-soft);background:#f2ede3;border-left:2px solid #9a8d70;margin:12px 0 0;padding:10px 12px;font-size:12px;line-height:1.55}.resolving{opacity:.62;transform:translateY(3px)}.pending-actions{flex-wrap:wrap;gap:12px;margin-top:10px;display:flex}.pending-actions button:not(.quiet-button):not(.text-button){border:1px solid var(--accent);border-radius:var(--radius-small);background:var(--accent);color:#fff;min-height:38px;padding:8px 12px}.pending-resolution{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:16px;display:grid}.pending-resolution label{color:var(--muted);gap:6px;font-size:13px;display:grid}.pending-resolution label:first-child,.pending-resolution label:last-of-type,.pending-resolution .pending-actions{grid-column:1/-1}.pending-resolution input,.pending-resolution select,.pending-resolution textarea{width:100%;min-width:0}.field-error{color:#9b4943;font-size:13px;margin-top:8px!important}.quiet-button,.text-button{color:var(--accent)!important;background:0 0!important;border:0!important;padding:8px 5px!important}.text-button{text-underline-offset:3px;text-decoration:underline}.danger{color:#9b4943!important}.detail-backdrop{display:none}.detail-panel{width:var(--detail-width);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-left:1px solid var(--line);z-index:9;animation:detail-in var(--motion-panel) ease-out;background:#faf8f3f7;padding:28px clamp(26px,2.5vw,38px) 40px;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-12px 0 35px #26352c0f}.detail-panel.closing{pointer-events:none;animation:detail-out var(--motion-panel) ease-in both}.detail-panel:focus{outline:none}@keyframes detail-in{0%{opacity:.65;transform:translate(14px)}to{opacity:1;transform:translate(0)}}@keyframes detail-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(10px)}}.sheet-handle{display:none}.detail-top{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:38px;font-size:12px;display:flex}.detail-close{width:44px;height:44px;color:var(--muted);background:0 0;border:0;border-radius:50%;place-items:center;font-size:22px;display:grid}.detail-close:hover{background:var(--surface-muted)}.detail-object{animation:detail-object-switch var(--motion-medium) ease-out both}.detail-view,.detail-form{animation:detail-mode-switch var(--motion-short) ease-out both}@keyframes detail-object-switch{0%{opacity:.45;transform:translate(5px)}to{opacity:1;transform:translate(0)}}@keyframes detail-mode-switch{0%{opacity:.55;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.detail-panel h2{overflow-wrap:anywhere;margin:0;font-size:23px;font-weight:560;line-height:1.35}.detail-heading,.detail-mode-heading{margin-bottom:28px}.detail-heading .eyebrow,.detail-mode-heading .eyebrow{margin-bottom:8px}.detail-mode-heading>p:last-child{color:var(--muted);margin:10px 0 0;font-size:12px;line-height:1.6}.detail-facts{border-top:1px solid var(--line);gap:0;margin:0;display:grid}.detail-facts>div{border-bottom:1px solid var(--line);grid-template-columns:76px minmax(0,1fr);gap:14px;padding:12px 0;display:grid}.detail-facts dt,.detail-facts dd{margin:0;font-size:12.5px;line-height:1.55}.detail-facts dt{color:var(--muted)}.detail-facts dd{overflow-wrap:anywhere}.detail-status{align-items:center;gap:7px;display:inline-flex}.detail-status span{color:var(--accent);font-weight:700}.detail-status.complete{color:var(--muted)}.detail-notes{margin-top:28px}.detail-notes h3,.item-associations h3{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;font-size:11px;font-weight:700}.detail-content{white-space:pre-wrap;margin:0;line-height:1.7}.detail-actions{flex-wrap:wrap;align-items:center;gap:10px;margin:28px 0;display:flex}.detail-actions button{min-height:42px}.detail-actions button:first-child span{margin-right:4px}.item-associations{border-top:1px solid var(--line);margin-top:26px;padding-top:18px}.item-associations ul{gap:8px;margin:0 0 12px;padding:0;list-style:none;display:grid}.item-associations li,.association-add{justify-content:space-between;align-items:center;gap:10px;display:flex}.item-associations li span{overflow-wrap:anywhere}.association-add select{flex:1;min-width:0}.detail-panel label{color:var(--muted);flex-direction:column;gap:8px;margin-bottom:17px;font-size:13px;display:flex}.detail-panel textarea{resize:vertical;height:44px;min-height:44px}.detail-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;display:grid}.detail-field-wide{grid-column:1/-1}.detail-edit-actions{background:linear-gradient(to top, var(--surface) 76%, #faf8f300);margin:13px -4px -28px;padding:16px 4px 22px;position:sticky;bottom:-40px}.raw-capture,.danger-zone{border-top:1px solid var(--line);margin-top:32px;padding-top:19px}.raw-capture p{white-space:pre-wrap;color:var(--muted);font-size:13px}.delete-confirmation{border-radius:var(--radius-small);background:var(--danger-soft);border:1px solid #dfc9c3;padding:16px}.delete-confirmation p{color:var(--ink);margin:0 0 6px;line-height:1.5}.delete-confirmation small{color:var(--muted);line-height:1.5}.delete-confirmation-actions{gap:10px;margin-top:15px;display:flex}.danger-zone .confirm-delete-button{border:1px solid var(--danger);border-radius:var(--radius-small);background:var(--danger);color:#fff;min-height:40px;padding:9px 14px}.feedback,.error-banner{z-index:12;color:#fff;max-width:calc(100vw - 30px);animation:feedback-in var(--motion-medium) ease-out both;background:#303c36;border-radius:7px;align-items:center;gap:28px;padding:13px 17px;font-size:13px;display:flex;position:fixed;bottom:36px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #1d271d28}@keyframes feedback-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.feedback.closing,.error-banner.closing{pointer-events:none;animation:feedback-out var(--motion-short) ease-in both}@keyframes feedback-out{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,6px)}}.feedback button,.error-banner button{color:#d2e7d3;background:0 0;border:0;text-decoration:underline}.error-banner{background:#74443d;bottom:92px}.calendar-view{max-width:1040px}.calendar-toolbar,.calendar-toolbar-actions,.calendar-navigation,.calendar-mode-switch,.calendar-day-heading{justify-content:space-between;align-items:center;gap:15px;display:flex}.calendar-toolbar{border-bottom:1px solid var(--line);margin-bottom:28px;padding-bottom:18px}.calendar-title-block{gap:6px;display:grid}.calendar-title-block strong{color:var(--ink);font-family:ui-serif,Songti SC,STSong,serif;font-size:clamp(21px,2.4vw,28px);font-weight:610;line-height:1.2}.context-transition{animation:context-change-in var(--motion-short) ease-out both}@keyframes context-change-in{0%{opacity:.45}}.calendar-context{color:var(--muted);letter-spacing:.035em;margin:0;font-size:11px}.calendar-toolbar-actions{justify-content:flex-end;gap:10px}.calendar-toolbar-actions button{min-width:40px;min-height:40px;color:var(--accent);border-radius:var(--radius-small);background:0 0;border:1px solid #0000}.calendar-toolbar-actions button:hover{background:var(--accent-soft)}.calendar-today{padding:7px 12px;font-size:12px;border-color:var(--line)!important;color:var(--ink-soft)!important}.calendar-navigation,.calendar-mode-switch{border:1px solid var(--line);background:#faf8f394;border-radius:9px;gap:2px;padding:2px}.calendar-navigation button{justify-content:center;align-items:center;padding-top:0;padding-bottom:0;font-size:22px;line-height:1;display:inline-flex}.calendar-mode-switch button{padding:6px 12px;font-size:12px}.calendar-mode-switch button.selected{background:var(--surface-raised);color:var(--accent-strong);box-shadow:0 1px 6px #27302a17}.calendar-grid-transition{animation:calendar-view-change var(--motion-medium) ease-out both}.calendar-grid-transition.forward{--calendar-shift-x:8px}.calendar-grid-transition.backward{--calendar-shift-x:-8px}.calendar-grid-transition.neutral{--calendar-shift-x:0}@keyframes calendar-view-change{0%{opacity:.45;transform:translateX(var(--calendar-shift-x))}to{opacity:1;transform:translate(0)}}.calendar-grid{border-block:1px solid var(--line-strong)}.calendar-weekdays,.calendar-days,.calendar-segments{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays{color:var(--muted);letter-spacing:.055em;text-align:center;padding:11px 0 10px;font-size:10px;font-weight:650}.calendar-week-row{border-top:1px solid var(--line);min-height:116px;padding:8px 0 13px;position:relative}.calendar-grid.mode-week .calendar-week-row{min-height:170px}.calendar-week-meta{color:#8b948d;letter-spacing:.075em;min-height:19px;padding-left:7px;font-size:9.5px;font-weight:650}.calendar-day{text-align:left;color:#46514a;border-radius:var(--radius-small);background:0 0;border:0;justify-content:flex-start;align-items:flex-start;min-height:35px;padding:2px 7px;display:flex;position:relative}.calendar-day time{border-radius:50%;place-items:center;min-width:27px;height:27px;font-size:11px;display:grid}.calendar-day.outside{color:#a3aaa4}.calendar-day.today time{border:1px solid var(--accent);color:var(--accent-strong);font-weight:700}.calendar-day.selected time{color:#fff;background:var(--accent);border-color:var(--accent)}.calendar-day-count{display:none}.calendar-segments{gap:4px 0;margin-top:3px}.calendar-segment{color:#27443a;text-align:left;white-space:nowrap;text-overflow:ellipsis;min-width:0;min-height:24px;transition:opacity var(--motion-short) ease, color var(--motion-short) ease, background-color var(--motion-short) ease;background:#dfe8df;border:1px solid #8da49342;align-items:center;gap:5px;padding:3px 8px;font-size:10.5px;display:flex;position:relative;overflow:hidden}.calendar-segment.relocated{animation:calendar-item-relocated var(--motion-slow) ease-out both}@keyframes calendar-item-relocated{0%{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.calendar-segment>span:last-child{text-overflow:ellipsis;overflow:hidden}.calendar-segment:hover{z-index:1;background:#d2dfd4}.calendar-segment.range{border-radius:0}.calendar-segment.range.begins-here{border-radius:5px 0 0 5px}.calendar-segment.range.ends-here{border-radius:0 5px 5px 0}.calendar-segment.range.begins-here.ends-here{border-radius:5px}.calendar-segment.point{background:0 0;border-color:#0000 #0000 #0000 #829b88;border-left-style:solid;border-left-width:2px;border-radius:0}.calendar-segment-status{width:12px;color:var(--accent);flex:none;font-size:9px}.calendar-segment.complete,.calendar-day-detail li.complete{opacity:.68;color:#879087}.calendar-segment.complete>span:last-child,.calendar-day-detail li.complete strong{text-decoration:line-through}.calendar-week-overflow{color:var(--muted);margin:6px 7px 0;font-size:9.5px}.calendar-day-detail{border-top:1px solid var(--line-strong);animation:calendar-day-in var(--motion-medium) ease-out both;margin-top:36px;padding-top:25px}@keyframes calendar-day-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.calendar-day-detail h2{margin:5px 0 0;font-family:ui-serif,Songti SC,STSong,serif;font-size:22px;font-weight:610}.calendar-day-detail ul{border-top:1px solid var(--line);margin:24px 0 0;padding:0;list-style:none}.calendar-day-detail li{border-top:1px solid var(--line);grid-template-columns:45px minmax(0,1fr);align-items:stretch;display:grid}.calendar-day-detail li:first-child{border-top:0}.calendar-day-status{color:var(--accent);place-items:center;font-size:14px;display:grid}.calendar-day-detail li button{width:100%;color:inherit;text-align:left;background:0 0;border:0;justify-items:start;gap:4px;padding:15px 4px;display:grid}.calendar-day-detail li button:hover{background:#fffdf88a}.calendar-day-detail li time{color:var(--accent);letter-spacing:.055em;font-size:10px;font-weight:700}.calendar-day-detail li strong{font-size:14px;font-weight:610;line-height:1.45}.calendar-day-detail li small{color:var(--muted);font-size:11px}.calendar-day-empty{margin-top:24px}@media (width>=1101px){.app-shell:has(.detail-panel) .quick-capture{right:calc(var(--detail-width) + 28px)}}@media (width>=768px) and (width<=1100px){:root{--nav-width:184px;--detail-width:min(410px, calc(100vw - var(--nav-width) - 30px))}.main-nav{padding-inline:17px}.main-nav button.active:before{left:-17px}.brand{margin-inline:6px}.brand-mark,.nav-note{display:none}.main-content{padding-inline:clamp(28px,5vw,52px)}.app-shell:has(.detail-panel) .main-content{margin-right:0}.detail-panel{padding-bottom:116px;padding-right:108px;box-shadow:-18px 0 55px #212b2629}}@media (width<=767px){.ai-task-progress{order:1}button{min-width:44px;min-height:44px}input:not([type=radio]):not([type=checkbox]),select,textarea{min-height:44px}.schedule-form{grid-template-columns:repeat(2,minmax(0,1fr))}.semester-create input,.schedule-form input,.schedule-form select,.schedule-form button,.week-start-row select,.week-picker-control input,.secondary-action,.pending-actions button:not(.quiet-button):not(.text-button),.detail-actions button,.danger-zone .confirm-delete-button,.search-input>button,.account-popover input{min-height:44px}.main-nav{width:auto;height:calc(72px + env(safe-area-inset-bottom));padding:0 9px env(safe-area-inset-bottom);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f7f5eff0;border-right:0;inset:auto 0 0;box-shadow:0 -8px 30px #272f2a0f}.brand,.nav-note,.nav-utility{display:none}.nav-primary{justify-content:space-around;width:100%;height:100%;display:flex}.main-nav button{text-align:center;border-radius:9px;flex-direction:column;flex:1;justify-content:center;gap:3px;min-height:64px;padding:7px 4px 5px}.main-nav button:hover,.main-nav button.active{box-shadow:none;background:0 0}.main-nav button.active:before{border-radius:0 0 2px 2px;width:22px;height:2px;inset:0 auto auto 50%;transform:translate(-50%)}.nav-glyph{width:25px;height:25px}.nav-glyph svg{width:21px;height:21px}.nav-label-long{display:none}.nav-label-short{letter-spacing:.08em;font-size:10px;display:block}.main-content{max-width:none;margin:0;padding:76px clamp(18px,5vw,28px) 168px}.app-shell:has(.detail-panel) .main-content{max-width:none;margin:0;padding:76px clamp(18px,5vw,28px) 168px}.page-header{flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:35px;padding-bottom:14px}.page-header>.semester-switcher,.page-header-tools{width:100%}.page-header-tools{justify-content:space-between}.course-page-header .page-header-tools{align-items:flex-end}.page-deck{font-size:12px}.course-index-intro,.subsection-header{flex-direction:column;align-items:flex-start;gap:17px}.course-index-actions{justify-content:flex-start;width:100%}.course-import-heading,.course-import-summary,.course-import-course-copy{flex-direction:column;gap:7px}.course-import-summary strong{margin-left:0}.course-import-duplicate>div,.course-import-duplicate button,.course-import-commit{width:100%}.course-index-intro .secondary-action,.subsection-header .secondary-action{align-self:flex-start}.item-row{min-height:76px}.completion-target{flex-basis:48px;width:48px}.quick-capture{right:clamp(18px,5vw,28px);bottom:calc(90px + env(safe-area-inset-bottom))}.quick-capture.expanded form{width:min(430px,100vw - 36px)}.detail-backdrop{z-index:20;animation:detail-backdrop-in var(--motion-short) ease-out both;background:#14201966;border:0;display:block;position:fixed;inset:0}.detail-panel{border-left:0;border-top:1px solid var(--line);width:100%;height:min(84dvh,740px);padding:15px clamp(20px, 6vw, 30px) calc(34px + env(safe-area-inset-bottom));z-index:21;animation:sheet-in var(--motion-panel) ease-out;border-radius:17px 17px 0 0;top:auto;bottom:0}.detail-backdrop.closing{pointer-events:none;animation:detail-backdrop-out var(--motion-short) ease-in both}.detail-panel.closing{animation:sheet-out var(--motion-panel) ease-in both}.sheet-handle{background:var(--line-strong);border-radius:999px;width:38px;height:4px;margin:0 auto 7px;display:block}.detail-top{margin-bottom:24px}.detail-form-grid{grid-template-columns:1fr}.detail-field-wide{grid-column:auto}.detail-edit-actions{bottom:calc(-34px - env(safe-area-inset-bottom));margin-bottom:calc(-22px - env(safe-area-inset-bottom));padding-bottom:calc(22px + env(safe-area-inset-bottom))}@keyframes sheet-in{0%{opacity:.7;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes sheet-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}@keyframes detail-backdrop-in{0%{opacity:0}}@keyframes detail-backdrop-out{to{opacity:0}}.feedback{bottom:calc(151px + env(safe-area-inset-bottom))}.error-banner{bottom:calc(212px + env(safe-area-inset-bottom))}.course-create,.course-item-form{flex-wrap:wrap}.course-create button,.course-item-form button{width:100%}.calendar-toolbar{flex-direction:column;align-items:flex-start;gap:18px}.calendar-title-block strong{font-size:22px}.calendar-toolbar-actions{flex-wrap:wrap;justify-content:flex-start;gap:7px;width:100%}.calendar-mode-switch{margin-left:auto}.calendar-toolbar-actions button{min-width:44px;min-height:44px}.calendar-weekdays{padding-block:9px;font-size:9px}.calendar-week-row{min-height:63px;padding:5px 0 8px}.calendar-grid.mode-week .calendar-week-row{min-height:150px}.calendar-week-meta{min-height:15px;padding-left:3px;font-size:8px}.calendar-day{text-align:center;flex-direction:column;align-items:center;gap:2px;min-height:44px;padding:2px}.calendar-day time{min-width:25px;height:25px}.calendar-day-count{width:14px;min-height:10px;color:var(--muted);place-items:center;font-size:8px;display:grid}.calendar-day-count.has-items:before{background:var(--accent);content:"";border-radius:50%;width:4px;height:4px}.calendar-day-count b{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.calendar-grid.mode-month .calendar-segments,.calendar-grid.mode-month .calendar-week-overflow{display:none}.calendar-segment{min-height:27px;padding:4px 5px;font-size:9px}.calendar-view.day-open .calendar-toolbar,.calendar-view.day-open .calendar-grid-transition{display:none}.calendar-day-detail{padding-top:0}.calendar-view.day-open .calendar-day-detail{border-top:0;margin-top:0}.calendar-day-heading{align-items:flex-start}.calendar-day-heading .quiet-button{white-space:nowrap;min-height:44px}.calendar-day-detail ul{margin-top:20px}}.search-backdrop{z-index:40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:search-backdrop-in var(--motion-short) ease-out both;background:#1c231f57;justify-content:center;align-items:flex-start;padding:clamp(42px,8vh,88px) 24px 32px;display:flex;position:fixed;inset:0}@keyframes search-backdrop-in{0%{opacity:0}}.search-surface{border-radius:var(--radius-large);width:min(720px,100%);max-height:calc(100dvh - clamp(84px,16vh,176px));animation:search-surface-in var(--motion-panel) ease-out both;background:#fffdf8fa;border:1px solid #d9d7cfe6;padding:30px clamp(24px,4vw,40px) 36px;overflow:auto;box-shadow:0 28px 90px #171f1a38}.search-backdrop.closing{pointer-events:none;animation:search-backdrop-out var(--motion-short) ease-in both}.search-backdrop.closing .search-surface{animation:search-surface-out var(--motion-short) ease-in both}@keyframes search-backdrop-out{to{opacity:0}}@keyframes search-surface-out{to{opacity:0;transform:translateY(-6px)scale(.995)}}@keyframes search-surface-in{0%{opacity:0;transform:translateY(-10px)scale(.992)}}.search-surface>header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.search-surface h1{letter-spacing:-.02em;margin:5px 0 0;font-family:ui-serif,Songti SC,SimSun,serif;font-size:clamp(25px,4vw,34px);font-weight:560}.search-input{border:1px solid var(--line-strong);border-radius:var(--radius-medium);background:var(--surface);min-height:54px;color:var(--muted);align-items:center;gap:12px;padding:0 15px;display:flex}.search-input:focus-within{border-color:#7d968b;box-shadow:0 0 0 3px #31564a14}.search-input input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:15px}.search-input input::-webkit-search-cancel-button{display:none}.search-input>button{min-height:36px;color:var(--muted);background:0 0;border:0;padding:0 4px;font-size:11px}.search-summary{min-height:20px;color:var(--muted);margin:13px 2px 22px;font-size:12px}.search-result-groups{gap:26px;display:grid}.search-result-groups section{min-width:0}.search-result-groups h2{color:var(--muted);letter-spacing:.12em;margin:0 0 7px;font-size:11px;font-weight:700}.search-result-groups ul{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.search-result-groups li{border-bottom:1px solid var(--line)}.search-result-groups li>button{width:100%;min-height:66px;color:inherit;text-align:left;transition:background-color var(--motion-fast) ease-out, padding var(--motion-fast) ease-out;background:0 0;border:0;grid-template-columns:24px minmax(0,1fr) 20px;align-items:center;gap:12px;padding:11px 5px;display:grid}.search-result-groups li>button:hover,.search-result-groups li>button:focus-visible{background:#dfe7e073;padding-inline:10px}.search-result-groups li>button>span:nth-child(2){gap:5px;min-width:0;display:grid}.search-result-groups strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:590;overflow:hidden}.search-result-groups small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.search-result-mark{color:var(--accent);text-align:center;font-size:16px}.search-result-mark.complete{color:var(--faint)}.search-result-arrow{color:var(--faint);text-align:right;transition:transform var(--motion-fast) ease-out}.search-result-groups button:hover .search-result-arrow{transform:translate(2px)}.search-empty{min-height:150px;color:var(--line-strong);place-items:center;font-size:38px;display:grid}.account-control{z-index:12;flex-direction:column;align-items:flex-start;gap:8px;display:flex;position:fixed;bottom:28px;left:31px}.ai-task-progress{width:calc(var(--nav-width) - 45px);background:#faf8f3e0;border:1px solid #c7c8bfbf;border-radius:12px;order:-1;padding:7px 11px 9px;box-shadow:0 8px 22px #212b261f}.ai-task-progress-label{color:var(--ink-soft);margin:0 0 6px;font-size:11px;line-height:1.35}.ai-task-progress-track{background:#c7c8bfa6;border-radius:2px;height:4px;position:relative;overflow:hidden}.ai-task-progress-bar{transform-origin:0;background:#557968;border-radius:2px;position:absolute;inset:0}.phase-running .bar-one{animation:2.1s cubic-bezier(.165,.84,.44,1) infinite ai-indeterminate-one}.phase-running .bar-two{animation:2.1s cubic-bezier(.165,.84,.44,1) infinite ai-indeterminate-two}@keyframes ai-indeterminate-one{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes ai-indeterminate-two{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}.phase-completed{cursor:pointer;text-align:left;font:inherit;transition:border-color .18s,box-shadow .18s,transform .18s}.phase-completed:hover,.phase-completed:focus-visible,.phase-failed:focus-visible{border-color:var(--accent);box-shadow:0 10px 26px #212b2629}.phase-completed:active,.phase-failed:active{transform:translateY(1px)}.phase-completed .ai-task-progress-label{color:var(--accent-strong,#31564a);font-weight:650}.phase-failed .ai-task-progress-label{color:#8c5c2e;font-weight:650}.phase-completed .bar-two,.phase-failed .bar-two{display:none}.phase-completed .bar-one,.phase-failed .bar-one{animation:.5s cubic-bezier(.22,1,.36,1) forwards ai-progress-complete}.phase-completed .ai-task-progress-track{background:#55796838}.phase-failed .ai-task-progress-track{background:#8c5c2e33}.phase-failed .ai-task-progress-bar{background:#8c5c2ecc}@keyframes ai-progress-complete{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.sync-status-trigger{min-height:38px;color:var(--ink-soft);background:#faf8f3b8;border:1px solid #c7c8bfbf;border-radius:20px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:flex}.sync-status-trigger b{min-width:20px;height:20px;color:var(--danger);background:#eaded6;border-radius:10px;place-items:center;padding-inline:5px;font-size:10px;display:grid}.sync-status-dot{background:#8c938e;border-radius:50%;flex:0 0 7px;width:7px;height:7px}.state-up_to_date .sync-status-dot{background:#557968}.state-offline .sync-status-dot,.state-local_only .sync-status-dot{background:#9b8062}.state-needs_attention .sync-status-dot,.state-error .sync-status-dot{background:#a45d52}.state-syncing .sync-status-dot{background:#6b887c}.language-switcher{position:relative}.top-tools{display:contents}.language-switcher-nav{margin-top:8px}.language-trigger{color:#5b6560;text-align:left;cursor:pointer;width:100%;min-height:48px;transition:color var(--motion-fast) ease-out, background-color var(--motion-fast) ease-out, transform var(--motion-fast) ease-out;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.language-trigger:hover{color:var(--accent-strong);background:#ffffff6b}.language-trigger:active{transform:translateY(1px)}.language-switcher-compact{justify-content:flex-end;display:none}.language-switcher-compact .language-trigger{border:1px solid var(--line);border-radius:var(--radius-medium);background:#ffffff6b;justify-content:center;width:44px;min-height:44px;padding:0;box-shadow:0 5px 20px #2d3b330f}.language-menu{z-index:30;border:1px solid var(--line);border-radius:var(--radius-medium);background:var(--surface-raised);min-width:168px;box-shadow:var(--shadow-soft);animation:account-popover-in var(--motion-medium) ease-out both;padding:8px;position:absolute}.language-switcher-nav .language-menu{bottom:calc(100% + 8px);left:0}.language-switcher-compact .language-menu{top:calc(100% + 8px);right:0}.language-menu.closing{pointer-events:none;animation:account-popover-out var(--motion-short) ease-in both}.language-menu button{width:100%;min-height:40px;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.language-menu button:hover,.language-menu button.selected{background:var(--accent-soft);color:var(--accent-strong)}.language-option-check{width:1em;color:var(--accent-strong);font-weight:700}@media (width<=767px){.top-tools{top:calc(env(safe-area-inset-top,0px) + 18px);z-index:12;flex-direction:row;align-items:flex-start;gap:8px;display:flex;position:fixed;left:auto;right:clamp(18px,5vw,28px)}.top-tools .language-switcher-compact{z-index:auto;display:flex;position:static;top:auto;right:auto}.top-tools .account-control{max-width:min(200px,100vw - 96px);position:static;inset:auto}}.account-popover{border:1px solid var(--line);border-radius:var(--radius-medium);background:var(--surface-raised);width:min(330px,100vw - 40px);box-shadow:var(--shadow-soft);animation:account-popover-in var(--motion-medium) ease-out both;padding:22px 22px 20px;position:absolute;bottom:47px;left:0}.account-popover.closing{pointer-events:none;animation:account-popover-out var(--motion-short) ease-in both}@keyframes account-popover-in{0%{opacity:0;transform:translateY(6px)}}@keyframes account-popover-out{to{opacity:0;transform:translateY(4px)}}.account-popover>header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;display:flex}.account-popover h2{margin:4px 0 0;font-size:17px}.sync-state-summary{border:1px solid var(--line);border-radius:var(--radius-small);background:var(--surface-muted);align-items:flex-start;gap:11px;padding:13px 14px;display:flex}.sync-state-summary .sync-status-dot{margin-top:5px}.sync-state-summary>div{gap:3px;display:grid}.sync-state-summary strong{font-size:12px}.sync-state-summary small{color:var(--muted);font-size:11px;line-height:1.5}.account-popover form{gap:8px;margin-top:18px;display:grid}.account-popover form label{color:var(--muted);font-size:11px}.account-popover label{gap:7px;display:grid}.account-popover input{border:1px solid var(--line);border-radius:var(--radius-small);background:var(--surface);width:100%;min-height:40px;padding:9px 10px}.account-popover form>button,.account-actions>button{border:1px solid var(--accent);border-radius:var(--radius-small);background:var(--accent);color:#fff;margin-top:7px;padding:9px 12px}.account-popover .auth-actions>button,.account-popover .identity-form-actions>button{border:1px solid var(--accent);border-radius:var(--radius-small);background:var(--accent);color:#fff;margin-top:0;padding:9px 12px}.account-popover p{overflow-wrap:anywhere;line-height:1.5}.account-note{color:var(--muted);margin:16px 2px 2px;font-size:12px}.account-email{color:var(--ink-soft);margin:16px 2px 4px;font-size:12px}.account-actions{align-items:center;gap:9px;margin-top:10px;display:flex}.conflict-choice{border-top:1px solid var(--line);transition:opacity var(--motion-short) ease-out, transform var(--motion-short) ease-out;margin-top:22px;padding-top:20px}.conflict-choice h3{overflow-wrap:anywhere;margin:4px 0 18px}.conflict-field{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 18px;padding:0;display:grid}.conflict-field legend{margin-bottom:8px;font-weight:600}.conflict-field label{border:1px solid var(--line);border-radius:var(--radius-small);cursor:pointer;flex-wrap:wrap;align-items:flex-start;gap:7px;min-height:74px;padding:12px;display:flex}.conflict-field label:has(input:checked){background:#e9eee8;border-color:#435a4b}.conflict-field strong{overflow-wrap:anywhere;flex-basis:100%;font-weight:500}.conflict-choice>button{border:1px solid var(--accent);border-radius:var(--radius-small);background:var(--accent);color:#fff;min-height:42px;padding:10px 18px;font-weight:600}.conflict-choice>button:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.conflict-choice>button:disabled{border-color:var(--line);background:var(--surface-muted);color:var(--muted)}.sync-repair-choice h3{margin-bottom:8px}.sync-repair-choice>p{line-height:1.55}.sync-repair-actions,.sync-repair-confirm{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sync-repair-actions button,.sync-repair-confirm button{padding:9px 12px}.sync-repair-confirm{border:1px solid var(--line);background:#eeeae1;margin-top:12px;padding:14px}.sync-repair-confirm p{flex-basis:100%;margin:0 0 4px;line-height:1.55}@media (width<=767px){.search-shortcut{min-height:44px}.search-backdrop{background:#1c231f47;padding:0}.search-surface{width:100%;height:100dvh;max-height:none;padding:calc(24px + env(safe-area-inset-top)) clamp(18px, 5vw, 28px) calc(32px + env(safe-area-inset-bottom));box-shadow:none;border:0;border-radius:0;animation-name:search-mobile-in}@keyframes search-mobile-in{0%{opacity:0;transform:translateY(8px)}}.search-surface>header{margin-bottom:20px}.search-input{min-height:52px}.search-input>button,.account-popover input{min-height:44px}.search-result-groups li>button{min-height:70px}.account-control{top:calc(env(safe-area-inset-top,0px) + 18px);align-items:flex-end;bottom:auto;left:auto;right:clamp(18px,5vw,28px)}.account-control>button{background:#faf8f3db;min-width:44px;min-height:44px;padding:7px 10px}.account-popover{width:auto;max-width:330px;margin-left:auto;position:fixed;inset:66px clamp(18px,5vw,28px) auto}.attention-panel{width:100%}.attention-summary{grid-template-columns:7px minmax(0,1fr) auto 20px;gap:10px;min-height:72px;padding:13px 14px}.attention-body{padding:0 15px 18px}.attention-copy small{white-space:normal}.conflict-field{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.account-popover{max-height:min(72vh,640px);overflow-y:auto}.auth-panel{gap:12px;margin-top:14px;display:grid}.auth-panel form{margin-top:0}.auth-actions,.identity-form-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.auth-actions{justify-content:space-between}.auth-actions>button,.identity-form-actions>button{margin-top:0}.auth-secondary{justify-items:start;gap:6px;padding-top:10px;display:grid}.auth-secondary>button{margin-top:0}.google-sign-in{border:1px solid var(--line);border-radius:var(--radius-small);background:var(--surface);width:100%;padding:9px 12px}.auth-error{color:var(--danger);font-size:12px}.identity-list{border-top:1px solid var(--line);gap:12px;margin-top:16px;padding-top:14px;display:grid}.identity-list>.eyebrow{margin:0}.identity-row{gap:7px;display:grid}.identity-row>div:first-child{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.identity-row strong{font-size:13px}.identity-row small{color:var(--muted);text-align:right;overflow-wrap:anywhere;font-size:11px}.identity-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.identity-actions button{border:1px solid var(--line);border-radius:var(--radius-small);background:var(--surface);padding:6px 10px;font-size:12px}.identity-actions button:not(.quiet-button){border-color:var(--accent)}.identity-row form{border-top:1px dashed var(--line);margin-top:0;padding-top:10px}.auth-panel select,.identity-row select{width:100%}.schedule-list .row-actions{align-items:center;gap:4px;display:flex}.schedule-list li.is-editing{box-shadow:inset 3px 0 0 var(--accent);padding-left:12px}.schedule-editing-note{width:100%;color:var(--muted);margin:0;font-size:12px}.conflict-collection{color:var(--muted);margin:4px 0 0;padding-left:18px;font-size:12px;line-height:1.6}.conflict-collection li::marker{color:var(--accent)}.conflict-collection-empty{color:var(--muted);font-size:12px;font-style:normal}.week-anchor-note{color:var(--muted);margin:0 0 12px;font-size:12px;line-height:1.6}.week-picker{border-top:1px solid var(--line);gap:14px;padding-top:14px;display:grid}.week-picker-control{color:var(--muted);align-items:center;gap:10px;font-size:11px;display:flex}.week-picker-control input{border:1px solid var(--line);border-radius:var(--radius-small);background:var(--surface);width:88px;min-height:36px;padding:6px 8px}.week-month+.week-month{margin-top:10px}.week-month-label{color:var(--muted);letter-spacing:.04em;margin:0 0 6px;font-size:11px}.week-rows{border:1px solid var(--line);border-radius:var(--radius-small);max-height:260px;margin:0;padding:0;list-style:none;overflow-y:auto}.week-row{border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:10px;width:100%;padding:9px 10px;display:flex}.week-rows li:last-child .week-row{border-bottom:0}.week-row:hover,.week-row:focus-visible{background:var(--surface)}.week-row-range{font-variant-numeric:tabular-nums;min-width:108px}.week-row-number{font-size:12px}.week-row-projected,.week-row-manual{border-radius:999px;padding:1px 6px;font-size:10px;font-style:normal}.week-row-projected{background:var(--accent-soft,var(--surface));color:var(--accent);border:1px solid var(--accent)}.week-row-manual{color:var(--muted);border:1px solid var(--line)}.week-row-fill{color:var(--accent);margin-left:auto;font-size:11px}.week-status{color:var(--accent);margin:10px 0 0;font-size:12px}.week-bootstrap{border:1px dashed var(--accent);border-radius:var(--radius-small);background:var(--surface);margin:0 0 12px;padding:10px 12px}.week-bootstrap strong{margin-bottom:4px;font-size:13px;display:block}.week-bootstrap p{color:var(--muted);margin:0;font-size:12px;line-height:1.6}.week-row-anchor{border:1px solid var(--accent);background:var(--accent-soft,var(--surface));color:var(--accent);border-radius:999px;padding:1px 6px;font-size:10px;font-style:normal}.week-start-row{align-items:center;gap:10px;margin-top:12px;display:flex}.week-start-row label{color:var(--muted);font-size:11px}.week-start-row select{border:1px solid var(--line);border-radius:var(--radius-small);background:var(--surface);min-height:36px;color:var(--ink);padding:6px 8px}.week-calendar-warning{border:1px solid var(--danger);border-radius:var(--radius-small);background:var(--danger-soft);color:var(--danger);margin:0 0 12px;padding:8px 10px;font-size:12px;line-height:1.6}.sync-summary-action{border:1px solid var(--line);border-radius:var(--radius-small);background:var(--surface);min-height:36px;color:var(--ink);cursor:pointer;margin-top:8px;padding:6px 10px;font-size:12px}.sync-summary-action:hover{border-color:var(--accent);color:var(--accent)}.datetime-wrap{position:relative}.datetime-wrap .datetime-field{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-small);width:100%;min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:10px 34px 10px 13px}.datetime-wrap .datetime-field.is-empty{color:var(--faint)}.datetime-wrap .datetime-field:hover{border-color:var(--line-strong)}.datetime-caret{color:var(--muted);pointer-events:none;font-size:12px;line-height:1;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.datetime-panel{z-index:200;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-medium);width:300px;max-width:calc(100vw - 24px);box-shadow:var(--shadow-soft);flex-direction:column;gap:9px;padding:12px;display:flex;position:fixed;top:0;left:0}.datetime-panel:not([data-positioned]){visibility:hidden}.datetime-panel:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.datetime-panel button{min-width:0;min-height:0;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}.datetime-nav{align-items:center;gap:6px;display:flex}.datetime-nav strong{text-align:center;flex:1;font-size:14px;font-weight:640}.datetime-nav>button{border:1px solid var(--line);border-radius:var(--radius-small);background:var(--surface);width:30px;height:30px;color:var(--ink-soft);flex:none;justify-content:center;align-items:center;font-size:17px;line-height:1;display:inline-flex}.datetime-nav>button:hover{background:var(--surface-muted)}.datetime-nav .datetime-today{width:auto;color:var(--accent);background:var(--accent-soft);border-color:var(--accent-soft);padding:0 10px;font-size:12.5px}.datetime-nav .datetime-today:hover{background:var(--accent-soft);color:var(--accent-strong)}.datetime-weekdays,.datetime-days{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.datetime-weekdays span{text-align:center;color:var(--muted);padding:2px 0;font-size:11px}.datetime-panel .datetime-days button{border-radius:var(--radius-small);height:34px;color:var(--ink);font-size:13.5px}.datetime-days button:hover{background:var(--surface-muted)}.datetime-days button[data-outside]{color:var(--faint)}.datetime-days button[data-today]{box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent);font-weight:640}.datetime-days button[aria-pressed=true]{background:var(--accent);color:#fff;box-shadow:none}.datetime-times{grid-template-columns:1fr 1fr;gap:8px;display:grid}.datetime-time-label{text-align:center;color:var(--muted);margin:0 0 4px;font-size:11px}.datetime-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding-top:9px;display:flex}.datetime-footer-actions{gap:6px;display:flex}.datetime-panel .datetime-footer button{border-radius:var(--radius-small);height:32px;padding:0 12px;font-size:13px}.datetime-footer .datetime-clear{color:var(--danger)}.datetime-footer .datetime-clear:hover{background:var(--danger-soft)}.datetime-footer .datetime-quiet:hover{background:var(--surface-muted)}.datetime-footer .datetime-confirm{background:var(--accent);color:#fff;font-weight:600}.datetime-footer .datetime-confirm:hover{background:var(--accent-strong)}@media (width<=767px){.datetime-panel{inset:auto 12px calc(12px + env(safe-area-inset-bottom));width:auto;max-width:none;max-height:min(76vh,560px);position:fixed;overflow-y:auto}.datetime-panel .datetime-days button{height:42px;font-size:15px}.datetime-panel .datetime-footer button{height:40px;padding:0 16px;font-size:14px}}.select-wrap{min-width:0;display:block;position:relative}.select-wrap .select-field{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-small);width:100%;min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:10px 34px 10px 13px;display:flex}.select-field.is-empty .select-value{color:var(--faint)}.select-wrap .select-field:hover{border-color:var(--line-strong)}.select-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.select-caret{color:var(--muted);pointer-events:none;font-size:12px;line-height:1;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.select-panel{z-index:200;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-medium);min-width:160px;max-width:calc(100vw - 24px);box-shadow:var(--shadow-soft);scrollbar-width:thin;gap:2px;padding:6px;display:grid;position:fixed;top:0;left:0;overflow-y:auto}.select-panel:not([data-positioned]){visibility:hidden}.select-panel button{border-radius:var(--radius-small);width:100%;min-height:34px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;padding:7px 10px;font-size:13.5px;overflow:hidden}.select-panel button:hover,.select-panel button[data-active]{background:var(--surface-muted)}.select-panel button[aria-selected=true]{background:var(--accent-soft);color:var(--accent-strong);font-weight:640}.semester-switcher .select-field{background:#faf8f3b8;border-radius:18px;min-height:40px;padding:8px 32px 8px 12px}.week-start-row .select-field{background:var(--surface);min-height:36px;padding:6px 30px 6px 10px}.association-add .select-wrap{flex:1;min-width:0}.pending-resolution .select-wrap{width:100%}@media (width<=767px){.select-panel button{min-height:44px;font-size:15px}.week-start-row .select-field{min-height:44px}}.calendar-day{min-height:44px;padding:6px 7px}.calendar-day.today{background:var(--accent-soft)}.calendar-day:hover{background:#24473c3d}.datetime-wheel{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.datetime-wheel-shell{width:100%;position:relative}.datetime-wheel-viewport{z-index:1;scroll-snap-type:y mandatory;scrollbar-width:none;-ms-overflow-style:none;outline:none;height:102px;position:relative;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000 0,#000 26% 74%,#0000 100%);mask-image:linear-gradient(#0000 0,#000 26% 74%,#0000 100%)}.datetime-wheel-viewport::-webkit-scrollbar{display:none}.datetime-wheel-viewport:focus-visible{box-shadow:0 0 0 2px var(--accent);border-radius:var(--radius-small)}.datetime-wheel-track{padding:34px 0}.datetime-wheel-item{scroll-snap-align:center;height:34px;color:var(--ink-soft);font-variant-numeric:tabular-nums;transition:font-size var(--motion-fast) ease, font-weight var(--motion-fast) ease, color var(--motion-fast) ease;place-items:center;font-size:13.5px;display:grid}.datetime-wheel-item.is-center{color:var(--accent-strong);font-size:17px;font-weight:650}.datetime-wheel-band{z-index:0;background:var(--accent-soft);border-radius:var(--radius-small);pointer-events:none;height:34px;position:absolute;top:34px;left:0;right:0}.raw-toggle-glyph{vertical-align:-.18em;transition:transform var(--motion-fast) ease;margin-left:5px;display:inline-block}.raw-toggle-glyph.open{transform:rotate(180deg)}.time-block{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-small);grid-column:1/-1;margin-top:4px;padding:12px 13px;font-size:13px}.time-block-head{color:var(--muted);margin:0 0 8px;font-size:12.5px}.time-block-empty{background:var(--surface-raised);border:1px dashed var(--line-strong);border-radius:var(--radius-small);width:100%;min-height:44px;color:var(--faint);font:inherit;text-align:left;justify-content:space-between;align-items:center;padding:10px 13px;display:flex}.time-block-empty span{color:var(--accent);font-size:13px}.time-block-empty:hover{border-color:var(--accent)}.time-block-summary{gap:6px;margin:0;padding:0;list-style:none;display:grid}.time-block-summary li{color:var(--ink-soft);padding-left:14px;font-size:14px;position:relative}.time-block-summary li:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:.55em;left:0}.time-block-edit{margin-top:6px}.time-block-editor{gap:8px;display:grid}.time-block .time-block-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:0;display:flex}.time-block .time-block-fields{flex:260px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;min-width:0;display:grid}.time-block .time-block-fields>.datetime-wrap:nth-child(3){grid-column:1/-1}.time-block .time-block-row .datetime-wrap{min-width:0}.time-block-kind{color:var(--muted);flex:0 0 34px;font-size:13px}.time-block-done{justify-self:start}.pending-question{color:var(--ink);margin:14px 0 2px;font-weight:620}.window-titlebar{z-index:60;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;height:36px;display:flex;position:fixed;inset:0 0 auto}.window-titlebar:after{content:"";inset:0 0 0 var(--nav-width);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);background:#f3f0e9f5;position:absolute}.window-titlebar .titlebar-label{z-index:1;color:var(--muted);pointer-events:none;align-items:center;gap:10px;padding-left:13px;font-size:12px;display:flex;position:relative}.window-titlebar .titlebar-label img{border-radius:6px;width:22px;height:22px}.window-titlebar .window-controls{z-index:1;height:100%;display:flex;position:relative}.window-titlebar .window-controls button{width:46px;height:100%;color:var(--ink-soft);transition:background var(--motion-fast) ease, color var(--motion-fast) ease;background:0 0;border:0;place-items:center;padding:0;display:grid}.window-titlebar .window-controls button:hover{background:var(--surface-muted)}.window-titlebar .window-controls .window-control-close:hover{background:var(--danger);color:#fff}.window-titlebar .window-controls button svg{width:11px;height:11px}body.tauri-shell{padding-top:36px}.tauri-shell .main-nav{padding-top:74px;top:0}.tauri-shell .app-shell,.tauri-shell .main-content{min-height:calc(100dvh - 36px)}.tauri-shell .detail-panel{top:36px}*{scrollbar-width:thin;scrollbar-color:transparent transparent}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{opacity:0;background:#c6c9bf padding-box content-box;border:3px solid #0000;border-radius:99px;transition:opacity .22s}::-webkit-scrollbar-thumb:hover{opacity:1;background:#a3a99e padding-box content-box;border:3px solid #0000}::-webkit-scrollbar-corner{background:0 0}.is-scrolling::-webkit-scrollbar-thumb{opacity:1}.is-scrolling{scrollbar-color:#c6c9bf transparent}.detail-panel{scrollbar-width:none}.detail-panel::-webkit-scrollbar{display:none}.update-dialog{z-index:90;border:1px solid var(--line);border-radius:var(--radius);width:min(430px,100vw - 32px);box-shadow:var(--shadow-popover,0 12px 32px #0000002e);background:#faf8f3f5;padding:16px 18px;position:fixed;bottom:36px;left:50%;transform:translate(-50%)}.update-dialog-title{margin:0 0 6px;font-weight:600}.update-dialog-notes{color:var(--muted-foreground,#6b7268);max-height:160px;margin:0 0 10px;font-size:13px;line-height:1.5;overflow-y:auto}.update-dialog-error{color:#a4392f;margin:0 0 8px;font-size:13px}.update-dialog-actions{justify-content:flex-end;gap:10px;display:flex}.update-dialog-actions button{border:1px solid var(--line);border-radius:var(--radius-small);background:var(--surface-raised);min-height:38px;color:var(--ink);padding:8px 16px}.update-dialog-actions button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.update-dialog-actions button:disabled{opacity:.6}.permission-guide-backdrop{z-index:70;padding:16px 12px calc(env(safe-area-inset-bottom,0px) + 16px);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1e222057;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.permission-guide{border:1px solid var(--line);background:var(--surface-raised);width:min(430px,100%);max-height:min(78vh,560px);box-shadow:var(--shadow-soft,0 18px 48px #1e222038);border-radius:16px;padding:20px 18px 16px;animation:.24s ease-out both permission-guide-in;overflow-y:auto}@keyframes permission-guide-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.permission-guide-title{margin:0 0 4px;font-size:17px;font-weight:640}.permission-guide-subtitle{color:var(--muted);margin:0 0 14px;font-size:12.5px;line-height:1.6}.permission-guide-row{border-top:1px solid var(--line);align-items:center;gap:10px;padding:11px 0;display:flex}.permission-guide-row-text{flex:1;gap:2px;min-width:0;display:grid}.permission-guide-row-text strong{font-size:14px;font-weight:600}.permission-guide-row-text small{color:var(--muted);font-size:11.5px;line-height:1.5}.permission-guide-state{flex:none;font-size:12px}.permission-guide-state.notify-granted{color:var(--accent-strong,#2f6b52)}.permission-guide-state.notify-denied{color:#a35b2b}.permission-guide-state.notify-checking{color:var(--faint)}.permission-guide-action{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:8px;flex:none;min-height:34px;padding:6px 12px;font-size:12.5px}.permission-guide-footnote{color:var(--faint);margin:10px 0 0;font-size:11px;line-height:1.6}.permission-guide-actions{gap:10px;margin-top:14px;display:flex}.permission-guide-skip,.permission-guide-done{border-radius:10px;min-height:42px;font-size:14px}.permission-guide-skip{border:1px solid var(--line);color:var(--muted);background:0 0;flex:none;padding:8px 16px}.permission-guide-done{border:1px solid var(--accent);background:var(--accent);color:#fff;flex:1;padding:8px 16px}
