:root{color-scheme:dark;--nav-bg: #050607;--nav-active: #15191f;--nav-text: #7a828e;--nav-line: #121821;--bg: #08090b;--card: #0f1114;--elev: #13161b;--surface-2: #0c0e11;--input: #0b0d10;--hover: #1a1e24;--popover: #14171c;--ink: #e9ecf1;--ink2: #b8bfca;--muted: #8a929e;--faint: #5f6670;--line: #1f2329;--line-soft: #171a1f;--line-strong: #2a2f37;--track: #2a2f37;--primary: #0fe58b;--primary-soft: rgba(15, 229, 139, .12);--primary-ink: #5ef2b0;--on-primary: #04130c;--accent: #0fe58b;--ok: #0fe58b;--ok-soft: rgba(15, 229, 139, .12);--warn: #f5a623;--warn-soft: rgba(245, 166, 35, .13);--warn-ink: #fbc061;--bad: #ef4444;--bad-soft: rgba(239, 68, 68, .13);--bad-ink: #f87171;--info: #4da3ff;--info-soft: rgba(77, 163, 255, .13);--info-ink: #8cc3ff;--violet: #a78bfa;--violet-soft: rgba(167, 139, 250, .14);--violet-ink: #c4b5fd;--seg-alto: #ff5722;--seg-medio: #f5a623;--seg-bajo: #3f6f96;--seg-sin: #2a2f38;--seg-alto-ink: #ff7a4d;--seg-medio-ink: #f7b84b;--seg-bajo-ink: #7aa3c6;--radius: 12px;--radius-sm: 8px;--radius-lg: 14px;--shadow: 0 1px 0 rgba(255, 255, 255, .03) inset, 0 10px 30px rgba(0, 0, 0, .6);--shadow-lg: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 22px 60px rgba(0, 0, 0, .75);--focus-ring: 0 0 0 3px rgba(15, 229, 139, .28);--font-sans: -apple-system, "SF Pro Text", "Inter", system-ui, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", ui-monospace, Menlo, Consolas, monospace;--rail-width: 72px;--topbar-height: 64px;--tabbar-height: 64px;--mobile-header-height: 52px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--z-map-overlay: 5;--z-floating: 6;--z-shell: 10;--z-dropdown: 30;--z-modal: 40;--z-toast: 50}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-sans);color:var(--ink);background:var(--bg);font-size:14px;line-height:1.4;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}button:disabled{cursor:not-allowed}a{color:var(--primary-ink);text-decoration:none}a:hover{text-decoration:underline}svg{display:block;flex:none}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}::selection{background:#0fe58b4d}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:6px;border:2px solid transparent;background-clip:padding-box}.mono{font-family:var(--font-mono)}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:12px}.bold{font-weight:700}.label{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--faint);text-transform:uppercase}.ok-t,.primary-t{color:var(--primary-ink)}.warn-t{color:var(--seg-medio-ink)}.bad-t{color:var(--bad-ink)}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes gm-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.btn{height:38px;border-radius:10px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:14px;border:1px solid var(--line-strong);background:var(--elev);color:var(--ink);white-space:nowrap;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;text-decoration:none;position:relative}.btn:hover:not(:disabled){background:var(--hover);text-decoration:none}.btn.sm{height:32px;padding:0 10px;font-size:13px;border-radius:8px}.btn.lg{height:44px;padding:0 18px;font-size:15px}.btn.block{width:100%}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary);box-shadow:0 6px 18px #0fe58b38}.btn.primary:hover:not(:disabled){background:#2cf09c;border-color:#2cf09c}.btn.danger{background:transparent;border-color:#ef444473;color:var(--bad-ink)}.btn.danger:hover:not(:disabled){background:var(--bad-soft)}.btn.ghost{border-color:transparent;background:transparent;color:var(--primary-ink)}.btn.ghost:hover:not(:disabled){background:var(--primary-soft)}.btn.soft{background:var(--primary-soft);border-color:transparent;color:var(--primary-ink)}.btn.soft:hover:not(:disabled){background:#0fe58b33}.btn:disabled{opacity:.45}.btn .spinner{animation:gm-spin .8s linear infinite}.btn.loading>:not(.spinner){opacity:.85}.iconbtn{width:38px;height:38px;border-radius:10px;display:inline-grid;place-items:center;color:var(--ink2);position:relative;border:1px solid transparent;transition:background .15s,color .15s;flex:none}.iconbtn:hover:not(:disabled){background:var(--hover);color:var(--ink)}.iconbtn.sm{width:30px;height:30px;border-radius:8px}.iconbtn.bordered{border-color:var(--line);background:var(--card)}.iconbtn.active{background:var(--primary);color:var(--on-primary)}.iconbtn .badge{position:absolute;top:2px;right:1px;min-width:18px;height:18px;border-radius:9px;background:var(--bad);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;padding:0 5px;border:2px solid var(--nav-bg);line-height:1}.pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:12px;font-size:12px;font-weight:600;white-space:nowrap}.pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.pill.nodot:before{display:none}.pill.ok{background:var(--ok-soft);color:var(--primary-ink)}.pill.warn{background:var(--warn-soft);color:var(--warn-ink)}.pill.bad{background:var(--bad-soft);color:var(--bad-ink)}.pill.info{background:var(--info-soft);color:var(--info-ink)}.pill.mute{background:var(--hover);color:var(--muted)}.pill.violet{background:var(--violet-soft);color:var(--violet-ink)}.pill.primary{background:var(--primary-soft);color:var(--primary-ink)}.seg{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:12px;letter-spacing:.02em}.seg i{width:12px;height:12px;border-radius:3px;display:inline-block}.seg.alto{color:var(--seg-alto-ink)}.seg.alto i{background:var(--seg-alto)}.seg.medio{color:var(--seg-medio-ink)}.seg.medio i{background:var(--seg-medio)}.seg.bajo{color:var(--seg-bajo-ink)}.seg.bajo i{background:var(--seg-bajo)}.seg.sin{color:var(--faint)}.seg.sin i{background:var(--seg-sin);border:1px solid var(--line-strong)}.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:8px;border:1px solid var(--line-strong);background:var(--elev);font-size:13px;font-weight:500;color:var(--ink2);white-space:nowrap}button.chip:hover{border-color:var(--muted)}.chip.on{border-color:#0fe58b99;background:var(--primary-soft);color:var(--primary-ink);font-weight:600}.chip .x{color:var(--faint);margin-left:2px;display:inline-grid;place-items:center;border-radius:4px}.chip.on .x{color:var(--primary-ink)}.chip .count{color:inherit;font-weight:700}.toggle{width:38px;height:22px;border-radius:11px;background:var(--track);position:relative;flex:none;transition:background .15s;border:none}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#c7d0dc;box-shadow:0 1px 2px #0006;transition:left .15s,background .15s}.toggle.on{background:var(--primary)}.toggle.on:after{left:19px;background:var(--on-primary)}.toggle:disabled{opacity:.5}.toggle-label{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--ink2)}.check{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:18px;height:18px;border-radius:5px;border:1.5px solid var(--line-strong);display:inline-grid;place-items:center;background:var(--input);flex:none;cursor:pointer;margin:0;transition:background .12s,border-color .12s}.check:checked,.check:indeterminate{background:var(--primary);border-color:var(--primary)}.check:checked:after{content:"";width:9px;height:5px;border:2px solid var(--on-primary);border-top:none;border-right:none;transform:translateY(-1px) rotate(-45deg)}.check:indeterminate:after{content:"";width:8px;height:2px;background:var(--on-primary);border-radius:1px}.check:disabled{opacity:.5;cursor:not-allowed}.check-label{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--ink2);cursor:pointer}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label,.field>.field-label{font-size:13px;font-weight:600;color:var(--ink2)}.field>label em,.field>.field-label em{color:var(--bad);font-style:normal}.field .err{color:var(--bad-ink);font-size:12px;font-weight:500;display:flex;gap:6px;align-items:center}.field .help{color:var(--muted);font-size:12px}.input{height:40px;border:1px solid var(--line-strong);border-radius:10px;background:var(--input);display:flex;align-items:center;gap:8px;padding:0 12px;color:var(--ink);font-size:14px;transition:border-color .15s,box-shadow .15s;min-width:0}.input>input,.input>textarea,.input>select{flex:1;min-width:0;height:100%;border:none;outline:none;background:transparent;color:inherit;font-size:inherit}.input>input::placeholder,.input>textarea::placeholder{color:var(--faint)}.input:focus-within,.input.focus{border-color:var(--primary);box-shadow:0 0 0 3px #0fe58b33}.input.error{border-color:var(--bad);box-shadow:0 0 0 3px #ef44442e}.input.disabled{opacity:.55}.input .lead,.input .trail{color:var(--faint);display:inline-grid;place-items:center}.input .trail{margin-left:auto}.input .trail-button{color:var(--faint);border-radius:6px;padding:4px;display:inline-grid;place-items:center}.input .trail-button:hover{color:var(--ink)}.input.sm{height:34px;border-radius:8px;font-size:13px}.textarea{height:auto;min-height:76px;align-items:flex-start;padding-top:10px;padding-bottom:10px}.textarea>textarea{resize:vertical;min-height:56px}.select{position:relative;padding-right:34px}.select>select{-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;font-weight:600}.select>select option{background:var(--popover);color:var(--ink)}.select .chev{position:absolute;right:10px;pointer-events:none;color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);min-width:0}.card.pad{padding:18px 20px}.card-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}.card-head h3{font-size:16px}.card-head .sub{color:var(--muted);font-size:13px;margin-top:2px}.card-head .actions{margin-left:auto;display:flex;gap:8px}.kpi-card{display:flex;flex-direction:column;gap:6px}.kpi-card .kpi-top{display:flex;align-items:center;gap:8px}.kpi-card .kpi-icon{margin-left:auto;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-ink)}.kpi{font-size:30px;font-weight:750;letter-spacing:-.02em;line-height:1.1}.kpi small{font-size:14px;color:var(--muted);font-weight:600;letter-spacing:0}.trend-up{color:var(--primary-ink);font-weight:600;font-size:13px}.trend-down{color:var(--bad-ink);font-weight:600;font-size:13px}.trend-flat{color:var(--muted);font-weight:600;font-size:13px}.progress{height:6px;border-radius:3px;background:var(--track);overflow:hidden}.progress>i{display:block;height:100%;border-radius:3px;background:var(--primary);transition:width .3s}.progress.warn>i{background:var(--warn)}.progress.bad>i{background:var(--bad)}.progress.info>i{background:var(--info)}.progress.indeterminate>i{width:40%!important;animation:gm-progress 1.2s ease-in-out infinite}@keyframes gm-progress{0%{transform:translate(-100%)}to{transform:translate(250%)}}.tabs-pill{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px}.tabs-pill .tab{height:36px;border:1px solid var(--line-strong);border-radius:8px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--ink2);background:var(--elev);padding:0 8px;white-space:nowrap}.tabs-pill .tab:hover:not([aria-selected=true]){background:var(--hover)}.tabs-pill .tab[aria-selected=true]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.tabs-line{display:flex;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow-x:auto}.tabs-line .tab{flex:1;text-align:center;padding:10px 12px;font-size:12.5px;font-weight:600;color:var(--muted);display:flex;gap:6px;justify-content:center;align-items:center;white-space:nowrap}.tabs-line .tab:hover:not([aria-selected=true]){color:var(--ink2)}.tabs-line .tab[aria-selected=true]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--primary);background:var(--elev)}.tab .tab-count{font-size:11px;font-weight:700;border-radius:6px;padding:1px 6px;background:var(--hover);color:var(--ink2)}.tab[aria-selected=true] .tab-count{background:#04130c2e;color:inherit}.stepper{display:flex;align-items:center;flex-wrap:wrap;row-gap:8px}.stepper .st{display:flex;align-items:center}.stepper .st-dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:12px;font-weight:700;flex:none}.stepper .st-label{font-size:12px;color:var(--muted);margin-left:6px;white-space:nowrap}.stepper .ln{width:26px;height:3px;background:var(--track);margin:0 6px}.stepper .ln.done{background:var(--ok)}.st-dot.success{background:var(--ok);color:var(--on-primary)}.st-dot.failed{background:var(--bad)}.st-dot.running{background:var(--info);box-shadow:0 0 0 4px #4da3ff40}.st-dot.pending{background:var(--card);border:2px solid var(--line-strong);color:var(--faint)}.st-dot.skipped{background:var(--card);border:2px dashed var(--line-strong);color:var(--faint)}.skel{height:12px;border-radius:6px;background:linear-gradient(90deg,#161c26 25%,#212a37,#161c26 75%);background-size:200% 100%;animation:gm-shimmer 1.4s linear infinite}.skel-rows .skel-row{display:flex;gap:16px;padding:12px 16px;border-bottom:1px solid var(--line-soft)}.empty-state{padding:28px;text-align:center;display:flex;flex-direction:column;align-items:center}.empty-state .es-illustration{margin-bottom:8px}.illustration{display:block;max-width:100%;height:auto;--il-bg: var(--card);--il-surface: var(--elev);--il-surface-2: #1a1e25;--il-line: #3a414c;--il-ink: var(--muted);--il-ink-strong: #c9cfd8;--il-grid: #262b33;--il-primary: var(--primary);--il-info: var(--info);--il-warn: var(--warn);--il-bad: var(--bad)}.empty-state .es-text{font-size:12px;color:var(--muted);margin:4px 0 12px;max-width:420px}.error-state{display:flex;align-items:center;gap:12px;padding:20px;text-align:left}.error-state .er-icon{width:40px;height:40px;border-radius:50%;background:var(--bad-soft);color:var(--bad-ink);display:grid;place-items:center;flex:none}.error-state .er-text{font-size:12px;color:var(--muted)}.error-state .er-action{margin-left:auto}.page{padding:22px 28px;height:100%;overflow:auto}.page-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:18px;flex-wrap:wrap}.page-head h1{font-size:24px;letter-spacing:-.01em}.page-head p{color:var(--muted);margin-top:3px}.page-head .actions{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}.crumbs{font-size:12px;color:var(--muted);margin-bottom:4px;display:flex;gap:6px;align-items:center}.crumbs a{color:var(--primary-ink)}.divider{height:1px;background:var(--line)}.kv{display:grid;grid-template-columns:1fr auto;gap:6px 12px;font-size:13px}.kv dt{color:var(--muted)}.kv dd{font-weight:600;text-align:right}.brand-mark{display:block;flex:none}.popover{position:absolute;background:var(--popover);border:1px solid var(--line-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);overflow:hidden;min-width:200px}.menu{display:flex;flex-direction:column;padding:6px}.menu-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:var(--ink2);font-size:14px;text-align:left;width:100%;text-decoration:none}.menu-item:hover,.menu-item:focus-visible{background:var(--hover);color:var(--ink);text-decoration:none;outline:none}.menu-item.active{color:var(--primary-ink)}.menu-item.danger{color:var(--bad-ink)}.menu-sep{height:1px;background:var(--line);margin:6px 4px}.menu-head{padding:10px 12px;border-bottom:1px solid var(--line)}@media(max-width:767px){.page{padding:16px}.page-head h1{font-size:20px}.page-head .actions{margin-left:0;width:100%}}.dt{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;min-width:0}.dt .tools{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}.dt .tools .show{display:flex;align-items:center;gap:8px;color:var(--ink2)}.dt .tools .show .input{height:36px;border-radius:8px;width:78px}.dt .tools .find{margin-left:auto;width:280px;height:36px;border-radius:8px}.dt .scroll{overflow:auto;min-height:0;position:relative}.dt table{width:100%;border-collapse:collapse;font-size:13.5px}.dt th{text-align:left;font-size:12px;color:var(--on-primary);font-weight:800;padding:10px 16px;background:var(--primary);white-space:nowrap;position:sticky;top:0;z-index:1}.dt th .sort-btn{display:inline-flex;align-items:center;gap:4px;font-weight:800;color:inherit;font-size:inherit;padding:0}.dt th .so{color:#04130c8c;font-size:10px;display:inline-grid}.dt th[aria-sort=ascending] .so,.dt th[aria-sort=descending] .so{color:var(--on-primary)}.dt td{padding:11px 16px;border-bottom:1px solid var(--line-soft);white-space:nowrap;color:var(--ink2)}.dt td b,.dt td strong{color:var(--ink)}.dt tbody tr.clickable{cursor:pointer}.dt tbody tr:hover td{background:#ffffff06}.dt tr.hl td{background:#0fe58b12}.dt tr.hl td:first-child{box-shadow:inset 3px 0 0 var(--primary)}.dt .r{text-align:right}.dt .c{text-align:center}.dt th.r .sort-btn{flex-direction:row}.dt .foot{display:flex;align-items:center;padding:12px 16px;color:var(--muted);font-size:13px;gap:12px;flex-wrap:wrap}.dt .foot .foot-total{flex:1 1 0;min-width:180px}.dt .foot .foot-spacer{flex:1 1 0;min-width:0}.dt .pager{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.dt .pager button,.dt .pager span{min-width:34px;height:34px;border-radius:8px;border:1px solid var(--line-strong);display:grid;place-items:center;font-weight:600;color:var(--ink2);padding:0 8px;background:var(--elev)}.dt .pager button:hover:not(:disabled):not([aria-current=page]){background:var(--hover)}.dt .pager button[aria-current=page]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.dt .pager button:disabled,.dt .pager span.gap{color:#3a4556;cursor:default}.dt .fetching{position:absolute;inset:0 0 auto;height:2px;overflow:hidden;z-index:2}.dt .fetching>i{display:block;width:30%;height:100%;background:var(--primary);animation:gm-progress 1s ease-in-out infinite}@media(max-width:767px){.dt .tools .find{width:100%;margin-left:0}.dt .foot{justify-content:center}.dt .foot .foot-total{flex-basis:100%;text-align:center}.dt .foot .foot-spacer{display:none}}.ms{position:relative;min-width:0}.ms-trigger{width:100%;height:34px;border:1px solid var(--line-strong);border-radius:8px;background:var(--input);display:flex;align-items:center;padding:0 10px;font-size:13px;gap:6px;color:var(--ink);text-align:left}.ms-trigger.md{height:40px;border-radius:10px;font-size:14px}.ms-trigger:hover:not(:disabled){border-color:var(--muted)}.ms-trigger.on{border-color:#0fe58b8c}.ms-trigger[aria-expanded=true]{border-color:var(--primary);box-shadow:0 0 0 3px #0fe58b33}.ms-trigger .ms-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ms-trigger .ms-value.placeholder{color:var(--ink)}.ms-trigger .n{background:var(--primary);color:var(--on-primary);border-radius:6px;font-size:11px;font-weight:800;padding:1px 6px;flex:none}.ms-trigger .c{color:var(--faint);flex:none}.ms-panel{position:absolute;top:calc(100% + 6px);left:0;width:max(100%,360px);max-width:calc(100vw - 24px);background:var(--popover);border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);display:flex;flex-direction:column;overflow:hidden}.ms-panel.align-end{left:auto;right:0}.ms-search{padding:8px}.ms-search .input{height:38px;border-radius:9px}.ms-all{display:flex;align-items:center;padding:8px 14px;font-size:13.5px}.ms-all button{color:var(--primary-ink);font-weight:700;padding:0}.ms-all .ms-count{margin-left:auto;color:var(--muted);font-size:13px}.ms-options{max-height:320px;overflow-y:auto;border-top:1px solid var(--line-soft);outline:none}.ms-option{display:flex;align-items:center;gap:12px;padding:9px 14px;font-size:14px;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none}.ms-option .check{pointer-events:none}.ms-option[aria-selected=true]{background:#0fe58b0d}.ms-option.active{background:var(--hover)}.ms-option .ms-meta{margin-left:auto;color:var(--muted);font-size:12.5px}.ms-option.disabled{opacity:.45;cursor:not-allowed}.ms-empty{padding:18px 14px;text-align:center;color:var(--muted);font-size:13px}.ms-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border-top:1px solid var(--line);background:var(--surface-2)}@media(max-width:767px){.ms-panel{position:fixed;left:8px;right:8px;top:auto;bottom:calc(var(--tabbar-height) + var(--safe-bottom) + 8px);width:auto;max-width:none}}.fw{position:absolute;background:#0f1114f7;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--line-strong);z-index:var(--z-floating);overflow:hidden;display:flex;flex-direction:column;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);max-width:calc(100% - 16px);max-height:calc(100% - 16px)}.fw.maximized{top:14px!important;right:14px!important;bottom:14px!important;left:14px!important;width:auto!important;height:auto!important;max-width:none;max-height:none}.fw.minimized{height:auto!important}.fw>header{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);flex:none}.fw.minimized>header{border-bottom:none}.fw>header.primary{background:var(--primary);color:var(--on-primary);border-bottom:none}.fw>header .ttl{font-weight:700;font-size:15px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fw>header .fw-icon{color:var(--primary-ink)}.fw>header.primary .fw-icon{color:inherit}.fw>header .ctl{margin-left:auto;display:flex;gap:2px;color:var(--muted)}.fw>header .ctl button{width:26px;height:26px;border-radius:6px;display:grid;place-items:center;color:inherit}.fw>header .ctl button:hover{background:var(--hover);color:var(--ink)}.fw>header.primary .ctl{color:#0b3a26}.fw>header.primary .ctl button:hover{background:#04130c1f;color:var(--on-primary)}.fw>.body{padding:14px;overflow:auto;flex:1;min-height:0}.fw>footer{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line);background:var(--surface-2);flex:none}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000009e;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:24px;animation:gm-fade .15s ease-out}@keyframes gm-fade{0%{opacity:0}}.modal{width:min(560px,100%);max-height:calc(100dvh - 48px);background:var(--card);border:1px solid var(--line-strong);border-radius:16px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}.modal.lg{width:min(820px,100%)}.modal.sm{width:min(420px,100%)}.modal>header,.drawer>header{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.modal>header h2,.drawer>header h2{font-size:17px}.modal>header p,.drawer>header p{color:var(--muted);font-size:13px;margin-top:2px}.modal>header .iconbtn,.drawer>header .iconbtn{margin-left:auto}.modal>.body,.drawer>.body{padding:18px;overflow:auto;flex:1}.modal>footer,.drawer>footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid var(--line);background:var(--surface-2)}.overlay.drawer-overlay{justify-content:flex-end;align-items:stretch;padding:0}.drawer{width:min(460px,100%);height:100%;background:var(--card);border-left:1px solid var(--line-strong);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:gm-slide-in .2s ease-out}@keyframes gm-slide-in{0%{transform:translate(24px);opacity:0}}.overlay.drawer-overlay.bottom{align-items:flex-end;justify-content:stretch}.drawer.bottom{width:100%;height:auto;max-height:85dvh;border-left:none;border-top:1px solid var(--line-strong);border-radius:22px 22px 0 0;background:var(--elev);padding-bottom:var(--safe-bottom);animation:gm-slide-up .2s ease-out}.drawer.bottom .grab{width:40px;height:5px;border-radius:3px;background:var(--line-strong);margin:10px auto 0;flex:none}@keyframes gm-slide-up{0%{transform:translateY(24px);opacity:0}}@media(max-width:767px){.overlay:not(.drawer-overlay){align-items:flex-end;padding:0}.modal{width:100%;max-height:92dvh;border-radius:22px 22px 0 0;padding-bottom:var(--safe-bottom)}}.toasts{position:fixed;top:calc(var(--topbar-height) + 16px);right:20px;width:380px;display:flex;flex-direction:column;gap:10px;z-index:var(--z-toast);pointer-events:none}.toast{pointer-events:auto;background:var(--popover);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--line-strong);padding:14px 16px 16px 14px;display:grid;grid-template-columns:30px 1fr 18px;gap:4px 10px;position:relative;overflow:hidden;animation:gm-toast-in .2s ease-out}@keyframes gm-toast-in{0%{transform:translateY(-8px);opacity:0}}.toast .ti{width:28px;height:28px;border-radius:50%;display:grid;place-items:center}.toast.success .ti{background:var(--ok-soft);color:var(--primary-ink)}.toast.warning .ti{background:var(--warn-soft);color:var(--seg-medio-ink)}.toast.error .ti{background:var(--bad-soft);color:var(--bad-ink)}.toast.info .ti{background:var(--info-soft);color:var(--info-ink)}.toast.progress{height:auto;background:var(--popover);border-radius:var(--radius-lg)}.toast.progress .ti{background:var(--primary-soft);color:var(--primary-ink)}.toast.confirm .ti{background:var(--info-soft);color:var(--info-ink)}.toast.confirm{border-color:#4da3ff73;box-shadow:var(--shadow-lg),0 0 0 4px #4da3ff0f}.toast.confirm.danger{border-color:#ef444480;box-shadow:var(--shadow-lg),0 0 0 4px #ef444412}.toast.confirm.danger .ti{background:var(--bad-soft);color:var(--bad-ink)}.toast.confirm.danger .btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}.toast.confirm.danger .btn.danger:hover:not(:disabled){background:#f25a5a}.toast.progress .ti svg{animation:gm-spin 1.4s linear infinite}.toast.error{border-color:#ef444473}.toast .tt{font-size:14px;font-weight:700;align-self:center}.toast .td{grid-column:2;color:var(--ink2);font-size:13px}.toast .acts{grid-column:2;display:flex;gap:8px;margin-top:6px;flex-wrap:wrap;align-items:center}.toast .close{color:var(--faint);align-self:start;display:grid;place-items:center;width:18px;height:18px;border-radius:4px}.toast .close:hover{color:var(--ink)}.toast .timer{position:absolute;left:0;bottom:0;height:3px;width:100%;transform-origin:left;animation-name:gm-toast-timer;animation-timing-function:linear;animation-fill-mode:forwards}.toast:hover .timer,.toast.paused .timer{animation-play-state:paused}@keyframes gm-toast-timer{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.toast.success .timer{background:var(--ok)}.toast.warning .timer{background:var(--warn)}.toast.info .timer{background:var(--info)}.toast .code{grid-column:2;display:flex;gap:6px;margin-top:4px;flex-wrap:wrap}.toast .code span{font-size:12px;border:1px solid var(--line-strong);border-radius:6px;padding:2px 7px;color:var(--ink2);background:var(--input);display:inline-flex;align-items:center;gap:5px}.toast .code b{font-family:var(--font-mono);color:var(--ink)}.toast .tp{grid-column:2;display:flex;align-items:center;gap:10px;margin-top:6px}.toast .tp .progress{flex:1}@media(max-width:767px){.toasts{top:auto;bottom:calc(var(--tabbar-height) + var(--safe-bottom) + 10px);left:10px;right:10px;width:auto;flex-direction:column-reverse}}.banner{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;font-size:14px}.banner .banner-body{min-width:0}.banner small{display:block;font-size:12px}.banner.offline{background:#000;color:#fff;border:1px solid #2a2f38}.banner.offline small{color:var(--nav-text)}.banner.warn{background:var(--warn-soft);border:1px solid rgba(245,166,35,.35);color:#f9cf85}.banner.info{background:var(--info-soft);border:1px solid rgba(77,163,255,.3);color:#b9d8ff}.banner.readonly{background:var(--hover);border:1px solid var(--line-strong);color:var(--ink2)}.banner.error{background:var(--bad-soft);border:1px solid rgba(239,68,68,.35);color:#fca5a5}.banner .act{margin-left:auto;font-weight:700;color:var(--accent);flex:none;padding:4px 2px}.banner.info .act{color:var(--info-ink)}.banner .act:hover:not(:disabled){text-decoration:underline}.alertbox{border:1px solid rgba(239,68,68,.35);background:#ef444412;border-left:4px solid var(--bad);border-radius:10px;padding:12px 14px}.system-page{min-height:100%;display:grid;place-items:center;padding:32px 16px}.system-card{width:min(420px,100%);padding:28px 24px;text-align:center;display:flex;flex-direction:column;align-items:center}.system-card .sys-illustration{display:flex;justify-content:center;margin:-6px 0 6px}.system-card .sys-code{margin-bottom:4px}.system-card h1{font-size:20px;margin:4px 0 6px}.system-card p{color:var(--muted);font-size:14px}.system-card .sys-trace{font-size:12px;color:var(--faint);margin-top:8px}.system-card .sys-actions{display:flex;gap:10px;justify-content:center;margin-top:18px;flex-wrap:wrap}.sys-tone-warn .sys-code{color:var(--seg-medio-ink)}.sys-tone-bad .sys-code{color:var(--bad-ink)}.sys-tone-info .sys-code{color:var(--info-ink)}.sys-tone-primary .sys-code{color:var(--primary-ink)}.under-construction{height:100%;display:grid;place-items:center;padding:24px;overflow:auto}.under-construction .uc-card{width:min(560px,100%);padding:28px;text-align:center}.under-construction .uc-icon{width:56px;height:56px;border-radius:50%;margin:0 auto 12px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-ink)}.under-construction h1{font-size:20px;margin-bottom:6px}.under-construction p{color:var(--muted)}.under-construction .uc-meta{margin-top:14px;display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.ops-grid{display:grid;gap:16px}.ops-grid.kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.ops-grid.cards-3{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}.ops-grid.split{grid-template-columns:minmax(0,1fr) 560px;align-items:start}.ops-grid.split.side-400{grid-template-columns:minmax(0,1fr) 400px}.ops-grid.split.side-380{grid-template-columns:minmax(0,1fr) 380px}.ops-col{display:flex;flex-direction:column;gap:16px;min-width:0}.ops-row{display:flex;align-items:center;gap:10px;min-width:0}.ops-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ops-section-label{margin-bottom:10px}.ops-sub{font-size:12px;color:var(--muted)}.ops-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ops-kpi .ops-kpi-value{font-size:21px;font-weight:700;margin:6px 0 2px;letter-spacing:-.01em}.step-icon{display:inline-grid;place-items:center;flex:none;line-height:0}.step-icon.success{color:var(--ok)}.step-icon.failed{color:var(--bad-ink)}.step-icon.running{color:var(--info)}.step-icon.running svg{animation:gm-spin 1.2s linear infinite}.step-icon.pending,.step-icon.skipped{color:var(--faint)}.step-icon.absent{color:var(--faint);opacity:.35}.ops-spin{animation:gm-spin 1s linear infinite}@keyframes gm-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.step-icon.running svg,.ops-spin{animation:none}}.run-steps{display:flex;align-items:center;list-style:none}.run-steps .ln{width:12px;height:3px;border-radius:2px;background:var(--track);flex:none}.run-steps .ln.done{background:var(--ok)}.run-live{border-color:#4da3ff59;margin-bottom:16px}.run-live-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.run-live-head b{font-size:15px}.run-live-head .meta{margin-left:auto;display:flex;align-items:center;gap:12px}.run-live .run-live-progress{margin-top:12px}.run-live-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:14px;list-style:none}.run-live-step{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);min-width:0}.run-live-step.running{border-color:#4da3ff59}.run-live-step .progress{margin-top:8px}.run-timeline{list-style:none}.run-timeline>li{position:relative;padding-left:40px;padding-bottom:18px}.run-timeline>li:last-child{padding-bottom:0}.run-timeline>li:before{content:"";position:absolute;left:12px;top:30px;bottom:2px;width:2px;background:var(--line)}.run-timeline>li:last-child:before{display:none}.run-timeline .step-icon{position:absolute;left:0;top:0}.run-timeline .tl-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.run-timeline .tl-head b{font-size:14.5px}.run-timeline .tl-head .num{margin-left:auto}.run-timeline .tl-text{font-size:13px;color:var(--ink2);margin-top:4px;overflow-wrap:anywhere}.run-timeline .tl-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.run-timeline .tl-files{list-style:none;margin-top:6px;display:grid;gap:2px;font-family:var(--font-mono);font-size:11.5px;color:var(--muted);overflow-wrap:anywhere}.run-log{overflow:hidden}.run-log .log-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}.run-log .log-head .pill{margin-left:auto}.run-log ol{list-style:none;font-family:var(--font-mono);font-size:12px;line-height:1.75;padding:12px 16px;background:#050607;max-height:560px;overflow:auto;overflow-wrap:anywhere}.run-log time{color:var(--faint);margin-right:6px}.run-log .info{color:var(--muted)}.run-log .ok{color:var(--primary-ink)}.run-log .err{color:var(--bad-ink)}.run-log .warn{color:#f7b84b}.job-desc{white-space:normal;max-width:340px}.job-editor{overflow:hidden}.job-editor .je-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}.job-editor .je-head .iconbtn{margin-left:auto}.job-editor .je-body{padding:16px;display:flex;flex-direction:column;gap:14px}.job-editor .je-runs{font-family:var(--font-mono);font-size:12.5px;line-height:1.9;color:var(--ink2);list-style:none}.job-editor .je-foot{display:flex;gap:8px}.job-editor .je-foot .primary{margin-left:auto}.mono-input input{font-family:var(--font-mono)}.source-card{display:flex;flex-direction:column;gap:14px;min-width:0}.source-card .sc-icon{width:38px;height:38px;border-radius:10px;background:var(--primary-soft);color:var(--primary-ink);display:grid;place-items:center;flex:none}.source-card .sc-head{display:flex;align-items:flex-start;gap:10px}.source-card .sc-head>div{min-width:0;flex:1}.source-card .sc-head b{font-size:15px}.source-card .sc-foot{display:flex;align-items:center;gap:8px;margin-top:auto}.source-card .sc-foot .ghost{margin-left:auto}.kv dd.mono,.kv dd .mono{font-size:12.5px}.kv dd{min-width:0;overflow-wrap:anywhere}.chain{list-style:none;margin-top:6px}.chain li{display:flex;align-items:flex-start;gap:12px;padding:8px 0}.chain li b{font-size:13.5px}.chain li .ops-sub{overflow-wrap:anywhere}.dropzone{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:18px 16px;border:1.5px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface-2);cursor:pointer;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.over{border-color:var(--primary);background:var(--primary-soft)}.dropzone.invalid{border-color:var(--bad)}.dropzone .dz-text{font-size:12.5px;color:var(--muted);max-width:380px}.dropzone input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.file-chip{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface-2)}.file-chip .fc-icon{color:var(--primary-ink);flex:none}.file-chip>div{min-width:0;flex:1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}.form-grid .span-2{grid-column:1 / -1}.form-stack{display:flex;flex-direction:column;gap:14px}.inline-note{display:flex;gap:6px;align-items:flex-start;font-size:12px;color:var(--muted)}.inline-note svg{flex:none;margin-top:1px}.notif-page{max-width:1060px}.notif-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.notif-filters{display:flex;gap:8px;flex-wrap:wrap}.notif-search{width:min(280px,100%)}.notif-list{overflow:hidden}.notif-list>ol{list-style:none}.notif-item{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line-soft)}.notif-item:last-child{border-bottom:0}.notif-item.unread{background:#0fe58b08}.notif-item .ni-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none}.ni-icon.info{background:var(--info-soft);color:var(--info-ink)}.ni-icon.warn{background:var(--warn-soft);color:#f7b84b}.ni-icon.bad{background:var(--bad-soft);color:var(--bad-ink)}.ni-icon.ok{background:var(--ok-soft);color:var(--primary-ink)}.notif-item .ni-body{flex:1;min-width:0}.notif-item .ni-top{display:flex;align-items:flex-start;gap:10px}.notif-item .ni-top b{font-size:14px;overflow-wrap:anywhere}.notif-item .ni-when{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}.notif-item .ni-text{font-size:13px;color:var(--ink2);margin-top:2px;overflow-wrap:anywhere}.notif-item .ni-actions{display:flex;gap:6px;margin-top:8px;align-items:center;flex-wrap:wrap}.notif-item .ni-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);flex:none;margin-top:6px}.notif-item .ni-dot.read{background:transparent}.bell-panel .menu-head{display:flex;align-items:center;gap:10px}.bell-panel .menu-head .btn{margin-left:auto}.bell-panel .notif-item{padding:10px 14px;cursor:pointer;width:100%;text-align:left;border-radius:0}.bell-panel .notif-item:hover,.bell-panel .notif-item:focus-visible{background:var(--hover)}.bell-panel .notif-item .ni-top b{font-size:13px}.bell-panel .bell-list{list-style:none;max-height:min(420px,60vh);overflow:auto}.bell-panel .bell-foot{display:block;width:100%;padding:11px;text-align:center;font-size:13px;font-weight:700;color:var(--primary-ink);border-top:1px solid var(--line)}.bell-panel .bell-foot:hover{background:var(--hover)}.bell-panel .empty-state{padding:18px 16px}@media(max-width:1280px){.ops-grid.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.run-live-steps{grid-template-columns:repeat(3,minmax(0,1fr))}.ops-grid.split{grid-template-columns:minmax(0,1fr)}.ops-grid.split.side-400,.ops-grid.split.side-380{grid-template-columns:minmax(0,1fr) 340px}}@media(max-width:1024px){.ops-grid.cards-3,.ops-grid.split.side-400,.ops-grid.split.side-380{grid-template-columns:minmax(0,1fr)}}@media(max-width:767px){.ops-grid.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ops-kpi .ops-kpi-value{font-size:17px}.run-live-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.run-live-head .meta{margin-left:0;width:100%;justify-content:space-between}.form-grid{grid-template-columns:minmax(0,1fr)}.notif-item .ni-top{flex-wrap:wrap}}.ops-banner{margin-bottom:16px}.run-timeline .tl-progress{margin-top:8px;max-width:320px}.run-status-cell{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px}.pill-link{text-decoration:none;display:inline-flex}.pill-link:hover .pill,.pill-link:focus-visible .pill{filter:brightness(1.15)}.version-path{display:inline-block;max-width:340px}.version-error{display:inline-block;max-width:340px;white-space:normal}.layer-input-card .layer-last-import{overflow-wrap:anywhere}.layer-dropzone{flex-direction:row;justify-content:center;gap:10px;padding:10px 12px;text-align:left}.layer-formats ul{list-style:none;margin-top:6px;display:flex;flex-direction:column;gap:6px}.layer-formats li{display:flex;flex-direction:column;gap:2px;font-size:13px}.layer-formats li .mono{overflow-wrap:anywhere}.layer-imports{margin-top:22px;display:flex;flex-direction:column;gap:12px}.layer-imports-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.ops-icon-value{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px}.ops-icon-value svg,.version-path svg{flex:none;color:var(--muted);vertical-align:-2px}.app{display:grid;grid-template-columns:var(--rail-width) minmax(0,1fr);height:100dvh;background:var(--bg)}.app.no-rail{grid-template-columns:minmax(0,1fr)}.main{display:flex;flex-direction:column;min-width:0;min-height:0;height:100dvh}.content{flex:1;min-height:0;overflow:hidden;position:relative;background:var(--bg)}.content>.route-view{height:100%;overflow:auto}.skip-link{position:absolute;left:8px;top:-40px;z-index:100;background:var(--primary);color:var(--on-primary);padding:8px 12px;border-radius:8px;font-weight:700}.skip-link:focus{top:8px}.rail{background:var(--nav-bg);display:flex;flex-direction:column;align-items:center;padding:14px 0;gap:6px;border-right:1px solid #10151d;min-height:0;overflow-y:auto;overflow-x:hidden;z-index:var(--z-shell)}.rail .logo{width:44px;height:44px;margin-bottom:14px;border-radius:12px;flex:none}.rail .item{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;color:var(--nav-text);position:relative;flex:none;transition:background .15s,color .15s}.rail .item:hover{background:var(--nav-active);color:var(--ink2);text-decoration:none}.rail .item.active{background:var(--nav-active);color:#fff}.rail .item.active:before{content:"";position:absolute;left:-12px;top:10px;bottom:10px;width:4px;border-radius:0 4px 4px 0;background:var(--accent)}.rail .item .dot{position:absolute;top:9px;right:9px;width:9px;height:9px;border-radius:50%;background:var(--bad);border:2px solid var(--nav-bg)}.rail .item[data-tooltip]:hover:after,.rail .item[data-tooltip]:focus-visible:after{content:attr(data-tooltip);position:fixed;left:calc(var(--rail-width) + 6px);transform:translateY(0);background:var(--popover);border:1px solid var(--line-strong);color:var(--ink);font-size:12.5px;font-weight:600;padding:6px 10px;border-radius:8px;white-space:nowrap;box-shadow:var(--shadow);pointer-events:none;z-index:var(--z-dropdown)}.rail .sep{width:32px;height:1px;background:#151c27;margin:6px 0;flex:none}.rail .spacer{flex:1}.topbar{height:var(--topbar-height);flex:none;background:var(--nav-bg);border-bottom:1px solid var(--nav-line);display:flex;align-items:center;gap:16px;padding:0 20px;z-index:var(--z-shell)}.context{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 8px;border:1px solid var(--line);border-radius:10px;min-width:260px;max-width:360px;background:var(--card);text-align:left;color:var(--ink)}.context:hover{border-color:var(--line-strong)}.context .ic{width:32px;height:32px;border-radius:8px;background:var(--primary-soft);color:var(--primary-ink);display:grid;place-items:center;flex:none}.context .ctx-text{min-width:0;flex:1}.context b{font-size:14px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.context small{color:var(--muted);font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.context .chev{margin-left:auto;color:var(--faint)}.topbar-actions{display:flex;align-items:center;gap:8px;min-width:0}.topbar .right{margin-left:auto;display:flex;align-items:center;gap:14px}.netstate{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--primary-ink);font-weight:600;white-space:nowrap}.netstate i{width:8px;height:8px;border-radius:50%;background:var(--ok);display:inline-block;box-shadow:0 0 8px var(--ok)}.netstate.offline{color:#f59e0b}.netstate.offline i{background:#d97706;box-shadow:0 0 8px #d97706cc}.netstate.pending{color:var(--seg-medio-ink)}.netstate.pending i{background:var(--warn);box-shadow:0 0 8px #f5a623b3}.who{display:flex;align-items:center;gap:10px;text-align:left;color:var(--ink);border-radius:10px;padding:4px 6px 4px 4px}.who:hover{background:var(--nav-active)}.who b{font-size:13px;display:block;white-space:nowrap}.who small{font-size:11px;color:var(--muted);display:block;white-space:nowrap}.avatar{width:40px;height:40px;border-radius:50%;background:#0e7490;color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px;position:relative;flex:none}.avatar.sm{width:32px;height:32px;font-size:12px}.user-menu-head b{display:block}.mtop{height:calc(var(--mobile-header-height) + var(--safe-top));padding-top:var(--safe-top);flex:none;display:flex;align-items:center;gap:10px;padding-left:14px;padding-right:8px;background:var(--nav-bg);border-bottom:1px solid var(--line);z-index:var(--z-shell)}.mtop .mtitle{font-size:16px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mtop .mright{margin-left:auto;display:flex;align-items:center;gap:4px}.tabbar{height:calc(var(--tabbar-height) + var(--safe-bottom));padding-bottom:calc(6px + var(--safe-bottom));flex:none;background:var(--nav-bg);border-top:1px solid var(--line);display:flex;justify-content:space-around;align-items:center;z-index:var(--z-shell)}.tabbar .t{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;color:var(--muted);font-weight:600;min-width:56px;padding:6px 4px;position:relative;text-decoration:none}.tabbar .t.on{color:var(--primary-ink)}.tabbar .t .dot{position:absolute;top:4px;right:14px;width:8px;height:8px;border-radius:50%;background:var(--bad);border:2px solid var(--nav-bg)}.more-list{display:flex;flex-direction:column;gap:2px}.fs-chrome{position:absolute;top:14px;left:84px;display:flex;gap:10px;z-index:calc(var(--z-floating) + 1);pointer-events:none}.fs-pill{pointer-events:auto;display:flex;align-items:center;gap:10px;background:#0d0f12f2;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:6px 14px 6px 6px;white-space:nowrap}.fs-pill.exit{padding:7px 8px 7px 12px}.fs-pill b{font-size:13.5px}.fs-pill .fs-icon{color:var(--primary)}@media(max-width:767px){.fs-chrome{left:auto;right:10px;top:calc(10px + var(--safe-top))}.fs-pill.brand,.fs-pill .fs-hint{display:none}}.shell-banner{padding:12px 16px 0;flex:none}.shell-banner.overlay-banner{position:absolute;top:0;left:50%;transform:translate(-50%);width:min(640px,100%);padding:12px;z-index:calc(var(--z-floating) + 2)}@media(max-width:767px){.shell-banner{padding:10px 12px 0}.shell-banner .banner{font-size:12.5px;padding:10px 12px}}.pending-list{overflow:hidden}.pending-item{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line-soft)}.pending-item:last-child{border-bottom:none}.pending-item .pi-icon{width:30px;height:30px;border-radius:50%;background:var(--warn-soft);color:var(--seg-medio-ink);display:grid;place-items:center;flex:none}.pending-item .pi-time{margin-left:auto;flex:none}
