@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f4f6f8;--panel:#fff;--panel-2:#eef1f5;--panel-3:#e4e9ef;--line:#dde3ea;--line-strong:#c5cdd8;--text:#16191f;--muted:#5f6875;--accent:#0e7490;--accent-strong:#155e75;--on-accent:#fff;--ok:#047857;--ok-tint:#ecfdf5;--ok-line:#a7f3d0;--warn:#b45309;--warn-tint:#fffbeb;--warn-line:#fcd34d;--bad:#b91c1c;--bad-tint:#fef2f2;--bad-line:#fecaca;--accent-tint:#ecfeff;--accent-line:#a5f3fc;--radius-s:6px;--radius:8px;--radius-l:12px;--shadow-float:0 12px 40px #10182838, 0 1px 3px #1018281f;--shadow-pop:0 6px 24px #10182829, 0 1px 2px #1018281a;--ring:0 0 0 3px #0e74902e;--font-sans:"IBM Plex Sans Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--fs-caption:12px;--fs-data:13px;--fs-body:14px;--fs-title:16px;--fs-page:20px;--fs-hero:28px;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--series-5:#e87ba4;--series-6:#008300;--series-other:#9a9891;--grid:#e8ebef;--baseline:#c3c8d0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;scroll-padding-top:72px}@media (pointer:fine){html{overscroll-behavior:none}}body{background:var(--bg);color:var(--text);font:var(--fs-body)/1.5 var(--font-sans);font-feature-settings:"ss02" 0;text-rendering:optimizelegibility;margin:0;overflow-x:hidden}h1,h2,h3{text-wrap:balance;scroll-margin-top:72px}h1{font-size:var(--fs-page);letter-spacing:-.01em;margin:0 0 4px;font-weight:600;line-height:1.25}h2{font-size:var(--fs-title);margin:0 0 10px;font-weight:600;line-height:1.3}h3{font-size:var(--fs-body);margin:0 0 6px;font-weight:600}p{max-width:70ch;margin:0 0 10px}.sub{color:var(--muted);max-width:70ch;margin:0 0 18px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible,[tabindex]:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-s)}.mono{font-family:var(--font-mono);font-size:var(--fs-data);font-variant-numeric:tabular-nums}.num,.money,td.num,th.num{font-variant-numeric:tabular-nums}td.num,th.num,td.money,th.money,.right{text-align:right}.money{white-space:nowrap}.muted{color:var(--muted)}.small{font-size:var(--fs-caption)}.nowrap{white-space:nowrap}.row{align-items:center;gap:10px;min-width:0;display:flex}.row.wrap{flex-wrap:wrap}.spread{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.grow{flex:auto;min-width:0}.stack{flex-direction:column;gap:14px;display:flex}.stack.sections{gap:22px}.clip{text-overflow:ellipsis;white-space:nowrap;max-width:360px;overflow:hidden}.clip-name{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.break{overflow-wrap:anywhere}.shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.side{background:var(--panel);border-right:1px solid var(--line);padding:18px 12px}.brand{letter-spacing:-.01em;padding:2px 10px 18px;font-size:15px;font-weight:600}.brand span{color:var(--accent)}.skip-link{z-index:100;background:var(--panel);color:var(--accent);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:8px 12px;position:absolute;top:-48px;left:12px}.skip-link:focus{top:12px}.nav a{border-radius:var(--radius-s);color:var(--muted);padding:8px 10px;font-weight:500;display:block}.nav a:hover{background:var(--panel-2);color:var(--text);text-decoration:none}.nav a[aria-current=page],.nav a.on{background:var(--accent-tint);color:var(--accent-strong)}.nav-group{padding-top:10px}.nav-group:first-child{padding-top:0}.nav-group>summary{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--fs-caption);color:var(--muted);border-radius:var(--radius-s);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px 4px;font-weight:500;list-style:none;display:flex}.nav-group>summary::-webkit-details-marker{display:none}.nav-group>summary:after{content:"";border-bottom:1.5px solid;border-right:1.5px solid;width:6px;height:6px;margin-right:4px;transition:transform .15s;transform:rotate(-45deg)}.nav-group[open]>summary:after{transform:rotate(45deg)}.nav-group>summary:hover{color:var(--text)}.nav-group>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.nav-group.here>summary{color:var(--text)}.nav-group:not([open])>summary{padding-bottom:8px}.side .who{flex-direction:column;align-items:flex-start;gap:10px;margin-top:24px;padding:0 10px;display:flex}.main{min-width:0;max-width:1280px;padding:24px 28px 60px}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.page-head .sub{margin:2px 0 0}.page-head .actions{flex:none;align-items:center;gap:8px;display:flex}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;overflow-x:auto}.card-head{margin-bottom:12px}.card-head h2{margin:0}.card.lead{border-color:var(--line-strong)}.card.lead>.card-head{border-bottom:1px solid var(--line);margin-bottom:14px;padding-bottom:12px}.card.lead>.card-head h2{font-size:17px}.card.quiet{background:var(--panel-2);border-color:#0000;padding:14px}.card.quiet>.card-head h2{font-size:var(--fs-body);color:var(--muted);font-weight:500}.card.danger{background:var(--bad-tint);border-color:var(--bad-line)}.card.danger>.card-head h2{color:var(--bad);font-size:var(--fs-body)}.list{flex-direction:column;display:flex}.list>*{border-bottom:1px solid var(--line);padding:10px 0}.list>:last-child{border-bottom:none}.list-row{align-items:center;gap:12px;min-width:0;display:flex}.list-row .grow{min-width:0}.list-row .title{overflow-wrap:anywhere;font-weight:500}.list-row .meta{color:var(--muted);font-size:var(--fs-data);overflow-wrap:anywhere}.facts{flex-wrap:wrap;gap:8px 32px;padding:4px 0 2px;display:flex}.fact .n{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:22px;font-weight:600;line-height:1.2}.fact .n.ok{color:var(--ok)}.fact .n.warn{color:var(--warn)}.fact .n.bad{color:var(--bad)}.fact .l{color:var(--muted);font-size:var(--fs-data)}.facts-list{grid-template-columns:max-content 1fr;gap:6px 16px;margin:0;display:grid}.facts-list>div{display:contents}.facts-list dt{color:var(--muted);font-size:var(--fs-data)}.facts-list dd{min-width:0;margin:0}.tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.tile .n{font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:-.01em;font-size:24px;font-weight:600}.tile .l{color:var(--muted);font-size:var(--fs-data)}.tile .hint{color:var(--muted);font-size:var(--fs-caption);margin-top:2px}.tile.alert .n{color:var(--warn)}a.tile{color:inherit}a.tile:hover{border-color:var(--accent);text-decoration:none}.hero .n{font-size:var(--fs-hero);font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:-.015em;font-weight:600;line-height:1.15}table{border-collapse:collapse;width:100%}th{text-align:left;font-size:var(--fs-caption);color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:6px 10px 8px;font-weight:500}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:10px}tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--panel-2)}tfoot td{border-top:1px solid var(--line-strong);border-bottom:none;font-weight:500}tr.clickable{cursor:pointer}tr.clickable:focus-within{background:var(--panel-2)}button,.btn{background:var(--panel);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius-s);font:inherit;cursor:pointer;touch-action:manipulation;padding:7px 12px;font-weight:500;line-height:1.4;transition:background-color .12s,border-color .12s,color .12s}button:hover:not(:disabled){background:var(--panel-2);border-color:var(--muted)}button:active:not(:disabled){background:var(--panel-3)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}button.primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}button.primary:active:not(:disabled){background:#11475a}button.sm{font-size:var(--fs-data);padding:4px 9px}button.danger{color:var(--bad)}button.danger:hover:not(:disabled){background:var(--bad-tint);border-color:var(--bad-line)}button.ghost{background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){background:var(--panel-2);border-color:#0000}button.icon{place-items:center;width:32px;height:32px;padding:0;font-size:16px;line-height:1;display:inline-grid}button.icon.sm{width:28px;height:28px;font-size:14px}button.busy{pointer-events:none;position:relative;color:#0000!important}button.busy:after{content:"";width:14px;height:14px;color:var(--text);border:2px solid;border-right-color:#0000;border-radius:50%;margin:auto;animation:.7s linear infinite spin;position:absolute;inset:0}button.primary.busy:after{color:var(--on-accent)}@keyframes spin{to{transform:rotate(360deg)}}input,select,textarea{background:var(--panel);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius-s);font:inherit;touch-action:manipulation;width:100%;padding:7px 10px}input::placeholder,textarea::placeholder{color:#8a93a0}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--accent);margin:0 6px 0 0}label,.caption{font-size:var(--fs-caption);color:var(--muted);margin-bottom:4px;display:block}label.check{font-size:var(--fs-body);color:var(--text);cursor:pointer;align-items:flex-start;gap:8px;margin:0;display:inline-flex}label.check input[type=checkbox]{flex:none;width:auto;margin:3px 0 0}.fields{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.field-error{color:var(--bad);font-size:var(--fs-caption);margin-top:4px}textarea{resize:vertical}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--bad);background:var(--bad-tint)}.pills{flex-wrap:wrap;gap:6px;display:flex}.pills button{font-size:var(--fs-data);border-radius:999px;padding:4px 11px}.pills button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.pills button .count{opacity:.7;font-variant-numeric:tabular-nums;margin-left:4px}.segmented{border:1px solid var(--line-strong);border-radius:var(--radius-s);display:inline-flex;overflow:hidden}.segmented button,.segmented a{background:var(--panel);color:var(--text);border:none;border-radius:0;padding:7px 12px}.segmented button+button,.segmented a+a{border-left:1px solid var(--line-strong)}.segmented button.on,.segmented a.on,.segmented a[aria-current=page]{background:var(--accent);color:var(--on-accent)}.segmented a:hover{background:var(--panel-2);text-decoration:none}.segmented a.on:hover{background:var(--accent)}.tabs{border-bottom:1px solid var(--line);gap:2px;margin-bottom:16px;display:flex;overflow-x:auto}.tabs button,.tabs a{color:var(--muted);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:9px 12px;font-weight:500}.tabs button:hover,.tabs a:hover{color:var(--text);background:0 0;text-decoration:none}.tabs button.on,.tabs a.on,.tabs [aria-selected=true],.tabs a[aria-current=page]{color:var(--accent);border-bottom-color:var(--accent)}input[type=search]{appearance:none}.badge{font-size:var(--fs-caption);border:1px solid var(--line);background:var(--panel-2);color:var(--muted);white-space:nowrap;border-radius:999px;padding:1px 8px;font-weight:500;line-height:1.5;display:inline-block}.badge.ok{color:var(--ok);border-color:var(--ok-line);background:var(--ok-tint)}.badge.warn{color:var(--warn);border-color:var(--warn-line);background:var(--warn-tint)}.badge.bad{color:var(--bad);border-color:var(--bad-line);background:var(--bad-tint)}.badge.accent{color:var(--accent);border-color:var(--accent-line);background:var(--accent-tint)}.banner{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);overflow-wrap:anywhere;padding:10px 14px}.banner.ok{border-color:var(--ok-line);background:var(--ok-tint);color:#064e3b}.banner.warn{border-color:var(--warn-line);background:var(--warn-tint);color:#7c2d12}.banner.bad{border-color:var(--bad-line);background:var(--bad-tint);color:#7f1d1d}.banner.install{background:var(--panel);align-items:center;gap:12px;margin-bottom:16px;display:flex}.banner.install img{border-radius:var(--radius-s);flex:none}.empty{color:var(--muted);text-align:center;max-width:46ch;margin:0 auto;padding:28px 16px}.empty .linkish{font-weight:500}.err{color:var(--bad);font-size:var(--fs-data);overflow-wrap:anywhere}.progress{flex-direction:column;gap:3px;min-width:72px;display:inline-flex}.progress .track{background:var(--panel-3);border-radius:2px;height:4px;overflow:hidden}.progress .fill{background:var(--accent);height:100%}.progress.done .fill{background:var(--ok)}.modal-backdrop{z-index:50;overscroll-behavior:contain;background:#10182873;justify-content:center;align-items:flex-start;padding:6vh 16px 24px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--shadow-float);flex-direction:column;width:100%;max-width:520px;max-height:88dvh;display:flex;position:relative}.modal.wide{max-width:860px}.modal-close{position:absolute;top:10px;right:12px}.modal-head{border-bottom:1px solid var(--line);padding:14px 52px 12px 18px}.modal-head h2{font-size:var(--fs-title);overflow-wrap:anywhere}.modal-body{overscroll-behavior:contain;padding:18px;overflow-y:auto}.modal-body p,.modal-body .banner{overflow-wrap:anywhere}.modal-actions{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin-top:18px;padding-top:14px;display:flex}.modal-actions>button,.modal-actions>a,.row>button,.row>.btn,.banner.install button{white-space:nowrap;flex:none}.modal-actions .status{color:var(--muted);font-size:var(--fs-data);margin-right:auto}.modal-actions.sticky{background:var(--panel);z-index:1;margin-bottom:-18px;padding-bottom:18px;position:sticky;bottom:-18px}.modal-backdrop.sheet-backdrop{justify-content:flex-end;align-items:stretch;padding:0}.modal.sheet{border-width:0 0 0 1px;border-radius:0;max-width:480px;height:100%;max-height:none;animation:.18s ease-out sheet-in}.modal.sheet.wide{max-width:720px}@keyframes sheet-in{0%{opacity:.6;transform:translate(24px)}}@keyframes sheet-up{0%{opacity:.6;transform:translateY(24px)}}.menu-anchor{display:inline-block;position:relative}.menu{z-index:40;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:190px;box-shadow:var(--shadow-pop);margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);right:0}.menu.left{left:0;right:auto}.menu button,.menu a{text-align:left;border-radius:var(--radius-s);width:100%;color:var(--text);background:0 0;border:none;padding:8px 10px;font-weight:400;display:block}.menu button:hover:not(:disabled),.menu a:hover,.menu button:focus-visible{background:var(--panel-2);outline:none;text-decoration:none}.menu button.danger{color:var(--bad)}.menu button.danger:hover:not(:disabled){background:var(--bad-tint)}.menu .sep{background:var(--line);height:1px;margin:4px 6px}.menu .hint{color:var(--muted);font-size:var(--fs-caption);display:block}.combobox{position:relative}.combobox ul{z-index:40;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-pop);overscroll-behavior:contain;max-height:280px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.combobox li{border-radius:var(--radius-s);cursor:pointer;justify-content:space-between;gap:10px;padding:7px 10px;display:flex}.combobox li[aria-selected=true],.combobox li:hover{background:var(--panel-2)}.combobox li .hint{color:var(--muted);font-size:var(--fs-caption);white-space:nowrap}.combobox li.none{color:var(--muted);cursor:default}.toasts{z-index:90;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:min(440px,100% - 32px);display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;background:var(--text);color:#fff;border-radius:var(--radius);width:100%;box-shadow:var(--shadow-pop);font-size:var(--fs-data);align-items:center;gap:12px;padding:10px 12px 10px 14px;animation:.16s ease-out toast-in;display:flex}.toast .grow{overflow-wrap:anywhere;min-width:0}.toast button{color:#fff;background:0 0;border-color:#ffffff59}.toast button:hover:not(:disabled){background:#ffffff1f;border-color:#fff9}.toast.bad{background:var(--bad)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}details.disclosure>summary{cursor:pointer;color:var(--muted);font-size:var(--fs-data);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:6px 0;font-weight:500;list-style:none;display:flex}details.disclosure>summary::-webkit-details-marker{display:none}details.disclosure>summary:before{content:"▸";font-size:11px;transition:transform .12s}details.disclosure[open]>summary:before{transform:rotate(90deg)}details.disclosure>summary:hover{color:var(--text)}.drag-handle{cursor:grab;color:var(--muted);-webkit-user-select:none;user-select:none;background:0 0;border:none;padding:0 2px;font-size:15px;line-height:1}.drag-handle:hover:not(:disabled){color:var(--text);background:0 0;border:none}.drag-handle:active{cursor:grabbing}tr.dragging{opacity:.4}tr.drop-above>td{box-shadow:inset 0 2px 0 var(--accent)}tr.drop-below>td{box-shadow:inset 0 -2px 0 var(--accent)}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-left:2px solid var(--line);padding:8px 0 8px 18px;position:relative}.timeline li:before{content:"";background:var(--line);border-radius:50%;width:8px;height:8px;position:absolute;top:14px;left:-5px}.timeline li:first-child:before{background:var(--accent)}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login .card{width:min(340px,100%)}.login .notice-card{width:min(400px,100%)}.link-row{font:inherit;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-weight:500}.link-row:hover:not(:disabled){background:0 0;border:none;text-decoration:underline}.sort-header{all:unset;cursor:pointer;font:inherit;color:inherit;align-items:baseline;gap:2px;transition:color .12s;display:inline-flex}.sort-header:hover{color:var(--accent)}.sort-header:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.linkish{all:unset;cursor:pointer;color:var(--accent);text-decoration:underline}.linkish:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.build-chart{position:relative}.build-chart svg{font:11px/1 var(--font-sans);display:block}.build-chart .grid{stroke:var(--line);stroke-width:1px}.build-chart .tick{fill:var(--muted);font-variant-numeric:tabular-nums}.build-chart .name{fill:var(--text);font-size:12px}.build-chart .value{fill:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.build-chart .row-mark{cursor:pointer;outline:none}.build-chart .row-mark .hit{fill:#0000}.build-chart .row-mark.hover .hit,.build-chart .row-mark:focus-visible .hit{fill:var(--panel-2)}.build-chart .row-mark.hover .name,.build-chart .row-mark:focus-visible .name{fill:var(--accent);text-decoration:underline}.build-chart .row-mark.hover .stock,.build-chart .row-mark:focus-visible .stock{filter:brightness(1.12)}.build-chart .stock.ok,.swatch.stock.ok{fill:var(--ok);background:var(--ok)}.build-chart .stock.caps,.swatch.stock.caps{fill:var(--bad);background:var(--bad)}.build-chart .stock.optional,.swatch.stock.optional{fill:var(--muted);background:var(--muted)}.build-chart .incoming,.swatch.incoming{opacity:.75}.build-chart .incoming.ok,.build-chart .incoming.caps,.swatch.incoming.ok{fill:var(--warn);background:var(--warn)}.build-chart .incoming.optional{fill:var(--muted);opacity:.35}.build-chart .buildable-line{stroke:var(--accent-strong);stroke-width:2px}.build-chart .ref-label{fill:var(--text);font-weight:600}.chart-tip{z-index:2;pointer-events:none;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);width:max-content;max-width:260px;box-shadow:var(--shadow-pop);overflow-wrap:anywhere;padding:8px 10px;font-size:12px;position:fixed}.chart-tip .tip-name{margin-bottom:4px;font-weight:600}.chart-tip .tip-row{line-height:1.5}.chart-tip .tip-caps{color:var(--bad)}.chart-tip .tip-value{font-size:13px;font-weight:700}.chart-tip .tip-key{vertical-align:middle;width:10px;height:2px;margin-right:6px;display:inline-block}.chart-legend{color:var(--muted);flex-wrap:wrap;gap:6px 16px;margin-top:8px;font-size:12px;display:flex}.chart-legend span{align-items:center;gap:6px;display:inline-flex}.chart-legend .swatch{border-radius:3px;width:12px;height:12px;display:inline-block}.chart-legend .swatch.line-key{height:2px}.chart-legend .key{border-top:2px solid var(--accent-strong);width:18px;height:0;display:inline-block}.chart{position:relative}.chart svg{width:100%;font:11px/1 var(--font-sans);display:block;overflow:visible}.chart .grid{stroke:var(--grid);stroke-width:1px}.chart .baseline{stroke:var(--baseline);stroke-width:1px}.chart .tick{fill:var(--muted);font-variant-numeric:tabular-nums}.chart .value{fill:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.chart .name{fill:var(--text);font-size:13px}.chart .mark{cursor:default;outline:none}.chart .mark .hit{fill:#0000}.chart .mark.hover .hit,.chart .mark:focus-visible .hit{fill:var(--panel-2)}.chart .mark.hover .seg,.chart .mark:focus-visible .seg{filter:brightness(1.08)}.s1{fill:var(--series-1);background:var(--series-1)}.s2{fill:var(--series-2);background:var(--series-2)}.s3{fill:var(--series-3);background:var(--series-3)}.s4{fill:var(--series-4);background:var(--series-4)}.s5{fill:var(--series-5);background:var(--series-5)}.s6{fill:var(--series-6);background:var(--series-6)}.s-other{fill:var(--series-other);background:var(--series-other)}.dropzone{border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--bg);align-items:center;gap:12px;padding:12px;display:flex}.dropzone.missing{border-color:var(--bad-line);background:var(--bad-tint)}.dropzone .thumb{border-radius:var(--radius-s);object-fit:cover;background:var(--panel-2);width:56px;height:56px;color:var(--muted);border:1px solid var(--line);flex:none;place-items:center;font-size:11px;display:grid}.dropzone input[type=file]{display:none}.receipt-view{justify-content:center;display:flex}.receipt-view img{border-radius:var(--radius);border:1px solid var(--line);max-width:100%;max-height:72vh}.receipt-view iframe{border:1px solid var(--line);border-radius:var(--radius);width:100%;height:72vh}.receipt-desc{overflow-wrap:anywhere;font-weight:500}.only-sm{display:none}@media (width<=1100px){.hide-md{display:none}.clip{max-width:220px}}@media (width<=720px){.shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.side{z-index:30;border-right:none;border-bottom:1px solid var(--line);padding:calc(10px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) 10px calc(12px + env(safe-area-inset-left));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex;position:sticky;top:0}.brand{padding:0;font-size:14px}.nav-desk{display:none}.app-switch{font-size:var(--fs-data);display:inline-flex}.app-switch a{padding:6px 10px}.side .who{flex-direction:row;align-items:center;gap:8px;margin:0;padding:0}.side .who .muted{text-overflow:ellipsis;white-space:nowrap;max-width:90px;display:inline;overflow:hidden}.tabbar{z-index:45;background:var(--panel);border-top:1px solid var(--line);padding:4px env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{text-align:center;font-size:var(--fs-data);color:var(--muted);padding:12px 2px;font-weight:500}.tabbar a[aria-current=page],.tabbar a.on{color:var(--accent);box-shadow:inset 0 2px 0 var(--accent)}.tabbar a:hover{background:var(--panel-2);text-decoration:none}.main{padding:16px calc(16px + env(safe-area-inset-right)) calc(150px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}.page-head{flex-wrap:wrap}.page-head .actions{margin-left:auto}.fab{right:16px;bottom:calc(66px + env(safe-area-inset-bottom));z-index:40;box-shadow:var(--shadow-pop);border-radius:999px;padding:13px 20px;font-weight:600;display:block;position:fixed}.toasts{bottom:calc(76px + env(safe-area-inset-bottom))}.hide-sm{display:none}.only-sm{display:block}.clip{max-width:160px}.hero .n{font-size:26px}input,select,textarea{font-size:16px}button.sm,.btn.sm{min-height:36px;padding:7px 12px}button.icon{width:36px;height:36px}.modal-close{min-width:40px;min-height:40px}.card table td .row{flex-wrap:wrap}.spread>button,.spread .row>button{white-space:nowrap}.modal-backdrop{padding:3vh 8px 8px}.modal-backdrop.sheet-backdrop{justify-content:stretch;align-items:flex-end}.modal.sheet,.modal.sheet.wide{border-radius:var(--radius-l) var(--radius-l) 0 0;border-width:1px 0 0;max-width:none;height:auto;max-height:92dvh;animation:.18s ease-out sheet-up}.modal.sheet .modal-body{padding-bottom:calc(18px + env(safe-area-inset-bottom))}}@media (width<=380px){.fab .fab-label{display:none}.fab{padding:12px 18px;font-size:20px;line-height:1}}.app-switch,.tabbar,.fab{display:none}@media (width<=720px){.app-switch{display:inline-flex}.tabbar{display:grid}.fab{display:block}}@media (height<=500px) and (width<=1000px){.shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.side{z-index:30;border-right:none;border-bottom:1px solid var(--line);padding:calc(8px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) 8px calc(12px + env(safe-area-inset-left));justify-content:space-between;align-items:center;gap:8px;display:flex;position:sticky;top:0}.brand{padding:0}.nav-desk{display:none}.app-switch{display:inline-flex}.side .who{flex-direction:row;align-items:center;margin:0;padding:0}.tabbar{z-index:45;background:var(--panel);border-top:1px solid var(--line);padding:2px env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{text-align:center;font-size:var(--fs-data);color:var(--muted);padding:8px 2px}.tabbar a[aria-current=page],.tabbar a.on{color:var(--accent);box-shadow:inset 0 2px 0 var(--accent)}.main{padding-bottom:110px}.fab{right:16px;bottom:calc(52px + env(safe-area-inset-bottom));z-index:40;border-radius:999px;display:block;position:fixed}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.link-row .clip{display:block}.history{margin:0;padding:0;list-style:none;position:relative}.history:before{content:"";background:var(--line);width:2px;position:absolute;top:10px;bottom:6px;left:7px}.history>li{padding:0 0 14px 28px;position:relative}.tl-dot{background:var(--panel);border:2px solid var(--muted);border-radius:50%;width:14px;height:14px;position:absolute;top:6px;left:1px}.tl-dot.in{border-color:var(--ok);background:color-mix(in srgb, var(--ok) 25%, var(--panel))}.tl-dot.out{border-color:var(--bad);background:color-mix(in srgb, var(--bad) 18%, var(--panel))}.tl-dot.fix{border-color:var(--warn)}.tl-dot.add{border-style:dashed;border-color:var(--accent)}.tl-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tl-form .segmented button{font-size:var(--fs-data);padding:6px 10px}.tl-form input.grow{flex:200px;width:auto;min-width:0}.tl-day{font-size:var(--fs-caption);color:var(--muted);margin:2px 0 6px;font-weight:500}.tl-item .tl-day+.tl-dot{top:28px}.tl-line{align-items:baseline;gap:10px;min-width:0;display:flex}.tl-delta{min-width:42px;font-weight:600}.tl-delta.in{color:var(--ok)}.tl-delta.out{color:var(--bad)}.tl-delta.fix{color:var(--warn)}.tl-what{overflow-wrap:anywhere;flex:auto;min-width:0}.tl-balance{font-size:var(--fs-data);flex:none}.tl-meta{margin-top:1px}.tl-empty{padding-top:4px}.order-split{border-top:1px solid var(--line);gap:8px;padding-top:12px;display:grid}.split-row{grid-template-columns:minmax(0,1fr) auto 110px auto;align-items:center;gap:8px;display:grid}.split-row select{min-width:0}.split-row .cost{text-align:right}.warn-text{color:var(--warn)}@media (width<=720px){.split-row{grid-template-columns:minmax(0,1fr) auto auto}.split-row .cost{display:none}}.dim td{opacity:.6}.segmented{max-width:100%;overflow-x:auto}.segmented .on .muted{color:inherit;opacity:.8}.device-work{gap:16px;display:grid}.device-work.with-palette{grid-template-columns:minmax(0,1fr) 300px;align-items:start}.bom-drop.over{outline:2px dashed var(--accent);outline-offset:-4px;background:var(--accent-tint)}.select-bar{border-radius:var(--radius-s);background:var(--panel-2);margin-bottom:10px;padding:8px 10px}.palette{flex-direction:column;max-height:calc(100vh - 32px);display:flex;position:sticky;top:16px}.palette-list{min-height:0;margin:0 -6px;overflow-y:auto}.palette-group{font-size:var(--fs-caption);color:var(--muted);padding:10px 6px 4px;font-weight:500}.palette-item{border-radius:var(--radius-s);cursor:grab;align-items:center;gap:8px;padding:6px;display:flex}.palette-item:hover{background:var(--panel-2)}.palette-item .grow{min-width:0;display:grid}.palette-item .clip{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.palette-item.archived .grow>:first-child{color:var(--muted)}@media (width<=900px){.device-work.with-palette{grid-template-columns:minmax(0,1fr)}.device-work.with-palette .palette{order:-1;max-height:60vh;position:static}}.cov{gap:4px;min-width:120px;display:grid}.cov-bar{border-radius:3px;gap:2px;height:10px;display:flex;overflow:hidden}.cov.compact .cov-bar{height:8px}.cov-seg{min-width:3px;height:100%;display:block}.cov-seg.have,.cov-key.have{background:var(--ok)}.cov-seg.way,.cov-key.way{background:var(--warn);opacity:.75}.cov-seg.draft,.cov-key.draft{background:repeating-linear-gradient(135deg, var(--warn) 0 2px, var(--warn-tint) 2px 5px)}.cov-seg.gap,.cov-key.gap{background:var(--bad-tint);box-shadow:inset 0 0 0 1px var(--bad);opacity:.85}.cov-text{line-height:1.3}.cov-buy{color:var(--bad);font-weight:600}.cov-legend{flex-wrap:wrap;align-items:center;gap:4px 6px;display:inline-flex}.cov-key{border-radius:2px;width:12px;height:8px;margin-left:6px;display:inline-block}.cov-legend .cov-key:first-child{margin-left:0}.plan-meter{flex:320px;gap:6px;min-width:260px;display:grid}.plan-meter .cov-bar{height:14px}.palette.over{outline:2px dashed var(--bad);outline-offset:-4px;background:var(--bad-tint)}.chart-fold>summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:baseline;gap:12px;list-style:none;display:flex}.chart-fold>summary::-webkit-details-marker{display:none}.chart-fold>summary h2{margin:0}.chart-fold>summary:before{content:"";border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);flex:none;align-self:center;width:7px;height:7px;transition:transform .15s;transform:rotate(-45deg)}.chart-fold[open]>summary:before{transform:rotate(45deg)}.chart-fold>summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--radius-s)}.crumbs ol{font-size:var(--fs-data);color:var(--muted);flex-wrap:wrap;gap:4px;margin:0 0 4px;padding:0;list-style:none;display:flex}.crumbs li+li:before{content:"›";color:var(--muted);margin-right:4px}.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--accent)}.cost-summary{margin:0 0 14px}.cost-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin-bottom:6px;display:flex}.cost-bar{gap:2px;height:14px;display:flex}.cost-bar .seg{min-width:2px}.cost-bar .seg:first-child{border-radius:3px 0 0 3px}.cost-bar .seg:last-child{border-radius:0 3px 3px 0}.cost-bar .price,.cost-key.price{background:var(--accent)}.cost-bar .extra,.cost-key.extra{background:var(--warn)}.pie{grid-template-columns:220px minmax(0,560px);align-items:center;gap:8px 28px;margin-top:6px;display:grid}.pie-ring{width:220px;height:220px;overflow:visible}.pie-ring .slice{stroke:var(--panel);stroke-width:2px;stroke-linejoin:round;cursor:pointer;transform-origin:100px 100px;transition:opacity .15s,transform .15s}.pie-ring .slice.dim{opacity:.3}.pie-ring .slice.hover{transform:scale(1.03)}.pie-n{text-anchor:middle;fill:var(--text);font-variant-numeric:tabular-nums;font-size:19px;font-weight:600}.pie-l{text-anchor:middle;fill:var(--muted);font-size:10px}.pie-keys{gap:2px;margin:0;padding:0;list-style:none;display:grid}.pie-keys button{text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:12px minmax(0,1fr) auto auto;align-items:center;gap:10px;width:100%;padding:6px 10px;font-weight:400;display:grid}.pie-keys button:hover,.pie-keys button.hover,.pie-keys button:focus-visible{background:var(--panel-2)}.pie-keys button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-tint,var(--panel-2))}.pie-keys .swatch{border-radius:3px;width:12px;height:12px}.pie-keys .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pie-keys .amt{font-variant-numeric:tabular-nums;text-align:right;min-width:90px;font-weight:600}@media (width<=640px){.pie{grid-template-columns:1fr;justify-items:center}.pie-keys{width:100%}}@media (prefers-reduced-motion:reduce){.pie-ring .slice{transition:none}}.exp-table{width:100%}.exp-table td{vertical-align:top}.exp-table .date{width:1%;padding-right:16px}.exp-table .what{min-width:0}.exp-table .what .link-row{text-align:left;font-weight:500}.exp-table .amt{text-align:right;font-variant-numeric:tabular-nums;width:34%;font-weight:600}.exp-table .amt .track{height:6px;margin-top:6px;display:block}.exp-table .amt .bar{border-radius:3px 0 0 3px;min-width:3px;height:6px;margin-left:auto;display:block}@media (width<=640px){.exp-table .amt{width:auto}.exp-table .amt .track{display:none}}.list-head{flex-wrap:wrap;align-items:baseline;gap:10px;margin:18px 0 8px;display:flex}.list-head h3{margin:0}.pays-for{border:1px solid var(--line,var(--panel-3));background:var(--panel);border-radius:10px;gap:12px;padding:14px 16px;display:grid}.pays-head{flex-wrap:wrap;align-items:baseline;gap:6px 10px;display:flex}.pays-head h3{margin:0}.pays-items{border-collapse:collapse;width:100%}.pays-items td{border-top:1px solid var(--grid,var(--panel-3));vertical-align:baseline;padding:6px 0}.pays-items tr:first-child td{border-top:0}.pays-items .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;padding-left:14px}.pays-items td.num:last-child{font-weight:600}.pays-payments{gap:2px;margin:0;padding:0;list-style:none;display:grid}.pays-payments li{border-radius:6px;grid-template-columns:90px 1fr auto;gap:10px;padding:3px 6px;display:grid}.pays-payments li.this{background:var(--panel-2);font-weight:600}.pays-payments .num{font-variant-numeric:tabular-nums}.chart .mark.pickable{cursor:pointer}.chart .mark.picked .hit{fill:var(--accent-tint,var(--panel-2))}.nav-count{background:var(--warn);color:#fff;text-align:center;font-variant-numeric:tabular-nums;border-radius:9px;min-width:18px;margin-left:6px;padding:0 5px;font-size:11px;font-weight:600;line-height:18px;display:inline-block}.nav-count.late{background:var(--bad)}.service-paid{color:var(--ok)}.due.late{color:var(--bad)}.cov-cell{min-width:160px}.cov-cell.wide{min-width:200px}@media (width<=720px){.cov-cell,.cov-cell.wide{min-width:110px}td{padding:10px 5px}th{padding:6px 5px 8px}td input[type=checkbox]{margin:0}.pills{gap:8px}.pills button{min-height:36px;padding:6px 13px}.app-switch a{align-items:center;min-height:36px;display:inline-flex}.segmented button,.segmented a{min-height:36px}.sort-header{margin:-9px 0;padding:9px 0}input[type=checkbox],input[type=radio]{width:20px;height:20px}summary{align-items:center;min-height:36px;display:flex}.crumbs a{padding:8px 0;display:inline-block}}
