.toolbar label{display:grid;gap:5px;color:#5f6876;font-size:13px}.toolbar input,.toolbar select{font-size:16px}.toolbar button{align-self:end}.attendance-card{background:#fff;border:1px solid #e5e7ec;border-radius:20px;padding:24px;margin:20px 0;box-shadow:0 5px 22px #11111108}.attendance-card:last-child{margin-bottom:60px}.attendance-card h2{margin:0 0 6px;font-size:21px}.hint{color:#707783;margin:0 0 16px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:13px 16px;text-align:left;border-bottom:1px solid #edf0f4;vertical-align:top}th{background:#f8faff;color:#566170;font-size:13px;white-space:nowrap}tr:last-child td{border-bottom:0}td small{display:block;color:#808896;margin-top:4px}td button{white-space:nowrap}.table-empty{text-align:center;padding:36px;color:#818893}.day-table td:first-child{white-space:nowrap}.status{display:inline-block;padding:4px 9px;border-radius:999px;background:#f1f3f6;color:#626b78;white-space:nowrap;font-size:13px}.status-present,.status-business_trip{background:#e9f7ef;color:#087442}.status-absent{background:#fff0ee;color:#c33}.status-rest,.status-holiday{background:#edf4ff;color:#2364ad}.status-leave{background:#fff4e0;color:#936000}.half-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:700px){.toolbar label{flex:1;min-width:145px}.attendance-card{padding:16px}.half-grid{grid-template-columns:1fr}}
.head-actions{display:flex;gap:10px;flex-wrap:wrap}.batch-dialog{width:min(780px,calc(100vw - 30px));max-height:92vh}.batch-content{max-height:calc(92vh - 40px);overflow:auto}.batch-top{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:15px 0}.batch-top label{display:grid;gap:5px;min-width:220px}.batch-select-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.batch-select-actions button{padding:8px 12px}.batch-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.batch-weekday{text-align:center;color:#687485;font-size:12px;padding:7px 0}.batch-day{min-height:68px;border:1px solid #dce3ed;border-radius:12px;background:#fff;color:#243042;text-align:left;padding:8px;cursor:pointer}.batch-day strong{display:block;font-size:16px}.batch-day small{display:block;font-size:11px;line-height:1.2;margin-top:5px;color:#687485;word-break:break-all}.batch-day[aria-pressed="true"]{border:2px solid #1268dc;background:#eaf3ff;padding:7px}.batch-day.dirty:not([aria-pressed="true"]){background:#fff6e5;border-color:#e2b75a}.batch-apply{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:16px 0}.batch-apply label{display:grid;gap:5px;min-width:200px}.batch-apply button{min-height:43px}@media(max-width:700px){.batch-day{min-height:61px;padding:5px}.batch-day strong{font-size:14px}.batch-day small{font-size:10px}.head-actions{width:100%}}
.member-dialog{width:min(670px,calc(100vw - 30px));max-height:92vh}.member-dialog-body{max-height:calc(92vh - 40px);overflow:auto}.member-list{display:grid;gap:8px;max-height:260px;overflow:auto;margin:16px 0}.member-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #e2e7ee;border-radius:12px}.member-card strong,.member-card small{display:block}.member-card small{color:#687485;margin-top:4px}.member-card button{white-space:nowrap}#memberForm{border-top:1px solid #e2e7ee;padding-top:15px;display:grid;gap:12px}#memberForm h3{margin:0}#memberForm label{display:grid;gap:5px}#memberForm .member-active{display:flex;align-items:center;gap:9px}#memberForm .member-active input{width:auto}
.export-dialog{width:min(1100px,calc(100vw - 30px));max-height:94vh}.export-dialog-body{max-height:calc(94vh - 40px);overflow:auto}.export-preview{background:#e9edf3;border:1px solid #dce2ea;border-radius:14px;padding:12px;max-height:62vh;overflow:auto}.export-preview img{display:block;width:100%;height:auto;background:white;box-shadow:0 3px 16px #1720331f}
.export-image-options{display:flex;align-items:end;margin:14px 0}.export-image-options label{display:grid;gap:6px;min-width:260px;color:#5f6876;font-size:13px;font-weight:600}.export-image-options select{min-height:46px;padding:10px 13px;border:1px solid #d6deea;border-radius:13px;background:#fff;color:#1f2937;font:inherit;outline:none}.export-image-options select:focus{border-color:#2f80ed;box-shadow:0 0 0 4px #2f80ed1a}
.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.matrix-legend{color:#718096;font-size:13px;white-space:nowrap}.matrix-wrap{overflow:auto}.month-matrix{min-width:max-content}.month-matrix th,.month-matrix td{min-width:120px;text-align:center}.month-matrix .matrix-date{position:sticky;left:0;z-index:2;min-width:90px;background:#f7f9fc}.month-matrix thead .matrix-date{z-index:3}.matrix-cell{width:100%;min-height:48px;border:0;border-radius:10px;padding:6px 8px;background:transparent;color:#334155;cursor:pointer}.matrix-cell strong,.matrix-cell small{display:block}.matrix-cell small{margin-top:3px;color:#94a3b8;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.matrix-cell.is-present{background:#e5f7ed;color:#16834b}.matrix-cell.is-other{background:#fff5df;color:#9a6700}.matrix-cell.is-unset{background:#f1f3f6;color:#8b95a5}.matrix-cell:hover{outline:2px solid #2f80ed;outline-offset:-2px}
.calendar-toolbar{display:flex;align-items:end;gap:16px;flex-wrap:wrap;margin:18px 0}.calendar-toolbar label{display:grid;gap:6px;min-width:220px;color:#5f6876;font-size:13px;font-weight:600}.calendar-toolbar select,.calendar-toolbar input{width:260px;box-sizing:border-box;min-height:48px;padding:11px 14px;border:1px solid #d6deea;border-radius:14px;background:#fff;color:#1f2937;font:inherit;outline:none;box-shadow:0 2px 8px #1f29370a}.calendar-toolbar select:focus,.calendar-toolbar input:focus{border-color:#2f80ed;box-shadow:0 0 0 4px #2f80ed1a}.attendance-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-weekday{text-align:center;color:#687485;font-size:13px;padding:5px}.calendar-empty{min-height:86px}.calendar-day{min-height:86px;border:1px solid #dce3ed;border-radius:14px;background:#fff;color:#243042;text-align:left;padding:10px;cursor:pointer;transition:.15s}.calendar-day strong{display:block;font-size:20px}.calendar-day small{display:block;font-size:13px;line-height:1.2;margin-top:8px;color:#687485}.calendar-day.is-present{background:#e5f7ed;border-color:#c4ead5;color:#16834b}.calendar-day.is-other{background:#fff5df;border-color:#f1d59c;color:#9a6700}.calendar-day.is-unset{background:#f7f8fa;color:#8b95a5}.calendar-day:hover{outline:2px solid #2f80ed;outline-offset:-2px}@media(max-width:700px){.calendar-toolbar select,.calendar-toolbar input{width:min(100%,320px)}.calendar-day{min-height:70px;padding:7px}.calendar-day strong{font-size:16px}.calendar-day small{font-size:11px;margin-top:5px}.attendance-calendar{gap:5px}}
