diff --git a/e2e/history-layout.spec.js b/e2e/history-layout.spec.js index 4b2261f..c7c0493 100644 --- a/e2e/history-layout.spec.js +++ b/e2e/history-layout.spec.js @@ -145,3 +145,42 @@ for (const [adapter, query, mail] of [ }); } } + +// Header markup copied from the Yii3 History grid: `SortState::header()` sets the order class on the link. +for (const [direction, order, arrow] of [ + ["ascending", "asc", "↑"], + ["descending", "desc", "↓"], +]) { + test(`Yii3 History marks the ${direction} sorted column with an arrow`, async ({ + page, + }) => { + await page.setContent(` + + + + + + + + + + +
TimeMethod
+ + + `); + await page.addStyleTag({ path: stylesheet.pathname }); + + const marker = (selector) => + page + .locator(selector) + .evaluate((link) => getComputedStyle(link, "::after").content); + + expect(await marker("th[aria-sort] a"), "Sorted column arrow").toBe( + `"${arrow}"`, + ); + expect(await marker("th:not([aria-sort]) a"), "Unsorted column").toBe( + "none", + ); + }); +} diff --git a/resources/assets/dist/css/debug.min.css b/resources/assets/dist/css/debug.min.css index 4d3a5a7..742806b 100644 --- a/resources/assets/dist/css/debug.min.css +++ b/resources/assets/dist/css/debug.min.css @@ -1 +1 @@ -:root,:host{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--yii-debug-font-sans:"IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, helvetica, arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--yii-debug-font-mono:"JetBrains Mono", ui-monospace, sfmono-regular, menlo, monaco, consolas, "Liberation Mono", "Courier New", monospace;--yii-debug-font-display:var(--yii-debug-font-mono);--yii-debug-space-1:4px;--yii-debug-space-2:8px;--yii-debug-space-3:12px;--yii-debug-space-4:16px;--yii-debug-space-5:24px;--yii-debug-space-6:32px;--yii-debug-radius-sm:6px;--yii-debug-radius-md:10px;--yii-debug-radius-lg:14px;--yii-debug-radius-pill:999px;--yii-debug-fs-xs:.75rem;--yii-debug-fs-sm:.8125rem;--yii-debug-fs-base:.9375rem;--yii-debug-fs-lg:1.0625rem;--yii-debug-fs-xl:1.25rem;--yii-debug-fs-2xl:1.5rem;--yii-debug-control-min-size:36px;--yii-debug-panel-padding:var(--yii-debug-space-5);--yii-debug-row-padding-block:10px;--yii-debug-duration-fast:.12s;--yii-debug-duration-normal:.18s;--yii-debug-panel-bg:var(--lightningcss-light,#f2f5f1)var(--lightningcss-dark,#0c120e);--yii-debug-panel-bg-accent:var(--lightningcss-light,#0e7a551a)var(--lightningcss-dark,#2fd08c14);--yii-debug-panel-surface:var(--lightningcss-light,#fffffff0)var(--lightningcss-dark,#121a15eb);--yii-debug-panel-surface-muted:var(--lightningcss-light,#f6f8f5)var(--lightningcss-dark,#101812);--yii-debug-panel-surface-hover:var(--lightningcss-light,#e9f2ec)var(--lightningcss-dark,#1a241d);--yii-debug-panel-border:var(--lightningcss-light,#5d7a6942)var(--lightningcss-dark,#8fa39633);--yii-debug-panel-border-strong:var(--lightningcss-light,#4660515c)var(--lightningcss-dark,#8fa39652);--yii-debug-panel-text:var(--lightningcss-light,#16211a)var(--lightningcss-dark,#e4ede6);--yii-debug-panel-muted:var(--lightningcss-light,#5c6b60)var(--lightningcss-dark,#8fa396);--yii-debug-panel-link:var(--lightningcss-light,#0b6b4a)var(--lightningcss-dark,#4fd39a);--yii-debug-panel-link-hover:var(--lightningcss-light,#0d855b)var(--lightningcss-dark,#7fe4b8);--yii-debug-panel-primary:var(--lightningcss-light,#0e7a55)var(--lightningcss-dark,#2fd08c);--yii-debug-primary-bg:linear-gradient(135deg, var(--yii-debug-panel-primary-strong), var(--yii-debug-panel-primary));--yii-debug-on-primary:var(--lightningcss-light,#fff)var(--lightningcss-dark,#06281b);--yii-debug-panel-primary-strong:var(--lightningcss-light,#0a5c40)var(--lightningcss-dark,#17a673);--yii-debug-focus-ring:var(--lightningcss-light,#075c40)var(--lightningcss-dark,#7fe4b8);--yii-debug-success:var(--lightningcss-light,#0d7d47)var(--lightningcss-dark,#34c97e);--yii-debug-warning:var(--lightningcss-light,#8f5000)var(--lightningcss-dark,#e8a33d);--yii-debug-danger:var(--lightningcss-light,#c93838)var(--lightningcss-dark,#f16a6a);--yii-debug-on-success:var(--lightningcss-light,#fff)var(--lightningcss-dark,#0c120e);--yii-debug-on-warning:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1c1917);--yii-debug-on-danger:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1c1917);--yii-debug-info:var(--lightningcss-light,#205f9d)var(--lightningcss-dark,#5fa8e8);--yii-debug-on-info:var(--yii-debug-panel-bg);--yii-debug-panel-code-bg:var(--lightningcss-light,#ecf1ec)var(--lightningcss-dark,#17211a);--yii-debug-panel-pill:var(--lightningcss-light,#16211a0f)var(--lightningcss-dark,#8fa3962e);--yii-debug-panel-shadow:var(--lightningcss-light,0 22px 60px #16211a14)var(--lightningcss-dark,0 22px 60px #0006);--yii-debug-border:1px solid var(--yii-debug-panel-border);--yii-debug-border-strong:1px solid var(--yii-debug-panel-border-strong);--yii-debug-shadow-sm:0 1px 2px #0f172a0f;--yii-debug-shadow-md:0 10px 24px #0f172a14;--yii-debug-verb-get:var(--lightningcss-light,#0b7285)var(--lightningcss-dark,#4dc4d9);--yii-debug-verb-post:var(--lightningcss-light,#6941c6)var(--lightningcss-dark,#a78bfa);--yii-debug-verb-put:var(--lightningcss-light,#b26a00)var(--lightningcss-dark,#e8a33d);--yii-debug-verb-delete:var(--lightningcss-light,#c93838)var(--lightningcss-dark,#f16a6a);--yii-debug-verb-other:var(--yii-debug-panel-muted);--yii-debug-status-2xx:var(--yii-debug-success);--yii-debug-status-3xx:var(--yii-debug-warning);--yii-debug-status-4xx:var(--lightningcss-light,#c2410c)var(--lightningcss-dark,#fb923c);--yii-debug-status-5xx:var(--yii-debug-danger);--yii-debug-level-error:var(--yii-debug-danger);--yii-debug-level-warning:var(--yii-debug-warning);--yii-debug-level-info:var(--yii-debug-info);--yii-debug-level-trace:var(--yii-debug-panel-muted);--yii-debug-level-profile:var(--lightningcss-light,#9333ea)var(--lightningcss-dark,#b16be8);--yii-debug-level-other:var(--yii-debug-panel-muted);--yii-debug-gauge-fill:var(--yii-debug-panel-primary);--yii-debug-gauge-track:var(--lightningcss-light,#0e7a5529)var(--lightningcss-dark,#2fd08c24);--yii-debug-sql-kw:var(--lightningcss-light,#0a5c40)var(--lightningcss-dark,#4fd39a);--yii-debug-sql-str:var(--lightningcss-light,#8f4e00)var(--lightningcss-dark,#e8a33d);--yii-debug-sql-num:var(--yii-debug-info);--yii-debug-sql-comment:var(--yii-debug-panel-muted);--yii-debug-sql-param:var(--lightningcss-light,#6941c6)var(--lightningcss-dark,#a78bfa);--yii-debug-cat-app:var(--lightningcss-light,#0a6b47)var(--lightningcss-dark,#14b06e);--yii-debug-cat-db:var(--lightningcss-light,#0994b8)var(--lightningcss-dark,#0999be);--yii-debug-cat-view:var(--lightningcss-light,#6941c6)var(--lightningcss-dark,#8f6ce8);--yii-debug-cat-cache:var(--lightningcss-light,#b26a00)var(--lightningcss-dark,#c28300);--yii-debug-cat-mail:var(--lightningcss-light,#b23a67)var(--lightningcss-dark,#d95f8f);--yii-debug-cat-queue:var(--lightningcss-light,#3f4dbd)var(--lightningcss-dark,#6d7ce6);--yii-debug-cat-other:var(--yii-debug-panel-muted)}@media (prefers-color-scheme:dark){:root,:host{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-yii-debug-theme=light],:host([data-theme=light]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-yii-debug-theme=dark],:host([data-theme=dark]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../fonts/jetbrains-mono-latin-400-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../fonts/jetbrains-mono-latin-500-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(../fonts/jetbrains-mono-latin-700-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(../fonts/ibm-plex-sans-latin-400-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(../fonts/ibm-plex-sans-latin-500-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(../fonts/ibm-plex-sans-latin-600-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(../fonts/ibm-plex-sans-latin-700-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.yii-debug .yii-debug-event-controls{margin-block:var(--yii-debug-space-4);font-size:var(--yii-debug-fs-xs)}.yii-debug .yii-debug-event-groups{align-items:center;gap:var(--yii-debug-space-2);margin-block:var(--yii-debug-space-4);flex-wrap:wrap;display:flex}.yii-debug .yii-debug-event-group{align-items:center;gap:var(--yii-debug-space-2);min-height:var(--yii-debug-control-min-size);padding:var(--yii-debug-space-1) var(--yii-debug-space-2);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface-muted);overflow-wrap:anywhere;display:inline-flex}.yii-debug .yii-debug-event-item>summary{cursor:pointer;list-style:none}.yii-debug .yii-debug-event-item>summary:focus-visible{outline:2px solid var(--yii-debug-panel-primary);outline-offset:4px;border-radius:var(--yii-debug-radius-sm)}.yii-debug :is(.yii-debug-event-clock,.yii-debug-event-identity){gap:var(--yii-debug-space-1);display:grid}.yii-debug .yii-debug-event-clock{min-width:105px}.yii-debug .yii-debug-event-time{white-space:nowrap;color:var(--yii-debug-panel-primary)}.yii-debug .yii-debug-event-identity{overflow-wrap:anywhere;min-width:0}.yii-debug .yii-debug-event-name:before{content:"+ ";color:var(--yii-debug-panel-primary)}.yii-debug .yii-debug-event-item[open] .yii-debug-event-name:before{content:"− "}.yii-debug .yii-debug-event-timing{font-size:var(--yii-debug-fs-xs)}.yii-debug .yii-debug-event-detail-row{display:none}.yii-debug .yii-debug-table tr:has(.yii-debug-event-item[open])+.yii-debug-event-detail-row{display:table-row}.yii-debug .yii-debug-table .yii-debug-event-detail-row>td{padding:0}.yii-debug .yii-debug-event-detail{gap:var(--yii-debug-space-4);padding:var(--yii-debug-space-4);background:var(--yii-debug-panel-surface-muted);white-space:normal;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.yii-debug .yii-debug-event-detail>div{min-width:0}.yii-debug .yii-debug-event-detail-footer{gap:var(--yii-debug-space-2) var(--yii-debug-space-4);flex-wrap:wrap;grid-column:1/-1;display:flex}.yii-debug .yii-debug-event-metadata{gap:var(--yii-debug-space-2) var(--yii-debug-space-3);grid-template-columns:minmax(75px,.4fr) minmax(0,1fr);display:grid}.yii-debug .yii-debug-event-metadata dt{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-event-metadata dd{margin:0}.yii-debug .yii-debug-event-trace pre{white-space:pre-wrap;overflow-wrap:anywhere}.yii-debug :is(.yii-debug-event-context,.yii-debug-event-trace)>:last-child{margin-bottom:0}@media not (min-width:768px){.yii-debug .yii-debug-event-detail{grid-template-columns:minmax(0,1fr)}}.yii-debug .yii-debug-event-coverage>summary{min-height:var(--yii-debug-control-min-size);padding-block:var(--yii-debug-space-2);cursor:pointer}.yii-debug{background:radial-gradient(circle at top left, var(--yii-debug-panel-bg-accent), transparent 36rem), var(--yii-debug-panel-bg);min-height:100vh;color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-base);margin:0;padding:0;line-height:1.5}.yii-debug *,.yii-debug :before,.yii-debug :after{box-sizing:border-box}.yii-debug h1,.yii-debug h2,.yii-debug h3,.yii-debug h4,.yii-debug h5,.yii-debug h6{margin:0 0 var(--yii-debug-space-3);color:var(--yii-debug-panel-text);letter-spacing:-.01em;font-weight:700;line-height:1.25}.yii-debug h1{font-size:var(--yii-debug-fs-2xl)}.yii-debug h2{font-size:var(--yii-debug-fs-xl)}.yii-debug h3{font-size:var(--yii-debug-fs-lg)}.yii-debug h4,.yii-debug h5,.yii-debug h6{font-size:var(--yii-debug-fs-base)}.yii-debug p,.yii-debug ul,.yii-debug ol,.yii-debug dl,.yii-debug figure{margin:0 0 var(--yii-debug-space-3)}.yii-debug ul,.yii-debug ol{padding-left:var(--yii-debug-space-5)}.yii-debug strong,.yii-debug b{font-weight:600}.yii-debug a{color:var(--yii-debug-panel-link);text-decoration:none;transition:color .12s}.yii-debug a:hover,.yii-debug a:focus{color:var(--yii-debug-panel-link-hover);text-decoration:underline}.yii-debug code,.yii-debug kbd,.yii-debug samp{border-radius:var(--yii-debug-radius-sm);background:var(--yii-debug-panel-code-bg);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-variant-ligatures:none;padding:.1em .35em;font-size:.875em}.yii-debug pre{margin:0 0 var(--yii-debug-space-3);padding:var(--yii-debug-space-3);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-code-bg);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);font-variant-ligatures:none;line-height:1.4;overflow-x:auto}.yii-debug pre code{font-size:inherit;background:0 0;padding:0}.yii-debug :focus-visible{outline:3px solid var(--yii-debug-focus-ring);outline-offset:3px}.yii-debug .yii-debug-page{max-width:1680px;padding:var(--yii-debug-space-4);margin:0 auto}.yii-debug .yii-debug-layout{gap:var(--yii-debug-space-4);grid-template-columns:240px 1fr;align-items:start;display:grid}@media (max-width:959px){.yii-debug .yii-debug-layout{grid-template-columns:1fr}}@media (min-width:960px){.yii-debug .yii-debug-sidebar{top:var(--yii-debug-space-4);max-height:calc(100vh - var(--yii-debug-space-5));position:sticky;overflow-y:auto}}.yii-debug .yii-debug-main{min-width:0;container:yii-debug-main/inline-size}.yii-debug .yii-debug-main>*+:is(h2,.yii-debug-disclosure),.yii-debug .yii-debug-tab-panel>.yii-debug-table-wrap+.yii-debug-disclosure{margin-top:var(--yii-debug-space-5)}.yii-debug .yii-debug-main>.yii-debug-sr-only:first-child+:is(h2,.yii-debug-disclosure){margin-top:0}.yii-debug .yii-debug-mini-toolbar{justify-content:flex-end;align-items:center;gap:var(--yii-debug-space-2);margin-bottom:var(--yii-debug-space-4);flex-wrap:wrap;display:flex}.yii-debug .yii-debug-side-section{gap:var(--yii-debug-space-2);margin:0 0 var(--yii-debug-space-3);padding:var(--yii-debug-space-3);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-lg);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-sm);flex-direction:column;display:flex}.yii-debug .yii-debug-side-section-title{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:700}.yii-debug .yii-debug-side-section-link{color:var(--yii-debug-panel-link);font-size:var(--yii-debug-fs-sm);text-decoration:none}.yii-debug .yii-debug-side-section-link:hover,.yii-debug .yii-debug-side-section-link:focus{color:var(--yii-debug-panel-link-hover);text-decoration:underline}.yii-debug .yii-debug-request-nav-row{width:100%;margin-top:var(--yii-debug-space-2);grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.yii-debug .yii-debug-btn-icon{justify-content:center;align-items:center;padding:4px 0;font-size:16px;line-height:1;display:inline-flex}.yii-debug .yii-debug-btn-icon svg{width:1em;height:1em}.yii-debug .yii-debug-request-nav .yii-debug-btn{justify-content:center;width:100%}.yii-debug .yii-debug-brand-bar{align-items:center;gap:var(--yii-debug-space-2);margin-bottom:var(--yii-debug-space-3);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-lg);background:linear-gradient(180deg, color-mix(in srgb, var(--yii-debug-panel-surface) 96%, transparent), color-mix(in srgb, var(--yii-debug-panel-surface-muted) 88%, transparent));box-shadow:var(--yii-debug-shadow-sm);flex-wrap:wrap;padding:8px 12px;display:flex}.yii-debug .yii-debug-brand-chip{border:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 70%, transparent);border-radius:var(--yii-debug-radius-pill);background:color-mix(in srgb, var(--yii-debug-panel-surface), transparent 30%);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);min-height:var(--yii-debug-control-min-size);align-items:center;gap:8px;padding:6px 12px;text-decoration:none;transition:border-color .14s,transform .14s,box-shadow .14s;display:inline-flex}.yii-debug a.yii-debug-brand-chip:hover,.yii-debug a.yii-debug-brand-chip:focus{border-color:var(--yii-debug-panel-primary);box-shadow:var(--yii-debug-shadow-sm);text-decoration:none;transform:translateY(-1px)}.yii-debug .yii-debug-brand-icon{flex:none;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.yii-debug .yii-debug-brand-icon svg{width:100%;height:100%}.yii-debug .yii-debug-brand-chip-php .yii-debug-brand-icon{width:32px}.yii-debug .yii-debug-brand-chip-php .yii-debug-brand-icon svg{fill:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-brand-label{color:var(--yii-debug-panel-muted);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.yii-debug .yii-debug-brand-value{color:var(--yii-debug-panel-text);font-weight:700}.yii-debug .yii-debug-brand-chip-mem{margin-left:auto}.yii-debug .yii-debug-brand-chip-config{border:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted);text-decoration:none;transition:transform .14s,border-color .14s,color .14s,background-color .14s}.yii-debug .yii-debug-brand-chip-config .yii-debug-brand-icon{justify-content:center;align-items:center;width:14px;height:14px;transition:transform .24s;display:inline-flex}.yii-debug .yii-debug-brand-chip-config .yii-debug-brand-icon svg{width:100%;height:100%}.yii-debug .yii-debug-brand-chip-config:hover,.yii-debug .yii-debug-brand-chip-config:focus-visible{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 50%);color:var(--yii-debug-panel-primary-strong);text-decoration:none;transform:translateY(-1px)}.yii-debug .yii-debug-brand-chip-config:hover .yii-debug-brand-icon,.yii-debug .yii-debug-brand-chip-config:focus-visible .yii-debug-brand-icon{transform:rotate(45deg)}.yii-debug .yii-debug-brand-chip-config.is-disabled{opacity:.5;cursor:default;pointer-events:none}.yii-debug .yii-debug-brand-chip-config{margin-left:auto}.yii-debug .yii-debug-brand-bar:has(.yii-debug-brand-chip-mem) .yii-debug-brand-chip-config{margin-left:0}.yii-debug .yii-debug-brand-chip-theme{border:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted);cursor:pointer;padding:6px 10px;transition:transform .14s,border-color .14s,color .14s,background-color .14s}.yii-debug .yii-debug-brand-chip-theme:hover,.yii-debug .yii-debug-brand-chip-theme:focus-visible{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 50%);color:var(--yii-debug-panel-primary-strong);transform:translateY(-1px)}.yii-debug .yii-debug-brand-chip-theme .yii-debug-brand-icon{justify-content:center;align-items:center;width:16px;height:16px;transition:transform .24s;display:inline-flex}.yii-debug .yii-debug-brand-chip-theme .yii-debug-brand-icon svg{width:100%;height:100%}.yii-debug .yii-debug-brand-chip-theme:hover .yii-debug-brand-icon{transform:rotate(20deg)}.yii-debug .yii-debug-snapshot-line{min-width:0;font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);align-items:baseline;gap:6px;display:flex}.yii-debug .yii-debug-snapshot-method{color:color-mix(in srgb, var(--yii-debug-hue,var(--yii-debug-panel-primary-strong)) 80%, var(--yii-debug-panel-text));flex:none;font-weight:700}.yii-debug .yii-debug-snapshot-url{min-width:0;color:var(--yii-debug-panel-text);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;overflow:hidden}.yii-debug .yii-debug-snapshot-meta{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);align-items:center;gap:6px;display:flex}.yii-debug .yii-debug-snapshot-status{border-radius:var(--yii-debug-radius-pill);padding:1px 6px;font-weight:700;display:inline-block}.yii-debug .yii-debug-snapshot-tag{border:1px solid var(--yii-debug-panel-border);border-radius:var(--yii-debug-radius-pill);padding:0 6px}.yii-debug .yii-debug-request-hero{margin-bottom:var(--yii-debug-space-4);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface-muted);box-shadow:var(--yii-debug-shadow-sm)}.yii-debug .yii-debug-request-overview{margin-bottom:var(--yii-debug-space-4);border:var(--yii-debug-border);border-inline-start:4px solid color-mix(in srgb, var(--yii-debug-hue,var(--yii-debug-panel-muted)) 76%, var(--yii-debug-panel-text));border-radius:var(--yii-debug-radius-lg);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-sm);overflow:hidden}.yii-debug .yii-debug-request-overview-header{gap:var(--yii-debug-space-4);padding:var(--yii-debug-space-4);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.yii-debug .yii-debug-request-overview-identity{min-width:0}.yii-debug .yii-debug-request-overview-label,.yii-debug .yii-debug-request-overview-status-label,.yii-debug .yii-debug-panel-heading-eyebrow{color:var(--yii-debug-panel-muted);letter-spacing:.09em;text-transform:uppercase;margin-bottom:5px;font-size:.6875rem;font-weight:700;line-height:1.2;display:block}.yii-debug .yii-debug-request-hero-line{align-items:center;gap:var(--yii-debug-space-2);min-width:0;font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-base);display:flex}.yii-debug .yii-debug-request-hero-method{border-radius:var(--yii-debug-radius-pill);letter-spacing:.04em;flex:none;padding:2px 10px;font-weight:700}.yii-debug .yii-debug-request-hero-url{min-width:0;color:var(--yii-debug-panel-text);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.yii-debug .yii-debug-request-hero-meta{align-items:center;gap:6px var(--yii-debug-space-3);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);flex-wrap:wrap;margin-top:6px;display:flex}.yii-debug .yii-debug-request-hero-meta:empty{display:none}.yii-debug .yii-debug-request-hero-meta-item{align-items:baseline;gap:var(--yii-debug-space-1);display:inline-flex}.yii-debug .yii-debug-request-hero-meta-label{font-family:var(--yii-debug-font-sans);letter-spacing:.07em;text-transform:uppercase;font-size:.625rem;font-weight:700}.yii-debug .yii-debug-request-hero-meta-value{color:var(--yii-debug-panel-text)}.yii-debug .yii-debug-request-overview-status{text-align:right;min-width:72px}.yii-debug .yii-debug-request-overview-status-value{font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-lg);letter-spacing:-.03em;padding:3px 9px;line-height:1.2}.yii-debug .yii-debug-request-overview-metrics{border-block:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto;margin:0;display:grid}.yii-debug .yii-debug-request-overview-metric{min-width:0;padding:var(--yii-debug-space-3) var(--yii-debug-space-4)}.yii-debug .yii-debug-request-overview-metric+:is(.yii-debug .yii-debug-request-overview-metric){border-inline-start:var(--yii-debug-border)}.yii-debug .yii-debug-request-overview-metric dt{color:var(--yii-debug-panel-muted);letter-spacing:.07em;text-transform:uppercase;margin-bottom:2px;font-size:.6875rem;font-weight:700}.yii-debug .yii-debug-request-overview-metric dd{align-items:center;gap:var(--yii-debug-space-2);min-width:0;color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);overflow-wrap:anywhere;flex-wrap:wrap;margin:0;font-weight:600;display:flex}.yii-debug .yii-debug-request-overview-meta{align-items:center;gap:var(--yii-debug-space-2) var(--yii-debug-space-5);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);flex-wrap:wrap;display:flex}.yii-debug .yii-debug-request-overview-config{align-items:center;gap:var(--yii-debug-space-2);flex-wrap:wrap;margin-inline-start:auto;display:inline-flex}.yii-debug .yii-debug-request-overview-meta-item{flex-direction:column;align-items:flex-start;min-width:0;display:inline-flex}.yii-debug .yii-debug-request-overview-meta-label{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-sans);letter-spacing:.07em;text-transform:uppercase;margin-bottom:2px;font-size:.6875rem;font-weight:700}.yii-debug .yii-debug-request-overview-tag{max-width:34ch;color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.yii-debug .yii-debug-request-overview-flag,.yii-debug .yii-debug-panel-heading-kind{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-pill);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);letter-spacing:.07em;text-transform:uppercase;padding:2px 8px;font-size:.625rem;font-weight:700;line-height:1.4}.yii-debug .yii-debug-request-routing-error{border-width:1px 0 0 4px;border-radius:0;margin:0}.yii-debug .yii-debug-request-routing-error p{margin:0}.yii-debug .yii-debug-request-tabs{min-width:0}.yii-debug .yii-debug-request-tabs>.yii-debug-tabs{scrollbar-width:thin;flex-wrap:nowrap;overflow-x:auto}.yii-debug .yii-debug-request-tabs .yii-debug-tab{flex:none}.yii-debug .yii-debug-request-tabs .yii-debug-empty-state{padding:var(--yii-debug-space-4)}.yii-debug .yii-debug-request-tabs .yii-debug-empty-state h2{font-size:var(--yii-debug-fs-base);margin:0}.yii-debug .yii-debug-diagnostic-shell{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-lg);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-sm);overflow:hidden}.yii-debug .yii-debug-diagnostic-header{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-4);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border-bottom:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);display:flex}.yii-debug .yii-debug-diagnostic-heading-copy{align-items:baseline;gap:var(--yii-debug-space-2) var(--yii-debug-space-3);flex-wrap:wrap;min-width:0;display:flex}.yii-debug .yii-debug-diagnostic-heading-copy h2{margin:0}.yii-debug .yii-debug-diagnostic-counts{align-items:center;gap:var(--yii-debug-space-2);display:inline-flex}.yii-debug .yii-debug-diagnostic-count,.yii-debug .yii-debug-diagnostic-total,.yii-debug .yii-debug-header-lane-count,.yii-debug .yii-debug-server-group-count{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);font-variant-numeric:tabular-nums}.yii-debug .yii-debug-diagnostic-count{align-items:baseline;gap:var(--yii-debug-space-1);display:inline-flex}.yii-debug .yii-debug-diagnostic-count+.yii-debug-diagnostic-count:before{width:1px;height:12px;background:var(--yii-debug-panel-border-strong);content:"";margin-inline-end:var(--yii-debug-space-1)}.yii-debug .yii-debug-diagnostic-count-value{color:var(--yii-debug-panel-text);font-weight:700}.yii-debug .yii-debug-diagnostic-filter{background:var(--yii-debug-panel-surface);width:min(280px,42%);max-width:none}.yii-debug .yii-debug-header-lanes{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.yii-debug .yii-debug-header-lane{min-width:0;position:relative}.yii-debug .yii-debug-header-lane+.yii-debug-header-lane{border-inline-start:2px solid color-mix(in srgb, var(--yii-debug-panel-primary) 36%, var(--yii-debug-panel-border))}.yii-debug .yii-debug-header-lane+.yii-debug-header-lane:before{z-index:1;top:25px;border:2px solid var(--yii-debug-panel-surface);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-primary);content:"";width:8px;height:8px;position:absolute;inset-inline-start:-5px}.yii-debug .yii-debug-header-lane-header{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-3);min-height:58px;padding:10px var(--yii-debug-space-4);border-bottom:var(--yii-debug-border);display:flex}.yii-debug .yii-debug-header-lane-header h3{font-size:var(--yii-debug-fs-base);margin:1px 0 0}.yii-debug .yii-debug-header-direction{color:var(--yii-debug-panel-primary-strong);font-family:var(--yii-debug-font-mono);letter-spacing:.04em;font-size:.6875rem;font-weight:700;display:block}.yii-debug .yii-debug-diagnostic-ledger{margin:0}.yii-debug .yii-debug-diagnostic-row{border-top:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 58%, transparent);grid-template-columns:minmax(132px,.72fr) minmax(0,1.28fr);align-items:start;display:grid}.yii-debug .yii-debug-diagnostic-row:first-child{border-top:0}.yii-debug .yii-debug-diagnostic-row:hover{background:var(--yii-debug-panel-surface-hover)}.yii-debug .yii-debug-diagnostic-row dt,.yii-debug .yii-debug-diagnostic-row dd{min-width:0;padding:10px var(--yii-debug-space-4);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);line-height:1.5}.yii-debug .yii-debug-diagnostic-row dt{color:var(--yii-debug-panel-muted);overflow-wrap:anywhere;font-weight:600;overflow:hidden}.yii-debug .yii-debug-diagnostic-row dd{border-inline-start:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 45%, transparent);color:var(--yii-debug-panel-text);overflow-wrap:anywhere;white-space:pre-wrap;margin:0}.yii-debug .yii-debug-header-ledger .yii-debug-diagnostic-row:nth-child(2n),.yii-debug .yii-debug-server-ledger .yii-debug-diagnostic-row:nth-child(2n){background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 72%)}:is(.yii-debug .yii-debug-header-ledger .yii-debug-diagnostic-row:nth-child(2n),.yii-debug .yii-debug-server-ledger .yii-debug-diagnostic-row:nth-child(2n)):hover{background:var(--yii-debug-panel-surface-hover)}.yii-debug .yii-debug-diagnostic-values{gap:6px;display:grid}.yii-debug .yii-debug-diagnostic-value-count{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-sans);font-size:.6875rem}.yii-debug .yii-debug-diagnostic-value-list{gap:var(--yii-debug-space-1);margin:0;padding:0;list-style:none;display:grid}.yii-debug .yii-debug-diagnostic-value-list li+li{padding-top:var(--yii-debug-space-1);border-top:1px dashed var(--yii-debug-panel-border)}.yii-debug .yii-debug-diagnostic-empty-value,.yii-debug .yii-debug-diagnostic-lane-empty,.yii-debug .yii-debug-diagnostic-empty-state,.yii-debug .yii-debug-diagnostic-filter-empty{color:var(--yii-debug-panel-muted);font-style:italic}.yii-debug .yii-debug-diagnostic-lane-empty,.yii-debug .yii-debug-diagnostic-empty-state,.yii-debug .yii-debug-diagnostic-filter-empty{padding:var(--yii-debug-space-4);margin:0}.yii-debug .yii-debug-diagnostic-filter-empty{border-top:var(--yii-debug-border);text-align:center}.yii-debug .yii-debug-server-group-body>.yii-debug-mini-toolbar{padding:var(--yii-debug-space-2) var(--yii-debug-space-4);border-bottom:var(--yii-debug-border);margin:0}.yii-debug .yii-debug-server-group-body>.yii-debug-mini-toolbar .yii-debug-filter-input{max-width:100%}.yii-debug .yii-debug-server-additional+.yii-debug-server-group,.yii-debug .yii-debug-server-group+.yii-debug-server-group{border-top:var(--yii-debug-border)}.yii-debug .yii-debug-server-group-summary{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-3);min-height:44px;padding:9px var(--yii-debug-space-4);border-bottom:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);display:flex}.yii-debug .yii-debug-server-group-summary .yii-debug-server-group-title{font-size:var(--yii-debug-fs-sm);margin:0;font-weight:700}.yii-debug .yii-debug-server-group-summary{cursor:pointer;list-style:none}.yii-debug .yii-debug-server-group-summary::-webkit-details-marker{display:none}.yii-debug .yii-debug-server-group-summary:hover,.yii-debug .yii-debug-server-group-summary:focus-visible{background:var(--yii-debug-panel-surface-hover)}.yii-debug .yii-debug-server-group-identity{align-items:baseline;gap:var(--yii-debug-space-2);display:inline-flex}.yii-debug .yii-debug-server-group:not([open])>.yii-debug-server-group-summary{border-bottom:0}.yii-debug .yii-debug-server-group-summary .yii-debug-disclosure-hint{margin-inline-start:auto}.yii-debug .yii-debug-diagnostic-row[hidden],.yii-debug .yii-debug-header-lane[hidden],.yii-debug .yii-debug-server-group[hidden],.yii-debug .yii-debug-diagnostic-filter-empty[hidden]{display:none}@container yii-debug-main (width<=900px){.yii-debug .yii-debug-header-lanes{grid-template-columns:minmax(0,1fr)}.yii-debug .yii-debug-header-lane+.yii-debug-header-lane{border-top:2px solid color-mix(in srgb, var(--yii-debug-panel-primary) 36%, var(--yii-debug-panel-border));border-inline-start:0}.yii-debug .yii-debug-header-lane+.yii-debug-header-lane:before{top:-5px;inset-inline-start:var(--yii-debug-space-4)}}@container yii-debug-main (width<=560px){.yii-debug .yii-debug-diagnostic-header{flex-direction:column;align-items:stretch}.yii-debug .yii-debug-diagnostic-filter{width:100%}.yii-debug .yii-debug-diagnostic-row{grid-template-columns:minmax(0,1fr)}.yii-debug .yii-debug-diagnostic-row dt{padding-bottom:var(--yii-debug-space-1)}.yii-debug .yii-debug-diagnostic-row dd{border-inline-start:0;padding-top:0}}.yii-debug .yii-debug-route-resolution{margin:var(--yii-debug-space-3) var(--yii-debug-space-4) var(--yii-debug-space-4)}.yii-debug .yii-debug-route-resolution-message{margin:0 0 var(--yii-debug-space-3);color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-sm)}.yii-debug .yii-debug-route-trace{min-width:560px}.yii-debug .yii-debug-table.yii-debug-route-trace thead th,.yii-debug .yii-debug-table.yii-debug-route-trace tbody td{text-align:center}.yii-debug .yii-debug-table.yii-debug-route-trace thead th:nth-child(2),.yii-debug .yii-debug-table.yii-debug-route-trace tbody td:nth-child(2){text-align:start}.yii-debug .yii-debug-table.yii-debug-route-trace thead th:first-child,.yii-debug .yii-debug-table.yii-debug-route-trace tbody td:first-child{width:56px}.yii-debug .yii-debug-table.yii-debug-route-trace thead th:last-child,.yii-debug .yii-debug-table.yii-debug-route-trace tbody td:last-child{width:160px}.yii-debug .yii-debug-panel-heading{justify-content:space-between;align-items:flex-end;gap:var(--yii-debug-space-3);margin:var(--yii-debug-space-5) 0 var(--yii-debug-space-3);padding-bottom:var(--yii-debug-space-2);border-bottom:var(--yii-debug-border);display:flex}.yii-debug .yii-debug-panel-heading-copy{min-width:0}.yii-debug .yii-debug-panel-heading-copy h2{margin:0}.yii-debug .yii-debug-panel-heading-kind{flex:none;margin-bottom:2px}.yii-debug pre.yii-debug-panel-payload{min-height:180px;padding:var(--yii-debug-space-4);border:var(--yii-debug-border);background:linear-gradient(90deg, color-mix(in srgb, var(--yii-debug-panel-primary), transparent 88%), transparent 42%), var(--yii-debug-panel-code-bg);margin-bottom:0;line-height:1.55}@media (max-width:640px){.yii-debug .yii-debug-request-overview-header{gap:var(--yii-debug-space-3);grid-template-columns:minmax(0,1fr)}.yii-debug .yii-debug-request-overview-status{align-items:center;gap:var(--yii-debug-space-2);text-align:left;display:flex}.yii-debug .yii-debug-request-overview-status-label{margin:0}.yii-debug .yii-debug-request-overview-metrics{grid-template-columns:1fr}.yii-debug .yii-debug-request-overview-metric+.yii-debug-request-overview-metric{border-block-start:var(--yii-debug-border);border-inline-start:0}.yii-debug .yii-debug-request-overview-meta-item{max-width:100%}.yii-debug .yii-debug-panel-heading{align-items:flex-start}}.yii-debug .yii-debug-section-header{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-3);margin:var(--yii-debug-space-4) 0 var(--yii-debug-space-2);display:flex}.yii-debug .yii-debug-section-header h2,.yii-debug .yii-debug-section-header h3{margin:0}.yii-debug .yii-debug-filter-input{width:240px;max-width:50%;padding:4px var(--yii-debug-space-2);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);color:var(--yii-debug-panel-text);font:inherit;flex:none}.yii-debug .yii-debug-filter-input::placeholder{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-filter-input:focus{border-color:var(--yii-debug-panel-primary)}.yii-debug .yii-debug-stack>*+*{margin-top:var(--yii-debug-space-4)}.yii-debug .yii-debug-grid-2{gap:var(--yii-debug-space-4);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.yii-debug .yii-debug-card{padding:var(--yii-debug-panel-padding);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-lg);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-md)}.yii-debug .yii-debug-nav{padding:var(--yii-debug-space-2);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-lg);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-sm);margin:0}.yii-debug .yii-debug-nav ul{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.yii-debug .yii-debug-nav-group{margin-top:var(--yii-debug-space-3)}.yii-debug .yii-debug-nav-group>.yii-debug-nav{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.yii-debug .yii-debug-nav-link{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-2);border-radius:var(--yii-debug-radius-md);color:var(--yii-debug-panel-text);padding:8px 12px;font-weight:600;text-decoration:none;transition:background .12s,color .12s;display:flex}.yii-debug .yii-debug-nav-link:after{content:"›";color:var(--yii-debug-panel-muted);font-size:1.1em;line-height:1}.yii-debug .yii-debug-nav-link:hover,.yii-debug .yii-debug-nav-link:focus{background:var(--yii-debug-panel-surface-hover);color:var(--yii-debug-panel-text);text-decoration:none}.yii-debug .yii-debug-nav-link.is-active,.yii-debug .yii-debug-nav-link[aria-current=page]{background:var(--yii-debug-primary-bg);color:var(--yii-debug-on-primary)}:is(.yii-debug .yii-debug-nav-link.is-active,.yii-debug .yii-debug-nav-link[aria-current=page]):after{color:inherit}.yii-debug .yii-debug-btn{justify-content:center;align-items:center;gap:var(--yii-debug-space-1);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface);min-height:32px;color:var(--yii-debug-panel-text);font-family:inherit;font-size:var(--yii-debug-fs-sm);letter-spacing:0;text-transform:none;cursor:pointer;padding:6px 14px;font-weight:600;line-height:1;text-decoration:none;transition:border-color .12s,background .12s,color .12s,transform .12s,box-shadow .12s;display:inline-flex}.yii-debug .yii-debug-btn:hover,.yii-debug .yii-debug-btn:focus{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 30%);background:var(--yii-debug-panel-surface-hover);color:var(--yii-debug-panel-link-hover);text-decoration:none;transform:translateY(-1px)}.yii-debug .yii-debug-btn:active{transform:translateY(0)}.yii-debug .yii-debug-btn[disabled],.yii-debug .yii-debug-btn.is-disabled{opacity:.55;pointer-events:none;transform:none}.yii-debug .yii-debug-btn-primary{background:var(--yii-debug-primary-bg);color:var(--yii-debug-on-primary);border-color:#0000}.yii-debug .yii-debug-btn-primary:is(:hover,:focus){background:var(--yii-debug-panel-primary-strong);color:var(--yii-debug-on-primary)}.yii-debug .yii-debug-btn-ghost{border-color:var(--yii-debug-panel-border);background:0 0}.yii-debug .yii-debug-btn-subtle{background:var(--yii-debug-panel-surface-muted);border-color:#0000}.yii-debug .yii-debug-btn-sm{min-height:28px;font-size:var(--yii-debug-fs-xs);padding:4px 10px}.yii-debug .yii-debug-btn-group{gap:var(--yii-debug-space-1);flex-wrap:wrap;display:inline-flex}.yii-debug .yii-debug-badge{border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-text);font-size:var(--yii-debug-fs-xs);letter-spacing:.01em;align-items:center;padding:2px 10px;font-weight:600;line-height:1.4;display:inline-flex}.yii-debug .yii-debug-badge-success{background:var(--yii-debug-success);color:var(--yii-debug-on-success)}.yii-debug .yii-debug-badge-info{background:var(--yii-debug-info);color:var(--yii-debug-on-info)}.yii-debug .yii-debug-badge-warning{background:var(--yii-debug-warning);color:var(--yii-debug-on-warning)}.yii-debug .yii-debug-badge-danger{background:var(--yii-debug-danger);color:var(--yii-debug-on-danger)}.yii-debug .yii-debug-badge-muted{background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-verb-get{--yii-debug-hue:var(--yii-debug-verb-get)}.yii-debug .yii-debug-verb-post{--yii-debug-hue:var(--yii-debug-verb-post)}.yii-debug .yii-debug-verb-put{--yii-debug-hue:var(--yii-debug-verb-put)}.yii-debug .yii-debug-verb-delete{--yii-debug-hue:var(--yii-debug-verb-delete)}.yii-debug .yii-debug-verb-other{--yii-debug-hue:var(--yii-debug-verb-other)}.yii-debug .yii-debug-status-2xx{--yii-debug-hue:var(--yii-debug-status-2xx)}.yii-debug .yii-debug-status-3xx{--yii-debug-hue:var(--yii-debug-status-3xx)}.yii-debug .yii-debug-status-4xx{--yii-debug-hue:var(--yii-debug-status-4xx)}.yii-debug .yii-debug-status-5xx{--yii-debug-hue:var(--yii-debug-status-5xx)}.yii-debug .yii-debug-status-none{--yii-debug-hue:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-level-error{--yii-debug-hue:var(--yii-debug-level-error)}.yii-debug .yii-debug-level-warning{--yii-debug-hue:var(--yii-debug-level-warning)}.yii-debug .yii-debug-level-info{--yii-debug-hue:var(--yii-debug-level-info)}.yii-debug .yii-debug-level-trace{--yii-debug-hue:var(--yii-debug-level-trace)}.yii-debug .yii-debug-level-profile{--yii-debug-hue:var(--yii-debug-level-profile)}.yii-debug .yii-debug-level-other{--yii-debug-hue:var(--yii-debug-level-other)}.yii-debug .yii-debug-request-hero-method,.yii-debug .yii-debug-snapshot-status,.yii-debug .yii-debug-level-chip,.yii-debug .yii-debug-db-type,.yii-debug .yii-debug-dump-type,.yii-debug .yii-debug-badge:is(.yii-debug-status-2xx,.yii-debug-status-3xx,.yii-debug-status-4xx,.yii-debug-status-5xx,.yii-debug-status-none){border:1px solid color-mix(in srgb, var(--yii-debug-hue,var(--yii-debug-panel-muted)), transparent 65%);background:color-mix(in srgb, var(--yii-debug-hue,var(--yii-debug-panel-muted)), transparent 90%);color:color-mix(in srgb, var(--yii-debug-hue,var(--yii-debug-panel-muted)) 80%, var(--yii-debug-panel-text))}.yii-debug .yii-debug-method{color:color-mix(in srgb, var(--yii-debug-hue,var(--yii-debug-panel-muted)) 80%, var(--yii-debug-panel-text));font-family:var(--yii-debug-font-mono);letter-spacing:.02em;font-weight:700}.yii-debug .yii-debug-level-chip{border-radius:var(--yii-debug-radius-pill);font-family:var(--yii-debug-font-mono);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;padding:1px 8px;font-size:.7rem;font-weight:700;display:inline-block}.yii-debug .yii-debug-callout{align-items:flex-start;gap:var(--yii-debug-space-2);margin-bottom:var(--yii-debug-space-3);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border:var(--yii-debug-border);border-left:4px solid var(--yii-debug-panel-border-strong);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-text);display:flex}.yii-debug .yii-debug-callout-info{border-left-color:var(--yii-debug-info)}.yii-debug .yii-debug-callout-success{border-left-color:var(--yii-debug-success)}.yii-debug .yii-debug-callout-warning{border-left-color:var(--yii-debug-warning)}.yii-debug .yii-debug-callout-danger{border-left-color:var(--yii-debug-danger)}.yii-debug .yii-debug-table-wrap{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-lg);background:var(--yii-debug-panel-surface);overflow-x:auto}.yii-debug .yii-debug-table{border-collapse:separate;border-spacing:0;width:100%;min-width:640px;color:var(--yii-debug-panel-text);font-size:var(--yii-debug-fs-sm);background:0 0;margin:0}.yii-debug .yii-debug-table thead th,.yii-debug .yii-debug-table thead td{border-bottom:var(--yii-debug-border);background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 20%);color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);letter-spacing:.03em;text-align:left;text-transform:uppercase;vertical-align:middle;padding:10px 12px;font-weight:700}.yii-debug .yii-debug-table thead th a{color:var(--yii-debug-panel-link);font-weight:700;text-decoration:none}.yii-debug .yii-debug-table thead th a:hover,.yii-debug .yii-debug-table thead th a:focus{color:var(--yii-debug-panel-link-hover);text-decoration:none}.yii-debug .yii-debug-table tbody td,.yii-debug .yii-debug-table tbody th{padding:var(--yii-debug-row-padding-block) 12px;border-top:1px solid var(--yii-debug-panel-border);vertical-align:top;overflow-wrap:anywhere}.yii-debug .yii-debug-table tbody th{white-space:nowrap}.yii-debug .yii-debug-table tbody tr:first-child td,.yii-debug .yii-debug-table tbody tr:first-child th{border-top:0}.yii-debug .yii-debug-table tbody tr:nth-child(2n) td,.yii-debug .yii-debug-table tbody tr:nth-child(2n) th{background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 50%)}.yii-debug .yii-debug-table tbody tr:hover td,.yii-debug .yii-debug-table tbody tr:hover th{background:var(--yii-debug-panel-surface-hover)}.yii-debug .yii-debug-table tfoot td{border-top:var(--yii-debug-border);color:var(--yii-debug-panel-muted);padding:10px 12px}.yii-debug .yii-debug-row-success td,.yii-debug .yii-debug-row-success th{background:color-mix(in srgb, var(--yii-debug-success), var(--yii-debug-panel-surface) 86%)!important}.yii-debug .yii-debug-row-info td,.yii-debug .yii-debug-row-info th{background:color-mix(in srgb, var(--yii-debug-info), var(--yii-debug-panel-surface) 86%)!important}.yii-debug .yii-debug-row-warning td,.yii-debug .yii-debug-row-warning th{background:color-mix(in srgb, var(--yii-debug-warning), var(--yii-debug-panel-surface) 86%)!important}.yii-debug .yii-debug-row-danger td,.yii-debug .yii-debug-row-danger th{background:color-mix(in srgb, var(--yii-debug-danger), var(--yii-debug-panel-surface) 86%)!important}.yii-debug .yii-debug-grid{margin-bottom:var(--yii-debug-space-4)}.yii-debug .yii-debug-grid>.summary{margin:0 0 var(--yii-debug-space-2);padding:0 var(--yii-debug-space-1);color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-sm)}.yii-debug .yii-debug-grid>.summary b{color:var(--yii-debug-panel-text);font-weight:700}.yii-debug .yii-debug-grid>.empty{padding:var(--yii-debug-space-5);color:var(--yii-debug-panel-muted);text-align:center;font-style:italic}.yii-debug .yii-debug-grid td.yii-debug-cell-nowrap,.yii-debug .yii-debug-grid td.yii-debug-cell-numeric,.yii-debug .yii-debug-grid td.yii-debug-cell-pill,.yii-debug .yii-debug-table td.yii-debug-cell-nowrap,.yii-debug .yii-debug-table td.yii-debug-cell-numeric,.yii-debug .yii-debug-table td.yii-debug-cell-pill{white-space:nowrap}.yii-debug .yii-debug-grid td.yii-debug-cell-fqcn{overflow-wrap:normal}.yii-debug .yii-debug-disclosure{margin-bottom:var(--yii-debug-space-5);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-lg);background:var(--yii-debug-panel-surface);overflow:hidden}.yii-debug .yii-debug-disclosure[open]>.yii-debug-disclosure-summary{border-bottom:var(--yii-debug-border)}.yii-debug .yii-debug-disclosure-summary{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-3);padding:10px var(--yii-debug-space-4);cursor:pointer;list-style:none;transition:background-color .12s;display:flex}.yii-debug .yii-debug-disclosure-summary::-webkit-details-marker{display:none}.yii-debug .yii-debug-disclosure-summary:hover,.yii-debug .yii-debug-disclosure-summary:focus-visible{background:var(--yii-debug-panel-surface-hover)}.yii-debug .yii-debug-disclosure-title,.yii-debug .yii-debug-request-section-title,.yii-debug .yii-debug-diagnostic-heading-copy h2{color:var(--yii-debug-panel-primary-strong);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:700}.yii-debug .yii-debug-disclosure-hint{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.06em;text-transform:uppercase;transition:color .12s}.yii-debug .yii-debug-disclosure-hint [data-yii-debug-hint=expanded]{display:none}.yii-debug .yii-debug-disclosure-summary:hover .yii-debug-disclosure-hint,.yii-debug .yii-debug-disclosure-summary:focus-visible .yii-debug-disclosure-hint{color:var(--yii-debug-panel-link)}.yii-debug details[open]>summary .yii-debug-disclosure-hint [data-yii-debug-hint=collapsed]{display:none}.yii-debug details[open]>summary .yii-debug-disclosure-hint [data-yii-debug-hint=expanded]{display:inline}.yii-debug .yii-debug-disclosure-body{padding:var(--yii-debug-space-4)}.yii-debug .yii-debug-disclosure-body>pre{overflow-wrap:anywhere;color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);white-space:pre-wrap;margin:0;line-height:1.6}.yii-debug .yii-debug-cell-more-body{max-height:156px;position:relative;overflow:hidden}.yii-debug .yii-debug-cell-more-body:has(.yii-debug-table){max-height:420px}.yii-debug .yii-debug-cell-more-body:after{content:"";background:linear-gradient(to bottom, transparent, var(--yii-debug-panel-surface));pointer-events:none;height:32px;position:absolute;inset:auto 0 0}.yii-debug .yii-debug-cell-more.is-open .yii-debug-cell-more-body{max-height:none}.yii-debug .yii-debug-cell-more.is-open .yii-debug-cell-more-body:after{content:none}.yii-debug .yii-debug-cell-more-toggle{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);color:var(--yii-debug-panel-link);font-family:inherit;font-size:var(--yii-debug-fs-xs);cursor:pointer;background:0 0;align-items:center;margin-top:6px;padding:2px 10px;font-weight:600;display:inline-flex}.yii-debug .yii-debug-cell-more-toggle:before{content:"";width:1.25em;height:1.25em;margin-right:var(--yii-debug-space-1);background:linear-gradient(currentcolor, currentcolor) center / 8px 2px no-repeat, linear-gradient(currentcolor, currentcolor) center / 2px 8px no-repeat, var(--yii-debug-panel-bg-accent);border-radius:50%;display:inline-block}.yii-debug .yii-debug-cell-more.is-open .yii-debug-cell-more-toggle:before{background:linear-gradient(currentcolor, currentcolor) center / 8px 2px no-repeat, var(--yii-debug-panel-bg-accent)}.yii-debug .yii-debug-cell-more-toggle:hover,.yii-debug .yii-debug-cell-more-toggle:focus{background:var(--yii-debug-panel-bg-accent);border-color:var(--yii-debug-panel-primary);text-decoration:none}.yii-debug .yii-debug-grid td.yii-debug-cell-mono{font-family:var(--yii-debug-font-mono)}.yii-debug td.yii-debug-cell-payload{overflow-wrap:anywhere;width:100%}.yii-debug .yii-debug-grid td.yii-debug-cell-numeric{font-variant-numeric:tabular-nums;text-align:right}.yii-debug a.asc:after,.yii-debug a.desc:after,.yii-debug .yii-debug-sort-asc:after,.yii-debug .yii-debug-sort-desc:after{content:"↑";opacity:.78;margin-left:4px;font-size:.85em}.yii-debug a.desc:after,.yii-debug .yii-debug-sort-desc:after{content:"↓"}.yii-debug .yii-debug-pager{gap:var(--yii-debug-space-1);margin:var(--yii-debug-space-3) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.yii-debug .yii-debug-pager-item{display:inline-flex}.yii-debug .yii-debug-pager-link,.yii-debug .yii-debug-pager>li>:is(a,span){border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface);min-width:40px;min-height:40px;color:var(--yii-debug-panel-link);font-size:var(--yii-debug-fs-sm);justify-content:center;align-items:center;padding:0 10px;font-weight:600;text-decoration:none;transition:border-color .12s,background .12s,color .12s;display:inline-flex}:is(.yii-debug .yii-debug-pager-link,.yii-debug .yii-debug-pager>li>:is(a,span)):hover,:is(.yii-debug .yii-debug-pager-link,.yii-debug .yii-debug-pager>li>:is(a,span)):focus{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 30%);background:var(--yii-debug-panel-surface-hover);color:var(--yii-debug-panel-link-hover);text-decoration:none}.yii-debug .yii-debug-pager-item.is-active .yii-debug-pager-link{background:var(--yii-debug-primary-bg);color:var(--yii-debug-on-primary);cursor:default;border-color:#0000}.yii-debug .yii-debug-pager-item.is-disabled .yii-debug-pager-link{background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted);cursor:not-allowed;pointer-events:none}.yii-debug .yii-debug-field{margin-bottom:var(--yii-debug-space-3);flex-direction:column;gap:4px;display:flex}.yii-debug .yii-debug-field-grid{gap:var(--yii-debug-space-3) var(--yii-debug-space-4);margin-bottom:var(--yii-debug-space-3);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.yii-debug .yii-debug-label{color:var(--yii-debug-panel-text);font-size:var(--yii-debug-fs-sm);font-weight:600}.yii-debug .yii-debug-input,.yii-debug .yii-debug-select,.yii-debug .yii-debug-textarea{border:1px solid var(--yii-debug-panel-border-strong);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);width:100%;min-height:32px;color:var(--yii-debug-panel-text);font-family:inherit;font-size:var(--yii-debug-fs-sm);padding:6px 10px;transition:border-color .12s,box-shadow .12s}:is(.yii-debug .yii-debug-input,.yii-debug .yii-debug-select,.yii-debug .yii-debug-textarea):hover{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), var(--yii-debug-panel-border-strong) 60%)}:is(.yii-debug .yii-debug-input,.yii-debug .yii-debug-select,.yii-debug .yii-debug-textarea):focus{border-color:var(--yii-debug-panel-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--yii-debug-panel-primary), transparent 82%)}:is(.yii-debug .yii-debug-input,.yii-debug .yii-debug-select,.yii-debug .yii-debug-textarea)::placeholder{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-textarea{resize:vertical;min-height:96px;line-height:1.45}.yii-debug .yii-debug-grid .filters td{border-bottom:var(--yii-debug-border);background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 30%);padding:6px 12px}.yii-debug .yii-debug-grid .filters input,.yii-debug .yii-debug-grid .filters select,.yii-debug .yii-debug-grid .filters textarea{border:1px solid var(--yii-debug-panel-border-strong);border-radius:var(--yii-debug-radius-sm);background:var(--yii-debug-panel-surface);width:100%;min-width:0;min-height:28px;color:var(--yii-debug-panel-text);font:inherit;font-size:var(--yii-debug-fs-xs);padding:4px 8px}:is(.yii-debug .yii-debug-grid .filters input,.yii-debug .yii-debug-grid .filters select,.yii-debug .yii-debug-grid .filters textarea):focus{border-color:var(--yii-debug-panel-primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--yii-debug-panel-primary), transparent 84%)}.yii-debug .yii-debug-tabs{gap:var(--yii-debug-space-1);margin:0 0 var(--yii-debug-space-3);border-bottom:var(--yii-debug-border);flex-wrap:wrap;padding:0;list-style:none;display:flex}.yii-debug .yii-debug-tab{display:inline-flex}.yii-debug .yii-debug-tab-link{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-sm);border-bottom:2px solid #0000;align-items:center;padding:8px 14px;font-weight:600;text-decoration:none;transition:color .12s,border-color .12s;display:inline-flex}.yii-debug .yii-debug-tab-link:hover,.yii-debug .yii-debug-tab-link:focus{color:var(--yii-debug-panel-text);text-decoration:none}.yii-debug .yii-debug-tab.is-active .yii-debug-tab-link,.yii-debug .yii-debug-tab-link.is-active{border-bottom-color:var(--yii-debug-panel-primary);color:var(--yii-debug-panel-text)}.yii-debug .yii-debug-tab-panel{padding:var(--yii-debug-space-3) 0 0;display:none}.yii-debug .yii-debug-tab-panel.is-active{display:block}.yii-debug .yii-debug-collapsible{margin-top:var(--yii-debug-space-3);display:none}.yii-debug .yii-debug-collapsible.is-open{display:block}.yii-debug .yii-debug-dropdown{display:inline-block;position:relative}.yii-debug .yii-debug-dropdown-menu{z-index:100;border:var(--yii-debug-border-strong);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);min-width:220px;box-shadow:var(--yii-debug-shadow-md);margin:0;padding:4px;list-style:none;display:none;position:absolute;top:calc(100% + 4px);left:0}.yii-debug .yii-debug-dropdown.is-open .yii-debug-dropdown-menu{display:block}.yii-debug .yii-debug-dropdown-item{border-radius:var(--yii-debug-radius-sm);color:var(--yii-debug-panel-text);font-size:var(--yii-debug-fs-sm);padding:6px 10px;text-decoration:none;display:block}.yii-debug .yii-debug-dropdown-item:hover,.yii-debug .yii-debug-dropdown-item:focus{background:var(--yii-debug-panel-surface-hover);color:var(--yii-debug-panel-link-hover);text-decoration:none}.yii-debug .yii-debug-since-previous{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.yii-debug .yii-debug-since-previous .yii-debug-since-previous-btn{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-sm);background:var(--yii-debug-panel-surface);min-width:24px;height:24px;color:var(--yii-debug-panel-link);font-size:var(--yii-debug-fs-xs);justify-content:center;align-items:center;padding:0 6px;font-weight:700;text-decoration:none;display:inline-flex}.yii-debug .yii-debug-table-mono{min-width:0}.yii-debug .yii-debug-table-mono thead th{z-index:1;background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 10%);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-xs);letter-spacing:.12em;padding:8px 16px;position:sticky;top:0}.yii-debug .yii-debug-table-mono tbody tr{transition:background-color .14s}.yii-debug .yii-debug-table-mono tbody tr:hover td,.yii-debug .yii-debug-table-mono tbody tr:hover th{background:var(--yii-debug-panel-surface-hover)}.yii-debug .yii-debug-table-mono tbody tr:hover th{box-shadow:inset 3px 0 0 var(--yii-debug-panel-primary);color:var(--yii-debug-panel-text)}.yii-debug .yii-debug-table-mono tbody th,.yii-debug .yii-debug-table-mono tbody td{font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);padding:12px 16px;line-height:1.55}.yii-debug .yii-debug-table-mono tbody th{width:1%;min-width:120px;max-width:220px;color:var(--yii-debug-panel-muted);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;font-weight:500;transition:color .14s,box-shadow .14s;overflow:hidden}.yii-debug .yii-debug-table-mono tbody td{color:var(--yii-debug-panel-text);word-break:normal;overflow-wrap:anywhere}.yii-debug .yii-debug-table-mono tbody tr+tr td,.yii-debug .yii-debug-table-mono tbody tr+tr th{border-top:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 55%, transparent)}.yii-debug .yii-debug-table-mono tbody tr:nth-child(2n) td,.yii-debug .yii-debug-table-mono tbody tr:nth-child(2n) th{background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 70%)}.yii-debug .yii-debug-table-overview tbody th{width:200px;min-width:160px;max-width:200px}.yii-debug .yii-debug-panel-group+.yii-debug-panel-group{margin-top:var(--yii-debug-space-6)}.yii-debug .yii-debug-table-wrap:has(>.yii-debug-table-mono){border-radius:var(--yii-debug-radius-md);box-shadow:var(--yii-debug-shadow-sm), inset 0 0 0 1px color-mix(in srgb, var(--yii-debug-panel-border) 60%, transparent);overflow:clip}.yii-debug .yii-debug-table-mono{min-width:0}.yii-debug .yii-debug-table-mono tbody th{overflow-wrap:anywhere;white-space:normal}.yii-debug .yii-debug-table-userswitch{width:auto;min-width:100%}.yii-debug .yii-debug-table-userswitch thead th,.yii-debug .yii-debug-table-userswitch tbody td,.yii-debug .yii-debug-table-userswitch tbody th{overflow-wrap:normal;white-space:nowrap}.yii-debug .yii-debug-table-userswitch tbody tr.filters td input{width:100%;min-width:0}.yii-debug .yii-debug-col-userswitch-id{font-variant-numeric:tabular-nums;min-width:10ch}.yii-debug .yii-debug-col-userswitch-username{min-width:14ch}.yii-debug .yii-debug-col-userswitch-email{min-width:24ch}.yii-debug .yii-debug-col-userswitch-status{text-align:center;min-width:8ch}.yii-debug .yii-debug-col-userswitch-timestamp{font-variant-numeric:tabular-nums;min-width:18ch}.yii-debug .yii-debug-table-pointer tbody tr{cursor:pointer;transition:background-color .12s}.yii-debug .yii-debug-table-pointer tbody tr:hover{background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 86%)}.yii-debug .yii-debug-timeline-duration{margin:0 0 var(--yii-debug-space-3);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);letter-spacing:.04em}.yii-debug .yii-debug-user{gap:var(--yii-debug-space-3);flex-direction:column;display:flex}.yii-debug .yii-debug-user-card{gap:var(--yii-debug-space-4);padding:var(--yii-debug-space-4) var(--yii-debug-space-5);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-lg);background:radial-gradient(circle at top right, color-mix(in srgb, var(--yii-debug-panel-primary), transparent 80%), transparent 60%), var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-sm);grid-template-columns:auto 1fr;align-items:center;display:grid;position:relative;overflow:hidden}.yii-debug .yii-debug-user-avatar{background:linear-gradient(135deg, var(--yii-debug-panel-primary), var(--yii-debug-info));width:64px;height:64px;box-shadow:0 4px 12px color-mix(in srgb, var(--yii-debug-panel-primary), transparent 50%), inset 0 1px 0 #ffffff38;color:#fff;font-family:var(--yii-debug-font-mono);letter-spacing:-.02em;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:28px;font-weight:700;display:inline-flex}.yii-debug .yii-debug-user-meta{flex-direction:column;gap:4px;min-width:0;display:flex}.yii-debug .yii-debug-user-name{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xl);letter-spacing:-.01em;margin:0;font-weight:700;line-height:1.2}.yii-debug .yii-debug-user-handle{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);margin:0}.yii-debug .yii-debug-user-tags{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.yii-debug .yii-debug-user-status{border-radius:var(--yii-debug-radius-pill);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:6px;padding:4px 12px 4px 8px;font-weight:700;display:inline-flex}.yii-debug .yii-debug-user-status:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.yii-debug .yii-debug-user-status-success{background:color-mix(in srgb, var(--yii-debug-success), transparent 84%);color:var(--yii-debug-success)}.yii-debug .yii-debug-user-status-success:before{box-shadow:0 0 0 0 color-mix(in srgb, var(--yii-debug-success), transparent 30%);animation:2.4s ease-in-out infinite yii-debug-user-pulse}.yii-debug .yii-debug-user-status-danger{background:color-mix(in srgb, var(--yii-debug-danger), transparent 84%);color:var(--yii-debug-danger)}.yii-debug .yii-debug-user-status-warning{background:color-mix(in srgb, var(--yii-debug-warning), transparent 84%);color:var(--yii-debug-warning)}.yii-debug .yii-debug-user-status-muted{background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-user-pill{border:1px solid var(--yii-debug-panel-border);border-radius:var(--yii-debug-radius-pill);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.04em;align-items:center;padding:4px 10px;display:inline-flex}.yii-debug .yii-debug-user-section{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);overflow:hidden}.yii-debug .yii-debug-user-section>header{padding:10px var(--yii-debug-space-3);border-bottom:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-xs);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:10px;font-weight:700;display:flex}.yii-debug .yii-debug-user-section dl{margin:0;padding:0}.yii-debug .yii-debug-user-section-icon{width:18px;height:18px;color:var(--yii-debug-panel-primary);justify-content:center;align-items:center;display:inline-flex}.yii-debug .yii-debug-user-section-icon svg{width:100%;height:100%}.yii-debug .yii-debug-user-row{gap:var(--yii-debug-space-3);padding:12px var(--yii-debug-space-3);border-bottom:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 50%, transparent);grid-template-columns:minmax(140px,22%) 1fr;display:grid}.yii-debug .yii-debug-user-row:last-child{border-bottom:0}.yii-debug .yii-debug-user-row dt{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.02em;align-self:center}.yii-debug .yii-debug-user-row dd{min-width:0;margin:0}.yii-debug .yii-debug-user-value{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);word-break:break-all}.yii-debug .yii-debug-user-empty{color:color-mix(in srgb, var(--yii-debug-panel-muted), transparent 35%);font-family:var(--yii-debug-font-mono)}.yii-debug .yii-debug-user-time{font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);align-items:baseline;gap:10px;display:inline-flex}.yii-debug .yii-debug-user-time .yii-debug-user-time-rel{color:var(--yii-debug-panel-text);font-weight:600}.yii-debug .yii-debug-user-time .yii-debug-user-time-abs{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs)}.yii-debug .yii-debug-user-reveal{border:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 80%, transparent);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-text);font:inherit;cursor:pointer;text-align:left;align-items:center;gap:12px;padding:6px 6px 6px 14px;transition:border-color .14s,background .14s;display:inline-flex}.yii-debug .yii-debug-user-reveal:hover,.yii-debug .yii-debug-user-reveal:focus{border-color:var(--yii-debug-panel-primary)}.yii-debug .yii-debug-user-reveal .yii-debug-user-mask,.yii-debug .yii-debug-user-reveal .yii-debug-user-real{font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm)}.yii-debug .yii-debug-user-reveal .yii-debug-user-mask{letter-spacing:.1em;color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-user-reveal .yii-debug-user-real{overflow-wrap:anywhere;max-width:60ch;color:var(--yii-debug-panel-text);display:none}.yii-debug .yii-debug-user-reveal .yii-debug-user-reveal-cta{border-radius:var(--yii-debug-radius-pill);background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 80%);color:var(--yii-debug-panel-primary);font-size:var(--yii-debug-fs-xs);letter-spacing:.08em;text-transform:uppercase;flex:none;padding:3px 10px;font-weight:700}.yii-debug .yii-debug-user-reveal .yii-debug-user-reveal-cta:before{content:"Reveal"}.yii-debug .yii-debug-user-reveal.is-revealed .yii-debug-user-mask{display:none}.yii-debug .yii-debug-user-reveal.is-revealed .yii-debug-user-real{display:inline}.yii-debug .yii-debug-user-reveal.is-revealed .yii-debug-user-reveal-cta{background:color-mix(in srgb, var(--yii-debug-warning), transparent 84%);color:var(--yii-debug-warning)}.yii-debug .yii-debug-user-reveal.is-revealed .yii-debug-user-reveal-cta:before{content:"Hide"}.yii-debug .yii-debug-sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.yii-debug .yii-debug-table-empty{padding:var(--yii-debug-space-4);border:1px dashed color-mix(in srgb, var(--yii-debug-panel-border) 70%, transparent);border-radius:var(--yii-debug-radius-md);background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 40%);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.04em;text-transform:uppercase;justify-content:center;align-items:center;gap:10px;margin:0;display:flex}.yii-debug .yii-debug-table-empty:before{content:"";opacity:.5;border:1.5px solid;border-radius:50%;width:8px;height:8px}.yii-debug .yii-debug-grid-summary{align-items:center;gap:var(--yii-debug-space-3);margin-bottom:var(--yii-debug-space-3);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);color:var(--yii-debug-panel-text);font-size:var(--yii-debug-fs-sm);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;display:flex}.yii-debug .yii-debug-grid-summary strong{color:var(--yii-debug-panel-primary-strong);letter-spacing:0;text-transform:none;margin-right:.35em;font-weight:700}.yii-debug .yii-debug-grid-summary-sep{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-grid-summary-stat-warn{--yii-debug-hue:var(--yii-debug-level-warning)}.yii-debug .yii-debug-grid-summary-stat-danger{--yii-debug-hue:var(--yii-debug-level-error)}.yii-debug .yii-debug-grid-summary-stat-info{--yii-debug-hue:var(--yii-debug-level-info)}.yii-debug .yii-debug-grid-summary-stat-trace{--yii-debug-hue:var(--yii-debug-level-trace)}.yii-debug .yii-debug-grid-summary-stat-warn strong{color:var(--yii-debug-warning)}.yii-debug .yii-debug-grid-summary-stat-danger strong{color:var(--yii-debug-danger)}.yii-debug .yii-debug-grid-summary-stat-2xx{--yii-debug-hue:var(--yii-debug-status-2xx)}.yii-debug .yii-debug-grid-summary-stat-3xx{--yii-debug-hue:var(--yii-debug-status-3xx)}.yii-debug .yii-debug-grid-summary-stat-4xx{--yii-debug-hue:var(--yii-debug-status-4xx)}.yii-debug .yii-debug-grid-summary-stat-5xx{--yii-debug-hue:var(--yii-debug-status-5xx)}.yii-debug a:is(.yii-debug-grid-summary-stat-danger,.yii-debug-grid-summary-stat-warn,.yii-debug-grid-summary-stat-info,.yii-debug-grid-summary-stat-trace,.yii-debug-grid-summary-stat-2xx,.yii-debug-grid-summary-stat-3xx,.yii-debug-grid-summary-stat-4xx,.yii-debug-grid-summary-stat-5xx){border:1px solid color-mix(in srgb, var(--yii-debug-hue), transparent 65%);border-radius:var(--yii-debug-radius-pill);background:color-mix(in srgb, var(--yii-debug-hue), transparent 90%);color:color-mix(in srgb, var(--yii-debug-hue) 80%, var(--yii-debug-panel-text));align-items:center;gap:6px;padding:2px 10px;text-decoration:none;transition:transform .14s,background-color .14s;display:inline-flex}.yii-debug a:is(.yii-debug-grid-summary-stat-danger,.yii-debug-grid-summary-stat-warn,.yii-debug-grid-summary-stat-info,.yii-debug-grid-summary-stat-trace,.yii-debug-grid-summary-stat-2xx,.yii-debug-grid-summary-stat-3xx,.yii-debug-grid-summary-stat-4xx,.yii-debug-grid-summary-stat-5xx) strong{color:inherit;margin-right:0}.yii-debug a:is(.yii-debug-grid-summary-stat-danger,.yii-debug-grid-summary-stat-warn,.yii-debug-grid-summary-stat-info,.yii-debug-grid-summary-stat-trace,.yii-debug-grid-summary-stat-2xx,.yii-debug-grid-summary-stat-3xx,.yii-debug-grid-summary-stat-4xx,.yii-debug-grid-summary-stat-5xx):hover,.yii-debug a:is(.yii-debug-grid-summary-stat-danger,.yii-debug-grid-summary-stat-warn,.yii-debug-grid-summary-stat-info,.yii-debug-grid-summary-stat-trace,.yii-debug-grid-summary-stat-2xx,.yii-debug-grid-summary-stat-3xx,.yii-debug-grid-summary-stat-4xx,.yii-debug-grid-summary-stat-5xx):focus-visible{background:color-mix(in srgb, var(--yii-debug-hue), transparent 80%);text-decoration:none;transform:translateY(-1px)}.yii-debug .yii-debug-grid-summary-action{color:var(--yii-debug-panel-primary-strong);letter-spacing:0;text-transform:none;margin-left:auto;font-weight:700;text-decoration:none}.yii-debug .yii-debug-grid-summary-action:hover,.yii-debug .yii-debug-grid-summary-action:focus-visible{color:var(--yii-debug-panel-link-hover);text-decoration:underline}.yii-debug .yii-debug-grid-footer{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-3);margin-top:var(--yii-debug-space-2);color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);flex-wrap:wrap;display:flex}.yii-debug .yii-debug-grid-count{margin:0}.yii-debug .yii-debug-grid-pagesize{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.yii-debug .yii-debug-grid-pagesize-label{color:var(--yii-debug-panel-muted);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.yii-debug .yii-debug-grid-pagesize-select{padding:3px var(--yii-debug-space-2);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-sm);background:var(--yii-debug-panel-surface);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-sm);letter-spacing:0;text-transform:none;cursor:pointer}.yii-debug .yii-debug-grid-pagesize-select:focus{border-color:var(--yii-debug-panel-primary)}.yii-debug .yii-debug-db-type{border-radius:var(--yii-debug-radius-pill);min-width:5em;font-family:var(--yii-debug-font-mono);letter-spacing:.04em;text-align:center;text-transform:uppercase;white-space:nowrap;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-block}.yii-debug .yii-debug-db-sql{font-family:var(--yii-debug-font-mono);overflow-wrap:anywhere}.yii-debug .yii-debug-grid-db .yii-debug-table th:not(:last-child),.yii-debug .yii-debug-grid-db .yii-debug-table td:not(:last-child){white-space:nowrap}.yii-debug .yii-debug-grid-db .yii-debug-table th:last-child,.yii-debug .yii-debug-grid-db .yii-debug-table td:last-child{width:100%}.yii-debug .yii-debug-grid-db .filters select{min-width:max-content}.yii-debug .yii-debug-grid-db .filters select:focus{box-shadow:none}.yii-debug .yii-debug-grid-db .filters select:focus-visible{outline-offset:1px;outline-width:2px}.yii-debug .yii-debug-sql-kw{color:var(--yii-debug-sql-kw);font-weight:700}.yii-debug .yii-debug-sql-str{color:var(--yii-debug-sql-str)}.yii-debug .yii-debug-sql-num{color:var(--yii-debug-sql-num)}.yii-debug .yii-debug-sql-comment{color:var(--yii-debug-sql-comment);font-style:italic}.yii-debug .yii-debug-sql-param{color:var(--yii-debug-sql-param);font-weight:600}.yii-debug .yii-debug-db-explain,.yii-debug .yii-debug-db-trace{margin-top:var(--yii-debug-space-2)}.yii-debug .yii-debug-db-explain-toggle,.yii-debug .yii-debug-db-trace-toggle{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);color:var(--yii-debug-panel-link);font-size:var(--yii-debug-fs-xs);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:2px 10px 2px 6px;font-weight:600;text-decoration:none;transition:background-color .12s,border-color .12s;display:inline-flex}.yii-debug .yii-debug-db-explain-toggle:hover,.yii-debug .yii-debug-db-explain-toggle:focus,.yii-debug .yii-debug-db-trace-toggle:hover,.yii-debug .yii-debug-db-trace-toggle:focus-visible{background:var(--yii-debug-panel-bg-accent);border-color:var(--yii-debug-panel-primary);text-decoration:none}.yii-debug .yii-debug-db-trace-toggle{list-style:none}.yii-debug .yii-debug-db-trace-toggle::-webkit-details-marker{display:none}.yii-debug .yii-debug-db-explain-chevron,.yii-debug .yii-debug-db-trace-chevron{width:10px;font-size:14px;line-height:1;transition:transform .16s;display:inline-block}.yii-debug .yii-debug-db-explain.is-open .yii-debug-db-explain-chevron,.yii-debug .yii-debug-db-trace[open]>.yii-debug-db-trace-toggle .yii-debug-db-trace-chevron{transform:rotate(90deg)}.yii-debug .yii-debug-db-explain.is-loading .yii-debug-db-explain-toggle{opacity:.55;pointer-events:none}.yii-debug .yii-debug-db-explain-text{margin-top:var(--yii-debug-space-2);display:none}.yii-debug .yii-debug-db-explain.is-open .yii-debug-db-explain-text{display:block}.yii-debug .yii-debug-db-explain-text.is-error{padding:var(--yii-debug-space-2) var(--yii-debug-space-3);border-left:3px solid var(--yii-debug-danger);border-radius:var(--yii-debug-radius-sm);background:color-mix(in srgb, var(--yii-debug-danger), transparent 92%);color:var(--yii-debug-danger);font-size:var(--yii-debug-fs-sm);font-weight:600;display:block}.yii-debug .yii-debug-db-explain-all{margin-top:var(--yii-debug-space-3);justify-content:flex-end;display:flex}.yii-debug .yii-debug-db-explain-all-toggle{white-space:nowrap;justify-content:center;min-width:104px}.yii-debug .yii-debug-explain{margin-top:var(--yii-debug-space-3)}.yii-debug .yii-debug-explain-title{margin-bottom:var(--yii-debug-space-2);font-size:var(--yii-debug-fs-lg);font-weight:700}.yii-debug .yii-debug-explain-query{margin-bottom:var(--yii-debug-space-3);padding:var(--yii-debug-space-3);background:var(--yii-debug-panel-code-bg);border-radius:var(--yii-debug-radius-md);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);white-space:pre-wrap;overflow-wrap:break-word}.yii-debug .yii-debug-explain-empty{color:var(--yii-debug-panel-muted);font-style:italic}.yii-debug .yii-debug-empty-state{margin:var(--yii-debug-space-4) 0 0;padding:var(--yii-debug-space-5) var(--yii-debug-space-5);border:1px dashed color-mix(in srgb, var(--yii-debug-panel-border) 80%, transparent);border-radius:var(--yii-debug-radius-md);background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 30%)}.yii-debug .yii-debug-empty-state h2{margin:0 0 var(--yii-debug-space-3);color:var(--yii-debug-panel-text);font-size:var(--yii-debug-fs-lg);font-weight:700}.yii-debug .yii-debug-empty-state p{margin:0 0 var(--yii-debug-space-3);color:var(--yii-debug-panel-muted);line-height:1.5}.yii-debug .yii-debug-empty-state p:last-child{margin-bottom:0}.yii-debug .yii-debug-empty-state code{border-radius:var(--yii-debug-radius-sm,4px);background:var(--yii-debug-panel-code-bg);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);padding:.1em .4em}.yii-debug .yii-debug-empty-state-code{margin:0 0 var(--yii-debug-space-3);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-code-bg);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);white-space:pre-wrap;overflow-wrap:break-word;line-height:1.5}.yii-debug .yii-debug-queue-grid-job{flex-direction:column;gap:2px;line-height:1.2;display:flex}.yii-debug .yii-debug-queue-grid-job-link{color:var(--yii-debug-text-strong);white-space:nowrap;font-weight:600;text-decoration:none}.yii-debug .yii-debug-queue-grid-job-link:hover{text-decoration:underline}.yii-debug .yii-debug-queue-grid-job-namespace{color:var(--yii-debug-text-muted);font-family:var(--yii-debug-font-mono);white-space:nowrap;font-size:.78rem}.yii-debug .yii-debug-grid-queue .yii-debug-queue-status,.yii-debug .yii-debug-grid-queue .yii-debug-queue-driver{white-space:nowrap}.yii-debug .yii-debug-queue-job-page{gap:var(--yii-debug-space-3);flex-direction:column;display:flex}.yii-debug .yii-debug-queue-job-head{align-items:center;gap:var(--yii-debug-space-2);flex-wrap:wrap;display:flex}.yii-debug .yii-debug-queue-card{gap:var(--yii-debug-space-2);padding:var(--yii-debug-space-4);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);flex-direction:column;display:flex}.yii-debug .yii-debug-queue-card-head{gap:var(--yii-debug-space-3);grid-template-columns:auto 1fr auto;align-items:flex-start;display:grid}.yii-debug .yii-debug-queue-avatar{--queue-hue:210;border-radius:var(--yii-debug-radius-md);background:linear-gradient(135deg, hsl(var(--queue-hue) 72% 52%), hsl(calc(var(--queue-hue) + 28) 65% 40%));width:40px;height:40px;box-shadow:0 2px 10px hsl(var(--queue-hue) 60% 40% / 32%), inset 0 1px 0 #ffffff38;color:#fff;font-family:var(--yii-debug-font-mono);letter-spacing:-.01em;flex:none;justify-content:center;align-items:center;font-size:16px;font-weight:800;display:inline-flex}.yii-debug .yii-debug-queue-headline{flex-direction:column;gap:2px;min-width:0;display:flex}.yii-debug .yii-debug-queue-class{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-lg);letter-spacing:-.01em;word-break:break-all;margin:0;font-weight:700;line-height:1.25}.yii-debug .yii-debug-queue-namespace{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.02em}.yii-debug .yii-debug-queue-meta-pills{flex-direction:column;flex:none;align-items:flex-end;gap:6px;display:flex}.yii-debug .yii-debug-queue-status{border-radius:var(--yii-debug-radius-pill);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.06em;text-transform:uppercase;align-items:center;padding:3px 10px;font-weight:600;line-height:1;display:inline-flex}.yii-debug .yii-debug-queue-status-queued{color:var(--yii-debug-info);background:color-mix(in srgb, var(--yii-debug-info), transparent 86%)}.yii-debug .yii-debug-queue-status-done{color:var(--yii-debug-success);background:color-mix(in srgb, var(--yii-debug-success), transparent 86%)}.yii-debug .yii-debug-queue-status-failed{color:var(--yii-debug-danger);background:color-mix(in srgb, var(--yii-debug-danger), transparent 86%)}.yii-debug .yii-debug-queue-driver{border-radius:var(--yii-debug-radius-pill);border:var(--yii-debug-border);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.05em;text-transform:uppercase;cursor:help;align-items:center;padding:3px 10px;font-weight:600;line-height:1;display:inline-flex}.yii-debug .yii-debug-queue-driver-is-sync{color:var(--yii-debug-success);background:color-mix(in srgb, var(--yii-debug-success), transparent 92%);border-color:color-mix(in srgb, var(--yii-debug-success), transparent 70%)}.yii-debug .yii-debug-queue-driver-is-async{color:var(--yii-debug-warning);background:color-mix(in srgb, var(--yii-debug-warning), transparent 92%);border-color:color-mix(in srgb, var(--yii-debug-warning), transparent 70%)}.yii-debug .yii-debug-queue-hint{margin:var(--yii-debug-space-3) 0;padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border-radius:var(--yii-debug-radius-md);border-left:3px solid var(--yii-debug-warning);background:color-mix(in srgb, var(--yii-debug-warning), transparent 94%);color:var(--yii-debug-panel-text);font-size:var(--yii-debug-fs-sm);line-height:1.5}.yii-debug .yii-debug-queue-tree{padding:var(--yii-debug-space-3);border-radius:var(--yii-debug-radius-sm);background:color-mix(in srgb, var(--yii-debug-panel-text), transparent 96%);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);flex-direction:column;gap:4px;line-height:1.6;display:flex}.yii-debug .yii-debug-queue-tree-row{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.yii-debug .yii-debug-queue-tree-key{color:var(--yii-debug-panel-text);font-weight:700}.yii-debug .yii-debug-queue-tree-key:after{content:":";color:var(--yii-debug-panel-muted);margin-left:1px;font-weight:400}.yii-debug .yii-debug-queue-tree-type{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);text-transform:uppercase;letter-spacing:.05em;background:color-mix(in srgb, var(--yii-debug-panel-text), transparent 92%);border-radius:3px;padding:1px 6px}.yii-debug .yii-debug-queue-tree-class{color:var(--yii-debug-info);cursor:help;font-weight:600}.yii-debug .yii-debug-queue-tree-meta{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-queue-tree-truncated{color:var(--yii-debug-warning);font-size:var(--yii-debug-fs-xs);text-transform:uppercase;letter-spacing:.05em;background:color-mix(in srgb, var(--yii-debug-warning), transparent 86%);border-radius:3px;padding:1px 6px}.yii-debug .yii-debug-queue-tree-value{word-break:break-all}.yii-debug .yii-debug-queue-tree-value-string{color:var(--yii-debug-success)}.yii-debug .yii-debug-queue-tree-value-number{color:var(--yii-debug-info)}.yii-debug .yii-debug-queue-tree-value-bool{color:var(--yii-debug-warning);font-weight:600}.yii-debug .yii-debug-queue-tree-value-null{color:var(--yii-debug-panel-muted);font-style:italic}.yii-debug .yii-debug-queue-tree-collapse{flex-direction:column;gap:4px;display:flex}.yii-debug .yii-debug-queue-tree-summary{cursor:pointer;list-style:revert;flex-wrap:wrap;align-items:baseline;gap:8px;padding:2px 0;display:inline-flex}.yii-debug .yii-debug-queue-tree-summary::-webkit-details-marker{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-queue-tree-children{margin-left:var(--yii-debug-space-4);padding-left:var(--yii-debug-space-3);border-left:1px dashed color-mix(in srgb, var(--yii-debug-panel-text), transparent 80%);flex-direction:column;gap:4px;display:flex}.yii-debug .yii-debug-queue-time{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.02em}.yii-debug .yii-debug-queue-payload{margin:0}.yii-debug .yii-debug-queue-error{padding:var(--yii-debug-space-3);border-radius:var(--yii-debug-radius-sm);border-left:3px solid var(--yii-debug-danger);background:color-mix(in srgb, var(--yii-debug-danger), transparent 92%);color:var(--yii-debug-danger);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);line-height:1.5}.yii-debug .yii-debug-queue-meta{gap:var(--yii-debug-space-2);padding-top:var(--yii-debug-space-2);border-top:var(--yii-debug-border);flex-wrap:wrap;display:flex}.yii-debug .yii-debug-queue-meta-item{border-radius:var(--yii-debug-radius-pill);background:color-mix(in srgb, var(--yii-debug-panel-text), transparent 94%);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);align-items:center;gap:6px;padding:2px 10px;line-height:1.4;display:inline-flex}.yii-debug .yii-debug-queue-meta-label{color:var(--yii-debug-panel-muted);text-transform:uppercase;letter-spacing:.05em;font-size:var(--yii-debug-fs-xs)}.yii-debug .yii-debug-queue-meta-value{color:var(--yii-debug-panel-text);font-weight:600}.yii-debug .yii-debug-dump{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);overflow:hidden}.yii-debug .yii-debug-dump-card-head{align-items:center;gap:var(--yii-debug-space-2);padding:6px var(--yii-debug-space-3);border-bottom:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);color:var(--yii-debug-panel-muted);flex-wrap:wrap;display:flex}.yii-debug .yii-debug-dump-index{color:var(--yii-debug-panel-primary-strong);font-weight:700}.yii-debug .yii-debug-dump-type{border-radius:var(--yii-debug-radius-pill);font-size:var(--yii-debug-fs-xs);letter-spacing:.04em;text-transform:uppercase;--yii-debug-hue:var(--yii-debug-panel-primary);padding:1px 8px;font-weight:700;display:inline-flex}.yii-debug .yii-debug-dump-type[data-type=array]{--yii-debug-hue:var(--yii-debug-info)}.yii-debug .yii-debug-dump-type[data-type=string]{--yii-debug-hue:var(--yii-debug-success)}.yii-debug .yii-debug-dump-type[data-type=number]{--yii-debug-hue:var(--yii-debug-warning)}.yii-debug .yii-debug-dump-type[data-type=bool],.yii-debug .yii-debug-dump-type[data-type=null]{--yii-debug-hue:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-dump-meta{align-items:center;gap:var(--yii-debug-space-2);margin-left:auto;display:inline-flex}.yii-debug .yii-debug-dump-time{color:var(--yii-debug-panel-muted);font-variant-numeric:tabular-nums}.yii-debug .yii-debug-dump-trace{color:var(--yii-debug-panel-link)}.yii-debug .yii-debug-php-dump{text-align:start;font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);line-height:1.5;overflow-x:auto}.yii-debug .yii-debug-php-dump pre{background:0 0;margin:0}.yii-debug .yii-debug-php-dump code{white-space:pre;background:0 0;padding:0;display:block}.yii-debug .yii-debug-dump-body{padding:var(--yii-debug-space-3);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);line-height:1.5;overflow-x:auto}.yii-debug .yii-debug-dump-body code{white-space:pre;background:0 0;padding:0;display:block}[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color: #DD0000"],[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color:#DD0000"]{color:#e5c07b!important}[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color: #0000BB"],[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color:#0000BB"]{color:#93c5fd!important}[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color: #007700"],[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color:#007700"]{color:#86efac!important}[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color: #FF8000"],[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color:#FF8000"]{color:#fdba74!important}[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color: #000000"],[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color:#000000"]{color:var(--yii-debug-panel-text)!important}.yii-debug .yii-debug-history-card{gap:var(--yii-debug-space-2);padding:var(--yii-debug-space-3);border:1px dashed color-mix(in srgb, var(--yii-debug-panel-border) 70%, transparent);border-radius:var(--yii-debug-radius-md);background:radial-gradient(circle at top right, color-mix(in srgb, var(--yii-debug-panel-primary), transparent 86%), transparent 60%), color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 40%);flex-direction:column;display:flex;position:relative}.yii-debug .yii-debug-nav-iconed .yii-debug-nav-link{align-items:center}.yii-debug .yii-debug-nav-iconed .yii-debug-nav-link .yii-debug-nav-link-label{margin-right:auto}.yii-debug .yii-debug-nav-link-icon{width:16px;height:16px;color:var(--yii-debug-panel-primary);flex:none;justify-content:center;align-items:center;margin-right:10px;transition:color .14s,transform .14s;display:inline-flex}.yii-debug .yii-debug-nav-link-icon svg{width:100%;height:100%}.yii-debug .yii-debug-nav-link.is-active .yii-debug-nav-link-icon{color:currentColor}.yii-debug .yii-debug-nav-link-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-sm);letter-spacing:.005em;flex:1;font-weight:600;overflow:hidden}.yii-debug .yii-debug-nav-link:not(.is-active){color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-nav-link:not(.is-active) .yii-debug-nav-link-icon{color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 35%)}.yii-debug .yii-debug-nav-link:not(.is-active):after{color:color-mix(in srgb, var(--yii-debug-panel-muted), transparent 40%)}.yii-debug .yii-debug-nav-link:not(.is-active):hover,.yii-debug .yii-debug-nav-link:not(.is-active):focus-visible{color:var(--yii-debug-panel-text);background:var(--yii-debug-panel-surface-hover)}:is(.yii-debug .yii-debug-nav-link:not(.is-active):hover,.yii-debug .yii-debug-nav-link:not(.is-active):focus-visible) .yii-debug-nav-link-icon{color:var(--yii-debug-panel-primary);transform:translate(1px)}:is(.yii-debug .yii-debug-nav-link:not(.is-active):hover,.yii-debug .yii-debug-nav-link:not(.is-active):focus-visible):after{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-tag-link{font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);letter-spacing:-.01em;color:var(--yii-debug-panel-primary-strong);white-space:nowrap;border-bottom:1px dotted color-mix(in srgb, var(--yii-debug-panel-primary), transparent 60%);font-weight:700;text-decoration:none;display:inline-block}.yii-debug .yii-debug-tag-link:hover,.yii-debug .yii-debug-tag-link:focus-visible{color:var(--yii-debug-panel-primary);border-bottom-color:var(--yii-debug-panel-primary);text-decoration:none}.yii-debug .yii-debug-url-cell{text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;max-width:clamp(180px,26vw,460px);display:inline-block;overflow:hidden}.yii-debug .yii-debug-table tbody tr.is-cursor{background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 86%);box-shadow:inset 3px 0 0 var(--yii-debug-panel-primary)}.yii-debug .yii-debug-table tbody tr.is-cursor:hover{background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 78%)}.yii-debug .yii-debug-active-filters{margin-bottom:var(--yii-debug-space-3);padding:8px var(--yii-debug-space-3);border:1px solid color-mix(in srgb, var(--yii-debug-info), transparent 60%);border-radius:var(--yii-debug-radius-md);background:color-mix(in srgb, var(--yii-debug-info), transparent 92%);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.yii-debug .yii-debug-active-filters-label{color:var(--yii-debug-info);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:700}.yii-debug .yii-debug-active-filters-list{flex-wrap:wrap;gap:4px;display:inline-flex}.yii-debug .yii-debug-active-filter-pill{border:1px solid color-mix(in srgb, var(--yii-debug-info), transparent 50%);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);align-items:center;gap:4px;padding:2px 6px 2px 8px;text-decoration:none;transition:background-color .12s,border-color .12s;display:inline-flex}.yii-debug .yii-debug-active-filter-pill:hover,.yii-debug .yii-debug-active-filter-pill:focus-visible{border-color:var(--yii-debug-danger);background:color-mix(in srgb, var(--yii-debug-danger), transparent 88%);color:var(--yii-debug-danger);text-decoration:none}.yii-debug .yii-debug-active-filter-attr{color:var(--yii-debug-panel-muted);text-transform:lowercase}.yii-debug .yii-debug-active-filter-sep{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-active-filter-value{color:var(--yii-debug-panel-text);text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-weight:700;overflow:hidden}.yii-debug .yii-debug-active-filter-x{color:var(--yii-debug-panel-muted);margin-left:2px;font-weight:700;line-height:1}.yii-debug .yii-debug-active-filter-pill:hover .yii-debug-active-filter-x,.yii-debug .yii-debug-active-filter-pill:focus-visible .yii-debug-active-filter-x{color:var(--yii-debug-danger)}.yii-debug .yii-debug-active-filters-clear{border:1px solid color-mix(in srgb, var(--yii-debug-danger), transparent 60%);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface);color:var(--yii-debug-danger);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.04em;text-transform:uppercase;margin-left:auto;padding:3px 10px;font-weight:700;text-decoration:none;transition:background-color .12s,border-color .12s,transform .12s}.yii-debug .yii-debug-active-filters-clear:hover,.yii-debug .yii-debug-active-filters-clear:focus-visible{border-color:var(--yii-debug-danger);background:color-mix(in srgb, var(--yii-debug-danger), transparent 86%);color:var(--yii-debug-danger);text-decoration:none;transform:translateY(-1px)}.yii-debug .yii-debug-col-id,.yii-debug .yii-debug-col-queue-id{white-space:nowrap;min-width:120px}.yii-debug .yii-debug-grid .filters input.yii-debug-col-id-input,.yii-debug .yii-debug-grid .filters input.yii-debug-col-queue-id-input{box-sizing:border-box;width:104px}.yii-debug .yii-debug-grid-history .yii-debug-table{--yii-debug-history-query-width:0px;--yii-debug-history-mail-width:0px;--yii-debug-history-fixed-width:calc(916px + var(--yii-debug-history-query-width) + var(--yii-debug-history-mail-width));min-width:calc(var(--yii-debug-history-fixed-width) + 180px);table-layout:fixed}.yii-debug .yii-debug-grid-history .yii-debug-table:has(thead th.yii-debug-col-num:not(:first-child,.yii-debug-col-mail)){--yii-debug-history-query-width:66px}.yii-debug .yii-debug-grid-history .yii-debug-table:has(thead th.yii-debug-col-mail){--yii-debug-history-mail-width:56px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th:first-child{width:36px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th:nth-child(2){width:276px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th:nth-child(3){width:80px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th:nth-child(4),.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th:nth-child(5){width:100px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th.yii-debug-col-ip{width:112px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th.yii-debug-col-num:not(:first-child,.yii-debug-col-mail){width:66px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th.yii-debug-col-mail{width:56px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th:nth-last-child(3){width:128px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th:nth-last-child(2){width:84px}.yii-debug .yii-debug-grid-history .yii-debug-table tbody td,.yii-debug .yii-debug-grid-history .yii-debug-table tbody th{white-space:nowrap;padding:8px 10px}.yii-debug .yii-debug-grid-history .yii-debug-table tbody td.yii-debug-col-ip{white-space:normal;overflow-wrap:anywhere}.yii-debug .yii-debug-grid-history .yii-debug-table tbody:has(>tr:only-child>td[colspan]){caption-side:bottom;display:table-caption}.yii-debug .yii-debug-grid-history .yii-debug-table tbody:has(>tr:only-child>td[colspan]) td{display:block}.yii-debug .yii-debug-grid-history .yii-debug-table .yii-debug-tag-link,.yii-debug .yii-debug-grid-history .yii-debug-table .yii-debug-url-cell{text-overflow:ellipsis;max-width:100%;overflow:hidden}.yii-debug .yii-debug-grid-history .yii-debug-table .yii-debug-tag-link{vertical-align:middle;display:inline-block}@media (max-width:1366px){.yii-debug .yii-debug-grid-history .yii-debug-table{--yii-debug-history-fixed-width:calc(804px + var(--yii-debug-history-query-width))}.yii-debug .yii-debug-grid-history .yii-debug-col-ip,.yii-debug .yii-debug-grid-history .yii-debug-col-mail{display:none}}@media (max-width:767px){.yii-debug .yii-debug-grid-event .yii-debug-table thead th,.yii-debug .yii-debug-grid-event .yii-debug-table thead td,.yii-debug .yii-debug-grid-event .yii-debug-table tbody tr:not(.yii-debug-event-detail-row) td,.yii-debug .yii-debug-grid-event .yii-debug-table tbody th,.yii-debug .yii-debug-grid-event .yii-debug-table tfoot td{padding:8px 10px}.yii-debug .yii-debug-grid-event .yii-debug-table .filters td{padding:6px 10px}}.yii-debug th.yii-debug-col-num,.yii-debug td.yii-debug-col-num{text-align:center;white-space:nowrap;width:1%}.yii-debug td.yii-debug-col-num{font-variant-numeric:tabular-nums}.yii-debug td.yii-debug-col-num input,.yii-debug td.yii-debug-col-num select{text-align:center;width:100%;min-width:0}.yii-debug .yii-debug-explain-scroll{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);overflow-x:auto}.yii-debug .yii-debug-explain-table{font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);white-space:nowrap;margin:0}.yii-debug .yii-debug-explain-table th,.yii-debug .yii-debug-explain-table td{padding:var(--yii-debug-space-2) var(--yii-debug-space-3)}.yii-debug ul.yii-debug-trace{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);white-space:normal;margin:2px 0 0;padding:0;list-style:none}.yii-debug .yii-debug-muted{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-nowrap{white-space:nowrap}.yii-debug .yii-debug-break{word-break:break-all}.yii-debug .yii-debug-not-set{color:var(--yii-debug-danger);font-style:italic}.yii-debug .yii-debug-gauge{vertical-align:middle;font-variant-numeric:tabular-nums;flex-direction:column;gap:3px;min-width:76px;display:inline-flex}.yii-debug .yii-debug-gauge-bar{border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-gauge-track);height:3px;display:block;overflow:hidden}.yii-debug .yii-debug-gauge-bar:after{content:"";width:var(--yii-debug-gauge,0%);border-radius:inherit;background:var(--yii-debug-gauge-fill);height:100%;display:block}.yii-debug .yii-debug-section{margin-bottom:var(--yii-debug-space-6)}.yii-debug .yii-debug-section:last-child{margin-bottom:0}.yii-debug .yii-debug-section-title{align-items:center;gap:var(--yii-debug-space-2);margin:0 0 var(--yii-debug-space-3);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);letter-spacing:.22em;text-transform:uppercase;font-size:.6875rem;font-weight:500;line-height:1;display:flex}.yii-debug .yii-debug-section-mark{color:var(--yii-debug-panel-primary);font-weight:700}.yii-debug .yii-debug-section-count{border-radius:var(--yii-debug-radius-pill);background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 85%);color:var(--yii-debug-panel-primary);align-items:center;margin-left:auto;padding:2px 8px;font-weight:700;display:inline-flex}.yii-debug h1.yii-debug-hero-title{margin:0 0 var(--yii-debug-space-5);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-display);letter-spacing:-.015em;text-transform:lowercase;font-size:2rem;font-weight:400;line-height:1}.yii-debug h1.yii-debug-hero-title:before{content:"// ";color:var(--yii-debug-panel-primary);font-family:var(--yii-debug-font-mono);letter-spacing:0;vertical-align:2px;margin-right:.2em;font-size:.75em;font-weight:700}.yii-debug .yii-debug-readout-card{gap:var(--yii-debug-space-2);min-height:132px;padding:var(--yii-debug-space-5) var(--yii-debug-space-4);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:radial-gradient(circle at 1px 1px, color-mix(in srgb, var(--yii-debug-panel-border), transparent 30%) 1px, transparent 0) 0 0 / 14px 14px, linear-gradient(150deg, color-mix(in srgb, var(--yii-debug-panel-primary), transparent 92%), transparent 55%), var(--yii-debug-panel-surface);flex-direction:column;transition:border-color .15s,transform .15s,box-shadow .15s;animation:.45s cubic-bezier(.2,.7,.3,1) both yii-debug-readout-in;display:flex;position:relative;overflow:hidden}.yii-debug .yii-debug-readout-card:hover{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 45%);box-shadow:var(--yii-debug-shadow-md);transform:translateY(-2px)}.yii-debug .yii-debug-readout-card:first-child{animation-delay:40ms}.yii-debug .yii-debug-readout-card:nth-child(2){animation-delay:80ms}.yii-debug .yii-debug-readout-card:nth-child(3){animation-delay:.12s}.yii-debug .yii-debug-readout-card:nth-child(4){animation-delay:.16s}.yii-debug .yii-debug-readout-card:nth-child(5){animation-delay:.2s}.yii-debug .yii-debug-readout-card:nth-child(6){animation-delay:.24s}.yii-debug .yii-debug-readout-label{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);letter-spacing:.15em;text-transform:uppercase;margin:0;font-size:.6875rem;font-weight:500;line-height:1;display:block;position:relative}.yii-debug .yii-debug-readout-label:before{content:":: ";color:var(--yii-debug-panel-primary);opacity:.85;font-weight:700}.yii-debug .yii-debug-readout-value{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);letter-spacing:-.015em;overflow-wrap:break-word;margin:0;font-size:1.375rem;font-weight:700;line-height:1.15;display:block}.yii-debug .yii-debug-readout-meta{align-items:center;gap:var(--yii-debug-space-2);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);letter-spacing:.05em;text-transform:lowercase;margin-top:auto;font-size:.6875rem;line-height:1;display:inline-flex}.yii-debug .yii-debug-readout-grid{gap:var(--yii-debug-space-3);margin-bottom:var(--yii-debug-space-6);grid-template-columns:repeat(auto-fit,minmax(210px,1fr));display:grid}.yii-debug .yii-debug-section .yii-debug-table-wrap{border-radius:var(--yii-debug-radius-md)}.yii-debug .yii-debug-section .yii-debug-table-overview th,.yii-debug .yii-debug-section .yii-debug-table-overview td{padding:9px var(--yii-debug-space-4);border-bottom:1px solid color-mix(in srgb, var(--yii-debug-panel-border), transparent 45%);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);text-align:left;vertical-align:baseline}.yii-debug .yii-debug-section .yii-debug-table-overview th{width:34%;color:var(--yii-debug-panel-muted);letter-spacing:.12em;text-transform:uppercase;font-weight:500}.yii-debug .yii-debug-section .yii-debug-table-overview td{color:var(--yii-debug-panel-text)}.yii-debug .yii-debug-section .yii-debug-table-overview tr:last-child th,.yii-debug .yii-debug-section .yii-debug-table-overview tr:last-child td{border-bottom:0}.yii-debug .yii-debug-fact-strip{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-border);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;margin:0;display:grid;overflow:hidden}.yii-debug .yii-debug-fact{min-width:0;padding:var(--yii-debug-space-3) var(--yii-debug-space-4);background:var(--yii-debug-panel-surface-muted)}.yii-debug .yii-debug-fact-label{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-sans);letter-spacing:.07em;text-transform:uppercase;margin-bottom:2px;font-size:.6875rem;font-weight:700}.yii-debug .yii-debug-fact-value{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);text-overflow:ellipsis;white-space:nowrap;margin:0;font-weight:600;overflow:hidden}.yii-debug .yii-debug-stat-strip{gap:var(--yii-debug-space-3);margin:0 0 var(--yii-debug-space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.yii-debug .yii-debug-stat{padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-sm);align-items:center;gap:10px;display:flex}.yii-debug .yii-debug-stat-icon{width:26px;height:26px;color:var(--yii-debug-panel-primary);flex:none;justify-content:center;align-items:center;display:inline-flex}.yii-debug .yii-debug-stat-icon svg{width:100%;height:100%}.yii-debug .yii-debug-stat-value{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xl);font-weight:800;line-height:1}.yii-debug .yii-debug-stat-label{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.04em;text-transform:uppercase;margin-left:auto}.yii-debug .yii-debug-stat-danger .yii-debug-stat-icon{color:var(--yii-debug-danger)}.yii-debug .yii-debug-stat-info .yii-debug-stat-icon{color:var(--yii-debug-info)}.yii-debug .yii-debug-stat-muted .yii-debug-stat-icon{color:var(--yii-debug-panel-primary)}.yii-debug .yii-debug-stat-success .yii-debug-stat-icon{color:var(--yii-debug-success)}.yii-debug .yii-debug-stat-warning .yii-debug-stat-icon{color:var(--yii-debug-warning)}.yii-debug .yii-debug-entity{gap:var(--yii-debug-space-4);padding:var(--yii-debug-space-4);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-sm);scroll-margin-top:var(--yii-debug-space-4);flex-direction:column;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex;position:relative}.yii-debug .yii-debug-entity:hover{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 60%);box-shadow:var(--yii-debug-shadow-sm), 0 12px 32px color-mix(in srgb, var(--yii-debug-panel-primary), transparent 88%);transform:translateY(-1px)}.yii-debug .yii-debug-entity:target{border-color:var(--yii-debug-panel-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--yii-debug-panel-primary), transparent 78%), var(--yii-debug-shadow-sm)}.yii-debug .yii-debug-entity+.yii-debug-entity{margin-top:var(--yii-debug-space-3)}.yii-debug .yii-debug-entity-head{gap:var(--yii-debug-space-3);grid-template-columns:auto 1fr auto;align-items:center;display:grid}.yii-debug .yii-debug-entity-icon{border-radius:var(--yii-debug-radius-md);background:linear-gradient(135deg, color-mix(in srgb, var(--yii-debug-panel-primary), transparent 78%), color-mix(in srgb, var(--yii-debug-info), transparent 78%));width:38px;height:38px;color:var(--yii-debug-panel-primary-strong);flex:none;justify-content:center;align-items:center;display:inline-flex}.yii-debug .yii-debug-entity-icon svg{width:22px;height:22px}.yii-debug .yii-debug-entity-title{flex-direction:column;gap:2px;min-width:0;display:flex}.yii-debug .yii-debug-entity-name{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-lg);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;margin:0;font-weight:700;line-height:1.2;overflow:hidden}.yii-debug .yii-debug-entity-subtitle{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.yii-debug .yii-debug-entity-meta{flex-wrap:nowrap;flex:none;justify-content:flex-end;align-items:center;gap:5px;display:inline-flex}.yii-debug .yii-debug-entity-meta .yii-debug-badge{border:1px solid var(--yii-debug-panel-border);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:4px;padding:2px 8px;font-weight:700;display:inline-flex}.yii-debug .yii-debug-entity-meta .yii-debug-badge-danger{border-color:color-mix(in srgb, var(--yii-debug-danger), transparent 60%);background:color-mix(in srgb, var(--yii-debug-danger), transparent 90%);color:var(--yii-debug-danger)}.yii-debug .yii-debug-entity-meta .yii-debug-badge-info{border-color:color-mix(in srgb, var(--yii-debug-info), transparent 60%);background:color-mix(in srgb, var(--yii-debug-info), transparent 90%);color:var(--yii-debug-info)}.yii-debug .yii-debug-entity-meta .yii-debug-badge-muted{border-color:color-mix(in srgb, var(--yii-debug-panel-muted), transparent 60%);background:color-mix(in srgb, var(--yii-debug-panel-muted), transparent 90%);color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-entity-meta .yii-debug-badge-success{border-color:color-mix(in srgb, var(--yii-debug-success), transparent 60%);background:color-mix(in srgb, var(--yii-debug-success), transparent 90%);color:var(--yii-debug-success)}.yii-debug .yii-debug-entity-meta .yii-debug-badge-warning{border-color:color-mix(in srgb, var(--yii-debug-warning), transparent 60%);background:color-mix(in srgb, var(--yii-debug-warning), transparent 90%);color:var(--yii-debug-warning)}.yii-debug .yii-debug-entity-body{gap:var(--yii-debug-space-4);grid-template-columns:minmax(180px,2fr) minmax(0,3fr);display:grid}.yii-debug .yii-debug-entity-body[data-cols="1"]{grid-template-columns:1fr}.yii-debug .yii-debug-entity-column{gap:var(--yii-debug-space-3);flex-direction:column;min-width:0;display:flex}.yii-debug .yii-debug-entity-column-title{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-xs);letter-spacing:.14em;text-transform:uppercase;margin:0;font-weight:700}.yii-debug .yii-debug-file-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.yii-debug .yii-debug-file-list+.yii-debug-file-list{margin-top:4px}.yii-debug .yii-debug-file{border:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 60%, transparent);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);grid-template-columns:auto 1fr;align-items:center;gap:6px;min-width:0;padding:4px 8px;display:grid}.yii-debug .yii-debug-file-type{border-radius:var(--yii-debug-radius-pill);min-width:30px;font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.02em;justify-content:center;align-items:center;padding:0 5px;font-weight:700;display:inline-flex}.yii-debug .yii-debug-file-type-danger{background:color-mix(in srgb, var(--yii-debug-danger), transparent 84%);color:var(--yii-debug-danger)}.yii-debug .yii-debug-file-type-info{background:color-mix(in srgb, var(--yii-debug-info), transparent 84%);color:var(--yii-debug-info)}.yii-debug .yii-debug-file-type-muted{background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-file-type-success{background:color-mix(in srgb, var(--yii-debug-success), transparent 84%);color:var(--yii-debug-success)}.yii-debug .yii-debug-file-type-warning{background:color-mix(in srgb, var(--yii-debug-warning), transparent 84%);color:var(--yii-debug-warning)}.yii-debug .yii-debug-file-name{color:var(--yii-debug-panel-text);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.yii-debug .yii-debug-entity-column .yii-debug-fact-strip{background:0 0;border:0;border-radius:0;flex-direction:column;gap:4px;margin:0;display:flex;overflow:visible}.yii-debug .yii-debug-entity-column .yii-debug-fact{border:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 60%, transparent);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface-muted);grid-template-columns:56px 1fr;align-items:baseline;gap:8px;padding:6px 10px;display:grid}.yii-debug .yii-debug-entity-column .yii-debug-fact-label{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.12em;text-transform:uppercase;margin:0;font-weight:700}.yii-debug .yii-debug-entity-column .yii-debug-fact-value{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);text-overflow:clip;white-space:normal;word-break:break-all;margin:0;font-weight:400;overflow:visible}.yii-debug .yii-debug-link-strip{padding:10px var(--yii-debug-space-3);border:1px dashed color-mix(in srgb, var(--yii-debug-success), transparent 50%);border-radius:var(--yii-debug-radius-md);background:color-mix(in srgb, var(--yii-debug-success), transparent 92%);flex-direction:column;gap:8px;display:flex}.yii-debug .yii-debug-link-strip-label{color:var(--yii-debug-success);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:700}.yii-debug .yii-debug-link-strip-list{flex-wrap:wrap;gap:6px;display:flex}.yii-debug .yii-debug-link-pill{border:1px solid color-mix(in srgb, var(--yii-debug-success), transparent 50%);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface);color:var(--yii-debug-success);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);white-space:nowrap;align-items:center;gap:5px;padding:3px 10px 3px 8px;font-weight:600;text-decoration:none;transition:background-color .14s,color .14s,transform .14s,border-color .14s;display:inline-flex}.yii-debug .yii-debug-link-pill:before{content:"↳";opacity:.85;font-size:12px}.yii-debug .yii-debug-link-pill:hover,.yii-debug .yii-debug-link-pill:focus-visible{border-color:var(--yii-debug-success);background:color-mix(in srgb, var(--yii-debug-success), transparent 86%);color:var(--yii-debug-success);text-decoration:none;transform:translateY(-1px)}@media (max-width:720px){.yii-debug .yii-debug-stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.yii-debug .yii-debug-entity-body{grid-template-columns:1fr}.yii-debug .yii-debug-entity-head{grid-template-columns:auto 1fr}.yii-debug .yii-debug-entity-meta{grid-column:1/-1;justify-content:flex-start;max-width:100%}}.yii-debug .yii-debug-manifest{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);flex-direction:column;display:flex;overflow:hidden}.yii-debug .yii-debug-manifest-head{align-items:center;gap:var(--yii-debug-space-2);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border-bottom:var(--yii-debug-border);color:var(--yii-debug-panel-primary);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.08em;font-weight:700;display:flex}.yii-debug .yii-debug-manifest-count{color:var(--yii-debug-panel-muted);letter-spacing:.12em;text-transform:uppercase;margin-left:auto;font-weight:500}.yii-debug .yii-debug-manifest-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));display:grid}.yii-debug .yii-debug-manifest-item{justify-content:space-between;align-items:baseline;gap:var(--yii-debug-space-3);min-width:0;padding:7px var(--yii-debug-space-4);border-bottom:1px solid color-mix(in srgb, var(--yii-debug-panel-border), transparent 45%);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);display:flex}.yii-debug .yii-debug-manifest-name{color:var(--yii-debug-panel-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.yii-debug .yii-debug-manifest-version{color:var(--yii-debug-panel-primary);flex:none}.yii-debug .yii-debug-ext-strip{gap:var(--yii-debug-space-2);padding:var(--yii-debug-space-3);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:linear-gradient(0deg, color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 30%), var(--yii-debug-panel-surface));flex-wrap:wrap;display:flex}.yii-debug .yii-debug-ext-pill{align-items:center;gap:var(--yii-debug-space-2);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);letter-spacing:.1em;text-transform:uppercase;padding:6px 12px 6px 9px;font-size:.6875rem;font-weight:500;line-height:1;transition:border-color .15s,background .15s;display:inline-flex}.yii-debug .yii-debug-ext-pill-dot{background:color-mix(in srgb, var(--yii-debug-panel-muted), transparent 60%);border-radius:999px;width:7px;height:7px;display:inline-block}.yii-debug .yii-debug-ext-pill-label{color:var(--yii-debug-panel-text)}.yii-debug .yii-debug-ext-pill-state{margin-left:var(--yii-debug-space-1);color:var(--yii-debug-panel-muted);letter-spacing:.12em;opacity:.7;font-size:.625rem;font-weight:700}.yii-debug .yii-debug-ext-pill.is-on{border-color:color-mix(in srgb, var(--yii-debug-success), transparent 55%);background:color-mix(in srgb, var(--yii-debug-success), var(--yii-debug-panel-surface) 90%)}.yii-debug .yii-debug-ext-pill.is-on .yii-debug-ext-pill-dot{background:var(--yii-debug-success);box-shadow:0 0 0 3px color-mix(in srgb, var(--yii-debug-success), transparent 75%);animation:2.4s ease-in-out infinite yii-debug-led-pulse}.yii-debug .yii-debug-ext-pill.is-on .yii-debug-ext-pill-state{color:var(--yii-debug-success);opacity:1}.yii-debug .yii-debug-ext-pill.is-off{opacity:.55}.yii-debug .yii-debug-phpinfo-shell{gap:var(--yii-debug-space-4);grid-template-columns:220px minmax(0,1fr);align-items:start;display:grid}.yii-debug .yii-debug-phpinfo-toc{top:var(--yii-debug-space-3);max-height:calc(100vh - 80px);padding:var(--yii-debug-space-3);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);scrollbar-width:thin;align-self:start;position:sticky;overflow-y:auto}.yii-debug .yii-debug-phpinfo-toc-title{margin:0 0 var(--yii-debug-space-2);color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);align-items:baseline;gap:6px;display:flex}.yii-debug .yii-debug-phpinfo-toc-title span:first-child{color:var(--yii-debug-panel-text);font-variant-numeric:tabular-nums;font-weight:700}.yii-debug .yii-debug-phpinfo-toc-title-note{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);margin-left:auto}.yii-debug .yii-debug-phpinfo-toc-overview,.yii-debug .yii-debug-phpinfo-toc-group-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.yii-debug .yii-debug-phpinfo-toc-overview{margin-bottom:var(--yii-debug-space-2);padding-bottom:var(--yii-debug-space-2);border-bottom:var(--yii-debug-border)}.yii-debug .yii-debug-phpinfo-toc-groups{flex-direction:column;gap:2px;display:flex}.yii-debug .yii-debug-phpinfo-toc-group{margin:0}.yii-debug .yii-debug-phpinfo-toc-group-summary{border-radius:var(--yii-debug-radius-sm);color:var(--yii-debug-panel-muted);cursor:pointer;font-size:var(--yii-debug-fs-xs);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px 8px;font-weight:600;list-style:none;transition:background-color .12s,color .12s;display:grid}.yii-debug .yii-debug-phpinfo-toc-group-summary::-webkit-details-marker{display:none}.yii-debug .yii-debug-phpinfo-toc-group-summary:before{content:"›";color:var(--yii-debug-panel-muted);font-size:1.1em;line-height:1;transition:transform .12s}.yii-debug .yii-debug-phpinfo-toc-group-summary:hover,.yii-debug .yii-debug-phpinfo-toc-group-summary:focus-visible{background:var(--yii-debug-panel-surface-hover);color:var(--yii-debug-panel-text)}.yii-debug .yii-debug-phpinfo-toc-group[open]>.yii-debug-phpinfo-toc-group-summary{color:var(--yii-debug-panel-text)}.yii-debug .yii-debug-phpinfo-toc-group[open]>.yii-debug-phpinfo-toc-group-summary:before{transform:rotate(90deg)}.yii-debug .yii-debug-phpinfo-toc-group-count{border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface-muted);min-width:22px;color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);font-variant-numeric:tabular-nums;text-align:center;padding:1px 6px}.yii-debug .yii-debug-phpinfo-toc-group-list{margin:2px 0 var(--yii-debug-space-2);padding-left:14px}.yii-debug .yii-debug-phpinfo-toc-link{border-radius:0 var(--yii-debug-radius-sm) var(--yii-debug-radius-sm) 0;color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-sm);border-left:2px solid #0000;padding:7px 10px 7px 12px;text-decoration:none;transition:background-color .12s,color .12s,border-color .12s;display:block}.yii-debug .yii-debug-phpinfo-toc-link:hover,.yii-debug .yii-debug-phpinfo-toc-link:focus-visible{background:var(--yii-debug-panel-surface-hover);color:var(--yii-debug-panel-text);text-decoration:none}.yii-debug .yii-debug-phpinfo-toc-link.is-active{border-left-color:var(--yii-debug-panel-primary);background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 90%);color:var(--yii-debug-panel-primary-strong);font-weight:700}.yii-debug .yii-debug-phpinfo-main{min-width:0}.yii-debug .yii-debug-phpinfo-search{margin-bottom:var(--yii-debug-space-3);flex-direction:column;gap:6px;display:flex}.yii-debug .yii-debug-phpinfo-search-control{align-items:center;display:flex;position:relative}.yii-debug .yii-debug-phpinfo-search-icon{width:16px;height:16px;color:var(--yii-debug-panel-muted);pointer-events:none;justify-content:center;align-items:center;display:inline-flex;position:absolute;left:12px}.yii-debug .yii-debug-phpinfo-search-icon svg{width:100%;height:100%}.yii-debug .yii-debug-phpinfo-search-input{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);color:var(--yii-debug-panel-text);font-size:var(--yii-debug-fs-sm);flex:1;padding:9px 12px 9px 36px;transition:border-color .12s,box-shadow .12s}.yii-debug .yii-debug-phpinfo-search-input::placeholder{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-phpinfo-search-input:focus{border-color:var(--yii-debug-panel-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--yii-debug-panel-primary), transparent 80%)}.yii-debug .yii-debug-phpinfo-search-clear{border-radius:var(--yii-debug-radius-sm);color:var(--yii-debug-panel-link);cursor:pointer;font:inherit;font-size:var(--yii-debug-fs-xs);background:0 0;border:0;padding:4px 8px;font-weight:600;position:absolute;right:8px}.yii-debug .yii-debug-phpinfo-search-clear:hover,.yii-debug .yii-debug-phpinfo-search-clear:focus-visible{background:var(--yii-debug-panel-surface-hover);color:var(--yii-debug-panel-link-hover)}.yii-debug .yii-debug-phpinfo-search-control:has(.yii-debug-phpinfo-search-clear:not([hidden])) .yii-debug-phpinfo-search-input{padding-right:58px}.yii-debug .yii-debug-phpinfo-search-feedback{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-2);min-height:18px;padding-inline:2px;display:flex}.yii-debug .yii-debug-phpinfo-search-feedback:has(.yii-debug-phpinfo-search-status:empty):has(.yii-debug-phpinfo-search-empty[hidden]){display:none}.yii-debug .yii-debug-phpinfo-search-status,.yii-debug .yii-debug-phpinfo-search-empty{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs)}.yii-debug .yii-debug-phpinfo-search-empty{color:var(--yii-debug-danger)}.yii-debug .yii-debug-phpinfo-section{scroll-margin-top:var(--yii-debug-space-3)}.yii-debug .yii-debug-phpinfo-section+:is(.yii-debug .yii-debug-phpinfo-section){margin-top:var(--yii-debug-space-4)}.yii-debug .yii-debug-phpinfo-section .yii-debug-disclosure{margin-bottom:0}.yii-debug .yii-debug-phpinfo-toc-link[hidden],.yii-debug .yii-debug-phpinfo-toc-group[hidden],.yii-debug .yii-debug-phpinfo-section[hidden],.yii-debug .yii-debug-phpinfo-search-clear[hidden],.yii-debug .yii-debug-phpinfo-search-empty[hidden],.yii-debug .yii-debug-phpinfo-overview-hero-section[hidden],.yii-debug .yii-debug-disclosure[hidden],.yii-debug .yii-debug-phpinfo-extension-group[hidden],.yii-debug .yii-debug-ext-pill[hidden],.yii-debug .yii-debug-table-wrap[hidden],.yii-debug .yii-debug-phpinfo-module tr[hidden]{display:none}@media (max-width:900px){.yii-debug .yii-debug-phpinfo-shell{grid-template-columns:1fr}.yii-debug .yii-debug-phpinfo-toc{max-height:none;position:static;overflow:hidden}.yii-debug .yii-debug-phpinfo-toc-groups{gap:4px var(--yii-debug-space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.yii-debug .yii-debug-phpinfo-toc-group[open]{grid-column:1/-1}.yii-debug .yii-debug-phpinfo-toc-group-list{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:4px;padding-left:0;display:grid}.yii-debug .yii-debug-phpinfo-toc-link{border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface-muted);border-left:0;padding:4px 10px}.yii-debug .yii-debug-phpinfo-toc-link.is-active{background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 80%);border-left:0}}@media (max-width:560px){.yii-debug .yii-debug-phpinfo-toc-groups{grid-template-columns:1fr}}.yii-debug .yii-debug-phpinfo-overview-hero{gap:var(--yii-debug-space-3);margin-bottom:var(--yii-debug-space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (max-width:720px){.yii-debug .yii-debug-phpinfo-overview-hero{grid-template-columns:1fr}}.yii-debug .yii-debug-phpinfo-overview-hero-headline{align-items:center;gap:var(--yii-debug-space-3);grid-template-columns:1fr auto;display:grid}.yii-debug .yii-debug-phpinfo-overview-hero-version{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-display,var(--yii-debug-font-mono));letter-spacing:-.02em;font-size:clamp(1.6rem,2.4vw + 1rem,2.4rem);font-weight:800;line-height:1}.yii-debug .yii-debug-phpinfo-overview-hero-mark{border-radius:var(--yii-debug-radius-pill);border:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);min-width:64px;color:var(--yii-debug-panel-primary-strong);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-lg);letter-spacing:.08em;text-transform:lowercase;justify-content:center;align-items:center;padding:6px 14px;font-weight:700;display:inline-flex}.yii-debug .yii-debug-phpinfo-overview-hero-metrics{gap:var(--yii-debug-space-2) var(--yii-debug-space-4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0;display:grid}.yii-debug .yii-debug-phpinfo-overview-hero-section{gap:var(--yii-debug-space-3);min-width:0;padding:var(--yii-debug-space-4);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-sm);flex-direction:column;display:flex}.yii-debug .yii-debug-phpinfo-overview-hero-section:first-child{grid-column:1/-1}.yii-debug .yii-debug-phpinfo-extensions{grid-column:1/-1}.yii-debug .yii-debug-phpinfo-extensions>.yii-debug-phpinfo-extension-groups{padding:var(--yii-debug-space-4)}.yii-debug .yii-debug-phpinfo-extension-group-count{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);font-variant-numeric:tabular-nums;padding:1px 7px}.yii-debug .yii-debug-phpinfo-extension-groups{gap:var(--yii-debug-space-3);flex-direction:column;display:flex}.yii-debug .yii-debug-phpinfo-extension-group{gap:var(--yii-debug-space-2);flex-direction:column;display:flex}.yii-debug .yii-debug-phpinfo-extension-group-head{align-items:center;gap:var(--yii-debug-space-2);color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);font-weight:600;display:flex}.yii-debug .yii-debug-phpinfo-extension-group-head .yii-debug-phpinfo-extension-group-count{margin-left:auto}.yii-debug .yii-debug-phpinfo-extension-group .yii-debug-ext-pill{scroll-margin-top:var(--yii-debug-space-4)}.yii-debug .yii-debug-phpinfo-extension-group .yii-debug-ext-pill:target,.yii-debug .yii-debug-phpinfo-extension-group .yii-debug-ext-pill.is-search-match{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 45%);background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 90%)}.yii-debug .yii-debug-phpinfo-overview-block-head{border-bottom:var(--yii-debug-border);align-items:center;gap:10px;padding-bottom:8px;display:flex}.yii-debug .yii-debug-phpinfo-overview-block-eyebrow{color:var(--yii-debug-panel-text);font-size:var(--yii-debug-fs-sm);font-weight:600}.yii-debug .yii-debug-phpinfo-overview-hero-metric{flex-direction:column;gap:3px;padding-block:2px;display:flex}.yii-debug .yii-debug-phpinfo-overview-hero-metric dt{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);margin:0;font-weight:600;line-height:1.2}.yii-debug .yii-debug-phpinfo-overview-hero-metric dd{overflow-wrap:break-word;min-width:0;color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);margin:0;line-height:1.4}.yii-debug .yii-debug-phpinfo-overview-hero-metric dd code{color:inherit;background:0 0;padding:0}.yii-debug .yii-debug-phpinfo-overview-hero-metric.is-wide{grid-column:1/-1}.yii-debug .yii-debug-phpinfo-overview-pill{border-radius:var(--yii-debug-radius-pill);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.04em;text-transform:uppercase;border:1px solid #0000;align-items:center;gap:6px;padding:1px 10px;font-weight:700;display:inline-flex}.yii-debug .yii-debug-phpinfo-overview-pill[data-variant=success]{color:var(--yii-debug-success);background:color-mix(in srgb, var(--yii-debug-success), transparent 86%);border-color:color-mix(in srgb, var(--yii-debug-success), transparent 65%)}.yii-debug .yii-debug-phpinfo-overview-pill[data-variant=muted]{color:var(--yii-debug-panel-muted);background:var(--yii-debug-panel-surface-muted);border-color:var(--yii-debug-panel-border)}.yii-debug .yii-debug-phpinfo-overview-token{border:1px solid var(--yii-debug-panel-border);border-radius:var(--yii-debug-radius-sm);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);padding:1px 8px}.yii-debug .yii-debug-phpinfo-overview-files{flex-wrap:wrap;gap:4px;display:flex}.yii-debug .yii-debug-phpinfo-overview-files .yii-debug-phpinfo-overview-token{cursor:help;transition:border-color .12s,background-color .12s}.yii-debug .yii-debug-phpinfo-overview-files .yii-debug-phpinfo-overview-token:hover{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 40%);background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 88%)}.yii-debug .yii-debug-phpinfo-module{gap:var(--yii-debug-space-3);flex-direction:column;margin-top:0;display:flex}.yii-debug .yii-debug-phpinfo-module-head{align-items:center;gap:10px;margin:0;padding:2px 2px 0;display:flex}.yii-debug .yii-debug-phpinfo-module-head h2{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-xl);text-align:left;background:0 0;margin:0;padding:0;font-weight:600}.yii-debug .yii-debug-phpinfo-table-section{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-sm);overflow:hidden}.yii-debug .yii-debug-phpinfo-table-section-head{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-2);padding:9px var(--yii-debug-space-3);border-bottom:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-sm);font-weight:600;display:flex}.yii-debug .yii-debug-phpinfo-variable-group>summary{cursor:pointer;list-style:none;transition:background-color .12s}.yii-debug .yii-debug-phpinfo-variable-group>summary::-webkit-details-marker{display:none}.yii-debug .yii-debug-phpinfo-variable-group>summary:hover,.yii-debug .yii-debug-phpinfo-variable-group>summary:focus-visible{background:var(--yii-debug-panel-surface-hover)}.yii-debug .yii-debug-phpinfo-variable-group>summary>span:first-child{align-items:center;gap:8px;display:inline-flex}.yii-debug .yii-debug-phpinfo-variable-group>summary>span:first-child:before{content:"›";color:var(--yii-debug-panel-muted);font-size:1.1em;line-height:1;transition:transform .12s}.yii-debug .yii-debug-phpinfo-variable-group[open]>summary>span:first-child:before{transform:rotate(90deg)}.yii-debug .yii-debug-phpinfo-table-section-count{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);font-variant-numeric:tabular-nums;flex:none;padding:1px 7px;font-weight:500}.yii-debug .yii-debug-phpinfo-table-scroll{min-width:0;overflow-x:auto}.yii-debug .yii-debug-phpinfo-module .yii-debug-table{table-layout:fixed;min-width:560px}.yii-debug .yii-debug-phpinfo-module .yii-debug-table tr>:first-child{width:40%}.yii-debug .yii-debug-phpinfo-module .yii-debug-table tr>:nth-child(2):last-child{width:60%}.yii-debug .yii-debug-phpinfo-module .yii-debug-table tr>:nth-child(2):not(:last-child),.yii-debug .yii-debug-phpinfo-module .yii-debug-table tr>:nth-child(3){width:30%}.yii-debug .yii-debug-phpinfo-module .yii-debug-table th,.yii-debug .yii-debug-phpinfo-module .yii-debug-table td{text-align:left}.yii-debug .yii-debug-phpinfo-module .yii-debug-table th[scope=row]{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-sans);white-space:normal;font-weight:500}.yii-debug .yii-debug-phpinfo-module .yii-debug-table td{font-family:var(--yii-debug-font-mono)}.yii-debug .yii-debug-phpinfo-module .yii-debug-table tr.h>*{z-index:1;background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-xs);letter-spacing:.03em;text-transform:uppercase;font-weight:700;position:sticky;top:0}.yii-debug .yii-debug-phpinfo-module .yii-debug-table tr.is-search-match>*{background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 88%)!important}.yii-debug .yii-debug-phpinfo-module .yii-debug-table tr.has-local-override>td:nth-child(2){box-shadow:inset 2px 0 0 color-mix(in srgb, var(--yii-debug-warning), transparent 25%);color:color-mix(in srgb, var(--yii-debug-warning) 72%, var(--yii-debug-panel-text))}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-phpinfo-table-scroll{overflow:visible}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts{table-layout:auto;min-width:0;display:block}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tbody{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact{border-bottom:1px solid color-mix(in srgb, var(--yii-debug-panel-border), transparent 25%);grid-template-columns:minmax(130px,.85fr) minmax(0,1.15fr);min-width:0;display:grid}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact:nth-child(odd){border-right:1px solid color-mix(in srgb, var(--yii-debug-panel-border), transparent 25%)}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact.yii-debug-phpinfo-fact-wide{border-right:0;grid-column:1/-1}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact>*{overflow-wrap:anywhere;background:0 0;border:0;width:auto;padding:9px 12px}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact>th{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-xs);font-weight:600}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact>td{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs)}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact-subheading{grid-column:1/-1;display:block}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact-subheading>th{border-block:var(--yii-debug-border);background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 15%);width:auto;color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-xs);letter-spacing:.02em;text-align:left;padding:8px 12px;font-weight:600;display:block}.yii-debug .yii-debug-phpinfo-status-pill,.yii-debug .yii-debug-phpinfo-redacted{border-radius:var(--yii-debug-radius-pill);width:-moz-fit-content;width:fit-content;font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.03em;border:1px solid #0000;align-items:center;padding:1px 8px;font-weight:600;display:inline-flex}.yii-debug .yii-debug-phpinfo-status-pill[data-variant=success]{border-color:color-mix(in srgb, var(--yii-debug-success), transparent 65%);background:color-mix(in srgb, var(--yii-debug-success), transparent 88%);color:var(--yii-debug-success)}.yii-debug .yii-debug-phpinfo-status-pill[data-variant=muted]{border-color:var(--yii-debug-panel-border);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-phpinfo-redacted{border-color:color-mix(in srgb, var(--yii-debug-warning), transparent 65%);background:color-mix(in srgb, var(--yii-debug-warning), transparent 90%);color:color-mix(in srgb, var(--yii-debug-warning) 72%, var(--yii-debug-panel-text));text-transform:uppercase}.yii-debug .yii-debug-phpinfo-table-section.is-note .yii-debug-table.is-note{table-layout:auto;min-width:0}.yii-debug .yii-debug-phpinfo-table-section.is-note .yii-debug-table.is-note td,.yii-debug .yii-debug-phpinfo-table-section.is-note .yii-debug-table.is-note th{width:auto;padding:var(--yii-debug-space-3);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-sans);text-align:left;line-height:1.6}@media (max-width:720px){.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tbody{grid-template-columns:1fr}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact{border-right:0}}@media (max-width:959px){.yii-debug .yii-debug-sidebar{min-width:0}.yii-debug .yii-debug-nav{overscroll-behavior-x:contain;scrollbar-width:thin;overflow-x:auto}.yii-debug .yii-debug-nav ul{gap:var(--yii-debug-space-1);flex-direction:row;width:max-content;min-width:100%}.yii-debug .yii-debug-nav-link{white-space:nowrap;min-height:40px}.yii-debug .yii-debug-nav-link:after{display:none}.yii-debug .yii-debug-nav-link-icon{margin-right:var(--yii-debug-space-1)}}@media (max-width:767px){.yii-debug .yii-debug-page{padding:var(--yii-debug-space-2)}.yii-debug .yii-debug-card{padding:var(--yii-debug-space-3)}}@media (prefers-reduced-motion:reduce){.yii-debug *,.yii-debug :before,.yii-debug :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes yii-debug-user-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.85)}}@keyframes yii-debug-readout-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes yii-debug-led-pulse{0%,to{box-shadow:0 0 0 3px color-mix(in srgb, var(--yii-debug-success), transparent 75%)}50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--yii-debug-success), transparent 90%)}}.yii-debug-tl-filter{align-items:end;gap:var(--yii-debug-space-3);margin-bottom:var(--yii-debug-space-3);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface-muted);flex-wrap:wrap;display:flex}.yii-debug-tl-field{flex-direction:column;gap:4px;min-width:160px;display:flex}.yii-debug-tl-field label{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.yii-debug-tl-field input{padding:6px var(--yii-debug-space-2);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-sm);background:var(--yii-debug-panel-surface);color:var(--yii-debug-panel-text);font:inherit;font-family:var(--yii-debug-font-mono)}.yii-debug-tl-field input::placeholder{color:var(--yii-debug-panel-muted)}.yii-debug-tl-field input:focus{border-color:var(--yii-debug-panel-primary)}.yii-debug-tl-field-grow{flex:240px}.yii-debug-tl-hint{margin-bottom:var(--yii-debug-space-3);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border:1px dashed color-mix(in srgb, var(--yii-debug-panel-border) 70%, transparent);border-radius:var(--yii-debug-radius-md);background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 40%)}.yii-debug-tl-hint-title{color:var(--yii-debug-panel-text);margin:0 0 6px;font-weight:600}.yii-debug-tl-hint-body{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-sm);margin:0;line-height:1.55}.yii-debug-tl-hint-body em{color:var(--yii-debug-panel-text);font-style:normal;font-weight:600}.yii-debug-tl{--yii-debug-tl-label-col:22%;grid-template-columns:minmax(180px, var(--yii-debug-tl-label-col)) 1fr;border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);grid-template-rows:auto 1fr auto;gap:0;display:grid;overflow:hidden}@media (max-width:1440px){.yii-debug-tl{--yii-debug-tl-label-col:32%}}.yii-debug-tl-axis{border-bottom:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);grid-column:2/3;height:32px;padding:8px 0;position:relative}.yii-debug-tl-tick{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.04em;white-space:nowrap;pointer-events:none;position:absolute;top:8px;transform:translate(-50%)}.yii-debug-tl-tick:after{content:"";background:var(--yii-debug-panel-border);width:1px;height:8px;position:absolute;top:18px;left:50%}.yii-debug-tl-rows{grid-column:1/3;grid-template-columns:minmax(180px, var(--yii-debug-tl-label-col)) 1fr;background:linear-gradient(to right, transparent calc(var(--yii-debug-tl-label-col) - 1px), var(--yii-debug-panel-border) calc(var(--yii-debug-tl-label-col) - 1px), var(--yii-debug-panel-border) var(--yii-debug-tl-label-col), transparent var(--yii-debug-tl-label-col));display:grid}.yii-debug-tl-row{display:contents}.yii-debug-tl-row:hover .yii-debug-tl-label,.yii-debug-tl-row:hover .yii-debug-tl-track{background:var(--yii-debug-panel-surface-hover)}.yii-debug-tl-row:hover .yii-debug-tl-name{color:var(--yii-debug-panel-text)}.yii-debug-tl-label{min-width:0;padding:8px var(--yii-debug-space-3) 8px calc(var(--yii-debug-space-3) + (var(--depth,0) * 14px));border-bottom:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 50%, transparent);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;transition:background-color .12s;display:grid}.yii-debug-tl-dot{background:var(--yii-debug-cat-db);opacity:.85;border-radius:50%;flex:none;width:6px;height:6px}.yii-debug-tl-name{font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);color:var(--yii-debug-panel-muted);text-overflow:ellipsis;white-space:nowrap;transition:color .12s;overflow:hidden}.yii-debug-tl-track{border-bottom:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 50%, transparent);transition:background-color .12s;position:relative}.yii-debug-tl-bar{background:var(--yii-debug-cat-db);border-radius:4px;min-width:2px;height:18px;position:absolute;top:50%;transform:translateY(-50%);box-shadow:inset 0 1px #ffffff1f,0 1px 2px #0000002e}.yii-debug-tl-bar-duration{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);font-variant-numeric:tabular-nums;white-space:nowrap;justify-self:end;font-weight:500}.yii-debug-tl-memory{grid-template-columns:minmax(180px, var(--yii-debug-tl-label-col)) 1fr auto;padding:var(--yii-debug-space-2) var(--yii-debug-space-3);border-top:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);grid-column:1/3;align-items:center;display:grid}.yii-debug-tl-memory-label{text-transform:uppercase;letter-spacing:.06em}.yii-debug-tl-memory-track{border-radius:var(--yii-debug-radius-sm);background:color-mix(in srgb, var(--yii-debug-panel-surface), transparent 50%);width:100%;color:var(--yii-debug-panel-primary);position:relative;overflow:hidden}.yii-debug-tl-memory-track svg{width:100%;height:100%;display:block}.yii-debug-tl-memory-peak{margin-left:var(--yii-debug-space-2);color:var(--yii-debug-panel-text);font-weight:700}@media (max-width:640px){.yii-debug-tl,.yii-debug-tl-rows{--yii-debug-tl-label-col:52%;grid-template-columns:minmax(140px, var(--yii-debug-tl-label-col)) minmax(0, 1fr)}.yii-debug-tl-label{padding:7px var(--yii-debug-space-2);gap:6px}.yii-debug-tl-memory{grid-template-columns:minmax(140px, var(--yii-debug-tl-label-col)) minmax(0, 1fr)}.yii-debug-tl-memory-peak{text-align:right;grid-column:2;margin:4px 0 0}}.yii-debug .yii-debug-skip-link{top:var(--yii-debug-space-2);left:var(--yii-debug-space-2);z-index:1000;padding:var(--yii-debug-space-2) var(--yii-debug-space-3);border:2px solid var(--yii-debug-focus-ring);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-md);color:var(--yii-debug-panel-text);transform:translateY(calc(-100% - var(--yii-debug-space-4)));font-weight:700;position:fixed}.yii-debug .yii-debug-skip-link:focus-visible{text-decoration:none;transform:translateY(0)}.yii-debug .yii-debug-brand-chip-control{border:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted);cursor:pointer;justify-content:center}.yii-debug .yii-debug-brand-chip-control:hover,.yii-debug .yii-debug-brand-chip-control:focus-visible{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 50%);color:var(--yii-debug-panel-primary-strong);transform:translateY(-1px)}.yii-debug :is(h2,h3).yii-debug-has-permalink{align-items:center;gap:var(--yii-debug-space-1);scroll-margin-block-start:var(--yii-debug-space-5);display:flex}.yii-debug .yii-debug-heading-permalink{border-radius:var(--yii-debug-radius-sm);min-width:32px;min-height:32px;color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);opacity:0;transition:color var(--yii-debug-duration-fast) ease, opacity var(--yii-debug-duration-fast) ease, background var(--yii-debug-duration-fast) ease;flex:none;justify-content:center;align-items:center;line-height:1;text-decoration:none;display:inline-flex}.yii-debug .yii-debug-heading-permalink:hover,.yii-debug .yii-debug-heading-permalink:focus-visible{background:var(--yii-debug-panel-bg-accent);color:var(--yii-debug-panel-primary-strong);opacity:1;text-decoration:none}.yii-debug :is(h2,h3).yii-debug-has-permalink:hover>.yii-debug-heading-permalink,.yii-debug :is(h2,h3).yii-debug-has-permalink:focus-within>.yii-debug-heading-permalink,.yii-debug :is(h2,h3).yii-debug-deep-link-target>.yii-debug-heading-permalink{opacity:1}.yii-debug .yii-debug-deep-link-target{outline:2px solid var(--yii-debug-focus-ring);outline-offset:4px}.yii-debug .yii-debug-db-n1-summary{gap:var(--yii-debug-space-2);margin-bottom:var(--yii-debug-space-4);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border:1px solid color-mix(in srgb, var(--yii-debug-warning), transparent 55%);border-radius:var(--yii-debug-radius-md);background:color-mix(in srgb, var(--yii-debug-warning), transparent 92%);display:grid}.yii-debug .yii-debug-db-n1-heading{justify-content:space-between;align-items:baseline;gap:var(--yii-debug-space-2);flex-wrap:wrap;display:flex}.yii-debug .yii-debug-db-n1-list{gap:var(--yii-debug-space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.yii-debug .yii-debug-db-n1-link,.yii-debug .yii-debug-db-n1-row-link{align-items:center;gap:var(--yii-debug-space-2);min-height:var(--yii-debug-control-min-size);padding:var(--yii-debug-space-1) var(--yii-debug-space-2);border:1px solid color-mix(in srgb, var(--yii-debug-warning), transparent 60%);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface);color:color-mix(in srgb, var(--yii-debug-warning) 72%, var(--yii-debug-panel-text));font-size:var(--yii-debug-fs-xs);font-weight:700;text-decoration:none;display:inline-flex}:is(.yii-debug .yii-debug-db-n1-link,.yii-debug .yii-debug-db-n1-row-link):hover,:is(.yii-debug .yii-debug-db-n1-link,.yii-debug .yii-debug-db-n1-row-link):focus-visible,:is(.yii-debug .yii-debug-db-n1-link,.yii-debug .yii-debug-db-n1-row-link)[aria-current=true]{background:color-mix(in srgb, var(--yii-debug-warning), transparent 84%);color:var(--yii-debug-panel-text);text-decoration:none}.yii-debug .yii-debug-db-n1-fingerprint{max-width:min(56ch,65vw);font-family:var(--yii-debug-font-mono);text-overflow:ellipsis;white-space:nowrap;font-weight:500;display:inline-block;overflow:hidden}.yii-debug .yii-debug-db-n1-row-link{margin-top:var(--yii-debug-space-3)}.yii-debug .yii-debug-grid-db .yii-debug-trace{gap:0;display:grid}.yii-debug .yii-debug-grid-db .yii-debug-trace a{align-items:center;min-height:24px;display:inline-flex}.yii-debug .yii-debug-db-n1-clear[hidden]{display:none}.yii-debug .yii-debug-compare-form{gap:var(--yii-debug-space-3);margin-bottom:var(--yii-debug-space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));align-items:end;display:grid}.yii-debug .yii-debug-compare-overview{gap:var(--yii-debug-space-3);margin-bottom:var(--yii-debug-space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));display:grid}.yii-debug .yii-debug-compare-grid{min-width:42rem}.yii-debug :is(.yii-debug-delta-up,.yii-debug-delta-down,.yii-debug-delta-neutral){padding:2px var(--yii-debug-space-2);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);font-variant-numeric:tabular-nums;align-items:center;font-weight:700;display:inline-flex}.yii-debug .yii-debug-delta-up{border-color:color-mix(in srgb, var(--yii-debug-danger), transparent 60%);background:color-mix(in srgb, var(--yii-debug-danger), transparent 90%);color:var(--yii-debug-danger)}.yii-debug .yii-debug-delta-down{border-color:color-mix(in srgb, var(--yii-debug-success), transparent 60%);background:color-mix(in srgb, var(--yii-debug-success), transparent 90%);color:var(--yii-debug-success)}.yii-debug .yii-debug-delta-neutral{background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted)}@container yii-debug-main (width<=560px){.yii-debug .yii-debug-section-header,.yii-debug .yii-debug-panel-heading{flex-direction:column;align-items:stretch}.yii-debug .yii-debug-filter-input{width:100%;max-width:none}}@media (max-width:767px){.yii-debug .yii-debug-brand-chip-copy .yii-debug-brand-label{text-overflow:ellipsis;white-space:nowrap;max-width:5.5rem;overflow:hidden}}@media (pointer:coarse){.yii-debug .yii-debug-grid-db .yii-debug-trace a{min-width:44px;min-height:44px}.yii-debug :is(.yii-debug-btn,.yii-debug-brand-chip,.yii-debug-cell-more-toggle,.yii-debug-dropdown-item,.yii-debug-filter-input,.yii-debug-heading-permalink,.yii-debug-server-group-summary,.yii-debug-tab-link){min-height:44px}}@media (forced-colors:active){.yii-debug .yii-debug-card,.yii-debug .yii-debug-brand-bar,.yii-debug .yii-debug-brand-chip,.yii-debug .yii-debug-nav,.yii-debug .yii-debug-table-wrap{box-shadow:none;border-color:canvastext}.yii-debug .yii-debug-nav-link.is-active,.yii-debug .yii-debug-tab-link.is-active{color:highlighttext;background:highlight;border-color:highlight}.yii-debug :focus-visible{outline-color:highlight}} +:root,:host{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--yii-debug-font-sans:"IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, helvetica, arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--yii-debug-font-mono:"JetBrains Mono", ui-monospace, sfmono-regular, menlo, monaco, consolas, "Liberation Mono", "Courier New", monospace;--yii-debug-font-display:var(--yii-debug-font-mono);--yii-debug-space-1:4px;--yii-debug-space-2:8px;--yii-debug-space-3:12px;--yii-debug-space-4:16px;--yii-debug-space-5:24px;--yii-debug-space-6:32px;--yii-debug-radius-sm:6px;--yii-debug-radius-md:10px;--yii-debug-radius-lg:14px;--yii-debug-radius-pill:999px;--yii-debug-fs-xs:.75rem;--yii-debug-fs-sm:.8125rem;--yii-debug-fs-base:.9375rem;--yii-debug-fs-lg:1.0625rem;--yii-debug-fs-xl:1.25rem;--yii-debug-fs-2xl:1.5rem;--yii-debug-control-min-size:36px;--yii-debug-panel-padding:var(--yii-debug-space-5);--yii-debug-row-padding-block:10px;--yii-debug-duration-fast:.12s;--yii-debug-duration-normal:.18s;--yii-debug-panel-bg:var(--lightningcss-light,#f2f5f1)var(--lightningcss-dark,#0c120e);--yii-debug-panel-bg-accent:var(--lightningcss-light,#0e7a551a)var(--lightningcss-dark,#2fd08c14);--yii-debug-panel-surface:var(--lightningcss-light,#fffffff0)var(--lightningcss-dark,#121a15eb);--yii-debug-panel-surface-muted:var(--lightningcss-light,#f6f8f5)var(--lightningcss-dark,#101812);--yii-debug-panel-surface-hover:var(--lightningcss-light,#e9f2ec)var(--lightningcss-dark,#1a241d);--yii-debug-panel-border:var(--lightningcss-light,#5d7a6942)var(--lightningcss-dark,#8fa39633);--yii-debug-panel-border-strong:var(--lightningcss-light,#4660515c)var(--lightningcss-dark,#8fa39652);--yii-debug-panel-text:var(--lightningcss-light,#16211a)var(--lightningcss-dark,#e4ede6);--yii-debug-panel-muted:var(--lightningcss-light,#5c6b60)var(--lightningcss-dark,#8fa396);--yii-debug-panel-link:var(--lightningcss-light,#0b6b4a)var(--lightningcss-dark,#4fd39a);--yii-debug-panel-link-hover:var(--lightningcss-light,#0d855b)var(--lightningcss-dark,#7fe4b8);--yii-debug-panel-primary:var(--lightningcss-light,#0e7a55)var(--lightningcss-dark,#2fd08c);--yii-debug-primary-bg:linear-gradient(135deg, var(--yii-debug-panel-primary-strong), var(--yii-debug-panel-primary));--yii-debug-on-primary:var(--lightningcss-light,#fff)var(--lightningcss-dark,#06281b);--yii-debug-panel-primary-strong:var(--lightningcss-light,#0a5c40)var(--lightningcss-dark,#17a673);--yii-debug-focus-ring:var(--lightningcss-light,#075c40)var(--lightningcss-dark,#7fe4b8);--yii-debug-success:var(--lightningcss-light,#0d7d47)var(--lightningcss-dark,#34c97e);--yii-debug-warning:var(--lightningcss-light,#8f5000)var(--lightningcss-dark,#e8a33d);--yii-debug-danger:var(--lightningcss-light,#c93838)var(--lightningcss-dark,#f16a6a);--yii-debug-on-success:var(--lightningcss-light,#fff)var(--lightningcss-dark,#0c120e);--yii-debug-on-warning:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1c1917);--yii-debug-on-danger:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1c1917);--yii-debug-info:var(--lightningcss-light,#205f9d)var(--lightningcss-dark,#5fa8e8);--yii-debug-on-info:var(--yii-debug-panel-bg);--yii-debug-panel-code-bg:var(--lightningcss-light,#ecf1ec)var(--lightningcss-dark,#17211a);--yii-debug-panel-pill:var(--lightningcss-light,#16211a0f)var(--lightningcss-dark,#8fa3962e);--yii-debug-panel-shadow:var(--lightningcss-light,0 22px 60px #16211a14)var(--lightningcss-dark,0 22px 60px #0006);--yii-debug-border:1px solid var(--yii-debug-panel-border);--yii-debug-border-strong:1px solid var(--yii-debug-panel-border-strong);--yii-debug-shadow-sm:0 1px 2px #0f172a0f;--yii-debug-shadow-md:0 10px 24px #0f172a14;--yii-debug-verb-get:var(--lightningcss-light,#0b7285)var(--lightningcss-dark,#4dc4d9);--yii-debug-verb-post:var(--lightningcss-light,#6941c6)var(--lightningcss-dark,#a78bfa);--yii-debug-verb-put:var(--lightningcss-light,#b26a00)var(--lightningcss-dark,#e8a33d);--yii-debug-verb-delete:var(--lightningcss-light,#c93838)var(--lightningcss-dark,#f16a6a);--yii-debug-verb-other:var(--yii-debug-panel-muted);--yii-debug-status-2xx:var(--yii-debug-success);--yii-debug-status-3xx:var(--yii-debug-warning);--yii-debug-status-4xx:var(--lightningcss-light,#c2410c)var(--lightningcss-dark,#fb923c);--yii-debug-status-5xx:var(--yii-debug-danger);--yii-debug-level-error:var(--yii-debug-danger);--yii-debug-level-warning:var(--yii-debug-warning);--yii-debug-level-info:var(--yii-debug-info);--yii-debug-level-trace:var(--yii-debug-panel-muted);--yii-debug-level-profile:var(--lightningcss-light,#9333ea)var(--lightningcss-dark,#b16be8);--yii-debug-level-other:var(--yii-debug-panel-muted);--yii-debug-gauge-fill:var(--yii-debug-panel-primary);--yii-debug-gauge-track:var(--lightningcss-light,#0e7a5529)var(--lightningcss-dark,#2fd08c24);--yii-debug-sql-kw:var(--lightningcss-light,#0a5c40)var(--lightningcss-dark,#4fd39a);--yii-debug-sql-str:var(--lightningcss-light,#8f4e00)var(--lightningcss-dark,#e8a33d);--yii-debug-sql-num:var(--yii-debug-info);--yii-debug-sql-comment:var(--yii-debug-panel-muted);--yii-debug-sql-param:var(--lightningcss-light,#6941c6)var(--lightningcss-dark,#a78bfa);--yii-debug-cat-app:var(--lightningcss-light,#0a6b47)var(--lightningcss-dark,#14b06e);--yii-debug-cat-db:var(--lightningcss-light,#0994b8)var(--lightningcss-dark,#0999be);--yii-debug-cat-view:var(--lightningcss-light,#6941c6)var(--lightningcss-dark,#8f6ce8);--yii-debug-cat-cache:var(--lightningcss-light,#b26a00)var(--lightningcss-dark,#c28300);--yii-debug-cat-mail:var(--lightningcss-light,#b23a67)var(--lightningcss-dark,#d95f8f);--yii-debug-cat-queue:var(--lightningcss-light,#3f4dbd)var(--lightningcss-dark,#6d7ce6);--yii-debug-cat-other:var(--yii-debug-panel-muted)}@media (prefers-color-scheme:dark){:root,:host{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-yii-debug-theme=light],:host([data-theme=light]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-yii-debug-theme=dark],:host([data-theme=dark]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../fonts/jetbrains-mono-latin-400-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../fonts/jetbrains-mono-latin-500-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(../fonts/jetbrains-mono-latin-700-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(../fonts/ibm-plex-sans-latin-400-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(../fonts/ibm-plex-sans-latin-500-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(../fonts/ibm-plex-sans-latin-600-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(../fonts/ibm-plex-sans-latin-700-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.yii-debug .yii-debug-event-controls{margin-block:var(--yii-debug-space-4);font-size:var(--yii-debug-fs-xs)}.yii-debug .yii-debug-event-groups{align-items:center;gap:var(--yii-debug-space-2);margin-block:var(--yii-debug-space-4);flex-wrap:wrap;display:flex}.yii-debug .yii-debug-event-group{align-items:center;gap:var(--yii-debug-space-2);min-height:var(--yii-debug-control-min-size);padding:var(--yii-debug-space-1) var(--yii-debug-space-2);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface-muted);overflow-wrap:anywhere;display:inline-flex}.yii-debug .yii-debug-event-item>summary{cursor:pointer;list-style:none}.yii-debug .yii-debug-event-item>summary:focus-visible{outline:2px solid var(--yii-debug-panel-primary);outline-offset:4px;border-radius:var(--yii-debug-radius-sm)}.yii-debug :is(.yii-debug-event-clock,.yii-debug-event-identity){gap:var(--yii-debug-space-1);display:grid}.yii-debug .yii-debug-event-clock{min-width:105px}.yii-debug .yii-debug-event-time{white-space:nowrap;color:var(--yii-debug-panel-primary)}.yii-debug .yii-debug-event-identity{overflow-wrap:anywhere;min-width:0}.yii-debug .yii-debug-event-name:before{content:"+ ";color:var(--yii-debug-panel-primary)}.yii-debug .yii-debug-event-item[open] .yii-debug-event-name:before{content:"− "}.yii-debug .yii-debug-event-timing{font-size:var(--yii-debug-fs-xs)}.yii-debug .yii-debug-event-detail-row{display:none}.yii-debug .yii-debug-table tr:has(.yii-debug-event-item[open])+.yii-debug-event-detail-row{display:table-row}.yii-debug .yii-debug-table .yii-debug-event-detail-row>td{padding:0}.yii-debug .yii-debug-event-detail{gap:var(--yii-debug-space-4);padding:var(--yii-debug-space-4);background:var(--yii-debug-panel-surface-muted);white-space:normal;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.yii-debug .yii-debug-event-detail>div{min-width:0}.yii-debug .yii-debug-event-detail-footer{gap:var(--yii-debug-space-2) var(--yii-debug-space-4);flex-wrap:wrap;grid-column:1/-1;display:flex}.yii-debug .yii-debug-event-metadata{gap:var(--yii-debug-space-2) var(--yii-debug-space-3);grid-template-columns:minmax(75px,.4fr) minmax(0,1fr);display:grid}.yii-debug .yii-debug-event-metadata dt{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-event-metadata dd{margin:0}.yii-debug .yii-debug-event-trace pre{white-space:pre-wrap;overflow-wrap:anywhere}.yii-debug :is(.yii-debug-event-context,.yii-debug-event-trace)>:last-child{margin-bottom:0}@media not (min-width:768px){.yii-debug .yii-debug-event-detail{grid-template-columns:minmax(0,1fr)}}.yii-debug .yii-debug-event-coverage>summary{min-height:var(--yii-debug-control-min-size);padding-block:var(--yii-debug-space-2);cursor:pointer}.yii-debug .yii-debug-request-hero{margin-bottom:var(--yii-debug-space-4);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface-muted);box-shadow:var(--yii-debug-shadow-sm)}.yii-debug .yii-debug-request-overview{margin-bottom:var(--yii-debug-space-4);border:var(--yii-debug-border);border-inline-start:4px solid color-mix(in srgb, var(--yii-debug-hue,var(--yii-debug-panel-muted)) 76%, var(--yii-debug-panel-text));border-radius:var(--yii-debug-radius-lg);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-sm);overflow:hidden}.yii-debug .yii-debug-request-overview-header{gap:var(--yii-debug-space-4);padding:var(--yii-debug-space-4);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.yii-debug .yii-debug-request-overview-identity{min-width:0}.yii-debug .yii-debug-request-hero-line{align-items:center;gap:var(--yii-debug-space-2);min-width:0;font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-base);display:flex}.yii-debug .yii-debug-request-hero-method{border-radius:var(--yii-debug-radius-pill);letter-spacing:.04em;flex:none;padding:2px 10px;font-weight:700}.yii-debug .yii-debug-request-hero-url{min-width:0;color:var(--yii-debug-panel-text);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.yii-debug .yii-debug-request-hero-meta{align-items:center;gap:6px var(--yii-debug-space-3);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);flex-wrap:wrap;margin-top:6px;display:flex}.yii-debug .yii-debug-request-hero-meta:empty{display:none}.yii-debug .yii-debug-request-hero-meta-item{align-items:baseline;gap:var(--yii-debug-space-1);display:inline-flex}.yii-debug .yii-debug-request-hero-meta-label{font-family:var(--yii-debug-font-sans);letter-spacing:.07em;text-transform:uppercase;font-size:.625rem;font-weight:700}.yii-debug .yii-debug-request-hero-meta-value{color:var(--yii-debug-panel-text)}.yii-debug .yii-debug-request-overview-status{text-align:right;min-width:72px}.yii-debug .yii-debug-request-overview-metrics{border-block:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto;margin:0;display:grid}.yii-debug .yii-debug-request-overview-metric{min-width:0;padding:var(--yii-debug-space-3) var(--yii-debug-space-4)}.yii-debug .yii-debug-request-overview-metric+:is(.yii-debug .yii-debug-request-overview-metric){border-inline-start:var(--yii-debug-border)}.yii-debug .yii-debug-request-overview-metric dt{color:var(--yii-debug-panel-muted);letter-spacing:.07em;text-transform:uppercase;margin-bottom:2px;font-size:.6875rem;font-weight:700}.yii-debug .yii-debug-request-overview-metric dd{align-items:center;gap:var(--yii-debug-space-2);min-width:0;color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);overflow-wrap:anywhere;flex-wrap:wrap;margin:0;font-weight:600;display:flex}.yii-debug .yii-debug-request-overview-meta{align-items:center;gap:var(--yii-debug-space-2) var(--yii-debug-space-5);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);flex-wrap:wrap;display:flex}.yii-debug .yii-debug-request-overview-config{align-items:center;gap:var(--yii-debug-space-2);flex-wrap:wrap;margin-inline-start:auto;display:inline-flex}.yii-debug .yii-debug-request-overview-meta-item{flex-direction:column;align-items:flex-start;min-width:0;display:inline-flex}.yii-debug .yii-debug-request-overview-meta-label{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-sans);letter-spacing:.07em;text-transform:uppercase;margin-bottom:2px;font-size:.6875rem;font-weight:700}.yii-debug .yii-debug-request-overview-tag{max-width:34ch;color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.yii-debug .yii-debug-request-routing-error{border-width:1px 0 0 4px;border-radius:0;margin:0}.yii-debug .yii-debug-request-routing-error p{margin:0}.yii-debug .yii-debug-request-tabs{min-width:0}.yii-debug .yii-debug-request-tabs>.yii-debug-tabs{scrollbar-width:thin;flex-wrap:nowrap;overflow-x:auto}.yii-debug .yii-debug-request-tabs .yii-debug-tab{flex:none}.yii-debug .yii-debug-request-tabs .yii-debug-empty-state{padding:var(--yii-debug-space-4)}.yii-debug .yii-debug-request-tabs .yii-debug-empty-state h2{font-size:var(--yii-debug-fs-base);margin:0}.yii-debug .yii-debug-diagnostic-shell{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-lg);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-sm);overflow:hidden}.yii-debug .yii-debug-diagnostic-header{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-4);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border-bottom:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);display:flex}.yii-debug .yii-debug-diagnostic-heading-copy{align-items:baseline;gap:var(--yii-debug-space-2) var(--yii-debug-space-3);flex-wrap:wrap;min-width:0;display:flex}.yii-debug .yii-debug-diagnostic-heading-copy h2{margin:0}.yii-debug .yii-debug-diagnostic-counts{align-items:center;gap:var(--yii-debug-space-2);display:inline-flex}.yii-debug .yii-debug-diagnostic-count,.yii-debug .yii-debug-diagnostic-total,.yii-debug .yii-debug-header-lane-count,.yii-debug .yii-debug-server-group-count{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);font-variant-numeric:tabular-nums}.yii-debug .yii-debug-diagnostic-count{align-items:baseline;gap:var(--yii-debug-space-1);display:inline-flex}.yii-debug .yii-debug-diagnostic-count+.yii-debug-diagnostic-count:before{width:1px;height:12px;background:var(--yii-debug-panel-border-strong);content:"";margin-inline-end:var(--yii-debug-space-1)}.yii-debug .yii-debug-diagnostic-count-value{color:var(--yii-debug-panel-text);font-weight:700}.yii-debug .yii-debug-diagnostic-filter{background:var(--yii-debug-panel-surface);width:min(280px,42%);max-width:none}.yii-debug .yii-debug-header-lanes{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.yii-debug .yii-debug-header-lane{min-width:0;position:relative}.yii-debug .yii-debug-header-lane+.yii-debug-header-lane{border-inline-start:2px solid color-mix(in srgb, var(--yii-debug-panel-primary) 36%, var(--yii-debug-panel-border))}.yii-debug .yii-debug-header-lane+.yii-debug-header-lane:before{z-index:1;top:25px;border:2px solid var(--yii-debug-panel-surface);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-primary);content:"";width:8px;height:8px;position:absolute;inset-inline-start:-5px}.yii-debug .yii-debug-header-lane-header{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-3);min-height:58px;padding:10px var(--yii-debug-space-4);border-bottom:var(--yii-debug-border);display:flex}.yii-debug .yii-debug-header-lane-header h3{font-size:var(--yii-debug-fs-base);margin:1px 0 0}.yii-debug .yii-debug-header-direction{color:var(--yii-debug-panel-primary-strong);font-family:var(--yii-debug-font-mono);letter-spacing:.04em;font-size:.6875rem;font-weight:700;display:block}.yii-debug .yii-debug-diagnostic-ledger{margin:0}.yii-debug .yii-debug-diagnostic-row{border-top:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 58%, transparent);grid-template-columns:minmax(132px,.72fr) minmax(0,1.28fr);align-items:start;display:grid}.yii-debug .yii-debug-diagnostic-row:first-child{border-top:0}.yii-debug .yii-debug-diagnostic-row:hover{background:var(--yii-debug-panel-surface-hover)}.yii-debug .yii-debug-diagnostic-row dt,.yii-debug .yii-debug-diagnostic-row dd{min-width:0;padding:10px var(--yii-debug-space-4);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);line-height:1.5}.yii-debug .yii-debug-diagnostic-row dt{color:var(--yii-debug-panel-muted);overflow-wrap:anywhere;font-weight:600;overflow:hidden}.yii-debug .yii-debug-diagnostic-row dd{border-inline-start:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 45%, transparent);color:var(--yii-debug-panel-text);overflow-wrap:anywhere;white-space:pre-wrap;margin:0}.yii-debug .yii-debug-header-ledger .yii-debug-diagnostic-row:nth-child(2n),.yii-debug .yii-debug-server-ledger .yii-debug-diagnostic-row:nth-child(2n){background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 72%)}:is(.yii-debug .yii-debug-header-ledger .yii-debug-diagnostic-row:nth-child(2n),.yii-debug .yii-debug-server-ledger .yii-debug-diagnostic-row:nth-child(2n)):hover{background:var(--yii-debug-panel-surface-hover)}.yii-debug .yii-debug-diagnostic-values{gap:6px;display:grid}.yii-debug .yii-debug-diagnostic-value-count{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-sans);font-size:.6875rem}.yii-debug .yii-debug-diagnostic-value-list{gap:var(--yii-debug-space-1);margin:0;padding:0;list-style:none;display:grid}.yii-debug .yii-debug-diagnostic-value-list li+li{padding-top:var(--yii-debug-space-1);border-top:1px dashed var(--yii-debug-panel-border)}.yii-debug .yii-debug-diagnostic-empty-value,.yii-debug .yii-debug-diagnostic-lane-empty,.yii-debug .yii-debug-diagnostic-empty-state,.yii-debug .yii-debug-diagnostic-filter-empty{color:var(--yii-debug-panel-muted);font-style:italic}.yii-debug .yii-debug-diagnostic-lane-empty,.yii-debug .yii-debug-diagnostic-empty-state,.yii-debug .yii-debug-diagnostic-filter-empty{padding:var(--yii-debug-space-4);margin:0}.yii-debug .yii-debug-diagnostic-filter-empty{border-top:var(--yii-debug-border);text-align:center}.yii-debug .yii-debug-server-group-body>.yii-debug-mini-toolbar{padding:var(--yii-debug-space-2) var(--yii-debug-space-4);border-bottom:var(--yii-debug-border);margin:0}.yii-debug .yii-debug-server-group-body>.yii-debug-mini-toolbar .yii-debug-filter-input{max-width:100%}.yii-debug .yii-debug-server-additional+.yii-debug-server-group,.yii-debug .yii-debug-server-group+.yii-debug-server-group{border-top:var(--yii-debug-border)}.yii-debug .yii-debug-server-group-summary{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-3);min-height:44px;padding:9px var(--yii-debug-space-4);border-bottom:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);display:flex}.yii-debug .yii-debug-server-group-summary .yii-debug-server-group-title{font-size:var(--yii-debug-fs-sm);margin:0;font-weight:700}.yii-debug .yii-debug-server-group-summary{cursor:pointer;list-style:none}.yii-debug .yii-debug-server-group-summary::-webkit-details-marker{display:none}.yii-debug .yii-debug-server-group-summary:hover,.yii-debug .yii-debug-server-group-summary:focus-visible{background:var(--yii-debug-panel-surface-hover)}.yii-debug .yii-debug-server-group-identity{align-items:baseline;gap:var(--yii-debug-space-2);display:inline-flex}.yii-debug .yii-debug-server-group:not([open])>.yii-debug-server-group-summary{border-bottom:0}.yii-debug .yii-debug-server-group-summary .yii-debug-disclosure-hint{margin-inline-start:auto}.yii-debug .yii-debug-diagnostic-row[hidden],.yii-debug .yii-debug-header-lane[hidden],.yii-debug .yii-debug-server-group[hidden],.yii-debug .yii-debug-diagnostic-filter-empty[hidden]{display:none}@container yii-debug-main (width<=900px){.yii-debug .yii-debug-header-lanes{grid-template-columns:minmax(0,1fr)}.yii-debug .yii-debug-header-lane+.yii-debug-header-lane{border-top:2px solid color-mix(in srgb, var(--yii-debug-panel-primary) 36%, var(--yii-debug-panel-border));border-inline-start:0}.yii-debug .yii-debug-header-lane+.yii-debug-header-lane:before{top:-5px;inset-inline-start:var(--yii-debug-space-4)}}@container yii-debug-main (width<=560px){.yii-debug .yii-debug-diagnostic-header{flex-direction:column;align-items:stretch}.yii-debug .yii-debug-diagnostic-filter{width:100%}.yii-debug .yii-debug-diagnostic-row{grid-template-columns:minmax(0,1fr)}.yii-debug .yii-debug-diagnostic-row dt{padding-bottom:var(--yii-debug-space-1)}.yii-debug .yii-debug-diagnostic-row dd{border-inline-start:0;padding-top:0}}.yii-debug .yii-debug-route-resolution{margin:var(--yii-debug-space-3) var(--yii-debug-space-4) var(--yii-debug-space-4)}.yii-debug .yii-debug-route-resolution-message{margin:0 0 var(--yii-debug-space-3);color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-sm)}.yii-debug .yii-debug-route-trace{min-width:560px}.yii-debug .yii-debug-table.yii-debug-route-trace thead th,.yii-debug .yii-debug-table.yii-debug-route-trace tbody td{text-align:center}.yii-debug .yii-debug-table.yii-debug-route-trace thead th:nth-child(2),.yii-debug .yii-debug-table.yii-debug-route-trace tbody td:nth-child(2){text-align:start}.yii-debug .yii-debug-table.yii-debug-route-trace thead th:first-child,.yii-debug .yii-debug-table.yii-debug-route-trace tbody td:first-child{width:56px}.yii-debug .yii-debug-table.yii-debug-route-trace thead th:last-child,.yii-debug .yii-debug-table.yii-debug-route-trace tbody td:last-child{width:160px}.yii-debug{background:radial-gradient(circle at top left, var(--yii-debug-panel-bg-accent), transparent 36rem), var(--yii-debug-panel-bg);min-height:100vh;color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-base);margin:0;padding:0;line-height:1.5}.yii-debug *,.yii-debug :before,.yii-debug :after{box-sizing:border-box}.yii-debug h1,.yii-debug h2,.yii-debug h3,.yii-debug h4,.yii-debug h5,.yii-debug h6{margin:0 0 var(--yii-debug-space-3);color:var(--yii-debug-panel-text);letter-spacing:-.01em;font-weight:700;line-height:1.25}.yii-debug h1{font-size:var(--yii-debug-fs-2xl)}.yii-debug h2{font-size:var(--yii-debug-fs-xl)}.yii-debug h3{font-size:var(--yii-debug-fs-lg)}.yii-debug h4,.yii-debug h5,.yii-debug h6{font-size:var(--yii-debug-fs-base)}.yii-debug p,.yii-debug ul,.yii-debug ol,.yii-debug dl,.yii-debug figure{margin:0 0 var(--yii-debug-space-3)}.yii-debug ul,.yii-debug ol{padding-left:var(--yii-debug-space-5)}.yii-debug strong,.yii-debug b{font-weight:600}.yii-debug a{color:var(--yii-debug-panel-link);text-decoration:none;transition:color .12s}.yii-debug a:hover,.yii-debug a:focus{color:var(--yii-debug-panel-link-hover);text-decoration:underline}.yii-debug code,.yii-debug kbd,.yii-debug samp{border-radius:var(--yii-debug-radius-sm);background:var(--yii-debug-panel-code-bg);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-variant-ligatures:none;padding:.1em .35em;font-size:.875em}.yii-debug pre{margin:0 0 var(--yii-debug-space-3);padding:var(--yii-debug-space-3);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-code-bg);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);font-variant-ligatures:none;line-height:1.4;overflow-x:auto}.yii-debug pre code{font-size:inherit;background:0 0;padding:0}.yii-debug :focus-visible{outline:3px solid var(--yii-debug-focus-ring);outline-offset:3px}.yii-debug .yii-debug-page{max-width:1680px;padding:var(--yii-debug-space-4);margin:0 auto}.yii-debug .yii-debug-layout{gap:var(--yii-debug-space-4);grid-template-columns:240px 1fr;align-items:start;display:grid}@media (max-width:959px){.yii-debug .yii-debug-layout{grid-template-columns:1fr}}@media (min-width:960px){.yii-debug .yii-debug-sidebar{top:var(--yii-debug-space-4);max-height:calc(100vh - var(--yii-debug-space-5));position:sticky;overflow-y:auto}}.yii-debug .yii-debug-main{min-width:0;container:yii-debug-main/inline-size}.yii-debug .yii-debug-main>*+:is(h2,.yii-debug-disclosure),.yii-debug .yii-debug-tab-panel>.yii-debug-table-wrap+.yii-debug-disclosure{margin-top:var(--yii-debug-space-5)}.yii-debug .yii-debug-main>.yii-debug-sr-only:first-child+:is(h2,.yii-debug-disclosure){margin-top:0}.yii-debug .yii-debug-mini-toolbar{justify-content:flex-end;align-items:center;gap:var(--yii-debug-space-2);margin-bottom:var(--yii-debug-space-4);flex-wrap:wrap;display:flex}.yii-debug .yii-debug-side-section{gap:var(--yii-debug-space-2);margin:0 0 var(--yii-debug-space-3);padding:var(--yii-debug-space-3);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-lg);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-sm);flex-direction:column;display:flex}.yii-debug .yii-debug-side-section-title{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:700}.yii-debug .yii-debug-request-nav-row{width:100%;margin-top:var(--yii-debug-space-2);grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.yii-debug .yii-debug-btn-icon{justify-content:center;align-items:center;padding:4px 0;font-size:16px;line-height:1;display:inline-flex}.yii-debug .yii-debug-btn-icon svg{width:1em;height:1em}.yii-debug .yii-debug-request-nav .yii-debug-btn{justify-content:center;width:100%}.yii-debug .yii-debug-brand-bar{align-items:center;gap:var(--yii-debug-space-2);margin-bottom:var(--yii-debug-space-3);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-lg);background:linear-gradient(180deg, color-mix(in srgb, var(--yii-debug-panel-surface) 96%, transparent), color-mix(in srgb, var(--yii-debug-panel-surface-muted) 88%, transparent));box-shadow:var(--yii-debug-shadow-sm);flex-wrap:wrap;padding:8px 12px;display:flex}.yii-debug .yii-debug-brand-chip{border:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 70%, transparent);border-radius:var(--yii-debug-radius-pill);background:color-mix(in srgb, var(--yii-debug-panel-surface), transparent 30%);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);min-height:var(--yii-debug-control-min-size);align-items:center;gap:8px;padding:6px 12px;text-decoration:none;transition:border-color .14s,transform .14s,box-shadow .14s;display:inline-flex}.yii-debug a.yii-debug-brand-chip:hover,.yii-debug a.yii-debug-brand-chip:focus{border-color:var(--yii-debug-panel-primary);box-shadow:var(--yii-debug-shadow-sm);text-decoration:none;transform:translateY(-1px)}.yii-debug .yii-debug-brand-icon{flex:none;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.yii-debug .yii-debug-brand-icon svg{width:100%;height:100%}.yii-debug .yii-debug-brand-chip-php .yii-debug-brand-icon{width:32px}.yii-debug .yii-debug-brand-chip-php .yii-debug-brand-icon svg{fill:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-brand-label{color:var(--yii-debug-panel-muted);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.yii-debug .yii-debug-brand-value{color:var(--yii-debug-panel-text);font-weight:700}.yii-debug .yii-debug-brand-chip-mem{margin-left:auto}.yii-debug .yii-debug-brand-chip-config{border:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted);text-decoration:none;transition:transform .14s,border-color .14s,color .14s,background-color .14s}.yii-debug .yii-debug-brand-chip-config .yii-debug-brand-icon{justify-content:center;align-items:center;width:14px;height:14px;transition:transform .24s;display:inline-flex}.yii-debug .yii-debug-brand-chip-config .yii-debug-brand-icon svg{width:100%;height:100%}.yii-debug .yii-debug-brand-chip-config:hover,.yii-debug .yii-debug-brand-chip-config:focus-visible{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 50%);color:var(--yii-debug-panel-primary-strong);text-decoration:none;transform:translateY(-1px)}.yii-debug .yii-debug-brand-chip-config:hover .yii-debug-brand-icon,.yii-debug .yii-debug-brand-chip-config:focus-visible .yii-debug-brand-icon{transform:rotate(45deg)}.yii-debug .yii-debug-brand-chip-config.is-disabled{opacity:.5;cursor:default;pointer-events:none}.yii-debug .yii-debug-brand-chip-config{margin-left:auto}.yii-debug .yii-debug-brand-bar:has(.yii-debug-brand-chip-mem) .yii-debug-brand-chip-config{margin-left:0}.yii-debug .yii-debug-brand-chip-theme{border:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted);cursor:pointer;padding:6px 10px;transition:transform .14s,border-color .14s,color .14s,background-color .14s}.yii-debug .yii-debug-brand-chip-theme:hover,.yii-debug .yii-debug-brand-chip-theme:focus-visible{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 50%);color:var(--yii-debug-panel-primary-strong);transform:translateY(-1px)}.yii-debug .yii-debug-brand-chip-theme .yii-debug-brand-icon{justify-content:center;align-items:center;width:16px;height:16px;transition:transform .24s;display:inline-flex}.yii-debug .yii-debug-brand-chip-theme .yii-debug-brand-icon svg{width:100%;height:100%}.yii-debug .yii-debug-brand-chip-theme:hover .yii-debug-brand-icon{transform:rotate(20deg)}.yii-debug .yii-debug-snapshot-line{min-width:0;font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);align-items:baseline;gap:6px;display:flex}.yii-debug .yii-debug-snapshot-method{color:color-mix(in srgb, var(--yii-debug-hue,var(--yii-debug-panel-primary-strong)) 80%, var(--yii-debug-panel-text));flex:none;font-weight:700}.yii-debug .yii-debug-snapshot-url{min-width:0;color:var(--yii-debug-panel-text);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;overflow:hidden}.yii-debug .yii-debug-snapshot-meta{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);align-items:center;gap:6px;display:flex}.yii-debug .yii-debug-snapshot-status{border-radius:var(--yii-debug-radius-pill);padding:1px 6px;font-weight:700;display:inline-block}.yii-debug .yii-debug-snapshot-tag{border:1px solid var(--yii-debug-panel-border);border-radius:var(--yii-debug-radius-pill);padding:0 6px}.yii-debug .yii-debug-request-overview-status-value{font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-lg);letter-spacing:-.03em;padding:3px 9px;line-height:1.2}.yii-debug .yii-debug-panel-heading-eyebrow{color:var(--yii-debug-panel-muted);letter-spacing:.09em;text-transform:uppercase;margin-bottom:5px;font-size:.6875rem;font-weight:700;line-height:1.2;display:block}.yii-debug .yii-debug-request-overview-flag,.yii-debug .yii-debug-panel-heading-kind{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-pill);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);letter-spacing:.07em;text-transform:uppercase;padding:2px 8px;font-size:.625rem;font-weight:700;line-height:1.4}.yii-debug .yii-debug-panel-heading{justify-content:space-between;align-items:flex-end;gap:var(--yii-debug-space-3);margin:var(--yii-debug-space-5) 0 var(--yii-debug-space-3);padding-bottom:var(--yii-debug-space-2);border-bottom:var(--yii-debug-border);display:flex}.yii-debug .yii-debug-panel-heading-copy{min-width:0}.yii-debug .yii-debug-panel-heading-copy h2{margin:0}.yii-debug .yii-debug-panel-heading-kind{flex:none;margin-bottom:2px}.yii-debug pre.yii-debug-panel-payload{min-height:180px;padding:var(--yii-debug-space-4);border:var(--yii-debug-border);background:linear-gradient(90deg, color-mix(in srgb, var(--yii-debug-panel-primary), transparent 88%), transparent 42%), var(--yii-debug-panel-code-bg);margin-bottom:0;line-height:1.55}@media (max-width:640px){.yii-debug .yii-debug-request-overview-header{gap:var(--yii-debug-space-3);grid-template-columns:minmax(0,1fr)}.yii-debug .yii-debug-request-overview-status{align-items:center;gap:var(--yii-debug-space-2);text-align:left;display:flex}.yii-debug .yii-debug-request-overview-metrics{grid-template-columns:1fr}.yii-debug .yii-debug-request-overview-metric+.yii-debug-request-overview-metric{border-block-start:var(--yii-debug-border);border-inline-start:0}.yii-debug .yii-debug-request-overview-meta-item{max-width:100%}.yii-debug .yii-debug-panel-heading{align-items:flex-start}}.yii-debug .yii-debug-section-header{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-3);margin:var(--yii-debug-space-4) 0 var(--yii-debug-space-2);display:flex}.yii-debug .yii-debug-section-header h2,.yii-debug .yii-debug-section-header h3{margin:0}.yii-debug .yii-debug-filter-input{width:240px;max-width:50%;padding:4px var(--yii-debug-space-2);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);color:var(--yii-debug-panel-text);font:inherit;flex:none}.yii-debug .yii-debug-filter-input::placeholder{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-filter-input:focus{border-color:var(--yii-debug-panel-primary)}.yii-debug .yii-debug-stack>*+*{margin-top:var(--yii-debug-space-4)}.yii-debug .yii-debug-card{padding:var(--yii-debug-panel-padding);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-lg);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-md)}.yii-debug .yii-debug-nav{padding:var(--yii-debug-space-2);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-lg);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-sm);margin:0}.yii-debug .yii-debug-nav ul{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.yii-debug .yii-debug-nav-group{margin-top:var(--yii-debug-space-3)}.yii-debug .yii-debug-nav-group>.yii-debug-nav{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.yii-debug .yii-debug-nav-link{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-2);border-radius:var(--yii-debug-radius-md);color:var(--yii-debug-panel-text);padding:8px 12px;font-weight:600;text-decoration:none;transition:background .12s,color .12s;display:flex}.yii-debug .yii-debug-nav-link:after{content:"›";color:var(--yii-debug-panel-muted);font-size:1.1em;line-height:1}.yii-debug .yii-debug-nav-link:hover,.yii-debug .yii-debug-nav-link:focus{background:var(--yii-debug-panel-surface-hover);color:var(--yii-debug-panel-text);text-decoration:none}.yii-debug .yii-debug-nav-link.is-active,.yii-debug .yii-debug-nav-link[aria-current=page]{background:var(--yii-debug-primary-bg);color:var(--yii-debug-on-primary)}:is(.yii-debug .yii-debug-nav-link.is-active,.yii-debug .yii-debug-nav-link[aria-current=page]):after{color:inherit}.yii-debug .yii-debug-btn{justify-content:center;align-items:center;gap:var(--yii-debug-space-1);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface);min-height:32px;color:var(--yii-debug-panel-text);font-family:inherit;font-size:var(--yii-debug-fs-sm);letter-spacing:0;text-transform:none;cursor:pointer;padding:6px 14px;font-weight:600;line-height:1;text-decoration:none;transition:border-color .12s,background .12s,color .12s,transform .12s,box-shadow .12s;display:inline-flex}.yii-debug .yii-debug-btn:hover,.yii-debug .yii-debug-btn:focus{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 30%);background:var(--yii-debug-panel-surface-hover);color:var(--yii-debug-panel-link-hover);text-decoration:none;transform:translateY(-1px)}.yii-debug .yii-debug-btn:active{transform:translateY(0)}.yii-debug .yii-debug-btn[disabled],.yii-debug .yii-debug-btn.is-disabled{opacity:.55;pointer-events:none;transform:none}.yii-debug .yii-debug-btn-primary{background:var(--yii-debug-primary-bg);color:var(--yii-debug-on-primary);border-color:#0000}.yii-debug .yii-debug-btn-primary:is(:hover,:focus){background:var(--yii-debug-panel-primary-strong);color:var(--yii-debug-on-primary)}.yii-debug .yii-debug-btn-ghost{border-color:var(--yii-debug-panel-border);background:0 0}.yii-debug .yii-debug-btn-sm{min-height:28px;font-size:var(--yii-debug-fs-xs);padding:4px 10px}.yii-debug .yii-debug-badge{border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-text);font-size:var(--yii-debug-fs-xs);letter-spacing:.01em;align-items:center;padding:2px 10px;font-weight:600;line-height:1.4;display:inline-flex}.yii-debug .yii-debug-badge-success{background:var(--yii-debug-success);color:var(--yii-debug-on-success)}.yii-debug .yii-debug-badge-info{background:var(--yii-debug-info);color:var(--yii-debug-on-info)}.yii-debug .yii-debug-badge-warning{background:var(--yii-debug-warning);color:var(--yii-debug-on-warning)}.yii-debug .yii-debug-badge-danger{background:var(--yii-debug-danger);color:var(--yii-debug-on-danger)}.yii-debug .yii-debug-badge-muted{background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-verb-get{--yii-debug-hue:var(--yii-debug-verb-get)}.yii-debug .yii-debug-verb-post{--yii-debug-hue:var(--yii-debug-verb-post)}.yii-debug .yii-debug-verb-put{--yii-debug-hue:var(--yii-debug-verb-put)}.yii-debug .yii-debug-verb-delete{--yii-debug-hue:var(--yii-debug-verb-delete)}.yii-debug .yii-debug-verb-other{--yii-debug-hue:var(--yii-debug-verb-other)}.yii-debug .yii-debug-status-2xx{--yii-debug-hue:var(--yii-debug-status-2xx)}.yii-debug .yii-debug-status-3xx{--yii-debug-hue:var(--yii-debug-status-3xx)}.yii-debug .yii-debug-status-4xx{--yii-debug-hue:var(--yii-debug-status-4xx)}.yii-debug .yii-debug-status-5xx{--yii-debug-hue:var(--yii-debug-status-5xx)}.yii-debug .yii-debug-status-none{--yii-debug-hue:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-level-error{--yii-debug-hue:var(--yii-debug-level-error)}.yii-debug .yii-debug-level-warning{--yii-debug-hue:var(--yii-debug-level-warning)}.yii-debug .yii-debug-level-info{--yii-debug-hue:var(--yii-debug-level-info)}.yii-debug .yii-debug-level-trace{--yii-debug-hue:var(--yii-debug-level-trace)}.yii-debug .yii-debug-level-profile{--yii-debug-hue:var(--yii-debug-level-profile)}.yii-debug .yii-debug-level-other{--yii-debug-hue:var(--yii-debug-level-other)}.yii-debug .yii-debug-request-hero-method,.yii-debug .yii-debug-snapshot-status,.yii-debug .yii-debug-level-chip,.yii-debug .yii-debug-db-type,.yii-debug .yii-debug-dump-type,.yii-debug .yii-debug-badge:is(.yii-debug-status-2xx,.yii-debug-status-3xx,.yii-debug-status-4xx,.yii-debug-status-5xx,.yii-debug-status-none){border:1px solid color-mix(in srgb, var(--yii-debug-hue,var(--yii-debug-panel-muted)), transparent 65%);background:color-mix(in srgb, var(--yii-debug-hue,var(--yii-debug-panel-muted)), transparent 90%);color:color-mix(in srgb, var(--yii-debug-hue,var(--yii-debug-panel-muted)) 80%, var(--yii-debug-panel-text))}.yii-debug .yii-debug-method{color:color-mix(in srgb, var(--yii-debug-hue,var(--yii-debug-panel-muted)) 80%, var(--yii-debug-panel-text));font-family:var(--yii-debug-font-mono);letter-spacing:.02em;font-weight:700}.yii-debug .yii-debug-level-chip{border-radius:var(--yii-debug-radius-pill);font-family:var(--yii-debug-font-mono);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;padding:1px 8px;font-size:.7rem;font-weight:700;display:inline-block}.yii-debug .yii-debug-callout{align-items:flex-start;gap:var(--yii-debug-space-2);margin-bottom:var(--yii-debug-space-3);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border:var(--yii-debug-border);border-left:4px solid var(--yii-debug-panel-border-strong);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-text);display:flex}.yii-debug .yii-debug-callout-info{border-left-color:var(--yii-debug-info)}.yii-debug .yii-debug-callout-success{border-left-color:var(--yii-debug-success)}.yii-debug .yii-debug-callout-warning{border-left-color:var(--yii-debug-warning)}.yii-debug .yii-debug-callout-danger{border-left-color:var(--yii-debug-danger)}.yii-debug .yii-debug-table-wrap{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-lg);background:var(--yii-debug-panel-surface);overflow-x:auto}.yii-debug .yii-debug-table{border-collapse:separate;border-spacing:0;width:100%;min-width:640px;color:var(--yii-debug-panel-text);font-size:var(--yii-debug-fs-sm);background:0 0;margin:0}.yii-debug .yii-debug-table thead th,.yii-debug .yii-debug-table thead td{border-bottom:var(--yii-debug-border);background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 20%);color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);letter-spacing:.03em;text-align:left;text-transform:uppercase;vertical-align:middle;padding:10px 12px;font-weight:700}.yii-debug .yii-debug-table thead th a{color:var(--yii-debug-panel-link);font-weight:700;text-decoration:none}.yii-debug .yii-debug-table thead th a:hover,.yii-debug .yii-debug-table thead th a:focus{color:var(--yii-debug-panel-link-hover);text-decoration:none}.yii-debug .yii-debug-table tbody td,.yii-debug .yii-debug-table tbody th{padding:var(--yii-debug-row-padding-block) 12px;border-top:1px solid var(--yii-debug-panel-border);vertical-align:top;overflow-wrap:anywhere}.yii-debug .yii-debug-table tbody th{white-space:nowrap}.yii-debug .yii-debug-table tbody tr:first-child td,.yii-debug .yii-debug-table tbody tr:first-child th{border-top:0}.yii-debug .yii-debug-table tbody tr:nth-child(2n) td,.yii-debug .yii-debug-table tbody tr:nth-child(2n) th{background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 50%)}.yii-debug .yii-debug-table tbody tr:hover td,.yii-debug .yii-debug-table tbody tr:hover th{background:var(--yii-debug-panel-surface-hover)}.yii-debug .yii-debug-table tfoot td{border-top:var(--yii-debug-border);color:var(--yii-debug-panel-muted);padding:10px 12px}.yii-debug .yii-debug-row-success td,.yii-debug .yii-debug-row-success th{background:color-mix(in srgb, var(--yii-debug-success), var(--yii-debug-panel-surface) 86%)!important}.yii-debug .yii-debug-row-info td,.yii-debug .yii-debug-row-info th{background:color-mix(in srgb, var(--yii-debug-info), var(--yii-debug-panel-surface) 86%)!important}.yii-debug .yii-debug-row-warning td,.yii-debug .yii-debug-row-warning th{background:color-mix(in srgb, var(--yii-debug-warning), var(--yii-debug-panel-surface) 86%)!important}.yii-debug .yii-debug-row-danger td,.yii-debug .yii-debug-row-danger th{background:color-mix(in srgb, var(--yii-debug-danger), var(--yii-debug-panel-surface) 86%)!important}.yii-debug .yii-debug-grid{margin-bottom:var(--yii-debug-space-4)}.yii-debug .yii-debug-grid>.summary{margin:0 0 var(--yii-debug-space-2);padding:0 var(--yii-debug-space-1);color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-sm)}.yii-debug .yii-debug-grid>.summary b{color:var(--yii-debug-panel-text);font-weight:700}.yii-debug .yii-debug-grid>.empty{padding:var(--yii-debug-space-5);color:var(--yii-debug-panel-muted);text-align:center;font-style:italic}.yii-debug .yii-debug-grid td.yii-debug-cell-nowrap,.yii-debug .yii-debug-grid td.yii-debug-cell-numeric,.yii-debug .yii-debug-grid td.yii-debug-cell-pill,.yii-debug .yii-debug-table td.yii-debug-cell-nowrap,.yii-debug .yii-debug-table td.yii-debug-cell-numeric,.yii-debug .yii-debug-table td.yii-debug-cell-pill{white-space:nowrap}.yii-debug .yii-debug-grid td.yii-debug-cell-fqcn{overflow-wrap:normal}.yii-debug .yii-debug-disclosure{margin-bottom:var(--yii-debug-space-5);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-lg);background:var(--yii-debug-panel-surface);overflow:hidden}.yii-debug .yii-debug-disclosure[open]>.yii-debug-disclosure-summary{border-bottom:var(--yii-debug-border)}.yii-debug .yii-debug-disclosure-summary{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-3);padding:10px var(--yii-debug-space-4);cursor:pointer;list-style:none;transition:background-color .12s;display:flex}.yii-debug .yii-debug-disclosure-summary::-webkit-details-marker{display:none}.yii-debug .yii-debug-disclosure-summary:hover,.yii-debug .yii-debug-disclosure-summary:focus-visible{background:var(--yii-debug-panel-surface-hover)}.yii-debug .yii-debug-disclosure-title,.yii-debug .yii-debug-request-section-title,.yii-debug .yii-debug-diagnostic-heading-copy h2{color:var(--yii-debug-panel-primary-strong);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:700}.yii-debug .yii-debug-disclosure-hint{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.06em;text-transform:uppercase;transition:color .12s}.yii-debug .yii-debug-disclosure-hint [data-yii-debug-hint=expanded]{display:none}.yii-debug .yii-debug-disclosure-summary:hover .yii-debug-disclosure-hint,.yii-debug .yii-debug-disclosure-summary:focus-visible .yii-debug-disclosure-hint{color:var(--yii-debug-panel-link)}.yii-debug details[open]>summary .yii-debug-disclosure-hint [data-yii-debug-hint=collapsed]{display:none}.yii-debug details[open]>summary .yii-debug-disclosure-hint [data-yii-debug-hint=expanded]{display:inline}.yii-debug .yii-debug-disclosure-body{padding:var(--yii-debug-space-4)}.yii-debug .yii-debug-disclosure-body>pre{overflow-wrap:anywhere;color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);white-space:pre-wrap;margin:0;line-height:1.6}.yii-debug .yii-debug-cell-more-body{max-height:156px;position:relative;overflow:hidden}.yii-debug .yii-debug-cell-more-body:has(.yii-debug-table){max-height:420px}.yii-debug .yii-debug-cell-more-body:after{content:"";background:linear-gradient(to bottom, transparent, var(--yii-debug-panel-surface));pointer-events:none;height:32px;position:absolute;inset:auto 0 0}.yii-debug .yii-debug-cell-more.is-open .yii-debug-cell-more-body{max-height:none}.yii-debug .yii-debug-cell-more.is-open .yii-debug-cell-more-body:after{content:none}.yii-debug .yii-debug-cell-more-toggle{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);color:var(--yii-debug-panel-link);font-family:inherit;font-size:var(--yii-debug-fs-xs);cursor:pointer;background:0 0;align-items:center;margin-top:6px;padding:2px 10px;font-weight:600;display:inline-flex}.yii-debug .yii-debug-cell-more-toggle:before{content:"";width:1.25em;height:1.25em;margin-right:var(--yii-debug-space-1);background:linear-gradient(currentcolor, currentcolor) center / 8px 2px no-repeat, linear-gradient(currentcolor, currentcolor) center / 2px 8px no-repeat, var(--yii-debug-panel-bg-accent);border-radius:50%;display:inline-block}.yii-debug .yii-debug-cell-more.is-open .yii-debug-cell-more-toggle:before{background:linear-gradient(currentcolor, currentcolor) center / 8px 2px no-repeat, var(--yii-debug-panel-bg-accent)}.yii-debug .yii-debug-cell-more-toggle:hover,.yii-debug .yii-debug-cell-more-toggle:focus{background:var(--yii-debug-panel-bg-accent);border-color:var(--yii-debug-panel-primary);text-decoration:none}.yii-debug .yii-debug-grid td.yii-debug-cell-mono{font-family:var(--yii-debug-font-mono)}.yii-debug td.yii-debug-cell-payload{overflow-wrap:anywhere;width:100%}.yii-debug .yii-debug-grid td.yii-debug-cell-numeric{font-variant-numeric:tabular-nums;text-align:right}.yii-debug a.asc:after,.yii-debug a.desc:after{content:"↑";opacity:.78;margin-left:4px;font-size:.85em}.yii-debug a.desc:after{content:"↓"}.yii-debug .yii-debug-pager{gap:var(--yii-debug-space-1);margin:var(--yii-debug-space-3) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.yii-debug .yii-debug-pager-item{display:inline-flex}.yii-debug .yii-debug-pager-link,.yii-debug .yii-debug-pager>li>:is(a,span){border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface);min-width:40px;min-height:40px;color:var(--yii-debug-panel-link);font-size:var(--yii-debug-fs-sm);justify-content:center;align-items:center;padding:0 10px;font-weight:600;text-decoration:none;transition:border-color .12s,background .12s,color .12s;display:inline-flex}:is(.yii-debug .yii-debug-pager-link,.yii-debug .yii-debug-pager>li>:is(a,span)):hover,:is(.yii-debug .yii-debug-pager-link,.yii-debug .yii-debug-pager>li>:is(a,span)):focus{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 30%);background:var(--yii-debug-panel-surface-hover);color:var(--yii-debug-panel-link-hover);text-decoration:none}.yii-debug .yii-debug-pager-item.is-active .yii-debug-pager-link{background:var(--yii-debug-primary-bg);color:var(--yii-debug-on-primary);cursor:default;border-color:#0000}.yii-debug .yii-debug-pager-item.is-disabled .yii-debug-pager-link{background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted);cursor:not-allowed;pointer-events:none}.yii-debug .yii-debug-field{margin-bottom:var(--yii-debug-space-3);flex-direction:column;gap:4px;display:flex}.yii-debug .yii-debug-label{color:var(--yii-debug-panel-text);font-size:var(--yii-debug-fs-sm);font-weight:600}.yii-debug .yii-debug-input,.yii-debug .yii-debug-select{border:1px solid var(--yii-debug-panel-border-strong);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);width:100%;min-height:32px;color:var(--yii-debug-panel-text);font-family:inherit;font-size:var(--yii-debug-fs-sm);padding:6px 10px;transition:border-color .12s,box-shadow .12s}:is(.yii-debug .yii-debug-input,.yii-debug .yii-debug-select):hover{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), var(--yii-debug-panel-border-strong) 60%)}:is(.yii-debug .yii-debug-input,.yii-debug .yii-debug-select):focus{border-color:var(--yii-debug-panel-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--yii-debug-panel-primary), transparent 82%)}:is(.yii-debug .yii-debug-input,.yii-debug .yii-debug-select)::placeholder{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-grid .filters td{border-bottom:var(--yii-debug-border);background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 30%);padding:6px 12px}.yii-debug .yii-debug-grid .filters input,.yii-debug .yii-debug-grid .filters select,.yii-debug .yii-debug-grid .filters textarea{border:1px solid var(--yii-debug-panel-border-strong);border-radius:var(--yii-debug-radius-sm);background:var(--yii-debug-panel-surface);width:100%;min-width:0;min-height:28px;color:var(--yii-debug-panel-text);font:inherit;font-size:var(--yii-debug-fs-xs);padding:4px 8px}:is(.yii-debug .yii-debug-grid .filters input,.yii-debug .yii-debug-grid .filters select,.yii-debug .yii-debug-grid .filters textarea):focus{border-color:var(--yii-debug-panel-primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--yii-debug-panel-primary), transparent 84%)}.yii-debug .yii-debug-tabs{gap:var(--yii-debug-space-1);margin:0 0 var(--yii-debug-space-3);border-bottom:var(--yii-debug-border);flex-wrap:wrap;padding:0;list-style:none;display:flex}.yii-debug .yii-debug-tab{display:inline-flex}.yii-debug .yii-debug-tab-link{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-sm);border-bottom:2px solid #0000;align-items:center;padding:8px 14px;font-weight:600;text-decoration:none;transition:color .12s,border-color .12s;display:inline-flex}.yii-debug .yii-debug-tab-link:hover,.yii-debug .yii-debug-tab-link:focus{color:var(--yii-debug-panel-text);text-decoration:none}.yii-debug .yii-debug-tab.is-active .yii-debug-tab-link,.yii-debug .yii-debug-tab-link.is-active{border-bottom-color:var(--yii-debug-panel-primary);color:var(--yii-debug-panel-text)}.yii-debug .yii-debug-tab-panel{padding:var(--yii-debug-space-3) 0 0;display:none}.yii-debug .yii-debug-tab-panel.is-active{display:block}.yii-debug .yii-debug-since-previous{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.yii-debug .yii-debug-since-previous .yii-debug-since-previous-btn{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-sm);background:var(--yii-debug-panel-surface);min-width:24px;height:24px;color:var(--yii-debug-panel-link);font-size:var(--yii-debug-fs-xs);justify-content:center;align-items:center;padding:0 6px;font-weight:700;text-decoration:none;display:inline-flex}.yii-debug .yii-debug-table-mono{min-width:0}.yii-debug .yii-debug-table-mono thead th{z-index:1;background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 10%);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-xs);letter-spacing:.12em;padding:8px 16px;position:sticky;top:0}.yii-debug .yii-debug-table-mono tbody tr{transition:background-color .14s}.yii-debug .yii-debug-table-mono tbody tr:hover td,.yii-debug .yii-debug-table-mono tbody tr:hover th{background:var(--yii-debug-panel-surface-hover)}.yii-debug .yii-debug-table-mono tbody tr:hover th{box-shadow:inset 3px 0 0 var(--yii-debug-panel-primary);color:var(--yii-debug-panel-text)}.yii-debug .yii-debug-table-mono tbody th,.yii-debug .yii-debug-table-mono tbody td{font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);padding:12px 16px;line-height:1.55}.yii-debug .yii-debug-table-mono tbody th{width:1%;min-width:120px;max-width:220px;color:var(--yii-debug-panel-muted);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;font-weight:500;transition:color .14s,box-shadow .14s;overflow:hidden}.yii-debug .yii-debug-table-mono tbody td{color:var(--yii-debug-panel-text);word-break:normal;overflow-wrap:anywhere}.yii-debug .yii-debug-table-mono tbody tr+tr td,.yii-debug .yii-debug-table-mono tbody tr+tr th{border-top:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 55%, transparent)}.yii-debug .yii-debug-table-mono tbody tr:nth-child(2n) td,.yii-debug .yii-debug-table-mono tbody tr:nth-child(2n) th{background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 70%)}.yii-debug .yii-debug-table-overview tbody th{width:200px;min-width:160px;max-width:200px}.yii-debug .yii-debug-panel-group+.yii-debug-panel-group{margin-top:var(--yii-debug-space-6)}.yii-debug .yii-debug-table-wrap:has(>.yii-debug-table-mono){border-radius:var(--yii-debug-radius-md);box-shadow:var(--yii-debug-shadow-sm), inset 0 0 0 1px color-mix(in srgb, var(--yii-debug-panel-border) 60%, transparent);overflow:clip}.yii-debug .yii-debug-table-mono{min-width:0}.yii-debug .yii-debug-table-mono tbody th{overflow-wrap:anywhere;white-space:normal}.yii-debug .yii-debug-table-userswitch{width:auto;min-width:100%}.yii-debug .yii-debug-table-userswitch thead th,.yii-debug .yii-debug-table-userswitch tbody td,.yii-debug .yii-debug-table-userswitch tbody th{overflow-wrap:normal;white-space:nowrap}.yii-debug .yii-debug-table-userswitch tbody tr.filters td input{width:100%;min-width:0}.yii-debug .yii-debug-col-userswitch-id{font-variant-numeric:tabular-nums;min-width:10ch}.yii-debug .yii-debug-col-userswitch-username{min-width:14ch}.yii-debug .yii-debug-col-userswitch-email{min-width:24ch}.yii-debug .yii-debug-col-userswitch-status{text-align:center;min-width:8ch}.yii-debug .yii-debug-col-userswitch-timestamp{font-variant-numeric:tabular-nums;min-width:18ch}.yii-debug .yii-debug-table-pointer tbody tr{cursor:pointer;transition:background-color .12s}.yii-debug .yii-debug-table-pointer tbody tr:hover{background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 86%)}.yii-debug .yii-debug-sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.yii-debug .yii-debug-table-empty{padding:var(--yii-debug-space-4);border:1px dashed color-mix(in srgb, var(--yii-debug-panel-border) 70%, transparent);border-radius:var(--yii-debug-radius-md);background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 40%);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.04em;text-transform:uppercase;justify-content:center;align-items:center;gap:10px;margin:0;display:flex}.yii-debug .yii-debug-table-empty:before{content:"";opacity:.5;border:1.5px solid;border-radius:50%;width:8px;height:8px}.yii-debug .yii-debug-grid-summary{align-items:center;gap:var(--yii-debug-space-3);margin-bottom:var(--yii-debug-space-3);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);color:var(--yii-debug-panel-text);font-size:var(--yii-debug-fs-sm);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;display:flex}.yii-debug .yii-debug-grid-summary strong{color:var(--yii-debug-panel-primary-strong);letter-spacing:0;text-transform:none;margin-right:.35em;font-weight:700}.yii-debug .yii-debug-grid-summary-sep{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-grid-summary-stat-warn{--yii-debug-hue:var(--yii-debug-level-warning)}.yii-debug .yii-debug-grid-summary-stat-danger{--yii-debug-hue:var(--yii-debug-level-error)}.yii-debug .yii-debug-grid-summary-stat-info{--yii-debug-hue:var(--yii-debug-level-info)}.yii-debug .yii-debug-grid-summary-stat-trace{--yii-debug-hue:var(--yii-debug-level-trace)}.yii-debug .yii-debug-grid-summary-stat-warn strong{color:var(--yii-debug-warning)}.yii-debug .yii-debug-grid-summary-stat-danger strong{color:var(--yii-debug-danger)}.yii-debug .yii-debug-grid-summary-stat-2xx{--yii-debug-hue:var(--yii-debug-status-2xx)}.yii-debug .yii-debug-grid-summary-stat-3xx{--yii-debug-hue:var(--yii-debug-status-3xx)}.yii-debug .yii-debug-grid-summary-stat-4xx{--yii-debug-hue:var(--yii-debug-status-4xx)}.yii-debug .yii-debug-grid-summary-stat-5xx{--yii-debug-hue:var(--yii-debug-status-5xx)}.yii-debug a:is(.yii-debug-grid-summary-stat-danger,.yii-debug-grid-summary-stat-warn,.yii-debug-grid-summary-stat-info,.yii-debug-grid-summary-stat-trace,.yii-debug-grid-summary-stat-2xx,.yii-debug-grid-summary-stat-3xx,.yii-debug-grid-summary-stat-4xx,.yii-debug-grid-summary-stat-5xx){border:1px solid color-mix(in srgb, var(--yii-debug-hue), transparent 65%);border-radius:var(--yii-debug-radius-pill);background:color-mix(in srgb, var(--yii-debug-hue), transparent 90%);color:color-mix(in srgb, var(--yii-debug-hue) 80%, var(--yii-debug-panel-text));align-items:center;gap:6px;padding:2px 10px;text-decoration:none;transition:transform .14s,background-color .14s;display:inline-flex}.yii-debug a:is(.yii-debug-grid-summary-stat-danger,.yii-debug-grid-summary-stat-warn,.yii-debug-grid-summary-stat-info,.yii-debug-grid-summary-stat-trace,.yii-debug-grid-summary-stat-2xx,.yii-debug-grid-summary-stat-3xx,.yii-debug-grid-summary-stat-4xx,.yii-debug-grid-summary-stat-5xx) strong{color:inherit;margin-right:0}.yii-debug a:is(.yii-debug-grid-summary-stat-danger,.yii-debug-grid-summary-stat-warn,.yii-debug-grid-summary-stat-info,.yii-debug-grid-summary-stat-trace,.yii-debug-grid-summary-stat-2xx,.yii-debug-grid-summary-stat-3xx,.yii-debug-grid-summary-stat-4xx,.yii-debug-grid-summary-stat-5xx):hover,.yii-debug a:is(.yii-debug-grid-summary-stat-danger,.yii-debug-grid-summary-stat-warn,.yii-debug-grid-summary-stat-info,.yii-debug-grid-summary-stat-trace,.yii-debug-grid-summary-stat-2xx,.yii-debug-grid-summary-stat-3xx,.yii-debug-grid-summary-stat-4xx,.yii-debug-grid-summary-stat-5xx):focus-visible{background:color-mix(in srgb, var(--yii-debug-hue), transparent 80%);text-decoration:none;transform:translateY(-1px)}.yii-debug .yii-debug-grid-footer{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-3);margin-top:var(--yii-debug-space-2);color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);flex-wrap:wrap;display:flex}.yii-debug .yii-debug-grid-count{margin:0}.yii-debug .yii-debug-grid-pagesize{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.yii-debug .yii-debug-grid-pagesize-label{color:var(--yii-debug-panel-muted);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.yii-debug .yii-debug-grid-pagesize-select{padding:3px var(--yii-debug-space-2);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-sm);background:var(--yii-debug-panel-surface);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-sm);letter-spacing:0;text-transform:none;cursor:pointer}.yii-debug .yii-debug-grid-pagesize-select:focus{border-color:var(--yii-debug-panel-primary)}.yii-debug .yii-debug-db-type{border-radius:var(--yii-debug-radius-pill);min-width:5em;font-family:var(--yii-debug-font-mono);letter-spacing:.04em;text-align:center;text-transform:uppercase;white-space:nowrap;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-block}.yii-debug .yii-debug-db-sql{font-family:var(--yii-debug-font-mono);overflow-wrap:anywhere}.yii-debug .yii-debug-grid-db .yii-debug-table th:not(:last-child),.yii-debug .yii-debug-grid-db .yii-debug-table td:not(:last-child){white-space:nowrap}.yii-debug .yii-debug-grid-db .yii-debug-table th:last-child,.yii-debug .yii-debug-grid-db .yii-debug-table td:last-child{width:100%}.yii-debug .yii-debug-grid-db .filters select{min-width:max-content}.yii-debug .yii-debug-grid-db .filters select:focus{box-shadow:none}.yii-debug .yii-debug-grid-db .filters select:focus-visible{outline-offset:1px;outline-width:2px}.yii-debug .yii-debug-sql-kw{color:var(--yii-debug-sql-kw);font-weight:700}.yii-debug .yii-debug-sql-str{color:var(--yii-debug-sql-str)}.yii-debug .yii-debug-sql-num{color:var(--yii-debug-sql-num)}.yii-debug .yii-debug-sql-comment{color:var(--yii-debug-sql-comment);font-style:italic}.yii-debug .yii-debug-sql-param{color:var(--yii-debug-sql-param);font-weight:600}.yii-debug .yii-debug-db-explain,.yii-debug .yii-debug-db-trace{margin-top:var(--yii-debug-space-2)}.yii-debug .yii-debug-db-explain-toggle,.yii-debug .yii-debug-db-trace-toggle{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);color:var(--yii-debug-panel-link);font-size:var(--yii-debug-fs-xs);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:2px 10px 2px 6px;font-weight:600;text-decoration:none;transition:background-color .12s,border-color .12s;display:inline-flex}.yii-debug .yii-debug-db-explain-toggle:hover,.yii-debug .yii-debug-db-explain-toggle:focus,.yii-debug .yii-debug-db-trace-toggle:hover,.yii-debug .yii-debug-db-trace-toggle:focus-visible{background:var(--yii-debug-panel-bg-accent);border-color:var(--yii-debug-panel-primary);text-decoration:none}.yii-debug .yii-debug-db-trace-toggle{list-style:none}.yii-debug .yii-debug-db-trace-toggle::-webkit-details-marker{display:none}.yii-debug .yii-debug-db-explain-chevron,.yii-debug .yii-debug-db-trace-chevron{width:10px;font-size:14px;line-height:1;transition:transform .16s;display:inline-block}.yii-debug .yii-debug-db-explain.is-open .yii-debug-db-explain-chevron,.yii-debug .yii-debug-db-trace[open]>.yii-debug-db-trace-toggle .yii-debug-db-trace-chevron{transform:rotate(90deg)}.yii-debug .yii-debug-db-explain.is-loading .yii-debug-db-explain-toggle{opacity:.55;pointer-events:none}.yii-debug .yii-debug-db-explain-text{margin-top:var(--yii-debug-space-2);display:none}.yii-debug .yii-debug-db-explain.is-open .yii-debug-db-explain-text{display:block}.yii-debug .yii-debug-db-explain-text.is-error{padding:var(--yii-debug-space-2) var(--yii-debug-space-3);border-left:3px solid var(--yii-debug-danger);border-radius:var(--yii-debug-radius-sm);background:color-mix(in srgb, var(--yii-debug-danger), transparent 92%);color:var(--yii-debug-danger);font-size:var(--yii-debug-fs-sm);font-weight:600;display:block}.yii-debug .yii-debug-db-explain-all{margin-top:var(--yii-debug-space-3);justify-content:flex-end;display:flex}.yii-debug .yii-debug-db-explain-all-toggle{white-space:nowrap;justify-content:center;min-width:104px}.yii-debug .yii-debug-explain{margin-top:var(--yii-debug-space-3)}.yii-debug .yii-debug-explain-title{margin-bottom:var(--yii-debug-space-2);font-size:var(--yii-debug-fs-lg);font-weight:700}.yii-debug .yii-debug-explain-query{margin-bottom:var(--yii-debug-space-3);padding:var(--yii-debug-space-3);background:var(--yii-debug-panel-code-bg);border-radius:var(--yii-debug-radius-md);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);white-space:pre-wrap;overflow-wrap:break-word}.yii-debug .yii-debug-explain-empty{color:var(--yii-debug-panel-muted);font-style:italic}.yii-debug .yii-debug-empty-state{margin:var(--yii-debug-space-4) 0 0;padding:var(--yii-debug-space-5) var(--yii-debug-space-5);border:1px dashed color-mix(in srgb, var(--yii-debug-panel-border) 80%, transparent);border-radius:var(--yii-debug-radius-md);background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 30%)}.yii-debug .yii-debug-empty-state h2{margin:0 0 var(--yii-debug-space-3);color:var(--yii-debug-panel-text);font-size:var(--yii-debug-fs-lg);font-weight:700}.yii-debug .yii-debug-empty-state p{margin:0 0 var(--yii-debug-space-3);color:var(--yii-debug-panel-muted);line-height:1.5}.yii-debug .yii-debug-empty-state p:last-child{margin-bottom:0}.yii-debug .yii-debug-empty-state code{border-radius:var(--yii-debug-radius-sm,4px);background:var(--yii-debug-panel-code-bg);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);padding:.1em .4em}.yii-debug .yii-debug-empty-state-code{margin:0 0 var(--yii-debug-space-3);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-code-bg);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);white-space:pre-wrap;overflow-wrap:break-word;line-height:1.5}.yii-debug .yii-debug-queue-job-page{gap:var(--yii-debug-space-3);flex-direction:column;display:flex}.yii-debug .yii-debug-queue-job-head{align-items:center;gap:var(--yii-debug-space-2);flex-wrap:wrap;display:flex}.yii-debug .yii-debug-queue-card{gap:var(--yii-debug-space-2);padding:var(--yii-debug-space-4);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);flex-direction:column;display:flex}.yii-debug .yii-debug-queue-card-head{gap:var(--yii-debug-space-3);grid-template-columns:auto 1fr auto;align-items:flex-start;display:grid}.yii-debug .yii-debug-queue-avatar{--queue-hue:210;border-radius:var(--yii-debug-radius-md);background:linear-gradient(135deg, hsl(var(--queue-hue) 72% 52%), hsl(calc(var(--queue-hue) + 28) 65% 40%));width:40px;height:40px;box-shadow:0 2px 10px hsl(var(--queue-hue) 60% 40% / 32%), inset 0 1px 0 #ffffff38;color:#fff;font-family:var(--yii-debug-font-mono);letter-spacing:-.01em;flex:none;justify-content:center;align-items:center;font-size:16px;font-weight:800;display:inline-flex}.yii-debug .yii-debug-queue-headline{flex-direction:column;gap:2px;min-width:0;display:flex}.yii-debug .yii-debug-queue-class{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-lg);letter-spacing:-.01em;word-break:break-all;margin:0;font-weight:700;line-height:1.25}.yii-debug .yii-debug-queue-namespace{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.02em}.yii-debug .yii-debug-queue-meta-pills{flex-direction:column;flex:none;align-items:flex-end;gap:6px;display:flex}.yii-debug .yii-debug-queue-status{border-radius:var(--yii-debug-radius-pill);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.06em;text-transform:uppercase;align-items:center;padding:3px 10px;font-weight:600;line-height:1;display:inline-flex}.yii-debug .yii-debug-queue-status-queued{color:var(--yii-debug-info);background:color-mix(in srgb, var(--yii-debug-info), transparent 86%)}.yii-debug .yii-debug-queue-status-done{color:var(--yii-debug-success);background:color-mix(in srgb, var(--yii-debug-success), transparent 86%)}.yii-debug .yii-debug-queue-status-failed{color:var(--yii-debug-danger);background:color-mix(in srgb, var(--yii-debug-danger), transparent 86%)}.yii-debug .yii-debug-queue-driver{border-radius:var(--yii-debug-radius-pill);border:var(--yii-debug-border);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.05em;text-transform:uppercase;cursor:help;align-items:center;padding:3px 10px;font-weight:600;line-height:1;display:inline-flex}.yii-debug .yii-debug-queue-driver-is-sync{color:var(--yii-debug-success);background:color-mix(in srgb, var(--yii-debug-success), transparent 92%);border-color:color-mix(in srgb, var(--yii-debug-success), transparent 70%)}.yii-debug .yii-debug-queue-driver-is-async{color:var(--yii-debug-warning);background:color-mix(in srgb, var(--yii-debug-warning), transparent 92%);border-color:color-mix(in srgb, var(--yii-debug-warning), transparent 70%)}.yii-debug .yii-debug-queue-hint{margin:var(--yii-debug-space-3) 0;padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border-radius:var(--yii-debug-radius-md);border-left:3px solid var(--yii-debug-warning);background:color-mix(in srgb, var(--yii-debug-warning), transparent 94%);color:var(--yii-debug-panel-text);font-size:var(--yii-debug-fs-sm);line-height:1.5}.yii-debug .yii-debug-queue-tree{padding:var(--yii-debug-space-3);border-radius:var(--yii-debug-radius-sm);background:color-mix(in srgb, var(--yii-debug-panel-text), transparent 96%);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);flex-direction:column;gap:4px;line-height:1.6;display:flex}.yii-debug .yii-debug-queue-tree-row{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.yii-debug .yii-debug-queue-tree-key{color:var(--yii-debug-panel-text);font-weight:700}.yii-debug .yii-debug-queue-tree-key:after{content:":";color:var(--yii-debug-panel-muted);margin-left:1px;font-weight:400}.yii-debug .yii-debug-queue-tree-type{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);text-transform:uppercase;letter-spacing:.05em;background:color-mix(in srgb, var(--yii-debug-panel-text), transparent 92%);border-radius:3px;padding:1px 6px}.yii-debug .yii-debug-queue-tree-class{color:var(--yii-debug-info);cursor:help;font-weight:600}.yii-debug .yii-debug-queue-tree-meta{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-queue-tree-truncated{color:var(--yii-debug-warning);font-size:var(--yii-debug-fs-xs);text-transform:uppercase;letter-spacing:.05em;background:color-mix(in srgb, var(--yii-debug-warning), transparent 86%);border-radius:3px;padding:1px 6px}.yii-debug .yii-debug-queue-tree-value{word-break:break-all}.yii-debug .yii-debug-queue-tree-value-string{color:var(--yii-debug-success)}.yii-debug .yii-debug-queue-tree-value-number{color:var(--yii-debug-info)}.yii-debug .yii-debug-queue-tree-value-bool{color:var(--yii-debug-warning);font-weight:600}.yii-debug .yii-debug-queue-tree-value-null{color:var(--yii-debug-panel-muted);font-style:italic}.yii-debug .yii-debug-queue-tree-collapse{flex-direction:column;gap:4px;display:flex}.yii-debug .yii-debug-queue-tree-summary{cursor:pointer;list-style:revert;flex-wrap:wrap;align-items:baseline;gap:8px;padding:2px 0;display:inline-flex}.yii-debug .yii-debug-queue-tree-summary::-webkit-details-marker{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-queue-tree-children{margin-left:var(--yii-debug-space-4);padding-left:var(--yii-debug-space-3);border-left:1px dashed color-mix(in srgb, var(--yii-debug-panel-text), transparent 80%);flex-direction:column;gap:4px;display:flex}.yii-debug .yii-debug-queue-time{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.02em}.yii-debug .yii-debug-queue-payload{margin:0}.yii-debug .yii-debug-queue-error{padding:var(--yii-debug-space-3);border-radius:var(--yii-debug-radius-sm);border-left:3px solid var(--yii-debug-danger);background:color-mix(in srgb, var(--yii-debug-danger), transparent 92%);color:var(--yii-debug-danger);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);line-height:1.5}.yii-debug .yii-debug-queue-meta{gap:var(--yii-debug-space-2);padding-top:var(--yii-debug-space-2);border-top:var(--yii-debug-border);flex-wrap:wrap;display:flex}.yii-debug .yii-debug-queue-meta-item{border-radius:var(--yii-debug-radius-pill);background:color-mix(in srgb, var(--yii-debug-panel-text), transparent 94%);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);align-items:center;gap:6px;padding:2px 10px;line-height:1.4;display:inline-flex}.yii-debug .yii-debug-queue-meta-label{color:var(--yii-debug-panel-muted);text-transform:uppercase;letter-spacing:.05em;font-size:var(--yii-debug-fs-xs)}.yii-debug .yii-debug-queue-meta-value{color:var(--yii-debug-panel-text);font-weight:600}.yii-debug .yii-debug-dump{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);overflow:hidden}.yii-debug .yii-debug-dump-card-head{align-items:center;gap:var(--yii-debug-space-2);padding:6px var(--yii-debug-space-3);border-bottom:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);color:var(--yii-debug-panel-muted);flex-wrap:wrap;display:flex}.yii-debug .yii-debug-dump-index{color:var(--yii-debug-panel-primary-strong);font-weight:700}.yii-debug .yii-debug-dump-type{border-radius:var(--yii-debug-radius-pill);font-size:var(--yii-debug-fs-xs);letter-spacing:.04em;text-transform:uppercase;--yii-debug-hue:var(--yii-debug-panel-primary);padding:1px 8px;font-weight:700;display:inline-flex}.yii-debug .yii-debug-dump-type[data-type=array]{--yii-debug-hue:var(--yii-debug-info)}.yii-debug .yii-debug-dump-type[data-type=string]{--yii-debug-hue:var(--yii-debug-success)}.yii-debug .yii-debug-dump-type[data-type=number]{--yii-debug-hue:var(--yii-debug-warning)}.yii-debug .yii-debug-dump-type[data-type=bool],.yii-debug .yii-debug-dump-type[data-type=null]{--yii-debug-hue:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-dump-meta{align-items:center;gap:var(--yii-debug-space-2);margin-left:auto;display:inline-flex}.yii-debug .yii-debug-dump-time{color:var(--yii-debug-panel-muted);font-variant-numeric:tabular-nums}.yii-debug .yii-debug-dump-trace{color:var(--yii-debug-panel-link)}.yii-debug .yii-debug-php-dump{text-align:start;font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);line-height:1.5;overflow-x:auto}.yii-debug .yii-debug-php-dump pre{background:0 0;margin:0}.yii-debug .yii-debug-php-dump code{white-space:pre;background:0 0;padding:0;display:block}.yii-debug .yii-debug-dump-body{padding:var(--yii-debug-space-3);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);line-height:1.5;overflow-x:auto}.yii-debug .yii-debug-dump-body code{white-space:pre;background:0 0;padding:0;display:block}[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color: #DD0000"],[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color:#DD0000"]{color:#e5c07b!important}[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color: #0000BB"],[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color:#0000BB"]{color:#93c5fd!important}[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color: #007700"],[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color:#007700"]{color:#86efac!important}[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color: #FF8000"],[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color:#FF8000"]{color:#fdba74!important}[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color: #000000"],[data-yii-debug-theme=dark] .yii-debug :is(.yii-debug-dump-body,.yii-debug-php-dump) span[style*="color:#000000"]{color:var(--yii-debug-panel-text)!important}.yii-debug .yii-debug-history-card{gap:var(--yii-debug-space-2);padding:var(--yii-debug-space-3);border:1px dashed color-mix(in srgb, var(--yii-debug-panel-border) 70%, transparent);border-radius:var(--yii-debug-radius-md);background:radial-gradient(circle at top right, color-mix(in srgb, var(--yii-debug-panel-primary), transparent 86%), transparent 60%), color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 40%);flex-direction:column;display:flex;position:relative}.yii-debug .yii-debug-nav-iconed .yii-debug-nav-link{align-items:center}.yii-debug .yii-debug-nav-iconed .yii-debug-nav-link .yii-debug-nav-link-label{margin-right:auto}.yii-debug .yii-debug-nav-link-icon{width:16px;height:16px;color:var(--yii-debug-panel-primary);flex:none;justify-content:center;align-items:center;margin-right:10px;transition:color .14s,transform .14s;display:inline-flex}.yii-debug .yii-debug-nav-link-icon svg{width:100%;height:100%}.yii-debug .yii-debug-nav-link.is-active .yii-debug-nav-link-icon{color:currentColor}.yii-debug .yii-debug-nav-link-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-sm);letter-spacing:.005em;flex:1;font-weight:600;overflow:hidden}.yii-debug .yii-debug-nav-link:not(.is-active){color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-nav-link:not(.is-active) .yii-debug-nav-link-icon{color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 35%)}.yii-debug .yii-debug-nav-link:not(.is-active):after{color:color-mix(in srgb, var(--yii-debug-panel-muted), transparent 40%)}.yii-debug .yii-debug-nav-link:not(.is-active):hover,.yii-debug .yii-debug-nav-link:not(.is-active):focus-visible{color:var(--yii-debug-panel-text);background:var(--yii-debug-panel-surface-hover)}:is(.yii-debug .yii-debug-nav-link:not(.is-active):hover,.yii-debug .yii-debug-nav-link:not(.is-active):focus-visible) .yii-debug-nav-link-icon{color:var(--yii-debug-panel-primary);transform:translate(1px)}:is(.yii-debug .yii-debug-nav-link:not(.is-active):hover,.yii-debug .yii-debug-nav-link:not(.is-active):focus-visible):after{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-tag-link{font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);letter-spacing:-.01em;color:var(--yii-debug-panel-primary-strong);white-space:nowrap;border-bottom:1px dotted color-mix(in srgb, var(--yii-debug-panel-primary), transparent 60%);font-weight:700;text-decoration:none;display:inline-block}.yii-debug .yii-debug-tag-link:hover,.yii-debug .yii-debug-tag-link:focus-visible{color:var(--yii-debug-panel-primary);border-bottom-color:var(--yii-debug-panel-primary);text-decoration:none}.yii-debug .yii-debug-url-cell{text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;max-width:clamp(180px,26vw,460px);display:inline-block;overflow:hidden}.yii-debug .yii-debug-table tbody tr.is-cursor{background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 86%);box-shadow:inset 3px 0 0 var(--yii-debug-panel-primary)}.yii-debug .yii-debug-table tbody tr.is-cursor:hover{background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 78%)}.yii-debug .yii-debug-active-filters{margin-bottom:var(--yii-debug-space-3);padding:8px var(--yii-debug-space-3);border:1px solid color-mix(in srgb, var(--yii-debug-info), transparent 60%);border-radius:var(--yii-debug-radius-md);background:color-mix(in srgb, var(--yii-debug-info), transparent 92%);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.yii-debug .yii-debug-active-filters-label{color:var(--yii-debug-info);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:700}.yii-debug .yii-debug-active-filters-list{flex-wrap:wrap;gap:4px;display:inline-flex}.yii-debug .yii-debug-active-filter-pill{border:1px solid color-mix(in srgb, var(--yii-debug-info), transparent 50%);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);align-items:center;gap:4px;padding:2px 6px 2px 8px;text-decoration:none;transition:background-color .12s,border-color .12s;display:inline-flex}.yii-debug .yii-debug-active-filter-pill:hover,.yii-debug .yii-debug-active-filter-pill:focus-visible{border-color:var(--yii-debug-danger);background:color-mix(in srgb, var(--yii-debug-danger), transparent 88%);color:var(--yii-debug-danger);text-decoration:none}.yii-debug .yii-debug-active-filter-attr{color:var(--yii-debug-panel-muted);text-transform:lowercase}.yii-debug .yii-debug-active-filter-sep{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-active-filter-value{color:var(--yii-debug-panel-text);text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-weight:700;overflow:hidden}.yii-debug .yii-debug-active-filter-x{color:var(--yii-debug-panel-muted);margin-left:2px;font-weight:700;line-height:1}.yii-debug .yii-debug-active-filter-pill:hover .yii-debug-active-filter-x,.yii-debug .yii-debug-active-filter-pill:focus-visible .yii-debug-active-filter-x{color:var(--yii-debug-danger)}.yii-debug .yii-debug-active-filters-clear{border:1px solid color-mix(in srgb, var(--yii-debug-danger), transparent 60%);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface);color:var(--yii-debug-danger);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.04em;text-transform:uppercase;margin-left:auto;padding:3px 10px;font-weight:700;text-decoration:none;transition:background-color .12s,border-color .12s,transform .12s}.yii-debug .yii-debug-active-filters-clear:hover,.yii-debug .yii-debug-active-filters-clear:focus-visible{border-color:var(--yii-debug-danger);background:color-mix(in srgb, var(--yii-debug-danger), transparent 86%);color:var(--yii-debug-danger);text-decoration:none;transform:translateY(-1px)}.yii-debug .yii-debug-col-id{white-space:nowrap;min-width:120px}.yii-debug .yii-debug-grid .filters input.yii-debug-col-id-input{box-sizing:border-box;width:104px}.yii-debug .yii-debug-grid-history .yii-debug-table{--yii-debug-history-query-width:0px;--yii-debug-history-mail-width:0px;--yii-debug-history-fixed-width:calc(916px + var(--yii-debug-history-query-width) + var(--yii-debug-history-mail-width));min-width:calc(var(--yii-debug-history-fixed-width) + 180px);table-layout:fixed}.yii-debug .yii-debug-grid-history .yii-debug-table:has(thead th.yii-debug-col-num:not(:first-child,.yii-debug-col-mail)){--yii-debug-history-query-width:66px}.yii-debug .yii-debug-grid-history .yii-debug-table:has(thead th.yii-debug-col-mail){--yii-debug-history-mail-width:56px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th:first-child{width:36px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th:nth-child(2){width:276px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th:nth-child(3){width:80px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th:nth-child(4),.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th:nth-child(5){width:100px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th.yii-debug-col-ip{width:112px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th.yii-debug-col-num:not(:first-child,.yii-debug-col-mail){width:66px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th.yii-debug-col-mail{width:56px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th:nth-last-child(3){width:128px}.yii-debug .yii-debug-grid-history .yii-debug-table thead tr:first-child>th:nth-last-child(2){width:84px}.yii-debug .yii-debug-grid-history .yii-debug-table tbody td,.yii-debug .yii-debug-grid-history .yii-debug-table tbody th{white-space:nowrap;padding:8px 10px}.yii-debug .yii-debug-grid-history .yii-debug-table tbody td.yii-debug-col-ip{white-space:normal;overflow-wrap:anywhere}.yii-debug .yii-debug-grid-history .yii-debug-table tbody:has(>tr:only-child>td[colspan]){caption-side:bottom;display:table-caption}.yii-debug .yii-debug-grid-history .yii-debug-table tbody:has(>tr:only-child>td[colspan]) td{display:block}.yii-debug .yii-debug-grid-history .yii-debug-table .yii-debug-tag-link,.yii-debug .yii-debug-grid-history .yii-debug-table .yii-debug-url-cell{text-overflow:ellipsis;max-width:100%;overflow:hidden}.yii-debug .yii-debug-grid-history .yii-debug-table .yii-debug-tag-link{vertical-align:middle;display:inline-block}@media (max-width:1366px){.yii-debug .yii-debug-grid-history .yii-debug-table{--yii-debug-history-fixed-width:calc(804px + var(--yii-debug-history-query-width))}.yii-debug .yii-debug-grid-history .yii-debug-col-ip,.yii-debug .yii-debug-grid-history .yii-debug-col-mail{display:none}}@media (max-width:767px){.yii-debug .yii-debug-grid-event .yii-debug-table thead th,.yii-debug .yii-debug-grid-event .yii-debug-table thead td,.yii-debug .yii-debug-grid-event .yii-debug-table tbody tr:not(.yii-debug-event-detail-row) td,.yii-debug .yii-debug-grid-event .yii-debug-table tbody th,.yii-debug .yii-debug-grid-event .yii-debug-table tfoot td{padding:8px 10px}.yii-debug .yii-debug-grid-event .yii-debug-table .filters td{padding:6px 10px}}.yii-debug th.yii-debug-col-num,.yii-debug td.yii-debug-col-num{text-align:center;white-space:nowrap;width:1%}.yii-debug td.yii-debug-col-num{font-variant-numeric:tabular-nums}.yii-debug td.yii-debug-col-num input,.yii-debug td.yii-debug-col-num select{text-align:center;width:100%;min-width:0}.yii-debug .yii-debug-explain-scroll{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);overflow-x:auto}.yii-debug .yii-debug-explain-table{font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);white-space:nowrap;margin:0}.yii-debug .yii-debug-explain-table th,.yii-debug .yii-debug-explain-table td{padding:var(--yii-debug-space-2) var(--yii-debug-space-3)}.yii-debug ul.yii-debug-trace{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);white-space:normal;margin:2px 0 0;padding:0;list-style:none}.yii-debug .yii-debug-muted{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-nowrap{white-space:nowrap}.yii-debug .yii-debug-not-set{color:var(--yii-debug-danger);font-style:italic}.yii-debug .yii-debug-gauge{vertical-align:middle;font-variant-numeric:tabular-nums;flex-direction:column;gap:3px;min-width:76px;display:inline-flex}.yii-debug .yii-debug-gauge-value{text-align:right}.yii-debug .yii-debug-gauge-bar{border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-gauge-track);height:3px;display:block;overflow:hidden}.yii-debug .yii-debug-gauge-bar:after{content:"";width:var(--yii-debug-gauge,0%);border-radius:inherit;background:var(--yii-debug-gauge-fill);height:100%;display:block}.yii-debug .yii-debug-indent{color:var(--yii-debug-panel-muted);margin-inline-end:var(--yii-debug-space-1)}.yii-debug .yii-debug-section{margin-bottom:var(--yii-debug-space-6)}.yii-debug .yii-debug-section:last-child{margin-bottom:0}.yii-debug .yii-debug-section-title{align-items:center;gap:var(--yii-debug-space-2);margin:0 0 var(--yii-debug-space-3);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);letter-spacing:.22em;text-transform:uppercase;font-size:.6875rem;font-weight:500;line-height:1;display:flex}.yii-debug .yii-debug-section-mark{color:var(--yii-debug-panel-primary);font-weight:700}.yii-debug .yii-debug-section-count{border-radius:var(--yii-debug-radius-pill);background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 85%);color:var(--yii-debug-panel-primary);align-items:center;margin-left:auto;padding:2px 8px;font-weight:700;display:inline-flex}.yii-debug h1.yii-debug-hero-title{margin:0 0 var(--yii-debug-space-5);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-display);letter-spacing:-.015em;text-transform:lowercase;font-size:2rem;font-weight:400;line-height:1}.yii-debug h1.yii-debug-hero-title:before{content:"// ";color:var(--yii-debug-panel-primary);font-family:var(--yii-debug-font-mono);letter-spacing:0;vertical-align:2px;margin-right:.2em;font-size:.75em;font-weight:700}.yii-debug .yii-debug-readout-card{gap:var(--yii-debug-space-2);min-height:132px;padding:var(--yii-debug-space-5) var(--yii-debug-space-4);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:radial-gradient(circle at 1px 1px, color-mix(in srgb, var(--yii-debug-panel-border), transparent 30%) 1px, transparent 0) 0 0 / 14px 14px, linear-gradient(150deg, color-mix(in srgb, var(--yii-debug-panel-primary), transparent 92%), transparent 55%), var(--yii-debug-panel-surface);flex-direction:column;transition:border-color .15s,transform .15s,box-shadow .15s;animation:.45s cubic-bezier(.2,.7,.3,1) both yii-debug-readout-in;display:flex;position:relative;overflow:hidden}.yii-debug .yii-debug-readout-card:hover{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 45%);box-shadow:var(--yii-debug-shadow-md);transform:translateY(-2px)}.yii-debug .yii-debug-readout-card:first-child{animation-delay:40ms}.yii-debug .yii-debug-readout-card:nth-child(2){animation-delay:80ms}.yii-debug .yii-debug-readout-card:nth-child(3){animation-delay:.12s}.yii-debug .yii-debug-readout-card:nth-child(4){animation-delay:.16s}.yii-debug .yii-debug-readout-card:nth-child(5){animation-delay:.2s}.yii-debug .yii-debug-readout-card:nth-child(6){animation-delay:.24s}.yii-debug .yii-debug-readout-label{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);letter-spacing:.15em;text-transform:uppercase;margin:0;font-size:.6875rem;font-weight:500;line-height:1;display:block;position:relative}.yii-debug .yii-debug-readout-label:before{content:":: ";color:var(--yii-debug-panel-primary);opacity:.85;font-weight:700}.yii-debug .yii-debug-readout-value{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);letter-spacing:-.015em;overflow-wrap:break-word;margin:0;font-size:1.375rem;font-weight:700;line-height:1.15;display:block}.yii-debug .yii-debug-readout-meta{align-items:center;gap:var(--yii-debug-space-2);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);letter-spacing:.05em;text-transform:lowercase;margin-top:auto;font-size:.6875rem;line-height:1;display:inline-flex}.yii-debug .yii-debug-readout-grid{gap:var(--yii-debug-space-3);margin-bottom:var(--yii-debug-space-6);grid-template-columns:repeat(auto-fit,minmax(210px,1fr));display:grid}.yii-debug .yii-debug-section .yii-debug-table-wrap{border-radius:var(--yii-debug-radius-md)}.yii-debug .yii-debug-section .yii-debug-table-overview th,.yii-debug .yii-debug-section .yii-debug-table-overview td{padding:9px var(--yii-debug-space-4);border-bottom:1px solid color-mix(in srgb, var(--yii-debug-panel-border), transparent 45%);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);text-align:left;vertical-align:baseline}.yii-debug .yii-debug-section .yii-debug-table-overview th{width:34%;color:var(--yii-debug-panel-muted);letter-spacing:.12em;text-transform:uppercase;font-weight:500}.yii-debug .yii-debug-section .yii-debug-table-overview td{color:var(--yii-debug-panel-text)}.yii-debug .yii-debug-section .yii-debug-table-overview tr:last-child th,.yii-debug .yii-debug-section .yii-debug-table-overview tr:last-child td{border-bottom:0}.yii-debug .yii-debug-fact-strip{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-border);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;margin:0;display:grid;overflow:hidden}.yii-debug .yii-debug-fact{min-width:0;padding:var(--yii-debug-space-3) var(--yii-debug-space-4);background:var(--yii-debug-panel-surface-muted)}.yii-debug .yii-debug-fact-label{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-sans);letter-spacing:.07em;text-transform:uppercase;margin-bottom:2px;font-size:.6875rem;font-weight:700}.yii-debug .yii-debug-fact-value{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);text-overflow:ellipsis;white-space:nowrap;margin:0;font-weight:600;overflow:hidden}.yii-debug .yii-debug-stat-strip{gap:var(--yii-debug-space-3);margin:0 0 var(--yii-debug-space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.yii-debug .yii-debug-stat{padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-sm);align-items:center;gap:10px;display:flex}.yii-debug .yii-debug-stat-icon{width:26px;height:26px;color:var(--yii-debug-panel-primary);flex:none;justify-content:center;align-items:center;display:inline-flex}.yii-debug .yii-debug-stat-icon svg{width:100%;height:100%}.yii-debug .yii-debug-stat-value{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xl);font-weight:800;line-height:1}.yii-debug .yii-debug-stat-label{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.04em;text-transform:uppercase;margin-left:auto}.yii-debug .yii-debug-stat-danger .yii-debug-stat-icon{color:var(--yii-debug-danger)}.yii-debug .yii-debug-stat-info .yii-debug-stat-icon{color:var(--yii-debug-info)}.yii-debug .yii-debug-stat-muted .yii-debug-stat-icon{color:var(--yii-debug-panel-primary)}.yii-debug .yii-debug-stat-success .yii-debug-stat-icon{color:var(--yii-debug-success)}.yii-debug .yii-debug-stat-warning .yii-debug-stat-icon{color:var(--yii-debug-warning)}.yii-debug .yii-debug-entity{gap:var(--yii-debug-space-4);padding:var(--yii-debug-space-4);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-sm);scroll-margin-top:var(--yii-debug-space-4);flex-direction:column;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex;position:relative}.yii-debug .yii-debug-entity:hover{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 60%);box-shadow:var(--yii-debug-shadow-sm), 0 12px 32px color-mix(in srgb, var(--yii-debug-panel-primary), transparent 88%);transform:translateY(-1px)}.yii-debug .yii-debug-entity:target{border-color:var(--yii-debug-panel-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--yii-debug-panel-primary), transparent 78%), var(--yii-debug-shadow-sm)}.yii-debug .yii-debug-entity+.yii-debug-entity{margin-top:var(--yii-debug-space-3)}.yii-debug .yii-debug-entity-head{gap:var(--yii-debug-space-3);grid-template-columns:auto 1fr auto;align-items:center;display:grid}.yii-debug .yii-debug-entity-icon{border-radius:var(--yii-debug-radius-md);background:linear-gradient(135deg, color-mix(in srgb, var(--yii-debug-panel-primary), transparent 78%), color-mix(in srgb, var(--yii-debug-info), transparent 78%));width:38px;height:38px;color:var(--yii-debug-panel-primary-strong);flex:none;justify-content:center;align-items:center;display:inline-flex}.yii-debug .yii-debug-entity-icon svg{width:22px;height:22px}.yii-debug .yii-debug-entity-title{flex-direction:column;gap:2px;min-width:0;display:flex}.yii-debug .yii-debug-entity-name{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-lg);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;margin:0;font-weight:700;line-height:1.2;overflow:hidden}.yii-debug .yii-debug-entity-subtitle{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.yii-debug .yii-debug-entity-meta{flex-wrap:nowrap;flex:none;justify-content:flex-end;align-items:center;gap:5px;display:inline-flex}.yii-debug .yii-debug-entity-meta .yii-debug-badge{border:1px solid var(--yii-debug-panel-border);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:4px;padding:2px 8px;font-weight:700;display:inline-flex}.yii-debug .yii-debug-entity-meta .yii-debug-badge-danger{border-color:color-mix(in srgb, var(--yii-debug-danger), transparent 60%);background:color-mix(in srgb, var(--yii-debug-danger), transparent 90%);color:var(--yii-debug-danger)}.yii-debug .yii-debug-entity-meta .yii-debug-badge-info{border-color:color-mix(in srgb, var(--yii-debug-info), transparent 60%);background:color-mix(in srgb, var(--yii-debug-info), transparent 90%);color:var(--yii-debug-info)}.yii-debug .yii-debug-entity-meta .yii-debug-badge-muted{border-color:color-mix(in srgb, var(--yii-debug-panel-muted), transparent 60%);background:color-mix(in srgb, var(--yii-debug-panel-muted), transparent 90%);color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-entity-meta .yii-debug-badge-success{border-color:color-mix(in srgb, var(--yii-debug-success), transparent 60%);background:color-mix(in srgb, var(--yii-debug-success), transparent 90%);color:var(--yii-debug-success)}.yii-debug .yii-debug-entity-meta .yii-debug-badge-warning{border-color:color-mix(in srgb, var(--yii-debug-warning), transparent 60%);background:color-mix(in srgb, var(--yii-debug-warning), transparent 90%);color:var(--yii-debug-warning)}.yii-debug .yii-debug-entity-body{gap:var(--yii-debug-space-4);grid-template-columns:minmax(180px,2fr) minmax(0,3fr);display:grid}.yii-debug .yii-debug-entity-body[data-cols="1"]{grid-template-columns:1fr}.yii-debug .yii-debug-entity-column{gap:var(--yii-debug-space-3);flex-direction:column;min-width:0;display:flex}.yii-debug .yii-debug-entity-column-title{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-xs);letter-spacing:.14em;text-transform:uppercase;margin:0;font-weight:700}.yii-debug .yii-debug-file-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.yii-debug .yii-debug-file-list+.yii-debug-file-list{margin-top:4px}.yii-debug .yii-debug-file{border:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 60%, transparent);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);grid-template-columns:auto 1fr;align-items:center;gap:6px;min-width:0;padding:4px 8px;display:grid}.yii-debug .yii-debug-file-type{border-radius:var(--yii-debug-radius-pill);min-width:30px;font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.02em;justify-content:center;align-items:center;padding:0 5px;font-weight:700;display:inline-flex}.yii-debug .yii-debug-file-type-danger{background:color-mix(in srgb, var(--yii-debug-danger), transparent 84%);color:var(--yii-debug-danger)}.yii-debug .yii-debug-file-type-info{background:color-mix(in srgb, var(--yii-debug-info), transparent 84%);color:var(--yii-debug-info)}.yii-debug .yii-debug-file-type-muted{background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-file-type-success{background:color-mix(in srgb, var(--yii-debug-success), transparent 84%);color:var(--yii-debug-success)}.yii-debug .yii-debug-file-type-warning{background:color-mix(in srgb, var(--yii-debug-warning), transparent 84%);color:var(--yii-debug-warning)}.yii-debug .yii-debug-file-name{color:var(--yii-debug-panel-text);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.yii-debug .yii-debug-entity-column .yii-debug-fact-strip{background:0 0;border:0;border-radius:0;flex-direction:column;gap:4px;margin:0;display:flex;overflow:visible}.yii-debug .yii-debug-entity-column .yii-debug-fact{border:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 60%, transparent);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface-muted);grid-template-columns:56px 1fr;align-items:baseline;gap:8px;padding:6px 10px;display:grid}.yii-debug .yii-debug-entity-column .yii-debug-fact-label{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.12em;text-transform:uppercase;margin:0;font-weight:700}.yii-debug .yii-debug-entity-column .yii-debug-fact-value{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);text-overflow:clip;white-space:normal;word-break:break-all;margin:0;font-weight:400;overflow:visible}.yii-debug .yii-debug-link-strip{padding:10px var(--yii-debug-space-3);border:1px dashed color-mix(in srgb, var(--yii-debug-success), transparent 50%);border-radius:var(--yii-debug-radius-md);background:color-mix(in srgb, var(--yii-debug-success), transparent 92%);flex-direction:column;gap:8px;display:flex}.yii-debug .yii-debug-link-strip-label{color:var(--yii-debug-success);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:700}.yii-debug .yii-debug-link-strip-list{flex-wrap:wrap;gap:6px;display:flex}.yii-debug .yii-debug-link-pill{border:1px solid color-mix(in srgb, var(--yii-debug-success), transparent 50%);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface);color:var(--yii-debug-success);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);white-space:nowrap;align-items:center;gap:5px;padding:3px 10px 3px 8px;font-weight:600;text-decoration:none;transition:background-color .14s,color .14s,transform .14s,border-color .14s;display:inline-flex}.yii-debug .yii-debug-link-pill:before{content:"↳";opacity:.85;font-size:12px}.yii-debug .yii-debug-link-pill:hover,.yii-debug .yii-debug-link-pill:focus-visible{border-color:var(--yii-debug-success);background:color-mix(in srgb, var(--yii-debug-success), transparent 86%);color:var(--yii-debug-success);text-decoration:none;transform:translateY(-1px)}@media (max-width:720px){.yii-debug .yii-debug-stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.yii-debug .yii-debug-entity-body{grid-template-columns:1fr}.yii-debug .yii-debug-entity-head{grid-template-columns:auto 1fr}.yii-debug .yii-debug-entity-meta{grid-column:1/-1;justify-content:flex-start;max-width:100%}}.yii-debug .yii-debug-manifest{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);flex-direction:column;display:flex;overflow:hidden}.yii-debug .yii-debug-manifest-head{align-items:center;gap:var(--yii-debug-space-2);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border-bottom:var(--yii-debug-border);color:var(--yii-debug-panel-primary);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.08em;font-weight:700;display:flex}.yii-debug .yii-debug-manifest-count{color:var(--yii-debug-panel-muted);letter-spacing:.12em;text-transform:uppercase;margin-left:auto;font-weight:500}.yii-debug .yii-debug-manifest-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));display:grid}.yii-debug .yii-debug-manifest-item{justify-content:space-between;align-items:baseline;gap:var(--yii-debug-space-3);min-width:0;padding:7px var(--yii-debug-space-4);border-bottom:1px solid color-mix(in srgb, var(--yii-debug-panel-border), transparent 45%);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);display:flex}.yii-debug .yii-debug-manifest-name{color:var(--yii-debug-panel-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.yii-debug .yii-debug-manifest-version{color:var(--yii-debug-panel-primary);flex:none}.yii-debug .yii-debug-ext-strip{gap:var(--yii-debug-space-2);padding:var(--yii-debug-space-3);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:linear-gradient(0deg, color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 30%), var(--yii-debug-panel-surface));flex-wrap:wrap;display:flex}.yii-debug .yii-debug-ext-pill{align-items:center;gap:var(--yii-debug-space-2);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);letter-spacing:.1em;text-transform:uppercase;padding:6px 12px 6px 9px;font-size:.6875rem;font-weight:500;line-height:1;transition:border-color .15s,background .15s;display:inline-flex}.yii-debug .yii-debug-ext-pill-dot{background:color-mix(in srgb, var(--yii-debug-panel-muted), transparent 60%);border-radius:999px;width:7px;height:7px;display:inline-block}.yii-debug .yii-debug-ext-pill-label{color:var(--yii-debug-panel-text)}.yii-debug .yii-debug-ext-pill-state{margin-left:var(--yii-debug-space-1);color:var(--yii-debug-panel-muted);letter-spacing:.12em;opacity:.7;font-size:.625rem;font-weight:700}.yii-debug .yii-debug-ext-pill.is-on{border-color:color-mix(in srgb, var(--yii-debug-success), transparent 55%);background:color-mix(in srgb, var(--yii-debug-success), var(--yii-debug-panel-surface) 90%)}.yii-debug .yii-debug-ext-pill.is-on .yii-debug-ext-pill-dot{background:var(--yii-debug-success);box-shadow:0 0 0 3px color-mix(in srgb, var(--yii-debug-success), transparent 75%);animation:2.4s ease-in-out infinite yii-debug-led-pulse}.yii-debug .yii-debug-ext-pill.is-on .yii-debug-ext-pill-state{color:var(--yii-debug-success);opacity:1}.yii-debug .yii-debug-ext-pill.is-off{opacity:.55}.yii-debug .yii-debug-phpinfo-shell{gap:var(--yii-debug-space-4);grid-template-columns:220px minmax(0,1fr);align-items:start;display:grid}.yii-debug .yii-debug-phpinfo-toc{top:var(--yii-debug-space-3);max-height:calc(100vh - 80px);padding:var(--yii-debug-space-3);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);scrollbar-width:thin;align-self:start;position:sticky;overflow-y:auto}.yii-debug .yii-debug-phpinfo-toc-title{margin:0 0 var(--yii-debug-space-2);color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);align-items:baseline;gap:6px;display:flex}.yii-debug .yii-debug-phpinfo-toc-title span:first-child{color:var(--yii-debug-panel-text);font-variant-numeric:tabular-nums;font-weight:700}.yii-debug .yii-debug-phpinfo-toc-title-note{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);margin-left:auto}.yii-debug .yii-debug-phpinfo-toc-overview,.yii-debug .yii-debug-phpinfo-toc-group-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.yii-debug .yii-debug-phpinfo-toc-overview{margin-bottom:var(--yii-debug-space-2);padding-bottom:var(--yii-debug-space-2);border-bottom:var(--yii-debug-border)}.yii-debug .yii-debug-phpinfo-toc-groups{flex-direction:column;gap:2px;display:flex}.yii-debug .yii-debug-phpinfo-toc-group{margin:0}.yii-debug .yii-debug-phpinfo-toc-group-summary{border-radius:var(--yii-debug-radius-sm);color:var(--yii-debug-panel-muted);cursor:pointer;font-size:var(--yii-debug-fs-xs);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px 8px;font-weight:600;list-style:none;transition:background-color .12s,color .12s;display:grid}.yii-debug .yii-debug-phpinfo-toc-group-summary::-webkit-details-marker{display:none}.yii-debug .yii-debug-phpinfo-toc-group-summary:before{content:"›";color:var(--yii-debug-panel-muted);font-size:1.1em;line-height:1;transition:transform .12s}.yii-debug .yii-debug-phpinfo-toc-group-summary:hover,.yii-debug .yii-debug-phpinfo-toc-group-summary:focus-visible{background:var(--yii-debug-panel-surface-hover);color:var(--yii-debug-panel-text)}.yii-debug .yii-debug-phpinfo-toc-group[open]>.yii-debug-phpinfo-toc-group-summary{color:var(--yii-debug-panel-text)}.yii-debug .yii-debug-phpinfo-toc-group[open]>.yii-debug-phpinfo-toc-group-summary:before{transform:rotate(90deg)}.yii-debug .yii-debug-phpinfo-toc-group-count{border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface-muted);min-width:22px;color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);font-variant-numeric:tabular-nums;text-align:center;padding:1px 6px}.yii-debug .yii-debug-phpinfo-toc-group-list{margin:2px 0 var(--yii-debug-space-2);padding-left:14px}.yii-debug .yii-debug-phpinfo-toc-link{border-radius:0 var(--yii-debug-radius-sm) var(--yii-debug-radius-sm) 0;color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-sm);border-left:2px solid #0000;padding:7px 10px 7px 12px;text-decoration:none;transition:background-color .12s,color .12s,border-color .12s;display:block}.yii-debug .yii-debug-phpinfo-toc-link:hover,.yii-debug .yii-debug-phpinfo-toc-link:focus-visible{background:var(--yii-debug-panel-surface-hover);color:var(--yii-debug-panel-text);text-decoration:none}.yii-debug .yii-debug-phpinfo-toc-link.is-active{border-left-color:var(--yii-debug-panel-primary);background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 90%);color:var(--yii-debug-panel-primary-strong);font-weight:700}.yii-debug .yii-debug-phpinfo-main{min-width:0}.yii-debug .yii-debug-phpinfo-search{margin-bottom:var(--yii-debug-space-3);flex-direction:column;gap:6px;display:flex}.yii-debug .yii-debug-phpinfo-search-control{align-items:center;display:flex;position:relative}.yii-debug .yii-debug-phpinfo-search-icon{width:16px;height:16px;color:var(--yii-debug-panel-muted);pointer-events:none;justify-content:center;align-items:center;display:inline-flex;position:absolute;left:12px}.yii-debug .yii-debug-phpinfo-search-icon svg{width:100%;height:100%}.yii-debug .yii-debug-phpinfo-search-input{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);color:var(--yii-debug-panel-text);font-size:var(--yii-debug-fs-sm);flex:1;padding:9px 12px 9px 36px;transition:border-color .12s,box-shadow .12s}.yii-debug .yii-debug-phpinfo-search-input::placeholder{color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-phpinfo-search-input:focus{border-color:var(--yii-debug-panel-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--yii-debug-panel-primary), transparent 80%)}.yii-debug .yii-debug-phpinfo-search-clear{border-radius:var(--yii-debug-radius-sm);color:var(--yii-debug-panel-link);cursor:pointer;font:inherit;font-size:var(--yii-debug-fs-xs);background:0 0;border:0;padding:4px 8px;font-weight:600;position:absolute;right:8px}.yii-debug .yii-debug-phpinfo-search-clear:hover,.yii-debug .yii-debug-phpinfo-search-clear:focus-visible{background:var(--yii-debug-panel-surface-hover);color:var(--yii-debug-panel-link-hover)}.yii-debug .yii-debug-phpinfo-search-control:has(.yii-debug-phpinfo-search-clear:not([hidden])) .yii-debug-phpinfo-search-input{padding-right:58px}.yii-debug .yii-debug-phpinfo-search-feedback{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-2);min-height:18px;padding-inline:2px;display:flex}.yii-debug .yii-debug-phpinfo-search-feedback:has(.yii-debug-phpinfo-search-status:empty):has(.yii-debug-phpinfo-search-empty[hidden]){display:none}.yii-debug .yii-debug-phpinfo-search-status,.yii-debug .yii-debug-phpinfo-search-empty{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs)}.yii-debug .yii-debug-phpinfo-search-empty{color:var(--yii-debug-danger)}.yii-debug .yii-debug-phpinfo-section{scroll-margin-top:var(--yii-debug-space-3)}.yii-debug .yii-debug-phpinfo-section+:is(.yii-debug .yii-debug-phpinfo-section){margin-top:var(--yii-debug-space-4)}.yii-debug .yii-debug-phpinfo-section .yii-debug-disclosure{margin-bottom:0}.yii-debug .yii-debug-phpinfo-toc-link[hidden],.yii-debug .yii-debug-phpinfo-toc-group[hidden],.yii-debug .yii-debug-phpinfo-section[hidden],.yii-debug .yii-debug-phpinfo-search-clear[hidden],.yii-debug .yii-debug-phpinfo-search-empty[hidden],.yii-debug .yii-debug-phpinfo-overview-hero-section[hidden],.yii-debug .yii-debug-disclosure[hidden],.yii-debug .yii-debug-phpinfo-extension-group[hidden],.yii-debug .yii-debug-ext-pill[hidden],.yii-debug .yii-debug-table-wrap[hidden],.yii-debug .yii-debug-phpinfo-module tr[hidden]{display:none}@media (max-width:900px){.yii-debug .yii-debug-phpinfo-shell{grid-template-columns:1fr}.yii-debug .yii-debug-phpinfo-toc{max-height:none;position:static;overflow:hidden}.yii-debug .yii-debug-phpinfo-toc-groups{gap:4px var(--yii-debug-space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.yii-debug .yii-debug-phpinfo-toc-group[open]{grid-column:1/-1}.yii-debug .yii-debug-phpinfo-toc-group-list{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:4px;padding-left:0;display:grid}.yii-debug .yii-debug-phpinfo-toc-link{border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface-muted);border-left:0;padding:4px 10px}.yii-debug .yii-debug-phpinfo-toc-link.is-active{background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 80%);border-left:0}}@media (max-width:560px){.yii-debug .yii-debug-phpinfo-toc-groups{grid-template-columns:1fr}}.yii-debug .yii-debug-phpinfo-overview-hero{gap:var(--yii-debug-space-3);margin-bottom:var(--yii-debug-space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (max-width:720px){.yii-debug .yii-debug-phpinfo-overview-hero{grid-template-columns:1fr}}.yii-debug .yii-debug-phpinfo-overview-hero-headline{align-items:center;gap:var(--yii-debug-space-3);grid-template-columns:1fr auto;display:grid}.yii-debug .yii-debug-phpinfo-overview-hero-version{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-display,var(--yii-debug-font-mono));letter-spacing:-.02em;font-size:clamp(1.6rem,2.4vw + 1rem,2.4rem);font-weight:800;line-height:1}.yii-debug .yii-debug-phpinfo-overview-hero-mark{border-radius:var(--yii-debug-radius-pill);border:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);min-width:64px;color:var(--yii-debug-panel-primary-strong);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-lg);letter-spacing:.08em;text-transform:lowercase;justify-content:center;align-items:center;padding:6px 14px;font-weight:700;display:inline-flex}.yii-debug .yii-debug-phpinfo-overview-hero-metrics{gap:var(--yii-debug-space-2) var(--yii-debug-space-4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0;display:grid}.yii-debug .yii-debug-phpinfo-overview-hero-section{gap:var(--yii-debug-space-3);min-width:0;padding:var(--yii-debug-space-4);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-sm);flex-direction:column;display:flex}.yii-debug .yii-debug-phpinfo-overview-hero-section:first-child{grid-column:1/-1}.yii-debug .yii-debug-phpinfo-extensions{grid-column:1/-1}.yii-debug .yii-debug-phpinfo-extensions>.yii-debug-phpinfo-extension-groups{padding:var(--yii-debug-space-4)}.yii-debug .yii-debug-phpinfo-extension-group-count{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);font-variant-numeric:tabular-nums;padding:1px 7px}.yii-debug .yii-debug-phpinfo-extension-groups{gap:var(--yii-debug-space-3);flex-direction:column;display:flex}.yii-debug .yii-debug-phpinfo-extension-group{gap:var(--yii-debug-space-2);flex-direction:column;display:flex}.yii-debug .yii-debug-phpinfo-extension-group-head{align-items:center;gap:var(--yii-debug-space-2);color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);font-weight:600;display:flex}.yii-debug .yii-debug-phpinfo-extension-group-head .yii-debug-phpinfo-extension-group-count{margin-left:auto}.yii-debug .yii-debug-phpinfo-extension-group .yii-debug-ext-pill{scroll-margin-top:var(--yii-debug-space-4)}.yii-debug .yii-debug-phpinfo-extension-group .yii-debug-ext-pill:target,.yii-debug .yii-debug-phpinfo-extension-group .yii-debug-ext-pill.is-search-match{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 45%);background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 90%)}.yii-debug .yii-debug-phpinfo-overview-block-head{border-bottom:var(--yii-debug-border);align-items:center;gap:10px;padding-bottom:8px;display:flex}.yii-debug .yii-debug-phpinfo-overview-block-eyebrow{color:var(--yii-debug-panel-text);font-size:var(--yii-debug-fs-sm);font-weight:600}.yii-debug .yii-debug-phpinfo-overview-hero-metric{flex-direction:column;gap:3px;padding-block:2px;display:flex}.yii-debug .yii-debug-phpinfo-overview-hero-metric dt{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);margin:0;font-weight:600;line-height:1.2}.yii-debug .yii-debug-phpinfo-overview-hero-metric dd{overflow-wrap:break-word;min-width:0;color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);margin:0;line-height:1.4}.yii-debug .yii-debug-phpinfo-overview-hero-metric dd code{color:inherit;background:0 0;padding:0}.yii-debug .yii-debug-phpinfo-overview-hero-metric.is-wide{grid-column:1/-1}.yii-debug .yii-debug-phpinfo-overview-pill{border-radius:var(--yii-debug-radius-pill);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.04em;text-transform:uppercase;border:1px solid #0000;align-items:center;gap:6px;padding:1px 10px;font-weight:700;display:inline-flex}.yii-debug .yii-debug-phpinfo-overview-pill[data-variant=success]{color:var(--yii-debug-success);background:color-mix(in srgb, var(--yii-debug-success), transparent 86%);border-color:color-mix(in srgb, var(--yii-debug-success), transparent 65%)}.yii-debug .yii-debug-phpinfo-overview-pill[data-variant=muted]{color:var(--yii-debug-panel-muted);background:var(--yii-debug-panel-surface-muted);border-color:var(--yii-debug-panel-border)}.yii-debug .yii-debug-phpinfo-overview-token{border:1px solid var(--yii-debug-panel-border);border-radius:var(--yii-debug-radius-sm);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);padding:1px 8px}.yii-debug .yii-debug-phpinfo-overview-files{flex-wrap:wrap;gap:4px;display:flex}.yii-debug .yii-debug-phpinfo-overview-files .yii-debug-phpinfo-overview-token{cursor:help;transition:border-color .12s,background-color .12s}.yii-debug .yii-debug-phpinfo-overview-files .yii-debug-phpinfo-overview-token:hover{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 40%);background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 88%)}.yii-debug .yii-debug-phpinfo-module{gap:var(--yii-debug-space-3);flex-direction:column;margin-top:0;display:flex}.yii-debug .yii-debug-phpinfo-module-head{align-items:center;gap:10px;margin:0;padding:2px 2px 0;display:flex}.yii-debug .yii-debug-phpinfo-module-head h2{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-xl);text-align:left;background:0 0;margin:0;padding:0;font-weight:600}.yii-debug .yii-debug-phpinfo-table-section{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-sm);overflow:hidden}.yii-debug .yii-debug-phpinfo-table-section-head{justify-content:space-between;align-items:center;gap:var(--yii-debug-space-2);padding:9px var(--yii-debug-space-3);border-bottom:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-sm);font-weight:600;display:flex}.yii-debug .yii-debug-phpinfo-variable-group>summary{cursor:pointer;list-style:none;transition:background-color .12s}.yii-debug .yii-debug-phpinfo-variable-group>summary::-webkit-details-marker{display:none}.yii-debug .yii-debug-phpinfo-variable-group>summary:hover,.yii-debug .yii-debug-phpinfo-variable-group>summary:focus-visible{background:var(--yii-debug-panel-surface-hover)}.yii-debug .yii-debug-phpinfo-variable-group>summary>span:first-child{align-items:center;gap:8px;display:inline-flex}.yii-debug .yii-debug-phpinfo-variable-group>summary>span:first-child:before{content:"›";color:var(--yii-debug-panel-muted);font-size:1.1em;line-height:1;transition:transform .12s}.yii-debug .yii-debug-phpinfo-variable-group[open]>summary>span:first-child:before{transform:rotate(90deg)}.yii-debug .yii-debug-phpinfo-table-section-count{border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);font-variant-numeric:tabular-nums;flex:none;padding:1px 7px;font-weight:500}.yii-debug .yii-debug-phpinfo-table-scroll{min-width:0;overflow-x:auto}.yii-debug .yii-debug-phpinfo-module .yii-debug-table{table-layout:fixed;min-width:560px}.yii-debug .yii-debug-phpinfo-module .yii-debug-table tr>:first-child{width:40%}.yii-debug .yii-debug-phpinfo-module .yii-debug-table tr>:nth-child(2):last-child{width:60%}.yii-debug .yii-debug-phpinfo-module .yii-debug-table tr>:nth-child(2):not(:last-child),.yii-debug .yii-debug-phpinfo-module .yii-debug-table tr>:nth-child(3){width:30%}.yii-debug .yii-debug-phpinfo-module .yii-debug-table th,.yii-debug .yii-debug-phpinfo-module .yii-debug-table td{text-align:left}.yii-debug .yii-debug-phpinfo-module .yii-debug-table th[scope=row]{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-sans);white-space:normal;font-weight:500}.yii-debug .yii-debug-phpinfo-module .yii-debug-table td{font-family:var(--yii-debug-font-mono)}.yii-debug .yii-debug-phpinfo-module .yii-debug-table tr.h>*{z-index:1;background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-xs);letter-spacing:.03em;text-transform:uppercase;font-weight:700;position:sticky;top:0}.yii-debug .yii-debug-phpinfo-module .yii-debug-table tr.is-search-match>*{background:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 88%)!important}.yii-debug .yii-debug-phpinfo-module .yii-debug-table tr.has-local-override>td:nth-child(2){box-shadow:inset 2px 0 0 color-mix(in srgb, var(--yii-debug-warning), transparent 25%);color:color-mix(in srgb, var(--yii-debug-warning) 72%, var(--yii-debug-panel-text))}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-phpinfo-table-scroll{overflow:visible}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts{table-layout:auto;min-width:0;display:block}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tbody{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact{border-bottom:1px solid color-mix(in srgb, var(--yii-debug-panel-border), transparent 25%);grid-template-columns:minmax(130px,.85fr) minmax(0,1.15fr);min-width:0;display:grid}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact:nth-child(odd){border-right:1px solid color-mix(in srgb, var(--yii-debug-panel-border), transparent 25%)}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact.yii-debug-phpinfo-fact-wide{border-right:0;grid-column:1/-1}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact>*{overflow-wrap:anywhere;background:0 0;border:0;width:auto;padding:9px 12px}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact>th{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-xs);font-weight:600}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact>td{color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs)}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact-subheading{grid-column:1/-1;display:block}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact-subheading>th{border-block:var(--yii-debug-border);background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 15%);width:auto;color:var(--yii-debug-panel-text);font-family:var(--yii-debug-font-sans);font-size:var(--yii-debug-fs-xs);letter-spacing:.02em;text-align:left;padding:8px 12px;font-weight:600;display:block}.yii-debug .yii-debug-phpinfo-status-pill,.yii-debug .yii-debug-phpinfo-redacted{border-radius:var(--yii-debug-radius-pill);width:-moz-fit-content;width:fit-content;font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.03em;border:1px solid #0000;align-items:center;padding:1px 8px;font-weight:600;display:inline-flex}.yii-debug .yii-debug-phpinfo-status-pill[data-variant=success]{border-color:color-mix(in srgb, var(--yii-debug-success), transparent 65%);background:color-mix(in srgb, var(--yii-debug-success), transparent 88%);color:var(--yii-debug-success)}.yii-debug .yii-debug-phpinfo-status-pill[data-variant=muted]{border-color:var(--yii-debug-panel-border);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted)}.yii-debug .yii-debug-phpinfo-redacted{border-color:color-mix(in srgb, var(--yii-debug-warning), transparent 65%);background:color-mix(in srgb, var(--yii-debug-warning), transparent 90%);color:color-mix(in srgb, var(--yii-debug-warning) 72%, var(--yii-debug-panel-text));text-transform:uppercase}.yii-debug .yii-debug-phpinfo-table-section.is-note .yii-debug-table.is-note{table-layout:auto;min-width:0}.yii-debug .yii-debug-phpinfo-table-section.is-note .yii-debug-table.is-note td,.yii-debug .yii-debug-phpinfo-table-section.is-note .yii-debug-table.is-note th{width:auto;padding:var(--yii-debug-space-3);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-sans);text-align:left;line-height:1.6}@media (max-width:720px){.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tbody{grid-template-columns:1fr}.yii-debug .yii-debug-phpinfo-table-section.is-facts .yii-debug-table.is-facts tr.yii-debug-phpinfo-fact{border-right:0}}@media (max-width:959px){.yii-debug .yii-debug-sidebar{min-width:0}.yii-debug .yii-debug-nav{overscroll-behavior-x:contain;scrollbar-width:thin;overflow-x:auto}.yii-debug .yii-debug-nav ul{gap:var(--yii-debug-space-1);flex-direction:row;width:max-content;min-width:100%}.yii-debug .yii-debug-nav-link{white-space:nowrap;min-height:40px}.yii-debug .yii-debug-nav-link:after{display:none}.yii-debug .yii-debug-nav-link-icon{margin-right:var(--yii-debug-space-1)}}@media (max-width:767px){.yii-debug .yii-debug-page{padding:var(--yii-debug-space-2)}.yii-debug .yii-debug-card{padding:var(--yii-debug-space-3)}}@media (prefers-reduced-motion:reduce){.yii-debug *,.yii-debug :before,.yii-debug :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes yii-debug-readout-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes yii-debug-led-pulse{0%,to{box-shadow:0 0 0 3px color-mix(in srgb, var(--yii-debug-success), transparent 75%)}50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--yii-debug-success), transparent 90%)}}.yii-debug-tl-filter{align-items:end;gap:var(--yii-debug-space-3);margin-bottom:var(--yii-debug-space-3);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface-muted);flex-wrap:wrap;display:flex}.yii-debug-tl-field{flex-direction:column;gap:4px;min-width:160px;display:flex}.yii-debug-tl-field label{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.yii-debug-tl-field input{padding:6px var(--yii-debug-space-2);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-sm);background:var(--yii-debug-panel-surface);color:var(--yii-debug-panel-text);font:inherit;font-family:var(--yii-debug-font-mono)}.yii-debug-tl-field input::placeholder{color:var(--yii-debug-panel-muted)}.yii-debug-tl-field input:focus{border-color:var(--yii-debug-panel-primary)}.yii-debug-tl-field-grow{flex:240px}.yii-debug-tl-hint{margin-bottom:var(--yii-debug-space-3);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border:1px dashed color-mix(in srgb, var(--yii-debug-panel-border) 70%, transparent);border-radius:var(--yii-debug-radius-md);background:color-mix(in srgb, var(--yii-debug-panel-surface-muted), transparent 40%)}.yii-debug-tl-hint-title{color:var(--yii-debug-panel-text);margin:0 0 6px;font-weight:600}.yii-debug-tl-hint-body{color:var(--yii-debug-panel-muted);font-size:var(--yii-debug-fs-sm);margin:0;line-height:1.55}.yii-debug-tl-hint-body em{color:var(--yii-debug-panel-text);font-style:normal;font-weight:600}.yii-debug-tl{--yii-debug-tl-label-col:22%;grid-template-columns:minmax(180px, var(--yii-debug-tl-label-col)) 1fr;border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);grid-template-rows:auto 1fr auto;gap:0;display:grid;overflow:hidden}@media (max-width:1440px){.yii-debug-tl{--yii-debug-tl-label-col:32%}}.yii-debug-tl-axis{border-bottom:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);grid-column:2/3;height:32px;padding:8px 0;position:relative}.yii-debug-tl-tick{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);letter-spacing:.04em;white-space:nowrap;pointer-events:none;position:absolute;top:8px;transform:translate(-50%)}.yii-debug-tl-tick:after{content:"";background:var(--yii-debug-panel-border);width:1px;height:8px;position:absolute;top:18px;left:50%}.yii-debug-tl-rows{grid-column:1/3;grid-template-columns:minmax(180px, var(--yii-debug-tl-label-col)) 1fr;background:linear-gradient(to right, transparent calc(var(--yii-debug-tl-label-col) - 1px), var(--yii-debug-panel-border) calc(var(--yii-debug-tl-label-col) - 1px), var(--yii-debug-panel-border) var(--yii-debug-tl-label-col), transparent var(--yii-debug-tl-label-col));display:grid}.yii-debug-tl-row{display:contents}.yii-debug-tl-row:hover .yii-debug-tl-label,.yii-debug-tl-row:hover .yii-debug-tl-track{background:var(--yii-debug-panel-surface-hover)}.yii-debug-tl-row:hover .yii-debug-tl-name{color:var(--yii-debug-panel-text)}.yii-debug-tl-label{min-width:0;padding:8px var(--yii-debug-space-3) 8px calc(var(--yii-debug-space-3) + (var(--depth,0) * 14px));border-bottom:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 50%, transparent);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;transition:background-color .12s;display:grid}.yii-debug-tl-dot{background:var(--yii-debug-cat-db);opacity:.85;border-radius:50%;flex:none;width:6px;height:6px}.yii-debug-tl-name{font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);color:var(--yii-debug-panel-muted);text-overflow:ellipsis;white-space:nowrap;transition:color .12s;overflow:hidden}.yii-debug-tl-track{border-bottom:1px solid color-mix(in srgb, var(--yii-debug-panel-border) 50%, transparent);transition:background-color .12s;position:relative}.yii-debug-tl-bar{background:var(--yii-debug-cat-db);border-radius:4px;min-width:2px;height:18px;position:absolute;top:50%;transform:translateY(-50%);box-shadow:inset 0 1px #ffffff1f,0 1px 2px #0000002e}.yii-debug-tl-bar-duration{color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);font-variant-numeric:tabular-nums;white-space:nowrap;justify-self:end;font-weight:500}.yii-debug-tl-memory{grid-template-columns:minmax(180px, var(--yii-debug-tl-label-col)) 1fr auto;padding:var(--yii-debug-space-2) var(--yii-debug-space-3);border-top:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);grid-column:1/3;align-items:center;display:grid}.yii-debug-tl-memory-label{text-transform:uppercase;letter-spacing:.06em}.yii-debug-tl-memory-track{border-radius:var(--yii-debug-radius-sm);background:color-mix(in srgb, var(--yii-debug-panel-surface), transparent 50%);width:100%;color:var(--yii-debug-panel-primary);position:relative;overflow:hidden}.yii-debug-tl-memory-track svg{width:100%;height:100%;display:block}.yii-debug-tl-memory-peak{margin-left:var(--yii-debug-space-2);color:var(--yii-debug-panel-text);font-weight:700}@media (max-width:640px){.yii-debug-tl,.yii-debug-tl-rows{--yii-debug-tl-label-col:52%;grid-template-columns:minmax(140px, var(--yii-debug-tl-label-col)) minmax(0, 1fr)}.yii-debug-tl-label{padding:7px var(--yii-debug-space-2);gap:6px}.yii-debug-tl-memory{grid-template-columns:minmax(140px, var(--yii-debug-tl-label-col)) minmax(0, 1fr)}.yii-debug-tl-memory-peak{text-align:right;grid-column:2;margin:4px 0 0}}.yii-debug .yii-debug-skip-link{top:var(--yii-debug-space-2);left:var(--yii-debug-space-2);z-index:1000;padding:var(--yii-debug-space-2) var(--yii-debug-space-3);border:2px solid var(--yii-debug-focus-ring);border-radius:var(--yii-debug-radius-md);background:var(--yii-debug-panel-surface);box-shadow:var(--yii-debug-shadow-md);color:var(--yii-debug-panel-text);transform:translateY(calc(-100% - var(--yii-debug-space-4)));font-weight:700;position:fixed}.yii-debug .yii-debug-skip-link:focus-visible{text-decoration:none;transform:translateY(0)}.yii-debug .yii-debug-brand-chip-control{border:var(--yii-debug-border);background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted);cursor:pointer;justify-content:center}.yii-debug .yii-debug-brand-chip-control:hover,.yii-debug .yii-debug-brand-chip-control:focus-visible{border-color:color-mix(in srgb, var(--yii-debug-panel-primary), transparent 50%);color:var(--yii-debug-panel-primary-strong);transform:translateY(-1px)}.yii-debug :is(h2,h3).yii-debug-has-permalink{align-items:center;gap:var(--yii-debug-space-1);scroll-margin-block-start:var(--yii-debug-space-5);display:flex}.yii-debug .yii-debug-heading-permalink{border-radius:var(--yii-debug-radius-sm);min-width:32px;min-height:32px;color:var(--yii-debug-panel-muted);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-sm);opacity:0;transition:color var(--yii-debug-duration-fast) ease, opacity var(--yii-debug-duration-fast) ease, background var(--yii-debug-duration-fast) ease;flex:none;justify-content:center;align-items:center;line-height:1;text-decoration:none;display:inline-flex}.yii-debug .yii-debug-heading-permalink:hover,.yii-debug .yii-debug-heading-permalink:focus-visible{background:var(--yii-debug-panel-bg-accent);color:var(--yii-debug-panel-primary-strong);opacity:1;text-decoration:none}.yii-debug :is(h2,h3).yii-debug-has-permalink:hover>.yii-debug-heading-permalink,.yii-debug :is(h2,h3).yii-debug-has-permalink:focus-within>.yii-debug-heading-permalink,.yii-debug :is(h2,h3).yii-debug-deep-link-target>.yii-debug-heading-permalink{opacity:1}.yii-debug .yii-debug-deep-link-target{outline:2px solid var(--yii-debug-focus-ring);outline-offset:4px}.yii-debug .yii-debug-db-n1-summary{gap:var(--yii-debug-space-2);margin-bottom:var(--yii-debug-space-4);padding:var(--yii-debug-space-3) var(--yii-debug-space-4);border:1px solid color-mix(in srgb, var(--yii-debug-warning), transparent 55%);border-radius:var(--yii-debug-radius-md);background:color-mix(in srgb, var(--yii-debug-warning), transparent 92%);display:grid}.yii-debug .yii-debug-db-n1-heading{justify-content:space-between;align-items:baseline;gap:var(--yii-debug-space-2);flex-wrap:wrap;display:flex}.yii-debug .yii-debug-db-n1-list{gap:var(--yii-debug-space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.yii-debug .yii-debug-db-n1-link,.yii-debug .yii-debug-db-n1-row-link{align-items:center;gap:var(--yii-debug-space-2);min-height:var(--yii-debug-control-min-size);padding:var(--yii-debug-space-1) var(--yii-debug-space-2);border:1px solid color-mix(in srgb, var(--yii-debug-warning), transparent 60%);border-radius:var(--yii-debug-radius-pill);background:var(--yii-debug-panel-surface);color:color-mix(in srgb, var(--yii-debug-warning) 72%, var(--yii-debug-panel-text));font-size:var(--yii-debug-fs-xs);font-weight:700;text-decoration:none;display:inline-flex}:is(.yii-debug .yii-debug-db-n1-link,.yii-debug .yii-debug-db-n1-row-link):hover,:is(.yii-debug .yii-debug-db-n1-link,.yii-debug .yii-debug-db-n1-row-link):focus-visible,:is(.yii-debug .yii-debug-db-n1-link,.yii-debug .yii-debug-db-n1-row-link)[aria-current=true]{background:color-mix(in srgb, var(--yii-debug-warning), transparent 84%);color:var(--yii-debug-panel-text);text-decoration:none}.yii-debug .yii-debug-db-n1-fingerprint{max-width:min(56ch,65vw);font-family:var(--yii-debug-font-mono);text-overflow:ellipsis;white-space:nowrap;font-weight:500;display:inline-block;overflow:hidden}.yii-debug .yii-debug-db-n1-row-link{margin-top:var(--yii-debug-space-3)}.yii-debug .yii-debug-grid-db .yii-debug-trace{gap:0;display:grid}.yii-debug .yii-debug-grid-db .yii-debug-trace a{align-items:center;min-height:24px;display:inline-flex}.yii-debug .yii-debug-db-n1-clear[hidden]{display:none}.yii-debug .yii-debug-compare-form{gap:var(--yii-debug-space-3);margin-bottom:var(--yii-debug-space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));align-items:end;display:grid}.yii-debug .yii-debug-compare-overview{gap:var(--yii-debug-space-3);margin-bottom:var(--yii-debug-space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));display:grid}.yii-debug .yii-debug-compare-grid{min-width:42rem}.yii-debug :is(.yii-debug-delta-up,.yii-debug-delta-down,.yii-debug-delta-neutral){padding:2px var(--yii-debug-space-2);border:var(--yii-debug-border);border-radius:var(--yii-debug-radius-pill);font-family:var(--yii-debug-font-mono);font-size:var(--yii-debug-fs-xs);font-variant-numeric:tabular-nums;align-items:center;font-weight:700;display:inline-flex}.yii-debug .yii-debug-delta-up{border-color:color-mix(in srgb, var(--yii-debug-danger), transparent 60%);background:color-mix(in srgb, var(--yii-debug-danger), transparent 90%);color:var(--yii-debug-danger)}.yii-debug .yii-debug-delta-down{border-color:color-mix(in srgb, var(--yii-debug-success), transparent 60%);background:color-mix(in srgb, var(--yii-debug-success), transparent 90%);color:var(--yii-debug-success)}.yii-debug .yii-debug-delta-neutral{background:var(--yii-debug-panel-surface-muted);color:var(--yii-debug-panel-muted)}@container yii-debug-main (width<=560px){.yii-debug .yii-debug-section-header,.yii-debug .yii-debug-panel-heading{flex-direction:column;align-items:stretch}.yii-debug .yii-debug-filter-input{width:100%;max-width:none}}@media (max-width:767px){.yii-debug .yii-debug-brand-chip-copy .yii-debug-brand-label{text-overflow:ellipsis;white-space:nowrap;max-width:5.5rem;overflow:hidden}}@media (pointer:coarse){.yii-debug .yii-debug-grid-db .yii-debug-trace a{min-width:44px;min-height:44px}.yii-debug :is(.yii-debug-btn,.yii-debug-brand-chip,.yii-debug-cell-more-toggle,.yii-debug-filter-input,.yii-debug-heading-permalink,.yii-debug-server-group-summary,.yii-debug-tab-link){min-height:44px}}@media (forced-colors:active){.yii-debug .yii-debug-card,.yii-debug .yii-debug-brand-bar,.yii-debug .yii-debug-brand-chip,.yii-debug .yii-debug-nav,.yii-debug .yii-debug-table-wrap{box-shadow:none;border-color:canvastext}.yii-debug .yii-debug-nav-link.is-active,.yii-debug .yii-debug-tab-link.is-active{color:highlighttext;background:highlight;border-color:highlight}.yii-debug :focus-visible{outline-color:highlight}} diff --git a/resources/assets/dist/js/debug.min.js b/resources/assets/dist/js/debug.min.js index da7ba7f..d4a4c61 100644 --- a/resources/assets/dist/js/debug.min.js +++ b/resources/assets/dist/js/debug.min.js @@ -1,2 +1,2 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./db.min.js","./dom.min.js","./userswitch.min.js"])))=>i.map(i=>d[i]); -import{a as e,i as t,o as n,r}from"./shared.min.js";import{a as i}from"./focus.min.js";function a(e,t,n){if(t.tag){for(var r=e.querySelectorAll(`.yii-debug-nav-link[href], a.yii-debug-brand-chip-config[href]`),i=0;i=500?`5xx`:e>=400?`4xx`:e>=300?`3xx`:e>=200?`2xx`:`none`}function d(e){var t=(e||``).toUpperCase();return t===`GET`||t===`HEAD`?`get`:t===`POST`?`post`:t===`PUT`||t===`PATCH`?`put`:t===`DELETE`?`delete`:`other`}function f(){t.forEach(function(e,t){e.classList.toggle(`is-cursor`,t===o)});var i=l(t[o]);e.querySelectorAll(`[data-snapshot-field]`).forEach(function(e){var t=e.getAttribute(`data-snapshot-field`);t===`method`?(e.textContent=i.method,r.forEach(function(t){e.classList.remove(`yii-debug-verb-`+t)}),e.classList.add(`yii-debug-verb-`+d(i.method))):t===`url`?(e.textContent=i.url,i.fullUrl&&e.setAttribute(`title`,i.fullUrl)):t===`status`?(e.textContent=i.status?String(i.status):`–`,n.forEach(function(t){e.classList.remove(`yii-debug-status-`+t)}),e.classList.add(`yii-debug-status-`+u(i.status))):t===`time`?(e.textContent=i.time,e.hidden=i.time===``):t===`ajax`&&(e.hidden=!i.ajax)});var s=e.querySelector(`.yii-debug-history-card`);s&&s.setAttribute(`title`,(i.method+` `+(i.fullUrl||i.url)).trim()),a(document,i,window.location&&window.location.href);var c=e.querySelector(`[data-yii-debug-cursor="newest"]`),f=e.querySelector(`[data-yii-debug-cursor="newer"]`),p=e.querySelector(`[data-yii-debug-cursor="older"]`),m=e.querySelector(`[data-yii-debug-cursor="oldest"]`),h=o===0,g=o===t.length-1;c&&(c.disabled=h),f&&(f.disabled=h),p&&(p.disabled=g),m&&(m.disabled=g)}function p(e){var t=e.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight;if(!(t.top>=0&&t.bottom<=n)){var r=window.scrollY+t.top-n/2+t.height/2;window.scrollTo({top:Math.max(0,r),behavior:`smooth`})}}function m(e){e<0||e>=t.length||e===o||(o=e,f(),p(t[o]))}e.addEventListener(`click`,function(n){var r=n.target.closest(`[data-yii-debug-cursor]`);if(r&&e.contains(r)){if(n.preventDefault(),r.disabled)return;var i=r.getAttribute(`data-yii-debug-cursor`);i===`newer`?m(o-1):i===`older`?m(o+1):i===`newest`?m(0):i===`oldest`&&m(t.length-1)}}),f(),o!==0&&p(t[o])})();var o=Object.freeze({error:{button:`Copy failed`,label:`Retry copy`,status:`Copy failed. Try again.`},success:{button:`Copied`,label:`Copied`,status:`Copied to clipboard.`},unavailable:{button:`Copy unavailable`,label:`Unavailable`,status:`Clipboard access is unavailable.`}}),s=0;function c(e){return(e.getAttribute(`aria-describedby`)||``).split(/\s+/).filter(Boolean)}function l(e,t){var n=c(e);n.indexOf(t)===-1&&(n.push(t),e.setAttribute(`aria-describedby`,n.join(` `)))}function u(e){var t=e.ownerDocument.createElement(`span`);return s+=1,t.id=`yii-debug-copy-status-`+s,t.className=`yii-debug-sr-only`,t.setAttribute(`aria-atomic`,`true`),t.setAttribute(`aria-live`,`polite`),t.setAttribute(`data-yii-debug-copy-status`,`true`),e.after(t),l(e,t.id),t}function d(e){for(var t=c(e),n=e.ownerDocument,r=0;r1?decodeURIComponent(t.slice(1)):``}catch{return``}}function _(e){return String(e||``).normalize(`NFKD`).replace(/[\u0300-\u036f]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``)||`section`}function v(e){return e.nodeType===3?e.textContent||``:e.nodeType!==1||e.matches&&e.matches(h)?``:e.childNodes?Array.from(e.childNodes).map(v).join(` `):``}function ee(e){return((e.childNodes?Array.from(e.childNodes).map(v).join(` `):``)||e.textContent||``).replace(/\s+/g,` `).trim()}function te(e,t,n){for(var r=t,i=2,a=e.getElementById(r);a&&a!==n;)r=t+`-`+i,i+=1,a=e.getElementById(r);return r}function ne(e){for(var t=e.querySelectorAll(`#yii-debug-main h2, #yii-debug-main h3`),n=0;n1);i.setAttribute(`aria-controls`,r.id),i.textContent=e[n].classList.contains(`is-open`)?`Show less`:`Show more`}}}function C(e){for(var t=document.querySelectorAll(`.yii-debug-dropdown.is-open`),n=0;n0?n[0]:null;!r||r.tagName!==`INPUT`||(r.focus({preventScroll:!0}),typeof r.setSelectionRange==`function`&&r.setSelectionRange(t.start,t.end))}}}function j(e){if(O(e)){var t=new URL(window.location.href);e.value===``||e.value===null?t.searchParams.delete(e.name):t.searchParams.set(e.name,e.value),t.searchParams.delete(`page`),t.toString()!==window.location.href&&(he(e),D.documentElement.setAttribute(`aria-busy`,`true`),window.location.href=t.toString())}}function M(e){E&&clearTimeout(E.timeout),E={input:e,timeout:setTimeout(function(){var e=E;E=null,j(e.input)},pe)}}function N(){if(!E)return!1;clearTimeout(E.timeout);var e=E.input;return E=null,j(e),!0}function P(e){var t=e.target;if(!(!t||!t.matches(`[data-yii-debug-pagesize]`))){var n=new URL(window.location.href);t.value===``||t.value===`0`?n.searchParams.delete(`per-page`):n.searchParams.set(`per-page`,t.value),n.searchParams.delete(`page`),window.location.href=n.toString()}}function F(e){O(e.target)&&(E&&E.input===e.target&&(clearTimeout(E.timeout),E=null),(e.target.tagName===`SELECT`||e.target.tagName===`INPUT`)&&j(e.target))}function I(e){e.target.tagName===`INPUT`&&e.target.type!==`submit`&&O(e.target)&&M(e.target)}function L(e){e.key===`Enter`&&e.target.tagName===`INPUT`&&e.target.type!==`submit`&&O(e.target)&&(e.preventDefault(),N()||j(e.target))}function R(e){e.target.tagName===`INPUT`&&e.target.type!==`submit`&&O(e.target)&&E&&E.input===e.target&&N()}function ge(e){D=e,D.addEventListener(`change`,P),D.addEventListener(`change`,F),D.addEventListener(`input`,I),D.addEventListener(`keydown`,L),D.addEventListener(`focusout`,R),A()}var _e=`modulepreload`,ve=function(e,t){return new URL(e,t).href},z={},B=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=ve(t,n),t=s(t),t in z)return;z[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:_e,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},V=Object.freeze({db:`.yii-debug-db-explain-toggle, [data-yii-debug-n1-filter]`,phpinfo:`[data-yii-debug-phpinfo-search]`,userswitch:`#debug-userswitch__filter, #debug-userswitch__reset-identity-button`}),ye={db:()=>B(()=>import(`./db.min.js`),__vite__mapDeps([0,1]),import.meta.url),phpinfo:()=>B(()=>import(`./phpinfo-search.min.js`),[],import.meta.url),userswitch:()=>B(()=>import(`./userswitch.min.js`),__vite__mapDeps([2,1]),import.meta.url)};function be(e,t=ye){var n=[];return Object.keys(V).forEach(function(r){e.querySelector(V[r])&&n.push(Promise.resolve().then(t[r]))}),Promise.all(n)}var H=`[data-yii-debug-filter-row], tbody tr`,xe=`data-yii-debug-filter-default-open`,U=`data-yii-debug-filter-previous-open`,W=`[data-yii-debug-filter-target]`;function Se(e){var t=e.closest(`[data-yii-debug-filter-scope], .yii-debug-disclosure-body`);if(t){var n=t.querySelector(W);if(n)return n}for(var r=(e.closest(`header, .yii-debug-section-header, .yii-debug-mini-toolbar`)||e).nextElementSibling;r&&!r.matches(W);)r=r.nextElementSibling;return r}function Ce(e,t){for(var n=e.querySelectorAll(H),r=t.trim().toLowerCase(),i=0,a=0;a0),{total:n.length,unit:e.getAttribute(`data-yii-debug-filter-unit`)||`rows`,visible:i}}function G(e){var t=Se(e);if(t){var n=e.closest(`header, .yii-debug-section-header, .yii-debug-mini-toolbar`)||e.parentElement||e,r=Ce(t,e.value),i=n.querySelector(`[data-yii-debug-filter-status]`);if(!i){i=document.createElement(`span`),i.id=e.id?e.id+`-status`:`yii-debug-filter-status-`+(document.querySelectorAll(`[data-yii-debug-filter-status]`).length+1),i.className=`yii-debug-sr-only`,i.setAttribute(`aria-live`,`polite`),i.setAttribute(`aria-atomic`,`true`),i.setAttribute(`data-yii-debug-filter-status`,`true`),n.appendChild(i);var a=(e.getAttribute(`aria-describedby`)||``).split(/\s+/).filter(Boolean);a.indexOf(i.id)===-1&&(a.push(i.id),e.setAttribute(`aria-describedby`,a.join(` `)))}i.textContent=r.visible+` of `+r.total+` `+r.unit+` shown.`}}var we=[`ArrowLeft`,`ArrowRight`,`Home`,`End`];function K(e,t){return e&&e.nodeType!==1&&(e=e.parentElement),e&&typeof e.closest==`function`?e.closest(t):null}function Te(e,t){var n=e.getAttribute(`aria-controls`);if(!n){var r=e.getAttribute(`href`)||``;n=r.charAt(0)===`#`?r.slice(1):``}return n&&t.getElementById?t.getElementById(n):null}function q(e,t){var n=Te(e,t);if(!n)return!1;var r=K(e,`.yii-debug-tabs`),i=n.parentElement,a=r?r.querySelectorAll(`[data-yii-debug-toggle="tab"]`):[],o=i?i.children:[],s;for(s=0;s{let i=e(n)||`light`,a=ke(i);t.setAttribute(`data-current-theme`,i),t.setAttribute(`aria-label`,a),t.setAttribute(`aria-pressed`,i===`dark`?`true`:`false`),t.setAttribute(`title`,a),r&&(r.innerHTML=i===`dark`?t.getAttribute(`data-icon-sun`):t.getAttribute(`data-icon-moon`))};i(e(document.documentElement.getAttribute(`data-yii-debug-theme`))),t.addEventListener(`click`,()=>{let t=e(document.documentElement.getAttribute(`data-yii-debug-theme`))===`dark`?`light`:`dark`;document.documentElement.setAttribute(`data-yii-debug-theme`,t),i(t),X(t),$(t),n&&n(t)})}function je(t=r){try{return window.localStorage?e(localStorage.getItem(t)):null}catch{return null}}function Y(){let t=`${r}=`,n=(document.cookie||``).split(`;`).map(e=>e.trim()).find(e=>e.startsWith(t));if(!n)return null;try{return e(decodeURIComponent(n.slice(t.length)))}catch{return null}}function X(t){let i=e(t);if(i){try{localStorage.setItem(r,i)}catch{}try{document.cookie=n(i)}catch{}}}function Z(e){let t;try{t=new URL(e,window.location.href)}catch{return null}if(t.origin!==window.location.origin)return null;let n=t.searchParams.get(`r`)||``;return!t.pathname.includes(`/debug/`)&&!t.pathname.endsWith(`/debug`)&&!n.startsWith(`debug/`)&&!n.startsWith(`debug%2F`)?null:t}function Q(t,n){let r=e(n);if(!r)return t;let i=Z(t);return i?(i.searchParams.set(J,r),i.href):t}function $(e){let t=document.querySelectorAll(`a[href]`),n=document.querySelectorAll(`form[action]`),r;for(let n=0;n=500?`5xx`:e>=400?`4xx`:e>=300?`3xx`:e>=200?`2xx`:`none`}function d(e){var t=(e||``).toUpperCase();return t===`GET`||t===`HEAD`?`get`:t===`POST`?`post`:t===`PUT`||t===`PATCH`?`put`:t===`DELETE`?`delete`:`other`}function f(){t.forEach(function(e,t){e.classList.toggle(`is-cursor`,t===o)});var i=l(t[o]);e.querySelectorAll(`[data-snapshot-field]`).forEach(function(e){var t=e.getAttribute(`data-snapshot-field`);t===`method`?(e.textContent=i.method,r.forEach(function(t){e.classList.remove(`yii-debug-verb-`+t)}),e.classList.add(`yii-debug-verb-`+d(i.method))):t===`url`?(e.textContent=i.url,i.fullUrl&&e.setAttribute(`title`,i.fullUrl)):t===`status`?(e.textContent=i.status?String(i.status):`–`,n.forEach(function(t){e.classList.remove(`yii-debug-status-`+t)}),e.classList.add(`yii-debug-status-`+u(i.status))):t===`time`?(e.textContent=i.time,e.hidden=i.time===``):t===`ajax`&&(e.hidden=!i.ajax)});var s=e.querySelector(`.yii-debug-history-card`);s&&s.setAttribute(`title`,(i.method+` `+(i.fullUrl||i.url)).trim()),a(document,i,window.location&&window.location.href);var c=e.querySelector(`[data-yii-debug-cursor="newest"]`),f=e.querySelector(`[data-yii-debug-cursor="newer"]`),p=e.querySelector(`[data-yii-debug-cursor="older"]`),m=e.querySelector(`[data-yii-debug-cursor="oldest"]`),h=o===0,g=o===t.length-1;c&&(c.disabled=h),f&&(f.disabled=h),p&&(p.disabled=g),m&&(m.disabled=g)}function p(e){var t=e.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight;if(!(t.top>=0&&t.bottom<=n)){var r=window.scrollY+t.top-n/2+t.height/2;window.scrollTo({top:Math.max(0,r),behavior:`smooth`})}}function m(e){e<0||e>=t.length||e===o||(o=e,f(),p(t[o]))}e.addEventListener(`click`,function(n){var r=n.target.closest(`[data-yii-debug-cursor]`);if(r&&e.contains(r)){if(n.preventDefault(),r.disabled)return;var i=r.getAttribute(`data-yii-debug-cursor`);i===`newer`?m(o-1):i===`older`?m(o+1):i===`newest`?m(0):i===`oldest`&&m(t.length-1)}}),f(),o!==0&&p(t[o])})();var o=Object.freeze({error:{button:`Copy failed`,label:`Retry copy`,status:`Copy failed. Try again.`},success:{button:`Copied`,label:`Copied`,status:`Copied to clipboard.`},unavailable:{button:`Copy unavailable`,label:`Unavailable`,status:`Clipboard access is unavailable.`}}),s=0;function c(e){return(e.getAttribute(`aria-describedby`)||``).split(/\s+/).filter(Boolean)}function l(e,t){var n=c(e);n.indexOf(t)===-1&&(n.push(t),e.setAttribute(`aria-describedby`,n.join(` `)))}function u(e){var t=e.ownerDocument.createElement(`span`);return s+=1,t.id=`yii-debug-copy-status-`+s,t.className=`yii-debug-sr-only`,t.setAttribute(`aria-atomic`,`true`),t.setAttribute(`aria-live`,`polite`),t.setAttribute(`data-yii-debug-copy-status`,`true`),e.after(t),l(e,t.id),t}function d(e){for(var t=c(e),n=e.ownerDocument,r=0;r1?decodeURIComponent(t.slice(1)):``}catch{return``}}function _(e){return String(e||``).normalize(`NFKD`).replace(/[\u0300-\u036f]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``)||`section`}function v(e){return e.nodeType===3?e.textContent||``:e.nodeType!==1||e.matches&&e.matches(h)?``:e.childNodes?Array.from(e.childNodes).map(v).join(` `):``}function ee(e){return((e.childNodes?Array.from(e.childNodes).map(v).join(` `):``)||e.textContent||``).replace(/\s+/g,` `).trim()}function y(e,t,n){for(var r=t,i=2,a=e.getElementById(r);a&&a!==n;)r=t+`-`+i,i+=1,a=e.getElementById(r);return r}function b(e){for(var t=e.querySelectorAll(`#yii-debug-main h2, #yii-debug-main h3`),n=0;n1);i.setAttribute(`aria-controls`,r.id),i.textContent=e[n].classList.contains(`is-open`)?`Show less`:`Show more`}}}function ie(e){var n=x(e.target,`cell-more`);if(n){var r=t(n,`.yii-debug-cell-more`);if(e.preventDefault(),r){var i=r.classList.toggle(`is-open`);n.setAttribute(`aria-expanded`,i?`true`:`false`),n.textContent=i?`Show less`:`Show more`}}}function ae(e){var t=e.target.closest(`[data-yii-debug-reveal]`);if(t){var n=t.classList.toggle(`is-revealed`),r=t.getAttribute(`data-yii-debug-reveal-label`)||`value`;t.setAttribute(`aria-pressed`,n?`true`:`false`),t.setAttribute(`aria-label`,(n?`Hide `:`Reveal `)+r)}}function oe(e){return!!(e&&e.key===`Escape`&&e.target&&e.target.matches&&e.target.matches(`.yii-debug-grid .filters input`)&&e.target.value!==``)}function S(e){e.value=``,e.dispatchEvent(new Event(`change`,{bubbles:!0}))}var C=`yii-debug-grid-filter-focus`,se=650,ce=/^[A-Za-z][A-Za-z0-9_]*\[[^\]]+\]$/,w=null,T=null;function E(e){return!!e&&!!e.name&&ce.test(e.name)}function D(){try{return window.sessionStorage}catch{return null}}function le(e){var t=D();if(t)try{t.setItem(C,JSON.stringify({end:e.selectionEnd,name:e.name,start:e.selectionStart}))}catch{}}function ue(){var e=D(),t;if(e){try{t=JSON.parse(e.getItem(C)||`null`),e.removeItem(C)}catch{return}if(!(!t||!E(t))){var n=T.getElementsByName(t.name),r=n.length>0?n[0]:null;!r||r.tagName!==`INPUT`||(r.focus({preventScroll:!0}),typeof r.setSelectionRange==`function`&&r.setSelectionRange(t.start,t.end))}}}function O(e){if(E(e)){var t=new URL(window.location.href);e.value===``||e.value===null?t.searchParams.delete(e.name):t.searchParams.set(e.name,e.value),t.searchParams.delete(`page`),t.toString()!==window.location.href&&(le(e),T.documentElement.setAttribute(`aria-busy`,`true`),window.location.href=t.toString())}}function de(e){w&&clearTimeout(w.timeout),w={input:e,timeout:setTimeout(function(){var e=w;w=null,O(e.input)},se)}}function k(){if(!w)return!1;clearTimeout(w.timeout);var e=w.input;return w=null,O(e),!0}function A(e){var t=e.target;if(!(!t||!t.matches(`[data-yii-debug-pagesize]`))){var n=new URL(window.location.href);t.value===``||t.value===`0`?n.searchParams.delete(`per-page`):n.searchParams.set(`per-page`,t.value),n.searchParams.delete(`page`),window.location.href=n.toString()}}function j(e){E(e.target)&&(w&&w.input===e.target&&(clearTimeout(w.timeout),w=null),(e.target.tagName===`SELECT`||e.target.tagName===`INPUT`)&&O(e.target))}function M(e){e.target.tagName===`INPUT`&&e.target.type!==`submit`&&E(e.target)&&de(e.target)}function N(e){e.key===`Enter`&&e.target.tagName===`INPUT`&&e.target.type!==`submit`&&E(e.target)&&(e.preventDefault(),k()||O(e.target))}function P(e){e.target.tagName===`INPUT`&&e.target.type!==`submit`&&E(e.target)&&w&&w.input===e.target&&k()}function F(e){T=e,T.addEventListener(`change`,A),T.addEventListener(`change`,j),T.addEventListener(`input`,M),T.addEventListener(`keydown`,N),T.addEventListener(`focusout`,P),ue()}var I=`modulepreload`,L=function(e,t){return new URL(e,t).href},R={},z=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=L(t,n),t=s(t),t in R)return;R[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:I,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},B=Object.freeze({db:`.yii-debug-db-explain-toggle, [data-yii-debug-n1-filter]`,phpinfo:`[data-yii-debug-phpinfo-search]`,userswitch:`#debug-userswitch__filter, #debug-userswitch__reset-identity-button`}),V={db:()=>z(()=>import(`./db.min.js`),__vite__mapDeps([0,1]),import.meta.url),phpinfo:()=>z(()=>import(`./phpinfo-search.min.js`),[],import.meta.url),userswitch:()=>z(()=>import(`./userswitch.min.js`),__vite__mapDeps([2,1]),import.meta.url)};function H(e,t=V){var n=[];return Object.keys(B).forEach(function(r){e.querySelector(B[r])&&n.push(Promise.resolve().then(t[r]))}),Promise.all(n)}var U=`[data-yii-debug-filter-row], tbody tr`,fe=`data-yii-debug-filter-default-open`,W=`data-yii-debug-filter-previous-open`,G=`[data-yii-debug-filter-target]`;function pe(e){var t=e.closest(`[data-yii-debug-filter-scope], .yii-debug-disclosure-body`);if(t){var n=t.querySelector(G);if(n)return n}for(var r=(e.closest(`header, .yii-debug-section-header, .yii-debug-mini-toolbar`)||e).nextElementSibling;r&&!r.matches(G);)r=r.nextElementSibling;return r}function me(e,t){for(var n=e.querySelectorAll(U),r=t.trim().toLowerCase(),i=0,a=0;a0),{total:n.length,unit:e.getAttribute(`data-yii-debug-filter-unit`)||`rows`,visible:i}}function K(e){var t=pe(e);if(t){var n=e.closest(`header, .yii-debug-section-header, .yii-debug-mini-toolbar`)||e.parentElement||e,r=me(t,e.value),i=n.querySelector(`[data-yii-debug-filter-status]`);if(!i){i=document.createElement(`span`),i.id=e.id?e.id+`-status`:`yii-debug-filter-status-`+(document.querySelectorAll(`[data-yii-debug-filter-status]`).length+1),i.className=`yii-debug-sr-only`,i.setAttribute(`aria-live`,`polite`),i.setAttribute(`aria-atomic`,`true`),i.setAttribute(`data-yii-debug-filter-status`,`true`),n.appendChild(i);var a=(e.getAttribute(`aria-describedby`)||``).split(/\s+/).filter(Boolean);a.indexOf(i.id)===-1&&(a.push(i.id),e.setAttribute(`aria-describedby`,a.join(` `)))}i.textContent=r.visible+` of `+r.total+` `+r.unit+` shown.`}}function he(e,t,n,r){return!Number.isInteger(e)||e<=0?-1:n===`Home`?0:n===`End`?e-1:r?n===`ArrowUp`?e-1:0:n===`ArrowUp`?t<0?e-1:(t-1+e)%e:t<0?0:(t+1)%e}var ge=[`ArrowLeft`,`ArrowRight`,`Home`,`End`];function q(e,t){return e&&e.nodeType!==1&&(e=e.parentElement),e&&typeof e.closest==`function`?e.closest(t):null}function _e(e,t){var n=e.getAttribute(`aria-controls`);if(!n){var r=e.getAttribute(`href`)||``;n=r.charAt(0)===`#`?r.slice(1):``}return n&&t.getElementById?t.getElementById(n):null}function J(e,t){var n=_e(e,t);if(!n)return!1;var r=q(e,`.yii-debug-tabs`),i=n.parentElement,a=r?r.querySelectorAll(`[data-yii-debug-toggle="tab"]`):[],o=i?i.children:[],s;for(s=0;s{let i=e(n)||`light`,a=xe(i);t.setAttribute(`data-current-theme`,i),t.setAttribute(`aria-label`,a),t.setAttribute(`aria-pressed`,i===`dark`?`true`:`false`),t.setAttribute(`title`,a),r&&(r.innerHTML=i===`dark`?t.getAttribute(`data-icon-sun`):t.getAttribute(`data-icon-moon`))};i(e(document.documentElement.getAttribute(`data-yii-debug-theme`))),t.addEventListener(`click`,()=>{let t=e(document.documentElement.getAttribute(`data-yii-debug-theme`))===`dark`?`light`:`dark`;document.documentElement.setAttribute(`data-yii-debug-theme`,t),i(t),X(t),$(t),n&&n(t)})}function Ce(t=r){try{return window.localStorage?e(localStorage.getItem(t)):null}catch{return null}}function we(){let t=`${r}=`,n=(document.cookie||``).split(`;`).map(e=>e.trim()).find(e=>e.startsWith(t));if(!n)return null;try{return e(decodeURIComponent(n.slice(t.length)))}catch{return null}}function X(t){let i=e(t);if(i){try{localStorage.setItem(r,i)}catch{}try{document.cookie=n(i)}catch{}}}function Z(e){let t;try{t=new URL(e,window.location.href)}catch{return null}if(t.origin!==window.location.origin)return null;let n=t.searchParams.get(`r`)||``;return!t.pathname.includes(`/debug/`)&&!t.pathname.endsWith(`/debug`)&&!n.startsWith(`debug/`)&&!n.startsWith(`debug%2F`)?null:t}function Q(t,n){let r=e(n);if(!r)return t;let i=Z(t);return i?(i.searchParams.set(Y,r),i.href):t}function $(e){let t=document.querySelectorAll(`a[href]`),n=document.querySelectorAll(`form[action]`),r;for(let n=0;n .yii-debug-tabs { - flex-wrap: nowrap; - overflow-x: auto; - scrollbar-width: thin; + &::placeholder { + color: var(--yii-debug-panel-muted); } - .yii-debug-tab { - flex: none; + &:focus { + border-color: var(--yii-debug-panel-primary); } + } - .yii-debug-empty-state { - padding: var(--yii-debug-space-4); - - h2 { - margin: 0; - font-size: var(--yii-debug-fs-base); - } - } + .yii-debug-stack > * + * { + margin-top: var(--yii-debug-space-4); } /** - * Request diagnostic ledgers. Headers read as an HTTP exchange rather than - * two unrelated tables; server variables read as one grouped execution - * record. Both keep the captured keys and values as the primary visual ink. + * ------------------------------------------------------------------- + * Card. + * ------------------------------------------------------------------- */ - .yii-debug-diagnostic-shell { - overflow: hidden; + + .yii-debug-card { + padding: var(--yii-debug-panel-padding); border: var(--yii-debug-border); border-radius: var(--yii-debug-radius-lg); background: var(--yii-debug-panel-surface); - box-shadow: var(--yii-debug-shadow-sm); - } - - .yii-debug-diagnostic-header { - display: flex; - align-items: center; - justify-content: space-between; - gap: var(--yii-debug-space-4); - padding: var(--yii-debug-space-3) var(--yii-debug-space-4); - border-bottom: var(--yii-debug-border); - background: var(--yii-debug-panel-surface-muted); - } - - .yii-debug-diagnostic-heading-copy { - display: flex; - min-width: 0; - flex-wrap: wrap; - align-items: baseline; - gap: var(--yii-debug-space-2) var(--yii-debug-space-3); - - h2 { - margin: 0; - } - } - - .yii-debug-diagnostic-counts { - display: inline-flex; - align-items: center; - gap: var(--yii-debug-space-2); - } - - .yii-debug-diagnostic-count, - .yii-debug-diagnostic-total, - .yii-debug-header-lane-count, - .yii-debug-server-group-count { - color: var(--yii-debug-panel-muted); - font-family: var(--yii-debug-font-mono); - font-size: var(--yii-debug-fs-xs); - font-variant-numeric: tabular-nums; - } - - .yii-debug-diagnostic-count { - display: inline-flex; - align-items: baseline; - gap: var(--yii-debug-space-1); - } - - .yii-debug-diagnostic-count + .yii-debug-diagnostic-count::before { - width: 1px; - height: 12px; - margin-inline-end: var(--yii-debug-space-1); - background: var(--yii-debug-panel-border-strong); - content: ""; + box-shadow: var(--yii-debug-shadow-md); } - .yii-debug-diagnostic-count-value { - color: var(--yii-debug-panel-text); - font-weight: 700; - } + /** + * ------------------------------------------------------------------- + * Sidebar navigation. + * ------------------------------------------------------------------- + */ - .yii-debug-diagnostic-filter { - width: min(280px, 42%); - max-width: none; + .yii-debug-nav { + margin: 0; + padding: var(--yii-debug-space-2); + border: var(--yii-debug-border); + border-radius: var(--yii-debug-radius-lg); background: var(--yii-debug-panel-surface); + box-shadow: var(--yii-debug-shadow-sm); } - .yii-debug-header-lanes { - display: grid; - grid-template-columns: repeat(2, minmax(0, 1fr)); + .yii-debug-nav ul { + display: flex; + flex-direction: column; + margin: 0; + padding: 0; + list-style: none; } - .yii-debug-header-lane { - position: relative; - min-width: 0; + .yii-debug-nav-group { + margin-top: var(--yii-debug-space-3); } - .yii-debug-header-lane + .yii-debug-header-lane { - border-inline-start: 2px solid - color-mix( - in srgb, - var(--yii-debug-panel-primary) 36%, - var(--yii-debug-panel-border) - ); - - &::before { - position: absolute; - z-index: 1; - top: 25px; - inset-inline-start: -5px; - width: 8px; - height: 8px; - border: 2px solid var(--yii-debug-panel-surface); - border-radius: var(--yii-debug-radius-pill); - background: var(--yii-debug-panel-primary); - content: ""; - } + .yii-debug-nav-group > .yii-debug-nav { + padding: 0; + border: 0; + border-radius: 0; + background: transparent; + box-shadow: none; } - .yii-debug-header-lane-header { + .yii-debug-nav-link { display: flex; - min-height: 58px; align-items: center; justify-content: space-between; - gap: var(--yii-debug-space-3); - padding: 10px var(--yii-debug-space-4); - border-bottom: var(--yii-debug-border); + gap: var(--yii-debug-space-2); + padding: 8px 12px; + border-radius: var(--yii-debug-radius-md); + color: var(--yii-debug-panel-text); + font-weight: 600; + text-decoration: none; + transition: + background 0.12s ease, + color 0.12s ease; - h3 { - margin: 1px 0 0; - font-size: var(--yii-debug-fs-base); + &::after { + content: "›"; + color: var(--yii-debug-panel-muted); + font-size: 1.1em; + line-height: 1; } - } - .yii-debug-header-direction { - display: block; - color: var(--yii-debug-panel-primary-strong); - font-family: var(--yii-debug-font-mono); - font-size: 0.6875rem; - font-weight: 700; - letter-spacing: 0.04em; - } + &:hover, + &:focus { + background: var(--yii-debug-panel-surface-hover); + color: var(--yii-debug-panel-text); + text-decoration: none; + } - .yii-debug-diagnostic-ledger { - margin: 0; + &.is-active, + &[aria-current="page"] { + background: var(--yii-debug-primary-bg); + color: var(--yii-debug-on-primary); + + &::after { + color: inherit; + } + } } - .yii-debug-diagnostic-row { - display: grid; - grid-template-columns: minmax(132px, 0.72fr) minmax(0, 1.28fr); - align-items: start; - border-top: 1px solid - color-mix(in srgb, var(--yii-debug-panel-border) 58%, transparent); + /** + * ------------------------------------------------------------------- + * Buttons. + * ------------------------------------------------------------------- + */ - &:first-child { - border-top: 0; - } + .yii-debug-btn { + display: inline-flex; + align-items: center; + justify-content: center; + gap: var(--yii-debug-space-1); + min-height: 32px; + padding: 6px 14px; + border: var(--yii-debug-border); + border-radius: var(--yii-debug-radius-pill); + background: var(--yii-debug-panel-surface); + color: var(--yii-debug-panel-text); + font-family: inherit; + font-size: var(--yii-debug-fs-sm); + font-weight: 600; + letter-spacing: 0; + line-height: 1; + text-decoration: none; + text-transform: none; + cursor: pointer; + transition: + border-color 0.12s ease, + background 0.12s ease, + color 0.12s ease, + transform 0.12s ease, + box-shadow 0.12s ease; - &:hover { + &:hover, + &:focus { + border-color: color-mix( + in srgb, + var(--yii-debug-panel-primary), + transparent 30% + ); background: var(--yii-debug-panel-surface-hover); + color: var(--yii-debug-panel-link-hover); + text-decoration: none; + transform: translateY(-1px); } - dt, - dd { - min-width: 0; - padding: 10px var(--yii-debug-space-4); - font-family: var(--yii-debug-font-mono); - font-size: var(--yii-debug-fs-sm); - line-height: 1.5; - } - - dt { - overflow: hidden; - color: var(--yii-debug-panel-muted); - font-weight: 600; - overflow-wrap: anywhere; + &:active { + transform: translateY(0); } - dd { - margin: 0; - border-inline-start: 1px solid - color-mix(in srgb, var(--yii-debug-panel-border) 45%, transparent); - color: var(--yii-debug-panel-text); - overflow-wrap: anywhere; - white-space: pre-wrap; + &[disabled], + &.is-disabled { + opacity: 0.55; + pointer-events: none; + transform: none; } } - .yii-debug-header-ledger .yii-debug-diagnostic-row:nth-child(even), - .yii-debug-server-ledger .yii-debug-diagnostic-row:nth-child(even) { - background: color-mix( - in srgb, - var(--yii-debug-panel-surface-muted), - transparent 72% - ); + .yii-debug-btn-primary { + border-color: transparent; + background: var(--yii-debug-primary-bg); + color: var(--yii-debug-on-primary); - &:hover { - background: var(--yii-debug-panel-surface-hover); + &:is(:hover, :focus) { + background: var(--yii-debug-panel-primary-strong); + color: var(--yii-debug-on-primary); } } - .yii-debug-diagnostic-values { - display: grid; - gap: 6px; + .yii-debug-btn-ghost { + border-color: var(--yii-debug-panel-border); + background: transparent; } - .yii-debug-diagnostic-value-count { - color: var(--yii-debug-panel-muted); - font-family: var(--yii-debug-font-sans); - font-size: 0.6875rem; + .yii-debug-btn-sm { + min-height: 28px; + padding: 4px 10px; + font-size: var(--yii-debug-fs-xs); } - .yii-debug-diagnostic-value-list { - display: grid; - gap: var(--yii-debug-space-1); - margin: 0; - padding: 0; - list-style: none; + /** + * ------------------------------------------------------------------- + * Badges. + * ------------------------------------------------------------------- + */ - li + li { - padding-top: var(--yii-debug-space-1); - border-top: 1px dashed var(--yii-debug-panel-border); - } + .yii-debug-badge { + display: inline-flex; + align-items: center; + padding: 2px 10px; + border-radius: var(--yii-debug-radius-pill); + background: var(--yii-debug-panel-surface-muted); + color: var(--yii-debug-panel-text); + font-size: var(--yii-debug-fs-xs); + font-weight: 600; + letter-spacing: 0.01em; + line-height: 1.4; } - .yii-debug-diagnostic-empty-value, - .yii-debug-diagnostic-lane-empty, - .yii-debug-diagnostic-empty-state, - .yii-debug-diagnostic-filter-empty { - color: var(--yii-debug-panel-muted); - font-style: italic; + .yii-debug-badge-success { + background: var(--yii-debug-success); + color: var(--yii-debug-on-success); } - .yii-debug-diagnostic-lane-empty, - .yii-debug-diagnostic-empty-state, - .yii-debug-diagnostic-filter-empty { - margin: 0; - padding: var(--yii-debug-space-4); - } - - .yii-debug-diagnostic-filter-empty { - border-top: var(--yii-debug-border); - text-align: center; + .yii-debug-badge-info { + background: var(--yii-debug-info); + color: var(--yii-debug-on-info); } - .yii-debug-server-group-body > .yii-debug-mini-toolbar { - margin: 0; - padding: var(--yii-debug-space-2) var(--yii-debug-space-4); - border-bottom: var(--yii-debug-border); - - .yii-debug-filter-input { - max-width: 100%; - } + .yii-debug-badge-warning { + background: var(--yii-debug-warning); + color: var(--yii-debug-on-warning); } - .yii-debug-server-additional + .yii-debug-server-group, - .yii-debug-server-group + .yii-debug-server-group { - border-top: var(--yii-debug-border); + .yii-debug-badge-danger { + background: var(--yii-debug-danger); + color: var(--yii-debug-on-danger); } - .yii-debug-server-group-summary { - display: flex; - min-height: 44px; - align-items: center; - justify-content: space-between; - gap: var(--yii-debug-space-3); - padding: 9px var(--yii-debug-space-4); - border-bottom: var(--yii-debug-border); + .yii-debug-badge-muted { background: var(--yii-debug-panel-surface-muted); - - .yii-debug-server-group-title { - margin: 0; - font-size: var(--yii-debug-fs-sm); - font-weight: 700; - } + color: var(--yii-debug-panel-muted); } - .yii-debug-server-group-summary { - cursor: pointer; - list-style: none; + /** + * ------------------------------------------------------------------- + * Semantic vocabulary. + * ------------------------------------------------------------------- + * Hue setters map the fixed vocabulary (HTTP verbs, status classes, + * log levels) onto `--yii-debug-hue`; the shared "ink on paper" chip + * formula below consumes it once. The PHP source of truth for the + * class suffixes is `src/helpers/Vocabulary.php`. + */ - &::-webkit-details-marker { - display: none; - } + .yii-debug-verb-get { + --yii-debug-hue: var(--yii-debug-verb-get); + } - &:hover, - &:focus-visible { - background: var(--yii-debug-panel-surface-hover); - } + .yii-debug-verb-post { + --yii-debug-hue: var(--yii-debug-verb-post); } - .yii-debug-server-group-identity { - display: inline-flex; - align-items: baseline; - gap: var(--yii-debug-space-2); + .yii-debug-verb-put { + --yii-debug-hue: var(--yii-debug-verb-put); } - .yii-debug-server-group:not([open]) > .yii-debug-server-group-summary { - border-bottom: 0; + .yii-debug-verb-delete { + --yii-debug-hue: var(--yii-debug-verb-delete); } - .yii-debug-server-group-summary .yii-debug-disclosure-hint { - margin-inline-start: auto; + .yii-debug-verb-other { + --yii-debug-hue: var(--yii-debug-verb-other); } - .yii-debug-diagnostic-row[hidden], - .yii-debug-header-lane[hidden], - .yii-debug-server-group[hidden], - .yii-debug-diagnostic-filter-empty[hidden] { - display: none; + .yii-debug-status-2xx { + --yii-debug-hue: var(--yii-debug-status-2xx); } - @container yii-debug-main (width <= 900px) { - .yii-debug-header-lanes { - grid-template-columns: minmax(0, 1fr); - } + .yii-debug-status-3xx { + --yii-debug-hue: var(--yii-debug-status-3xx); + } - .yii-debug-header-lane + .yii-debug-header-lane { - border-top: 2px solid - color-mix( - in srgb, - var(--yii-debug-panel-primary) 36%, - var(--yii-debug-panel-border) - ); - border-inline-start: 0; + .yii-debug-status-4xx { + --yii-debug-hue: var(--yii-debug-status-4xx); + } - &::before { - top: -5px; - inset-inline-start: var(--yii-debug-space-4); - } - } + .yii-debug-status-5xx { + --yii-debug-hue: var(--yii-debug-status-5xx); } - @container yii-debug-main (width <= 560px) { - .yii-debug-diagnostic-header { - align-items: stretch; - flex-direction: column; - } + .yii-debug-status-none { + --yii-debug-hue: var(--yii-debug-panel-muted); + } - .yii-debug-diagnostic-filter { - width: 100%; - } + .yii-debug-level-error { + --yii-debug-hue: var(--yii-debug-level-error); + } - .yii-debug-diagnostic-row { - grid-template-columns: minmax(0, 1fr); + .yii-debug-level-warning { + --yii-debug-hue: var(--yii-debug-level-warning); + } - dt { - padding-bottom: var(--yii-debug-space-1); - } + .yii-debug-level-info { + --yii-debug-hue: var(--yii-debug-level-info); + } - dd { - padding-top: 0; - border-inline-start: 0; - } - } + .yii-debug-level-trace { + --yii-debug-hue: var(--yii-debug-level-trace); } - .yii-debug-route-resolution { - margin: var(--yii-debug-space-3) var(--yii-debug-space-4) var(--yii-debug-space-4); + .yii-debug-level-profile { + --yii-debug-hue: var(--yii-debug-level-profile); } - .yii-debug-route-resolution-message { - margin: 0 0 var(--yii-debug-space-3); - color: var(--yii-debug-panel-muted); - font-size: var(--yii-debug-fs-sm); + .yii-debug-level-other { + --yii-debug-hue: var(--yii-debug-level-other); } - .yii-debug-route-trace { - min-width: 560px; + /** + * The tinted chip formula, written once: full-hue ink (nudged 20% toward + * the text color so every hue clears AA on the 10% tint in both modes), + * a soft border, and a near-transparent wash of the same hue. + */ + .yii-debug-request-hero-method, + .yii-debug-snapshot-status, + .yii-debug-level-chip, + .yii-debug-db-type, + .yii-debug-dump-type, + .yii-debug-badge:is( + .yii-debug-status-2xx, + .yii-debug-status-3xx, + .yii-debug-status-4xx, + .yii-debug-status-5xx, + .yii-debug-status-none + ) { + border: 1px solid + color-mix( + in srgb, + var(--yii-debug-hue, var(--yii-debug-panel-muted)), + transparent 65% + ); + background: color-mix( + in srgb, + var(--yii-debug-hue, var(--yii-debug-panel-muted)), + transparent 90% + ); + color: color-mix( + in srgb, + var(--yii-debug-hue, var(--yii-debug-panel-muted)) 80%, + var(--yii-debug-panel-text) + ); } - .yii-debug-table.yii-debug-route-trace { - thead th, - tbody td { - text-align: center; - } + /* History Method column — vocabulary-colored mono text, no pill. */ + .yii-debug-method { + color: color-mix( + in srgb, + var(--yii-debug-hue, var(--yii-debug-panel-muted)) 80%, + var(--yii-debug-panel-text) + ); + font-family: var(--yii-debug-font-mono); + font-weight: 700; + letter-spacing: 0.02em; + } - thead th:nth-child(2), - tbody td:nth-child(2) { - text-align: start; - } + /* Log level chip — tinted pill carrying the level name as its own label. */ + .yii-debug-level-chip { + display: inline-block; + padding: 1px 8px; + border-radius: var(--yii-debug-radius-pill); + font-family: var(--yii-debug-font-mono); + font-size: 0.7rem; + font-weight: 700; + letter-spacing: 0.04em; + text-transform: uppercase; + white-space: nowrap; + } - thead th:first-child, - tbody td:first-child { - width: 56px; - } + /** + * ------------------------------------------------------------------- + * Callouts. + * ------------------------------------------------------------------- + */ - thead th:last-child, - tbody td:last-child { - width: 160px; - } + .yii-debug-callout { + display: flex; + align-items: flex-start; + gap: var(--yii-debug-space-2); + margin-bottom: var(--yii-debug-space-3); + padding: var(--yii-debug-space-3) var(--yii-debug-space-4); + border: var(--yii-debug-border); + border-left: 4px solid var(--yii-debug-panel-border-strong); + border-radius: var(--yii-debug-radius-md); + background: var(--yii-debug-panel-surface-muted); + color: var(--yii-debug-panel-text); } - .yii-debug-panel-heading { - display: flex; - align-items: flex-end; - justify-content: space-between; - gap: var(--yii-debug-space-3); - margin: var(--yii-debug-space-5) 0 var(--yii-debug-space-3); - padding-bottom: var(--yii-debug-space-2); - border-bottom: var(--yii-debug-border); + .yii-debug-callout-info { + border-left-color: var(--yii-debug-info); } - .yii-debug-panel-heading-copy { - min-width: 0; + .yii-debug-callout-success { + border-left-color: var(--yii-debug-success); + } - h2 { - margin: 0; - } + .yii-debug-callout-warning { + border-left-color: var(--yii-debug-warning); } - .yii-debug-panel-heading-kind { - flex: none; - margin-bottom: 2px; + .yii-debug-callout-danger { + border-left-color: var(--yii-debug-danger); } - pre.yii-debug-panel-payload { - min-height: 180px; - margin-bottom: 0; - padding: var(--yii-debug-space-4); + /** + * ------------------------------------------------------------------- + * Tables + GridView integration. + * ------------------------------------------------------------------- + */ + + .yii-debug-table-wrap { + overflow-x: auto; border: var(--yii-debug-border); - background: - linear-gradient( - 90deg, - color-mix(in srgb, var(--yii-debug-panel-primary), transparent 88%), - transparent 42% - ), - var(--yii-debug-panel-code-bg); - line-height: 1.55; + border-radius: var(--yii-debug-radius-lg); + background: var(--yii-debug-panel-surface); } - @media (width <= 640px) { - .yii-debug-request-overview-header { - grid-template-columns: minmax(0, 1fr); - gap: var(--yii-debug-space-3); - } + .yii-debug-table { + width: 100%; + min-width: 640px; + margin: 0; + border-collapse: separate; + border-spacing: 0; + background: transparent; + color: var(--yii-debug-panel-text); + font-size: var(--yii-debug-fs-sm); - .yii-debug-request-overview-status { - display: flex; - align-items: center; - gap: var(--yii-debug-space-2); - text-align: left; - } - - .yii-debug-request-overview-status-label { - margin: 0; + thead th, + thead td { + padding: 10px 12px; + border-bottom: var(--yii-debug-border); + background: color-mix( + in srgb, + var(--yii-debug-panel-surface-muted), + transparent 20% + ); + color: var(--yii-debug-panel-muted); + font-size: var(--yii-debug-fs-xs); + font-weight: 700; + letter-spacing: 0.03em; + text-align: left; + text-transform: uppercase; + vertical-align: middle; } - .yii-debug-request-overview-metrics { - grid-template-columns: 1fr; + thead th a { + color: var(--yii-debug-panel-link); + font-weight: 700; + text-decoration: none; } - .yii-debug-request-overview-metric + .yii-debug-request-overview-metric { - border-block-start: var(--yii-debug-border); - border-inline-start: 0; + thead th a:hover, + thead th a:focus { + color: var(--yii-debug-panel-link-hover); + text-decoration: none; } - .yii-debug-request-overview-meta-item { - max-width: 100%; + tbody td, + tbody th { + padding: var(--yii-debug-row-padding-block) 12px; + border-top: 1px solid var(--yii-debug-panel-border); + vertical-align: top; + overflow-wrap: anywhere; } - .yii-debug-panel-heading { - align-items: flex-start; + tbody th { + white-space: nowrap; } - } - /** - * Inline section header used by tabular blocks; pairs the title with an - * optional action (filter input, reset button) on the right. - */ - .yii-debug-section-header { - display: flex; - align-items: center; - justify-content: space-between; - gap: var(--yii-debug-space-3); - margin: var(--yii-debug-space-4) 0 var(--yii-debug-space-2); + tbody tr:first-child td, + tbody tr:first-child th { + border-top: 0; + } - h2, - h3 { - margin: 0; + tbody tr:nth-child(even) td, + tbody tr:nth-child(even) th { + background: color-mix( + in srgb, + var(--yii-debug-panel-surface-muted), + transparent 50% + ); } - } - .yii-debug-filter-input { - flex: none; - width: 240px; - max-width: 50%; - padding: 4px var(--yii-debug-space-2); - border: var(--yii-debug-border); - border-radius: var(--yii-debug-radius-md); - background: var(--yii-debug-panel-surface); - color: var(--yii-debug-panel-text); - font: inherit; + tbody tr:hover td, + tbody tr:hover th { + background: var(--yii-debug-panel-surface-hover); + } - &::placeholder { + tfoot td { + padding: 10px 12px; + border-top: var(--yii-debug-border); color: var(--yii-debug-panel-muted); } + } - &:focus { - border-color: var(--yii-debug-panel-primary); - } + .yii-debug-row-success td, + .yii-debug-row-success th { + background: color-mix( + in srgb, + var(--yii-debug-success), + var(--yii-debug-panel-surface) 86% + ) !important; } - .yii-debug-stack > * + * { - margin-top: var(--yii-debug-space-4); + .yii-debug-row-info td, + .yii-debug-row-info th { + background: color-mix( + in srgb, + var(--yii-debug-info), + var(--yii-debug-panel-surface) 86% + ) !important; } - /* Two-column responsive form layout (used by mail switch etc.) */ - .yii-debug-grid-2 { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); - gap: var(--yii-debug-space-4); + .yii-debug-row-warning td, + .yii-debug-row-warning th { + background: color-mix( + in srgb, + var(--yii-debug-warning), + var(--yii-debug-panel-surface) 86% + ) !important; + } + + .yii-debug-row-danger td, + .yii-debug-row-danger th { + background: color-mix( + in srgb, + var(--yii-debug-danger), + var(--yii-debug-panel-surface) 86% + ) !important; + } + + /* GridView widget markup wiring. */ + .yii-debug-grid { + margin-bottom: var(--yii-debug-space-4); + + > .summary { + margin: 0 0 var(--yii-debug-space-2); + padding: 0 var(--yii-debug-space-1); + color: var(--yii-debug-panel-muted); + font-size: var(--yii-debug-fs-sm); + + b { + color: var(--yii-debug-panel-text); + font-weight: 700; + } + } + + > .empty { + padding: var(--yii-debug-space-5); + color: var(--yii-debug-panel-muted); + font-style: italic; + text-align: center; + } } /** - * ------------------------------------------------------------------- - * Card. - * ------------------------------------------------------------------- + * Generic cell utilities, applied via GridView contentOptions or directly on + * the hand-built tables. Both flavours honour them so a cell keeps the same + * behaviour wherever it is used. */ - - .yii-debug-card { - padding: var(--yii-debug-panel-padding); - border: var(--yii-debug-border); - border-radius: var(--yii-debug-radius-lg); - background: var(--yii-debug-panel-surface); - box-shadow: var(--yii-debug-shadow-md); + .yii-debug-grid td.yii-debug-cell-nowrap, + .yii-debug-grid td.yii-debug-cell-numeric, + .yii-debug-grid td.yii-debug-cell-pill, + .yii-debug-table td.yii-debug-cell-nowrap, + .yii-debug-table td.yii-debug-cell-numeric, + .yii-debug-table td.yii-debug-cell-pill { + white-space: nowrap; } /** - * ------------------------------------------------------------------- - * Sidebar navigation. - * ------------------------------------------------------------------- + * FQCN label cells hold their segments together: lines break at the + * `` namespace boundary emitted by the two-tone label helper, never + * mid-word inside a class or method name. */ + .yii-debug-grid td.yii-debug-cell-fqcn { + overflow-wrap: normal; + } - .yii-debug-nav { - margin: 0; - padding: var(--yii-debug-space-2); + /** + * Shared collapsible section. The summary carries the heading and, on the + * far side, the expand/collapse hint; both wordings ship in the markup and + * only the one matching the `open` state is revealed, so the affordance + * never invites a click it cannot honour. + */ + .yii-debug-disclosure { + overflow: hidden; + margin-bottom: var(--yii-debug-space-5); border: var(--yii-debug-border); border-radius: var(--yii-debug-radius-lg); background: var(--yii-debug-panel-surface); - box-shadow: var(--yii-debug-shadow-sm); - } - .yii-debug-nav ul { - display: flex; - flex-direction: column; - margin: 0; - padding: 0; - list-style: none; - } - - .yii-debug-nav-group { - margin-top: var(--yii-debug-space-3); - } - - .yii-debug-nav-group > .yii-debug-nav { - padding: 0; - border: 0; - border-radius: 0; - background: transparent; - box-shadow: none; + &[open] > .yii-debug-disclosure-summary { + border-bottom: var(--yii-debug-border); + } } - .yii-debug-nav-link { + .yii-debug-disclosure-summary { display: flex; align-items: center; justify-content: space-between; - gap: var(--yii-debug-space-2); - padding: 8px 12px; - border-radius: var(--yii-debug-radius-md); - color: var(--yii-debug-panel-text); - font-weight: 600; - text-decoration: none; - transition: - background 0.12s ease, - color 0.12s ease; + gap: var(--yii-debug-space-3); + padding: 10px var(--yii-debug-space-4); + cursor: pointer; + list-style: none; + transition: background-color 120ms ease; - &::after { - content: "›"; - color: var(--yii-debug-panel-muted); - font-size: 1.1em; - line-height: 1; + &::-webkit-details-marker { + display: none; } &:hover, - &:focus { + &:focus-visible { background: var(--yii-debug-panel-surface-hover); - color: var(--yii-debug-panel-text); - text-decoration: none; - } - - &.is-active, - &[aria-current="page"] { - background: var(--yii-debug-primary-bg); - color: var(--yii-debug-on-primary); - - &::after { - color: inherit; - } } } - /** - * ------------------------------------------------------------------- - * Buttons. - * ------------------------------------------------------------------- - */ - - .yii-debug-btn { - display: inline-flex; - align-items: center; - justify-content: center; - gap: var(--yii-debug-space-1); - min-height: 32px; - padding: 6px 14px; - border: var(--yii-debug-border); - border-radius: var(--yii-debug-radius-pill); - background: var(--yii-debug-panel-surface); - color: var(--yii-debug-panel-text); - font-family: inherit; - font-size: var(--yii-debug-fs-sm); - font-weight: 600; - letter-spacing: 0; - line-height: 1; - text-decoration: none; - text-transform: none; - cursor: pointer; - transition: - border-color 0.12s ease, - background 0.12s ease, - color 0.12s ease, - transform 0.12s ease, - box-shadow 0.12s ease; + /* Shared accent label for collapsed and populated Request sections. */ + .yii-debug-disclosure-title, + .yii-debug-request-section-title, + .yii-debug-diagnostic-heading-copy h2 { + color: var(--yii-debug-panel-primary-strong); + font-family: var(--yii-debug-font-mono); + font-size: var(--yii-debug-fs-xs); + font-weight: 700; + letter-spacing: 0.12em; + text-transform: uppercase; + } - &:hover, - &:focus { - border-color: color-mix( - in srgb, - var(--yii-debug-panel-primary), - transparent 30% - ); - background: var(--yii-debug-panel-surface-hover); - color: var(--yii-debug-panel-link-hover); - text-decoration: none; - transform: translateY(-1px); + .yii-debug-disclosure-hint { + color: var(--yii-debug-panel-muted); + font-family: var(--yii-debug-font-mono); + font-size: var(--yii-debug-fs-xs); + letter-spacing: 0.06em; + text-transform: uppercase; + transition: color 120ms ease; + + [data-yii-debug-hint="expanded"] { + display: none; } + } - &:active { - transform: translateY(0); + .yii-debug-disclosure-summary:hover .yii-debug-disclosure-hint, + .yii-debug-disclosure-summary:focus-visible .yii-debug-disclosure-hint { + color: var(--yii-debug-panel-link); + } + + details[open] > summary .yii-debug-disclosure-hint { + [data-yii-debug-hint="collapsed"] { + display: none; } - &[disabled], - &.is-disabled { - opacity: 0.55; - pointer-events: none; - transform: none; + [data-yii-debug-hint="expanded"] { + display: inline; } } - .yii-debug-btn-primary { - border-color: transparent; - background: var(--yii-debug-primary-bg); - color: var(--yii-debug-on-primary); + .yii-debug-disclosure-body { + padding: var(--yii-debug-space-4); - &:is(:hover, :focus) { - background: var(--yii-debug-panel-primary-strong); - color: var(--yii-debug-on-primary); + > pre { + margin: 0; + overflow-wrap: anywhere; + color: var(--yii-debug-panel-text); + font-family: var(--yii-debug-font-mono); + font-size: var(--yii-debug-fs-xs); + line-height: 1.6; + white-space: pre-wrap; } } - .yii-debug-btn-ghost { - border-color: var(--yii-debug-panel-border); - background: transparent; + /** + * Long-content clamp for grid cells: the body collapses to a few lines + * behind a fade-out, and the pill toggle expands it in place (wired by + * the `cell-more` delegation in debug.min.js). + */ + .yii-debug-cell-more-body { + position: relative; + max-height: 156px; + overflow: hidden; } - .yii-debug-btn-subtle { - border-color: transparent; - background: var(--yii-debug-panel-surface-muted); + /** + * A clamped table folds taller than a clamped cell: 156px leaves barely + * three rows, too few to judge whether the rest is worth expanding. + */ + .yii-debug-cell-more-body:has(.yii-debug-table) { + max-height: 420px; } - .yii-debug-btn-sm { - min-height: 28px; - padding: 4px 10px; - font-size: var(--yii-debug-fs-xs); + .yii-debug-cell-more-body::after { + content: ""; + position: absolute; + inset: auto 0 0; + height: 32px; + background: linear-gradient( + to bottom, + transparent, + var(--yii-debug-panel-surface) + ); + pointer-events: none; } - .yii-debug-btn-group { - display: inline-flex; - flex-wrap: wrap; - gap: var(--yii-debug-space-1); + .yii-debug-cell-more.is-open .yii-debug-cell-more-body { + max-height: none; } - /** - * ------------------------------------------------------------------- - * Badges. - * ------------------------------------------------------------------- - */ + .yii-debug-cell-more.is-open .yii-debug-cell-more-body::after { + content: none; + } - .yii-debug-badge { + .yii-debug-cell-more-toggle { display: inline-flex; align-items: center; + margin-top: 6px; padding: 2px 10px; + border: var(--yii-debug-border); border-radius: var(--yii-debug-radius-pill); - background: var(--yii-debug-panel-surface-muted); - color: var(--yii-debug-panel-text); + + /* Native `button` element: reset the UA chrome the pill styling replaces. */ + background: transparent; + color: var(--yii-debug-panel-link); + font-family: inherit; font-size: var(--yii-debug-fs-xs); font-weight: 600; - letter-spacing: 0.01em; - line-height: 1.4; - } - - .yii-debug-badge-success { - background: var(--yii-debug-success); - color: var(--yii-debug-on-success); - } + cursor: pointer; - .yii-debug-badge-info { - background: var(--yii-debug-info); - color: var(--yii-debug-on-info); + &::before { + content: ""; + display: inline-block; + width: 1.25em; + height: 1.25em; + margin-right: var(--yii-debug-space-1); + border-radius: 50%; + background: + linear-gradient(currentcolor, currentcolor) center / 8px 2px no-repeat, + linear-gradient(currentcolor, currentcolor) center / 2px 8px no-repeat, + var(--yii-debug-panel-bg-accent); + } } - .yii-debug-badge-warning { - background: var(--yii-debug-warning); - color: var(--yii-debug-on-warning); + .yii-debug-cell-more.is-open .yii-debug-cell-more-toggle::before { + background: + linear-gradient(currentcolor, currentcolor) center / 8px 2px no-repeat, + var(--yii-debug-panel-bg-accent); } - .yii-debug-badge-danger { - background: var(--yii-debug-danger); - color: var(--yii-debug-on-danger); + .yii-debug-cell-more-toggle:hover, + .yii-debug-cell-more-toggle:focus { + background: var(--yii-debug-panel-bg-accent); + border-color: var(--yii-debug-panel-primary); + text-decoration: none; } - .yii-debug-badge-muted { - background: var(--yii-debug-panel-surface-muted); - color: var(--yii-debug-panel-muted); + .yii-debug-grid td.yii-debug-cell-mono { + font-family: var(--yii-debug-font-mono); } /** - * ------------------------------------------------------------------- - * Semantic vocabulary. - * ------------------------------------------------------------------- - * Hue setters map the fixed vocabulary (HTTP verbs, status classes, - * log levels) onto `--yii-debug-hue`; the shared "ink on paper" chip - * formula below consumes it once. The PHP source of truth for the - * class suffixes is `src/helpers/Vocabulary.php`. + * Payload cells (Inertia prop values) hold a JSON summary that has no spaces + * to break on. `width: 100%` hands the column the slack the sized columns + * leave, and `anywhere` lets the value wrap inside it rather than widening + * the table past the panel. */ - - .yii-debug-verb-get { - --yii-debug-hue: var(--yii-debug-verb-get); - } - - .yii-debug-verb-post { - --yii-debug-hue: var(--yii-debug-verb-post); - } - - .yii-debug-verb-put { - --yii-debug-hue: var(--yii-debug-verb-put); + td.yii-debug-cell-payload { + width: 100%; + overflow-wrap: anywhere; } - .yii-debug-verb-delete { - --yii-debug-hue: var(--yii-debug-verb-delete); + .yii-debug-grid td.yii-debug-cell-numeric { + font-variant-numeric: tabular-nums; + text-align: right; } - .yii-debug-verb-other { - --yii-debug-hue: var(--yii-debug-verb-other); + /* Sort-icons rendered by the sort links of both hosts (`a.asc`/`a.desc`). */ + a.asc::after, + a.desc::after { + margin-left: 4px; + content: "↑"; + font-size: 0.85em; + opacity: 0.78; } - .yii-debug-status-2xx { - --yii-debug-hue: var(--yii-debug-status-2xx); + a.desc::after { + content: "↓"; } - .yii-debug-status-3xx { - --yii-debug-hue: var(--yii-debug-status-3xx); - } + /** + * ------------------------------------------------------------------- + * Pager. + * ------------------------------------------------------------------- + */ - .yii-debug-status-4xx { - --yii-debug-hue: var(--yii-debug-status-4xx); + .yii-debug-pager { + display: flex; + flex-wrap: wrap; + gap: var(--yii-debug-space-1); + margin: var(--yii-debug-space-3) 0 0; + padding: 0; + list-style: none; } - .yii-debug-status-5xx { - --yii-debug-hue: var(--yii-debug-status-5xx); - } - - .yii-debug-status-none { - --yii-debug-hue: var(--yii-debug-panel-muted); - } - - .yii-debug-level-error { - --yii-debug-hue: var(--yii-debug-level-error); - } - - .yii-debug-level-warning { - --yii-debug-hue: var(--yii-debug-level-warning); - } - - .yii-debug-level-info { - --yii-debug-hue: var(--yii-debug-level-info); - } - - .yii-debug-level-trace { - --yii-debug-hue: var(--yii-debug-level-trace); - } - - .yii-debug-level-profile { - --yii-debug-hue: var(--yii-debug-level-profile); - } - - .yii-debug-level-other { - --yii-debug-hue: var(--yii-debug-level-other); - } - - /** - * The tinted chip formula, written once: full-hue ink (nudged 20% toward - * the text color so every hue clears AA on the 10% tint in both modes), - * a soft border, and a near-transparent wash of the same hue. - */ - .yii-debug-request-hero-method, - .yii-debug-snapshot-status, - .yii-debug-level-chip, - .yii-debug-db-type, - .yii-debug-dump-type, - .yii-debug-badge:is( - .yii-debug-status-2xx, - .yii-debug-status-3xx, - .yii-debug-status-4xx, - .yii-debug-status-5xx, - .yii-debug-status-none - ) { - border: 1px solid - color-mix( - in srgb, - var(--yii-debug-hue, var(--yii-debug-panel-muted)), - transparent 65% - ); - background: color-mix( - in srgb, - var(--yii-debug-hue, var(--yii-debug-panel-muted)), - transparent 90% - ); - color: color-mix( - in srgb, - var(--yii-debug-hue, var(--yii-debug-panel-muted)) 80%, - var(--yii-debug-panel-text) - ); - } - - /* History Method column — vocabulary-colored mono text, no pill. */ - .yii-debug-method { - color: color-mix( - in srgb, - var(--yii-debug-hue, var(--yii-debug-panel-muted)) 80%, - var(--yii-debug-panel-text) - ); - font-family: var(--yii-debug-font-mono); - font-weight: 700; - letter-spacing: 0.02em; - } - - /* Log level chip — tinted pill carrying the level name as its own label. */ - .yii-debug-level-chip { - display: inline-block; - padding: 1px 8px; - border-radius: var(--yii-debug-radius-pill); - font-family: var(--yii-debug-font-mono); - font-size: 0.7rem; - font-weight: 700; - letter-spacing: 0.04em; - text-transform: uppercase; - white-space: nowrap; - } - - /** - * ------------------------------------------------------------------- - * Callouts. - * ------------------------------------------------------------------- - */ - - .yii-debug-callout { - display: flex; - align-items: flex-start; - gap: var(--yii-debug-space-2); - margin-bottom: var(--yii-debug-space-3); - padding: var(--yii-debug-space-3) var(--yii-debug-space-4); - border: var(--yii-debug-border); - border-left: 4px solid var(--yii-debug-panel-border-strong); - border-radius: var(--yii-debug-radius-md); - background: var(--yii-debug-panel-surface-muted); - color: var(--yii-debug-panel-text); - } - - .yii-debug-callout-info { - border-left-color: var(--yii-debug-info); - } - - .yii-debug-callout-success { - border-left-color: var(--yii-debug-success); - } - - .yii-debug-callout-warning { - border-left-color: var(--yii-debug-warning); - } - - .yii-debug-callout-danger { - border-left-color: var(--yii-debug-danger); - } - - /** - * ------------------------------------------------------------------- - * Tables + GridView integration. - * ------------------------------------------------------------------- - */ - - .yii-debug-table-wrap { - overflow-x: auto; - border: var(--yii-debug-border); - border-radius: var(--yii-debug-radius-lg); - background: var(--yii-debug-panel-surface); - } - - .yii-debug-table { - width: 100%; - min-width: 640px; - margin: 0; - border-collapse: separate; - border-spacing: 0; - background: transparent; - color: var(--yii-debug-panel-text); - font-size: var(--yii-debug-fs-sm); - - thead th, - thead td { - padding: 10px 12px; - border-bottom: var(--yii-debug-border); - background: color-mix( - in srgb, - var(--yii-debug-panel-surface-muted), - transparent 20% - ); - color: var(--yii-debug-panel-muted); - font-size: var(--yii-debug-fs-xs); - font-weight: 700; - letter-spacing: 0.03em; - text-align: left; - text-transform: uppercase; - vertical-align: middle; - } - - thead th a { - color: var(--yii-debug-panel-link); - font-weight: 700; - text-decoration: none; - } - - thead th a:hover, - thead th a:focus { - color: var(--yii-debug-panel-link-hover); - text-decoration: none; - } - - tbody td, - tbody th { - padding: var(--yii-debug-row-padding-block) 12px; - border-top: 1px solid var(--yii-debug-panel-border); - vertical-align: top; - overflow-wrap: anywhere; - } - - tbody th { - white-space: nowrap; - } - - tbody tr:first-child td, - tbody tr:first-child th { - border-top: 0; - } - - tbody tr:nth-child(even) td, - tbody tr:nth-child(even) th { - background: color-mix( - in srgb, - var(--yii-debug-panel-surface-muted), - transparent 50% - ); - } - - tbody tr:hover td, - tbody tr:hover th { - background: var(--yii-debug-panel-surface-hover); - } - - tfoot td { - padding: 10px 12px; - border-top: var(--yii-debug-border); - color: var(--yii-debug-panel-muted); - } - } - - .yii-debug-row-success td, - .yii-debug-row-success th { - background: color-mix( - in srgb, - var(--yii-debug-success), - var(--yii-debug-panel-surface) 86% - ) !important; - } - - .yii-debug-row-info td, - .yii-debug-row-info th { - background: color-mix( - in srgb, - var(--yii-debug-info), - var(--yii-debug-panel-surface) 86% - ) !important; - } - - .yii-debug-row-warning td, - .yii-debug-row-warning th { - background: color-mix( - in srgb, - var(--yii-debug-warning), - var(--yii-debug-panel-surface) 86% - ) !important; - } - - .yii-debug-row-danger td, - .yii-debug-row-danger th { - background: color-mix( - in srgb, - var(--yii-debug-danger), - var(--yii-debug-panel-surface) 86% - ) !important; - } - - /* GridView widget markup wiring. */ - .yii-debug-grid { - margin-bottom: var(--yii-debug-space-4); - - > .summary { - margin: 0 0 var(--yii-debug-space-2); - padding: 0 var(--yii-debug-space-1); - color: var(--yii-debug-panel-muted); - font-size: var(--yii-debug-fs-sm); - - b { - color: var(--yii-debug-panel-text); - font-weight: 700; - } - } - - > .empty { - padding: var(--yii-debug-space-5); - color: var(--yii-debug-panel-muted); - font-style: italic; - text-align: center; - } - } - - /** - * Generic cell utilities, applied via GridView contentOptions or directly on - * the hand-built tables. Both flavours honour them so a cell keeps the same - * behaviour wherever it is used. - */ - .yii-debug-grid td.yii-debug-cell-nowrap, - .yii-debug-grid td.yii-debug-cell-numeric, - .yii-debug-grid td.yii-debug-cell-pill, - .yii-debug-table td.yii-debug-cell-nowrap, - .yii-debug-table td.yii-debug-cell-numeric, - .yii-debug-table td.yii-debug-cell-pill { - white-space: nowrap; - } - - /** - * FQCN label cells hold their segments together: lines break at the - * `` namespace boundary emitted by the two-tone label helper, never - * mid-word inside a class or method name. - */ - .yii-debug-grid td.yii-debug-cell-fqcn { - overflow-wrap: normal; - } - - /** - * Shared collapsible section. The summary carries the heading and, on the - * far side, the expand/collapse hint; both wordings ship in the markup and - * only the one matching the `open` state is revealed, so the affordance - * never invites a click it cannot honour. - */ - .yii-debug-disclosure { - overflow: hidden; - margin-bottom: var(--yii-debug-space-5); - border: var(--yii-debug-border); - border-radius: var(--yii-debug-radius-lg); - background: var(--yii-debug-panel-surface); - - &[open] > .yii-debug-disclosure-summary { - border-bottom: var(--yii-debug-border); - } - } - - .yii-debug-disclosure-summary { - display: flex; - align-items: center; - justify-content: space-between; - gap: var(--yii-debug-space-3); - padding: 10px var(--yii-debug-space-4); - cursor: pointer; - list-style: none; - transition: background-color 120ms ease; - - &::-webkit-details-marker { - display: none; - } - - &:hover, - &:focus-visible { - background: var(--yii-debug-panel-surface-hover); - } - } - - /* Shared accent label for collapsed and populated Request sections. */ - .yii-debug-disclosure-title, - .yii-debug-request-section-title, - .yii-debug-diagnostic-heading-copy h2 { - color: var(--yii-debug-panel-primary-strong); - font-family: var(--yii-debug-font-mono); - font-size: var(--yii-debug-fs-xs); - font-weight: 700; - letter-spacing: 0.12em; - text-transform: uppercase; - } - - .yii-debug-disclosure-hint { - color: var(--yii-debug-panel-muted); - font-family: var(--yii-debug-font-mono); - font-size: var(--yii-debug-fs-xs); - letter-spacing: 0.06em; - text-transform: uppercase; - transition: color 120ms ease; - - [data-yii-debug-hint="expanded"] { - display: none; - } - } - - .yii-debug-disclosure-summary:hover .yii-debug-disclosure-hint, - .yii-debug-disclosure-summary:focus-visible .yii-debug-disclosure-hint { - color: var(--yii-debug-panel-link); - } - - details[open] > summary .yii-debug-disclosure-hint { - [data-yii-debug-hint="collapsed"] { - display: none; - } - - [data-yii-debug-hint="expanded"] { - display: inline; - } - } - - .yii-debug-disclosure-body { - padding: var(--yii-debug-space-4); - - > pre { - margin: 0; - overflow-wrap: anywhere; - color: var(--yii-debug-panel-text); - font-family: var(--yii-debug-font-mono); - font-size: var(--yii-debug-fs-xs); - line-height: 1.6; - white-space: pre-wrap; - } - } - - /** - * Long-content clamp for grid cells: the body collapses to a few lines - * behind a fade-out, and the pill toggle expands it in place (wired by - * the `cell-more` delegation in debug.min.js). - */ - .yii-debug-cell-more-body { - position: relative; - max-height: 156px; - overflow: hidden; - } - - /** - * A clamped table folds taller than a clamped cell: 156px leaves barely - * three rows, too few to judge whether the rest is worth expanding. - */ - .yii-debug-cell-more-body:has(.yii-debug-table) { - max-height: 420px; - } - - .yii-debug-cell-more-body::after { - content: ""; - position: absolute; - inset: auto 0 0; - height: 32px; - background: linear-gradient( - to bottom, - transparent, - var(--yii-debug-panel-surface) - ); - pointer-events: none; - } - - .yii-debug-cell-more.is-open .yii-debug-cell-more-body { - max-height: none; - } - - .yii-debug-cell-more.is-open .yii-debug-cell-more-body::after { - content: none; - } - - .yii-debug-cell-more-toggle { - display: inline-flex; - align-items: center; - margin-top: 6px; - padding: 2px 10px; - border: var(--yii-debug-border); - border-radius: var(--yii-debug-radius-pill); - - /* Native `button` element: reset the UA chrome the pill styling replaces. */ - background: transparent; - color: var(--yii-debug-panel-link); - font-family: inherit; - font-size: var(--yii-debug-fs-xs); - font-weight: 600; - cursor: pointer; - - &::before { - content: ""; - display: inline-block; - width: 1.25em; - height: 1.25em; - margin-right: var(--yii-debug-space-1); - border-radius: 50%; - background: - linear-gradient(currentcolor, currentcolor) center / 8px 2px no-repeat, - linear-gradient(currentcolor, currentcolor) center / 2px 8px no-repeat, - var(--yii-debug-panel-bg-accent); - } - } - - .yii-debug-cell-more.is-open .yii-debug-cell-more-toggle::before { - background: - linear-gradient(currentcolor, currentcolor) center / 8px 2px no-repeat, - var(--yii-debug-panel-bg-accent); - } - - .yii-debug-cell-more-toggle:hover, - .yii-debug-cell-more-toggle:focus { - background: var(--yii-debug-panel-bg-accent); - border-color: var(--yii-debug-panel-primary); - text-decoration: none; - } - - .yii-debug-grid td.yii-debug-cell-mono { - font-family: var(--yii-debug-font-mono); - } - - /** - * Payload cells (Inertia prop values) hold a JSON summary that has no spaces - * to break on. `width: 100%` hands the column the slack the sized columns - * leave, and `anywhere` lets the value wrap inside it rather than widening - * the table past the panel. - */ - td.yii-debug-cell-payload { - width: 100%; - overflow-wrap: anywhere; - } - - .yii-debug-grid td.yii-debug-cell-numeric { - font-variant-numeric: tabular-nums; - text-align: right; - } - - /* Sort-icons rendered by GridView sort links (`a.asc`/`a.desc` or appended marker-span dialect). */ - a.asc::after, - a.desc::after, - .yii-debug-sort-asc::after, - .yii-debug-sort-desc::after { - margin-left: 4px; - content: "↑"; - font-size: 0.85em; - opacity: 0.78; - } - - a.desc::after, - .yii-debug-sort-desc::after { - content: "↓"; - } - - /** - * ------------------------------------------------------------------- - * Pager. - * ------------------------------------------------------------------- - */ - - .yii-debug-pager { - display: flex; - flex-wrap: wrap; - gap: var(--yii-debug-space-1); - margin: var(--yii-debug-space-3) 0 0; - padding: 0; - list-style: none; - } - - .yii-debug-pager-item { - display: inline-flex; + .yii-debug-pager-item { + display: inline-flex; } .yii-debug-pager-link, .yii-debug-pager > li > :is(a, span) { display: inline-flex; align-items: center; - justify-content: center; - min-width: 40px; - min-height: 40px; - padding: 0 10px; - border: var(--yii-debug-border); - border-radius: var(--yii-debug-radius-pill); - background: var(--yii-debug-panel-surface); - color: var(--yii-debug-panel-link); - font-size: var(--yii-debug-fs-sm); - font-weight: 600; - text-decoration: none; - transition: - border-color 0.12s ease, - background 0.12s ease, - color 0.12s ease; - - &:hover, - &:focus { - border-color: color-mix( - in srgb, - var(--yii-debug-panel-primary), - transparent 30% - ); - background: var(--yii-debug-panel-surface-hover); - color: var(--yii-debug-panel-link-hover); - text-decoration: none; - } - } - - .yii-debug-pager-item.is-active .yii-debug-pager-link { - border-color: transparent; - background: var(--yii-debug-primary-bg); - color: var(--yii-debug-on-primary); - cursor: default; - } - - .yii-debug-pager-item.is-disabled .yii-debug-pager-link { - background: var(--yii-debug-panel-surface-muted); - color: var(--yii-debug-panel-muted); - cursor: not-allowed; - pointer-events: none; - } - - /** - * ------------------------------------------------------------------- - * Forms. - * ------------------------------------------------------------------- - */ - - .yii-debug-field { - display: flex; - flex-direction: column; - gap: 4px; - margin-bottom: var(--yii-debug-space-3); - } - - .yii-debug-field-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); - gap: var(--yii-debug-space-3) var(--yii-debug-space-4); - margin-bottom: var(--yii-debug-space-3); - } - - .yii-debug-label { - color: var(--yii-debug-panel-text); - font-size: var(--yii-debug-fs-sm); - font-weight: 600; - } - - .yii-debug-input, - .yii-debug-select, - .yii-debug-textarea { - width: 100%; - min-height: 32px; - padding: 6px 10px; - border: 1px solid var(--yii-debug-panel-border-strong); - border-radius: var(--yii-debug-radius-md); - background: var(--yii-debug-panel-surface); - color: var(--yii-debug-panel-text); - font-family: inherit; - font-size: var(--yii-debug-fs-sm); - transition: - border-color 0.12s ease, - box-shadow 0.12s ease; - - &:hover { - border-color: color-mix( - in srgb, - var(--yii-debug-panel-primary), - var(--yii-debug-panel-border-strong) 60% - ); - } - - &:focus { - border-color: var(--yii-debug-panel-primary); - box-shadow: 0 0 0 3px - color-mix(in srgb, var(--yii-debug-panel-primary), transparent 82%); - } - - &::placeholder { - color: var(--yii-debug-panel-muted); - } - } - - .yii-debug-textarea { - min-height: 96px; - line-height: 1.45; - resize: vertical; - } - - /* GridView filter-row inputs. */ - .yii-debug-grid .filters td { - padding: 6px 12px; - border-bottom: var(--yii-debug-border); - background: color-mix( - in srgb, - var(--yii-debug-panel-surface-muted), - transparent 30% - ); - } - - .yii-debug-grid .filters input, - .yii-debug-grid .filters select, - .yii-debug-grid .filters textarea { - width: 100%; - min-width: 0; - min-height: 28px; - padding: 4px 8px; - border: 1px solid var(--yii-debug-panel-border-strong); - border-radius: var(--yii-debug-radius-sm); - background: var(--yii-debug-panel-surface); - color: var(--yii-debug-panel-text); - font: inherit; - font-size: var(--yii-debug-fs-xs); - - &:focus { - border-color: var(--yii-debug-panel-primary); - box-shadow: 0 0 0 2px - color-mix(in srgb, var(--yii-debug-panel-primary), transparent 84%); - } - } - - /** - * ------------------------------------------------------------------- - * Tabs. - * ------------------------------------------------------------------- - */ - - .yii-debug-tabs { - display: flex; - flex-wrap: wrap; - gap: var(--yii-debug-space-1); - margin: 0 0 var(--yii-debug-space-3); - padding: 0; - list-style: none; - border-bottom: var(--yii-debug-border); - } - - .yii-debug-tab { - display: inline-flex; - } - - .yii-debug-tab-link { - display: inline-flex; - align-items: center; - padding: 8px 14px; - border-bottom: 2px solid transparent; - color: var(--yii-debug-panel-muted); - font-size: var(--yii-debug-fs-sm); - font-weight: 600; - text-decoration: none; - transition: - color 0.12s ease, - border-color 0.12s ease; - - &:hover, - &:focus { - color: var(--yii-debug-panel-text); - text-decoration: none; - } - } - - .yii-debug-tab.is-active .yii-debug-tab-link, - .yii-debug-tab-link.is-active { - border-bottom-color: var(--yii-debug-panel-primary); - color: var(--yii-debug-panel-text); - } - - .yii-debug-tab-panel { - display: none; - padding: var(--yii-debug-space-3) 0 0; - } - - .yii-debug-tab-panel.is-active { - display: block; - } - - /* Collapsible section (used by mail panel filter form). */ - .yii-debug-collapsible { - display: none; - margin-top: var(--yii-debug-space-3); - - &.is-open { - display: block; - } - } - - /** - * ------------------------------------------------------------------- - * Dropdown. - * ------------------------------------------------------------------- - */ - - .yii-debug-dropdown { - position: relative; - display: inline-block; - } - - .yii-debug-dropdown-menu { - display: none; - position: absolute; - top: calc(100% + 4px); - left: 0; - z-index: 100; - min-width: 220px; - margin: 0; - padding: 4px; - border: var(--yii-debug-border-strong); - border-radius: var(--yii-debug-radius-md); - background: var(--yii-debug-panel-surface); - box-shadow: var(--yii-debug-shadow-md); - list-style: none; - } - - .yii-debug-dropdown.is-open .yii-debug-dropdown-menu { - display: block; - } - - .yii-debug-dropdown-item { - display: block; - padding: 6px 10px; - border-radius: var(--yii-debug-radius-sm); - color: var(--yii-debug-panel-text); + justify-content: center; + min-width: 40px; + min-height: 40px; + padding: 0 10px; + border: var(--yii-debug-border); + border-radius: var(--yii-debug-radius-pill); + background: var(--yii-debug-panel-surface); + color: var(--yii-debug-panel-link); font-size: var(--yii-debug-fs-sm); + font-weight: 600; text-decoration: none; + transition: + border-color 0.12s ease, + background 0.12s ease, + color 0.12s ease; &:hover, &:focus { - background: var(--yii-debug-panel-surface-hover); - color: var(--yii-debug-panel-link-hover); - text-decoration: none; - } - } - - /** - * ------------------------------------------------------------------- - * Panel-specific helpers. - * ------------------------------------------------------------------- - * Inter-message delta navigation buttons in the Log panel. - */ - .yii-debug-since-previous { - display: inline-flex; - align-items: center; - gap: 4px; - white-space: nowrap; - - .yii-debug-since-previous-btn { - display: inline-flex; - align-items: center; - justify-content: center; - min-width: 24px; - height: 24px; - padding: 0 6px; - border: var(--yii-debug-border); - border-radius: var(--yii-debug-radius-sm); - background: var(--yii-debug-panel-surface); - color: var(--yii-debug-panel-link); - font-size: var(--yii-debug-fs-xs); - font-weight: 700; - text-decoration: none; - } - } - - /** - * ------------------------------------------------------------------ - * "Quiet Console" key/value table — used by Request, Session, $_SERVER - * panels. Reads like a typeset man-page entry: muted-uppercase keys, full - * monospace values, sticky header, hairline row separators, accent bar on - * hover. No internal cell borders — the card carries the only outline. - * ------------------------------------------------------------------ - */ - .yii-debug-table-mono { - min-width: 0; /* override the GridView-friendly min-width: 640px */ - - thead th { - position: sticky; - top: 0; - z-index: 1; - padding: 8px 16px; - background: color-mix( + border-color: color-mix( in srgb, - var(--yii-debug-panel-surface-muted), - transparent 10% + var(--yii-debug-panel-primary), + transparent 30% ); - backdrop-filter: blur(6px); - font-family: var(--yii-debug-font-sans); - font-size: var(--yii-debug-fs-xs); - letter-spacing: 0.12em; - } - - tbody tr { - transition: background-color 0.14s ease; - } - - /** - * Accent bar on hover — appears on the left edge of the row without - * shifting layout. The 3-pixel inset shadow doubles as a focus indicator. - */ - tbody tr:hover td, - tbody tr:hover th { background: var(--yii-debug-panel-surface-hover); + color: var(--yii-debug-panel-link-hover); + text-decoration: none; } - - tbody tr:hover th { - box-shadow: inset 3px 0 0 var(--yii-debug-panel-primary); - color: var(--yii-debug-panel-text); - } - - /** - * Use the same monospace font + size on both columns so the row reads as a - * single line of typeset code. Hierarchy comes from color/weight, not size. - */ - tbody th, - tbody td { - padding: 12px 16px; - font-family: var(--yii-debug-font-mono); - font-size: var(--yii-debug-fs-sm); - line-height: 1.55; - } - - tbody th { - width: 1%; /* collapse to content; min-width below sets the floor. */ - min-width: 120px; - max-width: 220px; - color: var(--yii-debug-panel-muted); - font-weight: 500; - letter-spacing: 0.02em; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - transition: - color 0.14s ease, - box-shadow 0.14s ease; - } - - tbody td { - color: var(--yii-debug-panel-text); - word-break: normal; - overflow-wrap: anywhere; - } - - /* Hairline row separators only — no borders around individual cells. */ - tbody tr + tr td, - tbody tr + tr th { - border-top: 1px solid - color-mix(in srgb, var(--yii-debug-panel-border) 55%, transparent); - } - - /* Soften the existing zebra so the hover lift reads more clearly. */ - tbody tr:nth-child(even) td, - tbody tr:nth-child(even) th { - background: color-mix( - in srgb, - var(--yii-debug-panel-surface-muted), - transparent 70% - ); - } - } - - .yii-debug-table-overview tbody th { - width: 200px; - min-width: 160px; - max-width: 200px; - } - - .yii-debug-panel-group + .yii-debug-panel-group { - margin-top: var(--yii-debug-space-6); - } - - /** - * Request key/value tables wrap safely at narrow widths. Keep scrolling on - * the page instead of turning every Request section into a nested viewport. - */ - .yii-debug-table-wrap:has(> .yii-debug-table-mono) { - overflow: clip; - border-radius: var(--yii-debug-radius-md); - box-shadow: - var(--yii-debug-shadow-sm), - inset 0 0 0 1px - color-mix(in srgb, var(--yii-debug-panel-border) 60%, transparent); - } - - .yii-debug-table-mono { - min-width: 0; - - tbody th { - overflow-wrap: anywhere; - white-space: normal; - } - } - - /** - * User-switch grid — single-line cells with semantic per-column widths - * and horizontal scroll on overflow. - * - * Column widths are driven by per-column classes (`.yii-debug-col-userswitch-*`) - * applied via `UserPanel::$filterColumns` instead of fragile `nth-child` - * selectors. `nowrap` keeps every row one row tall; if the sum of columns - * exceeds the panel width the wrapping `.yii-debug-table-wrap` provides - * `overflow-x: auto` so wider content stays reachable. - */ - .yii-debug-table-userswitch { - width: auto; - min-width: 100%; - - thead th, - tbody td, - tbody th { - overflow-wrap: normal; - white-space: nowrap; - } - - /* Filter inputs grow with their cell instead of clinging to a fixed width. */ - tbody tr.filters td input { - width: 100%; - min-width: 0; - } - } - - /* ID column — 10 digits + tabular numerals so IDs stay aligned. */ - .yii-debug-col-userswitch-id { - min-width: 10ch; - font-variant-numeric: tabular-nums; - } - - /* Username — short identifier, room for typical handles. */ - .yii-debug-col-userswitch-username { - min-width: 14ch; - } - - /* Email — fits a full address without ellipsis. */ - .yii-debug-col-userswitch-email { - min-width: 24ch; - } - - /* Status flag — narrow numeric column, centered for scannability. */ - .yii-debug-col-userswitch-status { - min-width: 8ch; - text-align: center; - } - - /* Timestamps formatted as `YYYY-MM-DD HH:MM`. */ - .yii-debug-col-userswitch-timestamp { - min-width: 18ch; - font-variant-numeric: tabular-nums; - } - - /* Pointer affordance for click-to-switch rows in the user-switch grid. */ - .yii-debug-table-pointer tbody tr { - cursor: pointer; - transition: background-color 120ms ease; } - .yii-debug-table-pointer tbody tr:hover { - background: color-mix( - in srgb, - var(--yii-debug-panel-primary), - transparent 86% - ); + .yii-debug-pager-item.is-active .yii-debug-pager-link { + border-color: transparent; + background: var(--yii-debug-primary-bg); + color: var(--yii-debug-on-primary); + cursor: default; } - /* Small total-duration line shown at the top of the Timeline panel. */ - .yii-debug-timeline-duration { - margin: 0 0 var(--yii-debug-space-3); + .yii-debug-pager-item.is-disabled .yii-debug-pager-link { + background: var(--yii-debug-panel-surface-muted); color: var(--yii-debug-panel-muted); - font-family: var(--yii-debug-font-mono); - font-size: var(--yii-debug-fs-sm); - letter-spacing: 0.04em; + cursor: not-allowed; + pointer-events: none; } /** - * ──────────────────────────────────────────────────────────────────── - * User panel — "Personnel Dossier" - * Identity card with monogram avatar, status pill, and semantic sections. - * Sensitive values masked behind a click-to-reveal pill. - * ──────────────────────────────────────────────────────────────────── + * ------------------------------------------------------------------- + * Forms. + * ------------------------------------------------------------------- */ - .yii-debug-user { + + .yii-debug-field { display: flex; flex-direction: column; - gap: var(--yii-debug-space-3); + gap: 4px; + margin-bottom: var(--yii-debug-space-3); } - .yii-debug-user-card { - position: relative; - display: grid; - grid-template-columns: auto 1fr; - gap: var(--yii-debug-space-4); - align-items: center; - padding: var(--yii-debug-space-4) var(--yii-debug-space-5); - border: var(--yii-debug-border); - border-radius: var(--yii-debug-radius-lg); - background: - radial-gradient( - circle at top right, - color-mix(in srgb, var(--yii-debug-panel-primary), transparent 80%), - transparent 60% - ), - var(--yii-debug-panel-surface); - box-shadow: var(--yii-debug-shadow-sm); - overflow: hidden; + .yii-debug-label { + color: var(--yii-debug-panel-text); + font-size: var(--yii-debug-fs-sm); + font-weight: 600; } - .yii-debug-user-avatar { - display: inline-flex; - align-items: center; - justify-content: center; - width: 64px; - height: 64px; - flex: none; - border-radius: 50%; - background: linear-gradient( - 135deg, - var(--yii-debug-panel-primary), - var(--yii-debug-info) - ); - box-shadow: - 0 4px 12px - color-mix(in srgb, var(--yii-debug-panel-primary), transparent 50%), - inset 0 1px 0 rgb(255 255 255 / 22%); - color: #fff; - font-family: var(--yii-debug-font-mono); - font-size: 28px; - font-weight: 700; - letter-spacing: -0.02em; + .yii-debug-input, + .yii-debug-select { + width: 100%; + min-height: 32px; + padding: 6px 10px; + border: 1px solid var(--yii-debug-panel-border-strong); + border-radius: var(--yii-debug-radius-md); + background: var(--yii-debug-panel-surface); + color: var(--yii-debug-panel-text); + font-family: inherit; + font-size: var(--yii-debug-fs-sm); + transition: + border-color 0.12s ease, + box-shadow 0.12s ease; + + &:hover { + border-color: color-mix( + in srgb, + var(--yii-debug-panel-primary), + var(--yii-debug-panel-border-strong) 60% + ); + } + + &:focus { + border-color: var(--yii-debug-panel-primary); + box-shadow: 0 0 0 3px + color-mix(in srgb, var(--yii-debug-panel-primary), transparent 82%); + } + + &::placeholder { + color: var(--yii-debug-panel-muted); + } } - .yii-debug-user-meta { - display: flex; - flex-direction: column; - gap: 4px; - min-width: 0; + /* GridView filter-row inputs. */ + .yii-debug-grid .filters td { + padding: 6px 12px; + border-bottom: var(--yii-debug-border); + background: color-mix( + in srgb, + var(--yii-debug-panel-surface-muted), + transparent 30% + ); } - .yii-debug-user-name { - margin: 0; + .yii-debug-grid .filters input, + .yii-debug-grid .filters select, + .yii-debug-grid .filters textarea { + width: 100%; + min-width: 0; + min-height: 28px; + padding: 4px 8px; + border: 1px solid var(--yii-debug-panel-border-strong); + border-radius: var(--yii-debug-radius-sm); + background: var(--yii-debug-panel-surface); color: var(--yii-debug-panel-text); - font-family: var(--yii-debug-font-mono); - font-size: var(--yii-debug-fs-xl); - font-weight: 700; - letter-spacing: -0.01em; - line-height: 1.2; - } + font: inherit; + font-size: var(--yii-debug-fs-xs); - .yii-debug-user-handle { - margin: 0; - color: var(--yii-debug-panel-muted); - font-family: var(--yii-debug-font-mono); - font-size: var(--yii-debug-fs-sm); + &:focus { + border-color: var(--yii-debug-panel-primary); + box-shadow: 0 0 0 2px + color-mix(in srgb, var(--yii-debug-panel-primary), transparent 84%); + } } - .yii-debug-user-tags { + /** + * ------------------------------------------------------------------- + * Tabs. + * ------------------------------------------------------------------- + */ + + .yii-debug-tabs { display: flex; flex-wrap: wrap; - gap: 8px; - margin-top: 6px; + gap: var(--yii-debug-space-1); + margin: 0 0 var(--yii-debug-space-3); + padding: 0; + list-style: none; + border-bottom: var(--yii-debug-border); } - .yii-debug-user-status { + .yii-debug-tab { display: inline-flex; - align-items: center; - gap: 6px; - padding: 4px 12px 4px 8px; - border-radius: var(--yii-debug-radius-pill); - font-family: var(--yii-debug-font-mono); - font-size: var(--yii-debug-fs-xs); - font-weight: 700; - letter-spacing: 0.06em; - text-transform: uppercase; - - &::before { - content: ""; - width: 7px; - height: 7px; - border-radius: 50%; - background: currentcolor; - } } - .yii-debug-user-status-success { - background: color-mix(in srgb, var(--yii-debug-success), transparent 84%); - color: var(--yii-debug-success); + .yii-debug-tab-link { + display: inline-flex; + align-items: center; + padding: 8px 14px; + border-bottom: 2px solid transparent; + color: var(--yii-debug-panel-muted); + font-size: var(--yii-debug-fs-sm); + font-weight: 600; + text-decoration: none; + transition: + color 0.12s ease, + border-color 0.12s ease; - &::before { - animation: yii-debug-user-pulse 2.4s ease-in-out infinite; - box-shadow: 0 0 0 0 - color-mix(in srgb, var(--yii-debug-success), transparent 30%); + &:hover, + &:focus { + color: var(--yii-debug-panel-text); + text-decoration: none; } } - .yii-debug-user-status-danger { - background: color-mix(in srgb, var(--yii-debug-danger), transparent 84%); - color: var(--yii-debug-danger); + .yii-debug-tab.is-active .yii-debug-tab-link, + .yii-debug-tab-link.is-active { + border-bottom-color: var(--yii-debug-panel-primary); + color: var(--yii-debug-panel-text); } - .yii-debug-user-status-warning { - background: color-mix(in srgb, var(--yii-debug-warning), transparent 84%); - color: var(--yii-debug-warning); + .yii-debug-tab-panel { + display: none; + padding: var(--yii-debug-space-3) 0 0; } - .yii-debug-user-status-muted { - background: var(--yii-debug-panel-surface-muted); - color: var(--yii-debug-panel-muted); + .yii-debug-tab-panel.is-active { + display: block; } - .yii-debug-user-pill { + /** + * ------------------------------------------------------------------- + * Panel-specific helpers. + * ------------------------------------------------------------------- + * Inter-message delta navigation buttons in the Log panel. + */ + .yii-debug-since-previous { display: inline-flex; align-items: center; - padding: 4px 10px; - border: 1px solid var(--yii-debug-panel-border); - border-radius: var(--yii-debug-radius-pill); - color: var(--yii-debug-panel-muted); - font-family: var(--yii-debug-font-mono); - font-size: var(--yii-debug-fs-xs); - letter-spacing: 0.04em; - } - - .yii-debug-user-section { - border: var(--yii-debug-border); - border-radius: var(--yii-debug-radius-md); - background: var(--yii-debug-panel-surface); - overflow: hidden; + gap: 4px; + white-space: nowrap; - > header { - display: flex; + .yii-debug-since-previous-btn { + display: inline-flex; align-items: center; - gap: 10px; - padding: 10px var(--yii-debug-space-3); - border-bottom: var(--yii-debug-border); - background: var(--yii-debug-panel-surface-muted); - color: var(--yii-debug-panel-muted); - font-family: var(--yii-debug-font-sans); + justify-content: center; + min-width: 24px; + height: 24px; + padding: 0 6px; + border: var(--yii-debug-border); + border-radius: var(--yii-debug-radius-sm); + background: var(--yii-debug-panel-surface); + color: var(--yii-debug-panel-link); font-size: var(--yii-debug-fs-xs); font-weight: 700; - letter-spacing: 0.06em; - text-transform: uppercase; + text-decoration: none; } + } - dl { - margin: 0; - padding: 0; + /** + * ------------------------------------------------------------------ + * "Quiet Console" key/value table — used by Request, Session, $_SERVER + * panels. Reads like a typeset man-page entry: muted-uppercase keys, full + * monospace values, sticky header, hairline row separators, accent bar on + * hover. No internal cell borders — the card carries the only outline. + * ------------------------------------------------------------------ + */ + .yii-debug-table-mono { + min-width: 0; /* override the GridView-friendly min-width: 640px */ + + thead th { + position: sticky; + top: 0; + z-index: 1; + padding: 8px 16px; + background: color-mix( + in srgb, + var(--yii-debug-panel-surface-muted), + transparent 10% + ); + backdrop-filter: blur(6px); + font-family: var(--yii-debug-font-sans); + font-size: var(--yii-debug-fs-xs); + letter-spacing: 0.12em; } - } - .yii-debug-user-section-icon { - display: inline-flex; - align-items: center; - justify-content: center; - width: 18px; - height: 18px; - color: var(--yii-debug-panel-primary); + tbody tr { + transition: background-color 0.14s ease; + } - svg { - width: 100%; - height: 100%; + /** + * Accent bar on hover — appears on the left edge of the row without + * shifting layout. The 3-pixel inset shadow doubles as a focus indicator. + */ + tbody tr:hover td, + tbody tr:hover th { + background: var(--yii-debug-panel-surface-hover); } - } - .yii-debug-user-row { - display: grid; - grid-template-columns: minmax(140px, 22%) 1fr; - gap: var(--yii-debug-space-3); - padding: 12px var(--yii-debug-space-3); - border-bottom: 1px solid - color-mix(in srgb, var(--yii-debug-panel-border) 50%, transparent); + tbody tr:hover th { + box-shadow: inset 3px 0 0 var(--yii-debug-panel-primary); + color: var(--yii-debug-panel-text); + } - &:last-child { - border-bottom: 0; + /** + * Use the same monospace font + size on both columns so the row reads as a + * single line of typeset code. Hierarchy comes from color/weight, not size. + */ + tbody th, + tbody td { + padding: 12px 16px; + font-family: var(--yii-debug-font-mono); + font-size: var(--yii-debug-fs-sm); + line-height: 1.55; } - dt { - align-self: center; + tbody th { + width: 1%; /* collapse to content; min-width below sets the floor. */ + min-width: 120px; + max-width: 220px; color: var(--yii-debug-panel-muted); - font-family: var(--yii-debug-font-mono); - font-size: var(--yii-debug-fs-xs); + font-weight: 500; letter-spacing: 0.02em; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + transition: + color 0.14s ease, + box-shadow 0.14s ease; } - dd { - margin: 0; - min-width: 0; + tbody td { + color: var(--yii-debug-panel-text); + word-break: normal; + overflow-wrap: anywhere; + } + + /* Hairline row separators only — no borders around individual cells. */ + tbody tr + tr td, + tbody tr + tr th { + border-top: 1px solid + color-mix(in srgb, var(--yii-debug-panel-border) 55%, transparent); + } + + /* Soften the existing zebra so the hover lift reads more clearly. */ + tbody tr:nth-child(even) td, + tbody tr:nth-child(even) th { + background: color-mix( + in srgb, + var(--yii-debug-panel-surface-muted), + transparent 70% + ); } } - .yii-debug-user-value { - color: var(--yii-debug-panel-text); - font-family: var(--yii-debug-font-mono); - font-size: var(--yii-debug-fs-sm); - word-break: break-all; + .yii-debug-table-overview tbody th { + width: 200px; + min-width: 160px; + max-width: 200px; } - .yii-debug-user-empty { - color: color-mix(in srgb, var(--yii-debug-panel-muted), transparent 35%); - font-family: var(--yii-debug-font-mono); + .yii-debug-panel-group + .yii-debug-panel-group { + margin-top: var(--yii-debug-space-6); } - .yii-debug-user-time { - display: inline-flex; - align-items: baseline; - gap: 10px; - font-family: var(--yii-debug-font-mono); - font-size: var(--yii-debug-fs-sm); + /** + * Request key/value tables wrap safely at narrow widths. Keep scrolling on + * the page instead of turning every Request section into a nested viewport. + */ + .yii-debug-table-wrap:has(> .yii-debug-table-mono) { + overflow: clip; + border-radius: var(--yii-debug-radius-md); + box-shadow: + var(--yii-debug-shadow-sm), + inset 0 0 0 1px + color-mix(in srgb, var(--yii-debug-panel-border) 60%, transparent); + } - .yii-debug-user-time-rel { - color: var(--yii-debug-panel-text); - font-weight: 600; - } + .yii-debug-table-mono { + min-width: 0; - .yii-debug-user-time-abs { - color: var(--yii-debug-panel-muted); - font-size: var(--yii-debug-fs-xs); + tbody th { + overflow-wrap: anywhere; + white-space: normal; } } /** - * Click-to-reveal pill for sensitive fields. Native button so the keyboard - * toggles it for free; CSS swaps mask/value via `.is-revealed`. + * User-switch grid — single-line cells with semantic per-column widths + * and horizontal scroll on overflow. + * + * Column widths are driven by per-column classes (`.yii-debug-col-userswitch-*`) + * applied via `UserPanel::$filterColumns` instead of fragile `nth-child` + * selectors. `nowrap` keeps every row one row tall; if the sum of columns + * exceeds the panel width the wrapping `.yii-debug-table-wrap` provides + * `overflow-x: auto` so wider content stays reachable. */ - .yii-debug-user-reveal { - display: inline-flex; - align-items: center; - gap: 12px; - padding: 6px 6px 6px 14px; - border: 1px solid - color-mix(in srgb, var(--yii-debug-panel-border) 80%, transparent); - border-radius: var(--yii-debug-radius-pill); - background: var(--yii-debug-panel-surface-muted); - color: var(--yii-debug-panel-text); - font: inherit; - cursor: pointer; - text-align: left; - transition: - border-color 0.14s ease, - background 0.14s ease; - - &:hover, - &:focus { - border-color: var(--yii-debug-panel-primary); - } + .yii-debug-table-userswitch { + width: auto; + min-width: 100%; - .yii-debug-user-mask, - .yii-debug-user-real { - font-family: var(--yii-debug-font-mono); - font-size: var(--yii-debug-fs-sm); + thead th, + tbody td, + tbody th { + overflow-wrap: normal; + white-space: nowrap; } - .yii-debug-user-mask { - letter-spacing: 0.1em; - color: var(--yii-debug-panel-muted); + /* Filter inputs grow with their cell instead of clinging to a fixed width. */ + tbody tr.filters td input { + width: 100%; + min-width: 0; } + } - .yii-debug-user-real { - display: none; - max-width: 60ch; - overflow-wrap: anywhere; - color: var(--yii-debug-panel-text); - } + /* ID column — 10 digits + tabular numerals so IDs stay aligned. */ + .yii-debug-col-userswitch-id { + min-width: 10ch; + font-variant-numeric: tabular-nums; + } - .yii-debug-user-reveal-cta { - flex: none; - padding: 3px 10px; - border-radius: var(--yii-debug-radius-pill); - background: color-mix( - in srgb, - var(--yii-debug-panel-primary), - transparent 80% - ); - color: var(--yii-debug-panel-primary); - font-size: var(--yii-debug-fs-xs); - font-weight: 700; - letter-spacing: 0.08em; - text-transform: uppercase; + /* Username — short identifier, room for typical handles. */ + .yii-debug-col-userswitch-username { + min-width: 14ch; + } - &::before { - content: "Reveal"; - } - } + /* Email — fits a full address without ellipsis. */ + .yii-debug-col-userswitch-email { + min-width: 24ch; + } - &.is-revealed { - .yii-debug-user-mask { - display: none; - } + /* Status flag — narrow numeric column, centered for scannability. */ + .yii-debug-col-userswitch-status { + min-width: 8ch; + text-align: center; + } - .yii-debug-user-real { - display: inline; - } + /* Timestamps formatted as `YYYY-MM-DD HH:MM`. */ + .yii-debug-col-userswitch-timestamp { + min-width: 18ch; + font-variant-numeric: tabular-nums; + } - .yii-debug-user-reveal-cta { - background: color-mix( - in srgb, - var(--yii-debug-warning), - transparent 84% - ); - color: var(--yii-debug-warning); + /* Pointer affordance for click-to-switch rows in the user-switch grid. */ + .yii-debug-table-pointer tbody tr { + cursor: pointer; + transition: background-color 120ms ease; + } - &::before { - content: "Hide"; - } - } - } + .yii-debug-table-pointer tbody tr:hover { + background: color-mix( + in srgb, + var(--yii-debug-panel-primary), + transparent 86% + ); } /** @@ -3132,25 +2075,6 @@ } } - /** - * Trailing CTA inside the summary strip (e.g. "Latest →" on the index). - * Sits to the right of the bucket pills; visually a small primary link. - */ - .yii-debug-grid-summary-action { - margin-left: auto; - color: var(--yii-debug-panel-primary-strong); - font-weight: 700; - letter-spacing: 0; - text-transform: none; - text-decoration: none; - - &:hover, - &:focus-visible { - color: var(--yii-debug-panel-link-hover); - text-decoration: underline; - } - } - /** * Footer slot below the GridView table — `Showing N-M of T items.` summary * pinned to the left, pager pinned to the right, both vertically centered on @@ -3468,45 +2392,12 @@ /** * ------------------------------------------------------------------- * Queue panel — request-scoped roster of `Yii::$app->queue->push()` / - * exec / error events. The default view is a paginated GridView with - * filter row (status, driver, component, job class, job id); each row - * is a one-click jump to a dedicated detail page that renders the full - * payload tree, error block, schedule chips, and a live lifecycle pill - * (waiting / reserved / done) queried once against the originating - * queue component. Card markup (`.yii-debug-queue-card*`) lives further - * below and powers the detail page only. + * exec / error events, rendered as cards (`.yii-debug-queue-card*`, + * further below) and a dedicated job page with the full payload tree, + * error block, schedule chips, and a live lifecycle pill (waiting / + * reserved / done) queried once against the originating queue component. * ------------------------------------------------------------------- */ - .yii-debug-queue-grid-job { - display: flex; - flex-direction: column; - gap: 2px; - line-height: 1.2; - } - - .yii-debug-queue-grid-job-link { - color: var(--yii-debug-text-strong); - font-weight: 600; - text-decoration: none; - white-space: nowrap; - } - - .yii-debug-queue-grid-job-link:hover { - text-decoration: underline; - } - - .yii-debug-queue-grid-job-namespace { - color: var(--yii-debug-text-muted); - font-family: var(--yii-debug-font-mono); - font-size: 0.78rem; - white-space: nowrap; - } - - .yii-debug-grid-queue .yii-debug-queue-status, - .yii-debug-grid-queue .yii-debug-queue-driver { - white-space: nowrap; - } - .yii-debug-queue-job-page { display: flex; flex-direction: column; @@ -4296,26 +3187,23 @@ } /** - * The ID column (History tag SHA and Queue job id) shares a single - * baseline width so the filter input renders identically across panels - * and the 13-character hex never wraps even when the filter is open. - * Width is sized to fit the 13-character SHA + breathing room. + * The ID column (History tag SHA) keeps a baseline width so the + * 13-character hex never wraps even when the filter is open. Width is + * sized to fit the 13-character SHA + breathing room. */ - .yii-debug-col-id, - .yii-debug-col-queue-id { + .yii-debug-col-id { min-width: 120px; white-space: nowrap; } /** - * Pin the ID filter inputs to a fixed compact width across panels so - * the search box never stretches with the column on wide viewports — - * sized to fit the 13-character SHA without spilling into empty space. - * Higher specificity than `.yii-debug-grid .filters input { width: 100% }` - * so this wins regardless of source order. + * Pin the ID filter input to a fixed compact width so the search box + * never stretches with the column on wide viewports — sized to fit the + * 13-character SHA without spilling into empty space. Higher specificity + * than `.yii-debug-grid .filters input { width: 100% }` so this wins + * regardless of source order. */ - .yii-debug-grid .filters input.yii-debug-col-id-input, - .yii-debug-grid .filters input.yii-debug-col-queue-id-input { + .yii-debug-grid .filters input.yii-debug-col-id-input { box-sizing: border-box; width: 104px; } @@ -4521,10 +3409,6 @@ white-space: nowrap; } - .yii-debug-break { - word-break: break-all; - } - /* "Not set" marker used in some views. */ .yii-debug-not-set { color: var(--yii-debug-danger); @@ -4546,6 +3430,14 @@ font-variant-numeric: tabular-nums; } + /** + * The readout stretches to the rail width and inherits the tabular + * digits, so right-aligning it lines the units up down the column. + */ + .yii-debug-gauge-value { + text-align: right; + } + .yii-debug-gauge-bar { display: block; height: 3px; @@ -4563,6 +3455,12 @@ background: var(--yii-debug-gauge-fill); } + /* Profiling Info nesting: one muted arrow per span level, set off from the label. */ + .yii-debug-indent { + margin-inline-end: var(--yii-debug-space-1); + color: var(--yii-debug-panel-muted); + } + /** * =================================================================== * Configuration + PhpInfo panel — "terminal schematic" design system. @@ -6513,19 +5411,6 @@ } } -@keyframes yii-debug-user-pulse { - 0%, - 100% { - opacity: 1; - transform: scale(1); - } - - 50% { - opacity: 0.55; - transform: scale(0.85); - } -} - @keyframes yii-debug-readout-in { from { opacity: 0; diff --git a/resources/src/styles/primitives.css b/resources/src/styles/primitives.css index b51a40a..3e779aa 100644 --- a/resources/src/styles/primitives.css +++ b/resources/src/styles/primitives.css @@ -263,7 +263,6 @@ .yii-debug-btn, .yii-debug-brand-chip, .yii-debug-cell-more-toggle, - .yii-debug-dropdown-item, .yii-debug-filter-input, .yii-debug-heading-permalink, .yii-debug-server-group-summary, diff --git a/resources/src/styles/request.css b/resources/src/styles/request.css new file mode 100644 index 0000000..7763a77 --- /dev/null +++ b/resources/src/styles/request.css @@ -0,0 +1,614 @@ +/* Request panel: overview rail, header and server diagnostics, and the route resolution trace. */ +.yii-debug { + /** + * Request overview — a continuous telemetry rail for identity, response, + * runtime metrics, and capture metadata. + */ + .yii-debug-request-hero { + margin-bottom: var(--yii-debug-space-4); + padding: var(--yii-debug-space-3) var(--yii-debug-space-4); + border: var(--yii-debug-border); + border-radius: var(--yii-debug-radius-md); + background: var(--yii-debug-panel-surface-muted); + box-shadow: var(--yii-debug-shadow-sm); + } + + .yii-debug-request-overview { + overflow: hidden; + margin-bottom: var(--yii-debug-space-4); + border: var(--yii-debug-border); + border-inline-start: 4px solid + color-mix( + in srgb, + var(--yii-debug-hue, var(--yii-debug-panel-muted)) 76%, + var(--yii-debug-panel-text) + ); + border-radius: var(--yii-debug-radius-lg); + background: var(--yii-debug-panel-surface); + box-shadow: var(--yii-debug-shadow-sm); + } + + .yii-debug-request-overview-header { + display: grid; + grid-template-columns: minmax(0, 1fr) auto; + gap: var(--yii-debug-space-4); + align-items: center; + padding: var(--yii-debug-space-4); + } + + .yii-debug-request-overview-identity { + min-width: 0; + } + + .yii-debug-request-hero-line { + display: flex; + align-items: center; + gap: var(--yii-debug-space-2); + min-width: 0; + font-family: var(--yii-debug-font-mono); + font-size: var(--yii-debug-fs-base); + } + + /* Colors come from the shared vocabulary chip formula (see Semantic vocabulary). */ + .yii-debug-request-hero-method { + flex: none; + padding: 2px 10px; + border-radius: var(--yii-debug-radius-pill); + font-weight: 700; + letter-spacing: 0.04em; + } + + .yii-debug-request-hero-url { + flex: 1 1 auto; + min-width: 0; + overflow: hidden; + color: var(--yii-debug-panel-text); + text-overflow: ellipsis; + white-space: nowrap; + } + + .yii-debug-request-hero-meta { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 6px var(--yii-debug-space-3); + margin-top: 6px; + color: var(--yii-debug-panel-muted); + font-family: var(--yii-debug-font-mono); + font-size: var(--yii-debug-fs-xs); + + &:empty { + display: none; + } + } + + .yii-debug-request-hero-meta-item { + display: inline-flex; + align-items: baseline; + gap: var(--yii-debug-space-1); + } + + .yii-debug-request-hero-meta-label { + font-family: var(--yii-debug-font-sans); + font-size: 0.625rem; + font-weight: 700; + letter-spacing: 0.07em; + text-transform: uppercase; + } + + .yii-debug-request-hero-meta-value { + color: var(--yii-debug-panel-text); + } + + .yii-debug-request-overview-status { + min-width: 72px; + text-align: right; + } + + .yii-debug-request-overview-metrics { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) auto; + margin: 0; + border-block: var(--yii-debug-border); + background: var(--yii-debug-panel-surface-muted); + } + + .yii-debug-request-overview-metric { + min-width: 0; + padding: var(--yii-debug-space-3) var(--yii-debug-space-4); + + & + & { + border-inline-start: var(--yii-debug-border); + } + + dt { + margin-bottom: 2px; + color: var(--yii-debug-panel-muted); + font-size: 0.6875rem; + font-weight: 700; + letter-spacing: 0.07em; + text-transform: uppercase; + } + + dd { + display: flex; + min-width: 0; + flex-wrap: wrap; + align-items: center; + margin: 0; + gap: var(--yii-debug-space-2); + color: var(--yii-debug-panel-text); + font-family: var(--yii-debug-font-mono); + font-size: var(--yii-debug-fs-sm); + font-weight: 600; + overflow-wrap: anywhere; + } + } + + .yii-debug-request-overview-meta { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: var(--yii-debug-space-2) var(--yii-debug-space-5); + padding: var(--yii-debug-space-3) var(--yii-debug-space-4); + color: var(--yii-debug-panel-muted); + font-family: var(--yii-debug-font-mono); + font-size: var(--yii-debug-fs-xs); + } + + .yii-debug-request-overview-config { + display: inline-flex; + flex-wrap: wrap; + align-items: center; + gap: var(--yii-debug-space-2); + margin-inline-start: auto; + } + + .yii-debug-request-overview-meta-item { + display: inline-flex; + min-width: 0; + flex-direction: column; + align-items: flex-start; + } + + .yii-debug-request-overview-meta-label { + margin-bottom: 2px; + color: var(--yii-debug-panel-muted); + font-family: var(--yii-debug-font-sans); + font-size: 0.6875rem; + font-weight: 700; + letter-spacing: 0.07em; + text-transform: uppercase; + } + + .yii-debug-request-overview-tag { + overflow: hidden; + max-width: 34ch; + color: var(--yii-debug-panel-text); + font-family: var(--yii-debug-font-mono); + font-size: var(--yii-debug-fs-sm); + font-weight: 600; + text-overflow: ellipsis; + white-space: nowrap; + } + + /** + * Composed Request + routing view. The request overview remains one + * continuous execution rail; routing metadata and failures extend that rail + * instead of introducing another stack of nested cards. + */ + .yii-debug-request-routing-error { + margin: 0; + border-width: 1px 0 0 4px; + border-radius: 0; + + p { + margin: 0; + } + } + + .yii-debug-request-tabs { + min-width: 0; + + > .yii-debug-tabs { + flex-wrap: nowrap; + overflow-x: auto; + scrollbar-width: thin; + } + + .yii-debug-tab { + flex: none; + } + + .yii-debug-empty-state { + padding: var(--yii-debug-space-4); + + h2 { + margin: 0; + font-size: var(--yii-debug-fs-base); + } + } + } + + /** + * Request diagnostic ledgers. Headers read as an HTTP exchange rather than + * two unrelated tables; server variables read as one grouped execution + * record. Both keep the captured keys and values as the primary visual ink. + */ + .yii-debug-diagnostic-shell { + overflow: hidden; + border: var(--yii-debug-border); + border-radius: var(--yii-debug-radius-lg); + background: var(--yii-debug-panel-surface); + box-shadow: var(--yii-debug-shadow-sm); + } + + .yii-debug-diagnostic-header { + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--yii-debug-space-4); + padding: var(--yii-debug-space-3) var(--yii-debug-space-4); + border-bottom: var(--yii-debug-border); + background: var(--yii-debug-panel-surface-muted); + } + + .yii-debug-diagnostic-heading-copy { + display: flex; + min-width: 0; + flex-wrap: wrap; + align-items: baseline; + gap: var(--yii-debug-space-2) var(--yii-debug-space-3); + + h2 { + margin: 0; + } + } + + .yii-debug-diagnostic-counts { + display: inline-flex; + align-items: center; + gap: var(--yii-debug-space-2); + } + + .yii-debug-diagnostic-count, + .yii-debug-diagnostic-total, + .yii-debug-header-lane-count, + .yii-debug-server-group-count { + color: var(--yii-debug-panel-muted); + font-family: var(--yii-debug-font-mono); + font-size: var(--yii-debug-fs-xs); + font-variant-numeric: tabular-nums; + } + + .yii-debug-diagnostic-count { + display: inline-flex; + align-items: baseline; + gap: var(--yii-debug-space-1); + } + + .yii-debug-diagnostic-count + .yii-debug-diagnostic-count::before { + width: 1px; + height: 12px; + margin-inline-end: var(--yii-debug-space-1); + background: var(--yii-debug-panel-border-strong); + content: ""; + } + + .yii-debug-diagnostic-count-value { + color: var(--yii-debug-panel-text); + font-weight: 700; + } + + .yii-debug-diagnostic-filter { + width: min(280px, 42%); + max-width: none; + background: var(--yii-debug-panel-surface); + } + + .yii-debug-header-lanes { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .yii-debug-header-lane { + position: relative; + min-width: 0; + } + + .yii-debug-header-lane + .yii-debug-header-lane { + border-inline-start: 2px solid + color-mix( + in srgb, + var(--yii-debug-panel-primary) 36%, + var(--yii-debug-panel-border) + ); + + &::before { + position: absolute; + z-index: 1; + top: 25px; + inset-inline-start: -5px; + width: 8px; + height: 8px; + border: 2px solid var(--yii-debug-panel-surface); + border-radius: var(--yii-debug-radius-pill); + background: var(--yii-debug-panel-primary); + content: ""; + } + } + + .yii-debug-header-lane-header { + display: flex; + min-height: 58px; + align-items: center; + justify-content: space-between; + gap: var(--yii-debug-space-3); + padding: 10px var(--yii-debug-space-4); + border-bottom: var(--yii-debug-border); + + h3 { + margin: 1px 0 0; + font-size: var(--yii-debug-fs-base); + } + } + + .yii-debug-header-direction { + display: block; + color: var(--yii-debug-panel-primary-strong); + font-family: var(--yii-debug-font-mono); + font-size: 0.6875rem; + font-weight: 700; + letter-spacing: 0.04em; + } + + .yii-debug-diagnostic-ledger { + margin: 0; + } + + .yii-debug-diagnostic-row { + display: grid; + grid-template-columns: minmax(132px, 0.72fr) minmax(0, 1.28fr); + align-items: start; + border-top: 1px solid + color-mix(in srgb, var(--yii-debug-panel-border) 58%, transparent); + + &:first-child { + border-top: 0; + } + + &:hover { + background: var(--yii-debug-panel-surface-hover); + } + + dt, + dd { + min-width: 0; + padding: 10px var(--yii-debug-space-4); + font-family: var(--yii-debug-font-mono); + font-size: var(--yii-debug-fs-sm); + line-height: 1.5; + } + + dt { + overflow: hidden; + color: var(--yii-debug-panel-muted); + font-weight: 600; + overflow-wrap: anywhere; + } + + dd { + margin: 0; + border-inline-start: 1px solid + color-mix(in srgb, var(--yii-debug-panel-border) 45%, transparent); + color: var(--yii-debug-panel-text); + overflow-wrap: anywhere; + white-space: pre-wrap; + } + } + + .yii-debug-header-ledger .yii-debug-diagnostic-row:nth-child(even), + .yii-debug-server-ledger .yii-debug-diagnostic-row:nth-child(even) { + background: color-mix( + in srgb, + var(--yii-debug-panel-surface-muted), + transparent 72% + ); + + &:hover { + background: var(--yii-debug-panel-surface-hover); + } + } + + .yii-debug-diagnostic-values { + display: grid; + gap: 6px; + } + + .yii-debug-diagnostic-value-count { + color: var(--yii-debug-panel-muted); + font-family: var(--yii-debug-font-sans); + font-size: 0.6875rem; + } + + .yii-debug-diagnostic-value-list { + display: grid; + gap: var(--yii-debug-space-1); + margin: 0; + padding: 0; + list-style: none; + + li + li { + padding-top: var(--yii-debug-space-1); + border-top: 1px dashed var(--yii-debug-panel-border); + } + } + + .yii-debug-diagnostic-empty-value, + .yii-debug-diagnostic-lane-empty, + .yii-debug-diagnostic-empty-state, + .yii-debug-diagnostic-filter-empty { + color: var(--yii-debug-panel-muted); + font-style: italic; + } + + .yii-debug-diagnostic-lane-empty, + .yii-debug-diagnostic-empty-state, + .yii-debug-diagnostic-filter-empty { + margin: 0; + padding: var(--yii-debug-space-4); + } + + .yii-debug-diagnostic-filter-empty { + border-top: var(--yii-debug-border); + text-align: center; + } + + .yii-debug-server-group-body > .yii-debug-mini-toolbar { + margin: 0; + padding: var(--yii-debug-space-2) var(--yii-debug-space-4); + border-bottom: var(--yii-debug-border); + + .yii-debug-filter-input { + max-width: 100%; + } + } + + .yii-debug-server-additional + .yii-debug-server-group, + .yii-debug-server-group + .yii-debug-server-group { + border-top: var(--yii-debug-border); + } + + .yii-debug-server-group-summary { + display: flex; + min-height: 44px; + align-items: center; + justify-content: space-between; + gap: var(--yii-debug-space-3); + padding: 9px var(--yii-debug-space-4); + border-bottom: var(--yii-debug-border); + background: var(--yii-debug-panel-surface-muted); + + .yii-debug-server-group-title { + margin: 0; + font-size: var(--yii-debug-fs-sm); + font-weight: 700; + } + } + + .yii-debug-server-group-summary { + cursor: pointer; + list-style: none; + + &::-webkit-details-marker { + display: none; + } + + &:hover, + &:focus-visible { + background: var(--yii-debug-panel-surface-hover); + } + } + + .yii-debug-server-group-identity { + display: inline-flex; + align-items: baseline; + gap: var(--yii-debug-space-2); + } + + .yii-debug-server-group:not([open]) > .yii-debug-server-group-summary { + border-bottom: 0; + } + + .yii-debug-server-group-summary .yii-debug-disclosure-hint { + margin-inline-start: auto; + } + + .yii-debug-diagnostic-row[hidden], + .yii-debug-header-lane[hidden], + .yii-debug-server-group[hidden], + .yii-debug-diagnostic-filter-empty[hidden] { + display: none; + } + + @container yii-debug-main (width <= 900px) { + .yii-debug-header-lanes { + grid-template-columns: minmax(0, 1fr); + } + + .yii-debug-header-lane + .yii-debug-header-lane { + border-top: 2px solid + color-mix( + in srgb, + var(--yii-debug-panel-primary) 36%, + var(--yii-debug-panel-border) + ); + border-inline-start: 0; + + &::before { + top: -5px; + inset-inline-start: var(--yii-debug-space-4); + } + } + } + + @container yii-debug-main (width <= 560px) { + .yii-debug-diagnostic-header { + align-items: stretch; + flex-direction: column; + } + + .yii-debug-diagnostic-filter { + width: 100%; + } + + .yii-debug-diagnostic-row { + grid-template-columns: minmax(0, 1fr); + + dt { + padding-bottom: var(--yii-debug-space-1); + } + + dd { + padding-top: 0; + border-inline-start: 0; + } + } + } + + .yii-debug-route-resolution { + margin: var(--yii-debug-space-3) var(--yii-debug-space-4) var(--yii-debug-space-4); + } + + .yii-debug-route-resolution-message { + margin: 0 0 var(--yii-debug-space-3); + color: var(--yii-debug-panel-muted); + font-size: var(--yii-debug-fs-sm); + } + + .yii-debug-route-trace { + min-width: 560px; + } + + .yii-debug-table.yii-debug-route-trace { + thead th, + tbody td { + text-align: center; + } + + thead th:nth-child(2), + tbody td:nth-child(2) { + text-align: start; + } + + thead th:first-child, + tbody td:first-child { + width: 56px; + } + + thead th:last-child, + tbody td:last-child { + width: 160px; + } + } +} diff --git a/resources/src/toolbar/focus.js b/resources/src/toolbar/focus.js index 81f1476..b002ea0 100644 --- a/resources/src/toolbar/focus.js +++ b/resources/src/toolbar/focus.js @@ -69,16 +69,11 @@ function toolbarDrawerMessageData(event, origin, frameWindow) { return event.data; } -export function requestParentToolbarDrawerClose( - event, - browserWindow, - dropdownWasOpen, -) { +export function requestParentToolbarDrawerClose(event, browserWindow) { if ( !event || event.key !== "Escape" || event.defaultPrevented || - dropdownWasOpen || !browserWindow.parent || browserWindow.parent === browserWindow ) { diff --git a/resources/tests/debug-bootstrap.test.js b/resources/tests/debug-bootstrap.test.js index dd27170..9cfa271 100644 --- a/resources/tests/debug-bootstrap.test.js +++ b/resources/tests/debug-bootstrap.test.js @@ -2,7 +2,7 @@ import assert from "node:assert/strict"; import { test, vi } from "vitest"; -import { bootDebugPage, fire, settle } from "./debug-page-harness.js"; +import { bootDebugPage, fire, press, settle } from "./debug-page-harness.js"; /** * The Database panel feature is the failure fixture: it is the only module the @@ -231,3 +231,48 @@ test("a panel feature failure without a main region only flags the page", async "No region means no callout.", ); }); + +test("Escape asks the parent toolbar to close the drawer", async () => { + const page = await bootDebugPage({ + body: "

Panel

", + parent: "frame", + }); + + press(page.document.querySelector("p"), "Escape"); + + await settle(page.window); + + assert.deepEqual( + page.posts, + [ + { + data: { source: "yii-debug-toolbar", type: "close-drawer" }, + origin: "https://debug.test", + }, + ], + "Host toolbar must be asked to close.", + ); +}); + +test("Escape on a standalone page posts nothing", async () => { + const page = await bootDebugPage({ body: "

Panel

" }); + + press(page.document.querySelector("p"), "Escape"); + + await settle(page.window); + + assert.equal(page.posts.length, 0, "There is no drawer to close."); +}); + +test("a keydown on the document itself is ignored", async () => { + const page = await bootDebugPage({ body: "

Panel

", parent: "frame" }); + const event = fire(page.document, "keydown", { + cancelable: true, + key: "ArrowDown", + }); + + await settle(page.window); + + assert.equal(event.defaultPrevented, false, "A targetless key stays live."); + assert.equal(page.posts.length, 0, "Only Escape may close the drawer."); +}); diff --git a/resources/tests/debug-disclosure.test.js b/resources/tests/debug-disclosure.test.js index 3879f2e..0063ded 100644 --- a/resources/tests/debug-disclosure.test.js +++ b/resources/tests/debug-disclosure.test.js @@ -40,81 +40,6 @@ test("a cell-more control outside a box is inert", async () => { assert.equal(control.textContent, "More", "Orphan control must not change."); }); -test("a collapse control toggles the region named by data-target", async () => { - const page = await bootDebugPage({ - body: - '' + - '
frames
', - }); - const control = page.document.querySelector( - '[data-yii-debug-toggle="collapse"]', - ); - const target = page.document.getElementById("trace"); - - fire(control.querySelector("span"), "click"); - - assert.equal(target.classList.contains("is-open"), false, "Must collapse."); - assert.equal(control.getAttribute("aria-expanded"), "false", "State down."); - - fire(control, "click"); - - assert.equal(target.classList.contains("is-open"), true, "Must expand."); - assert.equal(control.getAttribute("aria-expanded"), "true", "State is up."); -}); - -test("a collapse control falls back to its href", async () => { - const page = await bootDebugPage({ - body: - 'Trace' + - '
frames
', - }); - - fire(page.document.querySelector("a"), "click"); - - assert.equal( - page.document.getElementById("trace").classList.contains("is-open"), - true, - "Fragment href must name the region.", - ); -}); - -test("a collapse control without a target is inert", async () => { - const page = await bootDebugPage({ - body: '', - }); - const control = page.document.querySelector( - '[data-yii-debug-toggle="collapse"]', - ); - const event = fire(control, "click"); - - assert.equal(event.defaultPrevented, true, "Navigation must be suppressed."); - assert.equal( - control.getAttribute("aria-expanded"), - null, - "Nothing to expand means no state.", - ); -}); - -test("a collapse control pointing at a missing region is inert", async () => { - const page = await bootDebugPage({ - body: - '', - }); - const control = page.document.querySelector( - '[data-yii-debug-toggle="collapse"]', - ); - - fire(control, "click"); - - assert.equal( - control.getAttribute("aria-expanded"), - null, - "A dangling target must leave the control alone.", - ); -}); - test("a reveal control flips its pressed state and its label", async () => { const page = await bootDebugPage({ body: diff --git a/resources/tests/debug-dropdown.test.js b/resources/tests/debug-dropdown.test.js deleted file mode 100644 index 4fe3a2b..0000000 --- a/resources/tests/debug-dropdown.test.js +++ /dev/null @@ -1,295 +0,0 @@ -// @vitest-environment jsdom -import assert from "node:assert/strict"; -import { test } from "vitest"; - -import { bootDebugPage, fire, press, settle } from "./debug-page-harness.js"; - -const DEFAULT_ITEMS = - 'Database'; - -/** Renders one server-side dropdown, optionally degraded or already open. */ -function dropdown(options) { - const settings = options || {}; - const expanded = settings.open === true ? "true" : "false"; - const items = settings.items === undefined ? DEFAULT_ITEMS : settings.items; - - return ( - '
' + - (settings.trigger === false - ? "" - : '') + - (settings.menu === false - ? "" - : '
' + items + "
") + - "
" - ); -} - -function trigger(page, id) { - return page.document - .getElementById(id || "filters") - .querySelector('[data-yii-debug-toggle="dropdown"]'); -} - -function isOpen(page, id) { - return page.document.getElementById(id).classList.contains("is-open"); -} - -test("opening a dropdown closes the one already open", async () => { - const page = await bootDebugPage({ - body: dropdown({ id: "sort", open: true }) + dropdown({ id: "filters" }), - }); - - fire(trigger(page, "filters"), "click"); - - assert.equal(isOpen(page, "filters"), true, "Clicked menu must open."); - assert.equal(isOpen(page, "sort"), false, "Only one menu may stay open."); - assert.equal( - trigger(page, "sort").getAttribute("aria-expanded"), - "false", - "Closed trigger must report its state.", - ); - assert.equal( - trigger(page, "filters").getAttribute("aria-expanded"), - "true", - "Open trigger must report its state.", - ); -}); - -test("clicking an open trigger closes its own menu", async () => { - const page = await bootDebugPage({ body: dropdown({ open: true }) }); - - fire(trigger(page), "click"); - - assert.equal(isOpen(page, "filters"), false, "Second click must close."); - assert.equal( - trigger(page).getAttribute("aria-expanded"), - "false", - "Trigger must report the collapsed state.", - ); -}); - -test("a dropdown trigger outside a wrapper is inert", async () => { - const page = await bootDebugPage({ - body: '', - }); - const control = page.document.querySelector( - '[data-yii-debug-toggle="dropdown"]', - ); - const event = fire(control, "click"); - - assert.equal(event.defaultPrevented, true, "Navigation must be suppressed."); - assert.equal( - control.getAttribute("aria-expanded"), - null, - "An orphan trigger controls nothing.", - ); -}); - -test("a dropdown without a menu is inert", async () => { - const page = await bootDebugPage({ body: dropdown({ menu: false }) }); - - fire(trigger(page), "click"); - - assert.equal(isOpen(page, "filters"), false, "Nothing to reveal."); - assert.equal( - trigger(page).getAttribute("aria-expanded"), - "false", - "Trigger state must not change.", - ); -}); - -test("a click elsewhere closes a dropdown left open without a trigger", async () => { - const page = await bootDebugPage({ - body: dropdown({ open: true, trigger: false }) + "

Elsewhere

", - }); - - fire(page.document.querySelector("p"), "click"); - - assert.equal(isOpen(page, "filters"), false, "Outside click must close."); -}); - -test("ArrowDown from the trigger opens the menu on its first item", async () => { - const page = await bootDebugPage({ body: dropdown() }); - const event = press(trigger(page), "ArrowDown"); - - assert.equal(event.defaultPrevented, true, "Scrolling must be suppressed."); - assert.equal(isOpen(page, "filters"), true, "Navigation must open the menu."); - assert.equal( - page.document.activeElement.textContent, - "Database", - "Focus must land on the first item.", - ); -}); - -test("ArrowUp from the trigger opens the menu on its last item", async () => { - const page = await bootDebugPage({ body: dropdown() }); - - press(trigger(page), "ArrowUp"); - - assert.equal( - page.document.activeElement.textContent, - "Clear", - "Focus must land on the last item.", - ); -}); - -test("Home and End jump to the ends of the menu", async () => { - const page = await bootDebugPage({ body: dropdown({ open: true }) }); - const items = page.document.querySelectorAll(".yii-debug-dropdown-menu > *"); - - press(items[0], "End"); - - assert.equal(page.document.activeElement, items[1], "End must go last."); - - press(items[1], "Home"); - - assert.equal(page.document.activeElement, items[0], "Home must go first."); -}); - -test("ArrowDown from an item moves to the next item", async () => { - const page = await bootDebugPage({ body: dropdown({ open: true }) }); - const items = page.document.querySelectorAll(".yii-debug-dropdown-menu > *"); - - press(items[0], "ArrowDown"); - - assert.equal(page.document.activeElement, items[1], "Focus must advance."); -}); - -test("hidden menu items are skipped by keyboard navigation", async () => { - const page = await bootDebugPage({ - body: dropdown({ - items: - 'Database' + - '' + - '' + - '' + - '', - }), - }); - - press(trigger(page), "End"); - - assert.equal( - page.document.activeElement.textContent, - "Reset", - "Only perceivable, enabled items may take focus.", - ); -}); - -test("an empty menu stays closed under keyboard navigation", async () => { - const page = await bootDebugPage({ body: dropdown({ items: "" }) }); - const event = press(trigger(page), "ArrowDown"); - - assert.equal(isOpen(page, "filters"), false, "Nothing to navigate."); - assert.equal(event.defaultPrevented, false, "The key must stay available."); -}); - -test("a dropdown without a trigger ignores arrow keys", async () => { - const page = await bootDebugPage({ body: dropdown({ trigger: false }) }); - const item = page.document.querySelector(".yii-debug-dropdown-menu > *"); - - press(item, "ArrowDown"); - - assert.equal(isOpen(page, "filters"), false, "No trigger, no navigation."); -}); - -test("a dropdown without a menu ignores arrow keys", async () => { - const page = await bootDebugPage({ body: dropdown({ menu: false }) }); - - press(trigger(page), "ArrowDown"); - - assert.equal(isOpen(page, "filters"), false, "No menu, no navigation."); -}); - -test("Escape closes the dropdown and returns focus to its trigger", async () => { - const page = await bootDebugPage({ - body: dropdown({ open: true }), - parent: "frame", - }); - - press(page.document.querySelector(".yii-debug-dropdown-menu > *"), "Escape"); - - await settle(page.window); - - assert.equal(isOpen(page, "filters"), false, "Escape must close the menu."); - assert.equal( - page.document.activeElement, - trigger(page), - "Focus must return to the trigger.", - ); - assert.equal( - page.posts.length, - 0, - "Closing a menu must not also close the drawer.", - ); -}); - -test("Escape closes a triggerless dropdown without moving focus", async () => { - const page = await bootDebugPage({ - body: dropdown({ open: true, trigger: false }), - }); - const item = page.document.querySelector(".yii-debug-dropdown-menu > *"); - - press(item, "Escape"); - - await settle(page.window); - - assert.equal(isOpen(page, "filters"), false, "Escape must close the menu."); - assert.equal( - page.document.activeElement, - page.document.body, - "There is nothing to focus.", - ); -}); - -test("Escape with no menu open asks the parent toolbar to close the drawer", async () => { - const page = await bootDebugPage({ - body: "

Panel

", - parent: "frame", - }); - - press(page.document.querySelector("p"), "Escape"); - - await settle(page.window); - - assert.deepEqual( - page.posts, - [ - { - data: { source: "yii-debug-toolbar", type: "close-drawer" }, - origin: "https://debug.test", - }, - ], - "Host toolbar must be asked to close.", - ); -}); - -test("Escape on a standalone page posts nothing", async () => { - const page = await bootDebugPage({ body: "

Panel

" }); - - press(page.document.querySelector("p"), "Escape"); - - await settle(page.window); - - assert.equal(page.posts.length, 0, "There is no drawer to close."); -}); - -test("a keydown on the document itself is ignored", async () => { - const page = await bootDebugPage({ body: dropdown() }); - - fire(page.document, "keydown", { key: "ArrowDown" }); - - assert.equal( - isOpen(page, "filters"), - false, - "A targetless key does nothing.", - ); -}); diff --git a/resources/tests/toolbar-runtime.test.js b/resources/tests/toolbar-runtime.test.js index fd51eab..4505123 100644 --- a/resources/tests/toolbar-runtime.test.js +++ b/resources/tests/toolbar-runtime.test.js @@ -491,10 +491,7 @@ test("embedded debug pages request drawer closure after an unhandled Escape", () }; var escape = { key: "Escape", defaultPrevented: false }; - assert.equal( - requestParentToolbarDrawerClose(escape, browserWindow, false), - true, - ); + assert.equal(requestParentToolbarDrawerClose(escape, browserWindow), true); assert.deepEqual(messages, [ { message: { source: "yii-debug-toolbar", type: "close-drawer" }, @@ -505,26 +502,17 @@ test("embedded debug pages request drawer closure after an unhandled Escape", () requestParentToolbarDrawerClose( { ...escape, defaultPrevented: true }, browserWindow, - false, ), false, ); - assert.equal( - requestParentToolbarDrawerClose(escape, browserWindow, true), - false, - ); var topWindow = { location: browserWindow.location }; topWindow.parent = topWindow; - assert.equal( - requestParentToolbarDrawerClose(escape, topWindow, false), - false, - ); + assert.equal(requestParentToolbarDrawerClose(escape, topWindow), false); assert.equal( requestParentToolbarDrawerClose( { key: "Enter", defaultPrevented: false }, browserWindow, - false, ), false, ); diff --git a/tools/quality/asset-size-budget.json b/tools/quality/asset-size-budget.json index 2be8718..a18100a 100644 --- a/tools/quality/asset-size-budget.json +++ b/tools/quality/asset-size-budget.json @@ -5,8 +5,8 @@ }, "files": { "css/debug.min.css": { - "maxBytes": 175000, - "maxGzipBytes": 21200 + "maxBytes": 150350, + "maxGzipBytes": 18550 }, "fonts/ibm-plex-sans-latin-400-normal.woff2": { "maxBytes": 23800, @@ -41,8 +41,8 @@ "maxGzipBytes": 2430 }, "js/debug.min.js": { - "maxBytes": 24050, - "maxGzipBytes": 7560 + "maxBytes": 22950, + "maxGzipBytes": 7500 }, "js/dom.min.js": { "maxBytes": 965, diff --git a/tools/quality/css-vocabulary-allowlist.json b/tools/quality/css-vocabulary-allowlist.json index b5cd5ee..d1da19f 100644 --- a/tools/quality/css-vocabulary-allowlist.json +++ b/tools/quality/css-vocabulary-allowlist.json @@ -2,7 +2,6 @@ "$comment": "Names the PHP renderers emit without a matching frontend rule. `deliberate` entries are settled decisions and stay silent. `pendingReview` entries are reported on every run until someone either styles the name or moves it to `deliberate` with a reason. Remove an entry as soon as the frontend defines the name; the check fails on a stale entry so the list cannot rot.", "deliberate": { "yii-debug-callout-muted": "Muted is the neutral base: the four toned variants only override `border-left-color`, so muted needs no rule.", - "yii-debug-gauge-value": "Structural label for the readout inside a micro-gauge; the rail and the bar carry the styling.", "yii-debug-tab-content": "Structural label for the container holding the tab panels; each panel carries the styling." }, "pendingReview": { @@ -14,7 +13,6 @@ "yii-debug-header-exchange-body": "Body of the header exchange shell.", "yii-debug-header-exchange-title": "Title of the header exchange shell.", "yii-debug-header-raw-row": "Raw header row.", - "yii-debug-indent": "Depth indent of a profiling row.", "yii-debug-main-bare": "Shell variant rendering the page without the sidebar.", "yii-debug-panel-title": "Panel heading of the standalone snapshot view.", "yii-debug-phpinfo-filter": "Filter control of the PHP Info page.",