#calendar-view *{box-sizing:border-box}#calendar-view button{cursor:pointer;font-family:inherit}#calendar-view main{min-width:0}#calendar-view header{height:74px}#calendar-view .page{max-width:1700px;margin:auto;padding:32px}#calendar-view .page-heading{align-items:center}#calendar-view .page-heading h1{font-size:30px}#calendar-view .preview-tag{font-size:12px;border:1px solid #ead8c4;padding:6px 10px;border-radius:20px;color:#85684f}#calendar-view .calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}#calendar-view .calendar-panel,#calendar-view .day-panel{background:#fffefd;border:1px solid #eedfd2;border-radius:22px;overflow:hidden;box-shadow:0 8px 30px #78482606}#calendar-view .month-toolbar{display:flex;justify-content:space-between;align-items:center;padding:22px 22px 14px;gap:10px}#calendar-view .month-heading{display:flex;align-items:center;gap:12px}#calendar-view .month-heading h2{font-size:23px;margin:0;color:#623f2b}#calendar-view .month-icon{background:#ffebd7;color:#af531f;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;font-size:24px}#calendar-view .month-actions{display:flex;gap:6px}#calendar-view .month-actions button{border:1px solid #ead8c7;background:white;color:#734a30;padding:8px 12px;min-height:38px}#calendar-view .month-actions #prev,#calendar-view .month-actions #next{font-size:22px;padding:3px 12px}#calendar-view .calendar-legend{padding:0 24px 18px;display:flex;gap:14px;align-items:center;font-size:11px;color:#806e61}#calendar-view .calendar-legend span{display:flex;align-items:center;gap:5px}#calendar-view .calendar-legend small{margin-left:auto;font-size:10px}#calendar-view .calendar-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}#calendar-view .today-dot{background:#be511c}#calendar-view .selected-dot{background:#fce4cc;border:1px solid #bc6a33}#calendar-view .weekdays,#calendar-view .month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}#calendar-view .weekdays{background:#fff7ed;border-top:1px solid #efdfd0;border-bottom:1px solid #efdfd0;text-align:center;padding:12px 0;font-size:12px;color:#8a6c54}#calendar-view .weekdays span:first-child,#calendar-view .weekdays span:last-child{color:#b46542}#calendar-view .day-cell{min-height:123px;padding:7px 5px;border-bottom:1px solid #f0e5db;border-right:1px solid #f0e5db;position:relative;background:white}#calendar-view .day-cell:nth-child(7n){border-right:0}#calendar-view .day-cell.outside{background:#faf7f3}#calendar-view .day-cell.selected{background:#fff1e2;box-shadow:inset 0 0 0 2px #d58646;z-index:1}#calendar-view .day-cell.is-today{background:#fff8ed}#calendar-view .day-cell.selected.is-today{background:#fff1e2}#calendar-view .date-button{display:flex;align-items:center;gap:4px;background:none;border:0;width:100%;text-align:left;padding:1px 3px 5px;color:#674d3c;font-size:12px;min-height:30px}#calendar-view .date-number{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;font-weight:600}#calendar-view .is-today .date-number{background:#bd4e16;color:white}#calendar-view .outside .date-button{color:#b5a89e}#calendar-view .today-label{font-size:10px;color:#af4d1b;font-weight:600}#calendar-view .event-btn{border:0;border-radius:6px;background:var(--bg);color:var(--ink);font-size:11px;width:100%;display:flex;justify-content:space-between;gap:2px;padding:4px 6px;margin-bottom:3px;line-height:1.3;text-align:left}#calendar-view .event-btn b{font-size:10px;white-space:nowrap}#calendar-view .event-btn:hover{outline:1px solid var(--ink)}#calendar-view .extra-btn{font-size:10px;background:none;color:#79563c;border:0;padding:2px 5px}#calendar-view .calendar-bottom{display:flex;justify-content:space-between;gap:10px;padding:14px 20px;color:#94765f;font-size:11px}#calendar-view .calendar-bottom span:first-child{font-weight:600;color:#714e34}#calendar-view .day-panel{position:sticky;top:20px;padding:24px 20px}#calendar-view .day-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}#calendar-view .day-heading .eyebrow{font-size:10px;letter-spacing:1px}#calendar-view .day-heading h2{font-size:24px;margin:6px 0 0;color:#69452e}#calendar-view .day-heading>span{font-size:11px;background:#fff0de;border-radius:20px;padding:6px 10px;color:#8a5a35}#calendar-view .category-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}#calendar-view .category-btn{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:10px 9px;border:1px solid transparent;background:var(--bg);color:var(--ink);min-height:69px;font-size:12px}#calendar-view .category-btn b{font-size:18px}#calendar-view .category-btn b small{font-size:10px;font-weight:400;margin-left:3px}#calendar-view .category-btn[aria-pressed=true]{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}#calendar-view .detail-heading{display:flex;align-items:center;justify-content:space-between;margin-top:25px;border-bottom:1px solid #eddfd2;padding-bottom:12px}#calendar-view .detail-heading h3{font-size:15px;margin:0}#calendar-view .detail-heading button{font-size:11px;border:0;background:none;color:#a35124;padding:5px}#calendar-view .detail-record{padding:16px 0;border-bottom:1px dashed #e8ddd4}#calendar-view .record-meta{display:flex;gap:7px;align-items:center;margin-bottom:9px}#calendar-view .record-tag{font-size:10px;background:var(--bg);color:var(--ink);padding:4px 7px;border-radius:5px}#calendar-view .record-status{font-size:10px;color:#887465}#calendar-view .detail-record h4{font-size:14px;line-height:1.6;margin:0 0 7px;color:#503b2f}#calendar-view .detail-record p{font-size:12px;line-height:1.8;margin:0;color:#887262;white-space:pre-line}#calendar-view .day-add{width:100%;margin-top:18px;border:1px dashed #dcb798;color:#a25c2e;background:#fffaf4;padding:12px;font-size:12px}#calendar-view .blank{padding:36px 8px;text-align:center;color:#958476;font-size:13px;line-height:2}#calendar-view .blank strong{display:block;color:#705442;font-size:15px}#calendar-view .prototype-note{color:#9c8570;font-size:11px;text-align:center;margin:22px 0}#calendar-view .sidebar .nav:not(.active){opacity:.5;cursor:default}#calendar-view .sidebar .side-note{bottom:25px}#calendar-view .page-heading>.primary{white-space:nowrap}#calendar-view .calendar-panel button:focus-visible,#calendar-view .day-panel button:focus-visible{outline:3px solid #91652e;outline-offset:2px}#calendar-view dialog{padding:24px;border:1px solid #ead7c5;border-radius:20px;max-width:430px;width:90%}#calendar-view dialog p{font-size:13px;line-height:1.8;color:#846c59}#calendar-view dialog .category-btn{min-height:54px;justify-content:center}#calendar-view dialog::backdrop{background:#422b2060}@media(min-width:1500px){#calendar-view .day-cell{min-height:140px}#calendar-view .event-btn{font-size:12px}#calendar-view .calendar-layout{grid-template-columns:minmax(0,1fr) 370px}}@media(max-width:1190px){#calendar-view .calendar-layout{grid-template-columns:minmax(0,1fr)}#calendar-view .day-panel{position:static}#calendar-view .category-buttons{grid-template-columns:repeat(6,minmax(0,1fr))}#calendar-view .day-cell{min-height:110px}#calendar-view dialog .category-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){#calendar-view .sidebar{display:none}#calendar-view main{margin-left:0;width:100%}#calendar-view header{padding:14px 18px;height:60px}#calendar-view .page{padding:20px 12px}#calendar-view .page-heading{gap:10px;margin-bottom:20px}#calendar-view .page-heading h1{font-size:24px}#calendar-view .page-heading p{font-size:12px;max-width:230px}#calendar-view .page-heading>.primary{padding:10px;font-size:12px}#calendar-view .preview-tag{font-size:9px;padding:5px 7px}#calendar-view .header-right .avatar{display:none}#calendar-view .calendar-layout{gap:16px}#calendar-view .month-toolbar{padding:16px 12px 12px}#calendar-view .month-heading{gap:7px}#calendar-view .month-heading h2{font-size:19px}#calendar-view .month-icon{display:none}#calendar-view .month-actions button{font-size:11px;padding:6px 8px}#calendar-view .calendar-legend{padding:0 12px 12px;gap:10px}#calendar-view .calendar-legend small{display:none}#calendar-view .calendar-panel{border-radius:15px}#calendar-view .day-cell{padding:4px 2px;min-height:112px}#calendar-view .date-button{padding:0 0 4px;gap:0}#calendar-view .date-number{width:23px;height:23px;font-size:11px}#calendar-view .today-label{font-size:8px}#calendar-view .event-btn{padding:4px 2px;font-size:9px;border-radius:4px}#calendar-view .event-btn b{font-size:9px}#calendar-view .calendar-bottom{font-size:10px;padding:12px;flex-direction:column;gap:5px}#calendar-view .category-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}#calendar-view .day-panel{padding:20px 16px}#calendar-view .category-btn{min-height:66px}#calendar-view .day-heading h2{font-size:23px}}#calendar-view .event-btn span,#calendar-view .event-btn b{white-space:nowrap}#calendar-view .month-heading h2,#calendar-view .month-actions button{white-space:nowrap}@media(max-width:420px){#calendar-view .month-heading h2{font-size:16px}#calendar-view .month-actions{gap:4px}#calendar-view .month-actions #prev,#calendar-view .month-actions #next{padding:3px 8px}#calendar-view .month-actions button{padding:6px;font-size:10px}#calendar-view .event-btn{font-size:8px;padding:4px 1px;gap:0}#calendar-view .event-btn b{font-size:8px}#calendar-view .month-toolbar{gap:5px}#calendar-view .today-label{display:none}#calendar-view .page-heading{display:block}#calendar-view .page-heading>.primary{margin-top:12px}}@media(max-width:420px){#calendar-view .event-btn{font-size:9px;min-height:22px;align-items:center}#calendar-view .event-btn b{font-size:9px}}

