:root{--accent: #3e8ef7;--accent-hover: #2f7ae0;--btn-gray: #3f4654;--btn-gray-hover: #4b5563}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:#0f0f0f;color:#e0e0e0}.app-container{display:flex;height:100vh}.sidebar{width:260px;background:#1a1a1a;border-right:1px solid #333;padding:20px;display:flex;flex-direction:column;overflow-y:auto}.logo{display:flex;align-items:center;gap:10px;margin-bottom:30px}.logo-text{font-size:18px;font-weight:700;letter-spacing:.5px;color:#fff}.logo-text span{color:#999;font-weight:400}.user-info{padding:15px;background:#252525;border-radius:8px;margin-bottom:30px;border-left:3px solid var(--accent)}.user-info p{font-weight:600;margin-bottom:5px}.user-info .role{font-size:12px;color:#999;text-transform:uppercase;letter-spacing:.5px}nav{flex:1;display:flex;flex-direction:column;gap:8px}nav button{display:flex;align-items:center;gap:12px;padding:12px 15px;background:transparent;border:none;color:#b0b0b0;text-align:left;cursor:pointer;border-radius:6px;transition:all .3s ease;font-size:14px;border-left:3px solid transparent}nav button svg{flex-shrink:0}nav button:hover{background:#2a2a2a;color:#e0e0e0}nav button.active{background:#2a2a2a;color:var(--accent);border-left-color:var(--accent)}.logout{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 15px;background:#d32f2f;border:none;color:#fff;border-radius:6px;cursor:pointer;font-weight:600;transition:background .3s ease}.logout:hover{background:#b71c1c}.main-content{flex:1;overflow-y:auto;background:#0f0f0f;padding:40px}.mobile-notice{font-size:12px;color:#999;background:#202020;border:1px solid #333;border-radius:8px;padding:10px 12px;margin-bottom:16px;line-height:1.45}@media (max-width: 768px){.app-container{flex-direction:column;height:auto;min-height:100vh}.sidebar{width:100%;border-right:none;border-bottom:1px solid #333;overflow-y:visible}.main-content{padding:20px 16px 40px}.modal-backdrop{align-items:flex-start;padding:12px}.modal{max-width:100%;padding:20px}.data-table th,.data-table td{padding:10px 12px;font-size:13px}.permisos-grid{grid-template-columns:1fr}}.login-page{display:flex;align-items:center;justify-content:center;height:100vh;background:linear-gradient(135deg,#1a1a1a,#2d2d2d)}.login-box{background:#1a1a1a;padding:40px;border-radius:12px;border:1px solid #333;width:100%;max-width:400px;box-shadow:0 20px 60px #00000080}.login-brand{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:30px}.login-box h1{text-align:center;color:#fff;font-size:22px}.login-box form{display:flex;flex-direction:column;gap:15px}.login-box input{padding:12px;background:#252525;border:1px solid #333;border-radius:6px;color:#e0e0e0;font-size:14px}.login-box input:focus{outline:none;border-color:var(--accent);background:#2a2a2a}.login-box button{padding:12px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:background .2s ease}.login-box button:hover{background:var(--accent-hover)}.login-box button:disabled{opacity:.6;cursor:not-allowed}.login-error{color:#d03b3b;font-size:13px;text-align:center}.login-hint{color:#b0b0b0;font-size:13px;text-align:center;line-height:1.5}.login-hint strong{color:#e0e0e0}.login-links{display:flex;justify-content:space-between;margin-top:4px}.login-links-center{justify-content:center}.login-box button.login-link{background:none;color:#999;font-size:12px;font-weight:500;cursor:pointer;padding:4px}.login-box button.login-link:hover{opacity:1;color:var(--accent)}.login-box button.login-link:disabled{opacity:.6;cursor:not-allowed}.module-title{font-size:22px;font-weight:600;margin-bottom:24px}.module-subtitle{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#999;margin:32px 0 12px}.module-subtitle:first-of-type{margin-top:0}.module-empty{color:#999}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.stat-tile{background:#1a1a1a;border:1px solid #333;border-left:3px solid var(--accent);border-radius:10px;padding:20px}.stat-label{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#999;margin-bottom:10px}.stat-value{font-size:30px;font-weight:600;color:#fff}.stat-status{display:inline-block;margin-top:10px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600}.status-good{color:#0ca30c;background:#0ca30c26}.status-warning{color:#fab219;background:#fab21926}.status-critical{color:#d03b3b;background:#d03b3b26}.module-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.module-header .module-title{margin-bottom:0}.btn-primary{padding:10px 18px;background:var(--btn-gray);color:#fff;border:none;border-radius:6px;font-weight:600;font-size:14px;cursor:pointer;transition:background .2s ease}.btn-primary:hover{background:var(--btn-gray-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{padding:10px 18px;background:transparent;color:#b0b0b0;border:1px solid #333;border-radius:6px;font-weight:600;font-size:14px;cursor:pointer}.btn-secondary:hover{background:#252525;color:#e0e0e0}.btn-icon{padding:6px 12px;background:#252525;color:#b0b0b0;border:1px solid #333;border-radius:5px;font-size:12px;cursor:pointer;transition:all .2s ease}.btn-icon:hover{background:#2a2a2a;color:#e0e0e0}.btn-icon.btn-danger{color:#d03b3b}.btn-icon.btn-danger:hover{background:#d03b3b26;border-color:#d03b3b}.form-error{color:#d03b3b;font-size:13px;margin-bottom:16px}.table-wrapper{overflow-x:auto;background:#1a1a1a;border:1px solid #333;border-radius:10px}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th{text-align:left;padding:14px 16px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#999;border-bottom:1px solid #333;white-space:nowrap}.data-table td{padding:14px 16px;border-bottom:1px solid #252525;color:#e0e0e0;vertical-align:top}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#202020}.actions-cell{display:flex;gap:8px;white-space:nowrap}.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;text-transform:capitalize}.badge-good{color:#0ca30c;background:#0ca30c26}.badge-warning{color:#fab219;background:#fab21926}.badge-critical{color:#d03b3b;background:#d03b3b26}.badge-neutral{color:#999;background:#99999926}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:#1a1a1a;border:1px solid #333;border-radius:12px;padding:30px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000080}.modal h3{margin-bottom:20px}.modal form{display:flex;flex-direction:column;gap:14px}.form-field{display:flex;flex-direction:column;gap:6px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#999}.form-field input,.form-field select,.form-field textarea{padding:10px 12px;background:#252525;border:1px solid #333;border-radius:6px;color:#e0e0e0;font-size:14px;text-transform:none;letter-spacing:normal;font-family:inherit}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--accent);background:#2a2a2a}.permisos-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:8px;padding:12px;background:#202020;border:1px solid #333;border-radius:8px}.permiso-check{display:flex;align-items:center;gap:8px;font-size:13px;text-transform:none;letter-spacing:normal;color:#e0e0e0;cursor:pointer}.permiso-check input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.kanban-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;align-items:start}.kanban-column{background:#161616;border:1px solid #2a2a2a;border-radius:10px;padding:16px}.kanban-column-title{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#999;margin-bottom:14px}.kanban-count{background:#2a2a2a;color:#b0b0b0;border-radius:20px;padding:2px 9px;font-size:11px}.kanban-cards{display:flex;flex-direction:column;gap:12px;min-height:40px}.kanban-card{background:#1a1a1a;border:1px solid #333;border-left:3px solid var(--accent);border-radius:8px;padding:14px}.kanban-card-title{font-weight:600;margin-bottom:6px;color:#fff}.kanban-card-meta{font-size:12px;color:#999;margin-bottom:4px}.progress-bar{height:6px;background:#252525;border-radius:4px;overflow:hidden;margin:10px 0}.progress-bar-fill{height:100%;background:var(--accent)}.kanban-card-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.tab-bar{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid #333}.tab-button{padding:10px 18px;background:transparent;border:none;border-bottom:2px solid transparent;color:#999;font-size:14px;font-weight:600;cursor:pointer;transition:color .2s ease}.tab-button:hover{color:#e0e0e0}.tab-button.active{color:var(--accent);border-bottom-color:var(--accent)}.sla-frame-wrapper{background:#fff;border:1px solid #333;border-radius:10px;overflow:hidden}.sla-frame{width:100%;min-height:600px;border:none;display:block}.external-frame-wrapper{background:#161616;border:1px solid #333;border-radius:10px;overflow:hidden}.external-frame{width:100%;height:calc(100vh - 260px);min-height:640px;border:none;display:block}.timeline{position:relative;padding-left:30px;border-left:2px solid #333}.timeline-item{position:relative;margin-bottom:28px}.timeline-dot{position:absolute;left:-37px;top:4px;width:12px;height:12px;border-radius:50%;background:#666;border:2px solid #0f0f0f}.timeline-dot-completado{background:#0ca30c}.timeline-dot-en_progreso{background:#fab219}.timeline-dot-planeado{background:var(--accent)}.timeline-content{background:#1a1a1a;border:1px solid #333;border-radius:10px;padding:16px 18px}.timeline-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.timeline-quarter{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#999;font-weight:600}.timeline-title{font-size:16px;margin-bottom:6px;color:#fff}.timeline-description{font-size:13px;color:#b0b0b0;line-height:1.5}
