*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--green: #2d8c4e;--green-dark: #236e3c;--blue: #4a90d9;--red: #e53935;--bg: #f5f7f5;--surface: #ffffff;--border: #e0e4e0;--text: #1a1a1a;--text-muted: #6b7280;--radius: 8px;--shadow: 0 1px 3px rgba(0,0,0,.08)}body{font-family:-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}nav{background:var(--green);color:#fff;padding:0 20px;display:flex;align-items:center;gap:24px;height:48px}nav .brand{font-weight:600;font-size:15px;display:flex;align-items:center;gap:8px}nav a{color:#ffffffd9;text-decoration:none;font-size:14px;padding:4px 0}nav a:hover,nav a.active{color:#fff;border-bottom:2px solid white}.page{padding:20px;max-width:1400px;margin:0 auto}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface);padding:10px 14px;border-radius:var(--radius);border:1px solid var(--border);margin-bottom:16px;box-shadow:var(--shadow)}button{padding:6px 14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);cursor:pointer;font-size:13px;color:var(--text);transition:background .15s}button:hover{background:#f0f2f0}button.primary{background:var(--green);color:#fff;border-color:var(--green)}button.primary:hover{background:var(--green-dark)}button.danger{background:var(--red);color:#fff;border-color:var(--red)}button.icon{width:30px;height:30px;padding:0;display:flex;align-items:center;justify-content:center}select,input{padding:6px 10px;border-radius:var(--radius);border:1px solid var(--border);font-size:13px;background:var(--surface);color:var(--text)}select:focus,input:focus{outline:2px solid var(--green);outline-offset:1px}textarea{padding:8px 10px;border-radius:var(--radius);border:1px solid var(--border);font-size:13px;width:100%;resize:vertical;min-height:64px}label{font-size:12px;color:var(--text-muted);display:block;margin-bottom:4px}.week-label{padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:13px;font-weight:500;white-space:nowrap}.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse;background:var(--surface);min-width:900px}thead th{background:#f0f4f0;font-weight:500;padding:9px 10px;border-bottom:2px solid var(--border);border-right:1px solid var(--border);font-size:12px;color:var(--text-muted);text-align:center;white-space:nowrap}thead th:last-child{border-right:none}thead th.col-emp{text-align:left;min-width:180px}thead th.weekend{color:#c44}tbody td{border-bottom:1px solid var(--border);border-right:1px solid var(--border)}tbody td:last-child{border-right:none}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:#f9fbf9}tbody tr.total-row td{background:#f0f4f0;font-weight:500}td.col-emp{padding:8px 12px}td.col-total{padding:8px 12px;text-align:right;font-weight:500;background:#fafcfa;white-space:nowrap}td.day-cell{width:100px;height:54px;cursor:pointer;padding:0;vertical-align:middle}td.day-cell:hover{background:#e8f5e9!important}td.weekend-cell{background:#fafafa}.shift-block{margin:3px;border-radius:5px;padding:4px 7px;color:#fff;font-size:11px;line-height:1.4}.shift-sum{font-weight:600;font-size:12px}.shift-comment{font-size:10px;opacity:.85;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90px}.birthday-cell{background:#fff8e1!important}.birthday-badge{font-size:13px;text-align:center;line-height:1;margin-bottom:1px}.emp-name{font-weight:500;font-size:13px}.emp-sub{font-size:11px;color:var(--text-muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:200}.modal{background:var(--surface);border-radius:12px;border:1px solid var(--border);padding:20px;width:420px;max-width:95vw;box-shadow:0 8px 32px #00000026}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:14px;border-bottom:1px solid var(--border);margin-bottom:16px}.modal-title{font-weight:500;font-size:15px}.modal-meta{font-size:12px;color:var(--text-muted);margin-top:3px}.btn-close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-muted);padding:0;line-height:1}.modal-footer{display:flex;justify-content:space-between;align-items:center;padding-top:14px;border-top:1px solid var(--border);margin-top:16px}.field-row{display:flex;gap:10px;margin-bottom:12px}.field{flex:1}.field input,.field select{width:100%}.stats-bar{background:#fffde7;border:1px solid #f9e79f;border-radius:var(--radius);padding:8px 14px;font-size:12px;color:#856404;margin-bottom:12px}.emp-table{width:100%;border-collapse:collapse}.emp-table th,.emp-table td{padding:9px 12px;border-bottom:1px solid var(--border);text-align:left}.emp-table th:nth-child(5),.emp-table td:nth-child(5),.emp-table th:nth-child(6),.emp-table td:nth-child(6),.emp-table th:nth-child(7),.emp-table td:nth-child(7){width:120px}.emp-table th{background:#f0f4f0;font-weight:500;font-size:12px;color:var(--text-muted)}.emp-table tr:last-child td{border-bottom:none}.emp-table tr:hover td{background:#f9fbf9}.emp-table tr.fired-row td{color:#9ca3af}.emp-table tr.fired-row td b{color:#9ca3af;font-weight:400}.dept-table{min-width:unset}.report-table{width:100%;border-collapse:collapse}.report-table th,.report-table td{padding:9px 12px;border-bottom:1px solid var(--border);text-align:right}.report-table th{background:#f0f4f0;font-weight:500;font-size:12px;color:var(--text-muted);text-align:center}.report-table td:first-child,.report-table th:first-child{text-align:left}.report-table .total{font-weight:600;background:#f0f4f0}.badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:500}.badge-work{background:#e3f2fd;color:#1565c0}.badge-vacation{background:#e8f5e9;color:#2e7d32}.badge-sick{background:#fff3e0;color:#e65100}.badge-absent{background:#ffebee;color:#c62828}
