
:root,[data-theme="light"]{
--primary:#0062cc;--primary-dark:#004494;--primary-light:#e8f0fe;
--bg:#f0f2f5;--card-bg:#ffffff;--text-primary:#1a1a2e;--text-secondary:#4a4a6a;--text-muted:#8c8ca1;
--border-color:#e0e0e8;--input-bg:#ffffff;--sidebar-bg:#1a1a2e;--sidebar-text:#c4c4d4;--sidebar-active:#0062cc;
--hover-bg:#f5f5fa;--shadow:0 2px 12px rgba(0,0,0,.08);--danger:#dc3545;--success:#28a745;--warning:#ffc107;--info:#17a2b8;
--radius:12px;--radius-sm:8px;
}
[data-theme="dark"]{
--primary:#4da3ff;--primary-dark:#2b8aff;--primary-light:#1a2a4a;
--bg:#0d1117;--card-bg:#161b22;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-muted:#6e7681;
--border-color:#30363d;--input-bg:#0d1117;--sidebar-bg:#0d1117;--sidebar-text:#8b949e;--sidebar-active:#4da3ff;
--hover-bg:#1c2333;--shadow:0 2px 12px rgba(0,0,0,.3);--danger:#f85149;--success:#3fb950;--warning:#d29922;--info:#58a6ff;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:"Inter",sans-serif;background:var(--bg);color:var(--text-primary);overflow-x:hidden}
a{text-decoration:none;color:inherit}
.app-container{display:flex;min-height:100vh}

/* Sidebar */
.sidebar{width:260px;background:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;z-index:100;transition:transform .3s}
.sidebar-header{padding:20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.1)}
.sidebar-header h2{font-size:1.3rem;color:#fff;display:flex;align-items:center;gap:10px}
.sidebar-close{display:none;background:none;border:none;color:#fff;font-size:1.2rem;cursor:pointer}
.sidebar-nav{flex:1;padding:12px;overflow-y:auto}
.nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:4px;color:var(--sidebar-text);transition:all .2s;font-size:.9rem;font-weight:500}
.nav-item:hover{background:rgba(255,255,255,.08);color:#fff}
.nav-item.active{background:var(--sidebar-active);color:#fff}
.nav-item i{width:20px;text-align:center;font-size:1rem}
.nav-divider{height:1px;background:rgba(255,255,255,.1);margin:12px 0}
.sidebar-footer{padding:16px;border-top:1px solid rgba(255,255,255,.1)}
.user-info{display:flex;align-items:center;gap:10px}
.user-avatar{width:36px;height:36px;border-radius:50%;background:var(--sidebar-active);display:flex;align-items:center;justify-content:center;color:#fff;font-size:.9rem}
.user-details{display:flex;flex-direction:column}
.user-name{color:#fff;font-size:.85rem;font-weight:600}
.user-role{color:var(--sidebar-text);font-size:.75rem}

/* Main */
.main-content{margin-left:260px;flex:1;display:flex;flex-direction:column;min-height:100vh}
.top-bar{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--card-bg);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:50}
.top-bar-left{display:flex;align-items:center;gap:16px}
.menu-toggle{display:none;background:none;border:none;font-size:1.3rem;color:var(--text-primary);cursor:pointer}
.page-title{font-size:1.1rem;font-weight:600}
.top-bar-right{display:flex;align-items:center;gap:8px}
.top-bar-right a,.top-bar-right button{background:none;border:none;width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;transition:all .2s;font-size:1.1rem}
.top-bar-right a:hover,.top-bar-right button:hover{background:var(--hover-bg);color:var(--text-primary)}
.notif-btn{position:relative}
.notif-badge{position:absolute;top:4px;right:4px;background:var(--danger);color:#fff;font-size:.65rem;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}
.content-area{padding:24px;flex:1}

/* Cards */
.card{background:var(--card-bg);border-radius:var(--radius);border:1px solid var(--border-color);padding:20px;box-shadow:var(--shadow)}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border-color)}
.card-header h3{font-size:1rem;font-weight:600}

/* Stats Grid */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px}
.stat-card{background:var(--card-bg);border-radius:var(--radius);padding:20px;border:1px solid var(--border-color);display:flex;align-items:center;gap:16px;box-shadow:var(--shadow);transition:transform .2s}
.stat-card:hover{transform:translateY(-2px)}
.stat-icon{width:52px;height:52px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:#fff}
.stat-icon.blue{background:linear-gradient(135deg,#007bff,#0056b3)}
.stat-icon.green{background:linear-gradient(135deg,#28a745,#1e7e34)}
.stat-icon.orange{background:linear-gradient(135deg,#fd7e14,#e8590c)}
.stat-icon.red{background:linear-gradient(135deg,#dc3545,#b02a37)}
.stat-icon.purple{background:linear-gradient(135deg,#6f42c1,#5a2d9e)}
.stat-icon.cyan{background:linear-gradient(135deg,#17a2b8,#117a8b)}
.stat-info h4{font-size:1.5rem;font-weight:700;color:var(--text-primary);line-height:1}
.stat-info p{font-size:.8rem;color:var(--text-muted);margin-top:4px}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;cursor:pointer;border:none;transition:all .2s;text-decoration:none}
.btn-sm{padding:6px 12px;font-size:.8rem}
.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}
.btn-success{background:var(--success);color:#fff}.btn-success:hover{opacity:.9}
.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{opacity:.9}
.btn-warning{background:var(--warning);color:#222}.btn-warning:hover{opacity:.9}
.btn-info{background:var(--info);color:#fff}.btn-info:hover{opacity:.9}
.btn-outline{background:transparent;color:var(--text-primary);border:1px solid var(--border-color)}.btn-outline:hover{background:var(--hover-bg)}
.btn-icon{width:34px;height:34px;padding:0;justify-content:center;border-radius:var(--radius-sm)}

/* Forms */
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.form-group{margin-bottom:16px}
.form-group label{display:block;margin-bottom:6px;font-weight:500;font-size:.85rem;color:var(--text-secondary)}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 14px;border:2px solid var(--border-color);border-radius:var(--radius-sm);font-size:.9rem;background:var(--input-bg);color:var(--text-primary);transition:border-color .2s;font-family:"Inter",sans-serif}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary)}
.form-group textarea{resize:vertical;min-height:80px}
.form-row{display:flex;gap:16px;flex-wrap:wrap}
.form-row .form-group{flex:1;min-width:200px}

/* Tables */
.table-responsive{overflow-x:auto}
table{width:100%;border-collapse:collapse}
table th,table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--border-color);font-size:.85rem}
table th{font-weight:600;color:var(--text-secondary);background:var(--hover-bg);white-space:nowrap}
table tr:hover{background:var(--hover-bg)}
table .actions{display:flex;gap:6px;white-space:nowrap}

/* Badges */
.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:20px;font-size:.75rem;font-weight:600}
.badge-primary{background:var(--primary-light);color:var(--primary)}
.badge-success{background:#e6f4ea;color:#28a745}
.badge-danger{background:#fde8e8;color:#dc3545}
.badge-warning{background:#fff3cd;color:#856404}
.badge-info{background:#d1ecf1;color:#0c5460}
.badge-secondary{background:#e9ecef;color:#6c757d}
[data-theme="dark"] .badge-primary{background:#1a2a4a;color:var(--primary)}
[data-theme="dark"] .badge-success{background:#132a1a;color:#3fb950}
[data-theme="dark"] .badge-danger{background:#3d1515;color:#f85149}
[data-theme="dark"] .badge-warning{background:#3d2e06;color:#d29922}
[data-theme="dark"] .badge-info{background:#0a2a33;color:#58a6ff}
[data-theme="dark"] .badge-secondary{background:#21262d;color:#8b949e}

/* Calendar */
.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px}
.calendar-nav{display:flex;align-items:center;gap:12px}
.calendar-nav button{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-primary);transition:all .2s}
.calendar-nav button:hover{background:var(--hover-bg)}
.calendar-nav h2{font-size:1.1rem;min-width:180px;text-align:center}
.calendar-views{display:flex;gap:4px;background:var(--hover-bg);border-radius:var(--radius-sm);padding:3px}
.calendar-views button{padding:6px 14px;border:none;background:none;border-radius:6px;cursor:pointer;font-size:.8rem;font-weight:500;color:var(--text-secondary);transition:all .2s}
.calendar-views button.active{background:var(--primary);color:#fff}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--border-color);border-radius:var(--radius)}
.calendar-day-header{padding:10px;text-align:center;font-weight:600;font-size:.8rem;color:var(--text-muted);background:var(--hover-bg);border-bottom:1px solid var(--border-color)}
.calendar-day{min-height:110px;padding:6px;border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);cursor:pointer;transition:background .2s;position:relative}
.calendar-day:nth-child(7n){border-right:none}
.calendar-day:hover{background:var(--hover-bg)}
.calendar-day.other-month{opacity:.4}
.calendar-day.today{background:var(--primary-light)}
.calendar-day .day-number{font-size:.85rem;font-weight:600;margin-bottom:4px;color:var(--text-primary)}
.calendar-day.today .day-number{color:var(--primary);font-weight:700}
.calendar-event{padding:3px 6px;border-radius:4px;font-size:.7rem;margin-bottom:2px;color:#fff;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:opacity .2s}
.calendar-event:hover{opacity:.85}
.calendar-event.dragging{opacity:.5}
.calendar-more{font-size:.7rem;color:var(--primary);cursor:pointer;font-weight:600;padding:2px 6px}
.event-preventiva{background:#28a745}.event-corretiva{background:#dc3545}.event-inspecao{background:#17a2b8}
.event-teste{background:#6f42c1}.event-limpeza{background:#fd7e14}.event-outro{background:#6c757d}
.priority-baixa{border-left:3px solid #28a745}.priority-media{border-left:3px solid #ffc107}
.priority-alta{border-left:3px solid #fd7e14}.priority-urgente{border-left:3px solid #dc3545}

/* Modal */
.modal-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:1000;align-items:center;justify-content:center;padding:16px}
.modal-overlay.active{display:flex}
.modal-container{background:var(--card-bg);border-radius:var(--radius);width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-color)}
.modal-header h3{font-size:1.1rem;font-weight:600}
.modal-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--text-muted);width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .2s}
.modal-close:hover{background:var(--hover-bg);color:var(--text-primary)}
.modal-body{padding:24px;overflow-y:auto;flex:1}
.modal-footer{padding:16px 24px;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:8px}

/* Tabs */
.tabs{display:flex;gap:0;border-bottom:2px solid var(--border-color);margin-bottom:16px}
.tab-btn{padding:10px 18px;border:none;background:none;font-size:.85rem;font-weight:500;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}
.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}
.tab-content{display:none}.tab-content.active{display:block}

/* Checklist */
.checklist-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border-color)}
.checklist-item input[type="checkbox"]{width:18px;height:18px;accent-color:var(--primary)}
.checklist-item.completed span{text-decoration:line-through;color:var(--text-muted)}

/* Timeline */
.timeline{position:relative;padding-left:24px}
.timeline::before{content:"";position:absolute;left:8px;top:0;bottom:0;width:2px;background:var(--border-color)}
.timeline-item{position:relative;padding-bottom:16px}
.timeline-item::before{content:"";position:absolute;left:-20px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--primary);border:2px solid var(--card-bg)}
.timeline-item .timeline-date{font-size:.75rem;color:var(--text-muted)}
.timeline-item .timeline-text{font-size:.85rem;color:var(--text-primary);margin-top:2px}

/* Alert */
.alert{padding:14px 18px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:.9rem;display:flex;align-items:center;gap:10px}
.alert-success{background:#e6f4ea;color:#155724;border:1px solid #c3e6cb}
.alert-danger{background:#fde8e8;color:#721c24;border:1px solid #f5c6cb}
.alert-warning{background:#fff3cd;color:#856404;border:1px solid #ffeeba}
.alert-info{background:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}
[data-theme="dark"] .alert-success{background:#132a1a;color:#3fb950;border-color:#1a4a25}
[data-theme="dark"] .alert-danger{background:#3d1515;color:#f85149;border-color:#5a1e1e}
[data-theme="dark"] .alert-warning{background:#3d2e06;color:#d29922;border-color:#5a4510}
[data-theme="dark"] .alert-info{background:#0a2a33;color:#58a6ff;border-color:#15404d}

/* Empty state */
.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}
.empty-state i{font-size:3rem;margin-bottom:16px;opacity:.5}
.empty-state h3{font-size:1.1rem;margin-bottom:8px;color:var(--text-secondary)}
.empty-state p{font-size:.9rem}

/* Filters bar */
.filters-bar{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap;align-items:flex-end}
.filters-bar .form-group{margin-bottom:0;min-width:160px}
.filters-bar .form-group label{font-size:.8rem}
.filters-bar .form-group input,.filters-bar .form-group select{padding:8px 12px;font-size:.85rem}

/* Chart container */
.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:16px;margin-bottom:24px}
.chart-container{position:relative;height:250px}

/* Responsive */
@media(max-width:768px){
.sidebar{transform:translateX(-100%)}
.sidebar.open{transform:translateX(0)}
.sidebar-close{display:block}
.main-content{margin-left:0}
.menu-toggle{display:block}
.content-area{padding:16px}
.stats-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.calendar-day{min-height:70px}
.form-grid{grid-template-columns:1fr}
.charts-grid{grid-template-columns:1fr}
.calendar-header{flex-direction:column;align-items:stretch}
.filters-bar{flex-direction:column}
.modal-container{max-width:100%;margin:10px}
}

/* Scrollbar */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}

/* Toast */
.toast-container{position:fixed;bottom:20px;right:20px;z-index:2000;display:flex;flex-direction:column;gap:8px}
.toast{padding:14px 20px;border-radius:var(--radius-sm);color:#fff;font-size:.9rem;box-shadow:0 4px 20px rgba(0,0,0,.2);animation:slideIn .3s ease;display:flex;align-items:center;gap:10px;min-width:280px}
.toast-success{background:#28a745}.toast-danger{background:#dc3545}.toast-warning{background:#ffc107;color:#222}.toast-info{background:#17a2b8}
@keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}

/* Confirm dialog */
.confirm-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:3000;align-items:center;justify-content:center}
.confirm-overlay.active{display:flex}
.confirm-box{background:var(--card-bg);border-radius:var(--radius);padding:30px;text-align:center;max-width:400px;width:90%;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.confirm-box h3{margin-bottom:10px;font-size:1.1rem}
.confirm-box p{color:var(--text-secondary);margin-bottom:20px;font-size:.9rem}
.confirm-box .btns{display:flex;gap:10px;justify-content:center}

/* Loading */
.loading{display:flex;align-items:center;justify-content:center;padding:40px}
.spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
