*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #14532d;--primary-hover: #1a6b3a;--primary-light: #16a34a;--primary-active: #4ade80;--bg-main: #f8f5ef;--bg-white: #ffffff;--bg-hover: #f5f0e8;--text-primary: #2c2c2c;--text-secondary: #8a8078;--text-white: #ffffff;--border: #d6cfc4;--border-dark: #b8b0a4;--status-pending-bg: #fef3c7;--status-pending-text: #92400e;--status-active-bg: #dbeafe;--status-active-text: #1e40af;--status-success-bg: #d1fae5;--status-success-text: #065f46;--status-danger-bg: #fee2e2;--status-danger-text: #991b1b;--status-neutral-bg: #e5e7eb;--status-neutral-text: #374151;--danger: #9a3412;--danger-hover: #991b1b;--topbar-height: 60px;--sidebar-width: 260px;--sidebar-collapsed: 60px;--font: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}body{font-family:var(--font);font-size:14px;color:var(--text-primary);background:var(--bg-main);letter-spacing:-.01em;-webkit-font-smoothing:antialiased}.topbar{position:fixed;top:0;left:0;right:0;height:var(--topbar-height);background:var(--bg-white);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;z-index:1000}.topbar-left{display:flex;align-items:center;gap:12px}.hamburger{background:none;border:none;font-size:20px;cursor:pointer;padding:4px 8px;color:var(--text-primary)}.brand{font-size:16px;font-weight:600;color:var(--primary);letter-spacing:.5px}.brand-module{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px}.topbar-right{display:flex;align-items:center;gap:12px}.user-name{font-size:13px;font-weight:500}.badge-rol{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:3px 8px;border-radius:2px;background:var(--primary);color:var(--text-white)}.btn-logout{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);text-decoration:none;padding:6px 12px;border:1px solid var(--border);transition:all .15s}.btn-logout:hover{color:var(--danger-hover);border-color:var(--danger-hover)}.sidebar{position:fixed;top:var(--topbar-height);left:0;bottom:0;width:var(--sidebar-width);background:var(--primary);overflow-y:auto;transition:width .3s;z-index:100}.sidebar.collapsed{width:var(--sidebar-collapsed)}.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-section-title{display:none}.sidebar-nav{padding:16px 0}.nav-section{margin-bottom:8px}.nav-section-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:#fff6;padding:12px 20px 6px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 20px;background:none;border:none;border-left:3px solid transparent;color:#ffffffb3;font-size:13px;font-family:var(--font);cursor:pointer;transition:all .15s;text-align:left}.nav-item:hover{background:#ffffff1a;color:var(--text-white);border-left-color:#ffffff4d}.nav-item.active{background:#ffffff26;color:var(--text-white);border-left-color:var(--primary-active);font-weight:500}.nav-icon{font-size:16px;min-width:20px;text-align:center}.main-content{margin-left:var(--sidebar-width);margin-top:var(--topbar-height);padding:24px 32px;min-height:calc(100vh - var(--topbar-height));transition:margin-left .3s}.main-content.sidebar-collapsed{margin-left:var(--sidebar-collapsed)}.sidebar-overlay{display:none}.card{background:var(--bg-white);border:1px solid var(--border);padding:0;position:relative}.card:before,.card:after{content:"";position:absolute;width:6px;height:6px;pointer-events:none}.card:before{top:-1px;left:-1px;border-top:2px solid var(--border-dark);border-left:2px solid var(--border-dark)}.card:after{top:-1px;right:-1px;border-top:2px solid var(--border-dark);border-right:2px solid var(--border-dark)}.card-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.card-title{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-primary)}.card-body{padding:20px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-title{font-size:22px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-primary)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-family:var(--font);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border:none;cursor:pointer;transition:all .15s}.btn-primary{background:var(--primary);color:var(--text-white)}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--bg-white);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-hover)}.btn-danger{background:var(--danger);color:var(--text-white)}.btn-danger:hover{background:var(--danger-hover)}.table-container{overflow-x:auto}table{width:100%;border-collapse:collapse}thead th{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);padding:10px 12px;text-align:left;border-bottom:2px solid var(--border)}tbody td{padding:12px;border-bottom:1px solid var(--border);font-size:13px}tbody tr:hover{background:var(--bg-hover)}.badge{display:inline-block;padding:3px 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;border-radius:2px}.badge-CREADA{background:var(--status-neutral-bg);color:var(--status-neutral-text)}.badge-AUTORIZADA{background:var(--status-pending-bg);color:var(--status-pending-text)}.badge-EN_PROCESO{background:var(--status-active-bg);color:var(--status-active-text)}.badge-COMPLETADA{background:var(--status-success-bg);color:var(--status-success-text)}.badge-CANCELADA{background:var(--status-danger-bg);color:var(--status-danger-text)}.form-group{margin-bottom:16px}.form-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:6px}.form-control{width:100%;padding:10px;font-family:var(--font);font-size:14px;border:1px solid var(--border);background:var(--bg-white);color:var(--text-primary);outline:none;transition:border-color .15s}.form-control:focus{border-color:var(--primary)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--bg-white);border:1px solid var(--border);padding:20px}.stat-value{font-size:28px;font-weight:700;color:var(--primary)}.stat-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-top:4px}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh;font-size:16px;color:var(--text-secondary)}.loading{text-align:center;padding:40px;color:var(--text-secondary)}.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-state-icon{font-size:48px;margin-bottom:16px}.empty-state-text{font-size:14px}.alert{padding:12px 16px;font-size:14px;border-radius:2px;margin-bottom:16px}.alert-success{background:var(--status-success-bg);color:var(--status-success-text)}.alert-error{background:var(--status-danger-bg);color:var(--status-danger-text)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:300}.modal{background:var(--bg-white);border:1px solid var(--border);width:90%;max-width:560px;max-height:80vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-title{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.modal-close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-secondary)}.modal-body{padding:20px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--border)}@media(max-width:1024px){.sidebar{width:0;overflow:hidden}.sidebar.mobile-open{width:280px}.main-content,.main-content.sidebar-collapsed{margin-left:0}.sidebar-overlay{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;z-index:99}.main-content{padding:16px}.topbar-right .user-name{display:none}.form-row{grid-template-columns:1fr}}
