:root{--font-display:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "PingFang SC", "Helvetica Neue", sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Helvetica Neue", sans-serif;--page-max-width:1024px;--page-narrow-max-width:620px;--page-padding-horizontal:16px;--page-header-height:56px;--safe-top:var(--safe-area-inset-top,env(safe-area-inset-top,0px));--safe-right:var(--safe-area-inset-right,env(safe-area-inset-right,0px));--safe-bottom:var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px));--safe-left:var(--safe-area-inset-left,env(safe-area-inset-left,0px));--app-tabbar-floating-bottom:max(12px, var(--safe-bottom));--app-tabbar-visual-height:72px;--app-tabbar-sheet-bottom:calc(var(--app-tabbar-floating-bottom) + var(--app-tabbar-visual-height));--app-tabbar-reserved-bottom:calc(128px + var(--safe-bottom));--app-stable-viewport-height:100dvh;--radius-outer-card:24px;--radius-inner-control:14px;--radius-dense-item:10px;--radius-bottom-sheet:28px;--radius-sm:var(--radius-dense-item);--radius-md:var(--radius-inner-control);--radius-lg:18px;--radius-xl:var(--radius-outer-card);--radius-full:9999px;--control-height-sm:32px;--control-height-md:44px;--control-height-lg:52px;--blur-glass-effect:blur(20px) saturate(190%);--blur-app-chrome:blur(32px) saturate(190%);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-base:#f5f5f7;--surface-strong:#fff;--surface-soft:#f7f7fb;--surface-elevated:#ffffffe6;--surface-muted:#e7e7ed;--surface-glass:#ffffffb8;--surface-glass-strong:#ffffffdb;--text-primary:#111114;--text-secondary:#6e6e73;--text-tertiary:#9a9aa0;--text-muted:#9a9aa0;--line-primary:#3c3c4324;--line-soft:#3c3c4314;--shadow-card:0 1px 2px #0000000a, 0 6px 18px #0000000a;--shadow-soft:0 6px 18px #0000000f;--shadow-strong:0 18px 50px #0000001f;--shadow-apple-soft:0 4px 20px #0000000d;--shadow-apple-float:0 18px 48px #0f172a1f;--accent-blue:#007aff;--accent-deep:#1c1c1e;--accent-green:#34c759;--accent:#d84c39;--danger:#ff3b30;--warning:#ff9500;--color-action-primary:#007aff;--color-action-secondary:var(--surface-muted);--color-action-destructive:var(--danger);--color-action-label-primary:#fff;--color-action-label-secondary:var(--text-primary);--danger-soft:#ff3b3014;--toast-bg:#1c1c1e;--toast-text:#fff;--sidebar-width:300px;--sidebar-min-width:220px;--sidebar-max-width:min(560px, 38vw)}@media (width>=768px) and (width<=1024px){:root{--sidebar-width:260px;--sidebar-max-width:min(400px, 36vw)}}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-base:#0b0b0c;--surface-strong:#1c1c1e;--surface-soft:#262629;--surface-elevated:#1c1c1eeb;--surface-muted:#323236;--surface-glass:#1c1c1eb3;--surface-glass-strong:#1c1c1ee0;--text-primary:#fff;--text-secondary:#a1a1a7;--text-tertiary:#737378;--text-muted:#737378;--line-primary:#54545847;--line-soft:#54545829;--shadow-card:0 1px 2px #0000003d, 0 8px 24px #00000038;--shadow-soft:0 8px 22px #00000038;--shadow-strong:0 20px 50px #00000061;--shadow-apple-soft:0 6px 24px #0000003d;--shadow-apple-float:0 22px 56px #00000057;--accent-blue:#0a84ff;--accent-deep:#f2f2f7;--accent-green:#30d158;--accent:#ff735f;--danger:#ff453a;--warning:#ff9f0a;--color-action-primary:#0a84ff;--color-action-secondary:var(--surface-muted);--color-action-destructive:var(--danger);--color-action-label-primary:#fff;--color-action-label-secondary:var(--text-primary);--danger-soft:#ff453a24;--toast-bg:#f2f2f7;--toast-text:#000}*,:before,:after{box-sizing:border-box;margin:0;padding:0}::selection{background:#007aff2e}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#80808047 padding-box padding-box;border:1px solid #0000;border-radius:999px}.sidebar-scroll::-webkit-scrollbar{width:4px}.sidebar-scroll::-webkit-scrollbar-thumb{background:#8080803d}html,body,#root{height:100%;min-height:100vh}body{font-family:var(--font-body);background:radial-gradient(1100px 680px at 12% -8%, color-mix(in srgb, var(--accent-blue) 12%, transparent), transparent 42%), radial-gradient(820px 520px at 90% 3%, color-mix(in srgb, var(--accent-green) 8%, transparent), transparent 38%), linear-gradient(180deg, color-mix(in srgb, var(--surface-soft) 78%, var(--bg-base)), var(--bg-base) 58%), var(--bg-base);color:var(--text-primary);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:geometricprecision;overflow:hidden}.app{isolation:isolate;gap:14px;padding:12px;position:relative;background:radial-gradient(900px 560px at 8% 0%, color-mix(in srgb, var(--accent-blue) 13%, transparent), transparent 38%), radial-gradient(720px 520px at 96% 4%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 36%), var(--bg-base)!important}.app:before{content:"";z-index:-1;pointer-events:none;opacity:.78;background:linear-gradient(135deg,#ffffff2e,#0000 34%),radial-gradient(circle at 50% 0,#ffffff24,#0000 30%);position:fixed;inset:0}body.app-has-tabbar .main-scroll{padding-bottom:var(--app-tabbar-reserved-bottom)!important}.sidebar,.main-header,.day-row,.day-card,.course-card,.slot-card,.mobile-picker-panel,.mobile-picker-group,.mobile-picker-item,.mobile-empty-hint,.mobile-picker-empty,.btn,.surface-shell,.panel-shell,.dialog-shell{transition:background-color .22s,border-color .22s,box-shadow .22s,color .22s,transform .22s,opacity .22s}body.sidebar-resizing,body.sidebar-resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important;touch-action:none!important}.sidebar-resizer{touch-action:none;-webkit-user-select:none;user-select:none}body.touch-dragging{overflow:hidden}body.carousel-swiping,body.carousel-swiping *{-webkit-user-select:none!important;user-select:none!important;cursor:grabbing!important}body.calendar-event-dragging,body.calendar-event-dragging *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}.main-header{border:1px solid color-mix(in srgb, var(--line-primary) 58%, transparent);border-radius:var(--radius-xl);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-glass-strong) 92%, transparent), color-mix(in srgb, var(--surface-glass) 82%, transparent));box-shadow:var(--shadow-apple-soft);-webkit-backdrop-filter:var(--blur-app-chrome);z-index:20;flex-shrink:0;align-items:center;gap:9px;padding:0 16px;display:flex;position:relative;overflow:hidden}.main{border:1px solid color-mix(in srgb, var(--line-soft) 84%, transparent);border-radius:var(--radius-outer-card);background:color-mix(in srgb, var(--surface-glass) 78%, transparent);min-width:0;box-shadow:var(--shadow-apple-float);-webkit-backdrop-filter:var(--blur-app-chrome)}.main-scroll{border-radius:0 0 var(--radius-outer-card) var(--radius-outer-card)}.main-header .btn{border-width:1px;height:36px;min-height:36px;padding:0 12px;font-size:13px;font-weight:700;box-shadow:inset 0 1px #ffffff70,0 8px 18px #0f172a09}.main-header .btn svg{width:16px;height:16px}.main-header .btn-icon-only{width:36px;min-width:36px;padding:0}.main-header .header-action-home{border-color:color-mix(in srgb, var(--accent-blue) 25%, var(--line-soft));background:color-mix(in srgb, var(--accent-blue) 8%, var(--surface-elevated));color:var(--accent-blue)}.main-header .header-action-today{border-color:color-mix(in srgb, var(--accent-green) 25%, var(--line-soft));background:color-mix(in srgb, var(--accent-green) 9%, var(--surface-elevated));color:var(--accent-green)}.main-header .header-action-catalog{border-color:color-mix(in srgb, var(--accent) 25%, var(--line-soft));background:color-mix(in srgb, var(--accent) 8%, var(--surface-elevated));color:var(--accent)}.main-header .header-action-add{border-color:color-mix(in srgb, var(--accent-blue) 22%, var(--line-soft));background:color-mix(in srgb, var(--accent-blue) 7%, var(--surface-elevated));color:var(--accent-blue)}.main-header .header-action-calendar{border-color:color-mix(in srgb, var(--warning) 24%, var(--line-soft));background:color-mix(in srgb, var(--warning) 8%, var(--surface-elevated));color:var(--warning)}.main-header .header-action-archive{border-color:color-mix(in srgb, var(--accent-green) 24%, var(--line-soft));background:color-mix(in srgb, var(--accent-green) 8%, var(--surface-elevated));color:var(--accent-green)}.main-header .header-action-theme,.main-header .header-action-more{border-color:var(--line-soft);background:color-mix(in srgb, var(--surface-elevated) 88%, transparent);color:var(--text-primary)}.main-header .header-action-more{letter-spacing:0;min-width:42px;padding:0 12px;font-size:18px;font-weight:820}.header-actions-scroll{min-width:0}.days-carousel-track{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:0;display:grid}.subtitle{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:12px;overflow:hidden}@media (width<=768px){.main-header{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:7px 10px;min-height:76px;padding:9px 10px 8px;display:grid;overflow:visible;height:auto!important}.header-brand{min-width:0;overflow:hidden}.header-brand h1{text-overflow:ellipsis;max-width:92px;overflow:hidden}.header-actions-row{scrollbar-width:none;-webkit-overflow-scrolling:touch;grid-column:1/-1;width:100%;min-width:0;padding-bottom:1px;overflow:auto hidden;margin-left:0!important}.header-actions-row::-webkit-scrollbar{display:none}.header-actions-row .btn{flex:none}.header-actions-row>span{display:none!important}.action-menu{min-width:0}}.app-phone-layout .main-header{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:7px 10px;min-height:76px;padding:9px 10px 8px;display:grid;overflow:visible;height:auto!important}.app-phone-layout .header-brand{min-width:0;overflow:hidden}.app-phone-layout .header-brand h1{text-overflow:ellipsis;max-width:92px;overflow:hidden}.app-phone-layout .header-actions-row{scrollbar-width:none;-webkit-overflow-scrolling:touch;grid-column:1/-1;width:100%;min-width:0;padding-bottom:1px;overflow:auto hidden;margin-left:0!important}.app-phone-layout .header-actions-row::-webkit-scrollbar{display:none}.app-phone-layout .header-actions-row .btn{flex:none}.app-phone-layout .header-actions-row>span{display:none!important}.app-phone-layout .action-menu{min-width:0}@media (width<=1180px){.days-carousel-track{grid-template-columns:1fr}}.calendar-overlay{z-index:3200;-webkit-backdrop-filter:blur(18px)saturate(150%);background:#f5f7fb94;justify-content:center;align-items:center;padding:44px 16px;display:flex;position:fixed;inset:0}html[data-theme=dark] .calendar-overlay{background:#080c129e}.calendar-overlay-shell{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-strong) 94%, transparent);width:calc(100vw - 32px);min-width:0;max-width:1180px;height:calc(100dvh - 88px);min-height:0;box-shadow:0 34px 90px #0f172a3d, var(--shadow-strong);-webkit-backdrop-filter:blur(22px)saturate(170%);border-radius:24px;display:flex;position:relative;overflow:hidden}.calendar-overlay-close{z-index:2;border:1px solid var(--line-soft);border-radius:var(--radius-full);background:color-mix(in srgb, var(--surface-elevated) 88%, transparent);width:30px;height:30px;color:var(--danger);cursor:pointer;box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(16px);font-size:18px;line-height:1;position:absolute;top:12px;right:12px}.calendar-overlay-close:hover{background:#ff3b301f}@media (width<=768px){.calendar-overlay{align-items:flex-end;padding:10px 0 0}.calendar-overlay-shell{border-radius:20px 20px 0 0;width:100vw;height:calc(100dvh - 10px);min-height:0}.calendar-overlay-close{top:10px;right:10px}}.mobile-picker-overlay{z-index:3150;-webkit-backdrop-filter:blur(14px)saturate(150%);background:linear-gradient(#f5f7fb29,#f5f7fb94);justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}html[data-theme=dark] .mobile-picker-overlay{background:linear-gradient(#080c1238,#080c12ad)}.mobile-picker-panel{width:100vw;height:min(680px, calc(var(--app-stable-viewport-height) - var(--safe-top) - 10px));max-height:calc(var(--app-stable-viewport-height) - var(--safe-top) - 10px);border:1px solid color-mix(in srgb, var(--line-soft) 70%, transparent);border-radius:var(--radius-bottom-sheet);background:color-mix(in srgb, var(--surface-strong) 98%, var(--bg-base));-webkit-backdrop-filter:blur(20px)saturate(160%);padding:18px 14px calc(16px + var(--app-tabbar-floating-bottom));grid-template-rows:auto auto minmax(0,1fr);gap:10px;display:grid;position:relative;overflow:hidden;box-shadow:0 12px 28px #00000038,inset 0 1px #ffffff1a}.mobile-picker-panel:before{content:"";border-radius:var(--radius-full);background:color-mix(in srgb, var(--text-tertiary) 46%, transparent);width:42px;height:5px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.mobile-picker-header{flex:none;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding-top:4px;display:grid}.mobile-picker-title-line{align-items:baseline;gap:8px;min-width:0;display:flex}.mobile-picker-header h2{color:var(--text-primary);font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:780;line-height:1.2;overflow:hidden}.mobile-picker-header p{color:var(--text-secondary);white-space:nowrap;font-size:12px;font-weight:720}.mobile-picker-header-actions{align-items:center;gap:8px;display:flex}.mobile-picker-close{border:1px solid color-mix(in srgb, var(--line-soft) 70%, transparent);border-radius:var(--radius-full);background:color-mix(in srgb, var(--surface-elevated) 76%, transparent);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;font-size:18px;line-height:1;box-shadow:inset 0 1px #ffffff52}.mobile-picker-done{border-radius:999px;min-height:32px;padding:0 14px;font-size:13px}.mobile-picker-selected,.mobile-picker-directory{border:1px solid color-mix(in srgb, var(--line-soft) 68%, transparent);background:color-mix(in srgb, var(--surface-elevated) 92%, var(--bg-base));border-radius:22px;min-width:0;box-shadow:inset 0 1px #ffffff1f}.mobile-picker-selected{background:0 0;border:none;flex:none;padding:0}.mobile-picker-directory{flex-direction:column;flex:auto;gap:10px;min-height:0;padding:12px;display:flex}.mobile-picker-selected .mobile-picker-section-title{display:none}.mobile-picker-section-title{color:var(--text-primary);justify-content:space-between;align-items:center;gap:10px;margin-bottom:2px;font-size:14px;font-weight:800;display:flex}.mobile-picker-section-title em{color:var(--text-tertiary);flex:none;font-size:11px;font-style:normal;font-weight:700}.mobile-picker-category-title{border-radius:var(--radius-full);min-width:0;min-height:28px;color:var(--text-primary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;flex:auto;padding:0;font-weight:800;line-height:1}.mobile-picker-category-expand{border:1px solid color-mix(in srgb, var(--line-soft) 68%, transparent);border-radius:var(--radius-full);background:color-mix(in srgb, var(--surface-elevated) 90%, var(--bg-base));min-height:34px;color:var(--text-primary);cursor:pointer;align-self:flex-start;padding:0 14px;font-size:12px;font-weight:800}.mobile-picker-selected-empty{border:1px solid color-mix(in srgb, var(--line-soft) 72%, transparent);border-radius:var(--radius-full);background:color-mix(in srgb, var(--surface-elevated) 90%, var(--bg-base));min-height:30px;color:var(--text-secondary);align-items:center;padding:0 11px;font-size:12px;font-weight:720;display:inline-flex}.mobile-picker-selected-list{overscroll-behavior:contain;scrollbar-width:none;flex-direction:row;gap:6px;padding:1px 2px 3px;display:flex;overflow:auto hidden}.mobile-picker-selected-list::-webkit-scrollbar{display:none}.mobile-picker-selected-item{border:1px solid color-mix(in srgb, var(--line-soft) 70%, transparent);border-left:3px solid var(--accent-blue);border-radius:var(--radius-full);background:color-mix(in srgb, var(--surface-soft) 90%, var(--bg-base));flex:none;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;max-width:min(72vw,260px);min-height:34px;padding:5px 6px 5px 9px;display:grid}.mobile-picker-selected-seq{display:none}.mobile-picker-selected-badge,.mobile-picker-item-badge{border-radius:var(--radius-sm);white-space:nowrap;border:.5px solid;padding:2px 6px;font-size:10px;font-weight:700}.mobile-picker-selected-main{min-width:0;display:block}.mobile-picker-selected-main strong,.mobile-picker-item-name{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mobile-picker-selected-main strong{font-size:12px;line-height:1.25}.mobile-picker-selected-main small{display:none}.mobile-picker-selected-item>button{border:1px solid color-mix(in srgb, var(--danger) 18%, transparent);border-radius:var(--radius-full);background:var(--danger-soft);width:24px;height:24px;color:var(--danger);cursor:pointer;font-size:15px}.mobile-picker-subject-tabs{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:none;align-items:center;gap:7px;min-height:36px;padding-bottom:2px;display:flex;overflow:auto hidden}.mobile-picker-subject-tabs button{border:1px solid color-mix(in srgb, var(--line-soft) 68%, transparent);border-radius:var(--radius-full);background:color-mix(in srgb, var(--surface-elevated) 90%, var(--bg-base));height:34px;color:var(--text-primary);cursor:pointer;white-space:nowrap;flex:none;padding:0 12px;font-size:12px;font-weight:800;line-height:1}.mobile-picker-subject-tabs .mobile-picker-manage{background:color-mix(in srgb, var(--accent-blue) 8%, var(--surface-elevated));color:var(--accent-blue)}.mobile-picker-full{border:1px dashed var(--line-primary);background:var(--surface-strong);color:var(--text-secondary);text-align:center;border-radius:13px;flex:none;padding:8px 10px;font-size:12px}.mobile-picker-search{border:1px solid color-mix(in srgb, var(--line-soft) 66%, transparent);border-radius:var(--radius-full);background:color-mix(in srgb, var(--surface-elevated) 92%, var(--bg-base));width:100%;min-height:38px;color:var(--text-primary);outline:none;flex:none;padding:0 14px;font-size:13px}.mobile-picker-course-scroll{overscroll-behavior:contain;flex-direction:column;flex:auto;gap:8px;min-height:0;padding-right:2px;display:flex;overflow-y:auto}.mobile-picker-empty{border:1px solid var(--line-soft);background:var(--surface-strong);color:var(--text-secondary);text-align:center;border-radius:13px;padding:14px 12px;font-size:13px}.mobile-picker-group{background:0 0;border:none;border-radius:18px;flex:none;overflow:visible}.mobile-picker-group-header{border:1px solid color-mix(in srgb, var(--line-soft) 66%, transparent);background:color-mix(in srgb, var(--surface-elevated) 92%, var(--bg-base));width:100%;min-height:44px;color:var(--text-primary);cursor:pointer;font-family:var(--font-body);text-align:left;border-radius:18px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;font-size:13px;font-weight:800;display:grid;box-shadow:inset 0 1px #ffffff3d}.mobile-picker-group-header:hover{background:color-mix(in srgb, var(--surface-soft) 94%, var(--bg-base))}.mobile-picker-group-header span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.mobile-picker-group-header em{border:1px solid color-mix(in srgb, var(--line-soft) 70%, transparent);border-radius:var(--radius-full);background:color-mix(in srgb, var(--surface-strong) 92%, var(--bg-base));min-width:34px;color:var(--text-secondary);text-align:center;flex:none;padding:3px 7px;font-size:11px;font-style:normal;font-weight:700}.mobile-picker-group-body{flex-direction:column;gap:7px;padding:7px 0 0;display:flex}.mobile-picker-item{border:1px solid color-mix(in srgb, var(--line-soft) 62%, transparent);background:color-mix(in srgb, var(--surface-soft) 92%, var(--bg-base));cursor:pointer;width:100%;min-height:42px;font-family:var(--font-body);text-align:left;border-radius:16px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;display:grid}.mobile-picker-item:disabled{cursor:not-allowed;opacity:.5}.mobile-picker-item-name{font-size:13px}.mobile-picker-item-duration{color:var(--text-secondary);white-space:nowrap;font-size:11px}@media (width<=390px){.mobile-picker-panel{padding:12px 10px calc(12px + var(--safe-bottom));gap:10px}.mobile-picker-header{gap:8px}.mobile-picker-done{padding:0 12px}.mobile-picker-selected,.mobile-picker-directory{border-radius:15px}.mobile-picker-selected{padding:0}.mobile-picker-directory{padding:9px}}.btn{min-height:var(--control-height-sm);border-radius:var(--radius-inner-control);font-size:13px;font-weight:700;font-family:var(--font-body);cursor:pointer;white-space:nowrap;letter-spacing:0;box-shadow:none;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 14px;line-height:1;transition:transform .16s,background-color .18s,border-color .18s,color .18s,box-shadow .18s,opacity .18s;display:inline-flex}.btn:active{transform:scale(.985)}.btn:disabled{cursor:not-allowed;opacity:.55}.btn-primary{border-color:color-mix(in srgb, #fff 24%, var(--color-action-primary));background:linear-gradient(180deg, color-mix(in srgb, var(--color-action-primary) 92%, #fff 8%), var(--color-action-primary));color:var(--color-action-label-primary);box-shadow:0 10px 22px color-mix(in srgb, var(--color-action-primary) 20%, transparent), inset 0 1px 0 #ffffff47}.btn-primary:hover{filter:none;box-shadow:0 13px 26px color-mix(in srgb, var(--color-action-primary) 26%, transparent), inset 0 1px 0 #ffffff57}.btn-secondary,.btn-outline{background:color-mix(in srgb, var(--surface-elevated) 88%, transparent);color:var(--text-primary);border-color:var(--line-soft);box-shadow:var(--shadow-apple-soft)}.btn-secondary:hover,.btn-outline:hover{background:var(--surface-strong);border-color:var(--line-primary)}.btn-danger,.btn-danger-outline{background:color-mix(in srgb, var(--danger-soft) 56%, transparent);color:var(--danger);border-color:#ff3b3038}.btn-danger:hover,.btn-danger-outline:hover{background:var(--danger-soft);border-color:#ff3b3052}.btn-icon,.btn-icon-only{width:var(--control-height-sm);min-width:var(--control-height-sm);height:var(--control-height-sm);min-height:var(--control-height-sm);background:color-mix(in srgb, var(--surface-elevated) 84%, transparent);color:var(--text-secondary);border:1px solid var(--line-soft);border-radius:50%;padding:0}.btn-icon:hover,.btn-icon-only:hover{background:var(--surface-soft);color:var(--text-primary)}.segmented-control{min-height:var(--control-height-md);border:1px solid var(--line-soft);border-radius:var(--radius-full);background:color-mix(in srgb, var(--surface-soft) 88%, transparent);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:4px;padding:4px;display:inline-grid}.segmented-control button{min-height:calc(var(--control-height-md) - 10px);border-radius:var(--radius-full);color:var(--text-secondary);cursor:pointer;font:inherit;background:0 0;border:0;font-size:13px;font-weight:720}.segmented-control button[aria-pressed=true],.segmented-control button.active{background:var(--surface-elevated);color:var(--accent-blue);box-shadow:var(--shadow-apple-soft)}.page-shell{width:min(var(--page-max-width), 100%);margin-inline:auto}.action-menu{background:var(--surface-elevated);border:1px solid var(--line-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-strong);z-index:1000;-webkit-backdrop-filter:blur(22px);flex-direction:column;gap:4px;min-width:240px;padding:10px;display:none;position:absolute;top:calc(100% + 8px);right:0}.action-menu.open{display:flex}.action-menu-title{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;padding:6px 10px 4px;font-size:11px;font-weight:700}.action-menu-btn{border-radius:var(--radius-md);cursor:pointer;text-align:left;font-family:var(--font-body);color:var(--text-primary);background:0 0;border:none;flex-direction:column;gap:2px;padding:9px 10px;display:flex}.action-menu-btn strong{font-size:13px;font-weight:600}.action-menu-btn span{color:var(--text-secondary);font-size:11px;line-height:1.4}.action-menu-btn:hover{background:var(--surface-soft)}.action-menu-btn.danger-menu-btn strong{color:var(--danger)}.action-menu-btn.danger-menu-btn:hover{background:var(--danger-soft)}.action-menu-btn.danger-menu-btn span{color:color-mix(in srgb, var(--danger) 66%, var(--text-secondary))}.surface-shell{background:var(--surface-elevated);border:1px solid var(--line-soft);border-radius:var(--radius-xl);box-shadow:var(--shadow-strong);-webkit-backdrop-filter:saturate(180%)blur(22px)}.panel-shell{background:color-mix(in srgb, var(--surface-glass-strong) 90%, transparent);border:1px solid var(--line-soft);border-radius:var(--radius-xl);box-shadow:var(--shadow-apple-soft);-webkit-backdrop-filter:var(--blur-glass-effect)}.dialog-shell{background:var(--surface-strong);border-radius:var(--radius-xl);box-shadow:var(--shadow-strong);border:1px solid var(--line-soft)}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:56px 24px;display:flex}.empty-state-title{color:var(--text-primary);margin:0;font-size:17px;font-weight:600}.empty-state-copy{color:var(--text-secondary);max-width:300px;margin:0;font-size:14px;line-height:1.6}.empty-state-action{border-radius:var(--radius-full);background:var(--color-action-primary);min-height:38px;color:var(--color-action-label-primary);cursor:pointer;border:none;margin-top:6px;padding:0 18px;font-size:14px;font-weight:600;box-shadow:0 10px 24px #007aff29}.course-manager-backdrop{z-index:3000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0000006b;position:fixed;inset:0}.course-manager-shell{z-index:3001;background:color-mix(in srgb, var(--surface-strong) 96%, transparent);border:1px solid var(--line-soft);width:min(920px,100vw - 24px);max-height:min(86vh,820px);box-shadow:var(--shadow-strong);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border-radius:22px;flex-direction:column;display:flex;position:fixed;inset:50% auto auto 50%;overflow:hidden;transform:translate(-50%,-50%)}.course-manager-header{border-bottom:1px solid var(--line-soft);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px 14px;display:flex}.course-manager-header h3{letter-spacing:0;margin:0;font-size:18px;font-weight:760}.course-manager-header p{color:var(--text-secondary);margin:4px 0 0;font-size:12px}.course-manager-header-actions{flex:none;align-items:center;gap:8px;display:flex}.course-manager-tabs{scrollbar-width:none;flex:0 0 56px;align-items:center;gap:8px;height:56px;padding:12px 20px 10px;display:flex;overflow:auto hidden}.course-manager-tabs::-webkit-scrollbar{display:none}.mobile-picker-subject-tabs::-webkit-scrollbar{display:none}.course-manager-tabs button{border:1px solid var(--line-soft);border-radius:var(--radius-full);background:var(--surface-soft);color:var(--text-secondary);white-space:nowrap;cursor:pointer;flex:none;min-height:34px;padding:8px 14px;font-weight:700}.course-manager-tabs button.active{background:var(--color-action-primary);color:var(--color-action-label-primary);border-color:#0000}.course-manager-body{flex:auto;grid-template-columns:250px minmax(0,1fr);gap:14px;min-height:0;padding:12px 16px 16px;display:grid;overflow:hidden}.course-manager-subjects,.course-manager-panel,.manager-card-list,.manager-editor{min-width:0}.course-manager-subjects{border:1px solid var(--line-soft);border-radius:var(--radius-inner-control);background:color-mix(in srgb, var(--surface-elevated) 74%, transparent);flex-direction:column;flex:none;align-self:stretch;gap:4px;padding:10px;display:flex;overflow-y:auto}.manager-category-node{gap:2px;display:grid}.course-manager-subjects .manager-section-filter{border-radius:var(--radius-dense-item);background:color-mix(in srgb, var(--surface-glass) 42%, transparent);width:100%;min-width:0;min-height:38px;color:var(--text-primary);font-family:var(--font-body);text-align:left;cursor:pointer;border:1px solid #0000;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 10px;transition:background-color .16s,border-color .16s,color .16s;display:grid;box-shadow:inset 0 1px #fff3}.course-manager-subjects .manager-section-filter.selected{background:color-mix(in srgb, var(--accent-blue) 10%, var(--surface-elevated));border-color:color-mix(in srgb, var(--accent-blue) 22%, var(--line-soft));color:var(--accent-blue)}.manager-tree-label{align-items:center;gap:8px;min-width:0;display:flex}.manager-tree-label b{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:700;overflow:hidden}.course-manager-subjects .manager-section-filter small{border:1px solid color-mix(in srgb, var(--line-soft) 72%, transparent);border-radius:var(--radius-full);background:color-mix(in srgb, var(--surface-soft) 88%, transparent);min-width:22px;color:var(--text-secondary);text-align:center;padding:2px 6px;font-size:10.5px;font-weight:760}.course-manager-subjects .manager-section-filter.selected small{background:color-mix(in srgb, var(--accent-blue) 14%, transparent);color:currentColor}.course-manager-subjects .manager-tree-color{border-radius:50%;flex-shrink:0;width:8px;height:8px}.manager-filter-divider{background:var(--line-soft);height:1px;margin:7px 0 5px}.course-manager-panel{align-content:start;gap:12px;padding-right:2px;display:grid;overflow-y:auto}.manager-category-float-btn{display:none}.course-browser-body{flex-direction:column;flex:auto;gap:12px;min-height:0;padding:14px 16px 16px;display:flex}.course-browser-toolbar{flex:none;gap:9px;display:grid}.course-browser-chip-row{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:7px;padding-bottom:1px;display:flex;overflow:auto hidden}.course-browser-chip-row::-webkit-scrollbar{display:none}.course-browser-chip{--course-browser-chip-color:var(--accent-blue);border:1px solid var(--line-soft);border-radius:var(--radius-full);background:var(--surface-soft);max-width:min(72vw,280px);min-height:32px;color:var(--text-primary);cursor:pointer;font-family:var(--font-body);white-space:nowrap;flex:none;align-items:center;gap:6px;padding:0 11px;font-size:12px;font-weight:760;line-height:1;display:inline-flex}.course-browser-chip.active{background:var(--course-browser-chip-color);color:#fff;border-color:#0000}.course-browser-chip small{border-radius:var(--radius-full);background:color-mix(in srgb, currentColor 12%, transparent);min-width:20px;padding:2px 6px;font-size:10px;font-weight:820}.course-browser-search{border-radius:var(--radius-full);height:40px}.course-browser-list{overscroll-behavior:contain;flex-direction:column;flex:auto;gap:9px;min-height:0;padding-right:2px;display:flex;overflow-y:auto}.course-browser-card{--manager-row-accent:var(--accent-blue);border:1px solid var(--line-soft);background:linear-gradient(90deg, color-mix(in srgb, var(--manager-row-accent) 12%, transparent), transparent 46%), var(--surface-soft);width:100%;color:var(--text-primary);cursor:pointer;font-family:var(--font-body);text-align:left;border-radius:16px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:7px 9px;padding:13px 13px 12px;display:grid}.course-browser-card-seq{border-radius:var(--radius-full);background:color-mix(in srgb, var(--manager-row-accent) 14%, var(--surface-elevated));min-width:36px;color:var(--manager-row-accent);text-align:center;grid-row:1/span 2;margin-top:1px;padding:3px 7px;font-size:11px;font-weight:840;line-height:1.25}.course-browser-card strong{min-width:0;color:var(--text-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:16.5px;font-weight:780;line-height:1.35;display:-webkit-box;overflow:hidden}.course-browser-card-meta,.course-browser-card-remark{min-width:0;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650;line-height:1.35;overflow:hidden}.course-browser-card-remark{color:var(--accent-blue);grid-column:2}.course-browser-empty{justify-content:center;min-height:92px}.course-browser-detail-backdrop{z-index:3002;background:#00000047;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.course-browser-detail-sheet{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-strong) 96%, transparent);width:100%;max-height:min(72dvh,560px);padding:10px 16px calc(16px + var(--safe-bottom));-webkit-backdrop-filter:blur(22px)saturate(170%);border-bottom:none;border-radius:22px 22px 0 0;overflow-y:auto;box-shadow:0 -24px 70px #0f172a33}.course-browser-detail-handle{border-radius:var(--radius-full);background:var(--line-primary);width:38px;height:4px;margin:0 auto 12px}.course-browser-detail-sheet header{gap:5px;margin-bottom:14px;display:grid}.course-browser-detail-sheet header span{color:var(--accent-blue);font-size:12px;font-weight:760}.course-browser-detail-sheet h3{color:var(--text-primary);font-family:var(--font-display);font-size:21px;font-weight:800;line-height:1.3}.course-browser-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.course-browser-detail-grid div{border:1px solid var(--line-soft);background:var(--surface-soft);border-radius:14px;gap:4px;min-width:0;padding:10px;display:grid}.course-browser-detail-grid span{color:var(--text-tertiary);font-size:11px;font-weight:760}.course-browser-detail-grid strong{overflow-wrap:anywhere;min-width:0;color:var(--text-primary);font-size:14px;font-weight:760}.course-browser-detail-remark{border:1px solid var(--line-soft);background:var(--surface-soft);color:var(--text-secondary);white-space:pre-wrap;border-radius:14px;margin-top:10px;padding:12px;font-size:14px;line-height:1.65}.course-browser-detail-sheet footer{background:color-mix(in srgb, var(--surface-strong) 94%, transparent);grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;padding-top:8px;display:grid;position:sticky;bottom:0}.manager-section-title{min-height:34px;color:var(--text-primary);flex:none;align-items:center;font-size:13px;font-weight:800;display:flex}.manager-section-title-with-action{justify-content:space-between;gap:10px}.manager-section-title-with-action>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.manager-category-title-button{border-radius:var(--radius-full);min-width:0;min-height:30px;color:var(--text-primary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;flex:auto;padding:0;font-weight:800;line-height:1}.manager-category-titlebar{z-index:1;background:color-mix(in srgb, var(--surface-elevated) 84%, transparent);-webkit-backdrop-filter:var(--blur-glass-effect);padding:0 2px 6px;position:sticky;top:0}.manager-section-actions{flex:none;align-items:center;gap:7px;display:inline-flex}.manager-category-title-actions{flex:none;align-items:center;gap:6px;display:inline-flex}.manager-category-title-actions .manager-collapse-btn{min-height:28px;padding:4px 9px;font-size:11px}.manager-collapse-btn{border-radius:var(--radius-full);border:1px solid var(--line-soft);background:var(--surface-elevated);min-height:30px;color:var(--text-primary);font-size:12px;font-weight:700;font-family:var(--font-body);cursor:pointer;flex:none;padding:5px 11px;line-height:1}.manager-collapse-btn:hover{background:var(--surface-strong);border-color:var(--line-primary)}.manager-card-list,.manager-editor{gap:10px;display:grid}.manager-card-list{grid-template-columns:minmax(0,1fr);align-content:start}.manager-card-list>.manager-form-row,.manager-card-list>.manager-form-row-wide,.manager-card-list>.manager-control,.manager-card-list>.manager-list-toolbar,.manager-card-list>.manager-card-list-empty{grid-column:1/-1}.manager-course-layout{gap:14px;display:grid}.manager-empty-inline{border:1px dashed var(--line-primary);border-radius:var(--radius-md);background:var(--surface-strong);color:var(--text-secondary);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:flex}.manager-category-empty{border-style:solid;border-color:color-mix(in srgb, var(--accent-blue) 18%, var(--line-soft));border-radius:var(--radius-outer-card);background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--accent-blue) 10%, transparent), transparent 56%), color-mix(in srgb, var(--surface-glass-strong) 86%, transparent);min-height:138px;box-shadow:var(--shadow-apple-soft);text-align:center;align-content:center;justify-items:center;gap:13px;padding:18px 14px;display:grid}.manager-category-empty>div{gap:4px;display:grid}.manager-category-empty strong{color:var(--text-primary);font-size:15px;font-weight:820}.manager-category-empty span{color:var(--text-secondary);font-size:12px;line-height:1.45}.manager-category-pick-empty{min-height:96px;color:var(--text-secondary);justify-content:center;font-size:15px;font-weight:760}.manager-category-summary{--manager-row-accent:var(--accent-blue);border:1px solid var(--line-soft);background:linear-gradient(90deg, color-mix(in srgb, var(--manager-row-accent) 9%, transparent), transparent 56%), color-mix(in srgb, var(--surface-soft) 78%, transparent);border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 14px;padding:12px 14px;display:grid}.manager-category-summary-left,.manager-category-summary-right{min-width:0}.manager-category-summary-right{justify-content:flex-end;display:flex}.manager-category-summary-main{align-items:center;gap:9px;min-width:0;display:flex}.manager-category-summary-main strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-primary);font-size:17px;font-weight:760;line-height:1.25;overflow:hidden}.manager-category-summary-main small{border-radius:var(--radius-full);background:color-mix(in srgb, var(--manager-row-accent) 10%, var(--surface-elevated));color:var(--text-secondary);flex:none;padding:3px 8px;font-size:11px;font-weight:760}.manager-category-summary-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;display:flex}.manager-category-color-dot{border:3px solid var(--surface-elevated);border-radius:var(--radius-full);width:31px;height:31px;box-shadow:0 0 0 1px var(--line-soft), var(--shadow-apple-soft);cursor:pointer;flex:0 0 31px}.manager-category-more-wrap{flex:none;position:relative}.manager-category-more-menu{z-index:8;border:1px solid var(--line-soft);border-radius:var(--radius-inner-control);background:color-mix(in srgb, var(--surface-strong) 96%, transparent);width:max-content;min-width:128px;box-shadow:var(--shadow-apple-float);-webkit-backdrop-filter:var(--blur-glass-effect);gap:4px;padding:7px;display:grid;position:absolute;top:calc(100% + 7px);right:0}.manager-category-more-menu button{border-radius:var(--radius-dense-item);min-height:32px;color:var(--text-primary);font-family:var(--font-body);text-align:left;cursor:pointer;background:0 0;border:0;padding:0 10px;font-size:12px;font-weight:720}.manager-category-more-menu button:hover{background:var(--surface-soft)}.manager-category-summary-colors{background:color-mix(in srgb, var(--surface-elevated) 72%, transparent);grid-column:1/-1;justify-content:flex-start;min-height:34px;padding:4px 6px}.manager-category-summary-colors .manager-category-color-swatch{border-width:2px;width:22px;height:22px}.manager-danger-text{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 26%, var(--line-soft))}.manager-editor{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-soft) 82%, transparent);border-radius:14px;padding:12px;overflow:hidden}.manager-compact-panel{gap:10px}.manager-editor-collapsed{gap:0}.manager-editor-body{gap:10px;display:grid}.manager-editor-body[hidden]{display:none}.manager-form-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.manager-form-row-wide{grid-template-columns:160px minmax(0,1fr) minmax(168px,auto) auto}.manager-control{box-sizing:border-box;border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-elevated) 88%, transparent);width:100%;min-width:0;height:40px;color:var(--text-primary);font-size:14px;font-family:var(--font-body);border-radius:11px;outline:none;padding:0 12px;font-weight:500;box-shadow:inset 0 1px #ffffff0a}.manager-control::placeholder{color:var(--text-tertiary);opacity:1;font-weight:500}.manager-control:focus{border-color:var(--accent-blue);background:var(--surface-strong);box-shadow:0 0 0 3px #007aff24,inset 0 1px #ffffff0f}.manager-form-grid{grid-template-columns:minmax(0,1fr) 160px;gap:10px;display:grid}.manager-course-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.manager-control-name{grid-column:1/-1;min-width:0}.manager-remark-row{grid-column:1/-1;gap:6px;display:grid}.manager-remark-row label{color:var(--text-secondary);font-size:12px;font-weight:700}.manager-remark-control{resize:vertical;white-space:pre-wrap;height:auto;min-height:94px;padding:10px 12px;line-height:1.55}.manager-color-row{flex-wrap:wrap;gap:8px;display:flex}.manager-category-color-picker{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-elevated) 88%, transparent);border-radius:11px;flex-wrap:wrap;align-items:center;gap:7px;min-height:40px;padding:5px 7px;display:flex}.manager-category-color-swatch{width:26px;height:26px;box-shadow:0 0 0 1px var(--line-soft);cursor:pointer;border:3px solid #0000;border-radius:50%}.manager-category-color-swatch.selected{border-color:var(--surface-strong);box-shadow:0 0 0 2px var(--accent-blue)}.manager-color-row button{width:28px;height:28px;box-shadow:0 0 0 1px var(--line-soft);cursor:pointer;border:3px solid #0000;border-radius:50%}.manager-color-row button.selected{border-color:var(--surface-strong);box-shadow:0 0 0 2px var(--accent-blue)}.manager-editor-color-control{border:1px solid var(--line-soft);border-radius:var(--radius-inner-control);background:color-mix(in srgb, var(--surface-elevated) 78%, transparent);grid-column:1/-1;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:8px;min-height:42px;padding:6px 8px;display:grid}.manager-editor-color-control>span{color:var(--text-secondary);font-size:12px;font-weight:760}.manager-editor-color-dot{border:3px solid var(--surface-elevated);border-radius:var(--radius-full);width:30px;height:30px;box-shadow:0 0 0 1px var(--line-soft), var(--shadow-apple-soft);cursor:pointer}.manager-editor-color-row{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;min-width:0;display:flex}.manager-editor-color-row button{width:24px;height:24px;box-shadow:0 0 0 1px var(--line-soft);cursor:pointer;border:3px solid #0000;border-radius:50%}.manager-editor-color-row button.selected{border-color:var(--surface-strong);box-shadow:0 0 0 2px var(--accent-blue)}.manager-actions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding-top:2px;display:grid}.manager-form-hint{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-secondary);margin-right:auto;font-size:11px;overflow:hidden}.manager-action-buttons{grid-auto-columns:minmax(70px,auto);grid-auto-flow:column;align-items:center;gap:7px;display:grid}.manager-actions .btn{border-radius:var(--radius-full);white-space:nowrap;min-height:34px;padding-inline:13px}.manager-row{--manager-row-accent:var(--accent-blue);border:1px solid color-mix(in srgb, var(--line-soft) 86%, transparent);border-radius:var(--radius-dense-item);background:color-mix(in srgb, var(--surface-elevated) 84%, transparent);min-height:58px;box-shadow:none;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:10px;padding:10px;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid;position:relative;overflow:hidden}.manager-row:before{content:"";border-radius:0 var(--radius-full) var(--radius-full) 0;background:var(--manager-row-accent);width:3px;position:absolute;top:12px;bottom:12px;left:0}.manager-row:hover{border-color:color-mix(in srgb, var(--manager-row-accent) 28%, var(--line-soft));background:color-mix(in srgb, var(--surface-elevated) 86%, transparent);box-shadow:none;transform:none}.manager-row-draggable{cursor:grab}.manager-row-draggable:active{cursor:grabbing}.manager-row-selectable{cursor:default;grid-template-columns:auto minmax(0,1fr) auto}.manager-row-dragging{opacity:.72;border-style:dashed;transform:translateY(-2px)scale(1.01);box-shadow:inset 0 1px #ffffffb3,0 18px 38px #0f172a29}.manager-row-dragging:hover{transform:translateY(-2px)scale(1.01)}.manager-row-drop-target{border-color:color-mix(in srgb, var(--accent-blue) 58%, var(--line-soft));background:linear-gradient(90deg, color-mix(in srgb, var(--accent-blue) 15%, transparent), transparent 46%), var(--surface-soft)}.manager-row-drop-target:after{content:"";border-radius:var(--radius-full);background:var(--accent-blue);height:3px;box-shadow:0 0 0 4px color-mix(in srgb, var(--accent-blue) 14%, transparent);position:absolute;top:5px;left:12px;right:12px}.manager-drag-hint{border:1px solid var(--line-soft);border-radius:var(--radius-full);background:color-mix(in srgb, var(--surface-elevated) 82%, transparent);min-height:30px;color:var(--text-secondary);align-items:center;padding:0 11px;font-size:12px;font-weight:680;transition:border-color .16s,background-color .16s,color .16s;display:flex}.manager-drag-hint-active{border-color:color-mix(in srgb, var(--accent-blue) 36%, var(--line-soft));background:color-mix(in srgb, var(--accent-blue) 10%, var(--surface-elevated));color:var(--accent-blue)}.manager-bulk-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.manager-list-toolbar{box-sizing:border-box;grid-template-columns:auto minmax(180px,1fr);align-items:center;gap:10px;width:100%;min-width:0;display:grid}.manager-list-toolbar .manager-control{box-sizing:border-box;width:100%;min-width:0;max-width:100%}.manager-list-toolbar .manager-bulk-toolbar{min-width:0;max-width:100%}.manager-bulk-hint{color:var(--text-secondary);font-size:12px;font-weight:680}.manager-row-check{border-radius:var(--radius-full);background:var(--surface-elevated);border:1px solid var(--line-soft);z-index:1;align-self:center;place-items:center;width:28px;height:28px;display:grid}.manager-row-check input{width:16px;height:16px;accent-color:var(--accent-blue)}.manager-row-main{align-content:center;gap:5px;min-width:0;padding-left:8px;display:grid}.manager-row-title{align-items:center;gap:8px;min-width:0;display:flex}.manager-row-main .manager-row-seq{border-radius:var(--radius-full);background:color-mix(in srgb, var(--manager-row-accent) 14%, var(--surface-elevated));min-width:34px;color:var(--manager-row-accent);text-align:center;text-overflow:clip;white-space:nowrap;flex:none;padding:2px 7px;font-size:11px;font-weight:800;overflow:visible}.manager-row-main strong,.manager-row-main span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.manager-row-main strong{color:var(--text-primary);font-size:14px;line-height:1.3}.manager-row-main span{color:var(--text-secondary);font-size:11.5px}.manager-row-actions{border-left:1px solid var(--line-soft);grid-template-columns:repeat(2,minmax(58px,auto));align-content:center;align-items:center;gap:7px;padding-left:10px;display:grid}.manager-row-actions .btn{white-space:nowrap;border-radius:9px;min-height:30px;padding:6px 10px}.manager-row-stats{grid-column:1/-1;justify-content:flex-end;display:flex}.manager-row-stats-badge{border:.5px solid color-mix(in srgb, var(--accent-blue) 22%, transparent);background:color-mix(in srgb, var(--accent-blue) 10%, transparent);color:var(--accent-blue);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:720;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.manager-row-stats-badge[data-done]{border-color:color-mix(in srgb, var(--accent-green) 26%, transparent);background:color-mix(in srgb, var(--accent-green) 12%, transparent);color:var(--accent-green)}.manager-row-stats-check{font-size:10px;font-weight:800;line-height:1}.course-ocr-overlay{z-index:3300;-webkit-backdrop-filter:blur(18px)saturate(150%);background:#00000057;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.course-ocr-sheet{width:min(980px,100vw - 24px);max-height:min(760px, calc(var(--app-stable-viewport-height) - 24px));border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-strong) 97%, transparent);padding:14px 16px calc(16px + var(--safe-bottom));-webkit-backdrop-filter:blur(22px)saturate(170%);border-bottom:none;border-radius:22px 22px 0 0;flex-direction:column;gap:12px;display:flex;overflow:hidden;box-shadow:0 -26px 70px #0f172a38}.course-ocr-sheet-preview{max-height:min(820px, calc(var(--app-stable-viewport-height) - 16px))}.course-ocr-header,.course-ocr-footer,.course-ocr-actions,.course-ocr-preview-title,.course-ocr-preview-toolbar{flex:none;justify-content:space-between;align-items:center;gap:10px;display:flex}.course-ocr-header h2{color:var(--text-primary);font-family:var(--font-display);font-size:17px;font-weight:800;line-height:1.2}.course-ocr-header p,.course-ocr-preview-title span,.course-ocr-row-meta{color:var(--text-secondary);font-size:12px;line-height:1.45}.course-ocr-defaults{flex:none;grid-template-columns:minmax(0,180px) minmax(0,1fr);gap:8px;display:grid}.course-ocr-defaults label{color:var(--text-secondary);gap:5px;font-size:11px;font-weight:760;display:grid}.course-ocr-defaults select,.course-ocr-defaults input,.course-ocr-raw textarea,.course-ocr-row-fields input,.course-ocr-row-fields select{border:1px solid var(--line-soft);background:var(--surface-elevated);width:100%;min-width:0;color:var(--text-primary);font-family:var(--font-body);border-radius:12px;outline:none;font-size:13px}.course-ocr-defaults select,.course-ocr-defaults input,.course-ocr-row-fields input,.course-ocr-row-fields select{height:36px;padding:0 10px}.course-ocr-actions{justify-content:flex-start}.course-ocr-error{background:var(--danger-soft);color:var(--danger);border:1px solid #ff3b303d;border-radius:13px;flex:none;padding:9px 11px;font-size:13px;font-weight:700}.course-ocr-raw{flex:none;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.course-ocr-raw-main{flex-direction:column;flex:auto;align-items:stretch;min-height:0;display:flex}.course-ocr-raw-title{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.course-ocr-raw-title strong{color:var(--text-primary);font-size:14px;font-weight:820}.course-ocr-raw-title span{color:var(--text-secondary);font-size:12px;line-height:1.4}.course-ocr-raw textarea{resize:vertical;min-height:82px;padding:10px 12px;line-height:1.5}.course-ocr-raw-main textarea{resize:none;flex:auto;min-height:240px}.course-ocr-preview-toolbar{border:1px solid var(--line-soft);background:var(--surface-soft);border-radius:16px;align-items:center;padding:8px 10px}.course-ocr-preview-toolbar .course-ocr-preview-title{flex:auto}.course-ocr-preview{flex-direction:column;flex:auto;gap:8px;min-height:0;display:flex}.course-ocr-preview-title strong{color:var(--text-primary);font-size:14px;font-weight:820}.course-ocr-empty{border:1px dashed var(--line-primary);background:var(--surface-soft);min-height:110px;color:var(--text-secondary);text-align:center;border-radius:16px;justify-content:center;align-items:center;font-size:13px;display:flex}.course-ocr-row-list{flex-direction:column;flex:auto;gap:8px;min-height:0;padding-right:2px;display:flex;overflow-y:auto}.course-ocr-row{border:1px solid var(--line-soft);background:var(--surface-soft);border-radius:15px;gap:7px;padding:10px;display:grid}.course-ocr-row-warning{border-color:color-mix(in srgb, var(--warning) 34%, var(--line-soft))}.course-ocr-row-heading{border-color:color-mix(in srgb, var(--accent-blue) 28%, var(--line-soft));background:color-mix(in srgb, var(--accent-blue) 9%, var(--surface-soft))}.course-ocr-row-muted{opacity:.74;background:color-mix(in srgb, var(--surface-soft) 72%, var(--surface-elevated))}.course-ocr-row-error{border-color:color-mix(in srgb, var(--danger) 42%, var(--line-soft));background:color-mix(in srgb, var(--danger-soft) 46%, var(--surface-soft))}.course-ocr-row-summary{min-width:0;color:var(--text-secondary);align-items:center;gap:8px;font-size:12px;line-height:1.3;display:flex}.course-ocr-row-summary strong{background:var(--surface-elevated);color:var(--text-primary);border-radius:999px;flex:none;padding:3px 7px;font-size:11px;font-weight:820}.course-ocr-row-summary b{color:var(--accent-blue);flex:none;font-size:11px;font-weight:820}.course-ocr-row-summary span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.course-ocr-row-summary em{color:var(--text-tertiary);flex:none;font-style:normal;font-weight:760}.course-ocr-row-fields{grid-template-columns:72px 130px minmax(120px,.8fr) minmax(180px,1.4fr) 86px 76px 104px auto;align-items:center;gap:7px;display:grid}.course-ocr-row-meta{gap:3px;display:grid}.course-ocr-row-meta span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.course-ocr-row-meta em{color:var(--warning);font-style:normal;font-weight:760}.course-ocr-row-error .course-ocr-row-meta em{color:var(--danger)}.course-ocr-footer{justify-content:flex-end;padding-top:2px}@media (width<=768px){html,body,#root{height:100dvh;min-height:100dvh}body{overflow:hidden}.app{height:100dvh;min-height:100dvh;padding:0 0 var(--safe-bottom);border-radius:0;gap:0}body.app-keyboard-visible,body.app-keyboard-visible #root,body.app-keyboard-visible .app{height:var(--app-stable-viewport-height);min-height:var(--app-stable-viewport-height)}.btn{min-height:32px;padding:7px 12px;font-size:12px}.header-scheduled-count{display:none!important}.header-sync-status{text-overflow:ellipsis;place-self:center end;max-width:104px;overflow:hidden}.course-manager-shell{width:auto;max-height:none;height:calc(var(--app-stable-viewport-height) - 16px);border-radius:var(--radius-bottom-sheet);inset:8px;transform:none}.course-manager-shell-browse{height:calc(var(--app-stable-viewport-height) - 12px);border-radius:var(--radius-bottom-sheet);inset:6px}body.app-has-tabbar .course-manager-shell,body.app-has-tabbar .course-manager-shell-browse{inset:max(8px, var(--safe-top)) 8px var(--app-tabbar-sheet-bottom) 8px;bottom:var(--app-tabbar-sheet-bottom);height:auto;max-height:calc(var(--app-stable-viewport-height) - var(--app-tabbar-sheet-bottom) - var(--safe-top) - 8px);border-radius:var(--radius-bottom-sheet);box-shadow:0 12px 28px #00000038,inset 0 1px #ffffff1a}body.app-keyboard-visible.app-has-tabbar .course-manager-shell,body.app-keyboard-visible.app-has-tabbar .course-manager-shell-browse{max-height:calc(var(--app-stable-viewport-height) - var(--safe-top) - 16px);bottom:8px}.course-manager-header{padding:14px}.course-manager-header p{display:none}.course-manager-tabs{flex-basis:52px;height:52px;padding:9px 14px}.course-manager-body{flex-direction:column;flex:auto;gap:10px;padding:10px 12px 14px;display:flex;overflow:hidden auto}.course-browser-body{padding:10px 12px calc(12px + var(--safe-bottom))}.course-browser-toolbar{z-index:1;background:color-mix(in srgb, var(--surface-strong) 94%, transparent);padding-bottom:2px;position:sticky;top:0}.course-browser-list{gap:8px;padding-right:0}.course-browser-card{min-height:84px;padding:13px 12px}.course-manager-subjects{z-index:4;visibility:visible;opacity:1;box-sizing:border-box;scrollbar-width:thin;background:color-mix(in srgb, var(--surface-strong) 96%, transparent);flex-direction:column;flex:none;align-items:stretch;width:100%;min-height:118px;max-height:min(34dvh,220px);padding:8px;position:sticky;top:0;overflow:hidden auto;box-shadow:0 8px 18px #0000001f;display:flex!important}.course-manager-subjects-overview{max-height:none}.course-manager-subjects-collapsed{display:none!important}.manager-category-float-btn{z-index:5;border:1px solid var(--line-soft);border-radius:var(--radius-full);background:color-mix(in srgb, var(--surface-strong) 94%, transparent);width:fit-content;min-height:34px;color:var(--accent-blue);font-family:var(--font-body);box-shadow:var(--shadow-apple-soft);-webkit-backdrop-filter:var(--blur-glass-effect);justify-content:center;align-items:center;padding:0 14px;font-size:13px;font-weight:820;display:inline-flex;position:sticky;top:0}.course-manager-subjects .manager-section-title{z-index:1;white-space:nowrap;background:color-mix(in srgb, var(--surface-strong) 96%, transparent);flex:none;width:auto;height:26px;min-height:26px;position:sticky;top:-8px}.course-manager-subjects::-webkit-scrollbar{display:none}.course-manager-subjects .manager-section-filter{min-height:38px}.manager-category-summary{grid-template-columns:minmax(148px,1fr) minmax(148px,38%);gap:10px;padding:12px}.manager-category-summary-main{gap:4px;display:grid}.manager-category-summary-main strong{white-space:normal}.manager-category-summary-main small{white-space:nowrap;width:fit-content}.manager-category-summary-actions{grid-template-columns:repeat(2,minmax(74px,1fr));justify-content:stretch;align-items:center;width:100%;display:grid}.manager-category-summary-actions .manager-collapse-btn{width:100%}.manager-category-color-dot{justify-self:center}.manager-category-more-menu{right:0}.course-manager-panel{gap:10px;overflow:visible}.manager-list-toolbar{grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:8px;max-width:100%;padding-inline-end:8px}.manager-list-toolbar .manager-bulk-toolbar{min-width:0;max-width:100%}.manager-form-row,.manager-form-row-wide,.manager-form-grid,.manager-course-form-grid{grid-template-columns:1fr}.manager-row{grid-template-columns:minmax(0,1fr);gap:8px;min-height:0;padding:10px}.manager-row.manager-row-draggable{grid-template-columns:minmax(0,1fr) auto;align-items:center}.manager-row.manager-row-selectable{grid-template-columns:auto minmax(0,1fr) auto}.manager-card-list{grid-template-columns:minmax(0,1fr);gap:8px}.manager-row-title{align-items:flex-start}.manager-row-main strong{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:16px;line-height:1.35;display:-webkit-box;overflow:hidden}.manager-row-main span{text-overflow:clip;white-space:normal;font-size:12px;line-height:1.35;overflow:visible}.manager-row-actions{border-left:1px solid var(--line-soft);border-top:none;grid-template-columns:minmax(58px,auto);align-content:center;align-self:center;justify-items:end;padding-top:0;padding-left:10px}.manager-row-actions .btn{width:auto;min-width:58px;min-height:32px;padding:5px 8px;font-size:12px}.manager-row-stats{grid-column:1/-1;justify-content:flex-end}.manager-actions{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.manager-action-buttons{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row;grid-auto-columns:unset}.manager-form-hint{margin-right:0}.manager-editor-color-control{grid-template-columns:auto auto}.manager-editor-color-row{grid-column:1/-1;justify-content:flex-start}.manager-section-actions{gap:5px}.manager-section-actions .manager-collapse-btn{padding:5px 9px}.course-ocr-sheet{width:100vw;max-height:calc(var(--app-stable-viewport-height) - 10px);padding:12px 12px calc(12px + var(--safe-bottom));border-radius:22px 22px 0 0}.course-ocr-header{align-items:flex-start}.course-ocr-header p{display:none}.course-ocr-defaults,.course-ocr-raw{grid-template-columns:1fr}.course-ocr-raw-main{display:flex}.course-ocr-raw-title{flex-direction:column;align-items:flex-start;gap:3px}.course-ocr-raw-main textarea{min-height:300px}.course-ocr-preview-toolbar{flex-direction:column;align-items:stretch}.course-ocr-actions,.course-ocr-footer{grid-template-columns:1fr 1fr;display:grid}.course-ocr-row-fields{grid-template-columns:72px minmax(0,1fr)}.course-ocr-row-fields input[aria-label=课程名],.course-ocr-row-fields input[aria-label=分类路径],.course-ocr-row-fields select[aria-label=顶层分类],.course-ocr-row-fields input[aria-label=颜色]{grid-column:1/-1}.course-ocr-row-fields .btn{width:100%}}body.app-has-tabbar .mobile-picker-panel{inset:max(8px, var(--safe-top)) 8px var(--app-tabbar-sheet-bottom) 8px;bottom:var(--app-tabbar-sheet-bottom);width:auto;height:auto;max-height:calc(var(--app-stable-viewport-height) - var(--app-tabbar-sheet-bottom) - var(--safe-top) - 8px);border-radius:var(--radius-bottom-sheet);margin-bottom:0;padding-bottom:14px;position:fixed}body.app-keyboard-visible.app-has-tabbar .mobile-picker-panel{max-height:calc(var(--app-stable-viewport-height) - var(--safe-top) - 16px);bottom:8px}._tabBar_go7uq_1{left:max(12px, var(--safe-left));right:max(12px, var(--safe-right));bottom:var(--app-tabbar-floating-bottom);z-index:860;width:min(440px, calc(100vw - 24px - var(--safe-left) - var(--safe-right)));grid-template-columns:repeat(var(--app-tab-count,5), minmax(0, 1fr));border:1px solid color-mix(in srgb, var(--line-primary) 62%, transparent);border-radius:var(--radius-full);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-elevated) 88%, transparent), color-mix(in srgb, var(--surface-soft) 76%, transparent)), color-mix(in srgb, var(--surface-elevated) 82%, transparent);-webkit-backdrop-filter:blur(32px)saturate(190%);will-change:opacity, transform;grid-auto-rows:1fr;grid-auto-flow:column;gap:4px;min-height:66px;margin:0 auto;padding:7px;transition:opacity .2s,transform .22s;display:grid;position:fixed;overflow:hidden;box-shadow:0 20px 54px #0f172a29,inset 0 1px #ffffff47}._hidden_go7uq_33{opacity:0;pointer-events:none;transform:translateY(calc(100% + var(--app-tabbar-floating-bottom) + 18px))}._tabItem_go7uq_39{min-width:0;min-height:52px;color:var(--text-tertiary);white-space:nowrap;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:760;text-decoration:none;transition:transform .18s,box-shadow .18s,color .18s;display:inline-flex;position:relative;overflow:hidden}._tabItem_go7uq_39:before{content:"";z-index:-1;opacity:0;background:0 0;border-radius:19px;transition:opacity .18s;position:absolute;inset:3px}._tabItem_go7uq_39 svg{flex:none;width:22px;height:22px}._tabItem_go7uq_39 span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}._tabItem_go7uq_39:active{transform:scale(.96)}._active_go7uq_89{color:var(--accent-blue)}._active_go7uq_89:before{opacity:1;border:1px solid color-mix(in srgb, var(--accent-blue) 20%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-elevated) 92%, transparent), color-mix(in srgb, var(--accent-blue) 9%, transparent)), color-mix(in srgb, var(--accent-blue) 12%, transparent);-webkit-backdrop-filter:blur(18px)saturate(160%);box-shadow:0 10px 22px #007aff1f,inset 0 1px #ffffff75}body.touch-dragging ._tabBar_go7uq_1,body.calendar-event-dragging ._tabBar_go7uq_1,body.sidebar-resizing ._tabBar_go7uq_1{pointer-events:none;opacity:.18}@media (width<=390px){._tabBar_go7uq_1{border-radius:var(--radius-full);gap:2px;min-height:60px;padding:6px}._tabItem_go7uq_39{border-radius:18px;gap:2px;min-height:48px;font-size:10px}._tabItem_go7uq_39:before{border-radius:16px;inset:2px}._tabItem_go7uq_39 svg{width:20px;height:20px}}
