html,body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:#f4f6f8;color:#1f2937}.shell{display:flex;min-height:100vh}.sidebar{width:220px;background:#123b5d;padding:22px;box-sizing:border-box;display:flex;flex-direction:column;gap:8px}.brand{color:#fff;font-size:20px;font-weight:700;margin-bottom:22px}.sidebar a{color:#dbeafe;text-decoration:none;padding:10px 12px;border-radius:6px}.sidebar a.active,.sidebar a:hover{background:#1d5f91;color:#fff}main{flex:1}header{height:64px;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;padding:0 28px;font-weight:600}.content{padding:28px}table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid #e5e7eb}th{background:#eef3f7}.cards{display:flex;gap:16px;margin:16px 0}.card{background:#fff;border-radius:8px;padding:18px;min-width:160px;box-shadow:0 1px 3px #0001}.card strong{display:block;font-size:28px}.toolbar{display:flex;gap:14px;align-items:end;margin:15px 0}.toolbar label{display:flex;flex-direction:column;gap:4px}.toolbar input,.toolbar button{padding:8px}
header{justify-content:space-between}
.user-box{display:flex;align-items:center;gap:10px;font-weight:400}
.link-button{background:none;border:none;color:#1d5f91;cursor:pointer;padding:0;font:inherit;text-decoration:underline}
button{cursor:pointer}
.row-actions{display:flex;gap:6px}
.row-actions button{padding:6px 10px}
.pagination{display:flex;align-items:center;gap:14px;margin:14px 0}
.badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600}
.badge-success{background:#dcfce7;color:#166534}
.badge-warning{background:#fef3c7;color:#92400e}
.badge-danger{background:#fee2e2;color:#991b1b}
.auth-shell{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#f4f6f8}
.auth-card{background:#fff;border-radius:10px;padding:32px;box-shadow:0 2px 10px #0002;width:340px;display:flex;flex-direction:column;gap:12px}
.auth-card h1{margin:0;font-size:22px}
.auth-sub{margin:0;color:#6b7280;font-size:13px}
.auth-hint{margin:0;color:#6b7280;font-size:12px}
.auth-card label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#374151}
.auth-card input{padding:9px;border:1px solid #d1d5db;border-radius:6px}
.auth-card button{padding:10px;border:none;border-radius:6px;background:#1d5f91;color:#fff;font-weight:600;margin-top:8px}
.auth-error{background:#fee2e2;color:#991b1b;padding:8px 10px;border-radius:6px;font-size:13px}
.modal-backdrop{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:50}
.modal-card{background:#fff;border-radius:10px;padding:24px;width:460px;max-height:86vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.modal-card h2{margin:0 0 4px}
.modal-card label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#374151}
.modal-card input,.modal-card select,.modal-card textarea{padding:8px;border:1px solid #d1d5db;border-radius:6px;font-family:inherit}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}
.modal-actions button,.modal-card>button{padding:9px 16px;border:none;border-radius:6px;background:#1d5f91;color:#fff;font-weight:600}
.modal-actions button:first-child{background:#e5e7eb;color:#1f2937}
.checkbox-group{border:1px solid #e5e7eb;border-radius:6px;padding:10px}
.checkbox-group-label{display:block;font-size:12px;color:#6b7280;margin-bottom:6px}
.org-search{width:100%;box-sizing:border-box;padding:6px 8px;margin-bottom:8px;border:1px solid #d1d5db;border-radius:6px;font-size:13px}
.checkbox-row{flex-direction:row!important;align-items:center;gap:8px!important;font-size:14px!important}
.reveal-password{display:block;background:#f3f4f6;padding:12px;border-radius:6px;font-size:18px;text-align:center;letter-spacing:1px}
.tab-active{background:#1d5f91!important;color:#fff!important}
.timesheet-table{font-size:12px;white-space:nowrap}
.timesheet-table th,.timesheet-table td{padding:4px 6px;text-align:center}
.timesheet-table td:nth-child(2){text-align:left}
.timesheet-table th.ts-header-holiday{background:#fecaca}
.timesheet-table th.ts-header-weekend{background:#e2e8f0}
.timesheet-table th.ts-header-makeup{background:#dbeafe}
.timesheet-table td.ts-full{background:#fff;color:#166534;font-weight:700;font-size:18px;line-height:1}
.timesheet-table td.ts-late{background:#fef9c3;color:#854d0e;font-weight:700}
.timesheet-table td.ts-absent{background:#fff}
.timesheet-table td.ts-holiday{background:#fecaca;color:#991b1b}
.timesheet-table td.ts-weekend{background:#e2e8f0;color:#64748b}
.timesheet-table tr.ts-group-header td{background:#123b5d;color:#fff;text-align:left;font-weight:700;font-size:13px;padding:6px 10px}
.timesheet-table td.ts-editable{cursor:pointer}
.timesheet-table td.ts-editable:hover{outline:2px solid #1d5f91;outline-offset:-2px}
.timesheet-table td.ts-manual{box-shadow:inset 0 0 0 2px #b45309}
.timesheet-table td.ts-out-of-org{background:repeating-linear-gradient(45deg,#e5e7eb,#e5e7eb 4px,#f3f4f6 4px,#f3f4f6 8px);color:#9ca3af;cursor:not-allowed}
.nav-group-label{color:#9db8cf;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin:14px 0 2px;padding:0 12px}
.date-picker{position:relative;display:inline-block}
.date-picker-input-wrap{display:flex;align-items:center;gap:8px;border:1px solid #d1d5db;border-radius:6px;padding:8px 10px;cursor:pointer;background:#fff;min-width:130px;transition:border-color .15s}
.date-picker-input-wrap:hover{border-color:#1d5f91}
.date-picker-input{border:none;outline:none;font:inherit;width:100%;cursor:pointer;background:transparent;color:#1f2937}
.date-picker-input::placeholder{color:#9ca3af}
.date-picker-icon{width:16px;height:16px;color:#6b7280;flex-shrink:0}
.date-picker-overlay{position:fixed;inset:0;z-index:60}
.date-picker-popup{position:absolute;top:calc(100% + 6px);left:0;z-index:61;background:#fff;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:12px;width:264px}
.date-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-weight:600;color:#123b5d;font-size:13px}
.date-picker-header button{background:none;border:none;font-size:18px;line-height:1;cursor:pointer;color:#1d5f91;padding:4px 10px;border-radius:5px}
.date-picker-header button:hover{background:#eef4fa}
.date-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.date-picker-weekday{font-size:11px;color:#9ca3af;font-weight:600;padding:4px 0}
.date-picker-day{padding:7px 0;border-radius:6px;cursor:pointer;font-size:13px;color:#1f2937}
.date-picker-day:hover{background:#eef4fa}
.date-picker-day-outside{color:#d1d5db}
.date-picker-day-today{font-weight:700;color:#1d5f91}
.date-picker-day-selected{background:#1d5f91;color:#fff}
.date-picker-day-selected:hover{background:#164b74}
.date-picker-footer{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid #e5e7eb}
.date-picker-footer button{background:none;border:none;color:#1d5f91;font-size:12px;cursor:pointer;padding:4px 6px}
.date-picker-footer button:hover{text-decoration:underline}
