html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}:root{--bg: #f5f6fa;--panel: #ffffff;--panel-soft: #fafbfd;--border: #e8eaf0;--border-strong: #d9dce6;--text: #1f2333;--text-soft: #4b5162;--muted: #8a90a2;--brand: #4f46e5;--brand-soft: #eef0ff;--brand-strong: #4338ca;--ok: #16a34a;--warn: #d97706;--danger: #dc2626;--shadow-sm: 0 1px 2px rgba(20, 24, 40, .04);--shadow: 0 2px 12px rgba(20, 24, 40, .06);--radius: 12px;--sider-w: 216px;--header-h: 60px;--fc-today-bg-color: rgba(79, 70, 229, .05)}:root[data-theme=dark]{--bg: #14161d;--panel: #1b1e27;--panel-soft: #20232d;--border: #2a2e3a;--border-strong: #363b49;--text: #e7e9f2;--text-soft: #b9bfd0;--muted: #8b92a5;--brand: #7c74ff;--brand-soft: #262a3f;--brand-strong: #9a93ff;--ok: #4ade80;--warn: #fbbf24;--danger: #f87171;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 2px 14px rgba(0, 0, 0, .45);--fc-today-bg-color: rgba(124, 116, 255, .1)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,Hiragino Sans GB,Source Han Sans SC,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#c9cdd9;border-radius:8px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#aeb4c4;background-clip:content-box}.ant-app{height:100%}.app-shell{display:flex;height:100%;min-height:0;overflow:hidden}.app-shell>*{min-height:0}.app-sider{width:var(--sider-w);flex:0 0 var(--sider-w);background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;transition:width .16s ease,flex-basis .16s ease;overflow:hidden}.app-sider .ant-layout-sider-children{display:flex;flex-direction:column;height:100%;min-height:0}.app-sider.collapsed{width:64px;flex-basis:64px}.app-brand{display:flex;align-items:center;gap:10px;height:var(--header-h);padding:0 16px;border-bottom:1px solid var(--border);flex:0 0 auto}.app-brand .logo-img{width:30px;height:30px;border-radius:8px;display:block;box-shadow:0 2px 6px #0f172a2e}.app-brand .logo{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#6366f1,#4338ca);font-weight:700;flex:0 0 auto}.app-brand .brand-text{font-weight:650;font-size:15px;white-space:nowrap;letter-spacing:.2px}.sider-nav{flex:1 1 auto;overflow-y:auto;padding:8px}.sider-foot{flex:0 0 auto;border-top:1px solid var(--border);padding:10px 14px;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:10px;height:40px;padding:0 12px;border-radius:9px;color:var(--text-soft);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border:none;background:transparent;width:100%;text-align:left;font-size:14px}.nav-item:hover{background:#f3f5fa;color:var(--text)}.nav-item.active{background:var(--brand-soft);color:var(--brand-strong);font-weight:600}.nav-item .nav-icon{font-size:16px;display:inline-flex;width:18px;justify-content:center;flex:0 0 auto}.nav-item .nav-label{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}.nav-item .nav-caret{font-size:11px;color:var(--muted);transition:transform .15s ease}.nav-item .nav-caret.open{transform:rotate(90deg)}.nav-children{display:flex;flex-direction:column;gap:1px;padding:2px 0 4px}.nav-child{display:block;padding:7px 12px 7px 40px;border-radius:8px;color:var(--muted);text-decoration:none;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-child:hover{background:#f5f6fb;color:var(--text)}.nav-child.active{color:var(--brand-strong);background:var(--brand-soft);font-weight:600}.app-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;height:100%;overflow:hidden}.app-header{height:var(--header-h);flex:0 0 var(--header-h);background:var(--panel);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;padding:0 20px}.header-titles{display:flex;flex-direction:column;min-width:0}.header-title{font-size:16px;font-weight:650;line-height:1.25}.header-sub{font-size:12px;color:var(--muted);line-height:1.4}.header-spacer{flex:1 1 auto}.header-date{color:var(--muted);font-size:13px;white-space:nowrap}.app-content{flex:1 1 auto;overflow:auto;padding:20px 24px 32px}.app-content.flush{padding:0;overflow:hidden;display:flex;flex-direction:column}.page{max-width:1280px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.page.wide{max-width:none}.page-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:16px 18px}.card-title{font-size:14px;font-weight:650;display:flex;align-items:center;gap:8px}.card-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}.card-head .spacer{flex:1 1 auto}.muted{color:var(--muted)}.small{font-size:12px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-sm)}.stat .stat-label{font-size:12px;color:var(--muted);margin-bottom:6px}.stat .stat-value{font-size:22px;font-weight:700;line-height:1.2}.stat .stat-extra{font-size:12px;color:var(--muted);margin-top:4px}.empty-state{padding:44px 16px;text-align:center;color:var(--muted)}.empty-state .empty-icon{font-size:30px;opacity:.4;margin-bottom:8px}.event-row{display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border-radius:9px;cursor:pointer}.event-row:hover{background:#f6f7fb}.event-bar{width:4px;border-radius:4px;align-self:stretch;flex:0 0 4px;min-height:30px}.event-main{flex:1 1 auto;min-width:0}.event-title{font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-meta{font-size:12px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}.event-time{font-size:12px;color:var(--text-soft);white-space:nowrap;font-variant-numeric:tabular-nums;padding-top:2px}.calendar-shell{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;background:var(--panel);border-radius:var(--radius);border:1px solid var(--border);margin:16px 24px 24px;overflow:hidden;box-shadow:var(--shadow-sm)}.calendar-shell .fc{flex:1 1 auto;min-height:0;--fc-border-color: var(--border);--fc-page-bg-color: #fff;--fc-neutral-bg-color: #f7f8fc;--fc-today-bg-color: rgba(79, 70, 229, .05);font-size:13px}.calendar-shell .fc .fc-toolbar-title{font-size:16px;font-weight:650}.calendar-shell .fc .fc-button{background:#fff;border-color:var(--border-strong);color:var(--text-soft);box-shadow:none;font-size:12.5px;padding:5px 10px;text-transform:none}.calendar-shell .fc .fc-button:hover{background:#f6f7fb;border-color:var(--border-strong);color:var(--text)}.calendar-shell .fc .fc-button-primary:not(:disabled).fc-button-active,.calendar-shell .fc .fc-button-primary:not(:disabled):active{background:var(--brand);border-color:var(--brand);color:#fff}.calendar-shell .fc .fc-button:focus{box-shadow:none}.calendar-shell .fc-theme-standard td,.calendar-shell .fc-theme-standard th{border-color:var(--border)}.calendar-shell .fc .fc-col-header-cell-cushion{padding:8px 4px;color:var(--text-soft);font-weight:600}.calendar-shell .fc .fc-timegrid-slot-label{color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums}.calendar-shell .fc-event{border:none;border-radius:6px;padding:1px 4px;font-size:12px;cursor:pointer}.calendar-shell .fc-event-title{font-weight:600}.calendar-shell .fc-timegrid-event-harness>.fc-event{box-shadow:0 1px 2px #1418281f}.calendar-shell .fc-list-day-cushion{background:#f7f8fc}.drawer-form .ant-form-item{margin-bottom:14px}.detail-grid{display:grid;grid-template-columns:84px 1fr;gap:10px 12px;font-size:13px}.detail-grid dt{color:var(--muted)}.detail-grid dd{margin:0;color:var(--text);word-break:break-word}.timetable{display:grid;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--panel)}.timetable-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-height:62px;padding:3px;position:relative}.timetable-cell.empty{background:#fbfcfe}.tt-head{background:#f7f8fc;font-weight:600;color:var(--text-soft);text-align:center;padding:9px 4px;font-size:12.5px}.tt-period{background:#f7f8fc;font-size:11.5px;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;line-height:1.35}.tt-course{position:relative;z-index:1;border-radius:7px;padding:5px 7px;color:#fff;height:100%;display:flex;flex-direction:column;gap:2px;overflow:hidden;cursor:pointer}.tt-course .tt-name{font-weight:650;font-size:12.5px;line-height:1.3}.tt-course .tt-sub{font-size:11px;opacity:.9;line-height:1.3}.week-col{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;min-height:180px;overflow:hidden}.week-col-head{padding:9px 10px;border-bottom:1px solid var(--border);font-size:12.5px;display:flex;align-items:baseline;gap:6px;background:#fafbfe}.week-col-head .day{font-weight:650}.week-col-body{padding:8px;display:flex;flex-direction:column;gap:6px;flex:1 1 auto}.plan-chip{border-radius:8px;padding:7px 9px;font-size:12.5px;cursor:pointer;border:1px solid transparent;line-height:1.4}.plan-chip.train{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.plan-chip.rest{background:#f4f5f8;border-color:#e3e5ec;color:#6b7280}.plan-chip .chip-title{font-weight:650}.kanban{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px}.kanban-col{background:#f7f8fc;border:1px solid var(--border);border-radius:var(--radius);padding:10px;min-height:240px;display:flex;flex-direction:column;gap:8px}.kanban-col-head{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:650;color:var(--text-soft);padding:2px 4px 4px}.kanban-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 11px;box-shadow:var(--shadow-sm);cursor:grab;display:flex;flex-direction:column;gap:6px}.kanban-card:active{cursor:grabbing}.kanban-card.dragging{opacity:.5}.kanban-card .k-title{font-size:13px;font-weight:600;line-height:1.35}.kanban-card .k-meta{font-size:11.5px;color:var(--muted);display:flex;justify-content:space-between;gap:6px}.kanban-col.over{background:var(--brand-soft);border-color:var(--brand)}.setting-row{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:1px dashed var(--border)}.setting-row:last-child{border-bottom:none}.setting-row .label{width:180px;flex:0 0 180px;font-size:13px;color:var(--text-soft)}.setting-row .control{flex:1 1 auto;min-width:0}.setting-row .hint{font-size:12px;color:var(--muted);margin-top:4px}@media (max-width: 1100px){:root{--sider-w: 64px}.app-brand .brand-text,.nav-item .nav-label,.nav-item .nav-caret,.sider-foot,.nav-child{display:none}.app-brand,.nav-item{justify-content:center;padding:0}.kanban{grid-template-columns:repeat(2,minmax(220px,1fr))}}.form-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.form-row>label{min-width:92px;color:var(--text-soft);font-size:13px}.period-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px 18px}.period-row{display:flex;align-items:center;gap:8px}.period-row .period-no{min-width:56px;font-size:12.5px;color:var(--muted)}.slot-editor{display:flex;flex-direction:column;gap:8px}.slot-editor-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fbfcfe}.slot-summary{color:var(--muted);font-size:12.5px;line-height:1.5}.kanban-head{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:650;color:var(--text-soft);padding:2px 4px}.kanban-dot{width:8px;height:8px;border-radius:50%}.kanban-body{display:flex;flex-direction:column;gap:8px;flex:1;min-height:120px}.kanban-title{font-size:13px;font-weight:600;line-height:1.4}.kanban-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.kanban-course{font-size:11.5px;color:var(--brand);background:var(--brand-soft);border-radius:5px;padding:1px 6px}.kanban-due{font-size:11.5px;color:var(--muted)}.kanban-due.late{color:#cf1322;font-weight:600}.kanban-plan{font-size:11px;color:var(--muted)}.kanban-card.late{border-left:3px solid #ff4d4f}.cell-strong{font-weight:600;color:var(--text)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.subject-card{display:flex;flex-direction:column;gap:8px}.subject-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.subject-exams{display:flex;flex-direction:column;gap:6px;border-top:1px dashed var(--border);padding-top:8px}.subject-exam{display:flex;flex-direction:column;gap:1px}.competition-list{display:flex;flex-direction:column;gap:12px}.competition-card{display:flex;flex-direction:column;gap:10px}.competition-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.competition-name{font-size:15px;margin-bottom:2px}.competition-progress{display:flex;align-items:center;gap:12px}.competition-progress .ant-progress{flex:1;margin:0}.stage-list{display:flex;flex-direction:column;gap:6px;border-top:1px dashed var(--border);padding-top:8px}.stage-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.stage-title{font-weight:600}.stage-row.done .stage-title{color:var(--muted);text-decoration:line-through}.stage-content{flex-basis:100%;padding-left:24px}.stage-done{color:var(--muted);text-decoration:line-through}.stage-editor-head{display:flex;align-items:center;justify-content:space-between;margin:4px 0 8px}.stage-editor{display:flex;flex-direction:column;gap:8px}.stage-editor-row{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--border);border-radius:8px}.stage-editor-line,.exercise-row{display:flex;align-items:center;gap:6px}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.week-col{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:10px;min-height:220px;display:flex;flex-direction:column;gap:8px}.week-col.today{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}.week-col-head{display:flex;align-items:baseline;justify-content:space-between;font-size:12.5px;font-weight:650;color:var(--text-soft)}.workout-card{background:#f6ffed;border:1px solid #b7eb8f;border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:6px;cursor:pointer}.workout-card.rest{background:#fafafa;border-color:var(--border)}.workout-head{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap}.workout-exercises{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:3px;font-size:12px}.workout-exercises li{display:flex;justify-content:space-between;gap:6px}.week-add{border:1px dashed var(--border);background:transparent;border-radius:8px;padding:8px;color:var(--muted);cursor:pointer;font-size:12px}.week-add:hover{border-color:var(--brand);color:var(--brand)}.log-entries{display:flex;flex-direction:column;gap:3px}.log-entry{display:flex;gap:8px;align-items:baseline}.log-editor-entry{border:1px solid var(--border);border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:8px}.log-editor-head{display:flex;align-items:center;gap:6px}.log-sets{display:flex;flex-direction:column;gap:6px}.log-set{display:grid;grid-template-columns:56px minmax(0,.85fr) minmax(0,1fr);align-items:center;gap:8px}.log-set>span{white-space:nowrap}.log-set .stepper{width:100%}.log-set .stepper-field{flex:1 1 auto;justify-content:center}.log-set .ant-input-affix-wrapper{width:84px}.today-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}@media (max-width: 1180px){.today-grid{grid-template-columns:1fr}}.header-search{display:inline-flex;align-items:center;justify-content:flex-start;gap:7px;box-sizing:border-box;width:178px;height:32px;padding:0 10px;margin-right:12px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--muted);font-size:13px;cursor:pointer;overflow:hidden;white-space:nowrap}.header-search>span{flex:0 0 auto;text-align:left}.header-search:hover{border-color:var(--brand);color:var(--brand)}.header-search kbd{flex:none;margin-left:auto;font-family:inherit;font-size:11px;line-height:1;padding:0;border:none;border-radius:0;background:transparent;color:var(--muted);opacity:.7;letter-spacing:.02em}.search-hit{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer}.search-hit:hover{background:var(--brand-soft)}.search-hit-title{font-weight:500}.count-chips{display:flex;flex-wrap:wrap;gap:6px}.stepper{display:inline-flex;align-items:center;gap:6px}.stepper-btn{width:36px;height:36px;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;border:1px solid var(--border);background:var(--panel);color:var(--text);font-size:14px;cursor:pointer;transition:background .15s,border-color .15s,transform .08s}.stepper-btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.stepper-btn:active:not(:disabled){transform:scale(.94);background:var(--brand-soft, rgba(79, 70, 229, .12))}.stepper-btn:disabled{opacity:.45;cursor:not-allowed}.stepper-field{display:inline-flex;align-items:center;gap:2px;height:36px;padding:0 8px;border:1px solid var(--border);border-radius:9px;background:var(--panel)}.stepper-field:focus-within{border-color:var(--brand)}.stepper-input{width:48px;border:none;outline:none;background:transparent;color:var(--text);font-size:15px;font-variant-numeric:tabular-nums;text-align:center}.stepper-suffix{color:var(--muted);font-size:12px}.log-set .stepper-btn{width:34px;height:34px}.form-row-2{display:flex;align-items:flex-start;gap:12px;width:100%}.form-row-2>.ant-form-item{flex:1 1 0;min-width:0;margin-bottom:16px}.purge-block{border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:12px}.purge-block-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.purge-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 10px}@media (max-width: 900px){.purge-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}.purge-group{align-items:flex-start;margin-inline-start:0;padding:6px 8px;border-radius:8px;line-height:1.4}.purge-group:hover{background:var(--brand-soft, rgba(79, 70, 229, .08))}.purge-group-label{display:block;font-size:13px;color:var(--text)}.purge-group-hint{display:block;font-size:11px;color:var(--muted)}.purge-skip{margin-top:8px;font-size:12px;color:#d46b08}.purge-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}.purge-footer-left{display:flex;align-items:center;gap:8px}.purge-summary{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0}.lib-collapse{background:transparent}.lib-collapse .ant-collapse-item{background:var(--panel);border:1px solid var(--border);border-radius:12px;margin-bottom:10px;overflow:hidden}.lib-collapse .ant-collapse-header{align-items:center!important;padding:10px 14px!important}.lib-collapse .ant-collapse-content-box{padding:2px 14px 8px!important}.lib-head{display:inline-flex;align-items:center;gap:8px}.lib-dot{width:8px;height:8px;border-radius:50%;background:var(--brand)}.lib-list{display:flex;flex-direction:column}.lib-row{display:flex;align-items:center;gap:10px;padding:3px 2px;border-bottom:1px dashed var(--border)}.lib-row:last-child{border-bottom:none}.lib-name{font-weight:500}.lib-note{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.part-checks{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.hint-box{background:var(--brand-soft);border-radius:10px;padding:10px 12px;font-size:12px;color:var(--text);opacity:.85;line-height:1.6}.week-col.drag-over{outline:2px dashed var(--brand);outline-offset:-2px;background:var(--brand-soft)}.part-block{background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden;cursor:grab}.part-block:active{cursor:grabbing}.part-block-head{display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--fill-2, rgba(15, 23, 42, .04));border-bottom:1px solid var(--border)}.part-dot{width:7px;height:7px;border-radius:50%;background:#52c41a;flex:none}.part-title{font-weight:600;font-size:13px}.part-block-body{display:flex;flex-direction:column;gap:2px;padding:6px}.part-row{display:flex;flex-direction:column;gap:1px;padding:3px 4px;border-radius:6px;cursor:pointer}.part-row:hover{background:var(--brand-soft)}.part-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.part-meta{font-size:12px;color:var(--muted);white-space:nowrap}.part-weight{color:#389e0d}.part-weight.zero{color:var(--muted)}.week-paste{border-style:dashed;color:var(--brand)}.week-rest{font-size:12px}.rest-head{font-weight:600;margin-bottom:2px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 10%,#eef0ff 0,transparent 55%),radial-gradient(circle at 85% 85%,#f2f6ff 0,transparent 55%),#f5f6fa}.login-card{width:min(420px,100%);box-shadow:0 18px 50px #171a2b1f;border-radius:18px}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:18px}.login-hint{margin:16px 0 0!important;font-size:12px;line-height:1.7;word-break:break-all}@media (max-width: 768px){.app-sider,.app-sider.collapsed{width:56px!important;min-width:56px!important;max-width:56px!important;flex:0 0 56px!important}.app-sider .brand-text,.app-sider .nav-label,.app-sider .nav-caret,.app-sider .nav-children,.app-sider .sider-foot{display:none!important}.app-header{padding:0 8px;gap:4px}.header-search,.theme-switch,.header-date{display:none!important}.header-title{font-size:15px}.page{padding:10px}.card-pad,.card-head{padding-left:12px;padding-right:12px}.calendar-shell{padding:0 6px 6px}.fc .fc-toolbar{flex-wrap:wrap;row-gap:6px}.fc .fc-toolbar-title{font-size:15px!important}.fc .fc-button{padding:2px 8px}}.sync-badge{margin:0;cursor:default;font-size:12px;border-radius:999px}
