@charset "UTF-8";:root{--brand: #fc8235;--ink: #20242d;--bg: #f8f9fa;--surface: #ffffff;--surface-2: #f3f4f5;--surface-3: #edeeef;--border: #e5e7eb;--border-strong: #d1d5db;--text: #191c1d;--text-2: #5e5e5e;--muted: #8b9098;--accent: #ef6c1a;--accent-hover: #d85f12;--accent-soft: #fff1e6;--accent-border: #fcc9a3;--accent-text: #b5500c;--success: #067647;--success-soft: #ecfdf3;--warning: #b54708;--warning-soft: #fffaeb;--danger: #ba1a1a;--danger-soft: #ffeceb;--info: #026aa2;--info-soft: #f0f9ff;--radius: 8px;--radius-lg: 12px;--radius-sm: 6px;--header-h: 56px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-node: 0 4px 20px rgba(0, 0, 0, .03), 0 2px 4px rgba(0, 0, 0, .02);--shadow: 0 6px 20px rgba(0, 0, 0, .06), 0 2px 4px rgba(0, 0, 0, .03);--shadow-lg: 0 16px 40px rgba(20, 24, 32, .16);--font: "Datatype", ui-monospace, "Cascadia Code", Consolas, monospace;--font-heading: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;--font-variation: "wdth" 100;--mono: "JetBrains Mono", ui-monospace, "Cascadia Code", Consolas, monospace}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font:.875rem/1.4285714286 var(--font);font-optical-sizing:auto;font-variation-settings:var(--font-variation);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-family:var(--font-heading);font-weight:700;letter-spacing:-.015em}h1{font-size:1.5rem;line-height:2rem}h2{font-size:1.25rem;line-height:1.75rem}h3{font-size:1rem;line-height:1.5rem}h4{font-size:.875rem;line-height:1.25rem}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,pre,.mono{font-family:var(--mono);font-size:12.5px}::selection{background:var(--accent-soft)}.page:where(:not(.ecp-lib *)){padding:24px 32px;max-width:1440px;margin:0 auto}@media(max-width:900px){.page{padding:20px 16px}}.page-header:where(:not(.ecp-lib *)){display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.page-header:where(:not(.ecp-lib *)) p{color:var(--text-2);margin-top:4px}.eyebrow:where(:not(.ecp-lib *)){display:block;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}.row:where(:not(.ecp-lib *)){display:flex;align-items:center;gap:8px}.row:where(:not(.ecp-lib *)).wrap{flex-wrap:wrap}.col:where(:not(.ecp-lib *)){display:flex;flex-direction:column;gap:8px}.spacer:where(:not(.ecp-lib *)){flex:1}.grid-2:where(:not(.ecp-lib *)){display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:900px){.grid-2{grid-template-columns:1fr}}.muted:where(:not(.ecp-lib *)){color:var(--muted)}.text-2:where(:not(.ecp-lib *)){color:var(--text-2)}.small:where(:not(.ecp-lib *)){font-size:12px}.ellipsis:where(:not(.ecp-lib *)){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty:where(:not(.ecp-lib *)){padding:48px 24px;text-align:center;color:var(--text-2);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface)}.empty:where(:not(.ecp-lib *)) h3{margin-bottom:6px;color:var(--text)}.card:where(:not(.ecp-lib *)){background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-node)}.card-body:where(:not(.ecp-lib *)){padding:14px 16px}.card-header:where(:not(.ecp-lib *)){padding:10px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}.section-title:where(:not(.ecp-lib *)){font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-2);margin:16px 0 8px}.btn:where(:not(.ecp-lib *)){display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text-2);font:500 13px var(--font);letter-spacing:.01em;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .1s}.btn:where(:not(.ecp-lib *)):hover{background:var(--surface-3);color:var(--text)}.btn:where(:not(.ecp-lib *)):active:not(:disabled){transform:scale(.97)}.btn:where(:not(.ecp-lib *)):focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn:where(:not(.ecp-lib *)):disabled{opacity:.5;cursor:not-allowed}.btn:where(:not(.ecp-lib *)).primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-sm);padding:0 16px}.btn:where(:not(.ecp-lib *)).primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn:where(:not(.ecp-lib *)).danger{color:var(--danger)}.btn:where(:not(.ecp-lib *)).danger:hover{background:var(--danger-soft);border-color:#f5b5b0;color:var(--danger)}.btn:where(:not(.ecp-lib *)).success{background:var(--success);border-color:var(--success);color:#fff}.btn:where(:not(.ecp-lib *)).ghost{border-color:transparent;background:transparent;color:var(--text-2)}.btn:where(:not(.ecp-lib *)).ghost:hover{background:var(--surface-3);color:var(--text)}.btn:where(:not(.ecp-lib *)).sm{height:28px;padding:0 10px;font-size:12.5px}.btn:where(:not(.ecp-lib *)).primary.sm{padding:0 12px}.btn:where(:not(.ecp-lib *)).icon{width:32px;padding:0}.btn:where(:not(.ecp-lib *)).sm.icon{width:28px}.field:where(:not(.ecp-lib *)){display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field:where(:not(.ecp-lib *))>label,.label{font-size:12.5px;font-weight:500;color:var(--text);letter-spacing:.01em}.field:where(:not(.ecp-lib *)) .hint{font-size:11.5px;color:var(--muted)}.field:where(:not(.ecp-lib *)) .error-text{font-size:11.5px;color:var(--danger)}.required:where(:not(.ecp-lib *)):after{content:" *";color:var(--danger)}.input:where(:not(.ecp-lib *)),select.input:where(:not(.ecp-lib *)),textarea.input:where(:not(.ecp-lib *)){width:100%;min-height:32px;padding:6px 10px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font:13px var(--font);transition:border-color .12s,box-shadow .12s}textarea.input:where(:not(.ecp-lib *)){resize:vertical;min-height:70px;line-height:1.45}.input:where(:not(.ecp-lib *)).code,textarea.code{font-family:var(--mono);font-size:12.5px}.input:where(:not(.ecp-lib *)):focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input:where(:not(.ecp-lib *)).invalid{border-color:#f5b5b0;box-shadow:0 0 0 3px var(--danger-soft)}.input:where(:not(.ecp-lib *))::placeholder{color:var(--muted)}.checkbox:where(:not(.ecp-lib *)){display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px}.switch:where(:not(.ecp-lib *)){position:relative;width:34px;height:20px;flex:none;display:inline-block}.switch:where(:not(.ecp-lib *)) input{opacity:0;width:0;height:0}.switch:where(:not(.ecp-lib *)) span{position:absolute;inset:0;background:var(--border-strong);border-radius:20px;transition:.15s;cursor:pointer}.switch:where(:not(.ecp-lib *)) span:before{content:"";position:absolute;width:14px;height:14px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.15s;box-shadow:var(--shadow-sm)}.switch:where(:not(.ecp-lib *)) input:checked+span{background:var(--accent)}.switch:where(:not(.ecp-lib *)) input:checked+span:before{transform:translate(14px)}.badge:where(:not(.ecp-lib *)){display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:999px;font-size:11.5px;font-weight:500;white-space:nowrap;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border)}.badge:where(:not(.ecp-lib *)).success{background:var(--success-soft);color:var(--success);border-color:#abefc6}.badge:where(:not(.ecp-lib *)).warning{background:var(--warning-soft);color:var(--warning);border-color:#fedf89}.badge:where(:not(.ecp-lib *)).danger{background:var(--danger-soft);color:var(--danger);border-color:#f8c9c5}.badge:where(:not(.ecp-lib *)).info{background:var(--info-soft);color:var(--info);border-color:#b9e6fe}.badge:where(:not(.ecp-lib *)).accent{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-border)}.dot:where(:not(.ecp-lib *)){width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}.chip:where(:not(.ecp-lib *)){display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);font-size:11.5px;color:var(--text-2)}.kbd:where(:not(.ecp-lib *)){font-family:var(--mono);font-size:11px;padding:1px 5px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:4px;background:var(--surface)}.table:where(:not(.ecp-lib *)){width:100%;border-collapse:collapse}.table:where(:not(.ecp-lib *)) th{text-align:left;font-size:11px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.08em;padding:9px 14px;border-bottom:1px solid var(--border);background:var(--surface-2)}.table:where(:not(.ecp-lib *)) td{padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.table:where(:not(.ecp-lib *)) tr:last-child td{border-bottom:none}.table:where(:not(.ecp-lib *)) tr.clickable{cursor:pointer}.table:where(:not(.ecp-lib *)) tr.clickable:hover td{background:#fffaf6}.tabs:where(:not(.ecp-lib *)){position:relative;display:flex;align-items:flex-end;gap:2px;min-width:0;max-width:100%;border-bottom:1px solid var(--border);overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.tabs:where(:not(.ecp-lib *))::-webkit-scrollbar{display:none}.tabs:where(:not(.ecp-lib *)).flush{border-bottom:0}.tab:where(:not(.ecp-lib *)){position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:none;height:40px;padding:0 12px;margin-bottom:-1px;border:none;border-radius:8px 8px 0 0;background:none;font:500 13.5px var(--font);color:var(--text-2);white-space:nowrap;text-decoration:none;cursor:pointer;transition:color .15s ease,background-color .15s ease}.tab:where(:not(.ecp-lib *)):after{content:"";position:absolute;left:10px;right:10px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--accent);transform:scaleX(0);transform-origin:center;transition:transform .22s cubic-bezier(.2,.7,.2,1),background-color .15s}.tab:where(:not(.ecp-lib *)) svg{color:var(--muted);transition:color .15s}.tab:where(:not(.ecp-lib *)):hover{color:var(--text);background:linear-gradient(to top,var(--surface-2),transparent)}.tab:where(:not(.ecp-lib *)):hover:after{transform:scaleX(.3);background:var(--border-strong)}.tab:where(:not(.ecp-lib *)):is(.active,.on,[aria-selected=true]){color:var(--text);font-weight:600}.tab:where(:not(.ecp-lib *)):is(.active,.on,[aria-selected=true]):after{transform:scaleX(1);background:var(--accent)}.tab:where(:not(.ecp-lib *)):is(.active,.on,[aria-selected=true]) svg{color:var(--accent)}.tab:where(:not(.ecp-lib *)):focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.tab:where(:not(.ecp-lib *)):disabled{opacity:.45;cursor:not-allowed}.tab:where(:not(.ecp-lib *)) :is(.count,b){min-width:20px;height:18px;padding:0 6px;border-radius:999px;background:var(--surface-3);color:var(--text-2);font:600 11px/18px var(--font);text-align:center;font-variant-numeric:tabular-nums}.tab:where(:not(.ecp-lib *)):is(.active,.on,[aria-selected=true]) :is(.count,b){background:var(--accent-soft);color:var(--accent-text)}.tabs:where(:not(.ecp-lib *)).sm .tab{height:32px;padding:0 9px;font-size:12.5px}.tabs:where(:not(.ecp-lib *)).sm .tab:after{left:6px;right:6px;height:2px}.tabs:where(:not(.ecp-lib *)).stretch .tab{flex:1}.alert:where(:not(.ecp-lib *)){padding:10px 14px;border-radius:var(--radius);border:1px solid;font-size:13px}.alert:where(:not(.ecp-lib *)).danger{background:var(--danger-soft);border-color:#f8c9c5;color:var(--danger)}.alert:where(:not(.ecp-lib *)).warning{background:var(--warning-soft);border-color:#fedf89;color:var(--warning)}.alert:where(:not(.ecp-lib *)).info{background:var(--info-soft);border-color:#b9e6fe;color:var(--info)}.alert:where(:not(.ecp-lib *)).success{background:var(--success-soft);border-color:#abefc6;color:var(--success)}.alert:where(:not(.ecp-lib *)) ul{margin:6px 0 0;padding-left:18px}.backdrop:where(:not(.ecp-lib *)){position:fixed;inset:0;background:#191c1d66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:100;padding:24px}.dialog:where(:not(.ecp-lib *)){background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(560px,100%);max-height:90vh;display:flex;flex-direction:column}.dialog:where(:not(.ecp-lib *)).wide{width:min(880px,100%)}.dialog:where(:not(.ecp-lib *)) header{padding:22px 24px 6px}.dialog:where(:not(.ecp-lib *)) header p{color:var(--text-2);margin-top:4px}.dialog:where(:not(.ecp-lib *)) .dialog-body{padding:14px 24px;overflow:auto}.dialog:where(:not(.ecp-lib *)) footer{padding:14px 24px;border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius-lg) var(--radius-lg);display:flex;justify-content:flex-end;gap:8px}pre.code-block{margin:0;padding:14px 16px;background:var(--ink);color:#e6e8ec;border-radius:var(--radius);overflow:auto;max-height:420px;line-height:1.5}.fade-in:where(:not(.ecp-lib *)){animation:fade-in .15s ease-out}@keyframes fade-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}.spin:where(:not(.ecp-lib *)){animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.cdk-drag-preview{box-shadow:var(--shadow-lg);border-radius:var(--radius-lg);opacity:.95}.cdk-drag-placeholder{opacity:.35}.cdk-drag-animating,.cdk-drop-list-dragging .cdk-drag{transition:transform .18s cubic-bezier(0,0,.2,1)}.dot-grid:where(:not(.ecp-lib *)){background-color:var(--bg);background-image:radial-gradient(circle,#d1d5db 1px,transparent 1px);background-size:24px 24px}.glass-panel:where(:not(.ecp-lib *)){background:#ffffffd1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);box-shadow:var(--shadow)}.icon-tile:where(:not(.ecp-lib *)){display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:var(--radius);background:var(--surface-3);color:var(--text-2)}.icon-tile:where(:not(.ecp-lib *)).accent{background:var(--accent-soft);color:var(--accent)}.icon-tile:where(:not(.ecp-lib *)).sm{width:32px;height:32px;border-radius:var(--radius-sm)}
