.manager{--paper:#f6f7f8;--ink:#26342f;--muted:#64706b;--line:#dce2df;font-size:15px}.manager main{max-width:1480px;padding:32px}.manager .header-inner{max-width:1480px}.manager .brand{text-decoration:none;color:var(--ink);letter-spacing:0}.manager-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.manager h1{font-size:28px}.manager h2{font-size:20px;margin-bottom:12px}.manager-heading button{width:auto}.manager .panel{background:white;border:1px solid var(--line);padding:24px;border-radius:8px;margin-bottom:22px}.manager .fields{display:flex;flex-wrap:wrap;gap:16px;align-items:end}.manager label{margin:0;display:flex;flex-direction:column;gap:8px;font-size:14px;flex:1;min-width:160px}.manager input,.manager select{font:inherit;min-height:48px;width:100%;border:1px solid #aebbb4;background:white;border-radius:5px;padding:10px 12px;color:var(--ink);margin:0}.manager button{font-size:15px;min-height:48px;width:auto;border-radius:5px;padding:12px 20px}.manager button:disabled{cursor:wait}.manager input[type=checkbox]{width:22px;min-height:22px;flex:0}.manager label:has(input[type=checkbox]){flex-direction:row;align-items:center;margin:18px 0}.manager .access-panel{max-width:780px}.manager #login{margin-top:22px}.manager-nav{display:flex;border-bottom:1px solid #cbd5cf;margin-bottom:24px;gap:28px}.manager-nav button{border:0;border-bottom:3px solid transparent;border-radius:0;background:none;color:var(--muted);padding:14px 8px;min-width:96px}.manager-nav button[aria-pressed=true]{color:var(--green);border-bottom-color:var(--green)}.manager .context-panel{background:transparent;border:0;border-bottom:1px solid var(--line);padding:0 0 20px;border-radius:0}.manager .context-panel label{flex:0 1 220px}.manager #message{padding:12px 0 20px}.manager .scroll{overflow:auto;max-height:65vh;border:1px solid var(--line);border-radius:4px}.manager table{border-collapse:separate;border-spacing:0;font-size:13px;width:100%}.manager th,.manager td{border-right:1px solid #e5e9e6;border-bottom:1px solid #e5e9e6;padding:8px;min-width:66px;text-align:center;vertical-align:top;height:62px}.manager th{background:#f0f4f1;position:sticky;top:0;z-index:2;white-space:nowrap}.manager th:first-child,.manager td:first-child{position:sticky;left:0;min-width:150px;background:#fbfcfb;z-index:1;text-align:left;font-weight:600}.manager th:first-child{z-index:3}.manager .shift{border-left:3px solid #699682;background:#edf4ef;border-radius:2px;margin:3px 0;padding:4px}.manager .hope{color:#8c6729;font-size:12px}.manager .ake{color:#476c8b}.manager .inactive{background:#f2f3f2;color:#888}.manager small{display:block;font-size:12px}.manager #editor .fields{margin:16px 0}.manager #editor p,.manager #attendancePane p{font-size:14px;color:var(--muted);margin:12px 0}.manager #recovery{border-left:4px solid #a7792f;background:#fffbf1}.manager #recovery p{margin-bottom:14px}.manager summary{cursor:pointer;min-height:48px;display:flex;align-items:center;font-weight:600}.manager .setup-panel .fields{margin:18px 0}.manager .footer{max-width:none;display:block}.manager #attendanceEditor{margin-top:22px}.manager #sample{margin-top:16px}.manager #warnings{margin-bottom:16px}.manager #pendingRequests{margin-bottom:16px}
@media(max-width:700px){.manager main{padding:24px 16px}.manager .panel{padding:20px 16px}.manager .fields{gap:14px}.manager label{min-width:100%;flex-basis:100%}.manager .context-panel label{min-width:calc(50% - 7px);flex:1}.manager .fields button{width:100%}.manager h1{font-size:26px}.manager-nav{gap:8px;justify-content:space-between}.manager-nav button{flex:1;min-width:0}.manager th:first-child,.manager td:first-child{min-width:120px}.manager-heading{gap:12px}}
.batch-list{max-height:420px;overflow:auto;border-top:1px solid #d5ddd7;margin:16px 0}.batch-list label{display:flex;gap:12px;align-items:center;padding:14px 8px;border-bottom:1px solid #d5ddd7;font-size:16px}.batch-list input{width:24px;height:24px;flex-shrink:0}#monthEnd138 h3{margin-top:30px}#monthEnd138 button{margin:8px 12px 12px 0;min-height:48px}
.cache-notice{font-size:12px;color:#697870;min-height:18px}.grid-toolbar{display:flex;flex-wrap:wrap;align-items:start;gap:16px;margin:18px 0}.grid-toolbar>div{max-width:330px}.action-result{font-size:13px;min-height:20px;max-width:600px}.manager .work-cell{min-width:88px}.manager .cell-edit{min-height:40px;width:100%;padding:7px 9px;font-size:16px}.manager .cell-state{display:block;padding:3px;font-size:11px}.cell-state.dirty{background:#fff2c9}.cell-state.sending{background:#e6effa}.cell-state.saved{color:#246445}.cell-state.failed,.cell-state.conflict{background:#ffe1d9;color:#9b3017}.cell-state.unknown{background:#f1e8fb}.locked-cell{background:repeating-linear-gradient(135deg,#f1f3f2,#f1f3f2 6px,#e8ecea 6px,#e8ecea 7px)}.manager .locked-cell button:disabled{cursor:not-allowed;opacity:.6}.manager .cell-error-link{display:block;font-size:13px;background:#fff0e9;color:#9b3017;margin:4px 0;padding:8px}.grid-dialog{border:1px solid #9ab4a7;border-radius:10px;padding:24px;max-width:min(520px,90vw)}.grid-dialog::backdrop{background:#163b2c55}.pattern-choices{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.grid-dialog select,.grid-dialog textarea{display:block;width:100%;margin:12px 0;padding:12px}.grid-dialog button{margin:5px}.manager .scroll thead th{top:0}.manager tbody th{position:sticky;left:0;background:#f8faf8;min-width:130px;z-index:1;text-align:left;padding:10px}.manager .grid-toolbar button:disabled{cursor:default;opacity:.5}

/* v1.3.8.27: name cells stick to the left only. Without top:auto they inherited top:0 from
   .manager th and piled up over the 職員 corner when the table was scrolled down. */
.manager tbody th{top:auto}
.manager thead th:first-child{z-index:4}
.manager .lock-tag{display:block;white-space:nowrap;font-size:11px;color:#5d6a64;margin-top:2px}
.holiday-summary{margin:14px 0}
.holiday-summary>summary{cursor:pointer;list-style:none;font-weight:600;padding:6px 0}
.holiday-summary>summary::-webkit-details-marker{display:none}
.holiday-summary>summary::before{content:"▶ ";font-size:11px}
.holiday-summary[open]>summary::before{content:"▼ "}
.timing-list{margin-top:12px;font-size:14px;font-variant-numeric:tabular-nums}
.timing-list p{margin:4px 0;padding:6px 0;border-bottom:1px solid #e5e9e6}
