:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#26324a;background:#f5f7fb}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}.shell{display:flex;min-height:100vh}.sidebar{width:232px;flex:none;background:#fff;border-right:1px solid #e7ebf1;padding:30px 16px;display:flex;flex-direction:column;gap:44px}.brand{display:flex;align-items:center;gap:10px;padding:0 10px}.brand-mark{width:36px;height:36px;border-radius:11px;background:#2768d8;color:white;display:grid;place-items:center;font-size:22px}.brand strong{display:block;font-size:16px}.brand small{display:block;color:#8994a7;margin-top:2px}.sidebar nav{display:grid;gap:5px}.nav{border:0;background:transparent;color:#657188;border-radius:10px;padding:12px 14px;text-align:left;font-size:17px;display:flex;gap:13px;align-items:center}.nav span{font-size:14px}.nav:hover,.nav.active{background:#eaf2ff;color:#1f60cb;font-weight:650}.sidebar-note{margin-top:auto;background:#f3f6fb;border-radius:12px;padding:16px;font-size:12px;color:#657188;line-height:1.55}.sidebar-note b{color:#34425a}.sidebar-note p{margin:5px 0 0}.main{width:100%;min-width:0;padding:34px min(4vw,60px) 60px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.eyebrow{font-size:10px;letter-spacing:.2em;color:#7690b5;font-weight:750}.topbar h1{font-size:30px;letter-spacing:-.04em;margin:6px 0}.topbar p,.section-toolbar p,.panel-head p{color:#8894a6;font-size:13px;margin:4px 0 0}.top-actions{display:flex;align-items:center;gap:16px}.date-chip{background:white;border:1px solid #e5eaf1;border-radius:9px;padding:10px 14px;font-size:12px;color:#69778b}.avatar{width:38px;height:38px;border-radius:50%;background:#dce9fd;color:#2863bd;font-size:10px;font-weight:800;display:grid;place-items:center}.page{display:none}.page.active{display:block}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:20px}.stat,.panel{background:#fff;border:1px solid #e8ecf2;border-radius:15px;box-shadow:0 3px 16px #24355005}.stat{padding:24px}.stat span{font-size:13px;color:#8793a5}.stat strong{display:block;font-size:30px;margin:9px 0;color:#26324a}.stat small{font-size:11px;color:#9ba6b5}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel{padding:24px;margin-bottom:20px}.panel h2{font-size:17px;margin-bottom:5px}.panel p{line-height:1.55}.panel-head,.section-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px}.panel-head{margin-bottom:18px}.section-toolbar{margin-bottom:22px}.section-toolbar h2{font-size:22px;margin-bottom:5px}.toolbar-actions{display:flex;gap:10px}.button{display:inline-flex;justify-content:center;align-items:center;gap:6px;background:#2868d7;color:white;border:1px solid #2868d7;border-radius:9px;padding:10px 15px;font-weight:650;font-size:13px;text-decoration:none;white-space:nowrap}.button:hover{background:#1c59c3}.button.secondary{background:white;color:#52627b;border-color:#dce3ed}.button.secondary:hover{background:#f4f7fb}.file-button input{display:none}.text-button{background:none;border:0;color:#2768d8;font-size:12px;font-weight:700}.calendar-controls{display:flex;align-items:center;gap:14px;margin-bottom:18px}.calendar-controls h3{font-size:17px;margin:0 3px}.calendar-controls .text-button{margin-left:auto}.icon-button{border:1px solid #e2e7ef;background:#fff;border-radius:8px;width:31px;height:31px;font-size:20px;line-height:1;color:#718099}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekday{border-bottom:1px solid #edf0f5;text-align:center;color:#99a4b3;font-size:12px;padding:8px 0 13px}.days .day{min-height:93px;border-right:1px solid #eef1f5;border-bottom:1px solid #eef1f5;background:#fff;text-align:left;padding:8px;min-width:0}.days .day:nth-child(7n){border-right:0}.days .day.muted{background:#fbfcfd;color:#c0c8d3}.days .day.selected{background:#f0f6ff}.days .day.today .day-number{background:#2868d7;color:white}.day-number{display:grid;place-items:center;width:23px;height:23px;border-radius:7px;font-size:12px}.day-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 5px;border-radius:4px;margin-top:4px;font-size:10px;background:#e8f0ff;color:#2d64bb}.day-label.holiday{background:#fff0ed;color:#d36153}.day-label.workday{background:#e9f6eb;color:#398454}.day-label.more{background:none;color:#8c97a8}.compact{padding-bottom:14px}.record{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #f0f2f6;font-size:13px}.record:first-child{border-top:0}.record .color-dot{width:9px;height:9px;flex:none;border-radius:50%}.record-main{flex:1;min-width:0}.record-main b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.record-main small{display:block;color:#9aa4b2;margin-top:4px}.empty{color:#a0aab8;text-align:center;padding:28px 8px;font-size:13px}.filter-row{display:flex;gap:8px;margin:0 0 16px}.filter{border:1px solid #e1e7ef;background:white;color:#778397;border-radius:8px;padding:8px 14px;font-size:12px}.filter.active{background:#e9f1ff;border-color:#cfe0fd;color:#2665cb;font-weight:700}.task-list{display:grid;gap:10px}.task-card{background:white;border:1px solid #e6ebf2;border-radius:12px;padding:16px;display:flex;gap:14px;align-items:flex-start}.task-card.overdue{border:2px solid #e06464;background:#fffafa}.task-card.dragging{opacity:.45}.drag-handle{color:#aab4c1;cursor:grab;line-height:23px}.task-body{flex:1}.task-body strong{font-size:14px}.task-meta{display:flex;gap:9px;flex-wrap:wrap;color:#98a3b2;font-size:11px;margin-top:6px}.pill{padding:2px 7px;border-radius:5px;background:#edf3ff;color:#4773bb}.pill.urgent{background:#fff0e8;color:#d26a36}.task-note{font-size:12px;color:#748198;margin:9px 0 0;white-space:pre-wrap}.task-actions{display:flex;gap:5px;flex-wrap:wrap}.task-actions button,.row-action{background:none;border:0;color:#4c73b5;font-size:11px;padding:5px}.task-actions button:hover,.row-action:hover{text-decoration:underline}.notice{background:#edf5ff;border:1px solid #d7e8ff;border-radius:10px;padding:12px 15px;color:#5273a1;font-size:12px;margin-bottom:20px;display:flex;gap:10px}.notice b{color:#2e5b98}.finance-stats{margin-bottom:20px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:650px}th{text-align:left;font-size:11px;color:#98a3b3;font-weight:650;padding:12px 9px;border-bottom:1px solid #edf0f4}td{font-size:12px;color:#526078;padding:15px 9px;border-bottom:1px solid #f0f2f5;vertical-align:middle}td b{color:#26324a}.amount.negative{color:#d35d60}.amount.positive{color:#328664}.status{border-radius:5px;padding:4px 7px;background:#fff5de;color:#a67c1b;font-size:11px}.status.done{background:#e7f6ec;color:#368359}.salary-panel{display:flex;justify-content:space-between;align-items:center}.salary-panel p{font-size:12px;color:#8490a1;margin:0}.lock{font-size:12px;color:#718099;background:#f2f5f9;padding:9px 12px;border-radius:7px}.panel ul{color:#69788e;font-size:13px;line-height:2;padding-left:18px}.panel code{font-size:12px;background:#f2f5f9;padding:2px 4px;border-radius:4px}dialog{border:1px solid #e4e9f1;border-radius:15px;box-shadow:0 18px 70px #142b4e2e;width:min(480px,calc(100vw - 32px));padding:24px}dialog::backdrop{background:#1c294877}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.dialog-head h2{margin:0;font-size:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:grid;gap:5px;margin-bottom:12px}.field.full{grid-column:1/-1}.field label{font-size:12px;font-weight:650;color:#57657b}.field input,.field select,.field textarea{border:1px solid #dce3ec;border-radius:8px;padding:10px;width:100%;background:white;color:#28364e;font-size:13px}.field textarea{resize:vertical;min-height:72px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:13px}@media(max-width:800px){.sidebar{width:65px;padding:20px 8px}.brand{padding:0;justify-content:center}.brand div,.nav span,.sidebar-note{display:none}.nav{justify-content:center;padding:10px}.main{padding:25px 18px}.topbar h1{font-size:25px}.grid-two{grid-template-columns:1fr}.stats{gap:8px}.stat{padding:16px}.stat strong{font-size:24px}.section-toolbar{align-items:flex-start;flex-direction:column}.days .day{min-height:65px}.day-label{font-size:8px}}@media(max-width:520px){.stats{grid-template-columns:1fr 1fr}.stats .stat:last-child{grid-column:1/-1}.date-chip{display:none}.toolbar-actions{width:100%;flex-wrap:wrap}.notice{display:block}.days .day{padding:3px;min-height:56px}.day-label{font-size:7px;padding:2px}.task-card{padding:11px}.task-actions{flex-direction:column}}
:root{color-scheme:light}.calendar-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;color:#718096;font-size:12px;margin:-7px 0 15px}.calendar-legend{display:flex;align-items:center;gap:7px;white-space:nowrap}.calendar-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-left:10px}.calendar-legend i:first-child{margin-left:0}.legend-holiday{background:#d80b29}.legend-workday{background:#5ea76c}.legend-event{background:#1bb5bd}.calendar-panel{background:#111214;color:#f4f5f7;border-color:#242528;padding:0;overflow:hidden;box-shadow:0 12px 30px #24355016}.calendar-panel .calendar-controls{padding:20px 22px;margin:0;border-bottom:1px solid #292b2e}.calendar-panel .calendar-controls h3{color:#f5f5f7}.calendar-panel .icon-button{background:#222428;border-color:#3a3c40;color:#f5f5f7}.calendar-panel .text-button{color:#bfcbe0}.calendar-panel .weekday{padding:15px 0;background:#141516;border-bottom:1px solid #292b2e;color:#919399;font-weight:700;font-size:13px}.calendar-panel .days .day{background:#111214;color:#eff0f2;border-color:#2b2d30;min-height:135px;padding:12px;text-align:left;display:flex;flex-direction:column;gap:4px}.calendar-panel .days .day:hover{background:#1b1d20}.calendar-panel .days .day.muted{background:#101113;color:#666a70}.calendar-panel .days .day.selected{background:#1f2022;box-shadow:inset 0 0 0 1px #5c636c}.calendar-panel .day-top{display:flex;flex-direction:column;align-items:center;align-self:center;gap:5px;margin-bottom:9px}.calendar-panel .day-number{width:27px;height:27px;font-size:17px;font-weight:700}.calendar-panel .day.today .day-number{background:#fff;color:#17191c;border-radius:50%}.calendar-panel .day.sunday .day-number,.calendar-panel .day.official-holiday:not(.saturday) .day-number{color:#e23a46}.calendar-panel .day.saturday .day-number{color:#498dff}.calendar-panel .day.today .day-number{color:#17191c}.calendar-panel .lunar-date{font-size:12px;color:#777b82}.calendar-panel .day-label{width:100%;display:flex;align-items:center;gap:5px;min-height:23px;margin:0;padding:3px 7px;border-radius:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#202329;color:#eceef1;font-size:12px;font-weight:600}.calendar-panel .day-label small{margin-left:auto;color:#95989e;font-size:10px;font-weight:400}.calendar-panel .day-label i{width:8px;height:8px;border-radius:50%;flex:none}.calendar-panel .day-label.holiday{background:#c90022;color:#fff}.calendar-panel .day-label.workday{background:#206e42;color:#fff}.calendar-panel .day-label.more{background:none;color:#989da6;font-weight:400}.office-status{display:inline-block;margin-bottom:12px;padding:6px 10px;border-radius:6px;background:#edf2f8;color:#52667e;font-size:12px}@media(max-width:900px){.calendar-meta{align-items:flex-start;flex-direction:column}.calendar-panel .days .day{min-height:105px;padding:6px}.calendar-panel .day-label{font-size:10px}.calendar-panel .day-label small{display:none}}@media(max-width:560px){.calendar-legend{flex-wrap:wrap;white-space:normal}}
@media(max-width:560px){.calendar-panel{overflow:hidden}.calendar-panel .calendar-controls,.calendar-panel .weekday,.calendar-panel .days{min-width:0}.calendar-panel .days .day{min-height:72px;padding:3px}.calendar-panel .day-number{font-size:13px;width:22px;height:22px}.calendar-panel .lunar-date{font-size:9px}.calendar-panel .day-top{gap:0;margin-bottom:2px}.calendar-panel .day-label{min-height:5px;height:5px;font-size:0;line-height:0;padding:0;margin-top:2px;border-radius:3px}.calendar-panel .day-label.event{background:#2bb6bf}.calendar-panel .day-label.event i,.calendar-panel .day-label small{display:none}.calendar-panel .day-label.more{display:none}.calendar-panel .weekday{font-size:10px}.calendar-panel .calendar-controls{padding:14px 8px;gap:7px}.calendar-panel .calendar-controls h3{font-size:14px}.calendar-panel .text-button{font-size:10px}.calendar-meta:after{content:'點選日期查看完整事項';font-size:11px;color:#8995a5}}
