:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#17202a;--accent:#126b5f;--accent-strong:#0c5148;--border:#d8e0e6;--muted:#687583;--surface:#fff;--surface-soft:#f7f9fb;--danger:#b42318;--focus:#1b7f73;background:#eef2f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#eef2f5;min-width:320px;min-height:100vh;margin:0}button,input,select,a{font:inherit}button{border:0}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:18px;width:min(420px,100%);padding:24px;display:grid;box-shadow:0 12px 28px #16202a14}.brand-row,.side-brand{align-items:center;gap:12px;display:flex}.brand-mark{color:#fff;background:var(--accent);border-radius:8px;place-items:center;width:40px;height:40px;display:grid}.login-panel h1,.topbar h1{margin:0;font-size:24px;line-height:1.2}.login-panel p,.topbar p{color:var(--muted);margin:4px 0 0}label{gap:7px;font-size:14px;font-weight:700;display:grid}input,select{border:1px solid var(--border);background:#fff;border-radius:8px;outline:none;width:100%;min-height:42px;padding:0 12px}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #1b7f733d}.primary-button,.secondary-button,.icon-button{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:40px;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.primary-button{color:#fff;background:var(--accent);padding:0 16px}.primary-button:hover{background:var(--accent-strong)}.primary-button:disabled{cursor:not-allowed;opacity:.65}.secondary-button{color:#23313f;border:1px solid var(--border);background:#fff;padding:0 14px;text-decoration:none}.secondary-button:hover,.icon-button:hover{background:#edf4f3;border-color:#b8cdc9}.icon-button{color:#23313f;border:1px solid var(--border);background:#fff;width:40px}.tooltip-wrap{display:inline-flex;position:relative}.tooltip-wrap:after{z-index:30;color:#fff;content:attr(data-tooltip);opacity:0;pointer-events:none;background:#17202a;border-radius:6px;width:max-content;max-width:220px;padding:6px 8px;font-size:12px;font-weight:700;line-height:1.2;transition:opacity 80ms,transform 80ms;position:absolute;bottom:calc(100% + 8px);right:0;transform:translateY(2px);box-shadow:0 8px 18px #0f17202e}.tooltip-wrap:hover:after,.tooltip-wrap:focus-within:after{opacity:1;transform:translateY(0)}.error-box{color:var(--danger);background:#fff5f3;border:1px solid #f0b8b2;border-radius:8px;padding:12px;font-size:14px}.loading-strip,.empty-state{border:1px solid var(--border);color:var(--muted);background:#fff;border-radius:8px;padding:14px}.loading-strip{align-items:center;gap:10px;display:flex}.loading-spinner{border:2px solid #d8e0e6;border-top-color:var(--accent);border-radius:999px;flex:none;width:18px;height:18px;animation:.8s linear infinite spin}.app-shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border);color:#fff;background:#18242d;flex-direction:column;gap:22px;height:100vh;padding:18px;display:flex;position:sticky;top:0}.side-brand span{color:#aebdc8;margin-top:2px;font-size:13px;display:block}nav{gap:6px;display:grid}nav a{color:#dfe7ec;border-radius:8px;align-items:center;gap:10px;min-height:40px;padding:0 10px;text-decoration:none;display:flex}nav a:hover,nav a.active{background:#243540}.content{align-content:start;gap:18px;min-width:0;padding:22px;display:grid}.topbar{justify-content:space-between;align-items:center;gap:16px;display:flex}.actions{align-items:center;gap:8px;display:flex}.spin-icon{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.user-menu{position:relative}.user-menu-trigger{border:1px solid var(--border);color:#23313f;cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:10px;min-height:42px;padding:0 12px;display:inline-flex}.user-menu-trigger span{text-align:left;gap:1px;display:grid}.user-menu-trigger small{color:var(--muted);font-size:12px}.user-menu-popover{z-index:15;border:1px solid var(--border);background:#fff;border-radius:8px;gap:4px;min-width:210px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 48px #0f172029}.user-menu-popover button{color:#23313f;cursor:pointer;text-align:left;background:0 0;border-radius:6px;align-items:center;gap:10px;min-height:38px;padding:0 10px;display:flex}.user-menu-popover button:hover{background:#edf4f3}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.kpi,.panel{border:1px solid var(--border);background:var(--surface);border-radius:8px}.kpi{align-content:center;gap:6px;min-height:118px;padding:16px;display:grid}.kpi span,.kpi small,.panel-header span{color:var(--muted)}.kpi strong{font-size:28px;line-height:1.1}.grid-two{grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);gap:12px;display:grid}.overview-activity{gap:12px;display:grid}.weekly-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.weekly-total-panel{min-height:230px}.weekly-total-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.weekly-total-list li{border-bottom:1px solid var(--border)}.weekly-total-link{color:#17202a;text-align:left;cursor:pointer;background:0 0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:54px;padding:8px 16px;display:grid}.weekly-total-link:hover{background:#f5faf9}.weekly-total-link span{gap:2px;min-width:0;display:grid}.weekly-total-link strong,.weekly-total-link small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.weekly-total-link strong{color:#17202a}.weekly-total-link small{color:var(--muted)}.weekly-total-link b{color:var(--accent-strong);font-size:15px}.empty-panel-message{color:var(--muted);padding:16px;font-weight:800}.panel{min-width:0;overflow:hidden}.panel-header{border-bottom:1px solid var(--border);background:var(--surface-soft);justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:0 16px;display:flex}.panel-header h2{margin:0;font-size:16px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:640px}th,td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;height:46px;padding:0 16px}th{color:var(--muted);text-transform:uppercase;font-size:12px}tr:hover td{background:#f5faf9}.status-pill{color:#17312e;background:#dcefed;border-radius:999px;align-items:center;min-height:24px;padding:0 9px;font-size:12px;font-weight:800;display:inline-flex}.status-listo,.status-admin{color:#0c5148;background:#dff3ef}.status-opcional,.status-user{color:#5d4212;background:#fff0cc}.status-base{color:#19456b;background:#dfeeff}.status-configurable,.status-open,.status-activo{color:#0c5148;background:#dff3ef}.status-closed,.status-inactivo{color:#7a3027;background:#ffe1dc}.compact-button{min-height:34px;padding:0 11px;font-size:14px}.panel-actions,.row-actions{align-items:center;gap:8px;display:inline-flex}.project-toolbar{border-bottom:1px solid var(--border);grid-template-columns:minmax(240px,1fr) minmax(180px,240px);gap:12px;padding:14px 16px;display:grid}.input-with-icon{display:block;position:relative}.input-with-icon svg{width:17px;height:17px;color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-with-icon input,.input-with-icon select{padding-left:38px}.row-actions .icon-button{width:34px;min-height:34px}.danger-button{color:#8d2319}.danger-button:hover{background:#fff5f3;border-color:#f0b8b2}.service-list{gap:10px;margin:0;padding:16px;list-style:none;display:grid}.service-list li{border:1px solid var(--border);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-height:40px;padding:0 10px;display:flex}.service-list svg{color:var(--accent)}.audit-panel{gap:0;display:grid}.audit-toolbar{border-bottom:1px solid var(--border);grid-template-columns:minmax(220px,320px) auto;align-items:end;gap:10px;padding:14px 16px;display:grid}.audit-error{margin:14px 16px 0}.audit-user-cell{gap:2px;display:grid}.audit-summary-table small{color:var(--muted);font-size:12px}.audit-detail-list{border-top:1px solid var(--border)}.audit-detail-header{min-height:48px}.audit-detail-header h3{margin:0;font-size:15px}.audit-events-table .icon-button{width:34px;min-height:34px}.audit-detail-json{color:#e8f2ee;white-space:pre-wrap;overflow-wrap:anywhere;background:#162128;border-radius:8px;max-height:280px;margin:0;padding:12px;font-size:13px;line-height:1.5;overflow:auto}.settings-form,.report-toolbar{border-bottom:1px solid var(--border);gap:12px;padding:16px;display:grid}.settings-form{grid-template-columns:repeat(2,minmax(220px,1fr)) minmax(140px,auto);align-items:end}.settings-form .inline-status,.settings-form .error-box{grid-column:1/-1}.report-toolbar{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(160px,220px) minmax(150px,220px) auto;align-items:end}.report-summary{border-bottom:1px solid var(--border);align-items:center;gap:22px;padding:14px 16px;display:flex}.report-summary div{gap:2px;display:grid}.report-summary strong{font-size:24px}.report-summary span{color:var(--muted)}.tabs{border-bottom:1px solid var(--border);gap:6px;padding:12px 16px;display:flex}.tabs button{border:1px solid var(--border);color:#23313f;cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:8px;min-height:36px;padding:0 12px;display:inline-flex}.tabs button.active,.tabs button:hover{background:#edf4f3;border-color:#b8cdc9}.charts-grid{grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);gap:12px;padding:16px;display:grid}.chart-panel{border:1px solid var(--border);background:#fff;border-radius:8px;gap:8px;min-width:0;padding:12px;display:grid}.chart-panel h3{margin:0;font-size:15px}.table-link{color:var(--accent);text-align:left;cursor:pointer;background:0 0;padding:0;font-weight:800}.table-link:hover{color:var(--accent-strong);text-decoration:underline}.bubble-report{padding:16px}.bubbleMap{grid-template-rows:auto minmax(360px, var(--bubble-map-height,560px)) auto;border:1px solid var(--border);background:linear-gradient(#fff 0%,#f7fbf8 100%);border-radius:8px;gap:10px;width:100%;min-width:0;min-height:440px;padding:12px;display:grid;position:relative;overflow:hidden}.bubbleMapHeader,.bubbleMapLegend{justify-content:space-between;align-items:center;gap:12px;display:flex}.bubbleMapBreadcrumb,.bubbleMapControls,.bubbleMapView,.bubbleMapZoom,.bubbleMapLegend{color:var(--muted);font-size:13px}.bubbleMapBreadcrumb{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.bubbleMapBreadcrumb button,.bubbleMapView button,.bubbleMapZoom button{border:1px solid var(--border);color:#23313f;cursor:pointer;background:#fff;border-radius:8px;min-height:30px;padding:0 9px}.bubbleMapBreadcrumb button:hover,.bubbleMapView button:hover,.bubbleMapView button.active,.bubbleMapZoom button:hover,.bubbleMapZoom button.active{background:#edf4f3;border-color:#b8cdc9}.bubbleMapControls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.bubbleMapView,.bubbleMapZoom{align-items:center;gap:6px;display:inline-flex}.bubbleMapViewport{overscroll-behavior:contain;background:radial-gradient(circle at 22% 18%,#389c3c17,#0000 30%),linear-gradient(#fff 0%,#f2f8f3 100%);border-radius:6px;min-width:0;height:100%;min-height:360px;position:relative;overflow:auto}.bubbleMapSvg{border-radius:inherit;outline:none;min-width:100%;min-height:360px;display:block;overflow:visible}.bubbleMapNode,.bubbleMapNode:focus{outline:none}.bubbleMapNode circle{transition:fill .16s,stroke .16s,transform .16s}.bubbleMapNode.canDrill,.bubbleMapNode.leaf{cursor:pointer}.bubbleMapNode.canDrill:hover circle,.bubbleMapNode.leaf:hover circle,.bubbleMapNode:focus-visible circle{stroke:var(--accent-strong);transform:scale(1.025)}.bubbleMapLabel{fill:#162128;font-size:13px;font-weight:800}.bubbleMapMetric{fill:var(--accent-strong);font-size:12px;font-weight:800}.bubbleMapDelta{fill:var(--muted);font-size:12px;font-weight:800}.bubbleMapDelta.positive{fill:#16803a}.bubbleMapDelta.negative{fill:#b42318}.bubbleMapDelta.neutral{fill:var(--muted)}.bubbleMapTooltip{z-index:90;border:1px solid var(--border);color:#17202a;pointer-events:none;background:#fffffff7;border-radius:8px;gap:4px;max-width:min(300px,100vw - 32px);padding:10px 12px;font-size:12px;display:grid;position:fixed;box-shadow:0 12px 34px #13131329}.bubbleMapTooltip strong{color:var(--accent-strong);font-size:13px}.bubbleMapTooltip span{color:var(--muted)}.bubbleMapEmpty{color:var(--muted);place-items:center;font-weight:800;display:grid;position:absolute;inset:0}.check-row{grid-template-columns:auto 1fr;align-items:center;gap:10px}.check-row input{width:18px;min-height:18px}.modal-backdrop{z-index:20;background:#0f17207a;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal-panel{z-index:2;border:1px solid var(--border);background:#fff;border-radius:8px;gap:16px;width:min(560px,100%);padding:18px;display:grid;position:relative;box-shadow:0 24px 60px #0f17203d}.modal-scrim{z-index:1;cursor:default;background:0 0;position:fixed;inset:0}.modal-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.modal-header h2{margin:0;font-size:20px}.modal-header p{color:var(--muted);margin:4px 0 0}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.confirm-heading{grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:12px;display:grid}.confirm-icon{color:#7a3027;background:#ffe1dc;border-radius:8px;place-items:center;width:38px;height:38px;display:grid}.confirm-icon.warning{color:#7a4d00;background:#fff0cc}.confirm-detail{border:1px solid var(--border);color:#23313f;background:var(--surface-soft);overflow-wrap:anywhere;border-radius:8px;padding:12px}.danger-action{background:var(--danger)}.danger-action:hover{background:#8d2319}.inline-status{color:#0c5148;background:#dff3ef;border-radius:8px;align-items:center;min-height:36px;padding:0 12px;font-size:14px;display:flex}.profile-grid{grid-template-columns:1fr 1fr;gap:10px;margin:0;display:grid}.profile-grid div{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;gap:5px;padding:12px;display:grid}.profile-grid dt{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:800}.profile-grid dd{color:#17202a;overflow-wrap:anywhere;margin:0;font-weight:800}.stack-form{gap:14px;display:grid}.version-modal-backdrop{z-index:55;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172080;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.version-modal-panel{border:1px solid var(--border);background:#fff;border-radius:8px;gap:12px;width:min(420px,100%);padding:20px;display:grid;box-shadow:0 24px 80px #0f172047}.version-modal-icon{color:#0c5148;background:#dff3ef;border-radius:8px;place-items:center;width:40px;height:40px;display:grid}.version-modal-panel h2{margin:0;font-size:20px}.version-modal-panel p{color:var(--muted);margin:0}.version-modal-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}@media (width<=900px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}nav{grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}nav a{justify-content:center}nav a svg{flex:none}.kpi-grid,.grid-two,.weekly-summary-grid,.audit-toolbar,.project-toolbar,.settings-form,.report-toolbar,.charts-grid{grid-template-columns:1fr}.settings-form .inline-status,.settings-form .error-box{grid-column:auto}}@media (width<=560px){.login-shell,.content{padding:14px}.topbar{flex-direction:column;align-items:flex-start}.actions,.bubbleMapHeader,.bubbleMapControls,.bubbleMapLegend,.user-menu,.user-menu-trigger,.secondary-button,.version-modal-actions,.modal-actions{width:100%}.user-menu-popover{left:0;right:0}.update-notice{grid-template-columns:auto minmax(0,1fr)}.update-notice strong{grid-column:1/-1;justify-self:start}.profile-grid,.modal-actions{grid-template-columns:1fr}.modal-actions,.version-modal-actions{display:grid}.bubbleMapControls,.bubbleMapView,.bubbleMapZoom{justify-content:space-between;width:100%}.bubbleMapView button,.bubbleMapZoom button{flex:1}nav{grid-template-columns:1fr 1fr}}
