:root{--accent: #F47A1F;--accent-2: #EE5A1B;--ink-brand: #45474B;--accent-600: color-mix(in oklch, var(--accent) 86%, black);--accent-50: color-mix(in oklch, var(--accent) 7%, var(--surface));--accent-100: color-mix(in oklch, var(--accent) 14%, var(--surface));--accent-200: color-mix(in oklch, var(--accent) 28%, var(--surface));--accent-grad: linear-gradient(135deg, var(--accent), var(--accent-2));--ink-900: #15171B;--ink-800: #23262C;--ink-700: #3A3D44;--ink-600: #555963;--ink-500: #6C707A;--ink-400: #9296A0;--ink-300: #C3C7CE;--ink-200: #DEE1E6;--line: #E6E8EC;--line-soft: #EFF1F4;--bg: #F6F7F9;--bg-2: #F1F2F5;--surface: #FFFFFF;--sidebar-bg: #FCFCFD;--topbar-bg: rgba(255,255,255,.86);--th-bg: #FAFAFB;--row-hover: #FBFBFC;--ok: #16936A;--ok-bg: #E8F6F0;--warn: #C27C00;--warn-bg: #FDF4E1;--danger: #D2433B;--danger-bg: #FCECEB;--info: #2E66D0;--info-bg: #EAF0FC;--violet: #6D5BD0;--violet-bg: #EFECFB;--viz-1: var(--accent);--viz-2: #3B3F47;--viz-3: #7B8DB0;--viz-4: #E7B38A;--viz-5: #B9C1CF;--r-xs: 6px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 22px;--sh-xs: 0 1px 2px rgba(20,22,27,.05);--sh-sm: 0 1px 2px rgba(20,22,27,.04), 0 2px 6px rgba(20,22,27,.04);--sh-md: 0 2px 4px rgba(20,22,27,.04), 0 8px 24px rgba(20,22,27,.07);--sh-lg: 0 4px 12px rgba(20,22,27,.06), 0 24px 64px rgba(20,22,27,.14);--font: "Geist", ui-sans-serif, system-ui, sans-serif;--mono: "Geist Mono", ui-monospace, "SF Mono", monospace;--pad: 28px;--gap: 20px;--card-hd-py: 17px;--card-hd-px: 20px;--tf-orange-400: #FD8103;--tf-orange-500: var(--accent);--tf-orange-600: var(--accent-2);--tf-orange-gradient: var(--accent-grad);--tf-ink-900: var(--ink-900);--tf-ink-800: var(--ink-800);--tf-ink-700: var(--ink-700);--tf-ink-600: var(--ink-600);--tf-grey-500: var(--ink-500);--tf-grey-300: var(--ink-300);--tf-grey-100: var(--bg-2);--tf-white: #FFFFFF;--tf-bg: var(--surface);--tf-bg-subtle: var(--bg);--tf-text: var(--ink-900);--tf-text-muted: var(--ink-500);--tf-text-faint: var(--ink-400);--tf-border: var(--line);--tf-border-strong: var(--ink-300);--tf-accent: var(--accent);--tf-accent-text: #FFFFFF;--tf-accent-soft: var(--accent-50);--tf-sidebar: var(--sidebar-bg);--tf-bg-hover: var(--bg-2);--tf-nav-active: var(--surface);--tf-focus: var(--accent);--tf-button-bg: var(--accent);--tf-button-text: #FFFFFF;--tf-selection-bg: var(--accent-100);--tf-selection-text: var(--ink-900);--tf-success: var(--ok);--tf-warning: var(--warn);--tf-danger: var(--danger);--tf-info: var(--info)}[data-density=compact]{--pad: 20px;--gap: 14px}:root[data-theme=dark]{--ink-900: #F2F3F5;--ink-800: #E1E3E7;--ink-700: #C9CCD2;--ink-600: #AEB2BA;--ink-500: #9398A2;--ink-400: #737882;--ink-300: #4A4E57;--ink-200: #353840;--line: #2A2D34;--line-soft: #23262C;--bg: #111316;--bg-2: #1C1F24;--surface: #17191D;--sidebar-bg: #141619;--topbar-bg: rgba(23,25,29,.86);--th-bg: #1A1C21;--row-hover: #1C1F24;--ok: #3CBE8B;--ok-bg: #11271E;--warn: #E0A23B;--warn-bg: #2A2112;--danger: #F06A60;--danger-bg: #2C1715;--info: #6C9CF0;--info-bg: #141F33;--violet: #9C8CF0;--violet-bg: #1E1A33;--viz-2: #C9CCD2;--viz-5: #4A4E57;--sh-xs: 0 1px 2px rgba(0,0,0,.3);--sh-sm: 0 1px 2px rgba(0,0,0,.3), 0 2px 6px rgba(0,0,0,.25);--sh-md: 0 2px 4px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.35);--sh-lg: 0 4px 12px rgba(0,0,0,.35), 0 24px 64px rgba(0,0,0,.5);--tf-selection-text: var(--ink-900)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:var(--font);color:var(--ink-900);background:var(--bg);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;font-feature-settings:"ss01","cv11"}button,input,select,textarea{font:inherit;color:inherit}::selection{background:var(--tf-selection-bg);color:var(--tf-selection-text)}.mono,code,pre{font-family:var(--mono);font-feature-settings:normal}.num,.tnum{font-variant-numeric:tabular-nums}h1,h2,h3,h4{margin:0 0 .5rem;font-weight:600;letter-spacing:-.015em;text-wrap:balance}h1{font-size:24px;letter-spacing:-.02em}h2{font-size:18px}h3{font-size:15px}h4{font-size:14px}p{margin:0 0 .75rem;text-wrap:pretty}a{color:var(--accent-600);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--ink-500)}.faint{color:var(--ink-400)}.small{font-size:12.5px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 16px;border-radius:10px;border:1px solid transparent;font-weight:500;font-size:14px;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,box-shadow .15s,transform .05s;background:var(--ink-900);color:var(--surface);text-decoration:none}.btn:hover{text-decoration:none;background:var(--ink-700)}.btn:active:not(:disabled){transform:translateY(1px)}.btn svg{flex:none}.btn-primary,.btn--primary{background:var(--accent);color:#fff;box-shadow:0 1px #ffffff2e inset,0 1px 2px #0000001f}.btn-primary:hover,.btn--primary:hover{background:var(--accent-600)}.btn-dark{background:var(--ink-900);color:var(--surface)}.btn-dark:hover{background:var(--ink-700)}.btn-secondary,.btn--ghost{background:var(--surface);border-color:var(--line);color:var(--ink-800);box-shadow:var(--sh-xs)}.btn-secondary:hover,.btn--ghost:hover{border-color:var(--ink-300);background:var(--row-hover)}.btn-ghost{background:transparent;color:var(--ink-600)}.btn-ghost:hover{background:var(--bg-2);color:var(--ink-900)}.btn-danger,.btn--danger{background:var(--surface);border-color:color-mix(in oklch,var(--danger) 25%,var(--surface));color:var(--danger)}.btn-danger:hover,.btn--danger:hover{background:var(--danger-bg)}.btn-sm,.btn--sm{height:32px;padding:0 12px;font-size:13px;border-radius:8px}.btn-lg{height:46px;padding:0 22px;font-size:15px;border-radius:12px}.btn-icon{width:36px;padding:0}.btn-sm.btn-icon{width:32px}.btn[disabled],.btn:disabled{opacity:.45;cursor:not-allowed}.icon-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--ink-500);cursor:pointer}.icon-close:hover:not(:disabled){color:var(--ink-900);background:var(--bg-2)}.icon-close:disabled{opacity:.5;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field>label,.lbl{font-size:13px;font-weight:500;color:var(--ink-700)}.field .hint,.hint{font-size:12px;color:var(--ink-400)}.input,.select,.textarea,input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=url],input[type=tel],input[type=date],select,textarea{height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink-900);outline:none;width:100%;transition:border-color .15s,box-shadow .15s;font-size:14px}textarea,.textarea{height:auto;padding:10px 12px;resize:vertical;line-height:1.5}select,.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%239296A0' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px;cursor:pointer}select[multiple]{height:auto;background-image:none;padding:6px}input:focus,select:focus,textarea:focus,.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-100);outline:none}input::placeholder,textarea::placeholder{color:var(--ink-400)}input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--accent)}.input-wrap{position:relative;display:flex;align-items:center}.input-wrap>tf-icon{position:absolute;left:12px;color:var(--ink-400);pointer-events:none}.input-wrap>input{padding-left:36px}input:-webkit-autofill,input:-webkit-autofill:hover{-webkit-text-fill-color:var(--ink-900);caret-color:var(--ink-900);-webkit-box-shadow:0 0 0 1000px var(--surface) inset;box-shadow:0 0 0 1000px var(--surface) inset}input:-webkit-autofill:focus{-webkit-text-fill-color:var(--ink-900);-webkit-box-shadow:0 0 0 1000px var(--surface) inset,0 0 0 3px var(--accent-100);box-shadow:0 0 0 1000px var(--surface) inset,0 0 0 3px var(--accent-100)}button.toggle{width:36px;height:20px;border-radius:20px;background:var(--ink-200);position:relative;cursor:pointer;flex:none;transition:background .15s;border:0;padding:0}button.toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s}button.toggle.on{background:var(--accent)}button.toggle.on:after{transform:translate(16px)}.check{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--ink-300);display:inline-grid;place-items:center;flex:none;background:var(--surface);cursor:pointer}.check.on{background:var(--accent);border-color:var(--accent);color:#fff}.radio{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--ink-300);display:inline-grid;place-items:center;flex:none;background:var(--surface)}.radio.on{border-color:var(--accent)}.radio.on:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-xs);padding:20px}.card--flush{padding:0;overflow:hidden}.card-pad{padding:20px}.card-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:var(--card-hd-py) var(--card-hd-px);border-bottom:1px solid var(--line-soft)}.card-hd h3{font-size:15px;margin:0}.card-hd .sub{font-size:12.5px;color:var(--ink-500);margin-top:2px;font-weight:400;letter-spacing:0}.card-bd{padding:20px}.card.hover{transition:box-shadow .2s,border-color .2s,transform .2s;cursor:pointer}.card.hover:hover{box-shadow:var(--sh-md);border-color:var(--ink-200);transform:translateY(-1px)}.badge,.pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:6px;font-size:12px;font-weight:500;white-space:nowrap;background:var(--bg-2);color:var(--ink-600);border:0}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge.ok,.pill--ok{background:var(--ok-bg);color:var(--ok)}.badge.warn,.pill--warn{background:var(--warn-bg);color:var(--warn)}.badge.danger,.pill--error{background:var(--danger-bg);color:var(--danger)}.badge.info{background:var(--info-bg);color:var(--info)}.badge.violet{background:var(--violet-bg);color:var(--violet)}.badge.accent,.pill--accent{background:var(--accent-50);color:var(--accent-600)}.badge.outline{background:transparent;border:1px solid var(--line);color:var(--ink-600)}.badge.dark{background:var(--ink-900);color:var(--surface)}.pill--muted{background:var(--bg-2);color:var(--ink-500)}table,.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}th{text-align:left;font-weight:500;font-size:12.5px;color:var(--ink-500);padding:0 12px;height:40px;background:var(--th-bg);border-bottom:1px solid var(--line);white-space:nowrap;text-transform:none;letter-spacing:0}td{padding:9px 12px;border-bottom:1px solid var(--line-soft);vertical-align:middle;color:var(--ink-800)}tr:last-child td{border-bottom:0}tbody tr{transition:background .1s}tbody tr:hover{background:var(--row-hover)}tbody tr.is-selected{background:var(--bg-2)}td .mono,td.mono,td code,td small,td .small,td .faint{font-family:inherit;font-size:inherit}td strong,td b{font-weight:500;color:var(--ink-900)}td .dim,td.dim{color:var(--ink-500)}td .gap-l{margin-left:8px}td .badge:is(*,.ok,.warn,.danger,.info,.violet,.accent,.dark,.outline),td .pill{height:24px;padding:0 8px;gap:6px;font-size:13px;background:var(--surface);border:1px solid var(--line);color:var(--ink-700)}td .pill{text-transform:capitalize}td .badge .dot{background:var(--ink-300)}td .pill:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ink-300)}td .badge.ok .dot,td .pill--ok:before{background:var(--ok)}td .badge.warn .dot,td .pill--warn:before{background:var(--warn)}td .badge.danger .dot,td .pill--error:before{background:var(--danger)}td .badge.info .dot{background:var(--info)}td .badge.violet .dot,td .badge.accent .dot,td .pill--accent:before{background:var(--accent)}.num-cell,th.num,td.num,.tbl .num{text-align:center;font-variant-numeric:tabular-nums}.table-scroll{overflow-x:auto}.dt-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}.dt-toolbar .grow{flex:1}.dt-search{display:flex;align-items:center;gap:8px;height:36px;width:min(280px,100%);padding:0 12px;margin:0;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink-400)}.dt-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-100)}.dt-search input{flex:1;min-width:0;height:34px;padding:0;border:0;background:transparent;box-shadow:none!important;font-size:13px;color:var(--ink-900)}.dt-filter{display:inline-flex;align-items:center;gap:6px;height:36px;padding-left:11px;margin:0;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink-500);cursor:pointer}.dt-filter:hover{border-color:var(--ink-300)}.dt-filter:focus-within{border-color:var(--accent)}.dt-filter select{width:auto;height:34px;padding:0 28px 0 0;border:0;background-color:transparent;background-position:right 8px center;box-shadow:none!important;font-size:13px;font-weight:500;color:var(--ink-800)}.dt-selection{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-600)}.dt-link{padding:0;border:0;background:none;color:var(--accent-600);font:inherit;cursor:pointer}.dt-link:hover{text-decoration:underline}.dt-sort{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer;white-space:nowrap}.dt-sort tf-icon{color:var(--ink-400)}.dt-sort:hover{color:var(--ink-900)}th.check-cell,td.check-cell{width:1%;padding-right:0}.cbx{appearance:none;-webkit-appearance:none;display:inline-grid;place-items:center;flex:none;width:16px;height:16px;margin:0;vertical-align:middle;border:1.5px solid var(--ink-300);border-radius:4px;background:var(--surface) center / 12px no-repeat;cursor:pointer;transition:background-color .12s,border-color .12s}.cbx:hover{border-color:var(--ink-400)}.cbx:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-100)}.cbx:disabled{opacity:.55;cursor:not-allowed}.cbx:checked,.cbx:indeterminate{background-color:var(--accent);border-color:var(--accent)}.cbx:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E")}.cbx:indeterminate{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' stroke='white' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M4 8h8'/%3E%3C/svg%3E")}.tag{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 8px;border-radius:6px;font-size:13px;font-weight:500;background:var(--surface);border:1px solid var(--line);color:var(--ink-700);white-space:nowrap}.tag tf-icon{color:var(--ink-400)}@media(max-width:700px){.dt-search{width:100%}}.dt-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-top:1px solid var(--line-soft);flex-wrap:wrap}.dt-pager-prevnext{display:flex;gap:8px}.dt-pager-pages{display:inline-flex;align-items:center;gap:4px;margin-left:auto}.dt-page-btn{display:inline-grid;place-items:center;min-width:32px;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink-700);font-size:13px;font-weight:500;cursor:pointer}.dt-page-btn:hover:not(:disabled){border-color:var(--ink-300);color:var(--ink-900)}.dt-page-btn:disabled{opacity:.45;cursor:not-allowed}.dt-page-btn.on{background:var(--bg-2);border-color:var(--ink-300);color:var(--ink-900);font-weight:600}.dt-page-gap{min-width:24px;text-align:center;color:var(--ink-400);font-size:13px;-webkit-user-select:none;user-select:none}.tabs{display:flex;gap:4px;box-shadow:inset 0 -1px var(--line);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{flex:none;white-space:nowrap;padding:10px 12px;font-size:13.5px;font-weight:500;color:var(--ink-500);border:0;background:none;cursor:pointer;position:relative;display:flex;gap:8px;align-items:center}.tab:hover,.tab.on{color:var(--ink-900)}.tab.on:after{content:"";position:absolute;left:8px;right:8px;bottom:0;height:2px;border-radius:2px;background:var(--accent)}.seg{display:inline-flex;padding:3px;background:var(--bg-2);border-radius:10px;gap:2px}.seg button{border:0;background:none;padding:0 12px;height:28px;border-radius:7px;font-size:13px;font-weight:500;color:var(--ink-500);cursor:pointer}.seg button.on{background:var(--surface);color:var(--ink-900);box-shadow:var(--sh-xs)}.alert{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:12px;border:1px solid;font-size:13.5px;margin-bottom:1rem;line-height:1.5}.alert>tf-icon{margin-top:1px}.alert b{font-weight:600}.alert.warn,.alert--warn{background:var(--warn-bg);border-color:color-mix(in oklch,var(--warn) 25%,var(--surface));color:color-mix(in oklch,var(--warn) 55%,var(--ink-900))}.alert.danger,.alert--error{background:var(--danger-bg);border-color:color-mix(in oklch,var(--danger) 25%,var(--surface));color:color-mix(in oklch,var(--danger) 60%,var(--ink-900))}.alert.info,.alert--info{background:var(--info-bg);border-color:color-mix(in oklch,var(--info) 22%,var(--surface));color:color-mix(in oklch,var(--info) 60%,var(--ink-900))}.alert.ok{background:var(--ok-bg);border-color:color-mix(in oklch,var(--ok) 25%,var(--surface));color:color-mix(in oklch,var(--ok) 60%,var(--ink-900))}.alert.warn>tf-icon{color:var(--warn)}.alert.danger>tf-icon{color:var(--danger)}.alert.info>tf-icon{color:var(--info)}.alert.ok>tf-icon{color:var(--ok)}.avatar{width:32px;height:32px;border-radius:50%;display:inline-grid;place-items:center;font-size:12px;font-weight:600;color:#fff;flex:none}.progress{height:6px;border-radius:6px;background:var(--bg-2);overflow:hidden}.progress>i{display:block;height:100%;border-radius:6px;background:var(--accent)}.kbd{font-family:var(--mono);font-size:11px;padding:1px 6px;border-radius:5px;border:1px solid var(--line);background:var(--surface);color:var(--ink-500)}.divider{height:1px;background:var(--line-soft)}.ico-tile{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;flex:none}.code{font-family:var(--mono);font-size:12.5px;line-height:1.7;background:#15171b;color:#e6e7ea;border-radius:12px;padding:16px 18px;overflow:auto;white-space:pre}.code .k{color:#ff9d5c}.code .s{color:#9fd6a8}.code .c{color:#6e737d}.code .n{color:#8cb8ff}.code .p{color:#c9a7ff}.keybox>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-700)}.dropzone{border:1.5px dashed var(--ink-300);border-radius:18px;background:repeating-linear-gradient(135deg,var(--sidebar-bg) 0 12px,var(--bg) 12px 24px);transition:border-color .15s,background .15s}.dropzone.drag{border-color:var(--accent);background:var(--accent-50)}.range{width:100%;accent-color:var(--accent)}.scroll-y{overflow-y:auto}@keyframes scan{0%{top:6%}to{top:90%}}@keyframes blink{50%{opacity:.25}}.keybox{display:flex;align-items:center;gap:10px;height:40px;padding:0 6px 0 12px;border:1px solid var(--line);border-radius:10px;background:var(--th-bg);font-family:var(--mono);font-size:13px}.skel{background:linear-gradient(90deg,var(--bg-2),var(--row-hover),var(--bg-2));background-size:200% 100%;animation:skel 1.4s infinite;border-radius:6px}.section-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-400);font-weight:600}.stat-lbl{font-size:12.5px;color:var(--ink-500);font-weight:500}.stat-val{font-size:26px;font-weight:600;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.delta{font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:2px}.delta.up{color:var(--ok)}.delta.down{color:var(--danger)}.fade-up{position:relative;animation:riseIn .35s ease backwards}@keyframes riseIn{0%{opacity:0;top:6px}to{opacity:1;top:0}}.toast{position:fixed;top:72px;right:20px;z-index:120;display:flex;align-items:center;gap:10px;min-width:260px;max-width:min(400px,calc(100vw - 32px));padding:12px 10px 14px 14px;overflow:hidden;background:var(--surface);color:var(--ink-900);border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-lg);font-size:13.5px;font-weight:500;animation:toastIn .32s cubic-bezier(.2,.9,.3,1.2) both}.toast.leaving{animation:toastOut .22s ease-in both}.toast-ico{width:22px;height:22px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--ok-bg);color:var(--ok)}.toast-msg{flex:1;min-width:0;line-height:1.4;overflow-wrap:anywhere}.toast-x{width:26px;height:26px;flex:none;display:grid;place-items:center;padding:0;border:0;border-radius:7px;background:none;color:var(--ink-400);cursor:pointer}.toast-x:hover{background:var(--bg-2);color:var(--ink-900)}.toast-bar{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--ok);opacity:.55;transform-origin:left;animation:toastBar linear forwards}@keyframes toastIn{0%{opacity:0;transform:translate(calc(100% + 24px))}to{opacity:1;transform:none}}@keyframes toastOut{to{opacity:0;transform:translate(calc(100% + 24px))}}@keyframes toastBar{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media(prefers-reduced-motion:reduce){.toast,.toast.leaving{animation-duration:.01s}.toast-bar{display:none}}@media(max-width:600px){.toast{top:64px;right:16px;left:16px;min-width:0}}@keyframes skel{to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.confirm-backdrop{z-index:130}.confirm-box{width:min(440px,calc(100vw - 32px))}.confirm-body{display:flex;gap:14px;padding:22px 22px 20px}.confirm-body h3{margin:0;font-size:16px;font-weight:600}.confirm-body p{margin:6px 0 0;font-size:13.5px;line-height:1.55;color:var(--ink-600);overflow-wrap:anywhere}.confirm-ico{width:36px;height:36px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--accent-50);color:var(--accent-600)}.confirm-ico.danger{background:var(--danger-bg);color:var(--danger)}.btn-danger-solid{background:var(--danger);color:#fff}.btn-danger-solid:hover{background:color-mix(in oklch,var(--danger) 85%,black)}.modal-backdrop,.scrim{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:16px;background:#15171b61;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:fadeUp .15s ease}.modal-window{max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain;border-radius:18px;box-shadow:var(--sh-lg);animation:pop .18s ease}body:has(.modal-backdrop){overflow:hidden}.modal{background:var(--surface);border-radius:18px;box-shadow:var(--sh-lg);width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;animation:pop .18s ease}.modal-hd{padding:20px 22px 0;display:flex;justify-content:space-between;gap:12px}.modal-hd h3{font-size:17px}.modal-bd{padding:18px 22px}.modal-ft{padding:14px 22px;border-top:1px solid var(--line-soft);display:flex;justify-content:flex-end;gap:10px;background:var(--th-bg);border-radius:0 0 18px 18px}.pop{position:absolute;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh-lg);z-index:60;animation:pop .14s ease}.menu-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;font-size:13.5px;color:var(--ink-700);cursor:pointer;border:0;background:none;width:100%;text-align:left;text-decoration:none}.menu-item:hover{background:var(--bg-2);color:var(--ink-900);text-decoration:none}.menu-item tf-icon{color:var(--ink-400)}.page-hd{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.page-hd h1{font-size:24px;letter-spacing:-.02em;margin:0}.page-hd p{color:var(--ink-500);margin:4px 0 0}.crumbs{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-500);margin-bottom:8px}.stack{display:flex;flex-direction:column;gap:1rem}.row{display:flex;align-items:center;gap:12px}.row--between{justify-content:space-between}.col{display:flex;flex-direction:column}.grow{flex:1;min-width:0}.grid{display:grid;gap:var(--gap)}.grid--3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.spacer{flex:1}.factory-playground .job-history-list{scrollbar-width:none;-ms-overflow-style:none}.factory-playground .job-history-list::-webkit-scrollbar{width:0;height:0;display:none;background:transparent}.factory-playground .intro{display:flex;justify-content:space-between;gap:2rem;align-items:center;margin:1rem 0 2rem}.factory-playground .section-label{font-size:.6875rem;letter-spacing:.12em;font-weight:650;color:var(--tf-text-muted)}.factory-playground .intro h1{font-size:2.7rem;line-height:1.1;letter-spacing:-.055em;margin-bottom:.8rem}.factory-playground .intro p:last-child{margin:0}.factory-playground .tools{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.factory-playground .tools>button{font:inherit;text-align:left;color:var(--tf-text);background:var(--tf-bg);border:1px solid var(--tf-border);border-radius:10px;padding:1rem 1.2rem;display:flex;align-items:center;gap:1rem;cursor:pointer}.factory-playground .tools>button.active{border-color:var(--tf-accent);box-shadow:inset 0 0 0 1px var(--tf-accent);background:color-mix(in srgb,var(--tf-accent) 4%,var(--tf-bg))}.factory-playground .tools>button:disabled{cursor:default}.factory-playground .tools small{display:block;color:var(--tf-text-muted);font-size:.8125rem;margin-top:.15rem}.factory-playground .tool-icon{font-size:1.55rem;background:var(--tf-bg-subtle);width:42px;height:42px;display:grid;place-items:center;border-radius:8px}.factory-playground .active .tool-icon{color:var(--tf-accent)}.factory-playground .tool-number{margin-left:auto;font-size:.75rem;color:var(--tf-text-muted)}.factory-playground .receipt{margin-top:1rem;padding:1.2rem 1.5rem;border:1px solid var(--tf-border);border-radius:9px;display:flex;align-items:center;gap:2rem;flex-wrap:wrap}.factory-playground .receipt>div{display:flex;flex-direction:column;gap:.3rem}.factory-playground .receipt strong{font-size:.875rem;font-weight:550}.factory-playground .receipt p{margin:0}.factory-playground .request-id{font-size:.6875rem;color:var(--tf-text-muted);margin-left:auto;overflow-wrap:anywhere}.factory-playground .integration{margin-top:1.5rem;border-top:1px solid var(--tf-border);padding-top:1rem}.factory-playground .integration summary{cursor:pointer;display:flex;justify-content:space-between;font-size:.875rem;padding:.5rem 0}.factory-playground .code-head{display:flex;align-items:center;justify-content:space-between;margin-top:1rem;font-size:.8125rem}.factory-playground .integration pre{font-size:.75rem;line-height:1.7;overflow:auto;padding:1rem;border:1px solid var(--tf-border);border-radius:8px;background:var(--tf-bg-subtle)}.md{margin-top:.25rem;overflow-wrap:anywhere}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 .7rem}.md strong{font-weight:680;color:var(--tf-text)}.md em{font-style:italic}.md h1,.md h2,.md h3,.md h4{margin:1.15rem 0 .55rem;line-height:1.45;font-weight:660;color:var(--tf-text)}.md h1{font-size:1.1rem}.md h2{font-size:1.02rem}.md h3{font-size:.95rem}.md h4{font-size:.9rem}.md ul,.md ol{margin:0 0 .75rem;padding-inline-start:1.4rem}.md li{margin-bottom:.32rem}.md li>ul,.md li>ol{margin:.32rem 0 0}.md li::marker{color:var(--tf-text-muted)}.md code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82em;background:var(--tf-bg-subtle);border:1px solid var(--tf-border);border-radius:4px;padding:.1em .35em}.md pre{margin:0 0 .8rem;padding:.85rem 1rem;background:var(--tf-bg-subtle);border:1px solid var(--tf-border);border-radius:8px;overflow-x:auto;direction:ltr;text-align:left}.md pre code{background:none;border:0;padding:0;font-size:.8rem;line-height:1.75}.md blockquote{margin:0 0 .8rem;padding-inline-start:.9rem;border-inline-start:2px solid var(--tf-border);color:var(--tf-text-muted)}.md a{color:var(--tf-accent);text-decoration:underline;text-underline-offset:2px}.md hr{border:0;border-top:1px solid var(--tf-border);margin:1.1rem 0}.md table{border-collapse:collapse;margin:0 0 .8rem;font-size:.82rem;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--tf-border);padding:.45rem .7rem;text-align:start}.md th{background:var(--tf-bg-subtle);font-weight:650}.factory-playground .intro{margin:0 0 1.1rem;gap:1.5rem}.factory-playground .intro h1{font-size:1.4rem;font-weight:500;letter-spacing:-.035em;line-height:1.3;margin:0}.factory-playground .intro p:last-child{font-size:.875rem}.factory-playground .tools{display:flex;gap:8px;border-bottom:1px solid var(--tf-border);padding-bottom:0;margin-bottom:-1px}.factory-playground .tools>button{padding:4px 12px 4px 8px;border:1px solid transparent;border-bottom:0;border-radius:8px 8px 0 0;gap:8px;font-size:.8125rem;flex:initial}.factory-playground .tools>button.active{border-color:var(--tf-border);box-shadow:none;background:var(--tf-sidebar);position:relative;z-index:1;margin-bottom:-1px;border-bottom:1px solid var(--tf-sidebar)}.factory-playground .tools .tool-icon{background:var(--tf-bg);border:1px solid var(--tf-border);border-radius:7px;width:24px;height:24px}.factory-playground .tools small{font-size:.6875rem;font-weight:400}.factory-playground .tools strong{font-weight:550}.factory-playground .tool-number{display:none}.factory-playground .section-label{font-weight:500;letter-spacing:.07em;font-size:.6875rem}.factory-playground .receipt{border-radius:11px;gap:1.8rem;padding:17px 21px;margin-top:22px}.factory-playground .receipt strong{font-size:.875rem;font-weight:500}.factory-playground .request-id{font-size:.6875rem}.factory-playground .integration summary{font-size:.875rem}.factory-playground .integration pre{background:var(--tf-sidebar);border-radius:10px}@media(max-width:1100px){.factory-playground .intro h1{font-size:1.3rem}.factory-playground .intro{gap:1rem}}@media(max-width:600px){h1{font-size:1.65rem}.factory-playground .intro{align-items:flex-start;flex-direction:column}.factory-playground .intro h1{font-size:1.25rem}.factory-playground .tools{gap:5px}.factory-playground .tools>button{flex:1;padding:10px 9px;gap:7px}.factory-playground .tools .tool-icon{display:none}.factory-playground .tools small{font-size:.6875rem}.factory-playground .receipt{padding:16px;gap:15px}.factory-playground .request-id{margin:0;width:100%}input,textarea,select{font-size:16px!important}.card{padding:1.1rem}.card--flush{padding:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}*{scrollbar-width:thin;scrollbar-color:transparent transparent}*:hover{scrollbar-color:color-mix(in srgb,var(--ink-500) 45%,transparent) transparent}::-webkit-scrollbar{width:8px;height:8px;background:transparent}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-thumb{background:transparent;border-radius:99px;border:2px solid transparent;background-clip:padding-box}:hover::-webkit-scrollbar-thumb{background-color:color-mix(in srgb,var(--ink-500) 45%,transparent)}::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb,var(--ink-500) 70%,transparent)}.dd-menu{position:fixed;z-index:200;padding:6px;transform-origin:top}.dd-menu.up{transform-origin:bottom;animation-name:popUp}@keyframes popUp{0%{opacity:0;transform:translateY(4px) scale(.98)}to{opacity:1;transform:none}}.page>router-outlet+*{display:block;position:relative;animation:riseIn .3s ease backwards}
