:root,:root[data-theme=light]{--bg: #f3f2ee;--bg-rail: #f3f2ee;--sheet: #ffffff;--surface: #ffffff;--surface-2: #f8f7f4;--surface-3: #eeece7;--nav-active: #ffffff;--line: #e7e4de;--line-soft: #efece7;--line-strong: #d7d3cb;--text: #161513;--text-dim: #55514b;--text-faint: #6e6a63;--red: #d61f26;--red-bright: #b8141b;--red-dim: #9e0f15;--red-text: #9e0f15;--red-tint: #fbebe9;--red-tint-strong: rgba(214, 31, 38, .14);--red-line: rgba(214, 31, 38, .3);--ok: #17774a;--ok-bright: #0f6b3f;--ok-text: #0f5c37;--ok-tint: #e5f2ea;--ok-line: rgba(23, 119, 74, .3);--warn: #8f5e00;--warn-bright: #7a5000;--warn-text: #6b4600;--warn-tint: #f7eedb;--warn-line: rgba(143, 94, 0, .32);--accent: #1e5e9e;--accent-bright: #184f86;--accent-text: #184f86;--accent-tint: #e6eef7;--accent-line: rgba(30, 94, 158, .3);--viz-1: #f4c2bc;--viz-2: #e98d82;--viz-3: #d65649;--viz-4: #b0271b;--viz-5: #7a1109;--viz-bar: #c8392d;--viz-off: #cfcac2;--viz-create: #17774a;--viz-update: #1e5e9e;--viz-delete: #d61f26;--viz-grid: #efece7;--viz-area: rgba(214, 31, 38, .08);--chip-bg: rgba(22, 21, 19, .05);--column-off: rgba(22, 21, 19, .035);--dot-halo: rgba(22, 21, 19, .08);--scroll-shadow: rgba(22, 21, 19, .18);--backdrop: rgba(22, 21, 19, .3);--login-glow: rgba(214, 31, 38, .1);--selection-bar: #161513;--selection-bar-text: #ffffff;--sheen: linear-gradient(180deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, 0));--rail-wash: var(--bg-rail);--shadow-xs: 0 1px 2px rgba(22, 21, 19, .06);--shadow-sm: 0 1px 2px rgba(22, 21, 19, .06), 0 1px 3px rgba(22, 21, 19, .03);--shadow-md: 0 1px 2px rgba(22, 21, 19, .04), 0 8px 24px rgba(22, 21, 19, .06);--shadow-lg: 0 12px 32px rgba(22, 21, 19, .12), 0 32px 64px rgba(22, 21, 19, .12);--shadow: var(--shadow-md);color-scheme:light}:root[data-theme=dark]{--bg: #0b0b0c;--bg-rail: #0b0b0c;--sheet: #121214;--surface: #17171a;--surface-2: #1b1b1e;--surface-3: #26262a;--nav-active: #1e1e22;--line: #252528;--line-soft: #1e1e21;--line-strong: #35353a;--text: #f2f1ee;--text-dim: #b0ada7;--text-faint: #8e8b85;--red: #e4252b;--red-bright: #ff6a61;--red-dim: #b51a20;--red-text: #ffb4ae;--red-tint: rgba(228, 37, 43, .14);--red-tint-strong: rgba(228, 37, 43, .22);--red-line: rgba(228, 37, 43, .4);--ok: #46c282;--ok-bright: #5fd596;--ok-text: #a8e6c0;--ok-tint: rgba(70, 194, 130, .13);--ok-line: rgba(70, 194, 130, .4);--warn: #e3a845;--warn-bright: #f0b95c;--warn-text: #f7dca8;--warn-tint: rgba(227, 168, 69, .13);--warn-line: rgba(227, 168, 69, .4);--accent: #72aeec;--accent-bright: #8cc0f2;--accent-text: #b8d8f8;--accent-tint: rgba(114, 174, 236, .13);--accent-line: rgba(114, 174, 236, .4);--viz-1: #6b1a14;--viz-2: #9e2a20;--viz-3: #d0463a;--viz-4: #f07a6e;--viz-5: #ffb3ab;--viz-bar: #e8594c;--viz-off: #46464c;--viz-create: #46c282;--viz-update: #72aeec;--viz-delete: #f0453c;--viz-grid: #232326;--viz-area: rgba(232, 89, 76, .14);--chip-bg: rgba(255, 255, 255, .07);--column-off: rgba(255, 255, 255, .05);--dot-halo: rgba(255, 255, 255, .08);--scroll-shadow: rgba(0, 0, 0, .6);--backdrop: rgba(0, 0, 0, .6);--login-glow: rgba(228, 37, 43, .16);--selection-bar: #f2f1ee;--selection-bar-text: #121214;--sheen: linear-gradient(180deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, 0));--rail-wash: var(--bg-rail);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .45);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .5), 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 1px 2px rgba(0, 0, 0, .5), 0 8px 22px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .55), 0 32px 68px rgba(0, 0, 0, .55);--shadow: var(--shadow-md);color-scheme:dark}:root{--radius-xs: 5px;--radius-sm: 8px;--radius: 12px;--radius-lg: 14px;--sidebar-width: 276px;--topbar-height: 56px;--ease: cubic-bezier(.2, 0, 0, 1);--fast: .12s var(--ease);--medium: .2s var(--ease);--font: "Geist", "Segoe UI Variable Text", "Segoe UI", -apple-system, system-ui, sans-serif;--font-display: "Newsreader", "Iowan Old Style", Georgia, serif;--font-mono: "Geist Mono", "Cascadia Code", ui-monospace, "SF Mono", Consolas, monospace}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:13.5px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body.has-modal{overflow:hidden}::selection{background:var(--red);color:#fff}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--red);outline-offset:2px}code{font-family:var(--font-mono);font-size:.88em;background:var(--surface-3);color:var(--text-dim);padding:1px 6px;border-radius:var(--radius-xs)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.data-table td,.pagination,.page-meta,.cell-num,.num{font-variant-numeric:tabular-nums}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}*::-webkit-scrollbar{width:11px;height:11px}*::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:99px;border:3px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:content-box}.icon{flex:none}.logo{display:block;flex:none;color:var(--text)}.boot-screen{min-height:100vh;display:grid;place-items:center;background:var(--bg);color:var(--text-dim)}.login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(420px,44%) 1fr;background:var(--bg)}.login-aside{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:44px 56px;background:#121110;color:#f2f1ee}.login-aside:after{content:"";position:absolute;right:-90px;bottom:-170px;width:460px;height:540px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 56'%3E%3Cpath d='M8 8.5h9.2l14.3 21.3V8.5H40V41h-9.1L16.6 19.7V41H8Z' fill='none' stroke='white' stroke-opacity='0.07' stroke-width='0.35'/%3E%3C/svg%3E") no-repeat center / contain;pointer-events:none}.login-aside .logo{color:#f2f1ee}.login-pitch{position:relative;z-index:1;max-width:460px;display:flex;flex-direction:column;gap:20px}.login-kicker{display:inline-flex;align-items:center;gap:10px;color:#a8a49d;font-size:13px}.login-kicker:before{content:"";width:18px;height:1px;background:var(--red)}.login-pitch h2{margin:0;font-family:var(--font-display);font-size:clamp(38px,4.2vw,54px);font-weight:400;line-height:1.04;letter-spacing:-.02em}.login-pitch h2 em{color:#ff7b70}.login-pitch p{margin:0;color:#b0ada7;font-size:15px;line-height:1.6}.login-legal{position:relative;z-index:1;display:flex;gap:14px;color:#8e8b85;font-size:12.5px}.login-main{position:relative;display:grid;place-items:center;padding:40px 24px}.login-card{width:min(380px,100%);display:flex;flex-direction:column;gap:18px}.login-card h1{margin:0;font-family:var(--font-display);font-size:36px;font-weight:500;letter-spacing:-.015em;line-height:1.1}.login-card .login-lead{margin:-8px 0 6px;color:var(--text-dim);font-size:14px}.login-card .input{height:44px;font-size:14px}.login-card .btn-primary{height:46px;font-size:14px}.login-help{display:flex;gap:10px;padding:12px 14px;border-radius:var(--radius);background:var(--surface-3);color:var(--text-dim);font-size:12.5px;line-height:1.5}.login-help .icon{margin-top:2px;color:var(--text-faint)}.login-theme{position:absolute;top:24px;right:28px}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);height:100vh;overflow:hidden;padding:8px 8px 8px 0;background:var(--bg)}.sidebar{display:flex;flex-direction:column;gap:18px;min-height:0;padding:10px 14px 6px 16px}.sidebar-brand{display:flex;align-items:center;height:44px;padding:0 8px;flex:none}.sidebar-nav{flex:1;min-height:0;overflow-y:auto;margin:0 -6px;padding:0 6px 12px}.nav-section{margin:18px 0 6px;padding:0 10px;font-size:11.5px;font-weight:500;color:var(--text-faint)}.nav-item{position:relative;width:100%;display:flex;align-items:center;gap:10px;height:34px;padding:0 10px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-dim);font:inherit;font-size:13.5px;font-weight:450;text-align:left;text-decoration:none;cursor:pointer;transition:background var(--fast),color var(--fast),border-color var(--fast)}.nav-item .icon{color:var(--text-faint);transition:color var(--fast)}.nav-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item:hover{background:var(--surface-3);color:var(--text)}.nav-item:hover .icon{color:var(--text-dim)}.nav-item.is-active{background:var(--nav-active);border-color:var(--line);box-shadow:var(--shadow-xs);color:var(--text);font-weight:550}.nav-item.is-current{color:var(--text);font-weight:550}.nav-item.is-active .icon,.nav-item.is-current .icon{color:var(--red)}.nav-group-toggle .chevron{color:var(--text-faint);transition:transform var(--medium)}.nav-group.is-open .nav-group-toggle .chevron{transform:rotate(90deg)}.nav-group-items{margin:2px 0 8px 18px;padding-left:10px;border-left:1px solid var(--line-strong);display:grid;gap:1px;animation:nav-open .18s var(--ease)}@keyframes nav-open{0%{opacity:0;transform:translateY(-3px)}}.nav-subitem{position:relative;display:flex;align-items:center;height:30px;padding:0 10px;border:1px solid transparent;border-radius:7px;font-size:13px;color:var(--text-dim);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background var(--fast),color var(--fast)}.nav-subitem:hover{color:var(--text);background:var(--surface-3)}.nav-subitem.is-active{color:var(--text);background:var(--nav-active);border-color:var(--line);box-shadow:var(--shadow-xs);font-weight:550}.sidebar-footer{flex:none;position:relative}.user-chip{width:100%;display:flex;align-items:center;gap:10px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--fast),box-shadow var(--fast)}.user-chip:hover{border-color:var(--line-strong);box-shadow:var(--shadow-xs)}.user-chip>.icon{color:var(--text-faint)}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--text);color:var(--sheet);font-weight:600;font-size:12px;flex:none}.user-meta{flex:1;min-width:0;display:grid;line-height:1.3}.user-meta strong{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-meta small{color:var(--text-faint);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu{position:absolute;left:0;right:0;bottom:calc(100% + 6px);padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-lg);animation:nav-open .14s var(--ease);z-index:20}.user-menu-item{width:100%;display:flex;align-items:center;gap:10px;height:34px;padding:0 10px;border:0;border-radius:7px;background:transparent;color:var(--text-dim);font:inherit;font-size:13px;cursor:pointer}.user-menu-item:hover{background:var(--red-tint);color:var(--red-bright)}.theme-toggle{display:inline-flex;gap:2px;padding:3px;background:var(--surface-2);border:1px solid var(--line);border-radius:9px}.theme-option{display:grid;place-items:center;width:30px;height:28px;border:0;border-radius:6px;background:transparent;color:var(--text-faint);cursor:pointer;transition:background var(--fast),color var(--fast),box-shadow var(--fast)}.theme-option:hover{color:var(--text)}.theme-option.is-active{background:var(--nav-active);color:var(--text);box-shadow:var(--shadow-xs)}.theme-option.is-active .icon{color:var(--red)}.workspace{display:grid;grid-template-rows:var(--topbar-height) 1fr;min-width:0;min-height:0;background:var(--sheet);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;position:relative}.workspace-body{min-height:0;overflow-y:auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px 0 28px;border-bottom:1px solid var(--line)}.topbar-trail{display:flex;align-items:center;gap:6px;min-width:0;font-size:13px;color:var(--text-faint)}.topbar-trail-step{display:inline-flex;align-items:center;gap:6px;min-width:0}.topbar-trail>span,.topbar-trail-step>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-trail .trail-sep{color:var(--text-faint);flex:none}.topbar-trail .trail-current{color:var(--text);font-weight:500}.topbar-actions{display:flex;align-items:center;gap:12px}.quick-jump{position:relative;width:320px}.quick-jump-field{display:flex;align-items:center;gap:8px;height:36px;padding:0 6px 0 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--text-faint);transition:border-color var(--fast),box-shadow var(--fast),background var(--fast)}.quick-jump-field:focus-within{border-color:var(--red);background:var(--surface);box-shadow:0 0 0 3px var(--red-tint-strong)}.quick-jump-field input{flex:1;min-width:0;border:0;outline:none;background:transparent;color:var(--text);font:inherit;font-size:13px}.quick-jump-field input::placeholder{color:var(--text-faint)}.quick-jump-field kbd{font-family:var(--font-mono);font-size:11px;padding:1px 6px;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);color:var(--text-faint)}.quick-jump-results{position:absolute;top:calc(100% + 6px);left:0;right:0;margin:0;padding:6px;list-style:none;max-height:360px;overflow-y:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-lg);z-index:30}.quick-jump-option{width:100%;display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 10px;border:0;border-radius:7px;background:transparent;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer}.quick-jump-option small{color:var(--text-faint);font-size:12px;white-space:nowrap}.quick-jump-option.is-highlighted,.quick-jump-option:hover{background:var(--surface-3)}.quick-jump-empty{padding:10px;color:var(--text-faint);font-size:13px}.page{padding:28px 40px 44px}.page-fill{display:flex;flex-direction:column;height:100%;padding-bottom:28px;overflow:hidden}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px 24px;flex-wrap:wrap;margin-bottom:22px;flex:none}.page-heading{display:flex;flex-direction:column;gap:8px;min-width:0}.page-kicker{font-size:13px;color:var(--text-faint)}.page-header h1,.page-title{margin:0;font-family:var(--font-display);font-size:40px;font-weight:500;letter-spacing:-.015em;line-height:1.05}.page-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--text-faint);font-size:13px}.page-meta strong{color:var(--text);font-weight:600}.page-meta code{font-size:12px}.meta-chip{display:inline-flex;align-items:center;gap:6px;color:var(--text-faint);font-size:13px}.meta-chip+.meta-chip:before{content:"·";margin-right:2px}.meta-chip strong{color:var(--text);font-weight:600}.page-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.status-chip{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 12px;border-radius:999px;background:var(--ok-tint);color:var(--ok);font-size:12.5px;font-weight:500}.status-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.status-chip.is-down{background:var(--red-tint);color:var(--red-bright)}.view-tabs{display:flex;gap:24px;margin-bottom:14px;border-bottom:1px solid var(--line);flex:none}.view-tab{height:40px;padding:0;margin-bottom:-1px;border:0;border-bottom:2px solid transparent;background:none;color:var(--text-faint);font:inherit;font-size:13.5px;font-weight:550;cursor:pointer;transition:color var(--fast),border-color var(--fast)}.view-tab:hover{color:var(--text)}.view-tab.is-active{color:var(--text);border-bottom-color:var(--red)}.list-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;flex:none}.list-filter{position:relative;display:inline-flex;align-items:center;height:36px;padding-left:12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-xs);transition:border-color var(--fast),background var(--fast),box-shadow var(--fast)}.list-filter:hover{border-color:var(--text-faint)}.list-filter:focus-within{border-color:var(--red-line);box-shadow:0 0 0 3px var(--red-tint-strong)}.list-filter.is-set{border-color:var(--red-line);background:var(--red-tint)}.list-filter-label{padding-right:10px;border-right:1px solid var(--line);font-size:12.5px;font-weight:600;color:var(--text-dim);white-space:nowrap}.list-filter.is-set .list-filter-label{border-right-color:var(--red-line);color:var(--red-text)}.list-filter .relation-select,.list-filter select.input{width:172px}.list-filter .input{height:34px;min-height:0;padding-right:28px;border:0;background:transparent;box-shadow:none;font-size:13px;color:var(--text-dim);text-overflow:ellipsis;cursor:pointer}.list-filter .input::placeholder{color:var(--text-dim)}.list-filter .relation-select:after{content:"";position:absolute;top:50%;right:12px;width:6px;height:6px;margin-top:-5px;border-right:1.5px solid var(--text-faint);border-bottom:1.5px solid var(--text-faint);transform:rotate(45deg);pointer-events:none}.list-filter.is-set .relation-select:after{display:none}.list-filter .input:focus{box-shadow:none;cursor:text}.list-filter.is-set .input{color:var(--text);font-weight:600}.list-filter-clear{display:grid;place-items:center;flex:none;width:22px;height:22px;margin:0 6px 0 -24px;border:0;border-radius:999px;background:transparent;color:var(--red-text);cursor:pointer;position:relative;z-index:1}.list-filter-clear:hover{background:var(--red-tint-strong)}.input{width:100%;min-height:38px;padding:8px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);font:inherit;font-size:13.5px;color:var(--text);transition:border-color var(--fast),box-shadow var(--fast),background var(--fast)}.input::placeholder{color:var(--text-faint)}.input:hover:not(:disabled){border-color:var(--text-faint)}.input:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px var(--red-tint-strong)}.input:disabled{background:var(--surface-2);color:var(--text-faint);box-shadow:none;cursor:not-allowed}.search-field{position:relative;display:inline-flex;align-items:center}.search-field .icon{position:absolute;left:10px;color:var(--text-faint);pointer-events:none;transition:color var(--fast)}.search-field:focus-within .icon{color:var(--red-bright)}.input-search{width:280px;min-height:34px;padding-top:6px;padding-bottom:6px;padding-left:32px;font-size:13px}.textarea{resize:vertical;font-family:inherit;line-height:1.55}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-dim) 50%),linear-gradient(135deg,var(--text-dim) 50%,transparent 50%);background-position:calc(100% - 16px) 16px,calc(100% - 11px) 16px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:30px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 14px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-xs);transition:background var(--fast),border-color var(--fast),color var(--fast),box-shadow var(--fast),transform var(--fast)}.btn:hover:not(:disabled){background:var(--surface-2);box-shadow:var(--shadow-sm)}.btn:active:not(:disabled){transform:translateY(1px);box-shadow:none}.btn:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}.btn-primary{background:var(--red);background-image:var(--sheen);border-color:var(--red);color:#fff;font-weight:600;padding:0 16px;box-shadow:0 1px 2px #9e0f154d}.btn-primary:hover:not(:disabled){background-color:var(--red-bright);border-color:var(--red-bright);box-shadow:var(--shadow-md)}.btn-ghost{background:transparent;border-color:var(--line);color:var(--text-dim);box-shadow:none}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-accent{background:var(--accent-tint);border-color:var(--accent-line);color:var(--accent-text);box-shadow:none}.btn-accent:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.btn-danger-solid{background:var(--red);background-image:var(--sheen);border-color:var(--red-dim);color:#fff}.btn-danger-solid:hover:not(:disabled){background-color:var(--red-bright);border-color:var(--red-bright)}.btn-danger{background:var(--red-tint);border-color:var(--red-line);color:var(--red-bright);box-shadow:none}.btn-danger:hover:not(:disabled){background:var(--red);border-color:var(--red);color:#fff}.btn-small{min-height:30px;padding:0 10px;font-size:12.5px}.btn-block{width:100%}.btn-icon{background:transparent;border:0;font-size:19px;line-height:1;padding:0;width:28px;height:28px;border-radius:var(--radius-xs);color:var(--text-faint);box-shadow:none}.btn-icon:hover:not(:disabled){background:var(--surface-2);color:var(--text);box-shadow:none}.switch{display:flex;align-items:center;gap:9px;height:37px;color:var(--text-dim);font-size:13px}.switch input{accent-color:var(--red);width:15px;height:15px}.table-card,.table-wrapper{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.table-card{display:flex;flex-direction:column;min-height:0}.page-fill .table-card{flex:1}.table-scroll{flex:1;min-height:0;overflow:auto}.table-wrapper{overflow-x:auto}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}.data-table thead th{position:sticky;top:0;z-index:2;background:var(--surface-2);text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.th-sort{width:100%;display:flex;align-items:center;gap:5px;height:40px;padding:0 14px;border:0;background:transparent;font:inherit;font-size:12.5px;font-weight:500;color:var(--text-faint);cursor:pointer;transition:color var(--fast)}.th-sort:hover{color:var(--text)}.th-sort.is-static{cursor:default}.th-sort.is-static:hover{color:var(--text-faint)}.sort-arrow{display:inline-grid;place-items:center;color:var(--red-bright);opacity:0;transition:opacity var(--fast),transform var(--medium)}.th-sort:hover .sort-arrow{opacity:.45}.sort-arrow.is-active{opacity:1}.sort-arrow.is-desc{transform:rotate(180deg)}.data-table td{height:52px;padding:8px 14px;border-bottom:1px solid var(--line);vertical-align:middle;color:var(--text-dim)}.table-card .data-table td{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr{transition:background var(--fast)}.data-table tbody tr:hover td{background:var(--surface-2);color:var(--text)}.cell-key{color:var(--text-faint);font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:12px}.cell-title{color:var(--text);font-weight:550}.cell-identity{display:inline-flex;align-items:center;gap:12px;max-width:100%;vertical-align:middle}.cell-identity-text{min-width:0;overflow:hidden;text-overflow:ellipsis}.row-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--surface-3);color:var(--text);font-size:11.5px;font-weight:600;flex:none}.is-inactive .row-avatar{opacity:.55}.col-actions{text-align:right;white-space:nowrap;width:1%}th.col-actions{padding:0 14px}.row-actions{display:inline-flex;align-items:center;gap:2px;justify-content:flex-end}.btn-row{display:grid;place-items:center;width:29px;height:29px;padding:0;border:1px solid transparent;border-radius:var(--radius-xs);background:transparent;color:var(--text-faint);cursor:pointer;box-shadow:none;transition:background var(--fast),color var(--fast),border-color var(--fast)}.btn-row:hover:not(:disabled){background:var(--surface-3);color:var(--text);box-shadow:none}.btn-row.is-danger:hover:not(:disabled){background:var(--red-tint-strong);border-color:var(--red-line);color:var(--red-bright)}.btn-row:disabled{opacity:.35;cursor:not-allowed}.table-placeholder{padding:46px 34px;text-align:center;color:var(--text-faint);white-space:normal;max-width:none}.empty-state{display:grid;justify-items:center;gap:5px}.empty-state strong{color:var(--text-dim);font-size:13.5px;font-weight:600}.empty-state span{font-size:12.5px}.cell-empty{color:var(--line-strong)}.cell-relation{color:var(--text);border-bottom:1px dotted var(--line-strong)}.cell-code{font-size:11px}.badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:500;border:1px solid transparent;vertical-align:middle;white-space:nowrap}.badge-ok{background:var(--chip-bg);color:var(--text)}.badge-off{background:var(--surface-3);color:var(--text-faint)}.badge-neutral{background:var(--surface-3);color:var(--text-dim)}.pagination{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:8px 14px 8px 18px;border-top:1px solid var(--line);background:var(--surface);color:var(--text-faint);font-size:12.5px}.pagination strong{color:var(--text);font-weight:600}.pagination-buttons{display:flex;gap:8px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:16px 18px}.field{display:grid;gap:6px;align-content:start}.field-wide{grid-column:1 / -1}.field-label{font-size:12.5px;font-weight:500;color:var(--text-dim)}.field-hint{color:var(--text-faint);font-size:12px}.required-mark{color:var(--red-bright)}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line-soft)}.form-tabs{display:flex;flex-wrap:wrap;gap:4px 20px;margin:-4px 0 18px;border-bottom:1px solid var(--line)}.form-tab{position:relative;display:inline-flex;align-items:center;gap:6px;height:40px;padding:0;margin-bottom:-1px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--text-faint);font:inherit;font-size:13px;font-weight:550;cursor:pointer;transition:color var(--fast),border-color var(--fast)}.form-tab:hover{color:var(--text)}.form-tab.is-active{color:var(--text);border-bottom-color:var(--red)}.form-tab-count{min-width:18px;padding:0 5px;border-radius:999px;background:var(--surface-3);color:var(--text-dim);font-size:10.5px;line-height:17px;text-align:center}.form-tab-dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.form-error{margin-top:16px}.embedded-panel{display:grid;gap:12px}.embedded-panel>.alert{margin:0}.embedded-note{color:var(--text-faint);font-size:12.5px}.embedded-empty{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px dashed var(--line-strong);border-radius:var(--radius-sm)}.embedded-fieldset{margin:0;padding:0;border:0;min-width:0}.embedded-single-actions{display:flex;justify-content:flex-end;margin-top:12px}.embedded-chips-block{display:grid;gap:12px}.embedded-chips{display:flex;flex-wrap:wrap;gap:6px;min-height:30px;align-items:center}.embedded-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 4px 4px 11px;border:1px solid var(--line-strong);border-radius:999px;background:var(--chip-bg);color:var(--text);font-size:12.5px}.embedded-chip.is-new{border-color:var(--accent-line);background:var(--accent-tint)}.embedded-chip-remove{display:grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text-faint);font-size:15px;line-height:1;cursor:pointer}.embedded-chip-remove:hover{background:var(--red-tint-strong);color:var(--red-bright)}.embedded-chip-add{max-width:360px}.embedded-table-wrap{border:1px solid var(--line);border-radius:var(--radius-sm);overflow-x:auto}.embedded-th{display:block;padding:9px 12px;font-size:12px;font-weight:500;color:var(--text-faint)}.embedded-table td{padding:8px 12px;border-top:1px solid var(--line-soft)}.embedded-table tr.is-removed td{color:var(--text-faint);text-decoration:line-through}.embedded-table tr.is-removed .row-actions,.embedded-table tr.is-removed .embedded-status{text-decoration:none}.embedded-placeholder{text-align:center;color:var(--text-faint);padding:22px 12px!important}.embedded-status{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:650;letter-spacing:.03em;vertical-align:middle;border:1px solid transparent}.embedded-status.is-new,.embedded-status.is-changed{border-color:var(--accent-line);background:var(--accent-tint);color:var(--accent-text)}.embedded-status.is-removed{border-color:var(--red-line);background:var(--red-tint);color:var(--red-text)}.embedded-add{justify-self:start}.embedded-editor{padding:16px;border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:var(--radius-sm);background:var(--surface-2);display:grid;gap:14px}.embedded-editor-title{margin:0!important;font-size:12px;font-weight:500;color:var(--text-faint)}.embedded-editor-error{margin:0}.embedded-editor-actions{display:flex;justify-content:flex-end;gap:8px}.cargas-filter{width:auto;min-width:150px}.cargas-tablas{color:var(--text-faint);font-size:12px;font-weight:400}.cargas-revertida{display:inline-grid;gap:3px}.cargas-revertida small{color:var(--text-faint);font-size:11px}.cargas-modos{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-bottom:16px}.cargas-modo{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;transition:border-color var(--fast),background var(--fast)}.cargas-modo input{margin-top:3px;accent-color:var(--red)}.cargas-modo span{display:grid;gap:3px}.cargas-modo strong{color:var(--text);font-size:13.5px}.cargas-modo small{color:var(--text-faint);font-size:11.5px;line-height:1.5}.cargas-modo.is-active{border-color:var(--red-line);background:var(--red-tint)}.modal-body .embedded-table-wrap{margin-bottom:10px}.cargas-bloqueos{margin-top:14px}.cargas-bloqueos>span{display:block;margin-top:8px}.cargas-ejemplos{color:var(--text-faint);font-size:11.5px}.relation-select{position:relative}.relation-current{display:flex;align-items:center;gap:4px}.relation-options{position:fixed;z-index:60;overflow-y:auto;margin:0;padding:5px;list-style:none;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);animation:pop-in .14s var(--ease)}.relation-option{position:relative;width:100%;text-align:left;padding:7px 10px;border:0;border-radius:var(--radius-xs);background:transparent;color:var(--text-dim);font:inherit;font-size:13px;cursor:pointer}.relation-option:hover,.relation-option.is-selected{background:var(--red-tint);color:var(--text)}.relation-option.is-selected{font-weight:600}.relation-option.is-multiple{display:flex;align-items:center;gap:9px}.relation-option.is-multiple.is-selected{font-weight:500}.relation-check{flex:none;display:grid;place-items:center;width:16px;height:16px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface)}.relation-option.is-selected .relation-check{border-color:var(--red);background:var(--red);color:#fff}.relation-empty{padding:10px;color:var(--text-faint);font-size:12.5px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:24px;z-index:50;animation:fade-in .16s var(--ease)}.modal{position:relative;width:min(560px,100%);max-height:88vh;overflow-y:auto;background:var(--sheet);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:modal-in .2s var(--ease)}.modal:focus{outline:none}.modal-ok{border-top:3px solid var(--ok)}.modal-warn{border-top:3px solid var(--warn)}.modal-backdrop.is-drawer{place-items:stretch end;padding:8px;-webkit-backdrop-filter:none;backdrop-filter:none}.modal-drawer{width:min(640px,100%);max-height:none;height:100%;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius-lg);animation:drawer-in .24s var(--ease)}.modal-drawer .modal-header{padding:22px 20px 18px 28px}.modal-drawer .modal-header h2{font-family:var(--font-display);font-size:26px;font-weight:500;line-height:1.15}.modal-drawer .modal-body{flex:1;min-height:0;overflow-y:auto;padding:0}.modal-drawer .resource-form{min-height:100%;display:flex;flex-direction:column}.modal-drawer .form-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:0 28px;margin:0}.modal-drawer .form-tab{flex:none}.modal-drawer .form-grid,.modal-drawer .embedded-panel,.modal-drawer .form-error{margin:24px 28px 28px}.modal-drawer .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-drawer .form-actions{position:sticky;bottom:0;margin:auto 0 0;padding:14px 20px 14px 28px;border-top:1px solid var(--line);background:var(--surface-2)}@keyframes drawer-in{0%{opacity:0;transform:translate(24px)}}.modal-wide{width:min(900px,100%)}.modal-xwide{width:min(1240px,100%)}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.985)}}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)}}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 20px 16px 24px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--sheet);z-index:1}.modal-header h2{margin:0;font-size:17px;font-weight:600;letter-spacing:-.01em}.modal-header p{margin:4px 0 0;color:var(--text-faint);font-size:12.5px}.modal-close{width:34px;height:34px;display:grid;place-items:center}.modal-body{padding:20px;color:var(--text-dim)}.modal-body p{margin-top:0;line-height:1.65}.alert{border:1px solid var(--line);border-radius:var(--radius-sm);padding:11px 14px;margin:0 0 14px;font-size:13px;background:var(--surface-2);color:var(--text-dim)}.alert-flash{animation:flash 4.4s var(--ease) forwards}@keyframes flash{0%{opacity:0;transform:translateY(-4px)}4%,88%{opacity:1;transform:none}to{opacity:0;transform:translateY(-4px)}}.alert ul{margin:6px 0 0;padding-left:18px}.alert-error{border-color:var(--red-line);border-left-color:var(--red);background:var(--red-tint);color:var(--red-text)}.alert-error strong{color:var(--text)}.alert-ok{border-color:var(--ok-line);border-left-color:var(--ok);background:var(--ok-tint);color:var(--ok-text)}.alert-ok strong,.alert-warn strong{color:var(--text)}.alert-warn{border-color:var(--warn-line);border-left-color:var(--warn);background:var(--warn-tint);color:var(--warn-text)}.tile-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.tile{display:flex;flex-direction:column;gap:12px;padding:18px 20px;box-shadow:1px 0 0 var(--line),0 1px 0 var(--line)}.tile header{display:flex;align-items:center;gap:7px;min-width:0}.tile-icon{display:grid;place-items:center;color:var(--text-faint);flex:none}.tile-label{font-size:12.5px;color:var(--text-dim);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@container tablero (max-width: 940px){.tile-row{grid-template-columns:repeat(6,minmax(0,1fr))}.tile-row>.tile{grid-column:span 2}.tile-row>.tile:nth-child(n+4){grid-column:span 3}}@container tablero (max-width: 600px){.tile-row{grid-template-columns:repeat(2,minmax(0,1fr))}.tile-row>.tile,.tile-row>.tile:nth-child(n+4){grid-column:auto}.tile-row>.tile:last-child:nth-child(odd){grid-column:1 / -1}}@container tablero (max-width: 380px){.tile-row{grid-template-columns:minmax(0,1fr)}}.tile-value{font-size:28px;font-weight:600;letter-spacing:-.02em;line-height:1;color:var(--text)}.tile-foot{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:15px;margin-top:auto}.tile-hint{font-size:12px;color:var(--text-faint);min-width:0;line-height:1.4}.tile-delta{padding:1px 6px;border-radius:5px;background:var(--chip-bg);font-size:11.5px;font-weight:600;color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap}.panel-loading{padding:40px;text-align:center;color:var(--text-faint);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.dashboard{container-type:inline-size;container-name:tablero}.panel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:28px}@container tablero (max-width: 940px){.panel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-grid>:last-child:nth-child(odd){grid-column:1 / -1}}@container tablero (max-width: 560px){.panel-grid{grid-template-columns:minmax(0,1fr);gap:14px}}.panel{display:flex;flex-direction:column;padding:20px 24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:0}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-head h2{margin:0;font-size:14px;font-weight:600}.panel-head p{margin:3px 0 0;font-size:12.5px;color:var(--text-faint)}.panel-figure{font-size:22px;font-weight:600;letter-spacing:-.02em;line-height:1}.panel-empty{margin:0;padding:26px 8px;text-align:center;font-size:12.5px;color:var(--text-faint);border:1px dashed var(--line);border-radius:var(--radius-sm)}.bar-list{display:grid;grid-template-columns:minmax(66px,auto) 1fr auto minmax(38px,auto);column-gap:10px;row-gap:2px;margin:0;padding:0;list-style:none;flex:1;align-content:center}.bar-row{display:grid;grid-template-columns:subgrid;grid-column:1 / -1;align-items:center;padding:4px 0;border-radius:var(--radius-xs);font-size:12.5px;transition:background var(--fast)}.bar-row.is-hovered{background:var(--surface-2);box-shadow:-6px 0 0 var(--surface-2),6px 0 0 var(--surface-2)}.bar-label{color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-row.is-hovered .bar-label{color:var(--text)}.bar-track{height:9px;border-radius:999px;background:var(--viz-grid);overflow:hidden}.bar-fill{display:block;height:100%;border-radius:0 4px 4px 0;transition:width var(--medium)}.bar-value{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums;text-align:right;min-width:42px}.bar-extra{color:var(--text-faint);font-size:11px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.bar-row.is-hovered .bar-extra{color:var(--text-dim)}.trend{position:relative;width:100%;flex:1;display:flex;flex-direction:column;justify-content:center}.trend svg{display:block;cursor:crosshair}.trend-grid{stroke:var(--viz-grid);stroke-width:1}.trend-tick{fill:var(--text-faint);font-size:10px;font-variant-numeric:tabular-nums}.trend-area{fill:var(--viz-area)}.trend-line{fill:none;stroke:var(--viz-bar);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.trend-cross{stroke:var(--line-strong);stroke-width:1;stroke-dasharray:3 3}.trend-dot{fill:var(--viz-bar);stroke:var(--surface);stroke-width:2}.trend-tip{position:absolute;top:0;z-index:5;display:grid;padding:5px 9px;border-radius:var(--radius-xs);background:var(--text);color:var(--bg);font-size:11.5px;line-height:1.4;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-md)}.trend-tip small{opacity:.7;font-size:10.5px}.section-title{margin:28px 0 14px;font-family:var(--font-display);font-size:22px;font-weight:500;letter-spacing:-.01em;color:var(--text)}.section-title:first-of-type{margin-top:22px}.tile-spark{margin:2px 0 1px}.sparkline{display:block;width:100%;overflow:visible}.sparkline-area{fill:var(--viz-area)}.sparkline-line{fill:none;stroke:var(--viz-bar);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.meter{display:grid;gap:10px;align-content:center;flex:1}.meter-figure{display:flex;align-items:baseline;gap:9px;margin:0;flex-wrap:wrap}.meter-figure strong{font-size:34px;font-weight:640;letter-spacing:-.03em;line-height:1;color:var(--text)}.meter-figure span{font-size:12px;color:var(--text-faint)}.meter-track{height:10px;border-radius:999px;background:var(--viz-grid);overflow:hidden}.meter-fill{height:100%;border-radius:0 5px 5px 0;background:var(--viz-bar);transition:width var(--medium)}.meter-rest{margin:0;font-size:12px;color:var(--text-faint)}.meter-cells{display:grid;grid-template-columns:repeat(auto-fill,minmax(12px,1fr));gap:3px}.meter-cells span{aspect-ratio:1;border-radius:3px;background:var(--viz-grid)}.meter-cells span.is-on{background:var(--viz-bar)}.donut{display:flex;align-items:center;gap:18px;flex-wrap:wrap;flex:1;justify-content:center;align-content:center}.donut svg{flex:none}.donut-total{fill:var(--text);font-size:22px;font-weight:640;letter-spacing:-.02em}.donut-unit{fill:var(--text-faint);font-size:10px;letter-spacing:.05em}.donut-legend{display:grid;gap:7px;margin:0;padding:0;list-style:none;flex:1;min-width:128px}.donut-legend li{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;font-size:12.5px}.donut-chip{width:9px;height:9px;border-radius:3px}.donut-name{color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.donut-value{color:var(--text);font-weight:650;font-variant-numeric:tabular-nums}.donut-share{color:var(--text-faint);font-size:11px;font-variant-numeric:tabular-nums;min-width:34px;text-align:right}.data-table th.col-select,.data-table td.col-select{width:42px;padding:0 0 0 14px;text-align:left}.data-table .col-select .row-check{display:block}.row-check{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;margin:0;border:1.5px solid var(--line-strong);border-radius:var(--radius-xs);background:var(--surface);cursor:pointer;vertical-align:middle;transition:background var(--fast),border-color var(--fast)}.row-check:hover:not(:disabled){border-color:var(--red)}.row-check:checked,.row-check:indeterminate{background:var(--red);border-color:var(--red)}.row-check:checked:after,.row-check:indeterminate:after{content:"";display:block;height:100%;background:#fff;clip-path:polygon(20% 51%,27% 44%,41% 58%,73% 26%,80% 33%,41% 72%)}.row-check:indeterminate:after{clip-path:polygon(24% 44%,76% 44%,76% 56%,24% 56%)}.row-check:disabled{cursor:not-allowed;opacity:.4}.data-table tbody tr.is-selected td{background:var(--surface-2);color:var(--text)}.data-table tbody tr.is-inactive td,.data-table tbody tr.is-inactive .cell-title{color:var(--text-faint)}.selection-bar{position:absolute;left:50%;bottom:96px;transform:translate(-50%);z-index:15;display:flex;align-items:center;gap:4px;padding:6px 6px 6px 16px;border-radius:12px;background:var(--selection-bar);color:var(--selection-bar-text);box-shadow:0 12px 32px #16151347;font-size:13px;animation:pop-in .18s var(--ease)}.selection-count{padding-right:12px;margin-right:4px;border-right:1px solid color-mix(in srgb,currentColor 22%,transparent);font-variant-numeric:tabular-nums;white-space:nowrap}.selection-action{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:inherit;font:inherit;font-weight:500;cursor:pointer}.selection-action.is-icon{width:32px;padding:0;justify-content:center;opacity:.75}.selection-action:hover:not(:disabled){background:color-mix(in srgb,currentColor 12%,transparent);opacity:1}.selection-action:disabled{opacity:.45;cursor:not-allowed}.delete-names{display:flex;flex-wrap:wrap;gap:6px;max-height:180px;overflow-y:auto}.delete-name{padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);font-size:12px;color:var(--text-dim)}.delete-name.is-more{border-style:dashed;color:var(--text-faint)}.log-head.is-static{cursor:default}.log-head.is-static:hover{background:transparent}.method-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.method-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:26px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);color:var(--text);font:inherit;cursor:pointer;transition:transform .18s,border-color .18s,background .18s,box-shadow .18s}.method-card:hover{transform:translateY(-3px);border-color:var(--red-line);background:var(--red-tint);box-shadow:var(--shadow)}.method-icon{display:grid;place-items:center;width:54px;height:54px;margin-bottom:4px;border-radius:50%;background:var(--red);color:#fff}.method-card strong{font-size:15px;font-weight:650}.method-card small{color:var(--text-faint);font-size:11.5px;line-height:1.5}.method-card:disabled{opacity:.45;cursor:not-allowed;transform:none;border-color:var(--line);background:var(--surface-2);box-shadow:none}.bulk-target-list{display:grid;gap:8px}.bulk-target{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--fast),background var(--fast)}.bulk-target:hover:not(:disabled){border-color:var(--red-line);background:var(--red-tint)}.bulk-target:disabled{opacity:.45;cursor:not-allowed}.bulk-target strong{font-size:13.5px;font-weight:650}.bulk-target small{color:var(--text-faint);font-size:11.5px}.bulk-import{display:flex;flex-direction:column;gap:28px}.bulk-section{display:flex;flex-direction:column;gap:14px}.bulk-heading,.bulk-section-header h3{margin:0;display:flex;align-items:center;gap:10px;font-size:14.5px;font-weight:650;color:var(--text)}.bulk-heading{padding-bottom:10px;border-bottom:1px solid var(--line)}.bulk-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid var(--line)}.bulk-step{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--red);color:#fff;font-size:11.5px;font-weight:700}.bulk-counts{margin:0;font-size:11.5px;color:var(--text-faint)}.bulk-note{margin:0;font-size:12px;color:var(--text-faint);line-height:1.55}.bulk-formats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.bulk-format{display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;padding:22px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);color:var(--text);font:inherit;cursor:pointer;transition:transform .18s,border-color .18s,background .18s}.bulk-format:hover:not(:disabled){transform:translateY(-2px);border-color:var(--line-strong)}.bulk-format:disabled{opacity:.42;cursor:not-allowed}.bulk-format.is-selected{border-color:var(--red);background:var(--red-tint)}.bulk-format strong{font-size:15px;font-weight:650;color:var(--text)}.bulk-format.is-selected strong{color:var(--red-text)}.bulk-format small{color:var(--text-faint);font-size:11.5px;line-height:1.45}.bulk-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.bulk-card{display:flex;align-items:center;justify-content:center;gap:10px;padding:16px;border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface-2);color:var(--text);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:border-color .18s,background .18s,color .18s}.bulk-card:hover:not(:disabled){border-color:var(--accent);background:var(--accent-tint);color:var(--accent-text)}.bulk-card:disabled{opacity:.42;cursor:not-allowed}.bulk-table th{padding:8px 10px;min-width:165px;vertical-align:top}.bulk-table th.bulk-row-number{min-width:0;vertical-align:middle}.col-source{display:block;max-width:190px;margin-bottom:5px;overflow:hidden;text-overflow:ellipsis;font-size:11px;font-weight:600;color:var(--text-faint)}.col-target{width:100%;padding:4px 8px;font-size:12px;font-weight:600}.bulk-table th.is-ignored .col-source,.bulk-table th.is-ignored .col-target{color:var(--text-faint);font-weight:500}.bulk-table td.is-ignored{background-image:linear-gradient(var(--column-off),var(--column-off))}.bulk-delimiter{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:11.5px;font-weight:500;color:var(--text-faint)}.bulk-delimiter .input{width:auto;padding:4px 8px;font-size:12px}.input.is-invalid{border-color:var(--red-line)}.alert.bulk-file{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.bulk-legend{display:flex;flex-direction:column;gap:5px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);font-size:11.5px;color:var(--text-dim)}.bulk-legend-title{font-weight:500;color:var(--text);font-size:12px}.bulk-legend-row{display:flex;align-items:center;gap:7px}.bulk-legend-row em{margin-left:auto;font-style:normal;color:var(--text-faint);font-variant-numeric:tabular-nums}.bulk-legend-error{color:var(--red-bright);font-weight:700}.bulk-legend-warn{color:var(--warn-bright);font-weight:700;text-decoration:underline dotted;text-underline-offset:3px}.bulk-legend-hint{color:var(--text-faint)}.bulk-preview{max-height:420px;overflow:auto;background:linear-gradient(to right,var(--surface) 30%,transparent) left center,linear-gradient(to left,var(--surface) 30%,transparent) right center,radial-gradient(farthest-side at 0 50%,var(--scroll-shadow),transparent) left center,radial-gradient(farthest-side at 100% 50%,var(--scroll-shadow),transparent) right center;background-repeat:no-repeat;background-size:44px 100%,44px 100%,20px 100%,20px 100%;background-attachment:local,local,scroll,scroll}.bulk-preview .data-table th{position:sticky;top:0;z-index:1}.bulk-preview .data-table td{color:var(--text);white-space:nowrap}.bulk-row-number{width:54px;color:var(--text-faint);font-variant-numeric:tabular-nums}.bulk-row-failed td{background:var(--red-tint)}.data-table td.bulk-cell-error{color:var(--red-text);font-weight:650}.data-table td.bulk-cell-warning{color:var(--warn-text);text-decoration:underline dotted;text-underline-offset:3px}.bulk-mark{margin-left:6px;color:var(--red-bright);font-weight:800}.bulk-run{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.btn-large{padding:11px 22px;font-size:13.5px}.bulk-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:24px;background:var(--backdrop);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.bulk-overlay-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;width:min(430px,100%);padding:34px 30px;border:1px solid var(--line-strong);border-top:2px solid var(--red);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);color:var(--text-dim)}.bulk-overlay-card strong{font-size:16px;font-weight:650;color:var(--text)}.bulk-overlay-card small{font-size:11.5px;color:var(--text-faint)}.bulk-progress{position:relative;width:100%;height:28px;margin:6px 0 2px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);overflow:hidden;display:grid;place-items:center}.bulk-progress-bar{position:absolute;inset:0 auto 0 0;background:var(--surface-3);transition:width .2s ease-out}.bulk-progress span{position:relative;font-size:12px;font-weight:700;color:var(--text-dim);font-variant-numeric:tabular-nums}.logs-dialog{display:flex;flex-direction:column;gap:18px}.logs-summary{display:flex;align-items:center;gap:14px;margin:0;padding:14px 16px}.logs-summary-icon{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:50%;color:#fff}.alert-ok .logs-summary-icon{background:var(--ok)}.alert-warn .logs-summary-icon{background:var(--warn)}.alert-error .logs-summary-icon{background:var(--red)}.logs-summary-text{display:flex;flex-direction:column;gap:2px}.logs-summary strong{font-size:15px}.bulk-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.bulk-stat{display:flex;flex-direction:column;align-items:center;gap:2px;padding:16px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.bulk-stat strong{font-size:28px;font-weight:650;font-variant-numeric:tabular-nums}.bulk-stat span{font-size:11.5px;color:var(--text-faint)}.bulk-stat-ok{border-color:var(--ok-line);background:var(--ok-tint)}.bulk-stat-ok strong{color:var(--ok-bright)}.bulk-stat-warn{border-color:var(--warn-line);background:var(--warn-tint)}.bulk-stat-warn strong{color:var(--warn-bright)}.bulk-stat-error{border-color:var(--red-line);background:var(--red-tint)}.bulk-stat-error strong{color:var(--red-bright)}.logs-list{display:flex;flex-direction:column;gap:8px}.log-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);overflow:hidden}.log-item.is-open{border-color:var(--red-line)}.log-head{display:flex;align-items:center;gap:11px;width:100%;padding:11px 14px;border:0;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.log-head:hover{background:var(--surface-3)}.log-mark{display:grid;place-items:center;flex:0 0 22px;height:22px;border-radius:50%;background:var(--red);color:#fff;font-size:12px;font-weight:800}.log-title{display:flex;flex-direction:column;min-width:0;flex:1}.log-title strong{font-size:13px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-title small{font-size:11px;color:var(--text-faint)}.log-chevron{color:var(--text-faint);font-size:15px;font-weight:700}.log-body{display:flex;flex-direction:column;gap:14px;padding:14px;border-top:1px solid var(--line);background:var(--surface)}.log-block{display:flex;flex-direction:column;gap:6px}.log-label{font-size:12px;font-weight:500;color:var(--text-faint)}.log-reasons{margin:0;padding-left:18px;font-size:12.5px;color:var(--red-text);line-height:1.6}.log-data{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px 18px;margin:0}.log-data dt{font-size:10.5px;color:var(--text-faint)}.log-data dd{margin:0;font-size:12.5px;color:var(--text);overflow-wrap:anywhere}.pager{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap}.pager-page,.pager-step{display:grid;place-items:center;min-width:28px;height:28px;padding:0 7px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--text-dim);font:inherit;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer;transition:border-color .12s,background .12s,color .12s}.pager-page:hover:not(.is-current),.pager-step:hover:not(:disabled){border-color:var(--line-strong);background:var(--surface-3)}.pager-page.is-current{background:var(--red);border-color:var(--red);color:#fff;cursor:default}.pager-step:disabled{opacity:.35;cursor:not-allowed}.pager-gap{color:var(--text-faint);padding:0 2px}.alert-info{border-left-color:var(--text-faint)}.nav-toggle,.nav-close,.nav-backdrop,.topbar-mark,.sidebar-search,.list-filters-toggle,.login-card-logo{display:none}.list-filters{display:contents}.list-filters-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;font-size:11px;font-weight:600}@media(max-width:1023.98px){.app-shell{display:block;height:auto;min-height:100vh;overflow:visible;padding:8px}.sidebar{position:fixed;inset:0 auto 0 0;z-index:60;width:min(320px,86vw);padding:10px 14px 14px 16px;background:var(--bg);border-right:1px solid var(--line);box-shadow:var(--shadow-lg);transform:translate(-104%);visibility:hidden;transition:transform .26s var(--ease),visibility 0s linear .26s}.sidebar.is-open{transform:none;visibility:visible;transition:transform .26s var(--ease),visibility 0s}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:var(--backdrop);animation:fade-in .2s var(--ease)}body.has-nav-open{overflow:hidden}.sidebar-brand{justify-content:space-between}.nav-close,.nav-toggle{display:grid;place-items:center;width:40px;height:40px;flex:none;border:0;border-radius:10px;background:transparent;color:var(--text-dim);cursor:pointer;transition:background var(--fast),color var(--fast)}.nav-close:hover,.nav-toggle:hover{background:var(--surface-3);color:var(--text)}.nav-toggle{margin-left:-10px;color:var(--text)}.sidebar .nav-item{height:40px}.sidebar .nav-subitem{height:36px}.workspace{display:block;min-height:calc(100vh - 16px);overflow:clip}.workspace-body{overflow:visible}.topbar{position:sticky;top:0;z-index:20;height:var(--topbar-height);gap:10px;padding:0 12px 0 16px;background:var(--sheet)}.topbar-trail{flex:1}.page{padding:24px 24px 40px}.page-fill{height:auto;overflow:visible}.page-fill .table-card{flex:none}.selection-bar{position:fixed;bottom:20px}}@media(max-width:767.98px){.app-shell{padding:0}.workspace{min-height:100vh;border:0;border-radius:0;box-shadow:none}.topbar{padding:0 8px 0 12px}.topbar .quick-jump{display:none}.sidebar-search{display:block}.sidebar-search .quick-jump{width:100%}.sidebar-search kbd{display:none}.topbar-mark{display:flex}.topbar-trail .trail-root,.topbar-trail-step:not(.is-last){display:none}.topbar-trail-step.is-last .chevron{display:none}.topbar-trail{font-size:14px}.topbar-trail .trail-current{font-weight:600}.page{padding:20px 16px 32px}.page-header{align-items:flex-start;gap:14px;margin-bottom:16px}.page-header h1,.page-title{font-size:32px}.page-actions{width:100%}.page-actions>.btn-primary{flex:1}.view-tabs{gap:20px;overflow-x:auto;scrollbar-width:none}.view-tab{flex:none}.list-toolbar .search-field{flex:1 1 0;min-width:0}.input-search{width:100%}.list-filters-toggle{display:inline-flex;min-height:34px}.list-filters-toggle.is-open{background:var(--surface-3)}.list-filters{display:none}.list-filters.is-open{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;width:100%}.list-filters .list-filter{width:100%}.list-filters .relation-select,.list-filters select.input{flex:1;width:auto;min-width:0}.list-filters>.btn{justify-self:start}.pagination{flex-direction:column;align-items:center;gap:10px;padding:12px 14px}.selection-bar{left:12px;right:12px;bottom:12px;transform:none;justify-content:space-between}.panel{padding:18px}.modal-backdrop{padding:12px}.modal{max-height:calc(100dvh - 24px)}.modal-backdrop:has(.modal-xwide){padding:0}.modal-xwide{max-height:100dvh;height:100dvh;border:0;border-radius:0}.modal-backdrop.is-drawer{padding:0}.modal-drawer{width:100%;max-height:none;border:0;border-radius:0}.modal-drawer .modal-header{padding:16px 10px 14px 16px}.modal-drawer .modal-header h2{font-size:22px}.modal-drawer .form-tabs{padding:0 16px}.modal-drawer .form-grid,.modal-drawer .embedded-panel,.modal-drawer .form-error{margin:20px 16px 24px}.modal-drawer .form-grid{grid-template-columns:minmax(0,1fr)}.modal-drawer .form-actions{padding:12px 16px}.modal-drawer .form-actions .btn{flex:1}.bulk-map-row{grid-template-columns:1fr;gap:4px}.bulk-delimiter{margin-left:0}}@media(max-width:639.98px){.data-table.is-cards,.data-table.is-cards tbody{display:block}.data-table.is-cards thead{display:none}.data-table.is-cards tbody tr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:12px;row-gap:3px;align-items:center;padding:14px 14px 14px 16px;border-bottom:1px solid var(--line)}.data-table.is-cards tbody tr:last-child{border-bottom:0}.table-card .data-table.is-cards td,.data-table.is-cards td{display:block;grid-column:2 / -1;height:auto;max-width:none;min-width:0;padding:0;border:0;font-size:13px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.data-table.is-cards td[data-label]:before{content:attr(data-label);display:inline-block;vertical-align:top;width:40%;max-width:150px;margin-right:10px;overflow:hidden;text-overflow:ellipsis;color:var(--text-faint);font-size:12px}.data-table.is-cards td.col-select{grid-column:1;grid-row:1;width:auto;padding:0}.data-table.is-cards td.cell-title{grid-column:2;grid-row:1;margin-bottom:6px;font-size:14.5px;line-height:32px}.data-table.is-cards td.cell-title:before{display:none}.data-table.is-cards tr:not(:has(td.col-select)) td.cell-title{grid-column:1 / 3}.data-table.is-cards td.col-actions{grid-column:3;grid-row:1;width:auto;overflow:visible;margin-bottom:6px}.data-table.is-cards td:has(>.cell-empty),.data-table.is-cards td.is-internal{display:none}.data-table.is-cards td.table-placeholder{grid-column:1 / -1;padding:28px 8px;white-space:normal}.data-table.is-cards tbody tr:hover td,.data-table.is-cards tbody tr.is-selected td{background:transparent}.data-table.is-cards tbody tr.is-selected{background:var(--surface-2)}.data-table.is-cards .btn-row{width:36px;height:36px}}@media(max-width:899.98px){.login-screen{grid-template-columns:1fr}.login-aside{display:none}.login-main{place-items:start center;padding:12vh 20px 40px}.login-card-logo{display:block;margin-bottom:10px}.login-theme{top:16px;right:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
