body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-container{align-items:center;background-color:#f4f7f9;display:flex;height:100vh;justify-content:center}.login-form{background:#fff;border-radius:8px;box-shadow:0 4px 10px #0000001a;max-width:400px;padding:40px;text-align:center;width:100%}.login-form h2{color:#333;margin-bottom:30px}.input-group{margin-bottom:20px;text-align:left}.input-group label{color:#555;display:block;font-weight:700;margin-bottom:5px}.input-group input{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;padding:10px;width:100%}.error-message{color:#e74c3c;margin-bottom:20px}.login-form button{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1.1em;padding:12px;transition:background-color .2s;width:100%}.login-form button:hover{background-color:#0056b3}body{background-color:#f4f7f9;color:#333;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0}.App{padding:8px}.App-header{align-items:center;background-color:#fff;border-radius:8px;box-shadow:0 2px 5px #0000000d;display:flex;gap:10px;justify-content:center;margin-bottom:10px;padding:10px 14px}.App-header h1,.header-placeholder{font-size:1.28em;margin:0 auto 0 0;white-space:nowrap}.header-placeholder{visibility:hidden}.month-navigator{align-items:center;display:flex;gap:6px;margin:0}.month-navigator button{background:#6c757d;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:1em;height:26px;line-height:26px;padding:0;width:26px}.month-navigator span{font-size:1.02em;font-weight:700;white-space:nowrap}.monthly-off-summary{display:none}.monthly-off-summary-simple{color:#495057;font-size:.95em;font-weight:600;white-space:nowrap}.download-button{margin:0 0 0 auto;padding:6px 10px;white-space:nowrap}.employee-form{background:#fff;border-radius:8px;box-shadow:0 2px 5px #0000000d;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;padding:12px}.employee-form input{border:1px solid #ccc;border-radius:4px;padding:6px}.employee-form button{background-color:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:6px 10px}.grid-container{background:#fff;border-radius:8px;box-shadow:0 2px 5px #0000000d;overflow-x:auto;padding:6px}.schedule-grid{border-collapse:collapse;font-size:.84em;min-width:100%;table-layout:fixed;width:max-content}.schedule-grid td,.schedule-grid th{border:1px solid #dee2e6;box-sizing:border-box;overflow:hidden;padding:5px 2px;text-align:center;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.schedule-grid thead th{background-color:#f8f9fa;font-size:.95em;font-weight:700;line-height:1.15;padding-bottom:6px;padding-top:6px;vertical-align:middle}.schedule-grid .info-col{max-width:72px;min-width:72px;width:72px}.schedule-grid .day-col{max-width:37px;min-width:37px;width:37px}.summary-title{background-color:#e9ecef!important;font-size:.78em;font-weight:700;line-height:.9;padding:0!important;text-align:center;white-space:nowrap}.schedule-grid thead th.summary-head-col{white-space:nowrap!important}.schedule-grid thead th.summary-head-col,.summary-body-col{line-height:1!important;max-width:37px!important;min-width:37px!important;overflow:hidden;padding:0!important;text-align:center!important;vertical-align:middle!important;width:37px!important}.date-header,.weekday-header{line-height:1.1;padding:3px 0;text-align:center}.date-header{font-size:1.02em;min-height:18px}.weekday-header{font-size:.94em;min-height:18px}.schedule-grid .today-col{background-image:linear-gradient(#1976d224,#1976d224);box-shadow:inset 2px 0 0 #1976d2,inset -2px 0 0 #1976d2;position:relative}.schedule-grid thead .today-col{background-color:#e3f2fd!important;color:#0d47a1}.schedule-grid thead .today-col .date-header{align-items:center;background:#1976d2;border-radius:999px;color:#fff;display:inline-flex;font-weight:800;justify-content:center;min-height:22px;min-width:22px;padding:0 4px}.day-type-saturday,.day-type-saturday th{background-color:#dcedff}.day-type-holiday,.day-type-holiday th,.day-type-sunday,.day-type-sunday th{background-color:#ffe3e3}.day-type-holiday th,.day-type-sunday th{color:#c81d1d}.day-type-empty{background-color:#f8f9fa;pointer-events:none}.day-type-empty .cell-content{cursor:not-allowed}.schedule-grid td.employment-inactive{background-color:#e5e7eb!important;color:#9aa0a6;pointer-events:none}.schedule-grid td.employment-inactive .cell-content{background-color:#e5e7eb!important;cursor:not-allowed}.footer-label,.summary-cell,.summary-footer-row td{background-color:#f8f9fa;font-weight:700}.footer-label{text-align:center}.summary-blank{background-color:#f8f9fa}.cell-container{height:100%;min-height:28px;width:100%}.cell-content{align-items:center;cursor:pointer;display:flex;justify-content:center;min-height:28px;width:100%}.work-type-cell-휴무{background-color:#ffecb3!important}.work-type-cell-경조{background-color:#bbdefb!important}.work-type-cell-반차,.work-type-cell-연차{background-color:#c8e6c9!important}.work-type-cell-마감{background-color:#d1c4e9!important}td select{background-color:initial;border:1px solid #007bff;font-size:1em;height:28px;outline:none;padding:0;text-align:center;width:100%}.schedule-grid td a{color:inherit;cursor:pointer;text-decoration:none}.schedule-grid td a:hover{color:#007bff}.mobile-calendar{display:flex;flex-direction:column;gap:8px}.mobile-calendar-row,.mobile-calendar-weekdays{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(7,minmax(0,1fr))}.mobile-calendar-weekday{color:#555;font-size:.9rem;font-weight:700;padding:6px 0;text-align:center}.mobile-calendar-grid{display:flex;flex-direction:column;gap:6px}.mobile-calendar-cell{align-items:center;background:#fff;border:1px solid #d9e1e7;border-radius:10px;color:inherit;display:flex;font:inherit;justify-content:center;min-height:56px}button.mobile-calendar-cell{cursor:pointer}.mobile-calendar-cell.saturday{background:#e8f3ff}.mobile-calendar-cell.holiday,.mobile-calendar-cell.sunday{background:#ffe9e9;color:#c81d1d}.mobile-calendar-cell.today{background-image:linear-gradient(#1976d224,#1976d224);border-color:#1976d2;box-shadow:inset 0 0 0 2px #1976d2}.mobile-calendar-cell.today .mobile-calendar-date{align-items:center;background:#1976d2;border-radius:50%;color:#fff;display:inline-flex;height:28px;justify-content:center;width:28px}.mobile-calendar-cell.empty{background:#f8f9fa;border-style:dashed}.mobile-calendar-date{font-size:1rem;font-weight:700}@media (max-width:768px){.App-header{flex-wrap:wrap;justify-content:flex-start}.monthly-off-summary-simple{order:3;white-space:normal;width:100%}.download-button{display:none}}.admin-header{justify-content:space-between;padding-left:14px;padding-right:14px;position:relative}.admin-header h1{margin:0;z-index:1}.admin-header .month-navigator{left:50%;margin:0;position:absolute;transform:translateX(-50%)}.admin-controls{align-items:center;display:flex;gap:15px;margin-left:auto;z-index:1}.logout-button{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9em;padding:8px 15px;transition:background-color .2s}.logout-button:hover{background-color:#c82333}.edit-mode-toggle{align-items:center;color:#555;display:flex;font-size:.9em;white-space:nowrap}.edit-mode-toggle input[type=checkbox]{cursor:pointer;height:16px;margin-right:5px;width:16px}.schedule-grid.admin-grid .info-col{max-width:72px;min-width:72px;width:72px}.schedule-grid.admin-grid .day-col{max-width:37px;min-width:37px;width:37px}.schedule-grid.admin-grid .summary-head-col{white-space:nowrap!important}.schedule-grid.admin-grid .summary-body-col,.schedule-grid.admin-grid .summary-head-col{line-height:1!important;max-width:37px!important;min-width:37px!important;overflow:hidden;padding:0!important;text-align:center!important;vertical-align:middle!important;width:37px!important}.schedule-grid.admin-grid .admin-col{max-width:56px;min-width:56px;width:56px}.employee-management-grid{width:100%}.schedule-grid.employee-management-grid .date-management-col{max-width:130px;min-width:130px;width:130px}.schedule-grid.employee-management-grid .employee-delete-col{max-width:58px;min-width:58px;width:58px}.employee-management-grid input[type=date]{border:1px solid #cfd6dd;border-radius:4px;box-sizing:border-box;font:inherit;height:30px;text-align:center;width:100%}.delete-button{background-color:#f44336;border:none;border-radius:3px;color:#fff;cursor:pointer;font-size:.8em;padding:5px 8px}.delete-button:hover{background-color:#d32f2f}.termination-dialog-backdrop{align-items:center;background:#00000059;display:flex;inset:0;justify-content:center;position:fixed;z-index:20}.termination-dialog{background:#fff;border-radius:8px;box-shadow:0 12px 32px #00000038;padding:18px;width:min(360px,calc(100vw - 32px))}.termination-dialog h2{font-size:1.1rem;margin:0 0 8px}.termination-dialog p{font-weight:700;margin:0 0 14px}.termination-dialog label{color:#555;display:flex;flex-direction:column;font-size:.9rem;gap:6px}.termination-dialog input[type=date]{border:1px solid #cfd6dd;border-radius:4px;font:inherit;height:36px;padding:0 8px}.termination-dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.secondary-button{background-color:#6c757d;border:none;border-radius:3px;color:#fff;cursor:pointer;font-size:.8em;padding:5px 8px}@media (max-width:900px){.admin-header{flex-wrap:wrap;gap:8px;justify-content:space-between}.admin-header .month-navigator{justify-content:center;order:3;position:static;transform:none;width:100%}.admin-controls{flex-wrap:wrap;justify-content:flex-end;width:100%}}.employee-calendar-container{margin:auto;max-width:1200px;padding:20px}.employee-calendar-capture{background:#fff;border-radius:8px;box-shadow:0 2px 5px #00000014;padding:20px}.employee-calendar-title{margin-bottom:16px;text-align:center}.employee-calendar-title h1{font-size:1.5rem;margin:0 0 6px}.employee-calendar-title p{color:#666;font-size:1rem;margin:0}.employee-calendar{border-collapse:collapse;margin-top:20px;table-layout:fixed;width:100%}.employee-calendar td,.employee-calendar th{border:1px solid #ccc;height:120px;overflow:hidden;padding:8px;text-align:center;vertical-align:top;width:14.28%}.employee-calendar th{background-color:#f8f9fa;height:40px}.employee-calendar .day-number{font-weight:700;text-align:left}.employee-calendar .day.today{background-image:linear-gradient(#1976d224,#1976d224);box-shadow:inset 0 0 0 3px #1976d2;position:relative}.employee-calendar .day.today .day-number{align-items:center;background:#1976d2;border-radius:50%;color:#fff;display:inline-flex;height:28px;justify-content:center;min-width:28px}.employee-calendar .work-type-label{font-size:1.2em;font-weight:700;margin-top:10px}.employee-calendar .empty{background-color:#f8f9fa}.employee-calendar .day.employment-inactive{background-color:#e5e7eb!important;color:#9aa0a6}.work-type-휴무{background-color:#ffecb3}.work-type-반차,.work-type-연차{background-color:#c8e6c9}.work-type-마감{background-color:#d1c4e9}.back-link{border-radius:4px;margin-top:20px;padding:10px 15px}.summary-container{background-color:#fff;border-radius:8px;box-shadow:0 2px 5px #0000001a;margin:auto;max-width:800px;padding:15px}.summary-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:10px}.summary-header-spacer{flex:1 1}.summary-header h1{color:#333;font-size:1.4em;margin:0}.download-button{background-color:#17a2b8;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9em;padding:8px 15px}.summary-table-wrapper{margin-bottom:20px}.summary-capture{background-color:#fff}.summary-capture-title{margin-bottom:18px;text-align:center}.summary-capture-title h1{color:#333;font-size:1.45rem;margin:0 0 6px}.summary-capture-title p{color:#666;margin:0}.summary-table{border-collapse:collapse;font-size:.75em;table-layout:fixed;width:100%}.summary-table td,.summary-table th{border:1px solid #ddd;height:auto;padding:6px 4px;text-align:center;vertical-align:middle;word-break:keep-all}.summary-table th{background-color:#f8f9fa;font-weight:700;white-space:nowrap}.summary-table td:first-child,.summary-table td:nth-child(2),.summary-table td:nth-child(3),.summary-table th:first-child,.summary-table th:nth-child(2),.summary-table th:nth-child(3){width:14%}.summary-table td:nth-child(4),.summary-table td:nth-child(5),.summary-table th:nth-child(4),.summary-table th:nth-child(5){width:29%}.summary-table td div{line-height:1.25}.employee-name-row{align-items:baseline;display:flex;flex-wrap:wrap;gap:2px;justify-content:center}.employee-name-text{font-size:1em}.employee-status-tag{color:#6c757d;font-size:.68em;line-height:1;white-space:nowrap}.summary-footer{border-top:1px solid #eee;font-size:1.1em;margin-top:25px;padding-top:15px;text-align:center}.summary-footer p{display:inline-block;margin:4px 15px 4px 0}.back-link{background-color:#6c757d;border-radius:5px;color:#fff;display:inline-block;margin-top:25px;padding:8px 15px;text-decoration:none;transition:background-color .2s}.back-link:hover{background-color:#5a6268}
/*# sourceMappingURL=main.639c9901.css.map*/