.loading-screen{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;background:var(--bg-primary);color:var(--accent-primary);font-family:var(--font-display)}.loading-spinner{width:50px;height:50px;border:3px solid var(--accent-primary-glow);border-top:3px solid var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-routes-container{width:100%}.sidebar-container{width:260px;height:100vh;position:fixed;top:0;left:0;background:#fffffff2;border-right:1px solid var(--border-glass);display:flex;flex-direction:column;padding:2rem 1.5rem;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:100;transition:transform .3s ease}.sidebar-open{transform:translate(0)}.sidebar-closed{transform:translate(-100%)}.sidebar-brand-wrapper{display:flex;align-items:center;gap:.75rem;margin-bottom:3rem}.sidebar-logo{width:40px;height:40px;border-radius:10px;background:var(--gradient-brand);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00823f40}.sidebar-title{font-size:1.25rem;font-weight:700;font-family:var(--font-display);background:var(--gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.sidebar-subtitle{font-size:.65rem;color:var(--text-dark);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.sidebar-nav{display:flex;flex-direction:column;gap:.5rem;flex:1}.sidebar-footer{padding:1rem;background:#00823f0a;border-radius:12px;border:1px solid var(--border-glass);display:flex;flex-direction:column;gap:.25rem}.sidebar-footer-label{font-size:.75rem;color:var(--text-muted)}.sidebar-footer-name{font-size:.85rem;font-family:var(--font-display);color:var(--text-main);font-weight:600}.sidebar-footer-role{font-size:.65rem;text-transform:uppercase;font-weight:700;letter-spacing:.05em}.role-admin{color:var(--accent-secondary)}.role-operator{color:var(--accent-primary)}.role-consultant{color:var(--text-muted)}.header-container{display:flex;justify-content:space-between;align-items:center;margin-bottom:2.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border-glass)}.header-title-wrapper{display:flex;align-items:center;gap:1rem}.header-toggle-btn{width:42px;height:42px;padding:0;border-radius:12px;display:flex;align-items:center;justify-content:center}.header-title{font-size:1.75rem;font-weight:700;font-family:var(--font-display);color:var(--text-main);margin-bottom:.25rem}.header-subtitle{font-size:.85rem;color:var(--text-muted)}.header-actions{display:flex;align-items:center;gap:1rem}.header-profile-card{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-glass);border-radius:12px}.header-avatar{width:32px;height:32px;border-radius:8px;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--accent-primary)}.header-user-info{display:flex;flex-direction:column;text-align:left}.header-user-name{font-size:.85rem;font-weight:600;color:var(--text-main)}.header-user-email{font-size:.7rem;color:var(--text-muted)}.dashboard-loading{display:flex;justify-content:center;align-items:center;height:60vh;color:var(--accent-primary)}.dashboard-container{animation:fadeIn .4s ease}.chart-title{font-size:1rem;font-family:var(--font-display);margin-bottom:1.5rem;color:var(--text-main)}.category-chart-empty{color:var(--text-dark)}.category-chart-svg{overflow:visible}.category-chart-bar{transition:all .3s}.donut-chart-wrapper{flex-direction:row;gap:1rem}.donut-chart-svg{transform:rotate(-90deg)}.donut-chart-path{transform-origin:50% 50%;transition:all .3s}.donut-legend-container{display:flex;flex-direction:column;gap:.5rem;flex:1}.donut-legend-item{display:flex;align-items:center;gap:.5rem;font-size:.8rem}.donut-legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.donut-legend-label{color:var(--text-muted)}.donut-legend-value{color:var(--text-main)}.timeline-title-wrapper{display:flex;align-items:center;gap:.5rem}.timeline-empty{text-align:center;padding:2rem 0;color:var(--text-dark)}.timeline-list{display:flex;flex-direction:column;gap:1.25rem;position:relative;padding-left:1rem}.timeline-vertical-line{position:absolute;top:5px;bottom:5px;left:20px;width:2px;background:#ffffff0d}.timeline-item{display:flex;gap:1.5rem;position:relative}.timeline-node{width:12px;height:12px;border-radius:50%;background:var(--accent-primary);border:3px solid #10121a;z-index:2;margin-top:4px;box-shadow:0 0 0 3px #6366f133}.timeline-content{display:flex;flex-direction:column;gap:.25rem;flex:1}.timeline-header{display:flex;justify-content:space-between;align-items:flex-start}.timeline-asset-name{font-size:.9rem;font-weight:600;color:var(--text-main)}.timeline-asset-code{font-size:.75rem;background:var(--bg-secondary);padding:.1rem .3rem;border-radius:4px;color:var(--accent-primary)}.timeline-date{font-size:.75rem;color:var(--text-dark)}.timeline-reason{font-size:.85rem;color:var(--text-muted)}.timeline-performer{font-size:.75rem;color:var(--text-dark)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-container{animation:fadeIn .4s ease}.page-loading{display:flex;justify-content:center;align-items:center;height:60vh;color:var(--accent-primary)}.filters-bar{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;margin-bottom:2rem}.filters-group{display:flex;flex:1;min-width:280px;gap:.75rem;align-items:center}.search-wrapper{position:relative;flex:1}.search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%)}.search-input{padding-left:2.25rem;height:40px}.filter-select{width:150px;height:40px;padding:0 .5rem}.action-btn{height:40px;padding:0 1.25rem}.table-card{padding:0}.empty-state{text-align:center;padding:3rem 0;color:var(--text-dark)}.empty-state-icon{margin-bottom:1rem;opacity:.5}.empty-state-title{color:var(--text-main);margin-bottom:.25rem}.col-center{text-align:center}.col-code{font-weight:600;color:var(--accent-primary);font-family:monospace}.asset-name{font-weight:500;color:var(--text-main)}.asset-desc{font-size:.75rem;color:var(--text-muted)}.asset-assignee{color:var(--text-dark)}.table-actions{display:flex;gap:.5rem;justify-content:center}.icon-btn{padding:.35rem;border-radius:8px}.modal-title{font-size:1.1rem;font-family:var(--font-display);color:var(--text-main)}.modal-close-btn{background:none;border:none;cursor:pointer;display:flex;align-items:center}.modal-body-form{display:flex;flex-direction:column;gap:1rem}.form-textarea{min-height:80px;resize:vertical}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.field-hint{font-size:.75rem;color:var(--text-dark)}.photo-preview-wrapper{margin-top:.5rem}.photo-preview-img{width:100%;max-height:200px;object-fit:cover;border-radius:8px}.photo-remove-btn{margin-top:.5rem;width:100%;padding:.5rem}.tabs-container{display:flex;gap:1rem;margin-bottom:2rem;border-bottom:1px solid var(--border-glass);padding-bottom:.5rem}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.card-item{display:flex;flex-direction:column;gap:1rem}.card-header{display:flex;justify-content:space-between;align-items:flex-start}.card-code{font-size:.75rem;color:var(--accent-primary);font-family:monospace;font-weight:700}.card-title{color:var(--text-main);margin-top:.15rem}.card-info-box{font-size:.85rem;color:var(--text-muted);display:flex;flex-direction:column;gap:.35rem;background:var(--bg-tertiary);padding:.75rem;border-radius:8px;border:1px solid var(--border-glass)}.full-btn{width:100%;height:38px;font-size:.85rem}.signature-canvas-wrapper{border:1px solid var(--border-glass);border-radius:8px;background:#fff}.signature-canvas{width:100%;height:200px}.radio-group{display:flex;gap:1rem;margin-top:.25rem}.radio-option{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;border-radius:10px;border:1px solid var(--border-glass);background:var(--bg-secondary);color:var(--text-muted);cursor:pointer;font-weight:600;font-size:.9rem;transition:var(--transition-smooth)}.radio-option.active{background:#10b98114;border-color:var(--accent-success);color:var(--accent-success)}.radio-option:nth-child(2).active{background:#ef444414;border-color:var(--accent-danger);color:var(--accent-danger)}:root{--bg-primary: #f8fafc;--bg-secondary: #ffffff;--bg-tertiary: #f1f5f9;--accent-primary: #00823F;--accent-primary-glow: rgba(0, 130, 63, .15);--accent-secondary: #FFDF00;--accent-success: #10b981;--accent-warning: #f59e0b;--accent-danger: #ef4444;--gradient-brand: linear-gradient(135deg, #00823F 0%, #00a651 100%);--gradient-dark: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);--gradient-glass: linear-gradient(135deg, rgba(255, 255, 255, .9) 0%, rgba(255, 255, 255, .7) 100%);--border-glass: rgba(0, 0, 0, .05);--border-glass-focus: rgba(0, 130, 63, .4);--shadow-premium: 0 4px 20px 0 rgba(0, 0, 0, .05);--text-main: #1e293b;--text-muted: #64748b;--text-dark: #334155;--font-display: "Outfit", "Inter", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--transition-smooth: all .25s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-main);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}h1,h2,h3,h4,.brand-title{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}.app-container{display:flex;min-height:100vh;background:var(--gradient-dark)}.main-content{flex:1;display:flex;flex-direction:column;padding:2rem;min-height:100vh;transition:var(--transition-smooth)}@media (max-width: 768px){.main-content{margin-left:0;padding:1rem}}.glass-card{background:var(--gradient-glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-glass);border-radius:16px;padding:1.5rem;box-shadow:var(--shadow-premium);transition:var(--transition-smooth)}.glass-card:hover{border-color:#ffffff1a;box-shadow:0 12px 40px #00000073}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:12px;font-family:var(--font-display);font-size:.95rem;font-weight:500;cursor:pointer;transition:var(--transition-smooth);border:1px solid transparent;outline:none}.btn-primary{background:var(--gradient-brand);color:var(--bg-primary);box-shadow:0 2px 8px #c86f4b40;font-weight:600}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 14px #c86f4b59}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-main);border:1px solid var(--border-glass)}.btn-secondary:hover{background:#ffffff0d;border-color:#ffffff26}.btn-success{background:var(--accent-success);color:var(--bg-primary);box-shadow:0 2px 8px #7ea17240;font-weight:600}.btn-success:hover{transform:translateY(-2px);box-shadow:0 4px 14px #7ea17259}.btn-danger{background:var(--accent-danger);color:#fff;box-shadow:0 2px 8px #b04c4c40;font-weight:600}.btn-danger:hover{transform:translateY(-2px);box-shadow:0 4px 14px #b04c4c59}.form-group{margin-bottom:1.25rem;display:flex;flex-direction:column;gap:.5rem}.form-label{font-size:.85rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.input-field{width:100%;padding:.75rem 1rem;border-radius:10px;background:var(--bg-secondary);border:1px solid var(--border-glass);color:var(--text-main);font-family:var(--font-body);font-size:.95rem;outline:none;transition:var(--transition-smooth)}.input-field:focus{border-color:var(--accent-primary);background:var(--bg-tertiary);box-shadow:0 0 0 3px var(--accent-primary-glow)}.input-field::placeholder{color:var(--text-dark)}.table-container{overflow-x:auto;border-radius:12px;border:1px solid var(--border-glass);background:var(--bg-secondary)}.premium-table{width:100%;border-collapse:collapse;text-align:left;font-size:.95rem}.premium-table th{background:var(--bg-tertiary);padding:1rem;font-family:var(--font-display);font-weight:500;color:var(--text-muted);border-bottom:1px solid var(--border-glass);text-transform:uppercase;font-size:.8rem;letter-spacing:.05em}.premium-table td{padding:1rem;border-bottom:1px solid var(--border-glass);color:var(--text-main)}.premium-table tr:last-child td{border-bottom:none}.premium-table tr:hover td{background:#ffffff05}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.badge-active{background:#7ea17226;color:var(--accent-success);border:1px solid rgba(126,161,114,.3)}.badge-pending{background:#cca05a26;color:var(--accent-warning);border:1px solid rgba(204,160,90,.3)}.badge-maintenance{background:#c86f4b26;color:var(--accent-primary);border:1px solid rgba(200,111,75,.3)}.badge-rejected{background:#b04c4c26;color:var(--accent-danger);border:1px solid rgba(176,76,76,.3)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;width:100vw;background:radial-gradient(circle at 50% 50%,var(--bg-tertiary) 0%,var(--bg-primary) 100%);padding:1.5rem}.login-card{width:100%;max-width:440px;border-radius:24px;padding:2.5rem;background:#ffffffe6;border:1px solid var(--border-glass);box-shadow:0 20px 50px #0000001a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.login-header{text-align:center;margin-bottom:2rem}.brand-icon-wrapper{width:56px;height:56px;border-radius:16px;background:var(--gradient-brand);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;box-shadow:0 8px 24px #c86f4b40}.brand-name{font-size:1.75rem;background:var(--gradient-brand);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.5rem}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;margin-bottom:2rem}.kpi-card{display:flex;align-items:center;justify-content:space-between}.kpi-details h3{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;margin-bottom:.5rem;letter-spacing:.05em}.kpi-value{font-size:1.75rem;font-weight:700;font-family:var(--font-display);color:var(--text-main)}.kpi-icon{width:48px;height:48px;border-radius:12px;background:var(--bg-tertiary);border:1px solid var(--border-glass);display:flex;align-items:center;justify-content:center;color:var(--accent-primary)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{width:100%;max-width:580px;background:var(--bg-secondary);border:1px solid var(--border-glass);border-radius:20px;box-shadow:var(--shadow-premium);overflow:hidden;animation:modalFadeIn .3s ease}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{padding:1.25rem 1.5rem;background:var(--bg-tertiary);border-bottom:1px solid var(--border-glass);display:flex;justify-content:space-between;align-items:center}.modal-body{padding:1.5rem;max-height:70vh;overflow-y:auto}.modal-footer{padding:1.25rem 1.5rem;background:var(--bg-tertiary);border-top:1px solid var(--border-glass);display:flex;justify-content:flex-end;gap:.75rem}.charts-grid{display:grid;grid-template-columns:2fr 1fr;gap:1.5rem;margin-bottom:2rem}@media (max-width: 992px){.charts-grid{grid-template-columns:1fr}}.chart-wrapper{display:flex;flex-direction:column;height:320px;justify-content:center;align-items:center;position:relative}.toast{position:fixed;bottom:2rem;right:2rem;padding:1rem 1.5rem;border-radius:12px;color:#fff;display:flex;align-items:center;gap:.75rem;box-shadow:var(--shadow-premium);z-index:1100;animation:toastSlideIn .3s ease forwards}@keyframes toastSlideIn{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.toast-success{background:var(--accent-success)}.toast-error{background:var(--accent-danger)}
