:root{font-family:Manrope,Segoe UI,sans-serif;line-height:1.4;font-weight:500;color:#1f2937;background:radial-gradient(circle at top left,#f4f8ff,#f7f2ff 30%,#f8fafc,#eef2ff);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}a{color:inherit;text-decoration:none}#app{min-height:100vh}.stack{display:flex;flex-direction:column}.gap-md{gap:1rem}.gap-lg{gap:1.5rem}.button{border:0;border-radius:.75rem;padding:.65rem 1rem;font-weight:700;font-size:.9rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease}.button:hover{transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.6;transform:none}.button-primary{background:linear-gradient(135deg,#0f766e,#0ea5e9);color:#fff;box-shadow:0 8px 18px #0ea5e933}.button-ghost{background:#e5e7eb;color:#111827}.button-danger{background:#dc2626;color:#fff}.input{width:100%;border:1px solid #d1d5db;background:#fff;border-radius:.65rem;padding:.6rem .7rem;font-size:.9rem;color:#111827}.input-checkbox{width:1rem;height:1rem;accent-color:#0f766e}.textarea{min-height:80px;resize:vertical}.field{display:flex;flex-direction:column;gap:.35rem}.field span{font-size:.8rem;font-weight:700;color:#475569}.field-error{color:#b91c1c;font-size:.75rem}.field-full{grid-column:1 / -1}.public-layout{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-page{width:100%;max-width:420px}.login-card{background:#ffffffde;border:1px solid #e5e7eb;border-radius:1rem;padding:1.4rem;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 18px 34px #0f172a1a}.login-card h1{margin:0;font-size:1.7rem}.login-card p{margin:.25rem 0 1rem;color:#475569}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh;position:relative}.sidebar{background:linear-gradient(180deg,#0f172a,#111827);color:#e2e8f0;padding:1.2rem;border-right:1px solid #1f2937;overflow-y:auto}.sidebar-brand{display:flex;flex-direction:column;gap:.2rem;margin-bottom:1.25rem}.sidebar-brand strong{font-size:1.15rem}.sidebar-brand span{font-size:.8rem;color:#94a3b8}.sidebar-nav{display:flex;flex-direction:column;gap:1rem}.sidebar-group{display:flex;flex-direction:column;gap:.5rem}.sidebar-group-title{margin:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8}.sidebar-group-links{display:flex;flex-direction:column;gap:.35rem}.sidebar-link{display:flex;align-items:center;gap:.55rem;padding:.55rem .7rem;border-radius:.65rem;color:#cbd5e1}.sidebar-link:hover,.sidebar-link.active{background:#1e293b;color:#fff}.sidebar-backdrop{display:none}.app-main{display:flex;flex-direction:column;min-width:0}.topbar{min-height:64px;border-bottom:1px solid #e5e7eb;padding:.5rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.8rem;background:#ffffffd6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.topbar-left{display:flex;align-items:center;gap:.65rem;min-width:0}.topbar-menu-button{display:none;border:1px solid #cbd5e1;border-radius:.6rem;background:#fff;color:#0f172a;padding:.35rem .55rem;font-size:.82rem;font-weight:700;cursor:pointer}.topbar-context{display:flex;flex-direction:column;min-width:0}.topbar-context strong{font-size:.9rem}.topbar-breadcrumbs{display:flex;align-items:center;gap:.35rem;font-size:.78rem;color:#64748b;white-space:nowrap;overflow:hidden}.topbar-breadcrumbs>span{display:inline-flex;align-items:center;gap:.35rem}.topbar-breadcrumbs>span>a:hover{text-decoration:underline}.topbar-breadcrumbs small{color:#cbd5e1}.topbar-center{position:relative;flex:1;max-width:420px}.topbar-search-input{font-size:.82rem}.topbar-search-results{position:absolute;top:calc(100% + .35rem);left:0;right:0;background:#fff;border:1px solid #e2e8f0;border-radius:.7rem;box-shadow:0 12px 28px #0f172a29;z-index:30;overflow:hidden}.topbar-search-result{width:100%;border:0;background:#fff;text-align:left;padding:.65rem .75rem;cursor:pointer;display:flex;flex-direction:column;gap:.2rem}.topbar-search-result strong{font-size:.84rem;color:#111827}.topbar-search-result span{font-size:.76rem;color:#64748b}.topbar-search-result:hover{background:#f8fafc}.topbar-search-empty{padding:.75rem;font-size:.82rem;color:#64748b}.topbar-user{display:flex;align-items:center;justify-content:flex-end;gap:.8rem;min-width:0}.topbar-status{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem}.topbar-status small{font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:#64748b}.topbar-status strong{font-size:.8rem;color:#0f172a}.app-content{padding:1.1rem}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.page-header h1{margin:0;font-size:1.5rem}.page-header p{margin:.35rem 0 0;color:#475569}.page-header-actions{display:flex;gap:.5rem}.filter-bar{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:.75rem}.table-wrapper{overflow-x:auto;border:1px solid #e5e7eb;border-radius:.8rem;background:#fff}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:.75rem;border-bottom:1px solid #f1f5f9;font-size:.88rem}.table th{color:#334155;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.row-actions{display:flex;gap:.45rem;flex-wrap:wrap}.status-chip{padding:.28rem .55rem;border-radius:999px;font-size:.76rem;text-transform:uppercase;font-weight:800;background:#e5e7eb;color:#374151}.status-chip-active{background:#dcfce7;color:#166534}.status-chip-inactive{background:#e2e8f0;color:#334155}.status-chip-warning{background:#fef3c7;color:#92400e}.status-chip-critical{background:#fee2e2;color:#991b1b}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:.7rem}.empty-state,.loading-state,.error-state{background:#fff;border:1px dashed #cbd5e1;border-radius:.8rem;padding:1rem;text-align:center}.error-state{border-color:#fecaca;color:#991b1b}.warning-state{background:#fff;border:1px dashed #fcd34d;border-radius:.8rem;padding:1rem;color:#92400e}.form-section{border:1px solid #e2e8f0;background:#ffffffd6;border-radius:.9rem;padding:1rem}.form-section h3{margin:0}.form-section p{margin:.2rem 0 .85rem;font-size:.85rem;color:#475569}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.form-actions{display:flex;justify-content:flex-end;gap:.6rem}.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.65rem}.check-card{display:flex;gap:.6rem;border:1px solid #e5e7eb;border-radius:.75rem;padding:.6rem;background:#fff}.check-card strong{display:block}.check-card span{font-size:.8rem;color:#475569}.modal-backdrop{position:fixed;inset:0;background:#0f172a73;display:grid;place-items:center;z-index:1000;padding:1rem}.modal{width:min(560px,100%);background:#fff;border-radius:.9rem;border:1px solid #e2e8f0;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.modal h3{margin:0}.modal p{margin:0;color:#475569;font-size:.9rem}.calendar-wrap{border:1px solid #dbe7f5;border-radius:1rem;background:linear-gradient(180deg,#f8fbff,#eef5ff);padding:.9rem}.calendar-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.7rem}.calendar-header h3{margin:0;text-transform:capitalize}.calendar-header p{margin:0;font-size:.82rem;color:#475569}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem;margin-bottom:.4rem}.calendar-weekdays>div{font-size:.76rem;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em;text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem}.calendar-day{border:1px solid #d4deee;border-radius:.8rem;background:#fff;min-height:100px;padding:.5rem;display:flex;flex-direction:column;gap:.45rem}.calendar-day-out{opacity:.55}.calendar-day-head{display:flex;align-items:center;justify-content:space-between}.calendar-day-head strong{font-size:.95rem}.calendar-day-head span{font-size:.72rem;color:#64748b}.calendar-day-events{display:flex;flex-direction:column;gap:.2rem}.calendar-event{display:flex;justify-content:space-between;gap:.35rem;font-size:.72rem;border-radius:.45rem;padding:.2rem .3rem;background:#f1f5f9}.calendar-day-critico{border-color:#fda4af;background:#fff7f8}.calendar-day-parcial{border-color:#fcd34d;background:#fffbeb}.calendar-day-ok{border-color:#86efac;background:#f0fdf4}.auto-alloc-result{margin-top:.35rem;border-top:1px solid #e2e8f0;padding-top:.55rem}.auto-alloc-list{max-height:230px;overflow:auto;display:flex;flex-direction:column;gap:.45rem}.auto-alloc-item{border:1px solid #e2e8f0;border-radius:.6rem;padding:.45rem;background:#f8fafc}.auto-alloc-item p,.auto-alloc-item small{margin:.2rem 0 0;color:#475569}.kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.kpi-card{background:#fff;border:1px solid #e2e8f0;border-radius:.9rem;padding:1rem}.kpi-card h3{margin:0;color:#334155;font-size:.85rem}.kpi-card strong{display:block;margin-top:.5rem}.kpi-card p{margin:.45rem 0 0;font-size:.86rem;color:#475569}.quick-actions{background:#fff;border:1px solid #e2e8f0;border-radius:.9rem;padding:1rem}.quick-actions h2{margin:0 0 .6rem;font-size:1rem}.quick-actions>div{display:flex;gap:.5rem;flex-wrap:wrap}.dashboard-home{gap:1.1rem}.dashboard-section{border:1px solid #e2e8f0;background:linear-gradient(180deg,#fff,#f8fafc);border-radius:1rem;padding:1rem;box-shadow:0 10px 24px #0f172a0f}.dashboard-section-header{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem}.dashboard-section-header h2{margin:0;font-size:1.02rem}.dashboard-section-header small{color:#64748b;font-size:.78rem}.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem}.dashboard-kpi-card{border:1px solid #e2e8f0;border-radius:.9rem;background:#fff;padding:.85rem;display:flex;flex-direction:column;gap:.45rem}.dashboard-kpi-card h3{margin:0;font-size:.83rem;color:#334155}.dashboard-kpi-card strong{font-size:1.45rem;line-height:1}.dashboard-kpi-card p{margin:0;font-size:.8rem;color:#475569}.dashboard-kpi-footer{margin-top:auto;display:flex;flex-direction:column;gap:.2rem}.dashboard-kpi-footer a{font-size:.78rem;font-weight:700}.dashboard-kpi-footer small{font-size:.72rem;color:#b91c1c}.dashboard-kpi-neutral strong{color:#1d4ed8}.dashboard-kpi-info strong{color:#0369a1}.dashboard-kpi-success strong{color:#047857}.dashboard-kpi-warning strong{color:#b45309}.dashboard-kpi-danger strong{color:#b91c1c}.dashboard-kpi-error{border-style:dashed;border-color:#fecaca;background:#fef2f2}.dashboard-kpi-skeleton{min-height:130px;background:linear-gradient(110deg,#f8fafc 8%,#f1f5f9 18%,#f8fafc 33%);background-size:200% 100%;animation:dashboard-loading 1.2s linear infinite}.dashboard-quick-actions-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.dashboard-quick-action-card{border:1px solid #dbeafe;background:linear-gradient(165deg,#fff,#eff6ff);border-radius:.85rem;padding:.8rem;display:flex;flex-direction:column;gap:.35rem;min-height:96px}.dashboard-quick-action-card strong{font-size:.86rem}.dashboard-quick-action-card p{margin:0;font-size:.78rem;color:#475569}.dashboard-quick-action-card:hover{border-color:#93c5fd;transform:translateY(-1px)}.dashboard-modules-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.dashboard-module-card{border:1px solid #e2e8f0;border-radius:.9rem;background:#fff;padding:.9rem;display:flex;flex-direction:column;gap:.5rem}.dashboard-module-card header{display:flex;flex-direction:column;gap:.25rem}.dashboard-module-card h3{margin:0;font-size:.92rem}.dashboard-module-card header span{font-size:.78rem;color:#64748b}.dashboard-module-card p{margin:0;font-size:.82rem;color:#475569}.dashboard-module-shortcuts{display:flex;flex-wrap:wrap;gap:.35rem}.dashboard-module-shortcuts a{background:#f1f5f9;border:1px solid #dbeafe;border-radius:999px;padding:.25rem .55rem;font-size:.74rem;font-weight:700}.dashboard-module-card small{font-size:.72rem;color:#b91c1c}.dashboard-module-primary{margin-top:auto;font-size:.8rem;font-weight:700}.dashboard-module-danger{border-color:#fecaca}.dashboard-module-warning{border-color:#fcd34d}.dashboard-module-success{border-color:#86efac}.dashboard-module-info{border-color:#93c5fd}.dashboard-module-neutral{border-color:#cbd5e1}.dashboard-module-error{border-style:dashed;background:#fef2f2}.dashboard-activity-timeline{display:flex;flex-direction:column;gap:.6rem}.dashboard-activity-item{border:1px solid #e2e8f0;border-radius:.8rem;background:#fff;padding:.75rem;display:flex;flex-direction:column;gap:.4rem}.dashboard-activity-item header{display:flex;justify-content:space-between;gap:.6rem}.dashboard-activity-item header strong{font-size:.86rem}.dashboard-activity-item header span{color:#64748b;font-size:.77rem;white-space:nowrap}.dashboard-activity-item p{margin:0;color:#475569;font-size:.8rem}.dashboard-activity-meta{display:flex;justify-content:space-between;align-items:center}.dashboard-activity-meta small{font-size:.74rem;text-transform:uppercase;color:#334155}.dashboard-activity-meta a{font-size:.78rem;font-weight:700}.dashboard-activity-danger{border-color:#fecaca}.dashboard-activity-warning{border-color:#fcd34d}.dashboard-activity-success{border-color:#86efac}.dashboard-activity-info{border-color:#93c5fd}@keyframes dashboard-loading{to{background-position:-200% 0}}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(86vw,320px);transform:translate(-100%);transition:transform .18s ease;z-index:40;border-right:1px solid #1f2937;border-bottom:0}.sidebar-mobile-open{transform:translate(0)}.sidebar-backdrop{position:fixed;inset:0;border:0;background:#0f172a59;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:35;display:none}.sidebar-backdrop.open{display:block}.topbar{flex-wrap:wrap}.topbar-menu-button{display:inline-flex}.topbar-center{order:3;width:100%;max-width:none}.topbar-user{margin-left:auto}.topbar-status{display:none}.topbar-breadcrumbs{max-width:52vw}.filter-bar,.kpi-grid,.form-grid,.dashboard-kpi-grid,.dashboard-modules-grid,.dashboard-quick-actions-grid{grid-template-columns:1fr}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-day{min-height:88px}}
