/* clutch: the source zip's own stylesheet, scoped to .zp so it styles only this page's
   content. Generated from the zip; edit the source and rebuild rather than this file. */
/* The site stylesheet is imported into the "site" layer for the status bar, the jump palette
   and the footer. Inside .zp only the rules below apply: site rules are reset to the browser
   defaults, so the content renders exactly as the source HTML does on its own. Images and SVG
   keep their attributes, and the site footer keeps its own styles. */
:where(.zp *):not(:where(img, svg, svg *, .foot, .foot *)){all:revert}
:where(.zp *):not(:where(.foot, .foot *))::before,:where(.zp *):not(:where(.foot, .foot *))::after{all:revert}
.zp{color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.zp{margin:0;padding:0;font:14px -apple-system,BlinkMacSystemFont,sans-serif;background:#fff;color:#000}
.zp img{max-width:100%}
.zp [hidden]:not([hidden=until-found i]){display:none!important}
.zp{color-scheme:light;
  --bg:#f7f6f3;--bar:rgba(250,249,246,.9);--panel:#fffefb;--fg:#33383f;--bright:#0d1014;
  --mute:#5c6167;--dim:#6b7076;--rule:#dedbd3;--hair:#eceae4;--accent:#94600f;
  --accent-soft:rgba(148,96,15,.08);--halo:rgba(148,96,15,.30);--shadow:rgba(64,44,12,.22);
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --stage:980px;--prose:66ch;--gap:64px;}
.zp,.zp *{box-sizing:border-box}
.zp{margin:0;background:var(--bg);color:var(--fg);font-family:var(--mono);font-size:14px;
  -webkit-font-smoothing:antialiased;}
.zp ::selection{background:var(--accent);color:var(--bg)}
.zp a{color:var(--accent);text-decoration:none}
.zp a:hover{opacity:.75}
.zp a:focus-visible,.zp button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.zp img{max-width:100%;height:auto;display:block}
.zp .shell{max-width:calc(var(--stage) + 260px);margin:0 auto;
  display:grid;grid-template-columns:190px minmax(0,var(--stage));gap:0 70px;justify-content:center;
  padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px));
  padding-block:56px 110px;}
.zp .toc{position:sticky;top:94px;align-self:start}
.zp .toc-label{font-size:10px;letter-spacing:.14em;color:var(--dim);margin-bottom:12px}
.zp .toc ol{list-style:none;margin:0;padding:0}
.zp .toc a{display:grid;grid-template-columns:20px 1fr;gap:6px;padding:5px 0;
  font-size:11.5px;line-height:1.45;color:var(--mute);text-wrap:pretty;transition:color .25s ease;}
