@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/InterVariable.woff2) format("woff2")}@font-face{font-family:Inter Display;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/InterVariable.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/JetBrainsMono.woff2) format("woff2")}:root{font-optical-sizing:auto;--brand-h:265;--brand-c:0.17;--brand-l:0.58;--brand-50:oklch(0.975 0.015 var(--brand-h));--brand-100:oklch(0.95 0.035 var(--brand-h));--brand-200:oklch(0.90 0.065 var(--brand-h));--brand-300:oklch(0.82 0.100 var(--brand-h));--brand-400:oklch(0.72 0.140 var(--brand-h));--brand-500:oklch(var(--brand-l) var(--brand-c) var(--brand-h));--brand-600:oklch(0.50 var(--brand-c) var(--brand-h));--brand-700:oklch(0.42 0.15 var(--brand-h));--brand-800:oklch(0.32 0.11 var(--brand-h));--brand-900:oklch(0.22 0.07 var(--brand-h));--grad-start:oklch(0.70 0.15 var(--brand-h));--grad-mid:oklch(0.68 0.17 calc(var(--brand-h) + 20));--grad-end:oklch(0.72 0.14 calc(var(--brand-h) - 35));--brand-gradient:linear-gradient(135deg,var(--grad-start) 0%,var(--grad-mid) 50%,var(--grad-end) 100%);--brand-gradient-soft:linear-gradient(135deg,oklch(0.97 0.02 var(--brand-h)) 0%,oklch(0.98 0.015 calc(var(--brand-h) + 20)) 50%,oklch(0.97 0.02 calc(var(--brand-h) - 35)) 100%);--n-0:#ffffff;--n-25:oklch(0.992 0.003 var(--brand-h));--n-50:oklch(0.985 0.005 var(--brand-h));--n-100:oklch(0.965 0.006 var(--brand-h));--n-150:oklch(0.945 0.008 var(--brand-h));--n-200:oklch(0.920 0.008 var(--brand-h));--n-300:oklch(0.870 0.010 var(--brand-h));--n-400:oklch(0.720 0.012 var(--brand-h));--n-500:oklch(0.580 0.015 var(--brand-h));--n-600:oklch(0.470 0.018 var(--brand-h));--n-700:oklch(0.360 0.020 var(--brand-h));--n-800:oklch(0.240 0.018 var(--brand-h));--n-900:oklch(0.160 0.015 var(--brand-h));--n-950:oklch(0.105 0.012 var(--brand-h));--surface-app:var(--n-50);--surface-card:var(--n-0);--surface-sunken:var(--n-100);--surface-hover:var(--n-100);--surface-active:var(--n-150);--text-primary:var(--n-900);--text-secondary:var(--n-600);--text-tertiary:var(--n-500);--text-muted:var(--n-400);--text-brand:var(--brand-600);--text-on-brand:#ffffff;--border-subtle:var(--n-150);--border-default:var(--n-200);--border-strong:var(--n-300);--border-brand:var(--brand-400);--success-50:oklch(0.96 0.04 150);--success-500:oklch(0.62 0.15 150);--success-700:oklch(0.42 0.12 150);--warning-50:oklch(0.96 0.05 75);--warning-500:oklch(0.72 0.15 75);--warning-700:oklch(0.48 0.13 60);--danger-50:oklch(0.96 0.04 25);--danger-500:oklch(0.60 0.20 25);--danger-700:oklch(0.45 0.18 25);--info-50:oklch(0.96 0.04 230);--info-500:oklch(0.60 0.15 230);--info-700:oklch(0.44 0.13 230);--r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-2xl:20px;--r-pill:999px;--s-0:0;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:32px;--s-8:40px;--s-9:48px;--s-10:64px;--shadow-xs:0 1px 2px oklch(0.2 0.02 var(--brand-h)/0.04);--shadow-sm:0 1px 2px oklch(0.2 0.02 var(--brand-h)/0.04),0 1px 3px oklch(0.2 0.02 var(--brand-h)/0.04);--shadow-md:0 2px 4px oklch(0.2 0.02 var(--brand-h)/0.04),0 4px 8px oklch(0.2 0.02 var(--brand-h)/0.05);--shadow-lg:0 4px 8px oklch(0.2 0.02 var(--brand-h)/0.05),0 12px 24px oklch(0.2 0.02 var(--brand-h)/0.08);--shadow-xl:0 8px 16px oklch(0.2 0.02 var(--brand-h)/0.06),0 24px 48px oklch(0.2 0.02 var(--brand-h)/0.12);--shadow-focus:0 0 0 3px oklch(var(--brand-l) var(--brand-c) var(--brand-h)/0.22);--font-sans:"Inter","SF Pro Text",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-display:"Inter Display","Inter",-apple-system,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;--t-xs:11px;--t-sm:12px;--t-base:13px;--t-md:14px;--t-lg:15px;--t-xl:17px;--t-2xl:20px;--t-3xl:24px;--t-4xl:30px;--t-5xl:38px;--lh-tight:1.15;--lh-snug:1.3;--lh-normal:1.45;--lh-relaxed:1.6;--fw-regular:400;--fw-medium:500;--fw-semi:600;--fw-bold:700;--z-nav:20;--z-dropdown:40;--z-drawer:60;--z-modal:80;--z-toast:100}:root,body,html{font-feature-settings:"cv11","ss01","ss03"}button{cursor:pointer;border:0;background:transparent;padding:0}a{color:inherit}:root{--brand-h:262;--brand-c:0.20;--brand-l:0.575}:root[data-tenant=violet]{--brand-h:265;--brand-c:0.17;--brand-l:0.58}:root[data-tenant=indigo]{--brand-h:245;--brand-c:0.17;--brand-l:0.58}:root[data-tenant=teal]{--brand-h:195;--brand-c:0.13;--brand-l:0.58}:root[data-tenant=emerald]{--brand-h:155;--brand-c:0.13;--brand-l:0.58}:root[data-tenant=amber]{--brand-h:55;--brand-c:0.15;--brand-l:0.62}:root[data-tenant=rose]{--brand-h:10;--brand-c:0.17;--brand-l:0.60}:root[data-tenant=slate]{--brand-h:240;--brand-c:0.05;--brand-l:0.55}*,:after,:before{box-sizing:border-box}body,html{margin:0;font-family:var(--font-sans);font-size:var(--t-base);line-height:var(--lh-normal);font-weight:var(--fw-regular);color:var(--text-primary);background:var(--surface-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--fw-semi);line-height:var(--lh-tight);letter-spacing:-.02em;margin:0 0 var(--s-2);color:var(--text-primary)}h1{font-size:var(--t-4xl)}h2{font-size:var(--t-3xl)}h3{font-size:var(--t-2xl)}h4{font-size:var(--t-xl)}h5{font-size:var(--t-lg)}h6{font-size:var(--t-xs);font-weight:var(--fw-semi);letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}p{margin:0 0 var(--s-3)}img{display:block;max-width:100%}a{color:var(--text-brand);text-decoration:none;text-underline-offset:3px}a:hover{color:var(--brand-700)}:focus{outline:none}:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--r-sm)}::selection{background:var(--brand-200);color:var(--text-primary)}.text-muted{color:var(--text-tertiary)}.hr{height:1px;border:0;margin:var(--s-4) 0;background:var(--border-subtle)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-inline);height:32px;padding:0 var(--sp-inner);font-family:var(--font-sans);font-size:var(--t-base);font-weight:var(--fw-medium);line-height:1;letter-spacing:-.005em;white-space:nowrap;cursor:pointer;text-decoration:none;color:var(--text-primary);background:transparent;border:1px solid transparent;border-radius:var(--r-sm);transition:background .12s,border-color .12s,color .12s,box-shadow .12s}.btn svg{display:block;flex:none}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn:active:not(:disabled){transform:translateY(.5px)}.btn-primary{background:var(--brand-600);color:var(--text-on-brand);box-shadow:var(--shadow-xs),inset 0 1px 0 oklch(1 0 0/.15)}.btn-primary:hover:not(:disabled){background:var(--brand-700);color:var(--text-on-brand)}.btn-secondary{background:var(--surface-card);border-color:var(--border-default);box-shadow:var(--shadow-xs)}.btn-secondary:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong);color:var(--text-primary)}.btn-ghost{color:var(--text-secondary);padding:0 var(--sp-inline)}.btn-ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.btn-danger{background:var(--surface-card);color:var(--danger-700);border-color:var(--border-default)}.btn-danger:hover:not(:disabled){background:var(--danger-50);border-color:var(--danger-500);color:var(--danger-700)}.btn-icon{width:28px;height:28px;padding:0}.btn-block{width:100%;justify-content:flex-start;text-align:left;margin-top:var(--sp-inline)}.field>label{display:block;font-size:var(--t-sm);font-weight:var(--fw-medium);margin-bottom:var(--sp-inline);color:var(--text-secondary)}.input{width:100%;min-height:34px;padding:var(--sp-inline) var(--sp-inner);font:inherit;font-size:var(--t-base);color:var(--text-primary);caret-color:var(--brand-600);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--r-sm);box-shadow:var(--shadow-xs);transition:border-color .12s,box-shadow .12s}.input::placeholder{color:var(--text-muted)}.input:hover{border-color:var(--border-strong)}.input:focus,.input:focus-visible{border-color:var(--brand-400);box-shadow:var(--shadow-focus);outline:none}textarea.input{min-height:90px;resize:vertical}.card{display:flex;flex-direction:column;gap:var(--sp-inner);padding:var(--sp-inner-lg);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow-xs)}.card-kicker{font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}.card-kicker,.card-title{font-weight:var(--fw-semi)}.card-title{font-family:var(--font-display);font-size:var(--t-lg);letter-spacing:-.01em;line-height:1.32}.card-body{margin:0;font-size:var(--t-sm);color:var(--text-secondary);flex:1 1}.card-meta{display:flex;align-items:center;gap:var(--sp-inline);font-size:var(--t-xs);color:var(--text-tertiary)}.elev-sm{box-shadow:var(--shadow-sm)}.elev-md{box-shadow:var(--shadow-md)}.elev-lg{box-shadow:var(--shadow-lg)}.tag{display:inline-flex;align-items:center;gap:var(--s-1);height:20px;padding:0 var(--sp-inline);font-size:var(--t-xs);font-weight:var(--fw-medium);line-height:1;border-radius:var(--r-pill);white-space:nowrap}.tag-brand{background:var(--brand-50);color:var(--brand-700)}.tag-neutral{background:var(--n-100);color:var(--n-700)}.tag-outline{border:1px solid var(--border-default);color:var(--text-secondary)}.table{width:100%;border-collapse:collapse;font-size:var(--t-base)}.table th{text-align:left;font-size:var(--t-xs);font-weight:var(--fw-semi);padding:var(--sp-inner) var(--sp-inner-lg);border-bottom:1px solid var(--border-default);white-space:nowrap}.px-datalabel,.table th{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}.px-datalabel{font-size:11px}:lang(vi) .px-datalabel,:lang(vi) .table th{text-transform:none;letter-spacing:.01em}.table td{padding:var(--sp-inner) var(--sp-inner-lg);border-bottom:1px solid var(--border-subtle);vertical-align:top}.table tbody tr:hover{background:var(--surface-hover)}.table tbody tr:last-child td{border-bottom:0}.dialog-backdrop{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;padding:var(--s-4);background:oklch(.15 .02 var(--brand-h)/.35);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog{width:min(440px,100%);display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-5);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--r-xl);box-shadow:var(--shadow-xl)}.dialog-title{font-family:var(--font-display);font-size:var(--t-xl);font-weight:var(--fw-semi);letter-spacing:-.015em}.dialog-body{font-size:var(--t-base);color:var(--text-secondary)}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--s-2);margin-top:var(--s-2)}.x2o-iconbtn{width:28px;height:28px;flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);background:transparent;border:0;border-radius:var(--r-sm);cursor:pointer;transition:background .12s,color .12s}.x2o-iconbtn:hover{background:var(--surface-hover);color:var(--text-primary)}.x2o-iconbtn.is-active{background:var(--surface-active);color:var(--text-primary)}.x2o-iconbtn--sm{width:24px;height:24px}.x2o-chip{border:1px solid transparent}.x2o-chip--neutral.x2o-chip--soft{background:var(--n-100);color:var(--n-700)}.x2o-chip--brand.x2o-chip--soft{background:var(--brand-50);color:var(--brand-700)}.x2o-chip--success.x2o-chip--soft{background:var(--success-50);color:var(--success-700)}.x2o-chip--warning.x2o-chip--soft{background:var(--warning-50);color:var(--warning-700)}.x2o-chip--danger.x2o-chip--soft{background:var(--danger-50);color:var(--danger-700)}.x2o-chip--info.x2o-chip--soft{background:var(--info-50);color:var(--info-700)}.x2o-chip--outline{background:transparent}.x2o-chip--neutral.x2o-chip--outline{border-color:var(--n-200);color:var(--n-700)}.x2o-chip--brand.x2o-chip--outline{border-color:var(--brand-200);color:var(--brand-700)}.x2o-chip--success.x2o-chip--outline{border-color:var(--success-500);color:var(--success-700)}.x2o-chip--warning.x2o-chip--outline{border-color:var(--warning-500);color:var(--warning-700)}.x2o-chip--danger.x2o-chip--outline{border-color:var(--danger-500);color:var(--danger-700)}.x2o-chip--info.x2o-chip--outline{border-color:var(--info-500);color:var(--info-700)}.x2o-chip--solid{color:#fff}.x2o-chip--neutral.x2o-chip--solid{background:var(--n-800)}.x2o-chip--brand.x2o-chip--solid{background:var(--brand-600)}.x2o-chip--success.x2o-chip--solid{background:var(--success-500)}.x2o-chip--warning.x2o-chip--solid{background:var(--warning-500)}.x2o-chip--danger.x2o-chip--solid{background:var(--danger-500)}.x2o-chip--info.x2o-chip--solid{background:var(--info-500)}.x2o-kbd{min-width:18px;height:18px;padding:0 var(--s-1);font-family:var(--font-sans);font-size:10px;font-weight:var(--fw-medium);color:var(--text-secondary);background:var(--n-100);border:1px solid var(--border-default);border-radius:var(--r-xs)}.x2o-avatar,.x2o-kbd{display:inline-flex;align-items:center;justify-content:center}.x2o-avatar{flex:none;font-weight:var(--fw-semi);border-radius:50%;overflow:hidden}.x2o-sechead{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-4)}.x2o-sechead-title{font-size:var(--t-lg);font-weight:var(--fw-semi);letter-spacing:-.01em;color:var(--text-primary)}.x2o-sechead-desc{font-size:var(--t-sm);color:var(--text-secondary);margin-top:2px}.x2o-divider{background:var(--border-subtle);height:1px;width:100%}.x2o-divider--v{width:1px;height:auto;align-self:stretch}.x2o-placeholder{display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(135deg,var(--n-100) 0,var(--n-100) 8px,var(--n-50) 8px,var(--n-50) 16px);border:1px solid var(--border-subtle);border-radius:var(--r-md);color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--t-xs)}:root{--sp-inline:var(--s-2);--sp-inner:var(--s-3);--sp-inner-lg:var(--s-4);--sp-gap:var(--s-4);--sp-group:var(--s-6);--sp-section:var(--s-7);--measure-app:1440px;--measure-prose:72ch;--text-tertiary:oklch(0.530 0.015 var(--brand-h))}.px-num,.table td,.table th{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-mono{font-family:var(--font-mono);font-size:.94em;letter-spacing:-.01em}body:has(.px-app),html:has(.px-app){height:100%;overflow:hidden;overscroll-behavior:none}.px-app{display:flex;position:fixed;inset:0;overflow:hidden;font-family:var(--font-sans);color:var(--text-primary);background:var(--surface-app)}.px-side{width:232px;background:var(--brand-gradient-soft);border-right:1px solid var(--border-subtle)}.px-side,.px-side-head{flex:none;display:flex;flex-direction:column}.px-side-head{align-items:flex-start;gap:var(--sp-inline);padding:var(--sp-inner-lg) var(--sp-inner);border-bottom:1px solid var(--border-subtle)}.px-logo{display:block;width:116px;height:auto}.px-side-foot{flex:none;padding:var(--sp-inner);border-top:1px solid var(--border-subtle)}.px-brand{font-size:var(--t-sm);font-weight:var(--fw-medium);letter-spacing:-.01em;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.px-main{flex:1 1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.px-topbar{height:48px;flex:none;gap:var(--sp-inline);padding:0 var(--sp-group);background:var(--surface-card);border-bottom:1px solid var(--border-subtle)}.px-crumbs,.px-topbar{display:flex;align-items:center}.px-crumbs{gap:var(--s-1);font-size:var(--t-base);color:var(--text-secondary);min-width:0}.px-crumbs>.px-crumb-sep{color:var(--text-muted);flex:none}.px-crumbs>.px-crumb-last{color:var(--text-primary);font-weight:var(--fw-medium)}.px-topbar-meta{display:flex;align-items:center;gap:var(--s-3);font-size:var(--t-sm);color:var(--text-secondary);white-space:nowrap}.px-topbar-meta b{color:var(--text-primary);font-weight:var(--fw-medium)}.px-scroll{flex:1 1;min-height:0;overflow:auto;scroll-padding-block:var(--s-4);border-top:var(--sp-group) solid var(--surface-app);padding:0 max(var(--sp-group),calc((100% - var(--measure-app)) / 2)) var(--sp-section)}.px-scroll:focus{outline:none}.px-scroll:focus-visible{outline:2px solid var(--brand-500);outline-offset:-2px}.px-scroll .table thead th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:var(--surface-card);box-shadow:inset 0 -1px 0 var(--border-default)}.px-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-gap);margin-bottom:var(--sp-group)}.px-page-title{font-family:var(--font-display);font-size:var(--t-3xl);font-weight:var(--fw-semi);letter-spacing:-.02em;line-height:var(--lh-tight);margin:2px 0 0}.px-nav-group{font-size:var(--t-xs);font-weight:var(--fw-semi);letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);padding:var(--sp-inner-lg) var(--sp-inline) var(--sp-inline)}.px-nav{flex:1 1;overflow-y:auto;padding:var(--sp-inline)}.px-nav-item{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-inline);width:100%;height:32px;padding:0 var(--sp-inline);font-size:var(--t-base);font-weight:var(--fw-regular);text-align:left;text-decoration:none;color:var(--text-secondary);background:transparent;border:0;border-radius:var(--r-sm);cursor:pointer;transition:background .12s,color .12s}.px-nav-item:hover{background:color-mix(in oklab,var(--n-0) 62%,transparent);color:var(--text-primary)}.px-nav-item[aria-current=page]{background:var(--n-0);box-shadow:var(--shadow-xs);color:var(--brand-700);font-weight:var(--fw-medium)}.px-nav-item[aria-current=page]:before{content:"";position:absolute;left:calc(-1 * var(--sp-inline));top:var(--s-1);bottom:var(--s-1);width:2px;background:var(--brand-500);border-radius:2px}.px-nav-item[aria-current=page] .px-nav-icon{color:var(--brand-600)}.px-nav-icon{flex:none;color:inherit}.px-nav-label{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.px-nav-count{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 var(--s-1);font-size:var(--t-xs);font-weight:var(--fw-medium);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--n-700);background:var(--n-0);border:1px solid var(--border-subtle);border-radius:var(--r-pill)}.px-nav-item[aria-current=page] .px-nav-count{color:var(--brand-700);background:var(--brand-100);border-color:transparent}.px-seg{display:inline-flex;align-items:center;gap:2px;padding:3px;background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--r-md);width:-moz-fit-content;width:fit-content}.px-seg--wrap{flex-wrap:wrap}.px-seg--stack{flex-direction:column;align-items:stretch;width:100%}.px-seg--fill{width:100%}.px-seg--fill>.px-seg-opt{flex:1 1}a.px-seg-opt{text-decoration:none}.px-seg-opt{display:inline-flex;align-items:center;gap:var(--sp-inline);height:30px;padding:0 var(--sp-inner);font:inherit;font-size:var(--t-sm);font-weight:var(--fw-medium);text-align:left;color:var(--text-secondary);background:transparent;border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;transition:background .12s,color .12s}.px-seg-opt:hover{color:var(--text-primary)}.px-seg-opt[aria-current=true],.px-seg-opt[aria-pressed=true]{background:var(--surface-card);border-color:var(--border-default);box-shadow:var(--shadow-xs);color:var(--text-primary);font-weight:var(--fw-semi)}.px-stats{display:grid;grid-gap:var(--sp-gap);gap:var(--sp-gap)}.px-stat{padding:var(--s-5);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow-xs)}.px-stat-value{font-family:var(--font-display);font-size:var(--t-3xl);font-weight:var(--fw-semi);letter-spacing:-.02em;line-height:var(--lh-tight);margin-top:var(--sp-inline);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-stat-note{font-size:var(--t-sm);margin-top:var(--s-1)}.px-kicker,.px-stat-note{color:var(--text-secondary)}.px-kicker{font-size:var(--t-xs);font-weight:var(--fw-semi);letter-spacing:.08em;text-transform:uppercase}.px-kicker--tight{font-size:10px;letter-spacing:.1em}.px-panel{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow-xs)}.px-panel--pad{padding:var(--s-5)}.px-panel--pad>*+*{margin-top:var(--sp-group)}.px-panel-split{display:grid;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);overflow:hidden}.px-panel-split>*+*{border-left:1px solid var(--border-subtle)}.px-rule{border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-inner-lg);background:var(--surface-card)}.px-dropzone{border:1px dashed var(--border-strong);border-radius:var(--r-md);padding:var(--sp-group);color:var(--text-secondary);background:var(--surface-sunken)}.px-dropzone,.px-note{font-size:var(--t-base)}.px-note{padding:var(--sp-inner) var(--sp-inner-lg);background:var(--info-50);border:1px solid transparent;border-left:3px solid var(--info-500);border-radius:var(--r-sm);line-height:var(--lh-normal);color:var(--text-primary)}.px-note--warn{background:var(--warning-50);border-left-color:var(--warning-500)}.px-note--danger{background:var(--danger-50);border-left-color:var(--danger-500)}.px-prose{font-size:var(--t-base);color:var(--text-secondary);line-height:var(--lh-relaxed);max-width:var(--measure-prose)}.px-meter{height:8px;background:var(--n-150);overflow:hidden}.px-meter,.px-meter>span{border-radius:var(--r-pill)}.px-meter>span{display:block;height:100%}.px-tag{gap:var(--s-1);height:22px;padding:0 var(--sp-inline);white-space:nowrap;border:1px solid transparent}.px-tag svg{flex:none;width:11px;height:11px}.px-tag--ok{background:var(--success-50);color:var(--success-700)}.px-tag--warn{background:var(--warning-50);color:var(--warning-700);border-color:var(--warning-500)}.px-tag--fail{background:var(--danger-50);color:var(--danger-700);border-color:var(--danger-500);font-weight:var(--fw-semi)}.px-tag--pending{background:transparent;color:var(--text-secondary);border-color:var(--n-300)}.px-tag--info{background:var(--info-50);color:var(--info-700)}.px-tag--cat{background:transparent;color:var(--n-700);border-color:var(--border-default)}.px-tag--fixed{min-width:88px}.px-panel .table td:first-child,.px-panel .table th:first-child{padding-left:var(--s-5)}.px-panel .table td:last-child,.px-panel .table th:last-child{padding-right:var(--s-5)}.px-panel .table tbody tr:last-child td{border-bottom:0}.px-panel>.px-empty{border:0;background:transparent}.px-check{display:flex;gap:var(--sp-inner);align-items:flex-start;padding:var(--sp-inner) 0;border-top:1px solid var(--border-subtle)}.px-check-label{font-size:var(--t-base);line-height:var(--lh-normal)}.px-check-detail{font-size:var(--t-sm);color:var(--text-secondary)}.px-kv{display:flex;justify-content:space-between;gap:var(--sp-inner);font-size:var(--t-sm);padding:var(--sp-inline) 0;border-bottom:1px solid var(--border-subtle)}.px-kv>span:first-child{color:var(--text-secondary)}.px-kv>span:last-child{font-weight:var(--fw-medium);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.px-timeline-row{display:grid;grid-template-columns:150px 1fr;grid-gap:var(--sp-inner-lg);gap:var(--sp-inner-lg);font-size:var(--t-base);padding:var(--sp-inner) 0;border-bottom:1px solid var(--border-subtle)}.px-timeline-row>span:first-child{color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--t-sm)}.px-toast{position:fixed;left:var(--sp-group);bottom:var(--sp-group);z-index:var(--z-toast);max-width:420px;padding:var(--sp-inner) var(--sp-inner-lg);font-size:var(--t-base);font-weight:var(--fw-medium);line-height:var(--lh-normal);color:var(--n-0);background:var(--n-900);border-radius:var(--r-md);box-shadow:var(--shadow-xl)}.px-empty{padding:var(--sp-group);background:var(--surface-card);border:1px dashed var(--border-strong);border-radius:var(--r-lg);text-align:left;color:var(--text-secondary);font-size:var(--t-md)}.btn.px-btn-sm{height:28px;padding:0 var(--sp-inner);font-size:var(--t-sm)}.btn.btn-block{justify-content:flex-start}.px-bare{font:inherit;color:inherit;background:none;border:0;padding:0;text-align:left;cursor:pointer}.px-bare:hover{color:var(--text-brand)}.px-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion:no-preference){.px-toast{animation:px-toast-in .16s cubic-bezier(.22,1,.36,1)}@keyframes px-toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}.px-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:var(--sp-inner);margin-top:var(--sp-inner-lg);margin-bottom:var(--sp-group)}.px-toolbar label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:500;color:var(--text-secondary)}.px-toolbar input[type=date]{height:34px;padding:0 var(--sp-inner);border:1px solid var(--border-default);border-radius:8px;background:var(--surface-card);color:var(--text-primary);font:inherit;font-size:13px}.px-toolbar input[type=date]:focus-visible{outline:2px solid var(--brand-500);outline-offset:1px;border-color:var(--brand-500)}.px-chart{margin-top:var(--sp-group);margin-bottom:var(--sp-group);padding:var(--s-5);border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:var(--surface-card);box-shadow:var(--shadow-xs)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--n-300);border:2px solid var(--surface-app);border-radius:var(--r-pill)}::-webkit-scrollbar-thumb:hover{background:var(--n-400)}