.app-layout{display:flex;height:100vh;overflow:hidden;background:#1a1b2e;color:#e2e8f0}.app-sidebar{width:220px;flex-shrink:0;background:#16213e;border-right:1px solid #334155;display:flex;flex-direction:column;overflow:hidden}.app-sidebar-brand{display:flex;align-items:center;gap:.625rem;padding:1rem 1.25rem;font-size:1.25rem;font-weight:600;color:#e2e8f0;border-bottom:1px solid #334155}.app-sidebar-brand-icon{width:1.75rem;height:1.75rem;flex-shrink:0}.app-sidebar-nav{flex:1;padding:.75rem 0}.app-sidebar-link{display:block;padding:.5rem 1.25rem;color:#94a3b8;text-decoration:none;font-size:.9375rem;transition:background .15s,color .15s}.app-sidebar-link:hover{background:#1e293b;color:#e2e8f0}.app-sidebar-link.active{background:#0f172a;color:#e2e8f0;font-weight:500;border-left:3px solid #3b82f6;padding-left:calc(1.25rem - 3px)}.app-sidebar-footer{padding:.75rem 1.25rem;border-top:1px solid #334155;display:flex;flex-direction:column;gap:.5rem}.app-sidebar-username{width:100%;padding:.25rem 0;color:#94a3b8;font-size:.875rem;text-align:center}.app-sidebar-logout{width:100%;padding:.5rem .75rem;border-radius:6px;border:1px solid #475569;background:transparent;color:#94a3b8;font-size:.875rem;cursor:pointer}.app-sidebar-logout:hover{background:#334155;color:#e2e8f0}.app-content{flex:1;overflow:auto;min-width:0;min-height:0;display:flex;flex-direction:column;background:#e0f2fe}.app-content>*{flex:1;min-height:0;display:flex;flex-direction:column}.login-page{min-height:100vh;background:linear-gradient(160deg,#1a1b2e,#16213e,#0f3460);display:flex;align-items:center;justify-content:center;padding:1rem}.login-card{width:100%;max-width:420px;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 20px 60px #0006}.login-card-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.5rem 1.75rem;display:flex;align-items:center;gap:.75rem}.login-card-icon{font-size:1.5rem;opacity:.9}.login-card-header h1{margin:0;font-size:1.5rem;font-weight:600}.login-card-body{padding:1.75rem}.login-field{margin-bottom:1.25rem}.login-field label{display:block;font-size:.875rem;font-weight:500;color:#374151;margin-bottom:.35rem}.login-field input{width:100%;padding:.65rem .9rem;border:1px solid #d1d5db;border-radius:8px;font-size:1rem;box-sizing:border-box}.login-field input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea26}.login-password-wrap{position:relative;display:flex;align-items:center}.login-password-wrap input{padding-right:2.75rem}.login-password-toggle{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);padding:.35rem;border:none;background:none;color:#6b7280;cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center}.login-password-toggle:hover{color:#374151;background:#0000000d}.login-error{background:#fef2f2;color:#b91c1c;padding:.5rem .75rem;border-radius:6px;font-size:.875rem;margin-bottom:1rem}.login-error-block{display:flex;align-items:flex-start;gap:.75rem;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fecaca;border-left:4px solid #dc2626;border-radius:10px;padding:1rem 1.25rem;margin-bottom:1.25rem;box-shadow:0 1px 3px #b91c1c14}.login-error-icon{flex-shrink:0;width:1.5rem;height:1.5rem;border-radius:50%;background:#dc2626;color:#fff;font-size:.875rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}.login-error-content{min-width:0}.login-error-title{font-weight:600;color:#991b1b;font-size:.9375rem;margin-bottom:.25rem}.login-error-hint{font-size:.8125rem;color:#b91c1c;line-height:1.4;opacity:.95}.login-submit{width:100%;padding:.75rem 1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;margin-top:.5rem}.login-submit:hover:not(:disabled){opacity:.95}.login-submit:disabled{opacity:.7;cursor:not-allowed}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;overflow:auto}.modal-window{background:#fff;border-radius:8px;box-shadow:0 20px 25px -5px #00000026,0 8px 10px -6px #0000001a;max-width:min(420px,calc(100vw - 2rem));width:100%;max-height:min(calc(100vh - 2rem),100%);min-width:0;margin:auto;display:flex;flex-direction:column}.modal-window--wide{max-width:min(800px,calc(100vw - 2rem))}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0}.modal-title{margin:0;font-size:1.125rem;font-weight:600;color:#1e293b}.modal-close{width:2rem;height:2rem;padding:0;border:none;background:transparent;color:#64748b;font-size:1.5rem;line-height:1;cursor:pointer;border-radius:6px}.modal-close:hover{background:#f1f5f9;color:#334155}.modal-body{padding:1.25rem;overflow-y:auto}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.modal-btn-primary{padding:.4rem 1rem;border-radius:6px;border:1px solid #3b82f6;background:#3b82f6;color:#fff;font-size:.875rem;cursor:pointer}.modal-btn-primary:hover{background:#2563eb;border-color:#2563eb}.summary-filters-modal{display:flex;flex-direction:column;gap:1rem;min-width:0;max-width:100%}.summary-filters-section{display:flex;flex-direction:column;gap:.75rem;min-width:0}.summary-filters-section-title{margin:0 0 .25rem;font-size:.875rem;font-weight:600;color:#475569}.summary-filters-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.75rem 1.25rem;min-width:0}@media (max-width: 640px){.summary-filters-grid{grid-template-columns:1fr}}.summary-filters-field{display:flex;flex-direction:column;gap:.25rem;min-width:0}.summary-filters-label{font-size:.8125rem;color:#64748b}.summary-filters-input{padding:.4rem .5rem;border-radius:6px;border:1px solid #cbd5e1;background:#fff;color:#1e293b;font-size:.875rem;min-width:0;max-width:100%;box-sizing:border-box}.summary-filters-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.summary-filters-date-range{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.summary-filters-date-range .summary-filters-input{flex:1;min-width:0}.summary-filters-date-sep{font-size:.8125rem;color:#64748b;flex-shrink:0}.summary-filters-actions{display:flex;justify-content:flex-end;gap:.5rem;padding-top:.75rem;border-top:1px solid #e2e8f0}.summary-filters-btn{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;cursor:pointer}.summary-filters-btn-reset{border:1px solid #94a3b8;background:#fff;color:#334155}.summary-filters-btn-reset:hover{background:#f8fafc}.summary-filters-btn-cancel{padding:.5rem 1rem;border-radius:6px;border:1px solid #94a3b8;background:#fff;color:#334155;font-size:.875rem;cursor:pointer}.summary-filters-btn-cancel:hover{background:#f8fafc}.summary-filters-btn-apply{border:1px solid #3b82f6;background:#3b82f6;color:#fff}.summary-filters-btn-apply:hover{background:#2563eb;border-color:#2563eb}.summary-columns-modal{display:flex;flex-direction:column;gap:1rem;min-width:0;max-width:100%}.summary-columns-hint{margin:0;font-size:.875rem;color:#64748b}.summary-columns-list{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem;height:50vh;min-height:200px;min-width:0}.summary-columns-group{display:flex;flex-direction:column;gap:.35rem;min-width:0;min-height:0;overflow:hidden;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.summary-columns-group-inner{overflow-y:auto;overflow-x:hidden;flex:1;min-height:0;padding:.25rem .5rem .5rem}.summary-columns-group-title{font-size:.8125rem;font-weight:600;color:#475569;margin-bottom:.25rem;padding:.5rem .5rem 0;flex-shrink:0}.summary-columns-empty{font-size:.875rem;color:#94a3b8;font-style:italic;padding:.25rem 0}.summary-columns-row{display:flex;align-items:center;gap:.5rem;padding:.35rem 0}.summary-columns-check{flex:1;display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#334155;cursor:pointer}.summary-columns-check input{width:1rem;height:1rem}.summary-columns-move{display:flex;gap:.2rem}.summary-columns-move button{width:1.75rem;height:1.75rem;padding:0;border:1px solid #cbd5e1;background:#fff;color:#64748b;font-size:.875rem;cursor:pointer;border-radius:4px;line-height:1}.summary-columns-move button:hover:not(:disabled){background:#f1f5f9;color:#334155}.summary-columns-move button:disabled{opacity:.4;cursor:not-allowed}.summary-columns-actions{display:flex;justify-content:flex-end;gap:.5rem;padding-top:.75rem;border-top:1px solid #e2e8f0}.summary-columns-btn{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;cursor:pointer}.summary-columns-btn-reset{border:1px solid #94a3b8;background:#fff;color:#334155}.summary-columns-btn-reset:hover{background:#f8fafc}.summary-columns-btn-cancel{border:1px solid #94a3b8;background:#fff;color:#334155}.summary-columns-btn-cancel:hover{background:#f8fafc}.summary-columns-btn-apply{border:1px solid #3b82f6;background:#3b82f6;color:#fff}.summary-columns-btn-apply:hover{background:#2563eb;border-color:#2563eb}.summary-layout{padding:1rem 1.5rem;color:#1e293b}.summary-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;position:sticky;top:0;z-index:20;margin-bottom:1rem;padding:.5rem 0 .25rem;background:#e0f2fe;box-shadow:0 1px #0000000f}.summary-toolbar-label{font-size:.875rem;color:#334155;margin-right:.75rem}.summary-createrepair-btn{padding:.4rem .75rem;border-radius:6px;border:1px solid #059669;background:#ecfdf5;color:#047857;font-size:.875rem;cursor:pointer}.summary-createrepair-btn:hover:not(:disabled){background:#d1fae5;color:#065f46}.summary-createrepair-btn:disabled{opacity:.6;cursor:not-allowed}.summary-createrepair-progress{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:.5rem 0}.summary-createrepair-spinner{width:2.5rem;height:2.5rem;border:3px solid #e2e8f0;border-top-color:#0ea5e9;border-radius:50%;animation:summary-createrepair-spin .8s linear infinite}@keyframes summary-createrepair-spin{to{transform:rotate(360deg)}}.summary-createrepair-modal-text{margin:0;color:#334155;font-size:1rem}.summary-filters-btn-open{padding:.4rem .75rem;border-radius:6px;border:1px solid #3b82f6;background:#fff;color:#3b82f6;font-size:.875rem;cursor:pointer}.summary-filters-btn-open:hover{background:#eff6ff}.summary-columns-btn-open{padding:.4rem .75rem;border-radius:6px;border:1px solid #64748b;background:#fff;color:#475569;font-size:.875rem;cursor:pointer;margin-left:.5rem}.summary-columns-btn-open:hover{background:#f8fafc;color:#334155}.summary-toolbar-filters{margin-left:auto;font-size:.8125rem;color:#475569;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.summary-toolbar-filters{flex-basis:100%;margin-left:0;max-width:none;white-space:normal}}.summary-main{margin-top:0}.summary-error-block{margin-bottom:1rem}.summary-error{background:#7f1d1d;color:#fecaca;padding:.5rem 1rem;border-radius:6px;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.summary-error-log{margin-top:.5rem;padding:.75rem;border-radius:6px;background:#f8fafc;border:1px solid #e2e8f0}.summary-error-log-text{margin:0 0 .5rem;padding:.5rem;font-size:.75rem;font-family:ui-monospace,monospace;color:#475569;white-space:pre-wrap;word-break:break-all;max-height:12rem;overflow-y:auto}.summary-error-log-copy{padding:.35rem .65rem;border-radius:6px;border:1px solid #94a3b8;background:#f1f5f9;color:#334155;font-size:.8125rem;cursor:pointer}.summary-error-log-copy:hover{background:#e2e8f0}.summary-retry{padding:.35rem .65rem;border-radius:6px;border:1px solid #fecaca;background:#991b1b;color:#fecaca;font-size:.875rem;cursor:pointer}.summary-retry:hover{background:#b91c1c}.summary-loading{padding:2rem;text-align:center;color:#64748b}.summary-table-wrap{border-radius:8px;border:1px solid #e2e8f0;overflow:visible;background:#e0f2fe}.summary-table-scroll{overflow:auto;max-width:100%;background:#e0f2fe;max-height:calc(100vh - 8rem)}.summary-table{width:100%;border-collapse:collapse;font-size:.8125rem}.summary-table th,.summary-table td{padding:.5rem .6rem;text-align:center;border-bottom:1px solid #e2e8f0}.summary-table thead{position:sticky;top:0;z-index:10;background:#f8fafc;box-shadow:0 2px 4px -2px #0000001a}.summary-table th{position:sticky;top:0;z-index:10;background:#f8fafc;color:#64748b;font-weight:500;white-space:nowrap;isolation:isolate}.summary-table th.summary-col-filtered{background:#fef3c7;color:#92400e}.summary-table th:first-child.summary-col-filtered{background:#fef3c7}.summary-table tbody td.summary-col-filtered{background:#fef3c7;color:#92400e}.summary-table tbody tr:hover td.summary-col-filtered{background:#fde68a;color:#92400e}.summary-table tbody tr{cursor:pointer}.summary-table tbody tr:hover{background:#f8fafc}.summary-table tbody tr.summary-row-selected td{background:#1e3a5f;color:#fff}.summary-table tbody tr.summary-row-selected{background:#1e3a5f}.summary-table tbody tr.summary-row-selected:hover td{background:#1e4976;color:#fff}.summary-table tbody tr.summary-row-selected:hover{background:#1e4976}.summary-table tbody tr.summary-row-selected td.summary-col-filtered{background:#1e3a5f;color:#fff}.summary-table tbody tr.summary-row-selected:hover td.summary-col-filtered{background:#1e4976;color:#fff}.summary-table tbody tr.summary-row-date-sep td{border-top:3px solid #eab308!important}.summary-table td{color:#334155}.users-layout{color:#1e293b;min-height:100%;display:flex;flex-direction:column}.users-main{flex:1;min-height:0;padding:1rem 1.5rem;display:flex;flex-direction:column}.users-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.users-title{margin:0;font-size:1.25rem;font-weight:600;color:#1e293b}.users-btn-add{padding:.5rem 1rem;border-radius:6px;border:1px solid #3b82f6;background:#3b82f6;color:#fff;font-size:.875rem;cursor:pointer}.users-btn-add:hover{background:#2563eb;border-color:#2563eb}.users-btn-edit{padding:.25rem .6rem;border-radius:6px;border:1px solid #94a3b8;background:#f1f5f9;color:#334155;font-size:.8125rem;cursor:pointer}.users-btn-edit:hover{background:#e2e8f0}.users-error{background:#7f1d1d;color:#fecaca;padding:.5rem 1rem;border-radius:6px;margin-bottom:1rem}.users-form-section{margin-bottom:2rem}.users-list-section{margin-bottom:2rem;flex:1;min-height:0;display:flex;flex-direction:column}.users-list-section .users-table-wrap{flex:1;min-height:0;overflow:auto;margin:0 -.25rem;padding:0 .25rem}.users-form-section h2,.users-list-section h2{font-size:1rem;color:#64748b;margin-bottom:.75rem}.users-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.users-form-modal{flex-direction:column;align-items:stretch}.users-form-field{display:flex;flex-direction:column;gap:.25rem}.users-form-field span{font-size:.875rem;color:#64748b}.users-form-modal .users-form-field input,.users-form-modal .users-form-field select{width:100%;box-sizing:border-box}.users-form-field input:disabled{background:#f1f5f9;color:#64748b;cursor:not-allowed}.users-form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.users-btn-secondary{padding:.4rem 1rem;border-radius:6px;border:1px solid #94a3b8;background:#fff;color:#334155;font-size:.875rem;cursor:pointer}.users-btn-secondary:hover{background:#f8fafc}.users-form input[type=text],.users-form input[type=password]{padding:.4rem .75rem;border-radius:6px;border:1px solid #cbd5e1;background:#fff;color:#1e293b;width:140px}.users-form select{padding:.4rem .75rem;border-radius:6px;border:1px solid #cbd5e1;background:#fff;color:#1e293b}.users-form button{padding:.4rem 1rem;border-radius:6px;border:1px solid #94a3b8;background:#f1f5f9;color:#334155;cursor:pointer}.users-form button:hover:not(:disabled){background:#e2e8f0}.users-checkbox{display:flex;align-items:center;gap:.35rem;font-size:.875rem;color:#64748b}.users-table{width:100%;min-width:560px;border-collapse:collapse;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.users-table th:last-child,.users-table td:last-child{white-space:nowrap;text-align:right;padding-right:.75rem}.users-table th,.users-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #e2e8f0}.users-table th{background:#f8fafc;color:#64748b;font-weight:500}.users-table tbody tr:hover{background:#f8fafc}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,sans-serif}
