.roster-scroll{overflow:auto;max-width:100%;border:1px solid #dfe4eb;border-radius:12px;background:white}.roster-table{width:100%;min-width:920px;table-layout:fixed;border-collapse:collapse;font-size:13px}.roster-table caption{padding:10px;font-weight:800;text-align:left}.roster-table th,.roster-table td{padding:12px 8px;border:1px solid #e8ebf0;vertical-align:top;text-align:center;white-space:normal;word-break:keep-all;overflow-wrap:anywhere}.roster-table th:first-child{width:100px;position:sticky;left:0;background:#f5f7fb;z-index:1}.roster-table thead th{background:#eff3fa;color:#24364a;font-weight:800}.roster-table small{display:block;font-size:11px;line-height:1.5;margin-top:4px}.roster-person{display:block;padding:3px 0;font-weight:700}.roster-person small{display:inline;color:#64748b}.roster-empty,.roster-count{color:#64748b}.roster-shortage{color:#b42318;font-weight:700}.roster-off td{background:#faf8f5}.roster-table tfoot td{background:#f1f6ff}.roster-form{padding:14px 0;border-bottom:1px solid #e3e8ef}.roster-form .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.roster-default-fields{grid-column:1/-1;border:1px solid #e3e8ef;border-radius:10px;padding:14px}.roster-off-days{display:flex;flex-wrap:wrap;gap:12px;border:0;padding:12px 0}.roster-off-days label{display:flex;align-items:center;gap:5px;margin:0}.roster-off-days input{width:auto}.roster-default-fields h3,#rosterAdmin h3{margin:8px 0 12px}.roster-default-fields .hint,#rosterAdmin .hint{line-height:1.65;word-break:keep-all}.roster-form input,.roster-form select{min-width:0;width:100%}#rosterAdmin{min-width:0;margin:12px 0 20px}#rosterAdminGrid,#kioskScheduleGrid{min-width:0;max-width:100%}#kioskScheduleDialog{width:min(1180px,calc(100vw - 24px));max-width:calc(100vw - 24px)}#kioskScheduleDialog .dialog-card{width:100%;box-sizing:border-box}#rosterStatus{min-height:20px}#rosterManage summary{cursor:pointer;font-weight:700;padding:12px 0}@media(max-width:600px){.roster-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-default-fields{padding:10px}.roster-table{min-width:920px}#kioskScheduleDialog .dialog-card{padding:14px}.roster-table th:first-child{width:88px}.roster-table td,.roster-table th{padding:10px 6px}#rosterAdmin{padding:12px}#rosterAdmin h2{font-size:18px}.roster-off-days{gap:10px}#rosterConfirm{max-width:100%;white-space:normal}}
#rosterAdmin{width:100%;max-width:none;box-sizing:border-box}.roster-scroll-hint{margin:4px 0 8px}
.roster-table thead th.roster-holiday{color:#9c5348;background:#faf1ef}
