.mobile-nav{display:none}
:root{--navy:#12243a;--blue:#1769e0;--sky:#eaf3ff;--ink:#17212f;--muted:#6c7888;--line:#e3e8ef;--bg:#f5f7fa;--green:#15966b;--red:#d9485f;--orange:#e99720;--radius:16px}
*{box-sizing:border-box}
html,body{min-height:100%;overscroll-behavior-y:none}
body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;line-height:1.55}
.top{height:70px;padding:0 max(24px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.brand{display:flex;gap:10px;align-items:center;color:var(--navy);font-size:20px;font-weight:800;text-decoration:none}
.brand span,.login-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#2379ef,#164ea9);color:#fff;font-size:14px;letter-spacing:-1px}
.top nav{display:flex;gap:24px}
.top nav a{color:#536174;text-decoration:none;font-size:14px;font-weight:600}
.top nav a:hover{color:var(--blue)}
.main-nav{position:fixed;top:0;right:0;left:0;z-index:20;display:flex;justify-content:center;gap:8px;padding:0 max(24px,calc((100vw - 1180px)/2));background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 10px rgba(18,36,58,.06)}
.main-nav a{position:relative;min-width:90px;padding:15px 18px 13px;color:#536174;text-align:center;text-decoration:none;font-size:14px;font-weight:700}
.main-nav a:hover{color:var(--blue);background:#f7faff}
.main-nav a.active{color:var(--blue);background:var(--sky)}
.main-nav a.active::after{content:"";position:absolute;right:14px;bottom:0;left:14px;height:3px;border-radius:3px 3px 0 0;background:var(--blue)}
.home-page .top{position:fixed;top:0;right:0;left:0;z-index:30}
.home-page .main-nav{top:70px}
.home-page .container{padding-top:154px}
.sub-page .container{padding-top:84px}
.container{max-width:1180px;margin:auto;padding:34px 24px 20px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 3px 16px rgba(18,36,58,.04);padding:24px}
.grid{display:grid;gap:22px}
.grid.two{grid-template-columns:1fr 1fr}
.dashboard{grid-template-columns:1.15fr .85fr}
.welcome,.page-title,.section-head{display:flex;align-items:center;justify-content:space-between}
.welcome{margin-bottom:28px}
.welcome h1,.page-title h1{margin:2px 0;font-size:28px}
.eyebrow{color:var(--blue);font-weight:800;letter-spacing:.12em;font-size:12px;margin:0}
.clock{font-size:30px;font-variant-numeric:tabular-nums;font-weight:700;color:var(--navy)}
h2{font-size:18px;margin:0 0 18px}
.muted,small{color:var(--muted)}
.state{display:flex;align-items:center;gap:8px;font-weight:700;margin-bottom:22px}
.dot{width:10px;height:10px;border-radius:50%;background:#aeb7c2}
.dot.on{background:var(--green);box-shadow:0 0 0 5px #e2f6ef}
.dot.done{background:var(--blue)}
.punch-times{display:grid;grid-template-columns:repeat(3,1fr);background:var(--bg);border-radius:12px;padding:18px;margin-bottom:20px}
.punch-times div{display:flex;flex-direction:column;border-right:1px solid var(--line);padding:0 14px}
.punch-times div:last-child{border:0}
.punch-times strong{font-size:21px;margin-top:3px}
.punch-actions{display:flex;gap:12px;align-items:end;width:100%;max-width:100%;min-width:0}
.break-input,.start-input{min-width:180px;margin:0}
.punch-actions .start-input,.punch-actions .break-input{max-width:100%}
.punch-actions input[type="time"],.punch-actions input[type="number"]{width:100%;max-width:100%;min-width:0;-webkit-min-logical-width:0}
.break-input small,.start-input small{display:block;margin-top:5px}
.shift-chip{background:var(--sky);color:#175dbb;border-radius:20px;padding:5px 10px;font-size:12px;font-weight:700}
.shift-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}
.shift-form{max-width:none;margin-bottom:18px}
.attendance-note{border-top:1px solid var(--line);margin-top:22px;padding-top:20px}
.attendance-note label{margin-bottom:10px}
.btn{border:0;border-radius:10px;padding:11px 18px;font:inherit;font-weight:700;text-decoration:none;text-align:center;cursor:pointer;display:inline-block}
.btn.primary{background:var(--blue);color:white}
.btn.secondary{background:var(--sky);color:#175dbb}
.btn.dark{background:var(--navy);color:#fff}
.btn.warning{background:var(--orange);color:#fff}
.btn.ghost{background:#fff;color:var(--blue);border:1px solid #bdd4f2}
.btn.big{padding:17px;font-size:17px;flex:1}
.btn.full{width:100%}
.stats{display:grid;gap:12px;margin-bottom:22px}
.stats div,.summary-row div{display:flex;align-items:center;justify-content:space-between;background:var(--bg);padding:14px 16px;border-radius:11px}
.stats strong{margin-left:auto;margin-right:8px}
.page-title{margin-bottom:22px}
.filters{display:flex;align-items:end;gap:16px;margin-bottom:18px;padding:16px 20px}
.filters label{margin:0;min-width:180px}
.summary-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}
.attendance-summary{grid-template-columns:repeat(2,1fr)}
.summary-row div{display:flex;flex-direction:column;align-items:flex-start}
.summary-row strong{font-size:20px}
.table-card{padding:0;overflow-x:auto}
.table-card:has(tbody .empty){overflow-x:hidden}
.table-card:has(tbody .empty) table{min-width:0}
table{border-collapse:collapse;width:100%;min-width:760px}
th,td{text-align:left;padding:15px 17px;border-bottom:1px solid var(--line);font-size:14px}
th{color:var(--muted);font-size:12px;background:#fbfcfd}
tr:last-child td{border-bottom:0}
.empty{text-align:center;color:var(--muted);padding:42px}
.block{display:block;margin-top:3px}
.badge{display:inline-block;padding:4px 8px;border-radius:20px;font-size:11px;font-weight:800}
.badge.pending{background:#fff3d8;color:#a56600}
.badge.approved{background:#dff7ed;color:#087953}
.badge.rejected{background:#ffe7eb;color:#b92840}
.badge.draft{background:#edf0f4;color:#657181}
.badge.submitted{background:#fff3d8;color:#9a6200}
.badge.revising{background:#ffe7eb;color:#b92840}
.badge.confirmed{background:#dff7ed;color:#087953}
.saturday td{background:#eef6ff}
.saturday td:first-child{color:#1769e0;font-weight:700}
.sunday td{background:#fff0f2}
.sunday td:first-child{color:#d13c53;font-weight:700}
.row-actions{display:flex;align-items:center;gap:10px}
.row-actions form{margin:0}
label{display:block;font-size:13px;font-weight:700;margin-bottom:17px}
input,select,textarea{display:block;width:100%;margin-top:7px;border:1px solid #ccd5df;border-radius:9px;padding:11px 12px;font:inherit;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:3px solid #dcebff;border-color:var(--blue)}
.form-card{max-width:760px}
.expense-form,.expense-form form,.expense-form label{min-width:0;max-width:100%}
.expense-form input[type="date"]{display:block;inline-size:100%;max-inline-size:100%;min-inline-size:0;-webkit-min-logical-width:0}
.check{display:flex;align-items:center;gap:8px}
.check input{width:auto;margin:0}
.login{max-width:430px;margin:7vh auto;text-align:center;padding:36px}
.login-mark{margin:0 auto 14px;width:52px;height:52px;font-size:18px}
.login form{text-align:left;margin-top:25px}
.setup{max-width:720px;margin:35px auto;padding:20px}
.setup h2{margin-top:28px;border-bottom:1px solid var(--line);padding-bottom:8px}
.alert{padding:13px 16px;border-radius:10px;margin-bottom:18px}
.alert.success{background:#dff7ed;color:#087953}
.alert.error{background:#ffe7eb;color:#a91e36}
.admin-links{display:grid;grid-template-columns:repeat(4,1fr);padding:0;margin:18px 0 30px}
.admin-links a{display:grid;grid-template-columns:40px 1fr;padding:22px;color:var(--ink);text-decoration:none;border-right:1px solid var(--line)}
.admin-links a:last-child{border:0}
.admin-links span{grid-row:span 2;font-size:25px;color:var(--blue)}
.admin-links small{grid-column:2}
.link-button{background:none;border:0;padding:0;color:var(--blue);font:inherit;cursor:pointer}
.link-button.danger{color:var(--red)}
dialog{border:0;border-radius:15px;padding:26px;width:min(460px,calc(100% - 30px));box-shadow:0 20px 70px #0004}
dialog::backdrop{background:#13243a88}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px}
footer{text-align:center;color:#8994a2;font-size:12px;padding:40px}

.shift-date-table{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:18px}
.shift-date-table table{min-width:0}
.shift-date-table th:first-child{width:42%}
.shift-date-row{cursor:pointer}
.shift-date-row.assigned td{background:#fff2b8;box-shadow:inset 0 1px var(--blue),inset 0 -1px var(--blue)}
.shift-date-label{font-weight:700}
.shift-date-row:not(.locked):hover td{background:#f0f6ff}
.shift-date-row.locked{cursor:not-allowed;opacity:.75}
.shift-date-row.past-date td{background-color:#f1f3f6!important;color:#929aa5}
.shift-date-row.locked .shift-date-label{cursor:not-allowed}
.month-nav{display:flex;align-items:center;gap:12px}
.shift-bulk{width:100%;max-width:100%;margin-bottom:28px}
.shift-settings{display:grid;grid-template-columns:1.5fr 1fr 1fr .6fr;gap:16px;align-items:end}
.shift-settings label{margin:0}
.shift-settings>div{display:flex;flex-direction:column;background:var(--bg);border-radius:10px;padding:10px 14px}
.shift-settings strong{font-size:20px}
.shift-help{color:var(--muted);font-size:13px;margin:20px 0 12px}
.shift-calendar{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);margin-bottom:18px}
.weekday{text-align:center;font-size:12px;font-weight:800;padding:8px;background:#f8fafc;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.sunday-text{color:var(--red)}
.saturday-text{color:var(--blue)}
.calendar-blank{min-height:92px;background:#fafbfc;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.calendar-day{position:relative;display:flex;flex-direction:column;gap:5px;min-height:92px;margin:0;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;font-weight:400}
.calendar-day input{position:absolute;opacity:0;pointer-events:none}
.calendar-day:has(input:checked){background:#e2efff;box-shadow:inset 0 0 0 2px var(--blue)}
.calendar-day.saturday{background:#f1f7ff}
.calendar-day.sunday{background:#fff3f5}
.calendar-day.saturday:has(input:checked),.calendar-day.sunday:has(input:checked){background:#e2efff}
.calendar-day.locked{cursor:not-allowed;opacity:.72}
.day-number{font-weight:800}
.calendar-shift{font-size:12px;color:var(--muted)}
.calendar-day .badge{align-self:flex-start}
.shift-submit{min-width:240px}
.shift-submit:disabled{background:#aeb7c2;cursor:not-allowed}
.shift-list-head{margin:24px 0 12px}
.shift-list-head h2{margin:0}
.shift-control-sticky{position:sticky;top:50px;z-index:8;background:#fff;margin:-24px -24px 16px;padding:18px 24px 14px;border-bottom:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;box-shadow:0 5px 12px rgba(18,36,58,.06)}
.shift-control-sticky .shift-settings{display:flex;grid-template-columns:none;width:100%;align-items:stretch;gap:14px}
.shift-control-sticky .shift-settings label{flex:1;min-width:0;display:flex;flex-direction:column}
.shift-control-sticky .shift-settings label select{flex:1}
.shift-control-sticky .shift-settings>div{flex:0 0 90px;align-self:stretch;justify-content:space-between}
.shift-date-table{width:100%;max-width:100%}
.shift-date-table table{width:100%;table-layout:fixed}
.shift-date-table th:first-child,.shift-date-table td:first-child{width:36%}
.shift-date-table th:last-child,.shift-date-table td:last-child{width:64%}
.shift-date-row td{height:52px}
.shift-date-row.saturday td{background:#e3efff!important}
.shift-date-row.sunday td{background:#ffe6eb!important}
.shift-date-row.saturday .shift-date-label{color:#1263c4}
.shift-date-row.sunday .shift-date-label{color:#c82c46}
.shift-date-row.assigned td{background:#fff2b8!important}
.shift-date-table th:nth-child(1),.shift-date-table td:nth-child(1){width:22%}
.shift-date-table th:nth-child(2),.shift-date-table td:nth-child(2){width:43%}
.shift-date-table th:nth-child(3),.shift-date-table td:nth-child(3){width:18%;text-align:center}
.shift-date-table th:nth-child(4),.shift-date-table td:nth-child(4){width:17%;text-align:center}
.shift-delete .link-button{font-size:12px}
@media(max-width:720px){.shift-control-sticky{top:43px;margin:-14px -14px 12px;padding:10px 12px}
.shift-control-sticky .shift-settings{display:flex;flex-direction:row;gap:10px}
.shift-control-sticky .shift-settings label{font-size:11px}
.shift-control-sticky .shift-settings input,.shift-control-sticky .shift-settings select{padding:9px 5px;text-align:center}
.shift-control-sticky .shift-settings>div{flex:0 0 58px;padding:8px 5px}
.shift-control-sticky .shift-settings>div small{font-size:9px}
.shift-control-sticky .shift-settings>div strong{font-size:16px}
.shift-control-sticky .shift-help{margin:8px 0 0;font-size:10px;line-height:1.35}
.shift-date-table th:first-child,.shift-date-table td:first-child{width:38%}
.shift-date-table th:last-child,.shift-date-table td:last-child{width:62%}
.top{height:62px;padding:0 14px}
.top nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(6,1fr);gap:0;z-index:20;padding-bottom:env(safe-area-inset-bottom)}
.top nav a{text-align:center;padding:13px 2px;font-size:11px}
.container{padding:24px 14px 80px}
.welcome{align-items:flex-start}
.welcome h1,.page-title h1{font-size:23px}
.clock{font-size:18px;margin-top:22px}
.dashboard,.grid.two,.shift-grid,.shift-settings{grid-template-columns:1fr}
.punch-times{padding:14px 4px}
.punch-times div{padding:0 9px}
.punch-times strong{font-size:17px}
.punch-actions{flex-direction:column;align-items:stretch;width:auto;max-width:none;min-width:0;overflow:hidden}
.punch-actions .start-input,.punch-actions .break-input{align-self:stretch;width:auto;max-width:100%;min-width:0}
.punch-actions input[type="time"]{display:block;inline-size:100%!important;max-inline-size:100%!important;min-inline-size:0!important;min-height:54px;text-align:center;font-size:18px!important;font-weight:700;-webkit-appearance:none;appearance:none}
.summary-row{grid-template-columns:1fr 1fr}
.filters{align-items:stretch;flex-direction:column}
.filters label{min-width:0}
.admin-links{grid-template-columns:1fr}
.admin-links a{border-right:0;border-bottom:1px solid var(--line)}
.page-title{align-items:flex-end}
.month-nav{gap:5px}
.month-nav .btn{padding:8px 12px}
.shift-bulk{padding:14px}
.shift-calendar{margin-left:-7px;margin-right:-7px}
.calendar-day,.calendar-blank{min-height:72px}
.calendar-day{padding:5px;gap:2px}
.calendar-shift{font-size:9px}
.calendar-day .badge{font-size:8px;padding:2px 4px}
.shift-submit{width:100%;min-width:0}
.card{padding:19px}
.table-card{padding:0}
footer{display:none}
}


.shift-date-table th:nth-child(1),.shift-date-table td:nth-child(1){width:22%!important}
.shift-date-table th:nth-child(2),.shift-date-table td:nth-child(2){width:42%!important;white-space:nowrap}
.shift-date-table th:nth-child(3),.shift-date-table td:nth-child(3){width:19%!important;text-align:center;white-space:nowrap}
.shift-date-table th:nth-child(4),.shift-date-table td:nth-child(4){width:17%!important;text-align:center;white-space:nowrap}
.shift-date-table th{writing-mode:horizontal-tb!important;word-break:keep-all}
.shift-date-table td{overflow:hidden}
.shift-value strong{font-size:13px;white-space:nowrap}
.shift-date-table th:nth-child(2){text-align:center}
.shift-date-table th:nth-child(1),.shift-date-table td:nth-child(1){width:25%!important;white-space:nowrap}
.shift-date-table th:nth-child(2),.shift-date-table td:nth-child(2){width:38%!important}
.shift-date-table th:nth-child(3),.shift-date-table td:nth-child(3){width:18%!important}
.shift-date-table th:nth-child(4),.shift-date-table td:nth-child(4){width:19%!important}
.shift-date-label{display:inline-block;white-space:nowrap}
.delete-button{appearance:none;border:1px solid #ef9aaa;background:#fff1f3;color:#bd2942;border-radius:7px;padding:5px 8px;font-size:11px;font-weight:800;line-height:1;cursor:pointer}
.delete-button:hover{background:#ffe0e5}
.confirm-dialog{text-align:center;max-width:400px}
.confirm-dialog .dialog-icon{display:grid;place-items:center;width:46px;height:46px;margin:0 auto 12px;border-radius:50%;background:#ffe5e9;color:#c52e47;font-size:24px;font-weight:900}
.confirm-dialog h2{margin-bottom:8px}
.confirm-dialog p{color:var(--muted);margin:0 0 22px}
.danger-button{background:var(--red);color:#fff}
@media(max-width:720px){body{padding-bottom:calc(58px + env(safe-area-inset-bottom))}
.container{padding-bottom:32px}
.top nav{height:calc(52px + env(safe-area-inset-bottom));align-items:start;box-shadow:0 -2px 10px rgba(18,36,58,.08)}
.shift-bulk{margin-bottom:24px}
.shift-submit{position:relative;z-index:1;margin-bottom:0}
}
.confirm-dialog .dialog-actions{justify-content:center}
.delete-details{display:inline-flex;flex-direction:column;align-items:flex-start;gap:6px;margin:8px auto 10px;text-align:left}
.delete-details span{display:inline-block;min-width:64px;color:var(--muted)}
.delete-warning{font-size:12px!important;margin-bottom:18px!important}
.shift-date-label{letter-spacing:0}
@media(max-width:720px){body{padding-bottom:calc(110px + env(safe-area-inset-bottom))!important}
.container{padding-bottom:120px!important}
.top nav{z-index:999!important;background:#fff!important;isolation:isolate}
.shift-bulk{margin-bottom:40px!important}
.shift-submit{display:block;margin-bottom:12px!important}
}
@media(max-width:720px){body{padding-bottom:0!important}
.container{padding-bottom:calc(68px + env(safe-area-inset-bottom))!important}
.shift-bulk{margin-bottom:16px!important}
.shift-submit{margin-bottom:0!important}
}
@media(max-width:720px){.top .desktop-nav{display:none!important}
.mobile-nav{position:static;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;width:100%;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 10px rgba(18,36,58,.08);z-index:auto}
.mobile-nav a{padding:15px 2px;text-align:center;color:#536174;text-decoration:none;font-size:11px;font-weight:600}
.main-nav{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;justify-content:normal;gap:0;padding:0;overflow-x:auto;box-shadow:0 2px 10px rgba(18,36,58,.08)}
.main-nav a{min-width:0;padding:14px 2px 12px;font-size:11px;white-space:nowrap}
.main-nav a.active::after{right:8px;left:8px}
body{touch-action:pan-y;overflow-x:hidden}
.container.page-swipe-tracking{will-change:transform,opacity}
.container.page-swipe-return,.container.page-swipe-leave,.container.page-swipe-enter{will-change:transform,opacity;transition:transform .2s cubic-bezier(.22,.72,.2,1),opacity .2s ease}
.container{padding-bottom:20px!important}
body{padding-bottom:0!important}
.shift-bulk{margin-bottom:16px!important}
}
.status-confirm-button{border:0;cursor:pointer;font-family:inherit}
.status-confirm-button:hover{filter:brightness(.95)}
.shift-date-table th:nth-child(1),.shift-date-table td:nth-child(1){width:21%!important}
.shift-date-table th:nth-child(2),.shift-date-table td:nth-child(2){width:37%!important;text-align:left}
.shift-date-table th:nth-child(2){text-align:center}
.shift-date-table th:nth-child(3),.shift-date-table td:nth-child(3){width:24%!important;overflow:visible}
.shift-date-table th:nth-child(4),.shift-date-table td:nth-child(4){width:18%!important}
.shift-status .badge{display:inline-block;white-space:nowrap;padding:4px 7px;font-size:10px}
.header-clock{margin-left:auto;color:var(--navy);font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.03em}
.staff-summary{margin-bottom:24px}
.staff-summary .eyebrow{margin-bottom:5px}
.staff-name{margin:0;color:var(--ink);font-size:16px;font-weight:700}
.staff-summary .state{margin:9px 0 0}
.memo-actions{display:flex;justify-content:flex-start;gap:10px}
.memo-actions .memo-delete{margin-left:auto}
.attendance-note-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}
.attendance-note textarea[readonly]{background:#f1f3f6;color:#66717f;cursor:not-allowed}
.home-dashboard{grid-template-columns:minmax(0,760px)}
.attendance-note-confirm-form{margin:0}
.memo-delete{background:#fff1f3;color:var(--red);border:1px solid #f0a4b0}
.attendance-detail-card{display:flex;align-items:center;justify-content:center}
.attendance-detail-card .btn{max-width:320px}
@media(max-width:720px){.header-clock{font-size:18px}
.home-page .main-nav{top:62px}
.home-page .container{padding-top:129px!important}
.sub-page .container{padding-top:67px!important}
.staff-summary{margin-bottom:18px}
.staff-name{font-size:14px}
.attendance-detail-card{padding:14px}
}
@media(max-width:720px){input,select,textarea{font-size:16px!important}
.attendance-note textarea{font-size:16px!important}
a[href*="type=attendance"],a[href*="type=expenses"]{display:none!important}
}
.attendance-actions{display:flex;align-items:center;gap:8px}
.edit-button{display:inline-block;background:var(--sky);color:#175dbb;border:1px solid #bdd4f2;border-radius:7px;padding:5px 8px;font-size:11px;font-weight:800;text-decoration:none;line-height:1}
.attendance-actions .delete-button{white-space:nowrap}
.shift-table-toolbar{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}
.shift-table-toolbar .btn{padding:8px 16px}
.shift-register:disabled{background:#aeb7c2;color:#fff;cursor:not-allowed}
.shift-edit-actions{display:flex;align-items:center;gap:8px}
.shift-change-dialog{text-align:left}
.shift-change-dialog h2{text-align:center}
.shift-change-times{margin:20px 0 4px}
.shift-change-times label{margin-bottom:10px}
.shift-change-actions{justify-content:center;flex-wrap:wrap}
.shift-table-toolbar>a:last-child{margin-left:auto}
.shift-date-row.confirm-selected td{background:#fff2b8!important;box-shadow:inset 0 1px #e5b800,inset 0 -1px #e5b800}
.shift-clear{background:var(--red)!important;color:#fff!important;border-color:var(--red)!important}
.shift-register{background:#fff!important;color:var(--red)!important;border:1px solid var(--red)!important}
.attendance-filter{margin-bottom:18px;padding:16px 20px}
.attendance-staff-filter{margin:0 0 12px}
.attendance-period-filter{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.75fr) auto;align-items:end;gap:10px}
.attendance-period-filter label{margin:0;min-width:0}
.attendance-period-filter label span{display:block;margin-bottom:5px}
.attendance-period-filter select{margin:0}
.attendance-period-filter .btn{height:48px}
.attendance-month-card{overflow:visible}
.attendance-month-table{min-width:0;table-layout:fixed}
.attendance-month-table th,.attendance-month-table td{padding:11px 5px;text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}
.attendance-month-table th{font-size:11px}
.attendance-month-table thead th{position:sticky;top:50px;z-index:6;box-shadow:0 1px 0 var(--line)}
.attendance-month-table td{font-size:12px}
.attendance-month-table th:nth-child(1){width:18%}
.attendance-month-table th:nth-child(2),.attendance-month-table th:nth-child(3){width:14%}
.attendance-month-table th:nth-child(4),.attendance-month-table th:nth-child(5),.attendance-month-table th:nth-child(6){width:13%}
.attendance-month-table th:nth-child(7){width:15%}
.expense-filter .attendance-period-filter{width:100%}
.expense-table-card{overflow:hidden}
.expense-month-table{width:100%;min-width:0;table-layout:fixed}
.expense-month-table th,.expense-month-table td{padding:14px 8px;text-align:center;white-space:nowrap}
.expense-month-table th:nth-child(1){width:22%}
.expense-month-table th:nth-child(2){width:28%}
.expense-month-table th:nth-child(3){width:22%}
.expense-month-table th:nth-child(4){width:28%}
.attendance-date-cell>span:first-child{font-weight:700}
.attendance-inline-actions{display:flex;justify-content:center;gap:5px;margin-top:4px}
.attendance-inline-actions a,.attendance-inline-actions button{border:0;background:none;padding:0;color:var(--blue);font:inherit;font-size:9px;text-decoration:none;cursor:pointer}
.attendance-inline-actions button{color:var(--red)}
.attendance-memo-button{border:1px solid #a9c9f2;border-radius:6px;background:var(--sky);color:#175dbb;padding:4px 6px;font:inherit;font-size:10px;font-weight:700;cursor:pointer}
.attendance-memo-button:disabled{border-color:#d8dde4;background:#edf0f4;color:#a4acb7;cursor:default}
.attendance-memo-dialog{position:relative;text-align:left}
.attendance-memo-dialog h2{text-align:center}
.attendance-memo-content{min-height:80px;padding:14px;border-radius:10px;background:var(--bg);color:var(--ink)!important;white-space:pre-wrap;overflow-wrap:anywhere}
.dialog-close{position:absolute;top:10px;right:12px;border:0;background:none;color:var(--muted);font-size:24px;cursor:pointer}
.attendance-memo-dialog .dialog-actions{justify-content:center}
@media(max-width:720px){.attendance-filter{padding:14px}.attendance-period-filter{gap:7px}.attendance-period-filter select{padding:10px 7px}.attendance-period-filter .btn{height:46px;padding:9px 14px}.attendance-month-table th,.attendance-month-table td{padding:10px 2px}.attendance-month-table td{font-size:11px}.attendance-month-table th{font-size:10px}.attendance-month-table thead th{top:43px}.attendance-memo-button{padding:4px 3px;font-size:9px}}
@media(max-width:720px){.shift-count small,.shift-count strong{text-align:center}.shift-date-label{display:block;text-align:center}.shift-delete-button{transform:translateX(-3px)}}
