/*! Ecod Theme (c) 2026 Ecod. All Rights Reserved. · https://ecod.cc */
/*!
 * Ecod Kit · 交付机制层组件样式
 * 对应 docs/dev/THEME-FEATURE-BENCHMARK-2026-11-06.html §07 / §08。
 * 命名一律 --ecod-kit-* / .ecod-kit-*，不与前台组件类名冲突；
 * 颜色走 ecod.css 的语义令牌，暗色自动继承；方向一律用逻辑属性。
 */:root{--ecod-kit-ink-3: #7b8593;--ecod-kit-surface-3: #f2f4f8;--ecod-kit-shadow-2: 0 6px 20px rgba(18, 22, 29, .07);--ecod-kit-state-warn: #b45309;--ecod-kit-state-ok: #0d8f6f;--ecod-kit-state-bad: #d63b3b;--ecod-kit-dur: .2s;--ecod-kit-dur-fast: .14s}[data-theme=dark]{--ecod-kit-ink-3: #9aa5b4;--ecod-kit-surface-3: #1e2430;--ecod-kit-shadow-2: 0 6px 24px rgba(0, 0, 0, .34);--ecod-kit-state-warn: #e6a75b;--ecod-kit-state-ok: #63c9ab;--ecod-kit-state-bad: #ef8585}.ecod-kit-diag{position:fixed;inset-inline-end:20px;inset-block-end:20px;z-index:calc(var(--ecod-z-float, 900) + 20);font-family:var(--ecod-font, inherit);font-size:12px;color:var(--ecod-text, #222)}.ecod-kit-diag__toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--ecod-line, #e4e7ee);border-radius:999px;background:var(--ecod-surface, #fff);box-shadow:var(--ecod-kit-shadow-2);color:inherit;cursor:pointer;font:inherit;font-weight:600}.ecod-kit-diag__toggle:hover{border-color:var(--ecod-primary, #4f6ef2)}.ecod-kit-diag__toggle:focus-visible,.ecod-kit-diag__close:focus-visible,.ecod-kit-diag__act:focus-visible,.ecod-kit-toast button:focus-visible,.ecod-kit-a11y__toggle:focus-visible{outline:2px solid var(--ecod-primary, #4f6ef2);outline-offset:2px}.ecod-kit-diag__dot{width:8px;height:8px;border-radius:50%;background:var(--ecod-kit-state-ok);flex:none}.ecod-kit-diag__dot.is-warn{background:var(--ecod-kit-state-warn)}.ecod-kit-diag__panel{position:absolute;inset-inline-end:0;inset-block-end:54px;width:min(660px,calc(100vw - 32px));max-height:min(72vh,720px);overflow:auto;padding:16px;border:1px solid var(--ecod-line, #e4e7ee);border-radius:12px;background:var(--ecod-surface, #fff);box-shadow:var(--ecod-kit-shadow-2)}.ecod-kit-diag[hidden] .ecod-kit-diag__panel,.ecod-kit-diag__panel[hidden]{display:none}.ecod-kit-diag__hd{display:flex;align-items:center;gap:8px;margin-block-end:12px}.ecod-kit-diag__hd h3{margin:0;font-size:14px}.ecod-kit-diag__close{margin-inline-start:auto;min-width:44px;min-height:44px;border:0;background:transparent;color:inherit;cursor:pointer;font-size:18px}.ecod-kit-ctx{display:flex;flex-wrap:wrap;gap:6px 12px;padding:10px 12px;border-radius:8px;background:var(--ecod-kit-surface-3);margin-block-end:12px}.ecod-kit-ctx b{font-weight:600;color:var(--ecod-kit-ink-3)}.ecod-kit-ctx span{font-family:var(--ecod-mono, monospace)}.ecod-kit-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-block-end:14px}.ecod-kit-flow__step{position:relative;padding:10px;border:1px solid var(--ecod-line, #e4e7ee);border-radius:8px;background:var(--ecod-surface, #fff)}.ecod-kit-flow__step+.ecod-kit-flow__step:before{content:"\203a";position:absolute;inset-inline-start:-9px;inset-block-start:8px;color:var(--ecod-kit-ink-3)}.ecod-kit-flow__step.is-warn{border-color:color-mix(in srgb,var(--ecod-kit-state-warn) 40%,transparent);background:color-mix(in srgb,var(--ecod-kit-state-warn) 8%,var(--ecod-surface, #fff))}.ecod-kit-flow__n{font-family:var(--ecod-mono, monospace);color:var(--ecod-kit-ink-3)}.ecod-kit-flow__t{font-weight:700;margin-block:2px}.ecod-kit-flow__d{color:var(--ecod-kit-ink-3);line-height:1.5}.ecod-kit-card{padding:12px;border:1px solid var(--ecod-line, #e4e7ee);border-radius:8px;margin-block-end:8px}.ecod-kit-card.is-warn{border-color:color-mix(in srgb,var(--ecod-kit-state-warn) 40%,transparent)}.ecod-kit-card__hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ecod-kit-card__hd b{font-size:13px}.ecod-kit-card p{margin:6px 0;line-height:1.65}.ecod-kit-card__fix{color:var(--ecod-kit-ink-3);line-height:1.6}.ecod-kit-state{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;white-space:nowrap}.ecod-kit-state--ok{background:color-mix(in srgb,var(--ecod-kit-state-ok) 12%,transparent);color:var(--ecod-kit-state-ok)}.ecod-kit-state--warn{background:color-mix(in srgb,var(--ecod-kit-state-warn) 14%,transparent);color:var(--ecod-kit-state-warn)}.ecod-kit-state--bad{background:color-mix(in srgb,var(--ecod-kit-state-bad) 12%,transparent);color:var(--ecod-kit-state-bad)}.ecod-kit-state--na{background:var(--ecod-kit-surface-3);color:var(--ecod-kit-ink-3)}.ecod-kit-act{min-height:32px;padding:4px 10px;border:1px solid var(--ecod-line, #e4e7ee);border-radius:6px;background:var(--ecod-surface, #fff);color:inherit;cursor:pointer;font:inherit}.ecod-kit-act:hover{border-color:var(--ecod-primary, #4f6ef2)}.ecod-kit-slots{margin-block-start:12px}.ecod-kit-slots summary{cursor:pointer;font-weight:600;padding:6px 0}.ecod-kit-slots table{width:100%;border-collapse:collapse;margin-block-start:6px}.ecod-kit-slots th,.ecod-kit-slots td{padding:6px 8px;border-block-start:1px solid var(--ecod-line, #e4e7ee);text-align:start}.ecod-kit-slots td:last-child,.ecod-kit-slots th:last-child{text-align:end}.ecod-kit-toast{position:fixed;inset-inline:0;inset-block-start:0;z-index:calc(var(--ecod-z-float, 900) + 30);display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 16px;background:var(--ecod-kit-surface-3);border-block-end:1px solid var(--ecod-line, #e4e7ee);box-shadow:var(--ecod-kit-shadow-2);font-size:13px}.ecod-kit-toast[hidden]{display:none}.ecod-kit-toast button{min-height:44px;min-width:44px;padding:4px 12px;border:1px solid var(--ecod-line, #e4e7ee);border-radius:6px;background:var(--ecod-surface, #fff);color:inherit;cursor:pointer;font:inherit}.ecod-kit-toast__close{margin-inline-start:auto}.ecod-kit-a11y{position:fixed;inset-inline-end:var(--ecod-float-gap);inset-block-end:74px;z-index:calc(var(--ecod-z-float, 90) + 19);font-family:var(--ecod-font, inherit);font-size:var(--ecod-fs-md);color:var(--ecod-text)}.ecod-kit-a11y__toggle{display:inline-flex;align-items:center;justify-content:center;gap:var(--ecod-sp-1);min-height:44px;padding:var(--ecod-sp-2) var(--ecod-sp-3);border:1px solid var(--ecod-border);border-radius:var(--ecod-radius-full);background:var(--ecod-surface);box-shadow:var(--ecod-shadow);color:var(--ecod-text-2);cursor:pointer;font:inherit;font-size:var(--ecod-fs-sm);font-weight:600;transition:color var(--ecod-dur) var(--ecod-ease),border-color var(--ecod-dur) var(--ecod-ease),box-shadow var(--ecod-dur) var(--ecod-ease)}@media(hover:hover){.ecod-kit-a11y__toggle:hover{color:var(--ecod-primary);border-color:var(--ecod-primary);box-shadow:var(--ecod-shadow-hover)}}.ecod-kit-a11y__toggle[aria-expanded=true]{color:var(--ecod-primary);border-color:var(--ecod-primary);box-shadow:var(--ecod-shadow-hover)}.ecod-kit-a11y__panel{position:absolute;inset-inline-end:0;inset-block-end:52px;width:min(380px,calc(100vw - var(--ecod-sp-8)));max-height:60vh;overflow:auto;overscroll-behavior:contain;padding:var(--ecod-card-pad);border:1px solid var(--ecod-border);border-radius:var(--ecod-radius);background:var(--ecod-surface);box-shadow:var(--ecod-shadow-pop)}.ecod-kit-a11y__panel[hidden]{display:none}.ecod-kit-a11y__panel h3{margin:0 0 var(--ecod-sp-2);padding-block-end:var(--ecod-sp-2);border-block-end:1px solid var(--ecod-line-2);font-size:var(--ecod-fs-xs);font-weight:600;letter-spacing:.12em;color:var(--ecod-text-3)}.ecod-kit-a11y ul{list-style:none;margin:0;padding:0}.ecod-kit-a11y li{display:flex;align-items:flex-start;gap:var(--ecod-sp-2);padding:var(--ecod-sp-2) 0;border-block-start:1px solid var(--ecod-line-2);line-height:1.5}.ecod-kit-a11y li:first-child{border-block-start:0}.ecod-kit-a11y__val{margin-inline-start:auto;padding-inline-start:var(--ecod-sp-2);color:var(--ecod-text-3);font-size:var(--ecod-fs-xs);white-space:nowrap}.ecod-kit-a11y__panel .ecod-kit-state{display:inline-flex;align-items:center;justify-content:center;flex:none;padding:1px var(--ecod-sp-2);border:1px solid color-mix(in srgb,var(--c, var(--ecod-primary)) 20%,transparent);border-radius:var(--ecod-radius-full);background:color-mix(in srgb,var(--c, var(--ecod-primary)) 12%,transparent);color:var(--c, var(--ecod-primary));font-size:var(--ecod-fs-2xs);font-weight:600;line-height:1.75;white-space:nowrap}.ecod-kit-a11y__panel .ecod-kit-state--ok{--c: var(--ecod-success-ink)}.ecod-kit-a11y__panel .ecod-kit-state--warn{--c: color-mix(in srgb, var(--ecod-accent) 70%, var(--ecod-text))}.ecod-kit-a11y__panel .ecod-kit-state--bad{--c: color-mix(in srgb, var(--ecod-danger) 75%, var(--ecod-text))}.ecod-kit-a11y__panel .ecod-kit-state--na{--c: var(--ecod-text-3)}.ecod-kit-a11y__clear{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-block-start:var(--ecod-sp-4);padding:var(--ecod-sp-2) var(--ecod-sp-4);border:1px solid var(--ecod-border);border-radius:var(--ecod-radius-sm);background:transparent;color:var(--ecod-text-2);cursor:pointer;font:inherit;font-size:var(--ecod-fs-md)}@media(hover:hover){.ecod-kit-a11y__clear:hover{border-color:var(--ecod-primary);color:var(--ecod-primary)}}.ecod-kit-a11y__clear:focus-visible{outline:2px solid var(--ecod-primary);outline-offset:2px}.ecod-kit-sx{margin-block-start:14px;padding-block-start:12px;border-block-start:1px solid var(--ecod-line, #e4e7ee);font-size:12px}.ecod-kit-sx__hd{margin-block-end:8px;color:var(--ecod-kit-ink-3);font-weight:600}.ecod-kit-sx__row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-block:6px}.ecod-kit-sx__label{min-width:36px;color:var(--ecod-kit-ink-3)}.ecod-kit-sx__item{display:inline-flex;align-items:center;min-height:32px;padding:2px 10px;border:1px solid var(--ecod-line, #e4e7ee);border-radius:999px;color:inherit;text-decoration:none}.ecod-kit-sx__item:hover{border-color:var(--ecod-primary, #4f6ef2)}.ecod-kit-sx__item:focus-visible{outline:2px solid var(--ecod-primary, #4f6ef2);outline-offset:2px}@media(max-width:680px){.ecod-kit-flow{grid-template-columns:1fr}.ecod-kit-flow__step+.ecod-kit-flow__step:before{content:"\2193";inset-inline-start:10px;inset-block-start:-14px}.ecod-kit-diag{inset-inline-end:12px;inset-block-end:12px}.ecod-kit-diag__panel{inset-block-end:56px;max-height:66vh}.ecod-kit-a11y{inset-inline-end:var(--ecod-float-gap-sm);inset-block-end:66px}}html[dir=rtl] .ecod-kit-flow__step+.ecod-kit-flow__step:before{content:"\2039"}@media(prefers-reduced-motion:reduce){.ecod-kit-diag__toggle,.ecod-kit-act,.ecod-kit-toast{transition:none!important;animation:none!important}}
