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:#f5f7fa;color:#2c3e50;font-family:Segoe UI,Tahoma,sans-serif;font-size:13px;transition:background .3s,color .3s}body.theme-night{background:#0f1419;color:#e0e6ed}body.theme-night .filters,body.theme-night .group,body.theme-night .header,body.theme-night .modal,body.theme-night .tab,body.theme-night .vacation-card{background:#1a2332;border-color:#2a3746;color:#e0e6ed}body.theme-night .emp-name,body.theme-night .group-title,body.theme-night .header h1,body.theme-night .modal-header h2,body.theme-night .view-value{color:#e0e6ed}body.theme-night .group-title,body.theme-night .table th{background:#15202b;border-color:#2a3746}body.theme-night .table th{color:#8b98a5}body.theme-night .table td{border-color:#2a3746;color:#e0e6ed}body.theme-night .table tbody tr:hover{background:#22303f}body.theme-night .tab{border-color:#2a3746;color:#8b98a5}body.theme-night .tab:hover{background:#22303f;color:#e0e6ed}body.theme-night .filter-search,body.theme-night .filter-select,body.theme-night .form-group input,body.theme-night .form-group select,body.theme-night .form-group textarea{background:#15202b;border-color:#2a3746;color:#e0e6ed}body.theme-night .form-section{background:#15202b}body.theme-night .modal-footer,body.theme-night .modal-header{background:#15202b;border-color:#2a3746}body.theme-night .view-row{border-color:#2a3746}body.theme-night .view-label{color:#8b98a5}body.theme-night .btn{background:#22303f;border-color:#2a3746;color:#e0e6ed}body.theme-night .btn:hover{background:#2a3746}body.theme-night .btn-cancel{background:#22303f;border-color:#2a3746;color:#e0e6ed}body.theme-night .role-label{background:#22303f;color:#8b98a5}body.theme-night .vacancy-row{background:#15202b}body.theme-night .month-bar-wrap{background:#22303f}body.theme-night .empty{color:#6c757d}body.theme-night .user-badge{background:#22303f;border-color:#2a3746;color:#e0e6ed}.shift-toggle{background:#f1f3f5;border:1px solid #e9ecef;border-radius:8px;display:flex;gap:0;padding:3px}.shift-btn{background:#0000;border:none;border-radius:6px;color:#6c757d;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:6px 14px;transition:all .2s}.shift-btn:hover{color:#495057}.shift-btn.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:#1a1a2e}.shift-btn.active:first-child{color:#e65100}.shift-btn.active:last-child{color:#1565c0}body.theme-night .shift-toggle{background:#15202b;border-color:#2a3746}body.theme-night .shift-btn{color:#8b98a5}body.theme-night .shift-btn.active{background:#22303f;color:#fff}.header{background:#fff;border:1px solid #e9ecef;border-radius:10px;box-shadow:0 1px 3px #0000000a;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:12px;padding:10px 16px}.header,.header h1{align-items:center;display:flex}.header h1{color:#1a1a2e;font-size:17px;font-weight:700;gap:8px}.header-shift{flex-shrink:0}.header-user{align-items:center;display:flex;gap:10px;margin-left:auto}.user-badge{background:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;color:#495057;font-size:12px;padding:5px 12px}.header-actions{display:flex;flex-wrap:wrap;gap:8px;width:100%}.btn{align-items:center;background:#fff;border:1px solid #ced4da;border-radius:6px;color:#495057;cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:500;gap:5px;padding:7px 14px;transition:all .18s ease}.btn:hover{background:#f8f9fa;border-color:#adb5bd;transform:translateY(-1px)}.btn-primary{background:#4caf50;border-color:#4caf50;color:#fff}.btn-primary:hover{background:#43a047;border-color:#43a047}.btn-logout{background:#f8f9fa}.btn-logout:hover{background:#dc3545;border-color:#dc3545;color:#fff}.btn-back{background:#fff;border:1px solid #ced4da;border-radius:6px;color:#495057;cursor:pointer;font-size:13px;padding:6px 14px}.filters{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:8px;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;padding:10px 14px}.filter-search{border:1px solid #ced4da;border-radius:6px;flex:1 1;font-family:inherit;font-size:13px;min-width:200px;padding:6px 12px}.filter-search:focus{border-color:#4caf50;box-shadow:0 0 0 2px #4caf5026;outline:none}.filter-select{background:#fff;font-family:inherit;font-size:13px;padding:6px 10px}.btn-clear,.filter-select{border:1px solid #ced4da;border-radius:6px;cursor:pointer}.btn-clear{background:#f8f9fa;color:#6c757d;font-size:12px;padding:6px 12px}.btn-clear:hover{background:#e9ecef;color:#dc3545}.group{animation:fadeIn .25s ease-out;background:#fff;border:1px solid #e9ecef;border-radius:8px;margin-bottom:12px;overflow:hidden}.group-title{align-items:center;background:linear-gradient(90deg,#f8f9fa,#fff);border-bottom:1px solid #e9ecef;color:#495057;display:flex;font-size:12px;font-weight:700;gap:8px;letter-spacing:.5px;padding:9px 14px;text-transform:uppercase}.group-title .count{background:#e9ecef;border-radius:10px;color:#495057;font-size:11px;font-weight:600;margin-left:auto;padding:1px 8px}.table{border-collapse:collapse;font-size:13px;width:100%}.table th{background:#fff;border-bottom:1px solid #e9ecef;color:#6c757d;font-size:11px;font-weight:600;letter-spacing:.3px;padding:8px 14px;text-align:left;text-transform:uppercase}.table th.col-tab{width:80px}.table th.col-dayoff{width:130px}.table th.col-status{width:160px}.table th.col-role{width:180px}.table td{border-bottom:1px solid #f1f3f5;padding:9px 14px;vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tbody tr{cursor:pointer;transition:background .15s}.table tbody tr:hover{background:#f8f9fa}.table tbody tr.editable:hover{background:#f0f7ff}.emp-name{color:#1a1a2e;font-weight:500}.col-tab-value{color:#495057;font-family:Courier New,monospace}.col-dayoff-value{color:#6c757d;font-size:12px}.role-label{background:#f1f3f5;border-radius:4px;color:#495057;display:inline-block;font-size:11.5px;font-weight:500;margin-right:4px;padding:2px 8px}.emp-avatar{align-items:center;border-radius:50%;color:#fff;display:inline-flex;flex-shrink:0;font-size:11px;font-weight:700;height:28px;justify-content:center;margin-right:8px;width:28px}.emp-avatar.male{background:linear-gradient(135deg,#4a90e2,#357abd)}.emp-avatar.female{background:linear-gradient(135deg,#e91e63,#c2185b)}.emp-name-cell{align-items:center;display:flex}.vacancy-row{background:#fafafa;cursor:default!important}.vacancy-row:hover{background:#f5f5f5!important}.vacancy-text{color:#adb5bd;font-style:italic;font-weight:400}.badge{align-items:center;border-radius:4px;display:inline-flex;font-size:10.5px;font-weight:600;gap:3px;letter-spacing:.3px;margin-right:3px;padding:3px 8px;text-transform:uppercase}.badge-vakhta{background:#e3f2fd;border:1px solid #bbdefb;color:#1565c0}.badge-vacation{background:#fff3e0;border:1px solid #ffe0b2;color:#e65100}.badge-dismissed{background:#ffebee;border:1px solid #ffcdd2;color:#c62828}.table tbody tr.on-vacation-row{background:#fff8e1!important}.table tbody tr.on-vacation-row:hover{background:#fff3c4!important}.table tbody tr.going-soon-row{background:#f0fbfd!important}.table tbody tr.going-soon-row:hover{background:#e0f5fa!important}.table tbody tr.coming-back-row{background:#f0faf0!important}.table tbody tr.coming-back-row:hover{background:#e3f6e3!important}.empty{color:#adb5bd;font-size:12px;font-style:italic;padding:14px;text-align:center}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal{animation:slideIn .2s ease-out;background:#fff;border-radius:10px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:520px;overflow:hidden;width:100%}.modal-small{max-width:460px}.modal-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:14px 20px}.modal-header h2{color:#1a1a2e;font-size:15px;font-weight:600}.modal-close{background:none;border:none;color:#6c757d;cursor:pointer;font-size:24px;line-height:1;padding:0 6px}.modal-close:hover{color:#dc3545}.modal-body{overflow-y:auto;padding:18px 20px}.modal-footer{background:#f8f9fa;border-top:1px solid #e9ecef;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:12px 20px}.modal-footer-right{display:flex;gap:8px;margin-left:auto}.form-group{display:flex;flex-direction:column;margin-bottom:12px}.form-group label{color:#495057;font-size:12px;font-weight:600;margin-bottom:4px}.form-group input[type=date],.form-group input[type=text],.form-group select,.form-group textarea{border:1px solid #ced4da;border-radius:6px;font-family:inherit;font-size:13px;padding:7px 10px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#4caf50;box-shadow:0 0 0 2px #4caf5026;outline:none}.form-group textarea{min-height:50px;resize:vertical}.form-row{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.form-section{background:#f8f9fa;border-left:3px solid #667eea;border-radius:8px;margin:14px 0;padding:12px}.form-section-title{align-items:center;color:#495057;cursor:pointer;display:flex;font-size:11.5px;font-weight:700;gap:6px;letter-spacing:.5px;list-style:none;padding:2px 0;text-transform:uppercase;-webkit-user-select:none;user-select:none}.form-section-title::-webkit-details-marker{display:none}.form-section-title:before{content:"▶";display:inline-block;font-size:9px;transition:transform .2s}details[open] .form-section-title:before{transform:rotate(90deg)}.form-section-title:hover{color:#667eea}.shift-radio-group{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.shift-radio{align-items:center;background:#fff;border:2px solid #e9ecef;border-radius:8px;cursor:pointer;display:flex;font-size:13px;font-weight:600;justify-content:center;padding:10px;transition:all .15s}.shift-radio input{display:none}.shift-radio:hover{border-color:#adb5bd}.shift-radio.active{background:#f0faf0;border-color:#4caf50;color:#2e7d32}.btn-cancel{background:#fff;border:1px solid #ced4da;border-radius:6px;color:#495057;cursor:pointer;font-family:inherit;font-size:13px;padding:8px 16px}.btn-cancel:hover{background:#f8f9fa}.btn-save{background:#4caf50;border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:8px 20px}.btn-save:hover{background:#43a047}.btn-vacation-modal{background:#fff;border:1px solid #ced4da;border-radius:6px;color:#495057;cursor:pointer;font-family:inherit;font-size:13px;padding:8px 14px}.btn-vacation-modal:hover{background:#e8f5e9;border-color:#4caf50}.btn-dismiss-modal{background:#fff;border:1px solid #ced4da;border-radius:6px;color:#495057;cursor:pointer;font-family:inherit;font-size:13px;padding:8px 14px}.btn-dismiss-modal:hover{background:#ffebee;border-color:#dc3545;color:#c62828}.view-row{grid-gap:8px;border-bottom:1px solid #f1f3f5;display:grid;font-size:13px;gap:8px;grid-template-columns:130px 1fr;padding:8px 0}.view-row:last-child{border-bottom:none}.view-label{color:#6c757d;font-weight:500}.view-value{color:#212529}.view-section{border-top:1px solid #e9ecef;margin-top:12px;padding-top:12px}.view-section-title{color:#6c757d;font-size:11px;font-weight:700;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.tabs{display:flex;gap:6px;margin-bottom:10px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:thin}.tabs::-webkit-scrollbar{height:5px}.tabs::-webkit-scrollbar-thumb{background:#ced4da;border-radius:3px}.tab{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:8px;color:#6c757d;cursor:pointer;display:inline-flex;flex-shrink:0;font-family:inherit;font-size:13px;font-weight:500;gap:8px;padding:8px 14px;transition:all .18s ease;white-space:nowrap}.tab:hover{background:#f8f9fa;border-color:#ced4da;color:#495057;transform:translateY(-1px)}.tab.active{background:linear-gradient(135deg,#4caf50,#43a047);border-color:#4caf50;box-shadow:0 3px 10px #4caf5040;color:#fff;font-weight:600}.tab-icon{font-size:14px;line-height:1}.tab-count{align-items:center;background:#e9ecef;border-radius:10px;color:#495057;display:inline-flex;font-size:11px;font-weight:700;height:20px;justify-content:center;min-width:26px;padding:0 7px}.tab.active .tab-count{background:#ffffff40;color:#fff}.tab-content{animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.vacation-stats{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:14px}.vacation-card{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:12px 16px;transition:all .15s}.vacation-card:hover{box-shadow:0 3px 8px #00000014;transform:translateY(-1px)}.vacation-card.vacation-now{background:#fffdf5;border-left:3px solid #ffc107}.vacation-card.vacation-now:hover{background:#fff8e1}.vacation-card.vacation-soon{background:#f0fbfd;border-left:3px solid #17a2b8}.vacation-card.vacation-back{background:#f0faf0;border-left:3px solid #4caf50}.vacation-icon{font-size:26px;line-height:1}.vacation-info{flex:1 1}.vacation-label{color:#6c757d;font-size:11px;font-weight:600;letter-spacing:.3px;margin-bottom:2px;text-transform:uppercase}.vacation-value{color:#1a1a2e;font-size:20px;font-weight:700}.vacations-tab{animation:fadeIn .2s ease-out}.months-chart{padding:14px 16px}.month-row{grid-gap:12px;align-items:center;display:grid;font-size:13px;gap:12px;grid-template-columns:100px 1fr 220px;padding:6px 0}.month-name{color:#495057;font-weight:600}.month-bar-wrap{background:#f1f3f5;border-radius:4px;height:22px;overflow:hidden}.month-bar{align-items:center;background:linear-gradient(90deg,#ffc107,#ffb300);border-radius:4px;display:flex;height:100%;justify-content:flex-end;min-width:4px;padding-right:8px;transition:width .4s ease}.month-bar-count{color:#fff;font-size:12px;font-weight:700}.month-names{color:#6c757d;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login-page{align-items:center;background:#f5f7fa;display:flex;justify-content:center;min-height:100vh;padding:20px}.login-box{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 4px 20px #0000000f;max-width:400px;padding:36px;width:100%}.login-header{margin-bottom:28px;text-align:center}.login-header h1{color:#1a1a2e;font-size:20px;margin-bottom:6px}.login-header p{color:#6c757d;font-size:13px}.login-box .form-group input{border:1px solid #ced4da;border-radius:8px;padding:10px 14px}.login-box .form-group input,.login-btn{font-family:inherit;font-size:14px;width:100%}.login-btn{background:#4caf50;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;margin-top:8px;padding:11px}.login-btn:hover:not(:disabled){background:#43a047}.login-btn:disabled{cursor:not-allowed;opacity:.6}.login-error{background:#ffebee;border-radius:6px;color:#c62828;font-size:13px;margin-top:10px;padding:10px 14px}.login-hint{border-top:1px solid #e9ecef;color:#6c757d;font-size:11.5px;line-height:1.7;margin-top:22px;padding-top:16px}.login-hint b{color:#495057}.print-header{display:none}@media print{.emp-actions,.filters,.header,.no-print,.shift-toggle{display:none!important}.print-header{border-bottom:2px solid #000;display:block!important;margin-bottom:16px;padding-bottom:10px;text-align:center}.print-header h1{font-size:20px;letter-spacing:1px;margin-bottom:6px}.print-meta{color:#333;display:flex;font-size:11px;justify-content:space-between}body{background:#fff!important;color:#000!important;font-size:11px}.app{margin:0;max-width:100%;padding:0}.group{border:1px solid #000;border-radius:0;box-shadow:none;margin-bottom:10px;page-break-inside:avoid}.group-title{background:#f0f0f0!important;border-bottom:1px solid #000;color:#000!important;font-size:11px;padding:5px 10px}.table{font-size:10.5px}.table th{background:#fff!important;border-bottom:1px solid #000;color:#000;font-size:10px;padding:4px 8px}.table td{border-bottom:1px solid #ccc;padding:5px 8px}.emp-name,.table td{color:#000}.badge{background:#fff!important;border:1px solid #999!important;color:#000!important}.table tbody tr:hover{background:#0000}}@page{size:A4 landscape;margin:10mm}@media (max-width:900px){.app{padding:10px}.header{align-items:flex-start;flex-direction:column}.header-shift,.shift-toggle{width:100%}.shift-btn{flex:1 1}.header-user{justify-content:space-between;margin-left:0;width:100%}.header-actions{width:100%}.header-actions .btn{flex:1 1}.filters{padding:8px 10px}.filter-search,.filter-select{flex:none;width:100%}.modal{margin:0;max-height:95vh;max-width:100%}.modal-footer{flex-direction:column-reverse}.modal-footer button,.modal-footer-right{width:100%}.modal-footer-right{flex-direction:column}.form-row,.view-row{grid-template-columns:1fr}.view-row{gap:2px}.month-row{grid-template-columns:80px 1fr}.month-names{display:none}}.stats-row{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 260px;margin-bottom:14px}.stats-left,.stats-right{display:flex}.stats-left .vacation-card,.stats-right .vacation-card{width:100%}.vacation-compact{align-items:center;background:#fff;background:#fffdf5;border:1px solid #e9ecef;border-left:3px solid #ffc107;border-radius:8px;cursor:default;display:flex;gap:14px;padding:12px 16px}.vacation-compact:hover{box-shadow:none;transform:none}.vacation-compact .vacation-icon{font-size:28px}.vacation-compact-body{display:flex;flex:1 1;flex-direction:column;gap:6px}.vacation-compact-row{align-items:center;border-radius:4px;cursor:pointer;display:flex;gap:8px;padding:2px 6px;transition:background .15s}.vacation-compact-row:hover{background:#fff3c4}.vacation-compact-row.small:hover{background:#e0f5fa}.vacation-compact-label{color:#6c757d;font-size:12px;font-weight:500}.vacation-compact-value{color:#1a1a2e;font-size:18px;font-weight:700;margin-left:auto;min-width:30px;text-align:right}.vacation-compact-value.small{font-size:14px}.vacation-compact-inline{display:flex;gap:12px}.vacation-compact-inline .vacation-compact-row{flex:1 1}.leaving-card{background:#fff5f5!important;border-left:3px solid #dc3545!important}.leaving-card:hover{background:#ffe5e5!important;box-shadow:0 3px 8px #dc354533!important}.badge-leaving{background:#ffebee;border:1px solid #ffcdd2;color:#c62828}.table tbody tr.leaving-soon-row{background:#fff0f0!important}.table tbody tr.leaving-soon-row:hover{background:#ffe0e0!important}.dismiss-days-info{background:#fff3e0;border-radius:6px;color:#e65100;font-size:13px;font-weight:500;margin-bottom:12px;padding:10px 14px;text-align:center}.btn-dismiss-confirm{background:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:8px 20px}.btn-dismiss-confirm:hover{background:#c62828}.btn-cancel-dismiss{background:#fff;border:1px solid #ced4da;border-radius:6px;color:#495057;cursor:pointer;font-family:inherit;font-size:13px;padding:8px 14px}.btn-cancel-dismiss:hover{background:#f8f9fa;border-color:#6c757d}body.theme-night .vacation-compact{background:#1a2332;border-color:#2a3746}body.theme-night .leaving-card,body.theme-night .table tbody tr.leaving-soon-row{background:#2a1a1a!important}body.theme-night .table tbody tr.leaving-soon-row:hover{background:#3a2020!important}body.theme-night .vacation-compact-value{color:#e0e6ed}@media (max-width:900px){.stats-row{grid-template-columns:1fr}.vacation-compact-inline{flex-direction:column;gap:4px}}.btn-add-slot{align-items:center;background:#4caf50;border:none;border-radius:50%;box-shadow:0 1px 3px #4caf504d;color:#fff!important;cursor:pointer;display:inline-flex;font-family:Arial,sans-serif;font-size:16px;font-weight:400;height:22px;justify-content:center;line-height:1;margin-left:auto;min-width:22px;padding:0;text-decoration:none;transition:all .15s;-webkit-user-select:none;user-select:none;width:22px}.btn-add-slot:hover{background:#43a047;box-shadow:0 2px 6px #4caf5066;transform:scale(1.08)}.btn-delete-slot{background:#0000;border:none;border-radius:4px;color:#dc3545;cursor:pointer;font-size:14px;opacity:0;padding:2px 6px;transition:all .15s}.table tbody tr:hover .btn-delete-slot{opacity:1}.btn-delete-slot:hover{background:#ffebee}.slot-form-info{background:#f0f7ff;border-left:3px solid #1565c0;border-radius:6px;color:#1565c0;font-size:13px;margin-bottom:14px;padding:10px 14px}body.theme-night .slot-form-info{background:#1a2841;color:#90caf9}body.theme-night .btn-delete-slot:hover{background:#3a1f1f}.zone-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;padding:8px 0}.modal-large{max-width:900px}.attendance-table td,.attendance-table th{padding:8px 10px}.attendance-select{border:1px solid #ced4da;border-radius:6px;cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;padding:6px 8px;width:100%}.attendance-select.status-work{background:#e8f5e9;border-color:#a5d6a7;color:#2e7d32}.attendance-select.status-sick{background:#fff3e0;border-color:#ffcc80;color:#e65100}.attendance-select.status-absent{background:#ffebee;border-color:#ef9a9a;color:#c62828}.attendance-select.status-dayoff{background:#e3f2fd;border-color:#90caf9;color:#1565c0}.attendance-select.status-vacation{background:#f3e5f5;border-color:#ce93d8;color:#6a1b9a}.attendance-comment{border:1px solid #ced4da;border-radius:6px;font-family:inherit;font-size:12px;padding:6px 8px;width:100%}.attendance-summary{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.sum-item{align-items:center;border-radius:4px;display:inline-flex;font-size:12px;font-weight:600;gap:3px;margin-right:4px;padding:3px 8px}.sum-work{background:#e8f5e9;color:#2e7d32}.sum-sick{background:#fff3e0;color:#e65100}.sum-absent{background:#ffebee;color:#c62828}.sum-dayoff{background:#e3f2fd;color:#1565c0}.sum-vacation{background:#f3e5f5;color:#6a1b9a}.saved-badge{animation:fadeIn .3s;color:#2e7d32;font-size:13px;font-weight:600;margin-right:10px}.btn-open-report{background:#fff;border:1px solid #bbdefb;border-radius:6px;color:#1565c0;cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;padding:5px 12px;transition:all .15s}.btn-open-report:hover{background:#e3f2fd;border-color:#1565c0}.attendance-list-filters{align-items:center;border-bottom:1px solid #e9ecef;display:flex;gap:10px;margin-bottom:14px;padding-bottom:12px}.attendance-list-filters label{color:#495057;font-size:12px;font-weight:600}body.theme-night .attendance-select{background:#15202b;border-color:#2a3746;color:#e0e6ed}body.theme-night .attendance-select.status-work{background:#1a3020;color:#81c784}body.theme-night .attendance-select.status-sick{background:#302010;color:#ffb74d}body.theme-night .attendance-select.status-absent{background:#301a1a;color:#ef9a9a}body.theme-night .attendance-select.status-dayoff{background:#1a2030;color:#90caf9}body.theme-night .attendance-select.status-vacation{background:#2a1a2a;color:#ce93d8}body.theme-night .attendance-comment{background:#15202b;border-color:#2a3746;color:#e0e6ed}body.theme-night .attendance-list-filters{border-bottom-color:#2a3746}body.theme-night .btn-open-report{background:#1a2332;border-color:#2a4a6a;color:#90caf9}body.theme-night .btn-open-report:hover{background:#22303f}@media (max-width:900px){.modal-large{max-width:100%}.attendance-table{font-size:12px}.attendance-table td,.attendance-table th{padding:6px 8px}}.report-actions{align-items:center;display:flex;gap:6px;justify-content:flex-end}.btn-delete-report{background:#fff;border:1px solid #ffcdd2;border-radius:6px;color:#dc3545;cursor:pointer;font-family:inherit;font-size:14px;padding:5px 10px;transition:all .15s}.btn-delete-report:hover{background:#ffebee;border-color:#dc3545;transform:scale(1.05)}body.theme-night .btn-delete-report{background:#1a2332;border-color:#4a2020;color:#ef9a9a}body.theme-night .btn-delete-report:hover{background:#3a1f1f;border-color:#ef9a9a}.print-header-attendance,.print-summary-attendance,.print-table-attendance{display:none}.btn-print-attendance{align-items:center;background:#fff;border:1px solid #ced4da;border-radius:6px;color:#495057;cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:600;gap:5px;padding:8px 16px;transition:all .15s}.btn-print-attendance:hover{background:#f8f9fa;border-color:#adb5bd}body.theme-night .btn-print-attendance{background:#1a2332;border-color:#2a3746;color:#e0e6ed}body.theme-night .btn-print-attendance:hover{background:#22303f}@media print{.attendance-summary,.attendance-table,.btn-cancel,.btn-print-attendance,.btn-save,.filters,.header,.modal-close,.modal-footer,.modal-header,.no-print,.print-header,.saved-badge,.stats-row,.tab-content,.tabs,.zone-actions{display:none!important}.attendance-modal-overlay{background:#fff!important;padding:0!important;z-index:auto!important}.attendance-modal,.attendance-modal-overlay{display:block!important;position:static!important}.attendance-modal{animation:none!important;border-radius:0!important;box-shadow:none!important;max-height:none!important;max-width:100%!important;overflow:visible!important;width:100%!important}.attendance-modal .modal-body{display:block!important;overflow:visible!important;padding:0!important}.app>.filters,.app>.stats-row,.app>.tab-content,.app>.tabs,.app>header{display:none!important}.print-header-attendance{border-bottom:2px solid #000;display:block!important;margin-bottom:16px;padding-bottom:10px;text-align:center}.print-header-attendance h1{font-size:18px;font-weight:700;letter-spacing:.5px;margin-bottom:6px}.print-meta-attendance{color:#333;display:flex;font-size:11px;justify-content:space-between}.print-table-attendance{border-collapse:collapse;color:#000;display:table!important;font-size:11px;width:100%}.print-table-attendance th{background:#f0f0f0!important;border:1px solid #000;color:#000;font-size:10.5px;font-weight:700;padding:5px 8px;text-align:left}.print-table-attendance td{background:#fff;border:1px solid #999;color:#000;padding:5px 8px}.print-table-attendance tbody tr:nth-child(2n){background:#fafafa}.print-summary-attendance{background:#f0f0f0!important;border:1px solid #000;color:#000;display:block!important;font-size:11px;margin-top:14px;padding:10px 14px}body{background:#fff!important;color:#000!important}.app{max-width:100%!important;padding:0!important}}@page{size:A4 portrait;margin:15mm 10mm}.users-toolbar{border-bottom:1px solid #e9ecef;display:flex;justify-content:flex-end;margin-bottom:12px;padding-bottom:12px}.users-table{font-size:13px}.users-table td{vertical-align:middle}.users-table tr.self-row{background:#f0f7ff}.users-table tr.self-row:hover{background:#e3f0ff}.role-badge{background:#f1f3f5;border-radius:4px;color:#495057;display:inline-block;font-size:11.5px;font-weight:500;padding:2px 8px;white-space:nowrap}.status-active{color:#2e7d32;font-size:12px;font-weight:600}.status-blocked{color:#c62828;font-size:12px;font-weight:600}.users-actions{display:flex;gap:4px;justify-content:flex-end}.btn-icon{background:#0000;border:1px solid #0000;border-radius:4px;cursor:pointer;font-size:14px;line-height:1;padding:4px 6px;transition:all .15s}.btn-icon:hover{background:#f8f9fa;border-color:#e9ecef}.btn-icon.danger:hover{background:#ffebee;border-color:#ffcdd2}body.theme-night .users-toolbar{border-bottom-color:#2a3746}body.theme-night .role-badge{background:#22303f;color:#8b98a5}body.theme-night .users-table tr.self-row{background:#1a2841}body.theme-night .users-table tr.self-row:hover{background:#1f3455}body.theme-night .btn-icon:hover{background:#22303f;border-color:#2a3746}body.theme-night .btn-icon.danger:hover{background:#3a1f1f;border-color:#5a2a2a}body.theme-night .status-active{color:#81c784}body.theme-night .status-blocked{color:#ef9a9a}@media (max-width:900px){.users-table{font-size:12px}.users-table td,.users-table th{padding:6px 8px}}.clickable-vacancy{transition:background .15s}.clickable-vacancy:hover{background:#e3f2fd!important}.clickable-vacancy:hover .vacancy-text{color:#1565c0!important;font-weight:600}body.theme-night .clickable-vacancy:hover{background:#1a2841!important}body.theme-night .clickable-vacancy:hover .vacancy-text{color:#90caf9!important}.assign-employees-list{display:flex;flex-direction:column;gap:4px;max-height:60vh;overflow-y:auto}.assign-employee-item{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:6px;cursor:pointer;display:flex;gap:12px;padding:10px 12px;transition:all .15s}.assign-employee-item:hover{background:#f0f7ff;border-color:#667eea;transform:translateX(3px)}.assign-employee-info{flex:1 1;min-width:0}.assign-employee-name{color:#1a1a2e;font-size:13.5px;font-weight:600;margin-bottom:2px}.assign-employee-meta{color:#6c757d;display:flex;flex-wrap:wrap;font-size:11.5px;gap:10px}.assign-employee-meta span{white-space:nowrap}.assign-employee-action{color:#667eea;font-size:18px;opacity:0;transition:opacity .15s}.assign-employee-item:hover .assign-employee-action{opacity:1}body.theme-night .assign-employee-item{background:#1a2332;border-color:#2a3746}body.theme-night .assign-employee-item:hover{background:#22303f;border-color:#667eea}body.theme-night .assign-employee-name{color:#e0e6ed}@media (max-width:900px){.assign-employee-meta{font-size:10.5px;gap:6px}}.stats-row-3{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr 1fr;margin-bottom:14px}.stats-item{display:flex}.stats-item .vacation-card{width:100%}.stats-card{background:#f5f7ff!important;border-left:3px solid #667eea!important;cursor:pointer}.stats-card:hover{background:#eef2ff!important;box-shadow:0 3px 8px #667eea33!important}.today-stats-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.today-stat-item{align-items:center;border-radius:4px;display:inline-flex;font-size:13px;font-weight:700;padding:2px 6px;white-space:nowrap}.stat-work{background:#e8f5e9;color:#2e7d32}.stat-sick{background:#fff3e0;color:#e65100}.stat-absent{background:#ffebee;color:#c62828}.stat-dayoff{background:#e3f2fd;color:#1565c0}.stat-vacation{background:#f3e5f5;color:#6a1b9a}.today-stats-filters{border-bottom:1px solid #e9ecef;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;padding-bottom:12px}.stats-filter-btn{background:#fff;border:1px solid #ced4da;border-radius:6px;color:#495057;cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;padding:6px 12px;transition:all .15s}.stats-filter-btn:hover{background:#f8f9fa}.stats-filter-btn.active{background:#667eea;border-color:#667eea;color:#fff}.stats-filter-btn.stat-work.active{background:#2e7d32;border-color:#2e7d32}.stats-filter-btn.stat-sick.active{background:#e65100;border-color:#e65100}.stats-filter-btn.stat-absent.active{background:#c62828;border-color:#c62828}.stats-filter-btn.stat-dayoff.active{background:#1565c0;border-color:#1565c0}.stats-filter-btn.stat-vacation.active{background:#6a1b9a;border-color:#6a1b9a}body.theme-night .stats-card{background:#1a2841!important}body.theme-night .stats-card:hover{background:#1f3455!important}body.theme-night .stats-filter-btn{background:#1a2332;border-color:#2a3746;color:#8b98a5}body.theme-night .today-stats-filters{border-bottom-color:#2a3746}body.theme-night .stat-work{background:#1a3020;color:#81c784}body.theme-night .stat-sick{background:#302010;color:#ffb74d}body.theme-night .stat-absent{background:#301a1a;color:#ef9a9a}body.theme-night .stat-dayoff{background:#1a2030;color:#90caf9}body.theme-night .stat-vacation{background:#2a1a2a;color:#ce93d8}@media (max-width:1200px){.stats-row-3{grid-template-columns:1fr}}.header-production{margin-left:15px;margin-right:15px}.production-card{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;display:flex;gap:10px;min-width:240px;padding:8px 14px;transition:all .15s}.production-card.clickable{cursor:pointer}.production-card.clickable:hover{box-shadow:0 4px 12px #667eea59;transform:translateY(-1px)}.production-icon{font-size:22px;line-height:1}.production-info{flex:1 1;min-width:0}.production-label{font-size:10px;letter-spacing:.5px;margin-bottom:1px;opacity:.9;text-transform:uppercase}.production-value{font-size:15px;font-weight:700;white-space:nowrap}.production-unit{font-size:11px;font-weight:400;opacity:.85}.production-edit-icon{font-size:14px;opacity:.7}.production-card.clickable:hover .production-edit-icon{opacity:1}.plan-in-modal{background:#f0f7ff;border-radius:4px;color:#667eea;font-weight:500;margin-top:4px;padding:3px 8px}.plan-in-modal,.print-plan{display:inline-block;font-size:12px}.print-plan{background:#f0f0f0!important;border:1px solid #000;color:#000;font-weight:600;margin:4px 0 8px;padding:4px 8px}body.theme-night .plan-in-modal{background:#1a2841;color:#90caf9}@media (max-width:1200px){.header-production{margin:10px 0 0;width:100%}.production-card{width:100%}}.plan-cell{background:#f0f7ff;border-radius:4px;color:#667eea;display:inline-block;font-size:13px;font-weight:700;padding:3px 8px;white-space:nowrap}body.theme-night .plan-cell{background:#1a2841;color:#90caf9}
/*# sourceMappingURL=main.047287a1.css.map*/