#calendar-view[hidden]{display:none} #calendar-view .day-panel{position:static} #calendar-view .calendar-layout{grid-template-columns:minmax(0,1fr) 340px} @media(max-width:1190px){#calendar-view .calendar-layout{grid-template-columns:minmax(0,1fr)}}

#calendar-view .calendar-top-actions{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-bottom:18px} #calendar-view .calendar-top-actions>span{font-size:12px;color:#806e61} #calendar-view .calendar-top-actions .primary{padding:11px 17px} @media(max-width:420px){#calendar-view .calendar-top-actions{justify-content:space-between;gap:8px} #calendar-view .calendar-top-actions .primary{font-size:12px;padding:10px 12px}}
#calendar-view .event-btn.has-mine{display:grid;grid-template-columns:1fr auto;box-shadow:inset 2px 0 var(--ink)}
#calendar-view .mine-cell{grid-column:1/-1;font-size:10px;font-weight:700;border-top:1px solid #ffffff88;padding-top:3px;margin-top:2px;white-space:nowrap}
#calendar-view .mine-category{font-size:11px;font-weight:700;border-top:1px solid #ffffffaa;padding-top:5px}
#calendar-view .mine-badge{display:inline-block;background:#704a96;color:#fff;font-size:11px;border-radius:5px;padding:3px 7px;font-weight:600}
#calendar-view .overdue-badge{background:#fff0e8;color:#a33f29;font-size:11px;border-radius:5px;padding:3px 7px}
#calendar-view .personal-record{border-left:3px solid #9471b5;padding-left:12px;background:#fbf8ff}
#calendar-view .record-meta{flex-wrap:wrap}
#calendar-view #calendar-overdue{margin-bottom:18px;border:1px solid #edc8ad;background:#fff3e8;border-radius:14px;padding:14px 18px;color:#964924}
#calendar-view #calendar-overdue[hidden]{display:none}
#calendar-view #calendar-overdue summary{cursor:pointer;font-weight:600;font-size:14px;line-height:1.8}
#calendar-view #calendar-overdue summary>small{display:block;font-size:11px;font-weight:400;color:#8b6d59}
#calendar-view .overdue-list{display:grid;gap:8px;max-height:260px;overflow:auto;margin-top:12px}
#calendar-view .overdue-item{display:flex;flex-direction:column;text-align:left;gap:6px;border:1px solid #efd7c3;background:#fffdf9;padding:10px 12px;color:#634331;font-size:13px}
#calendar-view .overdue-item small{font-size:11px;color:#8b6d59;white-space:normal}
@media(max-width:420px){#calendar-view .mine-cell{font-size:9px}#calendar-view #calendar-overdue{padding:12px}}
#calendar-view .calendar-record-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
#calendar-view .calendar-record-actions button{font-size:12px;padding:8px 11px}
#calendar-view #calendar-pending{display:grid;gap:10px;margin-bottom:16px}
#calendar-view #calendar-pending[hidden]{display:none}
#calendar-view .calendar-pending-group{background:#fffdf9;border:1px solid #ecd6c2;border-radius:14px;padding:14px 18px}
#calendar-view .calendar-pending-group>summary{cursor:pointer;font-size:14px;font-weight:600;color:#835a3e}
#calendar-view .calendar-pending-group>div{max-height:400px;overflow:auto;margin-top:10px}
#calendar-view .handover-progress{margin-top:12px;padding:10px 12px;background:#f8f4ed;border-radius:9px}
#calendar-view .handover-progress p{margin:3px 0;font-size:12px;line-height:1.8}
#calendar-view .handover-progress .unassigned-note{color:#a15322;font-weight:600}
#calendar-view .handover-progress small{font-size:11px;color:#806e61}
#calendar-view .att-panel{display:grid;gap:10px}
#calendar-view .att-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
#calendar-view .att-tile{background:#f7f3ee;border:1px solid #eedfd2;border-radius:12px;padding:10px 12px;text-align:center}
#calendar-view .att-tile small{display:block;font-size:11px;color:#8b6d59}
#calendar-view .att-tile strong{display:block;font-size:22px;color:#503b2f;line-height:1.2}
#calendar-view .att-tile.good{background:#e7f2ea;border-color:#cfe3d4}#calendar-view .att-tile.good strong{color:#3d7753}
#calendar-view .att-tile.warn{background:#fff0e8;border-color:#edc8ad}#calendar-view .att-tile.warn strong{color:#a33f29}
#calendar-view .att-holiday{margin:0;padding:10px 12px;background:#fff3e8;border-radius:10px;color:#964924;font-size:13px}
#calendar-view .att-group{font-size:12px;margin:8px 0 0;color:#835a3e;letter-spacing:1px}
#calendar-view .att-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dashed #e8ddd4}
#calendar-view .att-row>div:first-child{min-width:0}
#calendar-view .att-row strong{font-size:14px;color:#503b2f}
#calendar-view .att-row small{display:block;font-size:11px;color:#887262;line-height:1.6}
#calendar-view .att-row.att-arrived strong{color:#3d7753}#calendar-view .att-row.att-left strong{color:#887465}
#calendar-view .att-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
#calendar-view .att-actions button{font-size:12px;padding:7px 10px}
#calendar-view .att-actions .text-btn{padding:4px 0}
#calendar-view .att-extra{margin-top:6px}
#calendar-view [data-att-results]{display:grid;gap:6px;margin-top:6px}
#calendar-view [data-att-results] button{text-align:left;font-size:13px;padding:8px 10px}
#calendar-view .event-btn.att-btn{display:grid;grid-template-columns:1fr auto}
@media(max-width:420px){#calendar-view .att-summary{grid-template-columns:repeat(2,1fr)}}
#calendar-view #leave-strip[hidden]{display:none}
#calendar-view .leave-strip{margin-bottom:14px;background:#fff0e1;border:1px solid #f0cfb3;border-radius:16px;padding:12px 16px}
#calendar-view .leave-strip.empty{background:#f7f3ee;border-color:#eedfd2}
#calendar-view .leave-strip-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
#calendar-view .leave-strip-head strong{font-size:15px;color:#a15b22}
#calendar-view .leave-strip.empty .leave-strip-head strong{color:#8b6d59}
#calendar-view .leave-strip>p{margin:6px 0 0;font-size:13px;color:#8b6d59}
#calendar-view .leave-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
#calendar-view .leave-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:#fffefd;border:1px solid #f0cfb3;border-radius:12px;padding:8px 12px;text-align:left;min-width:0;max-width:100%}
#calendar-view .leave-chip strong{font-size:14px;color:#503b2f}
#calendar-view .leave-chip small{font-size:11px;color:#8b6d59;white-space:normal}
#calendar-view .leave-chip.kind-early{border-color:#d9c9a3;background:#fffdf5}
#calendar-view .leave-chip.kind-early strong::after{content:'早退';font-size:10px;color:#947322;margin-left:6px;font-weight:600}
#calendar-view .leave-chip.pending{border-style:dashed}
@media(max-width:420px){#calendar-view .leave-strip{padding:10px 12px}#calendar-view .leave-chip{padding:7px 10px}}
