*,*:before,*:after{box-sizing:border-box}body{margin:0}*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;background:#f5f6fa;color:#1a1a2e;font-size:14px}.app-layout{display:flex;min-height:100vh}.sidebar{width:200px;background:#1a1a2e;color:#e0e0e0;display:flex;flex-direction:column;padding:1.5rem 1rem;gap:1rem;flex-shrink:0}.sidebar .logo{font-size:1.4rem;font-weight:700;color:#fff;letter-spacing:.1em;margin-bottom:1rem}.sidebar ul{list-style:none;display:flex;flex-direction:column;gap:.25rem}.sidebar a{display:block;padding:.5rem .75rem;border-radius:6px;color:#c0c0d0;text-decoration:none;transition:background .15s}.sidebar a:hover{background:#ffffff1a;color:#fff}.nav-section-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:#555;padding:.75rem .75rem .1rem}.sidebar-footer{margin-top:auto}.user-info{font-size:.75rem;color:#888;margin-bottom:.5rem}.btn-logout{width:100%;padding:.4rem;background:transparent;border:1px solid #444;color:#aaa;border-radius:4px;cursor:pointer}.btn-logout:hover{background:#ffffff0d;color:#fff}.main-content{flex:1;padding:2rem;overflow-y:auto}.page-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.page-header h2{flex:1}.filters{display:flex;gap:1rem;align-items:flex-end;margin-bottom:1rem}.toolbar{margin-bottom:.75rem}.lock-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.actions{margin-top:1rem}.badge{display:inline-block;padding:.2rem .6rem;border-radius:12px;font-size:.75rem;font-weight:600}.badge.locked{background:#fde68a;color:#92400e}.badge.open{background:#d1fae5;color:#065f46}button{padding:.4rem .9rem;border-radius:6px;border:1px solid #d1d5db;background:#fff;cursor:pointer;font-size:.85rem;transition:background .15s}button:hover:not(:disabled){background:#f3f4f6}button:disabled{opacity:.5;cursor:not-allowed}button[type=submit],.actions button{background:#1a1a2e;color:#fff;border-color:transparent}button[type=submit]:hover:not(:disabled),.actions button:hover:not(:disabled){background:#2d2d4e}.btn-danger{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.btn-danger:hover:not(:disabled){background:#fecaca}.btn-warning{background:#fef3c7;border-color:#fcd34d;color:#92400e}.data-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #00000012}.data-table th,.data-table td{padding:.65rem 1rem;text-align:left;border-bottom:1px solid #f0f0f5}.data-table th{background:#f8f9fc;font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#6b7280}.data-table tr:last-child td{border-bottom:none}.data-table input,.data-table select{width:100%;padding:.3rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.85rem}.status-badge{display:inline-block;padding:.15rem .5rem;border-radius:10px;font-size:.8rem;background:#e5e7eb;color:#374151}.status-badge.status-available{background:#d1fae5;color:#065f46}.status-badge.status-vor{background:#fee2e2;color:#991b1b}.status-badge.status-maintenance{background:#fef3c7;color:#92400e}.login-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}.login-container h1{font-size:1.5rem;color:#1a1a2e}.login-form,.form-card{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 2px 8px #00000014;display:flex;flex-direction:column;gap:1rem;min-width:320px}label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:500}input,select{padding:.45rem .7rem;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;width:100%}input:focus,select:focus{outline:none;border-color:#1a1a2e}.error{color:#dc2626;background:#fee2e2;border:1px solid #fca5a5;padding:.5rem .75rem;border-radius:6px;font-size:.85rem}.tabs{display:flex;gap:0;border-bottom:2px solid #e0e0e8;margin-bottom:1.5rem}.tab-btn{padding:.6rem 1.25rem;background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:.9rem;color:#555;margin-bottom:-2px;transition:color .15s,border-color .15s}.tab-btn:hover{color:#1a1a2e}.tab-btn.active{border-bottom-color:#1a1a2e;font-weight:600;color:#1a1a2e}.copy-box{background:#f0f4ff;border:1px solid #c0c8e8;border-radius:6px;padding:.75rem 1rem;font-family:monospace;font-size:.85rem;word-break:break-all;margin:.5rem 0 1rem}.matrix-table th,.matrix-table td{text-align:center;padding:.35rem .6rem;white-space:nowrap}.matrix-table td:first-child,.matrix-table th:first-child{text-align:left;min-width:220px;white-space:normal}.matrix-table tr.module-header td{background:#f0f0f8;font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:#555}.matrix-table tr.deprecated{opacity:.4}.edit-drawer{background:#f8f9ff;border-top:2px solid #e0e0f0;border-bottom:2px solid #e0e0f0;padding:1rem 1.5rem;margin:0}.modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:10px;box-shadow:0 8px 32px #0000002e;width:100%;max-width:680px;max-height:90vh;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem .75rem;border-bottom:1px solid #e5e7eb}.modal-header h3{font-size:1rem;font-weight:600}.modal-close-btn{background:transparent;border:none;font-size:1.25rem;color:#6b7280;cursor:pointer;padding:.2rem .4rem;line-height:1}.modal-close-btn:hover{color:#111;background:#f3f4f6}.modal-body{padding:1.25rem 1.5rem;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:.85rem}.modal-footer{padding:.75rem 1.5rem 1.25rem;border-top:1px solid #e5e7eb;display:flex;gap:.75rem;justify-content:flex-end}.modal-section-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#9ca3af;font-weight:600;margin-top:.25rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem}textarea{padding:.45rem .7rem;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;width:100%;font-family:inherit;resize:vertical;min-height:70px}textarea:focus{outline:none;border-color:#1a1a2e}.badge.incident-open{background:#d1fae5;color:#065f46}.badge.incident-in-review{background:#fef3c7;color:#92400e}.badge.incident-closed{background:#e5e7eb;color:#374151}.badge.sev-minor{background:#f0fdf4;color:#166534}.badge.sev-moderate{background:#fef9c3;color:#854d0e}.badge.sev-major{background:#ffedd5;color:#9a3412}.badge.sev-critical{background:#fee2e2;color:#991b1b}.fleetTabs{display:flex;gap:10px;margin-bottom:16px}.fleetTabs .tab{display:flex;align-items:center;gap:0;padding:8px 14px;border-radius:6px;border:1px solid #e5e7eb;background:#f9fafb;cursor:pointer;font-weight:500;font-size:.85rem;color:#374151}.fleetTabs .tab:hover:not(.active){background:#f3f4f6}.fleetTabs .tab.active{background:#111827;color:#fff;border-color:#111827}.fleetTabs .badge{margin-left:8px;font-size:11px;background:#f3f4f6;color:#374151;padding:2px 7px;border-radius:999px;font-weight:500}.fleetTabs .tab.active .badge{background:#ffffff2e;color:#fff}.fleetTabs .badge.amber{background:#fef3c7;color:#92400e}.fleetTabs .tab.active .badge.amber{background:#f59e0b;color:#fff}.fleetStatusActionBar{position:fixed;left:200px;right:0;bottom:0;z-index:1000;background:#fff;border-top:1px solid #e5e7eb;padding:12px 16px;display:flex;align-items:center;gap:1rem;box-shadow:0 -2px 8px #00000012}.fleetStatusActionBar .dirty-badge{font-size:.82rem;color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:12px;padding:.2rem .7rem;font-weight:600}.fleetStatusActionBar .btn-save{background:#1a1a2e;color:#fff;border-color:transparent;padding:.45rem 1.1rem}.fleetStatusActionBar .btn-save:hover:not(:disabled){background:#2d2d4e}.fleetStatusPageContent{padding-bottom:80px}.fuelAllocFooter{position:fixed;left:200px;right:0;bottom:0;z-index:1000;background:#fff;border-top:1px solid #e5e7eb;padding:12px 16px;display:flex;align-items:center;gap:1rem;box-shadow:0 -2px 8px #00000012}.fuelAllocPageContent{padding-bottom:80px}.data-table tr.row-dirty td:first-child{border-left:3px solid #f59e0b;padding-left:calc(1rem - 3px)}.btn-download{display:inline-block;padding:.4rem .9rem;border-radius:6px;border:1px solid #d1d5db;background:#fff;cursor:pointer;font-size:.85rem;text-decoration:none;color:inherit;transition:background .15s}.btn-download:hover{background:#f3f4f6}.report-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.report-date-label{font-size:1.15rem;font-weight:700;color:#1a1a2e}.report-site-label{font-size:1rem;color:#6b7280}.report-warning-banner{background:#fef3c7;border:1px solid #fcd34d;color:#92400e;border-radius:6px;padding:.5rem .9rem;margin-bottom:1rem;font-size:.9rem;font-weight:500}.report-section{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem}.report-section h3{margin:0 0 .75rem;font-size:.95rem;font-weight:700;color:#1a1a2e;text-transform:uppercase;letter-spacing:.04em}.report-stat-row{display:flex;flex-wrap:wrap;gap:1rem}.report-stat-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:.75rem 1.1rem;min-width:110px;text-align:center}.report-stat-value{font-size:1.75rem;font-weight:700;color:#1a1a2e;line-height:1}.report-stat-label{font-size:.8rem;color:#6b7280;margin-top:.25rem}.report-stat-sub{font-size:.75rem;color:#9ca3af;margin-top:.15rem}.report-completeness-item{display:flex;align-items:center;gap:.6rem;font-size:.9rem}.dailyStatusActionBar{position:fixed;left:200px;right:0;bottom:0;z-index:1000;background:#fff;border-top:1px solid #e5e7eb;padding:12px 16px;display:flex;align-items:center;gap:1rem;box-shadow:0 -2px 8px #00000012}.dailyStatusActionBar .dirty-badge{font-size:.82rem;color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:12px;padding:.2rem .7rem;font-weight:600}.dailyStatusActionBar .btn-save{background:#1a1a2e;color:#fff;border-color:transparent;padding:.45rem 1.1rem}.dailyStatusActionBar .btn-save:hover:not(:disabled){background:#2d2d4e}.dailyStatusPageContent{padding-bottom:80px}.data-table tr.row-error td:first-child{border-left:3px solid #ef4444;padding-left:calc(1rem - 3px)}.row-error-msg{font-size:.75rem;color:#991b1b;margin-top:.2rem}