.zp .toc a span{color:var(--dim)}
.zp .toc a:hover{color:var(--bright);opacity:1}
.zp .toc a.on{color:var(--bright)}
.zp .toc a.on span{color:var(--accent)}
.zp main{min-width:0}
.zp .eyebrow{font-size:10.5px;letter-spacing:.14em;color:var(--dim);text-transform:uppercase;margin:0 0 12px}
.zp h1{margin:0;font-size:clamp(26px,3.4vw,34px);font-weight:600;letter-spacing:-.015em;line-height:1.15;color:var(--bright);text-wrap:balance}
.zp h1 .cursor{color:var(--accent);font-weight:400;animation:blink 1.15s step-end infinite;text-shadow:0 0 8px var(--halo)}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
.zp .dek{margin:14px 0 0;max-width:58ch;font-size:15px;line-height:1.7;color:var(--fg);text-wrap:pretty}
.zp .facts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:34px 0 0;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
.zp .facts div{padding:13px 14px 14px 0;min-width:0}
.zp .facts div+div{padding-left:14px;border-left:1px solid var(--hair)}
.zp .facts dt{font-size:9.5px;letter-spacing:.13em;color:var(--dim);text-transform:uppercase;margin-bottom:6px}
.zp .facts dd{margin:0;font-size:12.5px;line-height:1.45;color:var(--bright)}
.zp .facts .hl dd{color:var(--accent);font-weight:600;font-size:15px;font-variant-numeric:tabular-nums}
.zp .sec{scroll-margin-top:70px;padding-top:var(--gap)}
.zp .h2{display:flex;gap:10px;align-items:baseline;margin:0 0 22px;padding-bottom:12px;border-bottom:1px solid var(--rule)}
.zp .h2 .n{font-size:11px;color:var(--accent);font-variant-numeric:tabular-nums}
.zp .h2 h2{margin:0;font-size:19px;font-weight:600;letter-spacing:-.01em;color:var(--bright);text-wrap:balance}
.zp h3{margin:44px 0 14px;font-size:14.5px;font-weight:600;color:var(--bright);letter-spacing:-.005em;text-wrap:balance}
.zp h3::before{content:"### ";color:var(--accent);font-weight:400;opacity:.8}
.zp .sub-first{margin-top:0}
.zp p{margin:0 0 16px;line-height:1.8;max-width:var(--prose);text-wrap:pretty}
.zp .lead{font-size:16px;line-height:1.65;color:var(--bright);max-width:60ch}
.zp strong,.zp b{color:var(--bright);font-weight:600}
.zp ul.list{list-style:none;margin:0 0 16px;padding:0;max-width:var(--prose);display:grid;gap:9px}
.zp ul.list li{display:grid;grid-template-columns:18px 1fr;line-height:1.7;font-size:13.5px}
.zp ul.list li::before{content:"→";color:var(--accent);font-size:12px;line-height:1.95}
.zp .callout{border-left:2px solid var(--accent);padding:2px 0 2px 16px;margin:6px 0 22px}
.zp .callout p{margin:0}
.zp .role{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:40px;align-items:start}
.zp .people{list-style:none;margin:0;padding:0;border-top:1px solid var(--hair)}
.zp .people li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--hair);font-size:13px}
.zp .people li > span{font-size:11px;color:var(--mute);text-align:right}
.zp .people .me b{color:var(--accent)}
.zp .tag{font-size:9px;letter-spacing:.14em;color:var(--accent);border:1px solid rgba(148,96,15,.45);padding:1px 5px;border-radius:3px;margin-left:8px;vertical-align:2px}
.zp .org{margin:14px 0 0;font-size:11px;line-height:1.7;color:var(--mute)}
.zp .org i{font-style:normal;color:var(--dim);padding:0 4px}
.zp .feature{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px;align-items:start;margin:44px 0 0}
.zp .feature > div > h3:first-child{margin-top:0}
.zp .feature .fig{margin:0}
.zp .panel{border:1px solid var(--rule);border-radius:4px;background:var(--panel);box-shadow:inset 0 1px 0 rgba(255,255,255,.65)}
.zp .panel-head{padding:9px 14px;border-bottom:1px solid var(--rule);font-size:10px;letter-spacing:.13em;color:var(--dim);text-transform:uppercase}
.zp .compare{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.zp .compare .panel-body{padding:16px 18px 6px}
.zp .compare h4{margin:0 0 12px;font-size:13.5px;font-weight:600;color:var(--bright)}
.zp .vision{margin:18px 0 0}
.zp .vision-body{display:grid;grid-template-columns:minmax(0,220px) 40px minmax(0,1fr);gap:0;padding:20px}
.zp .tools{list-style:none;margin:0;padding:0;counter-reset:t}
.zp .tools li{counter-increment:t;font-size:12px;padding:5px 0;border-bottom:1px dashed var(--hair);color:var(--mute)}
.zp .tools li::before{content:counter(t,decimal-leading-zero);color:var(--dim);margin-right:10px;font-size:10.5px}
.zp .vision-arrow{display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:16px}
.zp .groups{display:grid;gap:16px;align-content:center}
.zp .grp-k{font-size:10px;letter-spacing:.13em;color:var(--dim);text-transform:uppercase;margin-bottom:6px}
.zp .map-row{display:grid;grid-template-columns:minmax(0,1fr) 22px minmax(0,150px);align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--hair)}
.zp .map-row .from{font-size:12px;color:var(--fg)}
.zp .map-row .from small{display:block;font-size:10px;color:var(--dim);margin-top:2px}
.zp .map-row .arr{color:var(--dim);text-align:center}
.zp .map-row .to{font-size:12px;font-weight:600;color:var(--accent);border:1px solid rgba(148,96,15,.4);border-radius:3px;padding:4px 8px;background:var(--accent-soft)}
.zp .steps{list-style:none;margin:0 0 8px;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.zp .steps li{padding-top:12px;border-top:2px solid var(--accent);min-width:0}
.zp .steps li:last-child{border-top-color:var(--rule)}
.zp .steps .k{font-size:10px;color:var(--accent);letter-spacing:.1em}
.zp .steps b{display:block;margin:4px 0 4px;font-size:13.5px}
.zp .steps span{display:block;font-size:11.5px;line-height:1.55;color:var(--mute)}
.zp .chips{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:7px}
.zp .chips li{padding:6px 10px;border:1px solid var(--rule);border-radius:3px;font-size:11.5px;color:var(--fg);background:var(--panel)}
.zp .chips li .p{color:var(--accent);margin-right:6px;font-variant-numeric:tabular-nums}
.zp .insights{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:6px 0 0}
.zp .insights .panel{padding:14px 15px}
.zp .insights h4{margin:0 0 6px;font-size:12.5px;font-weight:600;color:var(--bright)}
.zp .insights p{margin:0;font-size:12px;line-height:1.6;color:var(--mute)}
.zp .fig{margin:28px 0 0}
.zp .fig button{display:block;width:100%;padding:0;border:1px solid var(--rule);border-radius:6px;background:#fff;cursor:zoom-in;overflow:hidden;position:relative}
.zp .fig button::after{content:"⤢";position:absolute;top:8px;right:8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;
  border-radius:4px;background:rgba(247,246,243,.82);color:var(--bright);font-size:12px;opacity:0;transition:opacity .18s;}
.zp .fig button:hover::after,.zp .fig button:focus-visible::after{opacity:1}
.zp .fig img{width:100%}
.zp .fig.bare button{border:0;background:transparent;border-radius:0}
.zp .fig button{padding:16px}
.zp .fig img{border-radius:3px}
.zp .fig figcaption,.zp .cap{margin-top:10px;font-size:10.5px;line-height:1.6;color:var(--dim);max-width:none}
.zp .fig figcaption .fn{color:var(--accent)}
.zp .fig.cap-w{max-width:640px}
.zp .row{display:flex;gap:16px;margin:28px 0 0;align-items:flex-start}
.zp .row .fig{margin:0;min-width:0}
.zp .hero-fig{margin:34px 0 0}
.zp .metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:0 0 26px}
.zp .metrics div{padding:18px 18px 18px 0}
.zp .metrics div+div{padding-left:18px;border-left:1px solid var(--hair)}
.zp .metrics .num{font-size:28px;font-weight:600;letter-spacing:-.02em;color:var(--accent);font-variant-numeric:tabular-nums;line-height:1.1}
.zp .metrics p{margin:8px 0 0;font-size:12px;line-height:1.55;color:var(--mute)}
.zp .learn{display:grid;grid-template-columns:1fr 1fr;gap:0 36px;margin:0}
.zp .learn div{padding:16px 0;border-top:1px solid var(--hair)}
.zp .learn b{display:block;font-size:13.5px;margin-bottom:6px}
.zp .learn p{margin:0;font-size:13px;line-height:1.7;color:var(--fg)}
.zp .quote{display:grid;grid-template-columns:18px 1fr;gap:10px;margin:40px 0 0;max-width:62ch}
.zp .quote span{color:var(--accent)}
.zp .quote p{margin:0;color:var(--bright);font-size:15px;line-height:1.7}
.zp .nextnav{margin-top:56px;padding-top:22px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
.zp .next{display:inline-flex;gap:9px;align-items:center;padding:9px 12px;border:1px solid var(--rule);border-radius:3px;font-size:12.5px;color:var(--fg);background:var(--panel)}
.zp .next:hover{color:var(--accent);border-color:var(--accent);opacity:1}
.zp .next .l{color:var(--dim)}
.zp .lb[hidden]{display:none}
.zp .lb{position:fixed;inset:0;z-index:90;background:rgba(247,246,243,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
  padding:max(56px,env(safe-area-inset-top,0px)) max(64px,env(safe-area-inset-right,0px)) max(24px,env(safe-area-inset-bottom,0px)) max(64px,env(safe-area-inset-left,0px));cursor:zoom-out}
.zp .lb img{max-width:100%;max-height:calc(100vh - 140px);width:auto;object-fit:contain;border-radius:4px;box-shadow:0 30px 80px -30px var(--shadow);background:var(--panel);cursor:default}
.zp .lb-cap{font-size:11px;color:var(--dim);text-align:center;max-width:90ch;line-height:1.5}
.zp .lb-cap b{color:var(--accent);font-weight:400;margin-right:10px;font-variant-numeric:tabular-nums}
.zp .lb-btn{position:fixed;border:1px solid var(--rule);border-radius:3px;background:var(--panel);color:var(--fg);cursor:pointer;font:inherit;font-size:12px}
.zp .lb-btn:hover{color:var(--accent);border-color:var(--accent)}
.zp .lb-close{top:calc(14px + env(safe-area-inset-top,0px));right:calc(14px + env(safe-area-inset-right,0px));padding:6px 10px}
.zp .lb-prev,.zp .lb-next{top:50%;transform:translateY(-50%);width:40px;height:40px;font-size:15px}
.zp .lb-prev{left:calc(14px + env(safe-area-inset-left,0px))}
.zp .lb-next{right:calc(14px + env(safe-area-inset-right,0px))}
@media (max-width:1240px){
.zp .shell{grid-template-columns:170px minmax(0,var(--stage));column-gap:44px}
}
@media (max-width:960px){
.zp .shell{grid-template-columns:minmax(0,var(--stage))}
.zp .toc{display:none}
}
@media (max-width:900px){
.zp .feature,.zp .role{grid-template-columns:1fr;gap:22px}
.zp .facts{grid-template-columns:repeat(3,minmax(0,1fr))}
.zp .facts div:nth-child(4){padding-left:0;border-left:0}
.zp .facts div:nth-child(n/**/+4){border-top:1px solid var(--hair)}
.zp .insights{grid-template-columns:1fr 1fr}
.zp .steps{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:18px}
.zp .vision-body{grid-template-columns:1fr;gap:14px}
.zp .vision-arrow{transform:rotate(90deg);height:20px}
}
@media (max-width:640px){
.zp .shell{padding-block:36px 80px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.zp .facts{grid-template-columns:1fr 1fr}
.zp .facts div:nth-child(n){padding-left:0;border-left:0;border-top:1px solid var(--hair)}
.zp .facts div:nth-child(-n/**/+2){border-top:0}
.zp .facts div:nth-child(even){padding-left:14px;border-left:1px solid var(--hair)}
.zp .compare,.zp .learn,.zp .insights{grid-template-columns:1fr}
.zp .steps{grid-template-columns:1fr 1fr}
.zp .metrics{grid-template-columns:1fr}
.zp .metrics div+div{padding-left:0;border-left:0;border-top:1px solid var(--hair)}
.zp .row{flex-direction:column}
.zp .row .fig{flex:none !important;width:100%}
.zp .lb{padding-left:12px;padding-right:12px}
.zp .lb-prev,.zp .lb-next{top:auto;bottom:calc(14px + env(safe-area-inset-bottom,0px));transform:none}
}
@media (prefers-reduced-motion:reduce){
.zp,.zp *{animation:none !important;transition:none !important}
}
.zp .fig-mock button{cursor:zoom-in}
.zp .feature > *{min-width:0}
.zp .mock-wrap{width:100%;overflow:hidden;position:relative;border-radius:6px;background:#fff}
.zp .mock{width:1000px;transform-origin:top left;font-family:"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;color:#1C1B1F;font-size:13px;line-height:1.4;font-weight:400;background:#fff;text-align:left}
.zp .mock *{box-sizing:border-box}
.zp .zoom .mock-wrap{border-radius:6px}
.zp .mock h1{font-size:31px;line-height:1.15;font-weight:800;letter-spacing:-.6px;margin:2px 0 4px;color:#1C0F1E}
.zp .mock h3{font-size:17px;font-weight:700;margin:24px 0 10px;color:#1C0F1E}
.zp .mock h4{font-size:13.5px;font-weight:600;margin:6px 0 6px}
.zp .pc-tog{width:32px;height:18px;border-radius:999px;background:#5E5A61;position:relative;flex:none}
.zp .pc-tog i{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff}
.zp .pc-tog.on{background:#1E7A4A}
.zp .pc-tog.on i{left:16px}
.zp .lb-mock .mock{transform:none!important}
.zp .lx-screen .mock-wrap{border-radius:0}
.zp .mock.cl{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;color:#1d1b20;font-size:11px;background:#F7F7FA}
.zp .cl-top{height:38px;background:linear-gradient(90deg,#3B1A7E,#1D1554);display:flex;align-items:center;padding:0 16px;color:#fff;gap:18px}
.zp .cl-logo{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px}
.zp .cl-logo i{width:18px;height:18px;border-radius:50%;border:2px solid #7FD3F7;display:block;box-shadow:inset 0 0 0 3px #1D1554,inset 0 0 0 5px #7FD3F7}
.zp .cl-tabs{display:flex;height:38px}
.zp .cl-tabs span{padding:12px 12px;font-weight:600}
.zp .cl-tabs .on{background:rgba(255,255,255,.12)}
.zp .cl-right{margin-left:auto;display:flex;gap:14px;align-items:center}
.zp .cl-av{width:22px;height:22px;border-radius:50%;background:#7C83E8;font-size:9px;display:flex;align-items:center;justify-content:center}
.zp .cl-gs{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.2);border-radius:4px;padding:5px 10px;width:260px;color:#e6e0ff;font-size:10px}
.zp .cl-gst{margin-left:auto;font-weight:600}
.zp .cl-gfb{border:1px solid #fff;border-radius:999px;padding:3px 10px;font-weight:600}
.zp .cl-gs+.cl-gst+.cl-gfb+.cl-right{margin-left:0}
.zp .cl-pin{background:#fff;border-bottom:1px solid #E1E0E6;padding:7px 16px;display:flex;gap:10px;align-items:center;position:relative}
.zp .cl-pin b{font-weight:500}
.zp .cl-pin .i{color:#888}
.zp .cl-pin .sep{width:1px;height:14px;background:#ccc}
.zp .cl-pin a{color:#2F4FD6;text-decoration:underline}
.zp .cl-tip{position:absolute;left:12px;top:24px;background:#3A3A40;color:#fff;font-size:9.5px;padding:6px 9px;border-radius:4px;width:190px;z-index:2;line-height:1.35}
.zp .cl-new{display:inline-block;background:#F5A623;color:#3A2400;font-weight:700;font-size:10px;padding:3px 8px;border-radius:4px;vertical-align:middle;margin-left:6px}
.zp .cl-new.sm{font-size:8px;padding:2px 5px;margin:-10px 0 0 -6px}
.zp .cl-new.up{position:relative;top:-10px;margin-left:-8px}
.zp .cl-pg-pad{padding:14px 16px 16px}
.zp .cl-ph{display:flex;justify-content:space-between;gap:20px}
.zp .cl-crumb{margin:0 0 4px;color:#555;font-size:10px}
.zp .cl-crumb a{color:#2F4FD6}
.zp .mock.cl h1{font-size:20px;font-weight:700;margin:2px 0 6px;color:#1d1b20;display:flex;align-items:center;gap:6px;letter-spacing:-.2px}
.zp .cl-desc{margin:0 0 8px;color:#444;font-size:11.5px}
.zp .cl-tier{background:#E8E6EA;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600}
.zp .cl-docs{background:#E9ECFB;color:#2F4FD6;border-radius:999px;padding:4px 12px;font-size:11px;font-weight:600}
.zp .cl-links{display:flex;font-size:10px}
.zp .cl-links div{display:flex;flex-direction:column;gap:3px;padding:0 16px;border-left:1px solid #ddd}
.zp .cl-links div:first-child{border:0}
.zp .cl-links span{color:#444}
.zp .cl-links b{font-weight:500}
.zp .cl-fb{background:#ECEBEF;border-radius:4px;padding:6px 10px;display:flex;align-items:center;gap:8px;font-weight:600;margin-bottom:8px}
.zp .cl-fb .em{background:#fff;border:1px solid #ddd;border-radius:4px;padding:1px 4px}
.zp .cl-fb .x{margin-left:auto}
.zp .cl-box{background:#fff;border:1px solid #E1E0E6;border-radius:6px;margin-top:8px}
.zp .cl-box.pad{padding:12px 14px}
.zp .cl-sum{display:grid;grid-template-columns:1fr 1fr 1fr;border-bottom:1px solid #E1E0E6}
.zp .cl-sum > div{padding:10px 14px;position:relative}
.zp .cl-sum > div+div{border-left:1px solid #E1E0E6}
.zp .cl-sum small{position:absolute;right:14px;top:10px;color:#666}
.zp .cl-sum p{margin:6px 0 0;display:flex;align-items:center;gap:5px}
.zp .cl-sum a{color:#2F4FD6;font-weight:600}
.zp .cl-sum .r{margin-left:auto}
.zp .cl-sum strong{font-size:14px}
.zp .cl-tk{width:18px;height:18px;border-radius:50%;background:#7C83E8;color:#fff;font-size:8px;display:inline-flex;align-items:center;justify-content:center}
.zp .cl-env{display:flex;gap:6px;padding:8px 14px;border-bottom:1px solid #E1E0E6}
.zp .cl-chip{background:#ECEBEF;border-radius:999px;padding:4px 10px;font-size:10px}
.zp .cl-tabbar{display:flex;border-bottom:1px solid #E1E0E6}
.zp .cl-tabbar span{padding:10px 22px;color:#555}
.zp .cl-tabbar .on{color:#8A1A86;border-bottom:2px solid #8A1A86;font-weight:600}
.zp .cl-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px 14px}
.zp .cl-cards > div{background:#EFEEEA;border:1px solid #DEDCD6;border-radius:6px;padding:8px 10px}
.zp .cl-cards p{margin:6px 0 0;display:flex;align-items:center;gap:6px}
.zp .cl-cards strong{font-size:14px}
.zp .cl-cards small{display:block;color:#555;font-size:9px;margin-left:4px}
.zp .cl-donut{width:24px;height:24px;border-radius:50%;display:inline-block;-webkit-mask:radial-gradient(circle,transparent 7px,#000 8px);mask:radial-gradient(circle,transparent 7px,#000 8px)}
.zp .cl-donut.ring{background:#2E9D6E}
.zp .cl-sub{display:flex;border-bottom:1px solid #E1E0E6}
.zp .cl-sub span{flex:1;text-align:center;padding:8px;color:#555}
.zp .cl-sub .on{color:#8A1A86;border-bottom:2px solid #8A1A86;font-weight:600}
.zp .cl-sub.big{border:0;margin-bottom:10px}
.zp .cl-sub.big span{flex:0 0 160px;font-size:13px}
.zp .cl-t{width:100%;border-collapse:collapse}
.zp .cl-t th{text-align:left;font-weight:600;padding:8px 10px;border-bottom:1px solid #E1E0E6}
.zp .cl-t td{padding:7px 10px;border-bottom:1px solid #EEE}
.zp .cl-run{background:#E3EBFB;color:#2F4FD6;border-radius:4px;padding:1px 6px;font-size:9px}
.zp .cl-pg{text-align:right;padding:8px 14px;color:#555}
.zp .cl-pg span{border:1px solid #ccc;border-radius:4px;padding:2px 8px;margin:0 6px}
.zp .cl-podh{display:flex;align-items:center;gap:8px}
.zp .cl-podh b{font-size:13px}
.zp .cl-podh .r{margin-left:auto;display:flex;gap:6px}
.zp .cl-green{background:#1E7A4A;color:#fff;border-radius:999px;padding:2px 8px;font-size:9px;font-weight:600}
.zp .cl-btn{display:inline-block;border-radius:999px;padding:5px 12px;font-weight:600;font-size:10.5px;text-align:center}
.zp .cl-btn.g{background:#ECEBEF}
.zp .cl-btn.red{background:#FBE4E4;color:#B3261E}
.zp .cl-btn.p{background:#3949D6;color:#fff}
.zp .cl-btn.full{display:block;margin-top:8px;padding:8px}
.zp .cl-btn.sm{padding:4px 10px;font-size:9px}
.zp .cl-meta{display:flex;justify-content:space-between;margin-top:10px;color:#555}
.zp .cl-meta b{color:#111;margin-left:4px}
.zp .cl-logf{display:flex;gap:16px;align-items:center;padding:10px 14px}
.zp .cl-logf i{font-style:normal;border:1px solid #ccc;border-radius:4px;padding:4px 8px;margin-left:4px}
.zp .cl-logf .r{margin-left:auto}
.zp .cl-logs{margin:0 14px 14px;background:#F3F3F5;border:1px solid #E1E0E6;border-radius:4px;padding:8px 10px;font-family:Menlo,Consolas,monospace;font-size:8.5px;line-height:1.7;color:#333;white-space:nowrap;overflow:hidden}
.zp .cl-logs i{display:inline-block;width:18px;text-align:right;margin-right:8px;color:#999;font-style:normal}
.zp .cl-split{display:grid;grid-template-columns:1fr 300px}
.zp .cl-left{padding:14px 16px}
.zp .cl-sbox{display:flex;align-items:center;gap:4px;border:1px solid #C9C6CC;border-radius:6px;padding:8px 10px;color:#666;background:#fff;margin-bottom:12px}
.zp .cl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.zp .cl-pc{background:#fff;border:1px solid #E1E0E6;border-radius:4px;padding:10px;position:relative;min-height:62px}
.zp .cl-pc b{font-size:11.5px}
.zp .cl-pc p{margin:4px 0 0;color:#555;font-size:9.5px;line-height:1.35;padding-right:16px}
.zp .cl-pc .st{position:absolute;right:10px;top:8px;color:#888}
.zp .cl-pc .st.on{color:#B0179F}
.zp .cl-panel{background:#fff;border-left:1px solid #E1E0E6;padding:14px 16px;font-size:9.5px;line-height:1.45;position:relative}
.zp .cl-panel .x{position:absolute;right:14px;top:12px}
.zp .cl-panel small{color:#666;font-weight:600}
.zp .cl-panel h2{font-size:17px;margin:2px 0;font-weight:800}
.zp .cl-panel hr{border:0;border-top:1px solid #E1E0E6;margin:10px 0}
.zp .cl-panel p{margin:0 0 8px}
.zp .cl-panel h5{margin:6px 0 4px;font-size:10px}
.zp .cl-panel ol{margin:0;padding-left:16px}
.zp .cl-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:18px;background:#3B3A3C}
.zp .cl-trio .cl-panel{border:0;border-radius:4px}
.zp .cl-fbbox{background:#F0EFF2;border:1px solid #E1E0E6;border-radius:4px;padding:10px;text-align:center;margin-top:10px}
.zp .cl-fbbox p{font-weight:600;margin-bottom:6px}
.zp .cl-ta{background:#fff;border:1px solid #ccc;border-radius:4px;padding:6px;text-align:left;color:#888;margin:8px 0}
.zp .cl-thx{background:#1E7A4A;color:#fff;border-radius:4px;padding:6px 8px;font-weight:600;margin-top:10px}
.zp .cl-tsearch{display:flex;gap:10px;align-items:center;margin-bottom:12px}
.zp .cl-tsearch .cl-sbox{flex:1;margin:0}
.zp .cl-vw{border:1px solid #ccc;border-radius:999px;padding:6px 18px;font-size:12px}
.zp .cl-vw.on{border:2px solid #1d1b20}
.zp .cl-tgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px 18px}
.zp .cl-tg .hd{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.zp .cl-tg .ic{width:20px;height:20px;border-radius:5px;flex:none}
.zp .cl-tg b{font-size:12.5px;display:block}
.zp .cl-tg small{color:#666;font-size:9.5px}
.zp .cl-tg p{margin:0;padding:8px 2px;border-bottom:1px solid #EEE;display:flex;justify-content:space-between;font-size:10.5px}
.zp .cl-tg p span{color:#888}
.zp .cl-hpa{padding:22px 150px 24px}
.zp .cl-hpa h3{font-size:14px;margin:0 0 10px}
.zp .cl-stp{display:flex;align-items:center;margin-top:12px}
.zp .cl-stp span.d,.zp .cl-stp span.c,.zp .cl-stp span.n{width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:8px;color:#fff}
.zp .cl-stp .d{background:#1E7A4A}
.zp .cl-stp .c{background:#1d1b20}
.zp .cl-stp .n{background:#E4E2E6;color:#555!important}
.zp .cl-stp .ln{flex:1;height:3px;background:#E4E2E6}
.zp .cl-stp .ln.on{background:#1E7A4A}
.zp .cl-stl{display:flex;justify-content:space-between;font-size:9.5px;margin:4px 0 12px}
.zp .cl-rh{display:flex;justify-content:space-between;align-items:center}
.zp .cl-health{display:grid;grid-template-columns:repeat(3,1fr);margin:10px 0 12px}
.zp .cl-health > div{display:flex;align-items:center;gap:6px;padding-right:10px}
.zp .cl-health > div+div{border-left:1px solid #ddd;padding-left:14px}
.zp .cl-health strong{font-size:15px}
.zp .cl-health small{color:#555;font-size:8.5px}
.zp .cl-donut.h{width:22px;height:22px}
.zp .cl-kv{width:100%;border-collapse:collapse;border:1px solid #E1E0E6;margin-bottom:10px}
.zp .cl-kv td{padding:6px 10px;border-bottom:1px solid #EEE;font-size:10px}
.zp .cl-kv td:first-child{background:#F6F6F8;font-weight:600;width:45%}
.zp .cl-kv.dim td{color:#999}
.zp .cl-sel{background:#F3F3F5;border:1px solid #E1E0E6;border-radius:4px;padding:10px}
.zp .cl-sel p{margin:2px 0 8px;font-size:10px}
.zp .cl-reg{background:#fff;border:1px solid #E1E0E6;border-radius:4px;padding:6px 10px;display:flex;gap:10px;align-items:center;margin-bottom:4px}
.zp .cl-old{background:#E4E2E6;border-radius:3px;padding:2px 6px}
.zp .cl-num{border:1px solid #ccc;border-radius:3px;padding:2px 10px}
.zp .cl-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid #E1E0E6}
.zp .mock h2{margin:.5em 0;font-weight:700}
.zp .mock h3::before{content:none}
.zp .mock h3,.zp .mock h4{letter-spacing:0;text-wrap:wrap}
.zp .mock p{max-width:none;line-height:1.4;margin:1em 0}
.zp .mock b,.zp .mock strong{color:inherit;font-weight:700}
.zp .mock table{border-collapse:collapse}
.zp .lb [hidden]{display:none!important}
.zp .lb-mockbox{width:min(1100px,100%);max-height:calc(100vh - 140px);overflow:auto;background:#fff;border-radius:4px;box-shadow:0 30px 80px -30px var(--shadow);cursor:default}
.zp .lb-mockbox .mock-wrap{border-radius:4px}
/* the source's progress line, now on the site's status bar */
#progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:0 50%}
/* the source's 34px status bar sat in the flow; the site's is fixed, so the content keeps the
   source's position below it (the site bar's 1px border sits on the source's top padding) */
.zp{padding-top:calc(34px + env(safe-area-inset-top,0px))}
