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;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{background:#f4f6f8;color:#1f2937;font-family:system-ui,sans-serif}.center{align-items:center;display:flex;justify-content:center;padding:16px}.center,.layout{min-height:100vh}.topbar{align-items:center;background:#1e293b;color:#fff;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;padding:14px 20px}.topbar h1{font-size:20px}.topbar>div{align-items:center;display:flex;gap:12px}.tabs{background:#fff;border-bottom:1px solid #e5e7eb;display:flex;gap:8px;overflow-x:auto;padding:12px 20px}.tabs button{background:#6b7a9a;border:none;border-radius:8px;cursor:pointer;padding:8px 16px;white-space:nowrap}.tabs button.active{background:#0f2960;color:#fff}.content{margin:0 auto;max-width:1100px;padding:20px}.card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #00000014;margin-bottom:16px;padding:20px}.card h3{margin-bottom:14px}.cards-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}button,input,select{border:1px solid #d1d5db;border-radius:8px;font-size:15px;outline:none;padding:10px 12px;width:100%}label{color:#374151;display:block;font-size:14px;margin-bottom:10px}label input,label select{margin-top:4px}.form-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:14px}button{background:#0f2960;border:none;color:#fff;cursor:pointer;transition:opacity .2s}button:hover{opacity:.9}button.danger{background:#dc2626}button.small{padding:4px 10px;width:auto}.row{flex-wrap:wrap;gap:10px}.checkbox,.row{align-items:center;display:flex}.checkbox{gap:8px}.checkbox input{width:auto}.login-form{max-width:360px;width:100%}.login-form input{margin-bottom:12px}.error{color:#dc2626;margin-bottom:10px}.stat-card p{margin-bottom:8px}.progress{background:#e5e7eb;border-radius:6px;height:12px;margin:10px 0 6px;overflow:hidden;width:100%}.progress-bar{background:linear-gradient(90deg,#22c55e,#16a34a);height:100%;transition:width .4s}.percent{color:#16a34a;font-size:14px;font-weight:600}.table{border-collapse:collapse;width:100%}.table td,.table th{border-bottom:1px solid #eef2f7;font-size:14px;padding:10px;text-align:left}.table th{color:#6b7280;font-weight:600}.muted{color:#9ca3af;font-size:13px;margin-bottom:10px}.filters{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px}.filters label{align-items:center;display:flex;gap:8px;margin:0}.filters input{width:90px}.subsection{border-top:1px dashed #e5e7eb;margin-top:16px;padding-top:16px}.subsection h4{font-size:15px;margin-bottom:10px}.shift-row{margin-bottom:8px}.shift-row span{font-size:14px;min-width:100px}.shift-row input{width:140px}ul{list-style:none}ul li{border-bottom:1px solid #f1f5f9;font-size:15px;padding:8px 0}.role-item{align-items:center;display:flex;justify-content:space-between}.stat-card.clickable{cursor:pointer;transition:transform .15s,box-shadow .15s}.stat-card.clickable:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}.modal-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.modal{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;max-height:90vh;max-width:700px;overflow-y:auto;width:100%}.modal-header{align-items:flex-start;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px;position:-webkit-sticky;position:sticky;top:0}.modal-header h2{font-size:20px}.modal-close{background:#f1f5f9;color:#374151;font-size:16px;padding:6px 12px;width:auto}.modal-body{padding:20px}.modal-body h3{margin-bottom:12px}.modal-total{background:#f0f9ff;border-radius:8px;font-size:16px;margin-bottom:20px;padding:12px}.calendar-card{overflow-x:auto;padding:12px}.calendar-table{border-collapse:initial;border-spacing:6px;min-width:700px;table-layout:fixed;width:100%}.calendar-table td,.calendar-table th{padding:0}.cal-weekday{color:#6b7280;font-size:13px;font-weight:600;padding:6px 0;text-align:center}.cal-cell{background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:flex;flex-direction:column;height:100%;min-height:92px;padding:6px}.cal-cell.empty{background:#0000;border:none;min-height:0}.cal-cell.clickable{cursor:pointer;transition:box-shadow .15s}.cal-cell.clickable:hover{box-shadow:0 2px 8px #0000001f}.cal-day-num{font-size:14px;font-weight:600;margin-bottom:4px}.cal-cell.work-day{background:#eef4ff;border-color:#c7d7fe}.cal-cell.day-off{background:#fef2f2;border-color:#fecaca}.cal-cell.day-off .cal-day-num{color:#dc2626}.cal-entries{display:flex;flex-direction:column;gap:3px;overflow:hidden}.cal-entry{border-radius:5px;font-size:11px;overflow:hidden;padding:2px 5px;text-overflow:ellipsis;white-space:nowrap}.cal-entry.day{background:#fef3c7;color:#92400e}.cal-entry.night{background:#e0e7ff;color:#3730a3}.badge{border-radius:6px;display:inline-block;font-size:12px;font-weight:600;padding:2px 8px}.badge.day{background:#fef3c7;color:#92400e}.badge.night{background:#e0e7ff;color:#3730a3}.legend{color:#374151;display:flex;flex-wrap:wrap;font-size:14px;gap:18px;margin-bottom:14px}.legend span{align-items:center;display:flex;gap:6px}.legend .dot{border-radius:4px;display:inline-block;height:14px;width:14px}.legend .dot.work{background:#eef4ff;border:1px solid #c7d7fe}.legend .dot.off{background:#fef2f2;border:1px solid #fecaca}@media (max-width:600px){.calendar-table{border-spacing:4px;min-width:620px}.cal-cell{min-height:70px;padding:4px}.cal-day-num{font-size:13px}.cal-entry{font-size:10px;padding:1px 4px}.legend{font-size:13px;gap:10px}.modal-body,.modal-header{padding:16px}.modal-header h2,.topbar h1{font-size:17px}.content{padding:14px}.card{padding:16px}.cards-grid,.form-grid{grid-template-columns:1fr}.table td,.table th{font-size:13px;padding:8px 6px}.shift-row{align-items:stretch;flex-direction:column}.filters input,.shift-row input{width:100%}}
/*# sourceMappingURL=main.ea9637c0.css.map*/