:root{--canvas: #e4e2de;--frame: #f5f4f1;--card: #ffffff;--sunk: #efeeea;--line: #ebe9e5;--line-strong: #dcd9d3;--ink: #1f1f1d;--ink-2: #4a4945;--muted: #8c8a85;--tile: #3a3a37;--tile-ink: #ffffff;--brand: #7fd36e;--brand-ink: #14320d;--dark-btn: #2b2b29;--dark-btn-ink: #ffffff;--link: #2f6fd6;--good: #3e9a2d;--good-bg: #e7f6e0;--warn: #c86a12;--warn-bg: #fdeedd;--bad: #d9473a;--bad-bg: #fde5e2;--info: #2f6fd6;--info-bg: #e4eefc;--neutral: #6b6a66;--neutral-bg: #f0efec;--radius: 20px;--radius-sm: 12px;--shadow: 0 1px 2px rgba(31, 31, 29, .04), 0 6px 24px rgba(31, 31, 29, .05);--mono: ui-monospace, SFMono-Regular, Menlo, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--canvas: #0c0c0b;--frame: #151514;--card: #1d1d1b;--sunk: #252523;--line: #2a2a27;--line-strong: #383835;--ink: #eeede9;--ink-2: #c5c3be;--muted: #8f8d87;--tile: #3a3a37;--brand: #6cc35b;--brand-ink: #0d230a;--dark-btn: #eeede9;--dark-btn-ink: #1d1d1b;--link: #7aa8f0;--good: #7ccd6c;--good-bg: #1e3319;--warn: #f0a55a;--warn-bg: #3a2814;--bad: #f08074;--bad-bg: #3d1d19;--info: #86b1f2;--info-bg: #182a45;--neutral: #b0aea8;--neutral-bg: #2a2a27;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 24px rgba(0, 0, 0, .25);color-scheme:dark}}:root[data-theme=dark]{--canvas: #0c0c0b;--frame: #151514;--card: #1d1d1b;--sunk: #252523;--line: #2a2a27;--line-strong: #383835;--ink: #eeede9;--ink-2: #c5c3be;--muted: #8f8d87;--tile: #3a3a37;--brand: #6cc35b;--brand-ink: #0d230a;--dark-btn: #eeede9;--dark-btn-ink: #1d1d1b;--link: #7aa8f0;--good: #7ccd6c;--good-bg: #1e3319;--warn: #f0a55a;--warn-bg: #3a2814;--bad: #f08074;--bad-bg: #3d1d19;--info: #86b1f2;--info-bg: #182a45;--neutral: #b0aea8;--neutral-bg: #2a2a27;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 24px rgba(0, 0, 0, .25);color-scheme:dark}:root[data-theme=light]{color-scheme:light}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--canvas);color:var(--ink);font:14px/1.45 -apple-system,BlinkMacSystemFont,SF Pro Text,Inter,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}#root{height:100%}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}code,.pl-mono{font-family:var(--mono);font-size:.86em}h1,h2{margin:0;font-weight:500;letter-spacing:-.01em}.frame{display:grid;grid-template-columns:248px 1fr;height:100%;background:var(--frame)}.side{display:flex;flex-direction:column;gap:1.1rem;padding:1.4rem .9rem 1rem;border-right:1px solid var(--line);overflow-y:auto}.brand{display:flex;align-items:center;gap:.6rem;font-size:1.15rem;font-weight:600;padding:0 .5rem .4rem}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--tile);color:var(--brand)}.nav{display:flex;flex-direction:column;gap:2px}.nav-group{margin:0 0 .3rem;padding:0 .6rem;color:var(--muted);font-size:.8rem}.nav-item{position:relative;display:flex;align-items:center;gap:.7rem;padding:.55rem .7rem;border-radius:11px;color:var(--ink-2);font-size:.95rem}.nav-item:hover{background:var(--sunk);text-decoration:none}.nav-item.is-on{background:var(--brand);color:var(--brand-ink);font-weight:500}.nav-badge{margin-left:auto;min-width:1.4rem;padding:0 .4rem;border-radius:6px;background:var(--sunk);color:var(--ink-2);font-size:.75rem;text-align:center}.nav-item.is-on .nav-badge{background:#ffffff8c;color:var(--brand-ink)}.nav-dot{margin-left:auto;width:8px;height:8px;border-radius:50%;background:var(--warn)}.side-foot{margin-top:auto}.side-version{margin:.6rem .7rem 0;color:var(--muted);font:.72rem var(--mono)}.main{overflow-y:auto;padding:1.6rem 2rem 3rem;min-width:0}.topline{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.3rem}.topline h1{font-size:1.85rem;font-weight:450}.topline p{margin:.2rem 0 0;color:var(--muted)}.topline-actions{display:flex;align-items:center;gap:.6rem}.main>.pl-callout{margin-bottom:1rem}.boot{display:grid;place-items:center;height:100%}.skeleton{width:min(520px,90vw);display:grid;gap:.7rem}.skeleton i,.pl-skeleton i{display:block;height:.9rem;border-radius:6px;background:linear-gradient(90deg,var(--sunk) 25%,var(--line) 50%,var(--sunk) 75%);background-size:200% 100%;animation:shimmer 1.3s linear infinite}.pl-skeleton{display:grid;gap:.6rem;padding:.4rem 0}.pl-skeleton i:nth-child(2){width:70%}@keyframes shimmer{to{background-position:-200% 0}}.pl-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.2rem 1.3rem;min-width:0}.pl-card-head{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}.pl-card-title{flex:1;min-width:0}.pl-card-title h2{display:flex;align-items:center;gap:.5rem;font-size:1.12rem}.pl-card-title p{margin:.15rem 0 0;color:var(--muted);font-size:.85rem}.pl-card-actions{display:flex;gap:.5rem;align-items:center}.pl-card>.pl-callout{margin-top:1rem}.pl-tile{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:11px;background:var(--tile);color:var(--tile-ink)}.pl-count{display:inline-grid;place-items:center;min-width:1.4rem;height:1.3rem;padding:0 .35rem;border-radius:6px;background:var(--sunk);color:var(--muted);font-size:.75rem;font-weight:500}.pl-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.1rem;align-items:start}.pl-side,.pl-stack{display:grid;gap:1.1rem;min-width:0}@media(max-width:1180px){.pl-grid{grid-template-columns:1fr}}.pl-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:1.1rem .4rem;margin-bottom:1.1rem}.pl-stat{display:flex;align-items:center;gap:.9rem;padding:0 1rem;min-width:0}.pl-stat+.pl-stat{border-left:1px solid var(--line)}.pl-stat .pl-tile{width:42px;height:42px}.pl-stat-body{display:flex;flex-direction:column;min-width:0;flex:1}.pl-stat-label{color:var(--muted);font-size:.85rem}.pl-stat-value{font-size:1.55rem;font-weight:450;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pl-stat-value small{font-size:1rem;color:var(--muted);font-weight:400}.pl-stat-chip{align-self:flex-end;padding-bottom:.3rem}@media(max-width:1100px){.pl-stats{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:1.1rem}.pl-stat:nth-child(3){border-left:0}}.pl-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.12rem .5rem;border-radius:6px;font-size:.78rem;font-weight:500;white-space:nowrap}.pl-chip-good{background:var(--good-bg);color:var(--good)}.pl-chip-warn{background:var(--warn-bg);color:var(--warn)}.pl-chip-bad{background:var(--bad-bg);color:var(--bad)}.pl-chip-info{background:var(--info-bg);color:var(--info)}.pl-chip-neutral{background:var(--neutral-bg);color:var(--neutral)}.pl-chip+.pl-chip{margin-left:.3rem}.pl-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font:inherit;font-weight:500;font-size:.88rem;line-height:1.2;padding:.5rem .85rem;border-radius:10px;cursor:pointer;white-space:nowrap;background:var(--card);color:var(--ink);border:1px solid var(--line-strong);transition:background .12s,border-color .12s}.pl-btn:hover:not(:disabled){background:var(--sunk)}.pl-btn:disabled{opacity:.45;cursor:not-allowed}.pl-btn-dark{background:var(--dark-btn);color:var(--dark-btn-ink);border-color:var(--dark-btn)}.pl-btn-dark:hover:not(:disabled){background:var(--dark-btn);filter:brightness(1.15)}.pl-btn-ghost{background:transparent;border-color:transparent;color:var(--ink-2)}.pl-btn-danger{color:var(--bad)}.pl-btn.is-busy{position:relative;color:transparent!important}.pl-btn.is-busy:after{content:"";position:absolute;width:1em;height:1em;border:2px solid var(--muted);border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.spin{display:inline-block;width:.8em;height:.8em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.link{background:none;border:0;padding:0;font:inherit;color:var(--link);cursor:pointer;text-decoration:underline}.pl-callout{display:flex;gap:.75rem;align-items:flex-start;padding:.85rem 1rem;border-radius:14px;font-size:.9rem}.pl-callout strong{display:block;font-weight:500}.pl-callout p{margin:.1rem 0 0}.pl-callout-icon{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:9px;color:#fff}.pl-callout-info{background:var(--info-bg);color:var(--info)}.pl-callout-info .pl-callout-icon{background:var(--info)}.pl-callout-good{background:var(--good-bg);color:var(--good)}.pl-callout-good .pl-callout-icon{background:var(--good)}.pl-callout-warn{background:var(--warn-bg);color:var(--warn)}.pl-callout-warn .pl-callout-icon{background:var(--warn)}.pl-callout-bad{background:var(--bad-bg);color:var(--bad)}.pl-callout-bad .pl-callout-icon{background:var(--bad)}.pl-callout code{color:inherit}.pl-seg{display:inline-flex;gap:2px;padding:3px;border-radius:12px;background:var(--sunk)}.pl-seg button{display:inline-flex;align-items:center;gap:.4rem;border:0;background:transparent;font:inherit;color:var(--ink-2);padding:.4rem .8rem;border-radius:9px;cursor:pointer}.pl-seg button.is-on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px #00000014;font-weight:500}.pl-filters{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.pl-filters button{border:1px solid var(--line-strong);background:var(--card);color:var(--ink-2);font:inherit;padding:.35rem .8rem;border-radius:999px;cursor:pointer}.pl-filters button.is-on{background:var(--dark-btn);color:var(--dark-btn-ink);border-color:var(--dark-btn)}.pl-table-wrap{overflow-x:auto;margin:0 -.3rem}.pl-table{width:100%;border-collapse:collapse;font-size:.9rem}.pl-table th{text-align:left;font-weight:400;color:var(--muted);padding:.5rem .3rem .6rem;border-bottom:1px solid var(--line);white-space:nowrap}.pl-table td{padding:.8rem .3rem;border-bottom:1px solid var(--line);vertical-align:middle}.pl-table tr:last-child td{border-bottom:0}.pl-right{text-align:right}.pl-muted{color:var(--muted)}.pl-break{word-break:break-all}.pl-name{display:flex;align-items:center;gap:.65rem;min-width:0}.pl-name>div{display:flex;flex-direction:column;min-width:0}.pl-name small{color:var(--muted);font-size:.8rem}.pl-name a{color:inherit}.pl-avatar{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;background:#2a9d7c;color:#fff;font-weight:600;font-size:.85rem}.pl-version-old{font:inherit;border:0;padding:.1rem .45rem;border-radius:6px;background:var(--warn-bg);color:var(--warn);cursor:pointer;white-space:nowrap}.pl-version-old:disabled{cursor:default}.pl-detail{color:var(--muted);max-width:22rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pl-empty{color:var(--muted);text-align:center;padding:1.6rem 1rem;margin:0}.pl-footnote{color:var(--muted);font-size:.84rem;margin:.7rem 0}.pl-todo{list-style:none;margin:0;padding:0}.pl-todo li{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.75rem 0;border-top:1px solid var(--line)}.pl-todo li:first-child{border-top:0;padding-top:0}.pl-todo strong{display:block;font-weight:500}.pl-todo small{display:block;color:var(--muted);font-size:.82rem;margin-top:.1rem}.pl-allgood{display:flex;align-items:center;gap:.5rem;color:var(--good);margin:0}.pl-meter-head{display:flex;justify-content:space-between;color:var(--muted);font-size:.85rem;margin-bottom:.4rem}.pl-meter{height:8px;border-radius:99px;background:var(--sunk);overflow:hidden}.pl-meter span{display:block;height:100%;border-radius:99px;background:var(--brand)}.pl-meter span.is-warn{background:var(--warn)}.pl-meter span.is-bad{background:var(--bad)}.pl-kv{display:grid;grid-template-columns:auto 1fr;gap:.55rem 1rem;margin:1rem 0 0;font-size:.88rem}.pl-kv dt{color:var(--muted)}.pl-kv dd{margin:0;text-align:right;min-width:0}.pl-steps{margin:0;padding:0 0 0 1.2rem;display:grid;gap:.6rem}.pl-steps strong{display:block;font-weight:500}.pl-steps small{color:var(--muted)}.pl-releases{display:grid}.pl-release{padding:1rem 0;border-top:1px solid var(--line)}.pl-release:first-child{border-top:0;padding-top:0}.pl-release-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.pl-release-actions{display:flex;gap:.4rem;flex-wrap:wrap}.pl-release-note{margin:.5rem 0 0 2.6rem;color:var(--muted);font-size:.85rem}.pl-commits{list-style:none;margin:.6rem 0 0 2.6rem;padding:.6rem .8rem;border-radius:var(--radius-sm);background:var(--sunk);display:grid;gap:.3rem;font-size:.86rem}.pl-jobs{list-style:none;margin:0 0 .8rem;padding:0;display:grid;gap:2px}.pl-jobs button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.6rem;border:0;background:transparent;font:inherit;color:var(--ink);text-align:left;padding:.5rem .55rem;border-radius:10px;cursor:pointer}.pl-jobs button small{display:block;color:var(--muted);font-size:.78rem}.pl-jobs li.is-on button,.pl-jobs button:hover{background:var(--sunk)}.pl-log{margin:0;max-height:340px;overflow:auto;padding:.8rem;border-radius:var(--radius-sm);background:#1b1b19;color:#dcdad4;font:.76rem/1.5 var(--mono);white-space:pre-wrap;word-break:break-word}input:not([type=radio]){font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line-strong);border-radius:10px;padding:.55rem .7rem;width:100%;min-width:0}input:focus{outline:2px solid var(--link);outline-offset:-1px}.pl-form{display:grid;gap:.8rem}.pl-form label,.pl-fields label{display:grid;gap:.3rem;font-size:.85rem;color:var(--muted)}.pl-fields{display:flex;gap:.7rem;align-items:flex-end;margin-bottom:.8rem}.pl-fields label{flex:1}.pl-fields .pl-narrow{flex:0 0 9rem}.pl-row{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-top:.4rem}.pl-sites-edit{margin-bottom:.4rem}.pl-roles{display:grid;gap:.5rem}.pl-roles label{display:grid;grid-template-columns:auto 1fr;column-gap:.6rem;align-items:center;padding:.7rem .8rem;border:1px solid var(--line-strong);border-radius:12px;cursor:pointer;color:var(--ink)}.pl-roles label.is-on{border-color:var(--ink);background:var(--sunk)}.pl-roles input[type=radio]{grid-row:span 2;accent-color:var(--ink)}.pl-roles strong{font-weight:500}.pl-roles small{color:var(--muted)}.pl-roles input:not([type=radio]){grid-column:2;margin-top:.4rem}.pl-secret{display:flex;gap:.5rem;align-items:center;margin:.8rem 0}.pl-secret code{flex:1;min-width:0;padding:.6rem .7rem;border-radius:10px;background:var(--sunk);word-break:break-all}.pl-dialog{border:0;border-radius:22px;padding:1.6rem;width:min(460px,92vw);background:var(--card);color:var(--ink);box-shadow:0 20px 60px #00000040}.pl-dialog::backdrop{background:#14141259;backdrop-filter:blur(2px)}.pl-dialog form{display:grid;gap:.9rem}.pl-dialog h2{font-size:1.25rem}.pl-dialog p{margin:0;color:var(--muted)}.pl-dialog-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.3rem}.toast{position:fixed;right:1.4rem;bottom:1.4rem;max-width:min(460px,90vw);padding:.8rem 1rem;border-radius:14px;box-shadow:var(--shadow);background:var(--card);border-left:4px solid var(--good);z-index:10}.toast-bad{border-left-color:var(--bad)}@media(max-width:860px){.frame{grid-template-columns:1fr}.side{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line)}.main{padding:1.2rem 1rem 2rem}}.up-run{display:grid;gap:.8rem}.up-head{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;font-size:.88rem}.up-open{margin-left:auto;display:inline-flex;align-items:center;gap:.3rem;font-size:.88rem}.up-meter{height:6px}.up-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.45rem 1rem;font-size:.86rem}.up-step{display:flex;align-items:center;gap:.5rem;color:var(--ink-2)}.up-dot{display:grid;place-items:center;flex:none;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line-strong);color:#fff}.up-dot .spin{width:10px;height:10px;border-width:1.5px;color:var(--info)}.up-step-ok .up-dot{background:var(--good);border-color:var(--good)}.up-step-run{color:var(--ink);font-weight:500}.up-step-run .up-dot{border-color:var(--info)}.up-step-bad .up-dot{background:var(--bad);border-color:var(--bad)}.up-step-bad{color:var(--bad)}.up-step-wait,.up-step-skip{color:var(--muted)}.up-result{margin-top:.2rem}.up-older{list-style:none;margin:1rem 0 0;padding:.8rem 0 0;border-top:1px solid var(--line);display:grid;gap:.5rem;font-size:.86rem}.up-older li{display:flex;align-items:center;gap:.7rem}.up-links{margin-left:auto;display:flex;gap:.8rem}.ro-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:.8rem;overflow-x:auto;padding-bottom:.2rem}.ro-col{background:var(--sunk);border-radius:16px;padding:.7rem;display:grid;gap:.6rem;align-content:start;min-height:120px}.ro-col.is-open{background:color-mix(in srgb,var(--brand) 14%,var(--sunk))}.ro-col-head{display:flex;justify-content:space-between;align-items:baseline;padding:.1rem .2rem;font-size:.9rem}.ro-card{background:var(--card);border-radius:13px;padding:.75rem;display:grid;gap:.55rem;box-shadow:0 1px 2px #0000000d}.ro-card .pl-name small{text-transform:capitalize}.ro-card-foot{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.ro-bad{box-shadow:inset 0 0 0 1.5px var(--bad)}.ro-note{margin:0;padding:.45rem .55rem;border-radius:9px;background:var(--bad-bg);color:var(--bad);font-size:.8rem}.ro-select{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line-strong);border-radius:9px;padding:.35rem .5rem}.ro-stable{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem;margin-bottom:1rem}.ro-stable-item{display:grid;gap:.3rem;padding:.8rem;border-radius:14px;background:var(--sunk)}.ro-stable-item strong{font-size:1.05rem}@media(max-width:1100px){.ro-stable{grid-template-columns:repeat(2,minmax(0,1fr))}}.up-lastcheck{display:flex;align-items:center;gap:.4rem;margin:0 0 .9rem;color:var(--muted);font-size:.85rem}.up-open{margin-left:auto;display:inline-flex;gap:.9rem;align-items:center;font-size:.88rem}.up-pipeline{list-style:none;margin:.2rem 0 0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:relative}.up-stage{display:grid;justify-items:center;gap:.35rem;text-align:center;font-size:.82rem;color:var(--muted);position:relative;padding:0 .2rem}.up-stage:before{content:"";position:absolute;top:9px;left:calc(-50% + 12px);right:calc(50% + 12px);height:2px;background:var(--line-strong)}.up-stage:first-child:before{display:none}.up-stage-ok:before,.up-stage-run:before,.up-stage-bad:before{background:var(--good)}.up-stage .up-dot{position:relative;z-index:1;background:var(--card)}.up-stage-ok .up-dot{background:var(--good);border-color:var(--good)}.up-stage-run .up-dot{border-color:var(--info)}.up-stage-bad .up-dot{background:var(--bad);border-color:var(--bad);color:#fff;font-weight:700;font-size:.7rem}.up-stage-skip{opacity:.5}.up-stage-ok,.up-stage-run{color:var(--ink)}.up-stage-bad{color:var(--bad)}.up-stage-label{font-weight:500}.up-older li{flex-wrap:wrap}.bad-text{color:var(--bad)}.pv{display:grid;gap:1rem}.pv-head{display:grid;gap:.8rem}.pv-head-top{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap}.pv-tools{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.pv-tools a.pl-btn{text-decoration:none}.pv-about{margin:0;color:var(--ink-2);max-width:75ch}.pv-links{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.pv-links button{border:1px solid var(--line-strong);background:var(--card);color:var(--ink-2);font:inherit;font-size:.86rem;padding:.32rem .75rem;border-radius:999px;cursor:pointer}.pv-links button.is-on{background:var(--dark-btn);color:var(--dark-btn-ink);border-color:var(--dark-btn)}.pv-meta{margin-left:auto;display:flex;align-items:center;gap:.6rem;font-size:.82rem;flex-wrap:wrap}.pv-stage{display:flex;justify-content:center}.pv-device{max-width:100%;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);background:var(--card);border:1px solid var(--line);transition:width .25s ease}.pv-bar{display:flex;align-items:center;gap:6px;padding:.5rem .8rem;border-bottom:1px solid var(--line);background:var(--sunk);font-size:.78rem;color:var(--muted)}.pv-bar i{width:10px;height:10px;border-radius:50%;background:var(--line-strong);display:inline-block}.pv-bar span{margin-left:.5rem}.pv-device iframe{display:block;width:100%;height:calc(100vh - 270px);min-height:520px;border:0;background:#fff}.theme-switch{display:flex;gap:2px;padding:3px;margin:.4rem .3rem .2rem;border-radius:11px;background:var(--sunk)}.theme-switch button{flex:1;display:grid;place-items:center;border:0;background:transparent;color:var(--muted);padding:.35rem 0;border-radius:8px;cursor:pointer}.theme-switch button.is-on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px #0000001a}.theme-switch button:focus-visible{outline:2px solid var(--link)}.auth{min-height:100%;display:grid;place-items:center;padding:2rem 16px;background:var(--frame)}.auth-card{width:min(400px,100%);display:grid;gap:.9rem;background:var(--card);border-radius:24px;box-shadow:var(--shadow);padding:2rem}.auth-card h1{font-size:1.5rem}.auth-card p{margin:-.4rem 0 .2rem}.auth-card label{display:grid;gap:.3rem;font-size:.85rem;color:var(--muted)}.auth-brand{display:flex;align-items:center;gap:.7rem;margin-bottom:.4rem}.auth-brand .brand-mark{width:38px;height:38px;border-radius:11px}.auth-brand strong{display:block;font-size:1.1rem}.auth-brand small{color:var(--muted)}.me{display:flex;align-items:center;gap:.6rem;padding:.5rem .55rem;margin:.3rem .2rem 0;border-radius:12px}.me .pl-avatar{width:30px;height:30px;font-size:.8rem}.me div{min-width:0;flex:1}.me strong{display:block;font-size:.88rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.me small{color:var(--muted);font-size:.75rem;text-transform:capitalize}.me-out{border:0;background:transparent;color:var(--muted);padding:.35rem;border-radius:8px;cursor:pointer}.me-out:hover{background:var(--sunk);color:var(--ink)}.roles-key{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin-top:.9rem;font-size:.82rem;color:var(--muted)}.sw-table th small{display:block;font-size:.74rem;color:var(--muted);font-weight:400}.sw{display:inline-flex;align-items:center;gap:.55rem;cursor:pointer}.sw input{position:absolute;opacity:0;width:1px;height:1px}.sw-track{position:relative;width:38px;height:22px;border-radius:99px;background:var(--line-strong);transition:background .15s;flex:none}.sw-thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transition:transform .15s}.sw input:checked+.sw-track{background:var(--brand-deep, var(--good))}.sw input:checked+.sw-track .sw-thumb{transform:translate(16px)}.sw input:focus-visible+.sw-track{outline:2px solid var(--link);outline-offset:2px}.sw input:disabled+.sw-track{opacity:.5}.sw.is-busy .sw-track{opacity:.6}.hp{display:grid;grid-template-columns:250px minmax(0,1fr);gap:1.1rem;align-items:start}.hp-nav{display:flex;flex-direction:column;gap:.9rem;padding:.9rem .7rem}.hp-nav-group{display:flex;flex-direction:column;gap:2px}.hp-nav .nav-item{width:100%;border:0;background:none;font:inherit;font-size:.9rem;text-align:left;cursor:pointer;padding:.45rem .6rem}.hp-nav .nav-item.is-on{background:var(--brand)}.hp-search{font:inherit;font-size:.9rem;color:var(--ink);background:var(--sunk);border:1px solid transparent;border-radius:10px;padding:.5rem .7rem}.hp-search:focus{outline:none;border-color:var(--line-strong);background:var(--card)}.hp-none{padding:0 .6rem;font-size:.88rem}.hp-select{display:none}.hp-body{max-width:980px}.hp-head{padding:.2rem .2rem 0}.hp-head p{margin:0}.hp-head h2{margin:.15rem 0 .25rem;font-size:1.6rem;font-weight:500}.hp-head p:last-child{color:var(--ink-2)}.hp-pager{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:.3rem}.hp-prose{display:grid;gap:.65rem;color:var(--ink-2);line-height:1.55}.hp-prose+.hp-prose,.pl-table-wrap+.hp-prose,.hp-prose+.pl-table-wrap{margin-top:1rem}.hp-prose h3{margin:0;font-size:1rem;font-weight:500;color:var(--ink)}.hp-prose p,.hp-prose ol,.hp-prose ul{margin:0}.hp-prose ol,.hp-prose ul{padding-left:1.2rem;display:grid;gap:.45rem}.hp-prose strong,.hp-steps strong{color:var(--ink);font-weight:600}.hp-steps{margin:0;padding:0;list-style:none;counter-reset:hp;display:grid;gap:.8rem;color:var(--ink-2);line-height:1.55}.hp-steps>li{counter-increment:hp;position:relative;min-height:28px;padding:.15rem 0 0 2.6rem}.hp-steps>li:before{content:counter(hp);position:absolute;left:0;top:0;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--sunk);color:var(--ink);font:500 .8rem var(--mono)}.pl-callout+.hp-steps,.hp-steps+.hp-code{margin-top:1rem}.hp-grid{display:grid;gap:.8rem}.hp-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.hp-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.hp-tile{display:grid;gap:.4rem;align-content:start;padding:.95rem 1rem;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:.9rem;line-height:1.5}.hp-tile h4{margin:0;font-size:.98rem;font-weight:500;color:var(--ink)}.hp-tile>.pl-chip{justify-self:start}.hp-table td{vertical-align:top;line-height:1.5}.hp-table td:first-child{min-width:9rem}.hp-code{position:relative;margin-top:.8rem}.hp-code pre,.hp-code-plain{margin:0;padding:.9rem 5rem .9rem 1rem;border-radius:var(--radius-sm);background:var(--sunk);font:.8rem/1.55 var(--mono);white-space:pre-wrap;word-break:break-word;overflow-x:auto}.hp-code button{position:absolute;top:.45rem;right:.45rem}.hp-figure{margin:0;display:grid;gap:.6rem;min-width:0}.hp-figure figcaption{font-size:.9rem}.hp-chart{overflow-x:auto;padding:.6rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);text-align:center}.hp-chart svg{max-width:100%;height:auto}.hp-kv dd{text-align:left}.hp-glossary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1.4rem;margin:0}.hp-glossary dt{font-weight:500}.hp-glossary dd{margin:.15rem 0 0;color:var(--ink-2);font-size:.9rem;line-height:1.5}.hp-walk{display:grid;grid-template-columns:220px minmax(0,1fr);gap:1rem}.hp-walk-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.hp-walk-list button{display:flex;align-items:center;gap:.6rem;width:100%;padding:.4rem .5rem;border:0;border-radius:10px;background:none;font:inherit;font-size:.9rem;color:var(--ink-2);text-align:left;cursor:pointer}.hp-walk-list button:hover{background:var(--sunk)}.hp-walk-n{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line-strong);font:500 .75rem var(--mono);color:var(--muted)}.hp-walk-list .is-done .hp-walk-n{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.hp-walk-list .is-on button{background:var(--sunk);color:var(--ink);font-weight:500}.hp-walk-list .is-on .hp-walk-n{background:var(--tile);border-color:var(--tile);color:var(--tile-ink)}.hp-walk-stage{display:grid;gap:.8rem;align-content:start;padding:1.1rem 1.2rem;border-radius:var(--radius-sm);background:var(--sunk)}.hp-walk-stage h3{margin:0;font-size:1.2rem;font-weight:500}.hp-walk-stage p{margin:0;color:var(--ink-2);line-height:1.6}.hp-meter{height:4px;border-radius:4px;background:var(--line);overflow:hidden}.hp-meter span{display:block;height:100%;background:var(--brand);transition:width .4s}.hp-map-wrap{overflow-x:auto}.hp-map{width:100%;min-width:640px;height:auto;display:block}.hp-map-box{fill:var(--card);stroke:var(--line-strong);stroke-width:1.5}.hp-map-hub{fill:var(--tile)}.hp-map-hub+.hp-map-t,.hp-map-hub~.hp-map-t{fill:var(--tile-ink)}.hp-map-t{fill:var(--ink);font-size:16px;font-weight:600}.hp-map-s{fill:var(--muted);font-size:12.5px}.hp-map-hub~.hp-map-s{fill:#c9c7c1}.hp-map-code,.hp-map-ctl{fill:none;stroke-width:2.5;stroke-dasharray:7 6;animation:hp-flow 1.6s linear infinite}.hp-map-code{stroke:var(--good)}.hp-map-ctl{stroke:var(--info)}.hp-map-lbl-bg{fill:var(--card);stroke:var(--line)}.hp-map-lbl{fill:var(--ink-2);font:11.5px var(--mono)}.hp-key{display:inline-block;width:18px;height:3px;margin:0 .3rem .2rem .6rem;border-radius:2px;vertical-align:middle}.hp-key-code{background:var(--good);margin-left:0}.hp-key-ctl{background:var(--info)}@keyframes hp-flow{to{stroke-dashoffset:-26}}@media(prefers-reduced-motion:reduce){.hp-map-code,.hp-map-ctl{animation:none}}@media(max-width:1100px){.hp{grid-template-columns:1fr}.hp-nav{display:none}.hp-select{display:block;width:100%;padding:.55rem .7rem}.hp-grid-3{grid-template-columns:1fr}}@media(max-width:760px){.hp-grid-2,.hp-glossary,.hp-walk{grid-template-columns:1fr}}.pl-subhead{margin:.9rem 0 .5rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.pl-checkline{display:flex;gap:.5rem;align-items:center;margin:0 0 .5rem;font-size:.88rem}.pl-site-where{display:block}.pl-ip{border:0;background:none;padding:0;font:inherit;font-family:var(--mono);color:inherit;cursor:copy}.pl-ip:hover{text-decoration:underline}.hp-nav .nav-item svg,.hp-walk-n{flex:none}.hp-nav .nav-item{align-items:flex-start;line-height:1.35}.hp-nav .nav-item svg{margin-top:.1rem}.si-detail td{padding-top:0}.si-kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.35rem 1rem;margin:0;padding:.7rem .9rem;border-radius:var(--radius-sm);background:var(--sunk);font-size:.84rem}.si-kv dt{color:var(--muted)}.si-kv dd{margin:0;min-width:0;overflow-wrap:anywhere}.ob-list{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.6rem}.ob-list li{display:grid;gap:.35rem;padding:.7rem .8rem;border:1px solid var(--line);border-radius:var(--radius-sm)}.ob-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;font-size:.88rem}.ob-actions{display:flex;gap:.3rem;margin-left:auto}.ob-actions a{text-decoration:none}.ob-versions{font-size:.78rem;color:var(--ink-2);overflow-wrap:anywhere}.pl-ask-msg{color:var(--ink-2);line-height:1.5;font-size:.95rem}.pl-ask-field{display:grid;gap:.35rem;font-size:.85rem;color:var(--muted)}.pl-ask-field input{font:inherit;font-size:.95rem;color:var(--ink);background:var(--card);border:1px solid var(--line-strong);border-radius:10px;padding:.55rem .7rem}.pl-ask-field input:focus{outline:2px solid var(--brand);outline-offset:1px}.pl-ask-bad{color:var(--bad)}.pl-dialog .pl-btn-danger{background:var(--bad);border-color:var(--bad);color:#fff}.pl-dialog .pl-btn-danger:hover{filter:brightness(1.08)}.pl-dialog[open]{animation:pl-pop .14s ease-out}@keyframes pl-pop{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.pl-dialog[open]{animation:none}}.si-builtin{display:block;margin-top:.15rem;color:var(--muted);font-size:.72rem;font-family:var(--mono);white-space:nowrap}
