:root{--brand:#594f74;--brand-hover:#4a4162;--brand-accent:#635f98;--brand-tint:#eeecf4;--ink:#2f2d36;--ink-2:#55535f;--muted:#6a6976;--surface:#fff;--surface-2:#f6f6f9;--surface-3:#efeef4;--border:#d9d8e2;--border-soft:#ebe9f0;--border-control:#8e8b9c;--success:#1f7a54;--success-tint:#e7f3ec;--warn:#7f5210;--warn-tint:#f8efdd;--danger:#a92a35;--danger-tint:#fbebed;--info:#3f5f8f;--info-tint:#eaf0f8;--focus:0 0 0 3px #635f9859;--radius-sm:3px;--radius:4px;--radius-lg:8px;--shadow-1:0 1px 2px #231f300f, 0 6px 18px #231f301f;--shadow-2:0 2px 6px #231f3024, 0 12px 28px #231f3033;--shadow-3:0 4px 12px #231f301f, 0 24px 56px #231f303d;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--font-ui:"Kanit", "Noto Sans Thai", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-num:"IBM Plex Sans Thai", "Kanit", "Noto Sans Thai", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:22px;--fs-kpi:28px;--control-h:32px;--control-h-sm:28px;--purple:var(--brand-accent);--purple-deep:var(--brand);--purple-dark:var(--brand-hover);--ink-3:var(--muted);--bg:var(--surface);--panel:var(--surface);--tint:var(--surface-2);--rule:var(--border);--rule-soft:var(--border-soft);--line-2:var(--border-soft);--ok:var(--success);--ok-tint:var(--success-tint);--bad:var(--danger);--bad-tint:var(--danger-tint);--mute-tint:var(--surface-3);--mono:var(--font-mono);--i-info:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 8h.01'/%3E%3C/svg%3E");--i-warn:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9 2.4 17.6A2 2 0 0 0 4.1 20.6h15.8a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0Z'/%3E%3Cpath d='M12 9v4M12 17h.01'/%3E%3C/svg%3E");--i-error:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5h.01'/%3E%3C/svg%3E");--i-ok:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12.5 2.5 2.5L16 9.5'/%3E%3C/svg%3E");--i-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236a6976' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--i-chevron-white:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{margin:0}html,body,#root{height:100%}body{background:var(--surface);color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-md);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0;font-weight:400;line-height:1.5}:lang(th) body,body:lang(th){line-height:1.65}code,.mono{font-family:var(--font-mono);overflow-wrap:anywhere;font-size:.9em}h1,h2,h3,h4{color:var(--ink);letter-spacing:0;margin:0;line-height:1.3}:lang(th) :is(h1,h2,h3,h4){line-height:1.45}h1{font-size:var(--fs-xl);color:var(--brand);font-weight:500}h2{font-size:18px;font-weight:500}h3{font-size:15px;font-weight:500}h4{font-size:var(--fs-sm);font-weight:500}b,strong{font-weight:500}a{color:var(--brand);text-underline-offset:2px;text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}:where(button,a,[tabindex]):focus-visible,:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.icon{vertical-align:-3px;flex:none;width:16px;height:16px;display:inline-block}.shell{flex-direction:column;min-height:100%;display:flex}.masthead{align-items:center;gap:var(--s-3);background:var(--brand);color:#fff;padding:0 var(--s-5);min-height:56px;padding-top:env(safe-area-inset-top,0px);z-index:20;flex-wrap:nowrap;display:flex;position:relative}.logo{flex:none;align-items:center;display:inline-flex}.logo svg,.logo img{width:auto;height:28px;display:block}.masthead-title{font-size:var(--fs-md);color:#ffffffeb;padding-left:var(--s-3);white-space:nowrap;border-left:1px solid #ffffff47;font-weight:400;line-height:22px}.masthead-meta{font-size:var(--fs-xs);color:#ffffffd1}.masthead-meta code{color:#fff}.spacer,.grow{flex:1}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.usermenu{position:relative}.userchip{max-width:280px;font:inherit;font-size:var(--fs-sm);color:#fff;border-radius:var(--radius-lg);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:4px 8px 4px 4px;transition:background-color .12s;display:inline-flex}.userchip:hover,.userchip[aria-expanded=true]{background:#ffffff1f}.userchip:focus-visible{outline-offset:1px;outline:2px solid #fff}.userchip-text{flex-direction:column;min-width:0;line-height:1.5;display:inline-flex}.userchip-name{font-weight:500;font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;max-width:190px;overflow:hidden}.userchip-roles{font-size:var(--fs-xs);color:#fffc;white-space:nowrap;text-overflow:ellipsis;max-width:190px;overflow:hidden}.userchip-caret{opacity:.85;transition:transform .15s;display:inline-flex}.userchip[aria-expanded=true] .userchip-caret{transform:rotate(180deg)}.avatar{width:30px;height:30px;color:var(--brand);font-size:var(--fs-sm);background:#fff;border-radius:50%;flex:0 0 30px;place-items:center;font-weight:600;display:inline-grid;box-shadow:0 0 0 2px #ffffff40}.usermenu-pop{z-index:50;background:var(--surface);min-width:260px;max-width:340px;color:var(--ink);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);padding:6px;animation:.12s ease-out pop-in;position:absolute;top:calc(100% + 8px);right:0}.usermenu-actor{font-size:var(--fs-xs);color:var(--muted);border-bottom:1px solid var(--border-soft);overflow-wrap:anywhere;grid-template-columns:36px minmax(0,1fr);align-items:center;column-gap:10px;margin-bottom:4px;padding:8px 10px 10px;display:grid}.usermenu-actor .avatar{background:var(--brand-tint);width:36px;height:36px;color:var(--brand);box-shadow:none;grid-row:span 2}.usermenu-actor b{color:var(--ink);font-size:var(--fs-md);font-weight:500;display:block}.usermenu-pop [role=menuitem]{text-align:left;width:100%;font:inherit;font-size:var(--fs-sm);color:var(--ink);border-radius:var(--radius);cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;min-height:34px;padding:0 10px;display:flex}.usermenu-pop [role=menuitem] .icon{color:var(--muted)}.usermenu-pop [role=menuitem]:hover,.usermenu-pop [role=menuitem]:focus-visible{background:var(--brand-tint);color:var(--brand);outline:none}.usermenu-pop [role=menuitem]:hover .icon,.usermenu-pop [role=menuitem]:focus-visible .icon{color:var(--brand)}.btn.btn-on-dark{color:#fff;background:0 0;border-color:#fff6}.btn.btn-on-dark:hover:not(:disabled){color:#fff;background:#ffffff1f;border-color:#fffc}.btn.btn-on-dark:focus-visible{outline-offset:2px;box-shadow:none;outline:2px solid #fff}.langswitch{font-size:var(--fs-xs);border-radius:var(--radius-lg);background:#ffffff1a;flex:none;align-items:center;gap:2px;padding:2px;line-height:1;display:inline-flex}.langswitch button{cursor:pointer;font:inherit;font-size:var(--fs-xs);color:#fffc;background:0 0;border:0;border-radius:6px;padding:5px 9px;line-height:1.2}.langswitch button:hover{color:#fff;background:#ffffff1f}.langswitch button[aria-pressed=true]{color:var(--brand);cursor:default;background:#fff;font-weight:500}.langswitch button:focus-visible{outline-offset:1px;outline:2px solid #fff}.app{background:linear-gradient(to right, var(--surface-2) 0 231px, var(--border) 231px 232px, var(--surface) 232px);flex:1;grid-template-columns:232px 1fr;min-height:0;display:grid}.side{background:0 0;flex-direction:column;align-self:start;max-height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.navlist{padding:var(--s-3) var(--s-2);flex-direction:column;flex:1;gap:1px;display:flex}.navbtn{text-align:left;width:100%;color:var(--ink-2);border-radius:var(--radius);font:inherit;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;min-height:34px;padding:7px 10px;line-height:1.35;text-decoration:none;transition:background-color .12s,color .12s;display:flex}.navbtn .icon{color:var(--muted);transition:color .12s}.navbtn:hover{background:var(--surface-3);color:var(--ink);text-decoration:none}.navbtn:hover .icon{color:var(--brand)}.navbtn[aria-current=true]{background:var(--brand);color:#fff;font-weight:500}.navbtn[aria-current=true] .icon{color:#fff}.navbtn[aria-current=true]:hover{background:var(--brand);color:#fff}.navgroup+.navgroup{margin-top:var(--s-2);padding-top:var(--s-2);border-top:1px solid var(--border)}.navhead{font-size:var(--fs-xs);color:var(--muted);letter-spacing:0;text-transform:none;pointer-events:none;-webkit-user-select:none;user-select:none;padding:6px 10px 4px;font-weight:500}.navgroup .navbtn{padding-left:10px}.main{background:var(--surface);min-width:0}.content{padding:var(--s-6) var(--s-8) 72px;width:100%}@media (width>=1900px){.content{padding-inline:44px}}.page-head{margin-bottom:var(--s-5)}.page-head h1{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:4px;display:flex}.page-head h1 .chip{font-size:var(--fs-xs);align-self:center}.page-head h1 .tip{margin-left:0}.page-head p{color:var(--ink-2);font-size:var(--fs-sm);max-width:78ch;margin:0}.page-head .crumbs{align-items:center;gap:8px;min-width:0;display:inline-flex}.page-head .crumbs a{color:var(--ink-2);font-weight:400;text-decoration:none}.page-head .crumbs a:hover{color:var(--brand);text-decoration:underline}.page-head .crumb-sep{color:var(--muted);font-weight:400}.chip{font-size:var(--fs-xs);white-space:nowrap;border-radius:var(--radius-sm);vertical-align:baseline;background:var(--surface-3);color:var(--ink-2);padding:0 7px;font-weight:500;line-height:20px;display:inline-block}.chip code{font-size:11.5px}.chip.ok{background:var(--success-tint);color:var(--success)}.chip.warn{background:var(--warn-tint);color:var(--warn)}.chip.bad{background:var(--danger-tint);color:var(--danger)}.chip.info{background:var(--brand-tint);color:var(--brand)}.chip.mute{background:var(--surface-3);color:var(--ink-2)}.chip.accent{background:var(--brand-tint);color:var(--brand)}.chip.big{padding:3px 12px;font-size:15px;line-height:1.5}button.chip{cursor:pointer;border:0;font-family:inherit}button.chip:hover{filter:brightness(.96)}button.chip[aria-pressed]{border:1px solid var(--border);background:var(--surface);color:var(--ink-2);padding:0 11px;font-weight:400;line-height:26px}button.chip[aria-pressed]:hover{filter:none;border-color:var(--border-control);color:var(--ink)}button.chip[aria-pressed=true]{border-color:currentColor;font-weight:500}button.chip[aria-pressed=true]:not(.ok):not(.warn):not(.bad):not(.info):not(.mute):not(.accent){background:var(--brand-tint);color:var(--brand)}button.chip.ok[aria-pressed=true]{background:var(--success-tint);color:var(--success)}button.chip.warn[aria-pressed=true]{background:var(--warn-tint);color:var(--warn)}button.chip.bad[aria-pressed=true]{background:var(--danger-tint);color:var(--danger)}button.chip.info[aria-pressed=true],button.chip.accent[aria-pressed=true]{background:var(--brand-tint);color:var(--brand)}button.chip.mute[aria-pressed=true]{background:var(--surface-3);color:var(--ink)}button.chip:focus-visible{box-shadow:var(--focus);outline:none}.card{background:var(--surface);margin-top:var(--s-8)}.card:first-of-type{margin-top:0}.card+.card{margin-top:var(--s-8)}.card-head{padding:0 0 var(--s-2);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;min-height:40px;margin-bottom:0;display:flex}.card-head h2,.card-head h3{font-size:var(--fs-lg);color:var(--ink);margin:0;font-weight:500}.card-body{padding:var(--s-4) 0 0}.content>.grid{margin-top:var(--s-8)}.content>.grid:first-child{margin-top:0}.content>.grid+.card{margin-top:var(--s-8)}.grid{gap:22px;display:grid}.g4{border-bottom:1px solid var(--border-soft);grid-template-columns:repeat(4,1fr);gap:0}.g3{grid-template-columns:repeat(3,1fr);gap:14px}.g2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:28px}.g2.aside{grid-template-columns:minmax(0,1fr) 320px}.kpi{padding:var(--s-4) var(--s-5);border-left:1px solid var(--border-soft);min-width:0}.kpi:first-child{border-left:0;padding-left:0}.kpi .lbl{color:var(--muted);font-size:var(--fs-xs);font-weight:500}.kpi .val{font-family:var(--font-num);font-size:var(--fs-kpi);color:var(--brand);font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:4px;font-weight:300;line-height:1.25}.kpi .val.sm{font-size:22px}.kpi .val small{font-family:var(--font-ui);font-size:var(--fs-sm);color:var(--muted);letter-spacing:0}.kpi .sub{color:var(--ink-2);font-size:var(--fs-xs);margin-top:2px}.tiles{border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.tile{border-left:1px solid var(--border-soft);min-width:110px;padding:10px 18px}.tile:first-child{border-left:0}.tile .label{color:var(--muted);font-size:var(--fs-xs)}.tile .value{font-family:var(--font-num);color:var(--brand);font-variant-numeric:tabular-nums;font-size:22px;font-weight:300;line-height:1.3}.good{color:var(--success)}table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}th{text-align:left;font-size:var(--fs-xs);color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;text-transform:none;letter-spacing:0;vertical-align:bottom;background:0 0;padding:9px 16px 9px 0;font-weight:500}td{border-bottom:1px solid var(--border-soft);vertical-align:baseline;padding:10px 16px 10px 0}th:last-child,td:last-child{padding-right:0}tbody tr:last-child td{border-bottom:0}tbody tr{transition:background-color .1s}tbody tr:hover{background:color-mix(in srgb, var(--surface-2) 70%, transparent)}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:var(--surface-2)}.rowlink{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-weight:500}a.rowlink{text-decoration:none}.rowlink:hover,.rowlink:focus-visible{color:var(--brand);text-decoration:underline}.rowlink:focus-visible{outline:2px solid var(--brand-accent);outline-offset:1px}.cardid{align-items:center;gap:4px;display:inline-flex}.copybtn{font:inherit;font-size:var(--fs-xs);color:var(--muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;padding:2px 4px;line-height:1}.copybtn:hover,.copybtn:focus-visible{color:var(--brand);border-color:var(--border);background:var(--surface)}.copybtn:focus-visible{outline:2px solid var(--brand-accent);outline-offset:1px}.copybtn[data-copied]{color:var(--success)}tbody tr.disabled td{color:var(--muted)}.num-cell,td.num,th.num{font-family:var(--font-num);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}th.num,th.num-cell,th.mono{font-family:var(--font-ui);font-size:var(--fs-xs)}td.right.mono{font-family:var(--font-num);font-size:inherit;font-variant-numeric:tabular-nums}.num-cell.alarm{color:var(--danger)}td.row-menu-cell{vertical-align:top}td:has(>input.toggle){vertical-align:top}td>input.toggle{margin-top:1px}td.row-menu-cell .row-menu-btn{margin-top:-5px}.right{text-align:right}.dim{color:var(--muted)}.desc{color:var(--ink-2);font-size:var(--fs-xs);margin-top:2px;line-height:1.5}:lang(th) .desc{line-height:1.6}.sub2{color:var(--muted);font-size:var(--fs-xs);line-height:1.5}.tbl-wrap{overflow-x:auto}.tbl-wrap>table>thead th{z-index:1;background:var(--surface);box-shadow:inset 0 -1px 0 var(--border);border-bottom:0;position:sticky;top:0}.tbl-wrap.compact{max-width:720px}.share{justify-content:flex-end;align-items:center;gap:10px;display:inline-flex}.share>.bar{flex:0 0 120px;width:120px}.btn{font:inherit;font-size:var(--fs-sm);min-height:var(--control-h);cursor:pointer;border:1px solid var(--border-control);border-radius:var(--radius);background:var(--surface);color:var(--ink);white-space:nowrap;appearance:none;vertical-align:middle;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:500;line-height:1.2;text-decoration:none;transition:background-color .12s,border-color .12s,color .12s,box-shadow .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--ink-2)}.btn:active:not(:disabled){background:var(--surface-3)}.btn:focus-visible{box-shadow:var(--focus);border-color:var(--brand-accent);outline:none}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover:not(:disabled){background:var(--brand-hover);border-color:var(--brand-hover)}.btn.primary:active:not(:disabled){background:#3f3754}.btn.small{font-size:var(--fs-xs);min-height:var(--control-h-sm);padding:0 10px}.btn:disabled,.btn.primary:disabled,.btn.danger:disabled,.btn.danger-solid:disabled{background:var(--surface-3);border-color:var(--surface-3);color:#8b8997;cursor:not-allowed}.btn.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 55%, white);background:var(--surface)}.btn.danger:hover:not(:disabled){background:var(--danger-tint);border-color:var(--danger)}.btn.danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger-solid:hover:not(:disabled){background:#8f222c;border-color:#8f222c}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--danger-tint);color:var(--danger);border-color:#0000}.btn.link{color:var(--brand);text-underline-offset:2px;background:0 0;border:0;min-height:0;padding:2px 4px;font-weight:400;text-decoration:underline}.btn.link:hover:not(:disabled){color:var(--brand-hover);background:0 0}.btnrow{gap:var(--s-2);margin-top:var(--s-4);flex-wrap:wrap;align-items:center;display:flex}.segbar{background:var(--surface-3);border-radius:calc(var(--radius) + 2px);vertical-align:middle;gap:2px;padding:2px;display:inline-flex}.segbar button{font:inherit;font-size:var(--fs-xs);cursor:pointer;border-radius:var(--radius);min-height:26px;color:var(--ink-2);background:0 0;border:0;padding:0 12px;font-weight:500;transition:background-color .12s,color .12s}.segbar button:hover:not([aria-pressed=true]):not([aria-selected=true]):not(:disabled){color:var(--ink);background:#fff9}.segbar button[aria-pressed=true],.segbar button[aria-selected=true]{background:var(--surface);color:var(--brand);box-shadow:0 1px 2px #231f301f,0 0 0 1px #231f300a}.segbar button:focus-visible{box-shadow:var(--focus);outline:none}.tabs{margin:0 0 var(--s-5);gap:var(--s-1);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.tab{font:inherit;font-size:var(--fs-sm);cursor:pointer;color:var(--ink-2);white-space:nowrap;border-radius:var(--radius) var(--radius) 0 0;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 12px 9px;transition:color .12s,border-color .12s,background-color .12s}.tab:hover:not([aria-selected=true]){color:var(--ink);background:var(--surface-2);border-bottom-color:var(--border-control)}.tab[aria-selected=true]{color:var(--brand);border-bottom-color:var(--brand);font-weight:500}.tab:focus-visible{box-shadow:var(--focus);outline:none}.tab .count{border-radius:var(--radius-sm);font-size:11.5px;line-height:18px;font-family:var(--font-num);font-variant-numeric:tabular-nums;background:var(--surface-3);color:var(--ink-2);margin-left:6px;padding:0 6px;font-weight:500;display:inline-block}.tab[aria-selected=true] .count{background:var(--brand-tint);color:var(--brand)}.basetabs{gap:var(--s-1);border-bottom:1px solid var(--border);margin-bottom:var(--s-4)}.basetabs .tab{color:var(--ink-2);background:0 0;border:0;border-bottom:3px solid #0000;margin-bottom:-1px;padding:9px 16px 10px;font-size:15px;text-decoration:none}.basetabs .tab:hover:not([aria-selected=true]){background:var(--surface-2);border-bottom-color:var(--border-control);color:var(--ink);text-decoration:none}.basetabs .tab[aria-selected=true]{color:var(--brand);border-bottom-color:var(--brand);background:0 0;font-weight:500}.field{font-size:var(--fs-xs);color:var(--muted);flex-direction:column;gap:5px;display:flex}.field.wide{grid-column:1/-1}.field>label{font-size:var(--fs-xs);color:var(--ink-2);font-weight:500}.field-head{align-items:center;gap:4px;display:inline-flex}.field-head>label{font-size:var(--fs-xs);color:var(--ink-2);font-weight:500}.req{color:var(--danger);margin-left:-1px}.field-error{font-size:var(--fs-xs);color:var(--danger);align-items:flex-start;gap:5px;line-height:1.5;display:flex}.field-error:before{content:"";width:14px;height:14px;-webkit-mask:var(--i-error) center / contain no-repeat;-webkit-mask:var(--i-error) center / contain no-repeat;mask:var(--i-error) center / contain no-repeat;background:currentColor;flex:none;margin-top:2px}.checkset.invalid{border-color:var(--danger)}.checkset>.field-error{margin-top:4px}input:not([type]),input[type=text],input[type=number],input[type=password],input[type=search],input[type=email],input[type=tel],input[type=url],input[type=date],input[type=datetime-local],input[type=time],input[type=month],select,textarea{font:inherit;font-size:var(--fs-sm);min-height:var(--control-h);border:1px solid var(--border-control);border-radius:var(--radius);background:var(--surface);color:var(--ink);text-transform:none;letter-spacing:normal;width:100%;min-width:0;padding:5px 10px;font-weight:400;line-height:1.4;transition:border-color .12s,box-shadow .12s}select:where(:not([multiple]):not([size])){appearance:none;cursor:pointer;background:var(--surface) var(--i-chevron) no-repeat right 9px center / 14px 14px;padding-right:30px}:is(input,select,textarea):hover:not(:disabled):not([readonly]):not(:focus){border-color:var(--ink-2)}input:focus-visible,select:focus-visible,textarea:focus-visible,input:focus,select:focus,textarea:focus{border-color:var(--brand-accent);box-shadow:var(--focus);outline:none}:is(input,select,textarea):disabled{background-color:var(--surface-2);color:var(--muted);border-color:var(--border);cursor:not-allowed}textarea{resize:vertical;min-height:58px;padding-top:7px}input[readonly]{background:var(--surface-2);color:var(--ink-2);border-color:var(--border)}input.num-input{font-family:var(--font-num);font-variant-numeric:tabular-nums}input.mono-input{font-family:var(--font-mono)}input.invalid,select.invalid,textarea.invalid{border-color:var(--danger);background-color:var(--danger-tint)}input.invalid:focus,select.invalid:focus,textarea.invalid:focus{box-shadow:0 0 0 3px #a92a3538}::placeholder{color:var(--muted);opacity:1}.check{font-size:var(--fs-sm);color:var(--ink);cursor:pointer;align-items:center;gap:8px;display:inline-flex}.check input{width:16px;height:16px;accent-color:var(--brand);margin:0}.checkset{border:1px solid var(--border);border-radius:var(--radius);margin:0;padding:10px 14px 12px}.checkset legend{font-size:var(--fs-xs);color:var(--ink-2);padding:0 5px;font-weight:500}.checkset .check{margin-bottom:6px;display:flex}input.toggle{appearance:none;cursor:pointer;vertical-align:middle;background:var(--border-control);border-radius:10px;flex:none;width:34px;height:20px;margin:0;transition:background-color .15s;position:relative}input.toggle:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #231f304d}input.toggle:hover:not(:disabled){background:var(--ink-2)}input.toggle:checked{background:var(--brand)}input.toggle:checked:hover:not(:disabled){background:var(--brand-hover)}input.toggle:checked:after{transform:translate(14px)}input.toggle:focus-visible{box-shadow:var(--focus);outline:none}input.toggle:disabled{opacity:.5;cursor:not-allowed}.form-grid{gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.form-grid .btn.small{min-height:var(--control-h);padding:0 10px}.barrow{align-items:center;gap:14px;margin-bottom:10px;display:flex}.barrow:last-of-type{margin-bottom:0}.barlbl{flex:0 0 132px;width:132px}.barlbl.wide{font-size:var(--fs-xs);color:var(--ink-2)}.bar{background:var(--surface-3);border-radius:3px;flex:auto;max-width:520px;height:6px;overflow:hidden}.bar>i{background:var(--brand-accent);border-radius:3px;height:100%;display:block}.barval{text-align:left;width:116px;font-size:var(--fs-sm);font-family:var(--font-num);font-variant-numeric:tabular-nums;flex:0 0 116px}.twist{border-left:4px solid var(--brand-accent);border-top:3.5px solid #0000;border-bottom:3.5px solid #0000;flex:none;width:0;height:0;transform:rotate(90deg)}.verline{font-size:var(--fs-sm);margin-bottom:var(--s-4);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 0 12px;display:flex}.tsec-meta{font-size:var(--fs-xs);color:var(--muted)}.more{display:inline-flex;position:relative}.btn.more-btn{letter-spacing:1px;min-width:36px;color:var(--ink-2);padding:0 8px;font-size:11px;line-height:1}.more-menu,.usermenu-pop{font-size:var(--fs-sm)}.more-menu{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:200px;box-shadow:var(--shadow-1);flex-direction:column;padding:6px;animation:.12s ease-out pop-in;display:flex;position:absolute;top:calc(100% + 6px);right:0}.more-menu [role=menuitem]{text-align:left;border-radius:var(--radius);min-height:34px;font:inherit;font-size:var(--fs-sm);color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0 10px}.more-menu [role=menuitem]:hover,.more-menu [role=menuitem]:focus-visible{background:var(--brand-tint);color:var(--brand);outline:none}.more-menu [role=menuitem]:disabled{color:#8b8997;cursor:default;background:0 0}.more-menu [role=separator]{border-top:1px solid var(--border-soft);height:0;margin:6px -6px}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.row-menu-btn{width:30px;height:30px;color:var(--ink-2);font:inherit;letter-spacing:1px;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;padding:0;font-size:11px;line-height:1;transition:background-color .12s,border-color .12s}.row-menu-btn:hover,.row-menu-btn[aria-expanded=true]{background:var(--surface-3);border-color:var(--border);color:var(--brand)}.row-menu-btn:focus-visible{box-shadow:var(--focus);outline:none}td.row-menu-cell{text-align:right;width:44px;padding-right:4px}.ac-row{align-items:baseline;gap:8px;padding:4px 0;display:flex}.ac-row:first-child{padding-top:0}.ac-row:last-child{padding-bottom:0}.ac-row+.ac-row{border-top:1px solid var(--border-soft)}.ac-row .chip{flex:none}.ac-cond{overflow-wrap:anywhere;min-width:0}.clamp-2{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}table.fixed{table-layout:fixed}table.fixed td{overflow-wrap:anywhere}.branch-note{font-size:var(--fs-xs);color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 10px;display:flex}.branch-note b{color:var(--brand)}.stephead{margin:var(--s-6) 0 10px;border-bottom:1px solid var(--border-soft);flex-wrap:wrap;align-items:center;gap:10px;padding-bottom:6px;display:flex}.stephead:first-of-type{margin-top:4px}.stepno{background:var(--brand);color:#fff;width:22px;height:22px;font-size:var(--fs-xs);font-weight:500;font-family:var(--font-num);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;display:grid}.stephead h4{font-size:var(--fs-md);margin:0;font-weight:500}.stephint{font-size:var(--fs-xs);color:var(--muted)}h4.sec{margin:var(--s-5) 0 var(--s-2);font-size:var(--fs-sm);color:var(--ink);text-transform:none;letter-spacing:0;border-bottom:1px solid var(--border-soft);padding-bottom:6px;font-weight:500}.ruletop{grid-template-columns:1fr 150px;align-items:end;gap:14px;display:grid}.ruletop .bigname{min-height:36px;padding:7px 10px;font-size:15px}@media (width<=620px){.ruletop{grid-template-columns:1fr}}.chain{background:var(--surface-2);border:1px solid var(--border-soft);border-radius:var(--radius);flex-wrap:wrap;align-items:flex-end;gap:8px 6px;padding:12px 12px 10px;display:flex}.chainbreak{flex-basis:100%;height:0}.cl{align-items:flex-end;gap:6px;display:inline-flex}.cl.tail{margin-left:4px}.pillwrap{flex-direction:column;gap:3px;display:inline-flex}.pillcap{font-size:var(--fs-xs);color:var(--muted);padding-left:1px;line-height:1.35}:lang(th) .pillcap{line-height:1.5}.pill{font:inherit;font-size:var(--fs-sm);border-radius:var(--radius);white-space:nowrap;box-sizing:border-box;min-height:var(--control-h);border:1px solid #0000;width:auto;padding:5px 10px;line-height:1.4}.pill.field{color:var(--brand);background:#ebe9f5;border-color:#d9d5e8;max-width:300px;font-weight:500;display:block}.pill.op{background:var(--surface);color:var(--ink);border-color:var(--border-control)}.pill.val{background:var(--surface);border-color:var(--border-control);align-items:stretch;padding:0;display:inline-flex;overflow:hidden}.pill.val .f-val{font:inherit;font-size:var(--fs-sm);color:var(--ink);min-width:0;min-height:0;box-shadow:none;background:0 0;border:0;border-radius:0;padding:5px 9px}.pill.val input.f-val{width:118px}.pill.val select.f-val{background:transparent var(--i-chevron) no-repeat right 6px center / 12px 12px;width:auto;padding-right:26px}.pill.val .f-unit-sel{font:inherit;font-size:var(--fs-xs);border:0;border-left:1px solid var(--border);background-color:var(--surface-3);color:var(--ink-2);width:auto;min-height:0;box-shadow:none;border-radius:0;padding:0 24px 0 8px}select.pill{cursor:pointer}select.pill.field{background:#ebe9f5 var(--i-chevron) no-repeat right 8px center / 14px 14px;padding-right:28px}select.pill.op{background:var(--surface) var(--i-chevron) no-repeat right 8px center / 14px 14px;padding-right:28px}select.pill:focus-visible,.pill.val:focus-within{box-shadow:var(--focus);border-color:var(--brand-accent);outline:none}.pill.logic{background:var(--brand) var(--i-chevron-white) no-repeat right 7px center / 12px 12px;color:#fff;letter-spacing:0;text-align:center;border-color:var(--brand);align-self:flex-end;min-width:60px;margin-bottom:0;padding-right:24px;font-weight:500}.pill.lead{color:var(--brand);background:0 0;padding-left:0;padding-right:2px;font-weight:500}.pill.word{color:var(--ink-2);background:0 0;padding:5px 2px}.pill.word.dim{color:var(--muted);font-style:normal}.pill.arrow{color:var(--brand-accent);background:0 0;padding:4px 4px 6px;font-size:18px;line-height:1}.pill.add{background:var(--surface);border:1px dashed var(--border-control);color:var(--ink-2);cursor:pointer;font-weight:500}.pill.add:hover{color:var(--brand);border-color:var(--brand-accent);background:var(--brand-tint)}.pill.action{background:var(--brand-accent);color:#fff;border-color:var(--brand-accent);font-weight:500}.chain .rowdel{align-self:flex-end;margin-bottom:2px}.rowdel{padding:2px 7px;font-size:15px;line-height:1}@media (width<=720px){.cl{flex-wrap:wrap}.pill.field{max-width:100%}}.clause-src{flex-wrap:wrap;flex:none;align-items:center;gap:4px;display:inline-flex}.chain .clause-src{vertical-align:baseline;gap:3px;margin-left:4px}.chain .src-dot{padding:0 5px;font-size:11px;line-height:1.5}.src-dot{font:inherit;letter-spacing:0;border-radius:var(--radius-sm);white-space:nowrap;cursor:pointer;background:var(--surface-3);color:var(--muted);border:1px solid #0000;padding:1px 7px;font-size:11px;font-weight:500}.src-dot[aria-pressed=true]{background:var(--success-tint);color:var(--success);border-color:var(--success-tint)}.src-dot[aria-pressed=false]:hover:not(:disabled){background:var(--border);color:var(--ink-2)}.src-dot[aria-pressed=true]:hover:not(:disabled){filter:brightness(.96)}.branches{border-top:1px solid var(--border)}.branch{border-bottom:1px solid var(--border);border-radius:0;grid-template-columns:160px 1fr auto;align-items:stretch;display:grid}.branch-cell{background:var(--surface-2);flex-wrap:wrap;align-content:flex-start;align-items:flex-start;gap:10px;padding:12px 10px;display:flex}.branch-cell>select.branch-act{flex:100%}.branch .chain{background:0 0;border:0}.branch-del{align-items:flex-start;padding:12px 6px 0;display:flex}select.branch-act{border-radius:var(--radius);font-weight:500;font-size:var(--fs-xs);letter-spacing:0;min-height:var(--control-h);cursor:pointer;background:var(--brand) var(--i-chevron-white) no-repeat right 5px center / 12px 12px;color:#fff;border:0;padding:6px 20px 6px 8px}select.branch-act.ok{background-color:var(--success)}select.branch-act.warn{background-color:var(--warn)}select.branch-act.bad{background-color:var(--danger)}select.branch-act.info{background-color:var(--brand)}select.branch-act.mute{background-color:var(--ink-2)}select.branch-act option{color:var(--ink);background:#fff}select.branch-act:disabled{opacity:1;cursor:not-allowed;color:#fff;-webkit-text-fill-color:#fff}.pill.add.branch-add{margin-top:10px}.branch-thr{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px 0;display:flex}.branch-thr input{width:96px}.branch-count{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;padding:10px 12px 0;display:grid}.branch-win{gap:6px;padding:6px 12px 0}.window-input{gap:4px;min-width:0;display:flex}.window-input select{flex:auto;min-width:0}.window-input select.window-num{flex:0 0 5.5em}.window-notes{flex-wrap:wrap;align-items:center;display:flex}.long-window-notes{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.measure{padding-bottom:8px}.measure-join{border-top:1px solid var(--border-soft);padding:6px 12px 0}.pill.add.measure-add{margin:0 12px 10px}.chain.readonly select:disabled{opacity:1;cursor:not-allowed;-webkit-text-fill-color:currentColor;border-style:dashed}.branch.invalid{box-shadow:inset 3px 0 0 var(--danger)}.branch-problem{grid-column:1/-1;margin:0}.branch-problem ul{margin:0;padding:0;list-style:none}.chain.readonly .src-dot:disabled{cursor:not-allowed}.idr{container:idr/inline-size}.idr-grid{border-radius:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;display:grid}.idr-col{min-width:0;max-height:70vh;overflow:auto}.idr-col+.idr-col{border-left:1px solid var(--border);padding-left:20px}.idr-json{flex:auto}.idr-json textarea{flex:auto;min-height:360px}@container idr (width<=860px){.idr-grid{grid-template-columns:minmax(0,1fr)}.idr-col+.idr-col{border-left:0;border-top:1px solid var(--border);padding-top:14px;padding-left:0}}@media (width<=720px){.branch{grid-template-columns:1fr auto}.branch-cell{grid-column:1/-1}}.src-result-value{font-size:var(--fs-md);color:var(--brand);font-weight:500}.why-missing{font-size:var(--fs-xs);background:var(--danger-tint);color:var(--danger);border-radius:var(--radius);margin:10px 0 0;padding:8px 12px;line-height:1.6}.why-missing b{color:var(--danger);font-weight:500}.check-failed,.why-missing code{color:var(--danger)}.note{color:var(--muted);font-size:var(--fs-xs);margin:10px 0 0;line-height:1.6}.note b{color:var(--ink-2)}.hl{background:var(--warn-tint);color:var(--warn);border-radius:var(--radius-sm);padding:1px 5px}.rule-expr{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-2)}.fieldname{white-space:nowrap}.statement{font-size:var(--fs-md);color:var(--ink);margin:0 0 12px}.statement b{color:var(--brand)}.tip{vertical-align:middle;line-height:1;display:inline-block;position:relative}.tipbtn{border:1px solid var(--border-control);background:var(--surface);width:16px;height:16px;color:var(--muted);font-family:var(--font-ui);cursor:help;vertical-align:middle;border-radius:50%;place-items:center;padding:0;font-size:10px;font-weight:500;line-height:1;transition:color .12s,border-color .12s,background-color .12s;display:inline-grid}.tipbtn:hover,.tip:focus-within .tipbtn{border-color:var(--brand);color:#fff;background:var(--brand)}.tipbtn:focus-visible{box-shadow:var(--focus);outline:none}.tipbody{z-index:60;background:var(--ink);color:#fff;border-radius:var(--radius-lg);width:max-content;max-width:min(420px,78vw);font-family:var(--font-ui);font-size:var(--fs-xs);text-align:left;box-shadow:var(--shadow-2);white-space:normal;letter-spacing:0;padding:10px 12px;font-weight:400;line-height:1.6;display:none;position:absolute;top:calc(100% + 8px);left:0}:lang(th) .tipbody{line-height:1.7}.tip:hover .tipbody,.tip:focus-within .tipbody{animation:.12s ease-out pop-in;display:block}.tipbody b{color:#fff;font-weight:500}.tipbody code{color:#dcd8ea}.tipbody .hl{color:#f6e6c6;background:#55535c}.tip.tip-right .tipbody{left:auto;right:0}dialog.dlg-modal{width:100%;max-width:none;height:100%;max-height:none;color:var(--ink);background:0 0;border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}dialog.dlg-modal::backdrop{background:#231f3073}.dlg-scroll{overscroll-behavior:contain;justify-content:center;align-items:flex-start;padding:5vh 16px;display:flex;position:absolute;inset:0;overflow-y:auto}.dlg-layer{width:0;height:0;position:absolute;top:0;left:0;overflow:visible}.dlg{background:var(--surface);color:var(--ink);border-radius:var(--radius-lg);width:min(960px,95vw);max-height:90vh;box-shadow:var(--shadow-3);border:0;flex-direction:column;padding:0;animation:.16s ease-out dlg-in;display:flex;overflow:hidden}@keyframes dlg-in{0%{opacity:0;transform:translateY(8px)scale(.99)}to{opacity:1;transform:none}}.dlg.narrow{width:min(560px,95vw)}.dlg-head{background:var(--surface);color:var(--ink);border-bottom:1px solid var(--border);border-top:3px solid var(--brand);flex:none;align-items:center;gap:10px;padding:14px 14px 14px 22px;display:flex}.dlg-head h2,.dlg-head h3{color:var(--ink);flex:1;margin:0;font-size:17px;font-weight:500}.dlg-head .btn.dlg-close{width:32px;min-width:32px;min-height:32px;color:var(--muted);background:0 0;border-color:#0000;padding:0;font-size:15px;font-weight:400}.dlg-head .btn.dlg-close:hover:not(:disabled){background:var(--surface-3);color:var(--ink)}.dlg-head .muted,.dlg-head .small{color:var(--muted)}.dlg-body{padding:var(--s-5) 22px;flex:auto;overflow-y:auto}.dlg-foot{border-top:1px solid var(--border);gap:var(--s-2);background:var(--surface-2);flex-wrap:wrap;flex:none;align-items:center;padding:12px 22px;display:flex}.dlg-foot .note{min-width:200px;margin:0}.dlg-lead{color:var(--ink-2);font-size:var(--fs-sm);margin:0 0 14px}.toast{left:50%;bottom:calc(28px + env(safe-area-inset-bottom,0px));background:var(--ink);color:#fff;border-radius:var(--radius-lg);font-size:var(--fs-sm);z-index:80;max-width:min(620px,92vw);box-shadow:var(--shadow-2);padding:11px 18px 11px 44px;line-height:1.5;animation:.18s ease-out toast-in;display:block;position:fixed;transform:translate(-50%)}.toast:before{content:"";width:18px;height:18px;-webkit-mask:var(--i-ok) center / contain no-repeat;-webkit-mask:var(--i-ok) center / contain no-repeat;mask:var(--i-ok) center / contain no-repeat;background:#7fd1a8;margin-top:-9px;position:absolute;top:50%;left:16px}.toast.error{background:var(--danger)}.toast.error:before{-webkit-mask-image:var(--i-error);-webkit-mask-image:var(--i-error);mask-image:var(--i-error);background:#fff}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.viewtabs{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.viewhint{font-size:var(--fs-xs);color:var(--muted)}.blocks-view{flex-direction:column;gap:8px;display:flex}.blocks-view[hidden]{display:none}.blockly-host{border:1px solid var(--border);border-radius:var(--radius);background:#fff;width:100%;height:440px;min-height:260px;position:relative;overflow:hidden}.blocklyToolboxDiv{font-family:var(--font-ui);font-size:var(--fs-xs);border-right:1px solid var(--border)}.blocklyTreeRow{border-radius:0!important}.blocklyTreeSelected{background:var(--brand)!important}.blocklyTreeSelected .blocklyTreeLabel{color:#fff!important}.blocklyFlyoutLabelText{font-family:var(--font-ui);fill:var(--muted)!important}.loosewarn{font-size:var(--fs-xs);background:var(--warn-tint);color:var(--warn);border-radius:var(--radius);margin:8px 0 0;padding:8px 12px}.banner{font-size:var(--fs-sm);background:var(--surface-2);color:var(--ink-2);border-radius:var(--radius);padding:10px 14px 10px 40px;line-height:1.55;position:relative}:lang(th) .banner{line-height:1.65}.banner:before{content:"";width:16px;height:16px;-webkit-mask:var(--i-info) center / contain no-repeat;-webkit-mask:var(--i-info) center / contain no-repeat;mask:var(--i-info) center / contain no-repeat;background:currentColor;position:absolute;top:12px;left:14px}.banner.small{font-size:var(--fs-xs);padding-top:8px;padding-bottom:8px}.banner.small:before{width:14px;height:14px;top:10px}.banner.warn{background:var(--warn-tint);color:var(--warn)}.banner.warn:before{-webkit-mask-image:var(--i-warn);-webkit-mask-image:var(--i-warn);mask-image:var(--i-warn)}.banner.error{background:var(--danger-tint);color:var(--danger)}.banner.error:before{-webkit-mask-image:var(--i-error);-webkit-mask-image:var(--i-error);mask-image:var(--i-error)}.banner.ok{background:var(--success-tint);color:var(--success)}.banner.ok:before{-webkit-mask-image:var(--i-ok);-webkit-mask-image:var(--i-ok);mask-image:var(--i-ok)}.banner b,.banner strong{font-weight:500}.banner ul{margin:6px 0 0;padding-left:18px}.banner li{margin:2px 0}.banner code{color:inherit}.num{font-variant-numeric:tabular-nums;font-family:var(--font-num)}.muted{color:var(--muted)}.small{font-size:var(--fs-xs)}.nowrap{white-space:nowrap}.row{align-items:center;gap:8px;display:flex}.row-wrap{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stack{gap:var(--s-3);flex-direction:column;display:flex}.empty{padding:var(--s-8) var(--s-4);color:var(--muted);text-align:center;font-size:var(--fs-sm);background:var(--surface-2);border-radius:var(--radius);margin-top:var(--s-3)}.empty.small{padding:var(--s-2) 0;text-align:left;font-size:var(--fs-xs);background:0 0;margin-top:0}.card-head+.empty,.tbl-wrap+.empty{margin-top:var(--s-4)}.kv{gap:0 var(--s-6);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.kv-row{border-bottom:1px solid var(--border-soft);font-size:var(--fs-sm);grid-template-columns:minmax(96px,175px) minmax(0,1fr);gap:10px;padding:6px 0;display:grid}.kv .kv-row{grid-template-columns:minmax(96px,40%) minmax(0,1fr)}.kv-row .k{color:var(--muted);font-size:var(--fs-xs);padding-top:1px}.kv-row .v{overflow-wrap:break-word;min-width:0}.kv-row .v.clip{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.kv-row .v.null{color:var(--muted);font-style:italic}.case-grid{grid-template-columns:minmax(0,1fr);gap:28px;display:grid}.case-main,.case-side{min-width:0}@media (width>=1280px){.case-grid{grid-template-columns:minmax(0,1fr) 360px;align-items:start}.case-side{max-height:calc(100vh - 24px);position:sticky;top:12px;overflow-y:auto}.case-side .card-head h2{font-size:15px}}.case-moves{gap:6px;padding:10px 0 0}.note-row{grid-template-columns:220px minmax(0,1fr) auto}@media (width>=1280px){.case-side .note-row{grid-template-columns:minmax(0,1fr)}.case-side .form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.histlist{margin:0;padding:0;list-style:none}.histlist>li{border-bottom:1px solid var(--border-soft);font-size:var(--fs-sm);padding:8px 0}.histlist>li:last-child{border-bottom:0}.histnote{white-space:pre-wrap;margin-top:2px}.skel{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--surface-3) 0%, var(--surface-2) 50%, var(--surface-3) 100%) 0 0 / 200% 100%;min-height:12px;animation:1.4s ease-in-out infinite skel-shimmer;display:block}.skel-head{width:40%;height:18px;margin:4px 0 12px}.skel-k{width:60%}.skel-v{width:80%}.skel-block{height:120px}@keyframes skel-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.skel{animation:none}}details>summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--brand);font-weight:500;font-size:var(--fs-sm);padding:4px 0}.preview{font-family:var(--font-mono);font-size:var(--fs-xs);background:var(--surface-2);border:1px solid var(--border-soft);border-radius:var(--radius);overflow-wrap:anywhere;color:var(--brand);padding:9px 12px}pre.json{background:var(--surface-2);border:1px solid var(--border-soft);border-radius:var(--radius);font-family:var(--font-mono);font-size:var(--fs-xs);max-height:60vh;margin:0;padding:12px 14px;line-height:1.55;overflow:auto}.diff-added{color:var(--success)}.diff-removed{color:var(--danger)}.diff-changed{color:var(--brand)}.diff-before{color:var(--danger);text-decoration:line-through}.diff-after{color:var(--success)}.login-screen{background:var(--surface-2);flex-direction:column;min-height:100%;display:flex}.login-body{flex:1;justify-content:center;align-items:flex-start;padding:12vh 16px 24px;display:flex}.login-card{background:var(--surface);border-radius:var(--radius-lg);border-top:4px solid var(--brand);width:100%;max-width:400px;box-shadow:var(--shadow-1);padding:32px 32px 28px}.login-card h1{text-wrap:balance;margin-bottom:var(--s-6);color:var(--ink);font-size:20px;font-weight:500}.login-card .field{margin-bottom:var(--s-4)}.login-card input{min-height:40px;font-size:var(--fs-md)}.login-card .btn{width:100%;min-height:40px;font-size:var(--fs-md);margin-top:var(--s-2);justify-content:center}@media (width<=1400px){.g2.aside.aside-wide{grid-template-columns:minmax(0,1fr)}}@media (width<=1040px){.g4{grid-template-columns:repeat(2,1fr)}.kpi:nth-child(3){border-left:0;padding-left:0}.kpi:nth-child(n+3){border-top:1px solid var(--border-soft)}.g2.aside{grid-template-columns:minmax(0,1fr)}}@media (width<=820px){.app{background:0 0;grid-template-columns:1fr}.side{background:var(--surface-2);border-right:0;border-bottom:1px solid var(--border);max-height:none;position:static}.navlist{flex-flow:wrap;align-items:center;padding:6px 8px}.navbtn{width:auto;padding:6px 11px}.navgroup{display:contents}.navhead{display:none}.navgroup .navbtn{padding-left:11px}.navgroup+.navgroup{border-top:0;margin-top:0;padding-top:0}.g4,.g3,.g2{grid-template-columns:1fr}.kpi{border-left:0;border-top:1px solid var(--border-soft);padding-left:0}.kpi:first-child{border-top:0}.content{padding:18px 16px 56px}.masthead{flex-wrap:wrap;min-height:0;padding:10px 16px}.masthead-title{border-left:0;padding-left:0}.barlbl{flex:0 0 112px;width:112px}.barval{flex:0 0 92px;width:92px}.tipbody{top:auto;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));width:auto;max-width:none;font-size:var(--fs-sm);position:fixed}}@media (width>=1500px){.g2{gap:40px}.kpi{padding-inline:28px}.kpi:first-child{padding-left:0}}a.chip{text-decoration:none}a.chip:hover{text-decoration:underline}.neverhit{border-top:1px solid var(--border-soft);margin-top:2px;padding-top:12px}.trendfig{min-width:0}.trendhead{align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.trendhead .lbl{color:var(--muted);font-size:var(--fs-xs);font-weight:500}.trendhead .val{font-family:var(--font-num);color:var(--brand);font-variant-numeric:tabular-nums;font-size:20px;font-weight:300}.spark{width:100%;height:56px;display:block}.trend-empty{min-height:56px;font-size:var(--fs-xs);border-bottom:1px solid var(--border);text-align:left;background:0 0;margin-top:0;padding:18px 0}.spark-base{stroke:var(--border);stroke-width:1px}.spark-line{fill:none;stroke:var(--brand-accent);stroke-width:1.5px;stroke-linejoin:round;stroke-linecap:round}.spark-dot{fill:none;stroke:var(--brand-accent);stroke-width:5px;stroke-linecap:round}.print-only{display:none}@media print{.masthead,.side,.tabs,.no-print,.btn,.tip,.toast{display:none!important}.print-only{margin:0 0 12px;font-size:12px;display:block}.app{background:0 0;display:block}.content{padding:0}.card{box-shadow:none;break-inside:auto}.tbl-wrap{max-height:none;overflow:visible}}.stack-chips{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.wh-bar{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}textarea.mono-input{font-family:var(--font-mono);font-size:var(--fs-xs)}.wh-pre{border-radius:var(--radius);max-height:240px;font-family:var(--font-mono);font-size:var(--fs-xs);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-3);color:var(--ink);margin:0;padding:9px 11px;overflow:auto}.expr-conditions{margin-top:8px}.expr-condition{align-items:center;gap:6px}.expr-operand,.expr-calc,.expr-arg{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.case-ids a{white-space:nowrap}.case-moves{padding-bottom:var(--s-4)}.note-quote{margin:var(--s-2) 0 0;padding:var(--s-2) var(--s-3);border-left:3px solid var(--border-soft);white-space:pre-wrap;color:var(--ink-2)}.branch{grid-template-columns:160px minmax(0,1fr) auto}.cl{flex-wrap:wrap;min-width:0;max-width:100%}.pill.val .set-empty{white-space:normal;padding:var(--s-1) var(--s-2);max-width:220px;line-height:1.3}.rule-table td{vertical-align:top}.one-line{white-space:nowrap;text-overflow:ellipsis;max-width:200px;overflow:hidden}.problem-place{font-weight:500}.checkset>legend{align-items:center;gap:4px;padding:0 6px;display:inline-flex}textarea[readonly]{background:var(--surface-2);color:var(--ink-2);border-color:var(--border)}.stats-split{gap:var(--s-6,32px);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.stats-split>.stats-aside>h3{margin:0 0 var(--s-3);font-size:var(--fs-sm);color:var(--ink-2);font-weight:600}@media (width<=1040px){.stats-split{grid-template-columns:minmax(0,1fr)}}.feeder-table th,.feeder-table td{padding-right:var(--s-2)}.feeder-table th:last-child,.feeder-table td:last-child{padding-right:0}.feeder-table th{white-space:normal;vertical-align:bottom}.feeder-table td.feeder-desc{min-width:210px}.field-meanings,.offtable-list{gap:var(--s-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.offtable h3{margin:0 0 var(--s-2)}:root{--code-bg:#1f1d27;--code-ink:#e9e7f1;--code-muted:#8d8a9c;--code-rule:#34313f;--method-post:var(--success);--method-post-tint:var(--success-tint);--method-get:var(--info);--method-get-tint:var(--info-tint)}.apiref .tabs .tab{align-items:center;gap:var(--s-2);display:inline-flex}.apiref-method{border-radius:var(--radius-sm);text-align:center;min-width:42px;font-family:var(--font-mono);padding:0 6px;font-size:11px;font-weight:600;line-height:18px;display:inline-block}.apiref-method.post{background:var(--method-post-tint);color:var(--method-post)}.apiref-method.get{background:var(--method-get-tint);color:var(--method-get)}.apiref-intro{align-items:baseline;gap:var(--s-2) var(--s-3);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.apiref-intro h2{font-size:var(--fs-lg);font-weight:500}.apiref-intro p{color:var(--ink-2);font-size:var(--fs-sm);flex-basis:100%;order:3;max-width:90ch;margin:0}.apiref-grid{gap:var(--s-6);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;display:grid}@media (width<=1100px){.apiref-grid{grid-template-columns:minmax(0,1fr)}}.apiref-side{top:var(--s-4);gap:var(--s-6);min-width:0;max-height:calc(100vh - var(--s-8));overscroll-behavior:contain;flex-direction:column;padding-right:2px;display:flex;position:sticky;overflow-y:auto}@media (width<=1100px){.apiref-side{max-height:none;position:static;overflow:visible}}.apiref-block{border-top:1px solid var(--ink);padding-top:var(--s-3)}.apiref-block+.apiref-block{margin-top:var(--s-6)}.apiref-side .apiref-block+.apiref-block{margin-top:0}.apiref-block h3{font-size:var(--fs-md);margin-bottom:var(--s-3);font-weight:500}.apiref-sub{font-size:var(--fs-sm);color:var(--ink);margin:var(--s-5) 0 var(--s-2);font-weight:500}.apiref-label{font-size:var(--fs-xs);color:var(--muted);margin-bottom:var(--s-1)}.apiref-note{margin:var(--s-2) 0}.apiref-url{align-items:center;gap:var(--s-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);min-width:0;padding:6px 8px;display:flex}.apiref-url code{min-width:0;font-family:var(--font-mono);font-size:var(--fs-xs);overflow-wrap:anywhere;flex:1}.apiref-params{border-top:1px solid var(--border-soft)}.apiref-param{gap:var(--s-3);padding:var(--s-2) 0;border-bottom:1px solid var(--border-soft);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.apiref-param-name{flex-wrap:wrap;align-items:center;gap:4px 6px;min-width:0;display:flex}.apiref-param-name>.small,.apiref-sends{flex-basis:100%}.apiref-param-name code{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink);overflow-wrap:anywhere;font-weight:500}.apiref-param-name label{cursor:pointer}.apiref-sends{flex-wrap:wrap;gap:4px;display:flex}.apiref-sends .chip{padding:0 5px;font-size:11px}.apiref-type{font-family:var(--font-mono);font-size:11px}.apiref-param-value{align-items:center;gap:var(--s-1);flex-wrap:wrap;min-width:0;display:flex}.apiref-param-value input{min-width:0;font-family:var(--font-mono);font-size:var(--fs-xs);flex:140px}.apiref-static{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-2);overflow-wrap:anywhere;flex:1}.btn.apiref-copy{min-width:0;padding:0 7px}.apiref-dl{margin:0}.apiref-dl>div{gap:var(--s-3);padding:var(--s-2) 0;border-bottom:1px solid var(--border-soft);grid-template-columns:minmax(150px,.8fr) minmax(0,1.4fr);display:grid}.apiref-dl dt{flex-wrap:wrap;align-items:center;gap:4px;margin:0;display:flex}.apiref-dl dt code{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500}.apiref-dl dd{font-size:var(--fs-sm);color:var(--ink-2);margin:0}.apiref-code-head{align-items:center;gap:var(--s-2);margin-bottom:var(--s-2);display:flex}.apiref-code-head h3{margin:0}.apiref-langs{margin-bottom:var(--s-2);flex-wrap:wrap}.codeblock{counter-reset:codeline;padding:var(--s-3) 0;background:var(--code-bg);max-height:460px;color:var(--code-ink);border-radius:var(--radius);font-family:var(--font-mono);font-size:var(--fs-xs);tab-size:2;margin:0;line-height:1.6;overflow:auto}.codeblock:focus-visible{box-shadow:var(--focus);outline:none}.codeblock code{font:inherit;min-width:max-content;display:block}.codeline{padding:0 var(--s-3) 0 0;white-space:pre;display:block}.codeline:before{counter-increment:codeline;content:counter(codeline);width:3.2em;margin-right:var(--s-3);padding-right:var(--s-2);text-align:right;color:var(--code-muted);border-right:1px solid var(--code-rule);-webkit-user-select:none;user-select:none;display:inline-block}.apiref-try{gap:var(--s-3);flex-direction:column;display:flex}.apiref-try h3{margin-bottom:0}.apiref-try .field{flex-direction:column;gap:4px;display:flex}.apiref-try .field label{font-size:var(--fs-sm);font-weight:500}.apiref-result{gap:var(--s-2);flex-direction:column;display:flex}.apiref-result .codeblock{max-height:360px}
