@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/archivo-vietnamese-wght-normal-XAtsl5Q_.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/archivo-latin-ext-wght-normal-C4zznr8T.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/archivo-latin-wght-normal-E0tuGl4L.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff) format("woff");unicode-range:U+0460-052F,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:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.center{min-height:70vh;display:grid;place-items:center;color:var(--ink-3)}.muted{color:var(--ink-3)}.small{font-size:var(--fs-sm)}.mono{font-family:var(--font-mono);font-feature-settings:"tnum" 1}.error{color:var(--accent);font-size:var(--fs-sm);margin:var(--s2) 0}.overline{font-size:var(--fs-xs);letter-spacing:var(--caps);text-transform:uppercase;color:var(--ink-3);font-weight:600}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);height:38px;padding:0 var(--s4);border-radius:var(--r-md);font-family:var(--font-ui);font-size:var(--fs-body);font-weight:600;border:1px solid transparent;cursor:pointer;transition:background .12s,border-color .12s,box-shadow .12s;text-decoration:none}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.is-busy{opacity:.6;cursor:progress;pointer-events:none}.btn-secondary{background:var(--panel);color:var(--ink);border-color:var(--line-strong)}.btn-secondary:hover{border-color:var(--ink-3)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover)}.btn-ghost{background:transparent;color:var(--ink-2)}.btn-ghost:hover{color:var(--ink)}.btn-sm{height:32px;padding:0 var(--s3);font-size:var(--fs-sm)}.btn-block{width:100%}.btn-lg{height:46px;padding:0 var(--s5);font-size:var(--fs-h3, 1.0625rem)}.iconbtn{width:30px;height:30px;display:grid;place-items:center;border:0;background:transparent;border-radius:var(--r-sm);color:var(--ink-3);cursor:pointer;font-size:14px}.iconbtn:hover{background:var(--bg-sunken);color:var(--ink)}.iconbtn-bordered{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line-strong);background:var(--panel);border-radius:var(--r-md);color:var(--ink-2);cursor:pointer}.iconbtn-bordered:hover{border-color:var(--ink-3);color:var(--ink)}.input{width:100%;height:40px;padding:0 var(--s3);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--panel);font:inherit;font-size:var(--fs-body);color:var(--ink)}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--s3)}.field label{font-size:var(--fs-sm);color:var(--ink-2);font-weight:600}.field2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}.auth{min-height:100vh;display:grid;place-items:center;background:radial-gradient(1200px 480px at 50% -12%,var(--accent-tint),transparent 60%),var(--bg)}.authcard{width:380px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-pop);padding:var(--s6);animation:rise .4s ease both}.authcard .brandlogo-img{height:40px;margin-bottom:var(--s5)}.authcard h1{font-size:var(--fs-h1);font-weight:700;margin:0 0 var(--s2)}.authcard .sub{color:var(--ink-2);font-size:var(--fs-sm);margin:0 0 var(--s5)}.authnotice{margin-bottom:var(--s3);color:var(--ink-2);font-size:var(--fs-sm)}.consent-summary{display:grid;gap:var(--s3);padding:var(--s3);margin:0 0 var(--s4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg)}.consent-callback,.consent-permissions{display:grid;gap:var(--s1)}.consent-callback>span,.consent-permissions>span{color:var(--ink-2);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--caps);text-transform:uppercase}.consent-callback code{overflow-wrap:anywhere;color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-sm)}.consent-permissions p{margin:0}.consent-permissions ul{display:grid;gap:var(--s1);margin:0;padding-left:var(--s4);color:var(--ink-2);font-size:var(--fs-sm)}.authswitch{margin-top:var(--s4);font-size:var(--fs-sm);color:var(--ink-2);text-align:center}.linkbtn{background:none;border:0;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;padding:0}.divider{display:flex;align-items:center;gap:var(--s3);color:var(--ink-3);font-size:var(--fs-xs);margin:var(--s4) 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line)}.topnav{height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--s5);background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.topnav-left,.topnav-right{display:flex;align-items:center;gap:var(--s4)}.topnav-left{min-width:0;flex:1 1 auto}.topnav-right{flex:0 0 auto}.topnav .brandlogo-img{height:30px}.brand-home{display:inline-flex;align-items:center;flex:0 0 auto;border-radius:var(--r-sm);transition:opacity .12s}.brand-home:hover{opacity:.78}.brand-home:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.topnav-crumb{display:flex;align-items:center;min-width:0;gap:var(--s2);padding-left:var(--s4);border-left:1px solid var(--line);font-size:var(--fs-sm)}.topnav-crumb .cl{display:block;min-width:0;color:var(--ink-2);text-decoration:none;font-weight:600;white-space:nowrap}.topnav-crumb .project-crumb{max-width:min(24vw,240px);overflow:hidden;text-overflow:ellipsis}.topnav-crumb .cl:hover{color:var(--ink)}.topnav-crumb .sep{color:var(--line-strong)}.topnav-crumb .cur{color:var(--ink);font-weight:600}.ws-chip{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-pill);font-size:var(--fs-sm);font-weight:600;color:var(--ink)}.ws-chip svg{color:var(--brand-blue)}.acct{position:relative}.acct-btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 6px 0 4px;border:1px solid transparent;background:transparent;border-radius:var(--r-pill);color:var(--ink-3);cursor:pointer}.acct-btn:hover{background:var(--bg-sunken)}.avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(150deg,var(--brand-blue),#2c5a96);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:transparent;border:0;cursor:default}.menu{position:absolute;right:0;top:44px;z-index:31;min-width:220px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-pop);padding:6px}.menu-head{padding:8px 10px;font-size:var(--fs-xs);color:var(--ink-3);font-family:var(--font-mono);border-bottom:1px solid var(--line);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis}.menu-item{display:flex;align-items:center;gap:var(--s2);width:100%;height:34px;padding:0 10px;border:0;background:transparent;border-radius:var(--r-sm);font:inherit;font-size:var(--fs-sm);color:var(--ink);cursor:pointer;text-decoration:none}.menu-item:hover{background:var(--bg-sunken)}.page{max-width:1080px;margin:0 auto;padding:var(--s6) var(--s5) var(--s8)}.connections-page{max-width:880px}.connections-head{display:flex;justify-content:space-between;gap:var(--s5);margin-bottom:var(--s6)}.connections-head h1{margin:var(--s1) 0 var(--s2);font-size:var(--fs-2xl)}.connections-head p{max-width:620px;margin:0}.connections-list{border-block:1px solid var(--line)}.connection-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:var(--s4);padding:var(--s4) 0;border-bottom:1px solid var(--line)}.connection-row:last-child{border-bottom:0}.connection-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--bg-sunken);color:var(--ink-2)}.connection-copy{min-width:0}.connection-copy h2{margin:0 0 3px;font-size:var(--fs-md)}.connection-copy p{margin:0;color:var(--ink-3);font-size:var(--fs-xs)}.connection-scopes{display:flex;flex-wrap:wrap;gap:5px;margin-top:var(--s2)}.connection-scopes span{padding:3px 7px;border:1px solid var(--line);border-radius:999px;color:var(--ink-2);font:600 10px / 1.2 var(--font-mono)}.connection-revoke{min-height:40px}.connections-empty{min-height:220px;display:grid;place-items:center;align-content:center;gap:var(--s2);padding:var(--s7);border:1px dashed var(--line-strong);border-radius:var(--r-lg);text-align:center}.connections-empty h2,.connections-empty p{margin:0}@media(max-width:640px){.connection-row{grid-template-columns:42px minmax(0,1fr)}.connection-revoke{grid-column:2;justify-self:start}}.dash-top{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s5)}.dash-top h1{font-size:var(--fs-display);font-weight:800;letter-spacing:-.02em;margin:0}.dash-actions{display:flex;align-items:center;gap:var(--s3)}.seg2{display:inline-flex;padding:3px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--panel)}.seg2 button{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:0;background:transparent;border-radius:var(--r-sm);font:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--ink-3);cursor:pointer}.seg2 button.on{background:var(--ink);color:#fff}.statgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4);margin-bottom:var(--s5)}.statcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s4) var(--s5);box-shadow:var(--sh1)}.statcard-top{display:flex;align-items:center;justify-content:space-between;color:var(--ink-3)}.statcard-val{margin-top:var(--s2);font-family:var(--font-mono);font-size:30px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}.searchbar{display:flex;align-items:center;gap:var(--s2);height:44px;padding:0 var(--s4);margin-bottom:var(--s5);background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--r-md);color:var(--ink-3)}.searchbar-clear{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin-right:-8px;border:none;background:transparent;border-radius:var(--r-sm);color:var(--ink-3);cursor:pointer}.searchbar-clear:hover{color:var(--ink);background:var(--bg-sunken)}.searchbar:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}.searchbar input{flex:1;border:0;background:transparent;outline:none;font:inherit;font-size:var(--fs-body);color:var(--ink)}.dash-project-filter{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);min-height:44px;margin-bottom:var(--s3);padding:0 var(--s4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-sunken);color:var(--ink-2);font-size:var(--fs-sm)}.dash-project-filter>span{display:inline-flex;align-items:center;gap:5px;min-width:0}.dash-project-filter b{overflow:hidden;color:var(--ink);text-overflow:ellipsis;white-space:nowrap}.dash-project-filter button{min-height:44px;padding:0;border:0;background:transparent;color:var(--accent);font:inherit;font-weight:600;white-space:nowrap;cursor:pointer}.ptable{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh1)}.ptable-head,.ptable-row{display:grid;grid-template-columns:2.2fr 1.5fr 1.5fr 1fr .6fr;align-items:center;gap:var(--s3);padding:0 var(--s5)}.ptable-head{height:44px;border-bottom:1px solid var(--line)}.ptable-head span{font-size:var(--fs-xs);letter-spacing:var(--caps);text-transform:uppercase;color:var(--ink-3);font-weight:600}.ptable-row{height:60px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;box-shadow:inset 3px 0 0 transparent;transition:background .1s,box-shadow .1s}.ptable-row:last-child{border-bottom:0}.ptable-row:hover{background:var(--bg-sunken);box-shadow:inset 3px 0 0 var(--accent)}.pt-name{font-weight:700;color:var(--ink);letter-spacing:-.01em}.pt-cell{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);font-size:var(--fs-sm);min-width:0}.pt-cell svg{color:var(--ink-3);flex:none}.num{justify-self:end;text-align:right}.nomatch{padding:var(--s5) 0}.dash-pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);min-height:44px;margin-top:var(--s4)}.dash-pagination-summary{font-size:var(--fs-sm);color:var(--ink-3);font-variant-numeric:tabular-nums}.dash-pagination-controls{display:flex;align-items:center;gap:4px}.dash-pagination-controls button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 12px;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--ink-2);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer}.dash-pagination-controls button:hover:not(:disabled){border-color:var(--line-strong);background:var(--panel);color:var(--ink)}.dash-pagination-controls button[aria-current=page]{border-color:var(--ink);background:var(--ink);color:#fff}.dash-pagination-controls button:disabled{opacity:.38;cursor:default}.dash-page-ellipsis{display:inline-flex;align-items:center;justify-content:center;width:28px;color:var(--ink-3)}.cardgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(264px,1fr));gap:var(--s4)}.projcard{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh1);text-decoration:none;color:inherit;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;animation:rise .35s ease both}.projcard:hover{transform:translateY(-3px);box-shadow:var(--sh2);border-color:var(--accent-line)}.projcard.static{cursor:default}.projcard.static:hover{transform:none;box-shadow:var(--sh1);border-color:var(--line)}.thumb-svg{display:block;width:100%;height:128px;border-bottom:1px solid var(--line)}.card-thumb-link{display:block;cursor:pointer}.card-thumb-link:hover .thumb-svg{background:var(--bg-sunken)}.projcard .body{display:flex;flex-direction:column;gap:4px;padding:var(--s4)}.projcard .pn{font-size:var(--fs-h2);font-weight:700;letter-spacing:-.01em}.projcard .pm{color:var(--ink-3);font-family:var(--font-mono);font-size:var(--fs-xs)}.card-open{margin-top:var(--s2)}.proj-stats{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh1);margin-bottom:var(--s4);animation:rise .35s ease both}.proj-stats-row{display:flex;flex-wrap:wrap;align-items:stretch;row-gap:var(--s2)}.proj-stat{padding:var(--s3) var(--s4);min-width:88px;border-left:1px solid var(--line)}.proj-stat:first-child{border-left:0}.proj-stat-val{font-family:var(--font-mono);font-feature-settings:"tnum" 1;font-size:17px;font-weight:600;margin-top:2px}.proj-stat-val.muted{color:var(--ink-3)}.proj-stat-sub{font-size:var(--fs-sm);color:var(--ink-2);margin-top:2px}.due{color:var(--warn, #b45309)}.proj-stat.total{margin-left:auto;text-align:right;border-left:0}.proj-stat.total .proj-stat-val{font-size:21px;font-weight:800}.proj-models{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3);padding:var(--s2) var(--s4);border-top:1px solid var(--line);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--ink-2)}.proj-models b{color:var(--ink);font-weight:600}.floorgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:var(--s3)}.floorcard{position:relative;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:0;overflow:hidden;box-shadow:var(--sh1);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;animation:rise .35s ease both}.floorcard:hover{transform:translateY(-2px);box-shadow:var(--sh2);border-color:var(--accent-line)}.floorcard-thumb{position:relative;aspect-ratio:16 / 9;width:100%;overflow:hidden;background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px;border-bottom:1px solid var(--line)}.floorcard-thumb img{width:100%;height:100%;object-fit:contain;object-position:center;padding:var(--s2)}.floorcard-thumb .thumb-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.floorcard-thumb .floor-tag{position:absolute;top:var(--s2);right:var(--s2);background:var(--panel);pointer-events:none}.floorcard-body{display:flex;flex-direction:column;gap:var(--s1);padding:var(--s3);flex:1}.floorcard-name{font-size:var(--fs-body);font-weight:700;line-height:1.25;color:var(--ink);text-decoration:none}.floorcard-name:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.floorcard .iconbtn{position:relative;z-index:1}.floorcard:hover .floorcard-name{color:var(--accent)}.floorcard-sub{font-size:var(--fs-sm);color:var(--ink-2)}.floor-tag{font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--ink-2);border:1px solid var(--line);border-radius:999px;padding:1px 9px;white-space:nowrap}.floor-tag.plan{color:var(--accent);border-color:var(--accent)}.floorcard-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-top:auto}.floorcard-total{font-size:var(--fs-h2);font-weight:700}.floorcard.ghost{border:1.5px dashed var(--line-strong);background:transparent;box-shadow:none}.floorcard.ghost:hover{border-color:var(--accent);background:var(--accent-tint);transform:none;box-shadow:none}.ghost-copy{text-align:center;padding:var(--s4) var(--s4) 0;margin:0}.ghost-new{flex:1;min-height:88px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s2);border:0;background:none;font:inherit;font-weight:600;color:var(--ink-2);cursor:pointer}.ghost-upload{min-height:44px;display:flex;align-items:center;justify-content:center;gap:var(--s2);border-top:1px dashed var(--line-strong);font-size:var(--fs-sm);font-weight:600;color:var(--ink-3);cursor:pointer}.ghost-new:hover,.ghost-upload:hover{color:var(--accent)}.ghost-upload.is-busy{pointer-events:none;opacity:.6}.floorcard.ghost.hero{grid-column:1 / -1;max-width:560px;justify-self:center;width:100%;padding-block:var(--s5)}.empty{text-align:center;padding:var(--s8) var(--s5);border:1px dashed var(--line-strong);border-radius:var(--r-lg);color:var(--ink-2)}.empty.sm{padding:var(--s6) var(--s5)}.empty h2{font-size:var(--fs-h1);margin:0 0 var(--s2);color:var(--ink)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:grid;place-items:center;padding:var(--s4);background:#14181e6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border:0;padding:0;background:transparent;cursor:default}.modal{position:relative;z-index:1;inset:auto;margin:0;width:460px;max-width:100%;max-height:90vh;overflow:auto;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-pop);padding:var(--s5);animation:rise .2s ease both}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s4)}.modal-head h2{font-size:var(--fs-h1);font-weight:700;margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:var(--s2);margin-top:var(--s5)}.pe-removal-review{display:grid;gap:var(--s4)}.pe-removal-review p{margin:0}.pe-removal-counts{display:flex;align-items:center;gap:var(--s4);padding-block:var(--s2);border-block:1px solid var(--line)}.pe-removal-counts span{display:flex;align-items:center;gap:6px;color:var(--ink-2)}.pe-removal-counts b{color:var(--ink);font-family:var(--mono);font-size:var(--fs-body)}.pe-removal-options{display:grid;gap:var(--s2);margin:0;padding:0;border:0}.pe-removal-options legend{margin-bottom:var(--s2);font-size:var(--fs-sm);font-weight:700}.pe-removal-options label{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:var(--s3);min-height:52px;padding:9px 10px;border:1px solid transparent;border-radius:var(--r-sm);background:var(--bg-sunken);cursor:pointer}.pe-removal-options label:has(input:checked){border-color:color-mix(in srgb,var(--accent) 34%,var(--line));background:var(--accent-tint);box-shadow:inset 3px 0 var(--accent)}.pe-removal-options input{margin-top:3px}.pe-removal-options span{display:grid;gap:2px}.pe-removal-options small{color:var(--ink-2);line-height:1.35}.proj-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4);margin:var(--s2) 0 var(--s4)}.proj-head h1{font-size:var(--fs-display);font-weight:800;letter-spacing:-.02em;margin:0 0 var(--s3)}.proj-title{display:flex;align-items:center;gap:var(--s2)}.proj-title h1{margin:0 0 var(--s3)}.proj-title .iconbtn{margin-bottom:var(--s3)}.proj-rename{display:flex;align-items:center;gap:var(--s2);margin:0 0 var(--s3)}.proj-rename-input{width:auto;min-width:280px;height:44px;font-size:var(--fs-h1);font-weight:700}.proj-order{display:flex;align-items:center;gap:var(--s4);flex-shrink:0}.proj-order-due{display:flex;flex-direction:column;align-items:flex-end;gap:2px;line-height:1.1}.proj-order-amt{font-size:var(--fs-h1);font-weight:800;letter-spacing:-.01em}.proj-order-btn{gap:var(--s2);height:44px;padding-inline:var(--s4);white-space:nowrap}.proj-order-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#ffffff38;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.proj-order-complete{display:flex;align-items:center;gap:var(--s2);color:var(--ok);flex-shrink:0}.proj-order-complete>span{display:flex;flex-direction:column;gap:2px}.proj-order-complete b{color:var(--ink);font-size:var(--fs-sm)}.proj-order-complete small{max-width:250px;color:var(--ink-3);font-size:var(--fs-xs)}.proj-order-history .panelcard-head{align-items:center}.proj-order-history .panelcard-head p{margin:var(--s1) 0 0}.proj-order-history .panelcard-head .btn{height:44px;flex:none}.proj-order-list{border-top:1px solid var(--line)}.proj-order-row{display:grid;grid-template-columns:minmax(130px,1.3fr) auto minmax(90px,.7fr) minmax(90px,.7fr) 18px;align-items:center;gap:var(--s3);min-height:52px;border-bottom:1px solid var(--line);color:var(--ink-2);text-decoration:none}.proj-order-row:last-child{border-bottom:0}.proj-order-row:hover{color:var(--ink)}.proj-order-number{color:var(--ink);font-weight:700}.proj-order-date,.proj-order-total{justify-self:end;font-size:var(--fs-sm)}.proj-order-total{color:var(--ink);font-weight:600}.proj-order-row>svg{justify-self:end;color:var(--ink-3)}@media(max-width:640px){.proj-head{flex-direction:column}.proj-order{width:100%;justify-content:space-between}.proj-order-complete{width:100%}.proj-order-history .panelcard-head{align-items:flex-start}.proj-order-row{grid-template-columns:minmax(0,1fr) auto auto 16px;gap:var(--s2)}.proj-order-date{display:none}}.pdfpick-loading{padding:var(--s6) 0;text-align:center}.pdfpick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--s3);max-height:60vh;overflow-y:auto;padding:var(--s2) 2px}.pdfpick-cell{display:flex;flex-direction:column;gap:var(--s2);padding:var(--s2);border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);cursor:pointer;min-height:44px;transition:border-color .12s,box-shadow .12s,transform .12s}.pdfpick-cell:hover,.pdfpick-cell:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent);transform:translateY(-1px);outline:none}.pdfpick-cell img{width:100%;height:160px;object-fit:contain;background:#fff;border-radius:var(--r-sm)}.pdfpick-num{font-size:13px;font-weight:600;text-align:center}.pdfpick-nums{display:flex;flex-wrap:wrap;gap:var(--s2);padding:var(--s3) 0}.exp-opts{display:flex;flex-direction:column;gap:var(--s2);padding:var(--s2) 0}.exp-opt{display:flex;align-items:center;gap:var(--s3);width:100%;text-align:left;padding:var(--s3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);cursor:pointer;min-height:44px;transition:border-color .12s ease}.exp-opt:hover:not(:disabled),.exp-opt:focus-visible{border-color:color-mix(in srgb,var(--ink) 30%,var(--line))}.exp-opt.is-sel{border-color:var(--accent)}.exp-opt:disabled{opacity:.55;cursor:default}.exp-opt-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:var(--r-md);background:var(--bg-sunken);color:var(--ink-2);border:1px solid var(--line)}.exp-opt-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.exp-opt-title{font-weight:600}.exp-opt-blurb{font-size:var(--fs-sm);color:var(--muted)}.exp-opt-tick{flex:none;width:22px;height:22px;display:grid;place-items:center;border-radius:999px;color:var(--panel)}.exp-opt-tick.on{background:var(--accent)}.exp-detail{height:128px;padding:var(--s2) 2px 0;overflow:hidden;display:flex;flex-direction:column}.exp-detail>.muted.small{margin:6px 2px}.exp-ds{display:flex;flex-direction:column;gap:6px;min-height:0}.exp-ds-all{align-self:flex-start;background:none;border:0;padding:2px 0;font:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--accent);cursor:pointer}.exp-ds-list{overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding-right:4px}.exp-ds-item{display:flex;align-items:center;gap:var(--s2);padding:6px 4px;border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-body)}.exp-ds-item:hover{background:var(--bg-sunken)}.exp-ds-item input{width:17px;height:17px;flex:none}.card-actions{display:flex;align-items:center;gap:var(--s2);margin-top:var(--s2)}.card-actions .card-open{flex:1;margin-top:0}.meta-row{display:flex;flex-wrap:wrap;gap:var(--s4);color:var(--ink-2);font-size:var(--fs-sm)}.meta-row span{display:inline-flex;align-items:center;gap:6px}.meta-row svg{color:var(--ink-3)}.proj-actions{display:flex;align-items:center;gap:var(--s2);flex:none}.panelcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s5);box-shadow:var(--sh1);margin-bottom:var(--s4)}.panelcard h2,.panelcard h3{font-size:var(--fs-h2);font-weight:700;margin:0 0 var(--s3)}.panelcard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s4)}.panelcard-head h2,.panelcard-head h3{margin:0}.onboard{max-width:480px;margin:6vh auto 0;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh1);padding:var(--s6);animation:rise .4s ease both}.onboard .thumb-svg{height:120px;border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:var(--s5)}.onboard h2{font-size:var(--fs-h1);font-weight:800;margin:0 0 var(--s2)}.onboard p{color:var(--ink-2);margin:0 0 var(--s5)}.approvals{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh1);padding:var(--s4);margin-bottom:var(--s5)}.approvals-head{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s3)}.approvals-head h2{font-size:var(--fs-lg);font-weight:700;margin:0}.approvals-count{background:var(--accent);color:#fff;border-radius:var(--r-pill);padding:0 8px;font-size:var(--fs-xs);font-weight:700}.approvals-list{list-style:none;margin:0;padding:0}.approvals-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3) 0;border-top:1px solid var(--line)}.approvals-who{display:flex;flex-direction:column;gap:2px}.approvals-email{font-weight:600}.approvals-co,.approvals-date{font-size:var(--fs-xs);color:var(--ink-3)}.approvals-actions{display:flex;gap:var(--s2);flex:none}.pe-work{position:relative;flex:1;min-height:0;display:grid;grid-template-columns:64px minmax(0,1fr) 360px}.pe-work.norail{grid-template-columns:minmax(0,1fr) 360px}.pe-work.solo,.pe-work.solo.norail{grid-template-columns:minmax(0,1fr)}.pe-design-collapse{display:none}@media(min-width:1081px){.pe-work.dcollapsed{grid-template-columns:64px minmax(0,1fr)}.pe-work.dcollapsed.norail{grid-template-columns:minmax(0,1fr)}.pe-work.dcollapsed .pe-design{display:none}.pe-work.dcollapsed .pe-design-toggle{display:inline-flex;position:absolute;top:var(--s3);right:var(--s3);z-index:6}.pe-design-collapse{display:inline-flex;width:36px;height:36px}}.pe-rail{display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:var(--s2) var(--s1);background:var(--panel);border-right:1px solid var(--line);overflow-y:auto}.pe-rail-div{flex:none;height:1px;margin:var(--s2) var(--s2);background:var(--line)}.pe-railbtn{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:52px;padding:7px 2px 6px;border:none;background:transparent;border-radius:var(--r-md);font:inherit;font-size:10px;font-weight:600;color:var(--ink-2);cursor:pointer}.pe-railbtn:hover:not(:disabled){background:var(--bg-sunken);color:var(--ink)}.pe-railbtn.on{background:var(--accent-tint);color:var(--accent)}.pe-railbtn:disabled{opacity:.35;cursor:not-allowed}.pe-rail-tools{display:flex;flex-direction:column;gap:2px}.pe-rail-spacer{flex:1 1 auto;min-height:var(--s3)}.pe-railbtn.view.on,.pe-railbtn.view.on:hover{background:var(--ink);color:var(--panel)}.topnav-actions{display:flex;align-items:center;gap:var(--s2);padding-left:var(--s3);border-left:1px solid var(--line)}.topnav-action{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 var(--s3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);font:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--ink-2);cursor:pointer}.topnav-action:hover:not(:disabled){border-color:var(--line-strong);color:var(--ink)}.topnav-action[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--panel)}.topnav-action:disabled{opacity:.45;cursor:not-allowed}.topnav-action.is-busy{opacity:.7}.pe-design{display:flex;flex-direction:column;min-height:0;background:var(--panel);border-left:1px solid var(--line)}.pe-design-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s2) var(--s3);border-bottom:1px solid var(--line)}.pe-design-tabs{display:inline-flex;border:1px solid var(--line-strong);border-radius:var(--r-md);overflow:hidden}.pe-design-tabs button{display:inline-flex;align-items:center;gap:6px;min-height:44px;border:none;background:transparent;padding:6px 16px;font:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--ink-2);cursor:pointer}.pe-design-tabs button+button{border-left:1px solid var(--line)}.pe-design-tabs button.on{background:var(--ink);color:var(--panel)}.pe-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:11px;font-weight:700}.pe-design-tabs button.on .pe-tab-badge{background:var(--panel);color:var(--ink)}.pe-design-scroll{flex:1;min-height:0;overflow-y:auto;padding:var(--s4)}.pe-design .catb{flex:1;min-height:0;display:flex;flex-direction:column}.pe-design-close,.pe-design-toggle,.pe-design-scrim{display:none}.pe-design-toggle{align-items:center;justify-content:center;gap:4px;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);color:var(--ink-2);box-shadow:var(--sh1);cursor:pointer}.pe-design-toggle:hover{color:var(--ink);border-color:var(--line-strong)}.pe-design-toggle .pe-tab-badge{position:absolute;top:-6px;right:-6px}.pe-stagebar{position:absolute;top:var(--s3);left:var(--s3);z-index:5;display:flex;align-items:center;gap:var(--s2)}.pe-stagebar .pe-scale{background:color-mix(in srgb,var(--panel) 90%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.pe-stagebar.is-elevation{top:auto;bottom:max(var(--s3),env(safe-area-inset-bottom))}@media(any-pointer:coarse){.pe-stagebar .pe-snap{min-height:44px;padding-inline:16px}.cv-wallbtn,.cv-wallbtn.is-elevation{width:44px;height:44px}}@media(max-width:1080px){.pe-work{grid-template-columns:64px minmax(0,1fr)}.pe-work.norail{grid-template-columns:minmax(0,1fr)}.pe-design{position:fixed;inset:0 0 0 auto;width:min(400px,94vw);z-index:60;transform:translate(105%);transition:transform .22s ease;box-shadow:var(--sh2)}.pe-design.open{transform:translate(0)}.pe-design-close{display:inline-flex;width:44px;height:44px}.pe-design-toggle{display:inline-flex;position:absolute;top:var(--s3);right:var(--s3);z-index:6}.pe-design-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:59;border:none;padding:0;background:#0f121847;cursor:pointer}}.pe-scale{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-pill);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-2)}.pe-scale.unset{color:var(--accent);border-color:var(--accent-line);font-family:var(--font-ui);font-weight:600}button.pe-scale{cursor:pointer;font-size:var(--fs-xs)}button.pe-scale:hover{background:var(--accent-tint, #fbeaea)}.pe-seg{display:inline-flex;padding:3px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--panel)}.pe-seg button{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:0;background:transparent;border-radius:var(--r-sm);font:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--ink-3);cursor:pointer}.pe-seg button.on{background:var(--ink);color:var(--panel)}.pe-seg button:disabled{opacity:.4;cursor:not-allowed}.pe-shell{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.pe-stage{position:relative;min-width:0;min-height:0;display:grid;place-items:center;overflow:hidden;background:var(--paper);overscroll-behavior:contain}.pe-stage>.pe-drop{margin:var(--s7, 40px)}.pe-canvas-wrap{position:relative;width:100%;height:100%}.pe-canvas-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s3);background:var(--paper, #fff)}.pe-spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:pe-spin .8s linear infinite}@keyframes pe-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.pe-spinner{animation-duration:2s}}.cv-viewport{position:relative;width:100%;height:100%;overflow:hidden;background:var(--paper);touch-action:none;overscroll-behavior:contain;user-select:none;-webkit-user-select:none;cursor:default}.cv-viewport.panready{cursor:grab}.cv-viewport.panready:active{cursor:grabbing}.cv-viewport.picking{cursor:crosshair}.cv-world{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}.cv-world-raster{z-index:1}.cv-world-design{z-index:3}.cv-raster,.cv-design{position:absolute;top:0;left:0;display:block}.cv-raster{background:transparent}.cv-field{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:2;display:block;pointer-events:none}.cv-draft{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:4;pointer-events:none;overflow:visible}.cv-draft-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:5 4}.cv-draft-rubber{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:2 4;opacity:.7}.cv-draft-vert{fill:var(--panel);stroke:var(--accent);stroke-width:2}.cv-draft-first{fill:var(--accent);stroke:var(--panel);stroke-width:1.5}.cv-draft-close{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-dasharray:3 3;opacity:.8}.cv-edit{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:4;pointer-events:none;overflow:visible}.cv-wallactions{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none}.cv-wallpill{position:absolute;transform:translate(-50%,-50%);display:flex;gap:2px;padding:2px;border-radius:999px;background:var(--panel);border:1px solid var(--line-strong);box-shadow:0 2px 8px #0f172a2e;pointer-events:auto}.cv-wallbtn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer;transition:background .12s,color .12s}.cv-wallbtn:hover{background:var(--accent-tint);color:var(--accent)}.cv-wallbtn.is-open{background:var(--accent);color:#fff}.cv-wallbtn.is-elevation{width:32px;color:var(--ink-3);background:var(--panel);border:1px solid var(--line-strong)}.cv-wallbtn.is-elevation:hover{background:var(--accent-tint);color:var(--accent)}.cv-wallbtn.is-elevation.has-elevation{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.cv-edit-verthit,.cv-edit-addhit{pointer-events:all;fill:transparent}.cv-edit-verthit{cursor:move}.cv-edit-addhit{cursor:copy}.cv-edit-vert{pointer-events:none;fill:var(--panel);stroke:var(--accent);stroke-width:2}.cv-edit-verthit:hover+.cv-edit-vert{fill:var(--accent-tint)}.cv-edit-add{pointer-events:none;fill:var(--accent-tint);stroke:var(--accent);stroke-width:1.5;stroke-dasharray:2 2;opacity:.75}.cv-edit-addhit:hover+.cv-edit-add{opacity:1}.cv-marquee{position:absolute;z-index:5;pointer-events:none;border:1.5px dashed var(--accent);background:var(--accent-tint);opacity:.5}.cv-design{pointer-events:none;overflow:visible}.cv-hud{position:absolute;right:var(--s3);bottom:var(--s3);z-index:7;display:flex;align-items:center;gap:var(--s2);background:#ffffffeb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--r-pill);padding:4px 4px 4px 10px}.cv-zoom{font-size:var(--fs-xs);color:var(--ink-2)}.cv-fit{height:26px;padding:0 12px;border:1px solid var(--line-strong);background:var(--panel);border-radius:var(--r-pill);font:inherit;font-size:var(--fs-xs);font-weight:600;color:var(--ink);cursor:pointer}.cv-fit:hover{border-color:var(--accent)}.pe-line{stroke:var(--accent);stroke-width:2;stroke-dasharray:5 4}.pe-dot{fill:var(--accent);stroke:#fff;stroke-width:1.5;paint-order:stroke}.pe-hint{position:absolute;top:var(--s3);left:50%;transform:translate(-50%);z-index:7;background:#14181ed9;color:#fff;font-size:var(--fs-xs);font-weight:600;padding:var(--s1) var(--s3);border-radius:var(--r-pill);white-space:nowrap;line-height:1.4}.pe-hint.pe-room-draw-hint{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--s2);width:min(430px,calc(100% - 24px));min-height:54px;padding:7px 9px;border:1px solid var(--line-strong);border-left:3px solid var(--accent);border-radius:var(--r-md);background:color-mix(in srgb,var(--panel) 96%,transparent);box-shadow:0 10px 28px #161d2529;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--ink);white-space:normal}.pe-room-draw-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--r-sm);background:var(--accent-tint);color:var(--accent)}.pe-room-draw-copy{display:flex;min-width:0;flex-direction:column;gap:1px;text-align:left}.pe-room-draw-copy strong{overflow:hidden;font-size:var(--fs-sm);line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.pe-room-draw-copy small{color:var(--ink-2);font-size:11px;font-weight:500}.pe-room-draw-hint kbd{min-width:24px;padding:1px 5px;border:1px solid var(--line-strong);border-bottom-color:color-mix(in srgb,var(--line-strong) 75%,var(--ink));border-radius:4px;background:var(--panel);color:var(--ink-2);font-family:var(--font-mono);font-size:10px;font-weight:600;text-align:center}.pe-room-draw-cancel{display:inline-flex;align-items:center;gap:5px;color:var(--ink-3);font-size:10px;font-weight:600}.pe-warn{position:absolute;top:calc(var(--s3) + 34px);left:50%;transform:translate(-50%);z-index:7;background:#9a3412;color:#fff;font-size:var(--fs-xs);font-weight:700;padding:var(--s1) var(--s3);border-radius:var(--r-pill);box-shadow:0 4px 14px #00000040}.pe-warn.pe-note{background:var(--ink);color:var(--paper);font-weight:600}.pe-conflict{display:flex;align-items:center;justify-content:center;gap:var(--s3);background:#9a3412;color:#fff;font-size:var(--fs-sm);font-weight:600;padding:var(--s2) var(--s3)}.pe-conflict .btn-primary{flex:none}.cart-btn{position:relative;width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line-strong);background:var(--panel);border-radius:var(--r-md);color:var(--ink-2);cursor:pointer;transition:border-color .12s,color .12s}.cart-btn:hover{border-color:var(--ink-3);color:var(--ink)}.cart-btn:disabled{cursor:wait;opacity:.62}.cart-btn:disabled:hover{border-color:var(--line-strong);color:var(--ink-2)}.cart-badge{position:absolute;top:-6px;right:-6px;min-width:17px;height:17px;padding:0 4px;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);font-family:var(--font-mono);font-size:10px;font-weight:600;border-radius:var(--r-pill);border:2px solid var(--bg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ckt-drawer{position:fixed;top:0;right:0;bottom:0;left:auto;margin:0;padding:0;border:0;max-width:92vw;max-height:none;width:420px;height:auto;background:var(--panel);color:var(--ink);box-shadow:var(--sh-pop);display:flex;flex-direction:column;animation:ckt-slide .24s cubic-bezier(.22,.61,.36,1)}.ckt-drawer::backdrop{background:#14181e52;animation:ckt-fade .18s ease}@keyframes ckt-fade{0%{opacity:0}}@keyframes ckt-slide{0%{transform:translate(100%)}}.ckt-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line)}.ckt-steps{display:flex;align-items:center;gap:var(--s3)}.ckt-step{display:flex;align-items:center;gap:6px;color:var(--ink-3)}.ckt-step-dot{width:20px;height:20px;border-radius:var(--r-pill);display:grid;place-items:center;background:var(--bg-sunken);color:var(--ink-3);font-family:var(--font-mono);font-size:11px;font-weight:600}.ckt-step.is-current{color:var(--ink)}.ckt-step.is-current .ckt-step-dot{background:var(--accent);color:var(--on-accent)}.ckt-step.is-done .ckt-step-dot{background:var(--brand-blue);color:#fff}.ckt-step-label{font-size:var(--fs-sm);font-weight:600}.ckt-body{flex:1;overflow-y:auto;padding:var(--s4);display:flex;flex-direction:column;gap:var(--s3)}.ckt-empty{text-align:center;color:var(--ink-3);padding:var(--s8) var(--s4);display:flex;flex-direction:column;align-items:center;gap:var(--s2)}.ckt-empty p{margin:0}.ckt-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.ckt-line{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s3);padding:var(--s3) 0;border-bottom:1px solid var(--line)}.ckt-qty{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--ink-2);background:var(--bg-sunken);border-radius:var(--r-sm);min-width:22px;height:22px;display:grid;place-items:center;padding:0 5px}.ckt-line-name{font-size:var(--fs-body);display:flex;flex-direction:column;gap:2px}.ckt-sku{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-3)}.ckt-line-price{font-size:var(--fs-sm)}.ckt-warn{font-size:var(--fs-xs);color:var(--warn);margin:0}.ckt-addr{display:flex;flex-direction:column;gap:var(--s3)}.ckt-addr-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s2)}.ckt-section-title{font-weight:700;font-size:var(--fs-h2)}.ckt-bill-head{margin-top:var(--s2);padding-top:var(--s3);border-top:1px solid var(--line)}.ckt-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2) var(--s3)}.ckt-field{display:flex;flex-direction:column;gap:4px;min-width:0}.ckt-field.ckt-full{grid-column:1 / -1}.ckt-field>span{font-size:var(--fs-xs);color:var(--ink-2);font-weight:600}.ckt-field>span em{font-style:normal;font-weight:400;opacity:.6}.ckt-field input,.ckt-field select{width:100%;height:38px;padding:0 var(--s3);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--panel);font:inherit;font-size:var(--fs-body);color:var(--ink)}.ckt-field input:focus,.ckt-field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}.ckt-field select:disabled{background:var(--bg-sunken);color:var(--ink-2);cursor:default;opacity:1}.ckt-save{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-sm);color:var(--ink-2);cursor:pointer}.ckt-save input{width:auto;margin:0}.ckt-pay{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--s2);padding:var(--s5) var(--s3)}.ckt-pay-badge{width:48px;height:48px;border-radius:var(--r-pill);display:grid;place-items:center;background:var(--brand-blue-tint);color:var(--brand-blue)}.ckt-pay-title{font-size:var(--fs-h1);font-weight:700;margin:0}.ckt-foot{border-top:1px solid var(--line);padding:var(--s3) var(--s4);display:flex;flex-direction:column;gap:var(--s2)}.ckt-total{display:flex;justify-content:space-between;font-weight:700;font-size:var(--fs-h2);margin-bottom:var(--s1)}.ckt-foot-row{display:flex;gap:var(--s2)}.ckt-grow{flex:1}.ckt-hint{text-align:center;margin:0}.ckt-edit{align-self:center}.pe-readout{position:absolute;left:var(--s4);top:var(--s4);z-index:7;display:flex;flex-direction:column;gap:2px;background:#fffffff0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r-sm);padding:var(--s2) var(--s3);line-height:1.3}.pe-readout b{font-family:var(--font-mono);font-size:var(--fs-h2);color:var(--ink)}.pe-drop{width:min(560px,100%);text-align:center;background:var(--panel);border:1.5px dashed var(--line-strong);border-radius:var(--r-lg);padding:var(--s8) var(--s6);cursor:pointer;transition:border-color .15s,background .15s;animation:rise .35s ease both}.pe-drop:hover,.pe-drop.over{border-color:var(--accent);background:var(--accent-tint)}.pe-drop.busy{cursor:progress;opacity:.7}.pe-drop .thumb-svg{height:120px;border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:var(--s5);background:var(--paper)}.pe-drop-title{font-size:var(--fs-h1);font-weight:800;margin-bottom:var(--s2)}.pe-empty{display:flex;gap:var(--s6);align-items:flex-start;flex-wrap:wrap;justify-content:center;width:100%;max-width:960px}.pe-empty .pe-drop{flex:1 1 340px;width:auto}.pe-contents{width:100%;text-align:left}.pe-contents-head{display:flex;align-items:center;gap:var(--s2);font-weight:700;margin-bottom:var(--s4)}.pe-room-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.pe-room-item{border:0;border-radius:0;padding:var(--s3) 0}.pe-room-item+.pe-room-item{border-top:1px solid var(--line)}.pe-room-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}.pe-room-main{display:flex;align-items:center;flex:1;flex-wrap:wrap;gap:var(--s2);min-width:0}.pe-room-name{font-weight:600}.pe-room-pending{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border-radius:var(--r-pill);background:var(--bg-sunken);color:var(--ink-2);font-size:10px;font-weight:650;white-space:nowrap}.pe-draw-room{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:0 var(--s2);border:0;background:transparent;border-radius:var(--r-sm);color:var(--accent);font:inherit;font-size:var(--fs-xs);font-weight:600;white-space:nowrap;cursor:pointer}.pe-draw-room:hover:not(:disabled),.pe-draw-room:active:not(:disabled){background:var(--accent-tint)}.pe-draw-room:disabled{color:var(--ink-3);opacity:.62;cursor:not-allowed}.pe-room-more{width:44px;height:44px;flex:none}.menu.pe-room-action-menu{position:fixed;z-index:72;right:auto;width:204px;min-width:0;max-height:calc(100vh - 16px);overflow-y:auto;padding:5px}.pe-room-action-menu .menu-item{min-height:44px;height:auto}.pe-room-action-menu .menu-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.pe-room-action-menu .menu-item.danger{color:var(--danger)}.pe-prod-sub{list-style:none;margin:var(--s3) 0 0;padding:0;display:flex;flex-direction:column;gap:3px}.pe-prod-line{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-sm);min-height:30px}.pe-prod-qty{display:inline-flex;align-items:baseline;gap:3px;color:var(--ink-2);min-width:26px;flex:none}.pe-prod-nm{flex:1;color:var(--ink)}.pe-prod-copy{display:flex;min-width:0;flex:1;flex-direction:column;justify-content:center;gap:2px}.pe-prod-copy .pe-prod-nm{flex:none}.pe-prod-state{display:block;color:var(--ink-3);font-size:10px;font-weight:500;line-height:1.3}.pe-prod-state.has-pending{color:var(--ink-2);font-weight:650}.pe-pair-badge{display:inline-flex;margin-left:6px;padding:1px 5px;border:1px solid var(--line-strong);border-radius:var(--r-pill);color:var(--ink-3);font-size:10px;font-weight:600;letter-spacing:.02em;line-height:1.4;vertical-align:1px;white-space:nowrap}.pe-prod-px{color:var(--ink-2);flex:none;white-space:nowrap}.pe-shared-price{font-size:var(--fs-xs);font-weight:600;color:var(--ink-3)}.pe-room-sub{display:flex;justify-content:space-between;margin-top:var(--s3);padding-top:var(--s2);border-top:1px dashed var(--line);font-size:var(--fs-sm);color:var(--ink-2)}.pe-room-sub .mono{color:var(--ink);font-weight:600}.pe-contents-total{display:flex;justify-content:space-between;align-items:center;margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line-strong);font-weight:700;font-size:var(--fs-body)}.pe-contents-foot{margin:var(--s4) 0 0}.floorswitch{position:relative;display:inline-flex;min-width:0}.floorswitch-btn{display:inline-flex;align-items:center;gap:5px;min-height:36px;border:1px solid transparent;background:transparent;font:inherit;font-weight:600;color:var(--ink);cursor:pointer;padding:2px 8px;border-radius:var(--r-md)}.floorswitch-btn:hover{border-color:var(--line);background-color:var(--panel)}.floorswitch-label{max-width:min(18vw,180px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.floorswitch-menu{left:0;right:auto;top:calc(100% + 4px);min-width:200px}.floorswitch-menu.up{top:auto;bottom:calc(100% + 4px)}.floorswitch-check{display:inline-flex;width:18px;justify-content:center;color:var(--ink-2)}.menu-div{height:1px;margin:6px 4px;background:var(--line)}.ftin{display:flex;gap:var(--s2)}.ftin-cell{position:relative;flex:1;min-width:0}.ftin-cell .input{width:100%;padding-right:34px}.cal-warn{color:var(--warn, #b45309);background:var(--warn-tint);font-size:var(--fs-xs);font-weight:600;padding:var(--s1) var(--s2);border-radius:var(--r-sm)}.cal-preview{min-height:52px;padding-top:var(--s2);display:flex;flex-direction:column;gap:3px}.cal-preview p{margin:0}.ftin-suffix{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:var(--fs-sm);color:var(--ink-3);pointer-events:none}.cal-unit-label{font-size:var(--fs-sm);color:var(--ink-2);font-weight:600}.pe-glyph{pointer-events:none}.pe-glyph-rot{pointer-events:auto}.pe-draw-through .pe-glyph,.pe-draw-through .pe-glyph-hit,.pe-draw-through .pe-glyph-touch-hit,.pe-draw-through .pe-glyph-rot,.pe-draw-through .pe-room-hit,.pe-draw-through .pe-cable-label,.pe-draw-through .pe-cable-label.draggable{pointer-events:none}.pe-glyph{cursor:grab;color:var(--accent)}.pe-glyph:active{cursor:grabbing}.pe-glyph-hit{fill:transparent;stroke:none;stroke-width:0;pointer-events:fill}.pe-glyph-touch-hit{fill:transparent;stroke:none;stroke-width:0;pointer-events:none}@media(any-pointer:coarse)and (not (any-pointer:fine)){.pe-glyph-touch-hit{pointer-events:fill}}.pe-glyph-footprint{fill:color-mix(in srgb,var(--accent) 8%,var(--panel));stroke:currentColor;stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}.pe-glyph-art{fill:currentColor;pointer-events:none;stroke:#fffffff2;stroke-width:1.5;paint-order:stroke;vector-effect:non-scaling-stroke}.pe-glyph-ring{fill:none;stroke:var(--accent);stroke-width:1.25;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;opacity:.6}.pe-wall-link{pointer-events:none;color:var(--accent)}.pe-wall-link line{stroke:currentColor;stroke-width:2;stroke-linecap:round;vector-effect:non-scaling-stroke}.pe-wall-link circle{fill:var(--panel);stroke:currentColor;stroke-width:1.5;vector-effect:non-scaling-stroke}.pe-wallmount-preview{pointer-events:none;color:var(--accent)}.pe-wallmount-preview>line{stroke:currentColor;stroke-width:4;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.6}.pe-wallmount-preview rect{fill:color-mix(in srgb,var(--accent) 18%,var(--panel));stroke:currentColor;stroke-width:1.5;vector-effect:non-scaling-stroke}.pe-vert{pointer-events:auto;cursor:move;fill:var(--panel);stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke}.pe-vert-add{pointer-events:auto;cursor:copy;fill:var(--accent-tint);stroke:var(--accent);stroke-width:1.5;stroke-dasharray:3 2;vector-effect:non-scaling-stroke;opacity:.8}.pe-vert-add:hover{opacity:1}.pe-glyph-rot{cursor:grab}.pe-glyph-rot:active{cursor:grabbing}.pe-glyph-rot circle{fill:var(--panel);stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke}.pe-glyph-rotarm{stroke:var(--accent);stroke-width:1.5;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.55}.pe-room-label{font-family:var(--font-display);font-weight:500;letter-spacing:.01em;pointer-events:none;-webkit-user-select:none;user-select:none}.pe-room-hit{fill:transparent;pointer-events:auto;cursor:move}.pe-roomdraft polyline{fill:#2563eb0f;stroke:var(--brand-blue, #2563eb);stroke-width:2;stroke-dasharray:5 4}.pe-roomdraft circle{fill:var(--panel);stroke:var(--brand-blue, #2563eb);stroke-width:2}.pe-roomdraft .pe-roomdraft-first{fill:var(--brand-blue, #2563eb)}.pe-cable polyline{fill:none;stroke:var(--brand-blue, #2563eb);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.pe-cable-drop{fill:var(--brand-blue, #2563eb)}.pe-cable.selected .pe-cable-drop{fill:var(--accent)}.pe-cable.selected polyline{stroke:var(--brand-red, #b91c1c);stroke-width:3.5}.pe-cable.selected .pe-cable-label{fill:var(--brand-red, #b91c1c)}.pe-cable-label{font-family:var(--font-ui);font-weight:600;fill:var(--brand-blue, #2563eb);pointer-events:none;-webkit-user-select:none;user-select:none}.pe-cable-label.draggable{pointer-events:all;cursor:move}.pe-cabledraft polyline{fill:none;stroke:var(--brand-blue, #2563eb);stroke-width:2;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.pe-cabledraft circle{fill:var(--brand-blue, #2563eb)}.pe-cable-type{height:32px;padding:0 var(--s2);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--panel);font:inherit;font-size:var(--fs-sm);color:var(--ink)}.pe-design-foot{flex:none;border-top:1px solid var(--line-strong);background:var(--bg)}.pe-foot-total{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);font-weight:700;padding:var(--s3) var(--s4)}.pe-foot-total .mono{font-size:var(--fs-h2)}.pe-foot-note{margin:calc(-1 * var(--s2)) 0 0;padding:0 var(--s4) var(--s2)}.pe-foot-amp{display:flex;align-items:center;gap:var(--s2);width:100%;min-height:44px;padding:0 var(--s4);border:0;border-top:1px solid var(--line);background:transparent;font:inherit;font-size:var(--fs-sm);color:var(--ink);cursor:pointer;text-align:left}.pe-foot-amp-label{font-weight:600}.pe-foot-amp-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pe-foot-amp .mono{margin-left:auto;white-space:nowrap;color:var(--ink-2)}.pe-foot-amp.warn .mono{color:var(--accent)}.pe-foot-chev{display:inline-flex;color:var(--ink-3);transition:transform .15s ease}.pe-foot-chev.up{transform:rotate(180deg)}.pe-amp-detail{padding:var(--s2) var(--s4) var(--s4);border-top:1px solid var(--line);overflow-y:auto;overscroll-behavior:contain}.pe-design.amp-open .pe-design-scroll,.pe-design.amp-open>.catb{flex:0 0 26px;min-height:26px;overflow:hidden;opacity:.4;pointer-events:none}.pe-design.amp-open .pe-design-foot{flex:1;min-height:0;display:flex;flex-direction:column;border-top:0;border-radius:14px 14px 0 0;box-shadow:0 -12px 32px -18px #0f121873}.pe-sheet-grab{display:flex;align-items:center;justify-content:center;min-height:22px;padding:8px 0 2px;border:0;background:transparent;cursor:pointer}.pe-sheet-grab span{width:36px;height:4px;border-radius:999px;background:var(--line-strong)}.pe-sheet-grab:hover span{background:var(--ink-3)}.pe-design.amp-open .pe-foot-total,.pe-design.amp-open .pe-foot-amp{flex:none}.pe-design.amp-open .pe-amp-detail{flex:1;min-height:0}.pe-amp-hero{display:flex;align-items:baseline;gap:var(--s2);font-size:var(--fs-h2);font-weight:700;margin-bottom:var(--s2)}.pe-amp-hero-sub{font-size:var(--fs-xs);font-weight:500;color:var(--ink-3);margin-bottom:0}.pe-amp-suggest{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:var(--s2);text-align:right}.pe-amp-strategy{display:flex;flex-direction:column;gap:4px;margin:var(--s2) 0}.pe-amp-strategy .pe-seg{width:100%}.pe-amp-strategy .pe-seg button{flex:1;justify-content:center}.pe-amp-line{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s2);font-size:var(--fs-sm);padding:2px 0}.pe-amp-line .mono{color:var(--ink-2);white-space:nowrap}.pe-selbar{position:absolute;bottom:var(--s4);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--s3);max-width:calc(100% - 32px);min-height:52px;background:color-mix(in srgb,var(--panel) 97%,transparent);border:1px solid var(--line-strong);border-radius:14px;box-shadow:0 12px 34px #161d2524;padding:7px 7px 7px var(--s4);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:5}.pe-selname{flex:1 1 auto;min-width:0;overflow:hidden;font-size:var(--fs-sm);font-weight:500;text-overflow:ellipsis;white-space:nowrap}.pe-selname-main{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pe-product-selbar{display:grid;grid-template-columns:minmax(0,1fr) auto;width:min(780px,calc(100% - 32px))}.pe-selactions{display:flex;min-width:0;align-items:center;justify-content:flex-end;gap:var(--s3)}.pe-selactions>.btn,.pe-selactions>.pe-rotctl{flex:none}.pe-sel-status{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:var(--r-sm);background:var(--bg-sunken);color:var(--ink-2);font-size:var(--fs-xs);font-weight:650;white-space:nowrap}.pe-sel-status.is-warning{background:var(--warn-tint);color:var(--warn, #9a5b00)}.pe-selname small{display:block;color:var(--ink-3);font-size:var(--fs-xs);font-weight:500;margin-top:1px}@media(max-width:1280px){.pe-product-selbar{grid-template-columns:minmax(0,1fr);gap:6px;padding-left:var(--s3)}.pe-product-selbar .pe-selactions{flex-wrap:wrap}.pe-product-selbar .btn-sm,.pe-product-selbar .iconbtn{min-width:44px;min-height:44px}}@media(max-width:720px){.pe-product-selbar{bottom:var(--s2);width:calc(100% - 16px);max-width:none}.pe-product-selbar .pe-selactions{justify-content:flex-start;gap:var(--s2)}.pe-room-draw-cancel>span{display:none}}.wm-summary{display:flex;flex-direction:column;gap:3px;padding:0 0 var(--s4);border-bottom:1px solid var(--line);margin-bottom:var(--s4)}.wm-kicker{color:var(--accent);font-size:var(--fs-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.wm-orientation{border:0;padding:0;margin:0 0 var(--s4)}.wm-orientation legend{font-size:var(--fs-sm);font-weight:600;margin-bottom:var(--s2)}.wm-orientation [role=radiogroup]{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line-strong);border-radius:var(--r-md);overflow:hidden}.wm-orientation label{position:relative;display:grid;place-items:center;min-height:40px;border:0;border-right:1px solid var(--line-strong);background:var(--panel);color:var(--ink-2);font:inherit;font-weight:600;cursor:pointer}.wm-orientation label:last-child{border-right:0}.wm-orientation label.is-active{background:var(--accent-tint);color:var(--accent);box-shadow:inset 0 -2px var(--accent)}.wm-orientation input{position:absolute;opacity:0;pointer-events:none}.wm-orientation label:focus-within{outline:2px solid var(--accent);outline-offset:-2px}.wm-height-input{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--s2)}.wm-height-input span{color:var(--ink-3);font-size:var(--fs-sm);white-space:nowrap}.pe-selbar b{font-weight:600}.pe-selbar .floorswitch-btn{font-weight:500}.pe-wall-hint{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;background:var(--accent-tint);color:var(--accent);font-size:var(--fs-sm);font-weight:600;white-space:nowrap}.pe-room-rename{height:30px;width:160px;padding:0 var(--s2);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--panel);font:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--ink)}.pe-room-rename:focus{outline:none;border-color:var(--accent)}.pe-room-height{display:inline-flex;align-items:center;gap:4px}.pe-room-height .input{width:56px;height:30px;padding:0 var(--s2);text-align:right}.pe-rotctl{display:flex;align-items:center;gap:2px;padding:0 var(--s2);border-left:1px solid var(--line)}.pe-rotctl .iconbtn{font-size:16px}.pe-rotval{min-width:38px;text-align:center;font-size:var(--fs-xs);color:var(--ink-2)}.pe-coverage-chip{position:absolute;bottom:var(--s4);left:var(--s4);display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 12px;border:1px solid var(--line);border-radius:var(--r-pill);background:#ffffffeb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font:inherit;font-size:var(--fs-xs);font-weight:600;color:var(--ink-2);cursor:pointer}.pe-coverage-chip:hover{color:var(--ink);border-color:var(--line-strong)}.pe-coverage{position:absolute;bottom:var(--s4);left:var(--s4);width:220px;display:flex;flex-direction:column;gap:var(--s2);background:#ffffffeb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-pop);padding:var(--s3);z-index:5}.pe-coverage-head{display:flex;flex-direction:column;gap:2px}.pe-coverage-note{font-size:var(--fs-xs);color:var(--ink-2);line-height:1.3}.pe-coverage-legend{display:flex;flex-direction:column;gap:3px}.pe-coverage-ramp{height:8px;border-radius:var(--r-pill);background:linear-gradient(90deg,#30123b,#2196e6,#62d147 50%,#f8cf39 70%,#e8601c,#7a0403)}.pe-coverage-scale{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--ink-2)}.pe-coverage-target{font-weight:600;color:#2f8f3e}.pe-coverage-opacity{display:flex;align-items:center;gap:var(--s2)}.pe-coverage-level{flex-direction:column;align-items:stretch;gap:4px}.pe-coverage-level select{width:100%;box-sizing:border-box}.pe-coverage-opacity input[type=range]{flex:1;min-width:0;accent-color:var(--accent)}.pe-coverage-opacity input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px}.pe-row-dim{opacity:.45}.pe-iconsize-out{min-width:44px;text-align:right;white-space:nowrap}.pe-realsize-note{margin:-4px 0 0 23px}.pe-planpanel{top:calc(var(--s3) + 52px);bottom:auto}.pe-coverage-excl{margin:0;font-size:var(--fs-xs);color:var(--warn, #b45309)}.page.qo{max-width:880px;margin:0 auto;padding-bottom:112px}.qo-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s6)}.qo-head h1{display:inline-flex;align-items:center;gap:var(--s2);margin:0;font-size:var(--fs-h1);letter-spacing:-.01em}.qo-sub{margin:var(--s2) 0 0;color:var(--ink-2);font-size:var(--fs-body)}.qo-placed-tag{flex:none;font-size:var(--fs-sm);font-weight:600;color:var(--ok);border:1px solid var(--ok);border-radius:999px;padding:3px 12px}.qo-cancelled-tag{border:1px solid var(--line-strong);border-radius:999px;color:var(--ink-2);font-size:var(--fs-sm);font-weight:700;letter-spacing:.06em;padding:5px 9px;text-transform:uppercase}.qo-placing-tag{flex:none;font-size:var(--fs-sm);font-weight:600;color:var(--ink-2);border:1px solid var(--line-strong);border-radius:999px;padding:3px 12px}.qo-failed{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);margin-bottom:var(--s4);padding:var(--s3) var(--s4);border:1px solid var(--accent-line, var(--accent));border-radius:var(--r-lg);background:color-mix(in srgb,var(--accent) 6%,transparent)}.qo-failed p{margin:0;flex:1;min-width:240px;font-size:var(--fs-sm)}.qo-cancelled{background:var(--bg-sunken);border:1px solid var(--line);border-left:3px solid var(--ink-3);border-radius:var(--r-md);color:var(--ink-2);margin-bottom:18px;padding:12px 14px}.qo-cancelled p{margin:0}.qo-warn{font-size:var(--fs-sm);color:var(--warn, #b45309);margin:var(--s2) 0}.qo-search{position:relative;margin-bottom:var(--s5)}.qo-searchbar{height:52px;font-size:var(--fs-h3, 1.0625rem)}.qo-searchbar input{font-size:var(--fs-h3, 1.0625rem)}.qo-clear{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--ink-3);cursor:pointer;border-radius:var(--r-sm)}.qo-clear:hover{color:var(--ink);background:var(--bg-sunken)}.qo-results{position:absolute;z-index:20;left:0;right:0;margin-top:var(--s2);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh2);padding:var(--s2);max-height:420px;overflow-y:auto}.qo-noresult{margin:0;padding:var(--s3) var(--s3)}.qo-result{display:flex;align-items:center;gap:var(--s3);width:100%;text-align:left;background:transparent;border:none;border-radius:var(--r-md);padding:var(--s3);cursor:pointer;color:var(--ink);font:inherit}.qo-result:hover{background:var(--bg-sunken)}.qo-result-name{flex:1;font-weight:600}.qo-result-price{color:var(--ink-2)}.qo-result-var{flex-wrap:wrap;cursor:default}.qo-result-var:hover{background:transparent}.qo-result-opts{display:flex;flex-wrap:wrap;gap:var(--s2)}.qo-opt{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line-strong);background:var(--panel);border-radius:999px;padding:5px 11px;font:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--ink);cursor:pointer}.qo-opt:hover{border-color:var(--accent);color:var(--accent)}.qo-empty{text-align:center;padding:var(--s8) var(--s5);border:1px dashed var(--line-strong);border-radius:var(--r-lg);color:var(--ink-2)}.qo-empty svg{color:var(--ink-3)}.qo-empty h2{margin:var(--s3) 0 var(--s1)}.qo-empty p{margin:0}.qo-cart{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);overflow:hidden;box-shadow:var(--sh1)}.qo-cart-head,.qo-line{display:grid;grid-template-columns:minmax(0,1fr) 132px 110px 128px 44px;align-items:center;gap:var(--s4);padding:var(--s3) var(--s5)}.qo-cart-head{height:44px;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);background:var(--bg-sunken);border-bottom:1px solid var(--line)}.qo-col-qty{text-align:center}.qo-line{min-height:72px}.qo-line+.qo-line{border-top:1px solid var(--line)}.qo-line-prod{display:flex;align-items:center;gap:var(--s3);min-width:0}.qo-line-img{width:52px;height:52px;flex:none;object-fit:contain;border-radius:var(--r-sm);background:var(--bg-sunken)}.qo-line-img-empty{display:inline-flex;align-items:center;justify-content:center;color:var(--ink-3)}.qo-line-txt{display:flex;flex-direction:column;gap:2px;min-width:0}.qo-line-name{font-weight:600;line-height:1.3}.qo-line-sku{font-size:var(--fs-xs);color:var(--ink-3)}.qo-qty{justify-self:center}.qo-qty-pill{display:inline-flex;align-items:center;border:1px solid var(--line-strong);border-radius:999px;overflow:hidden;background:var(--panel)}.qo-step{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:none;background:transparent;color:var(--ink-2);cursor:pointer}.qo-step:hover{background:var(--bg-sunken);color:var(--accent)}.qo-qty-n,.qo-qty-static{min-width:28px;text-align:center;font-variant-numeric:tabular-nums;font-weight:700}.qo-line-unit{color:var(--ink-2);text-align:right}.qo-line-ext{font-weight:700;text-align:right}.qo-line-rm{justify-self:end}@media(max-width:720px){.qo-cart-head{display:none}.qo-line{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"prod rm" "qty money";row-gap:var(--s3);padding:var(--s4)}.qo-line-prod{grid-area:prod}.qo-line-rm{grid-area:rm;align-self:start}.qo-qty{grid-area:qty;justify-self:start}.qo-line-unit{display:none}.qo-line-ext{grid-area:money;align-self:center}}.qo-summary{display:flex;flex-direction:column;align-items:flex-end;gap:var(--s3);margin-top:var(--s4);padding-right:var(--s2)}.qo-summary-row{display:flex;align-items:baseline;gap:var(--s3)}.qo-summary-num{font-size:var(--fs-h1);font-weight:800}.qo-summary-cta{display:flex;align-items:center;gap:var(--s2)}@media(min-width:1081px){.qo-bar{display:none}.page.qo{padding-bottom:var(--s6)}}@media(max-width:1080px){.qo-summary{display:none}}.qo-bar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:color-mix(in srgb,var(--panel) 92%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(8px);backdrop-filter:saturate(1.4) blur(8px);border-top:1px solid var(--line);box-shadow:0 -6px 24px -16px #00000059}.qo-bar-in{max-width:1600px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:var(--s4) var(--s5)}.qo-bar-total{display:flex;flex-direction:column;line-height:1.15}.qo-bar-label{font-size:var(--fs-sm);color:var(--ink-2)}.qo-bar-num{font-size:var(--fs-h1);font-weight:800}.qo-ship-row{display:grid;grid-template-columns:1.4fr .8fr 1fr;gap:var(--s3)}.qo-ship-country{margin:calc(-1 * var(--s2)) 0 0}.qo-checkrow{display:flex;align-items:center;gap:var(--s2);margin-top:var(--s3);font-size:var(--fs-sm);color:var(--ink-2);cursor:pointer}.qo-errs{margin:var(--s3) 0 0;padding-left:var(--s5);color:var(--accent);font-size:var(--fs-sm)}.qo-done{text-align:center;padding:var(--s3) 0 0}.qo-done-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:999px;background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok);margin-bottom:var(--s3)}.qo-done h3{margin:0 0 var(--s1)}.qo-done .btn{margin-top:var(--s4)}.pe-contents-actions{display:flex;gap:var(--s2);margin-bottom:var(--s4)}.pe-contents-actions .btn{height:44px}.pe-line-rm{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid transparent;background:transparent;border-radius:var(--r-sm);color:var(--ink-3);cursor:pointer}.pe-line-rm:hover,.pe-line-rm:active{border-color:var(--accent);color:var(--accent)}.pe-line-rm-spacer{width:28px;flex:none}.modal.wide{width:min(680px,96vw)}.ppk{display:flex;flex-direction:column;gap:var(--s2)}.ppk-qty{display:inline-flex;align-items:center;gap:var(--s2);align-self:flex-end}.ppk-catalog .catb{display:flex;flex-direction:column;min-height:0}.ppk-catalog .catb-top{padding:0 0 var(--s3);border-bottom:1px solid var(--line)}.ppk-catalog .catb-scroll{max-height:52vh;padding:var(--s3) 2px var(--s2)}.ppk-catalog .catb-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.pe-chip-ghost{position:fixed;z-index:120;pointer-events:none;transform:translate(-50%,-130%);display:flex;flex-direction:column;align-items:center;gap:4px}.pe-chip-ghost-chip{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--ink);color:var(--panel);border-radius:999px;padding:7px 14px;font-size:var(--fs-sm);font-weight:600;box-shadow:var(--sh2)}.pe-chip-ghost-hint{background:color-mix(in srgb,var(--panel) 92%,transparent);border:1px solid var(--line);border-radius:var(--r-pill);padding:2px 10px;font-size:var(--fs-xs);font-weight:600;color:var(--ink-2);white-space:nowrap}.pe-canvas-wrap.pe-droppable:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:2px dashed var(--accent-line, var(--accent));border-radius:var(--r-lg);pointer-events:none;z-index:4}.pe-room-item.pe-dropover{background:var(--accent-tint);outline:2px dashed var(--accent);outline-offset:-2px;border-radius:var(--r-md)}.pe-pin{color:var(--ink-3);font-size:var(--fs-xs);line-height:1}.pe-prod-nm-btn{flex:1;min-width:0;border:none;background:none;padding:0;margin:0;font:inherit;color:var(--ink);text-align:left;cursor:pointer}.pe-prod-nm-btn:hover{text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:2px}.pe-line-acts{display:inline-flex;align-items:center;gap:4px;flex:none}.pe-place-pill{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0 9px;border:1px solid var(--line);border-radius:var(--r-sm);background:transparent;font:inherit;font-size:var(--fs-xs);font-weight:500;color:var(--ink-2);white-space:nowrap;cursor:grab;touch-action:none}.pe-place-pill svg{color:var(--ink-3)}.pe-place-pill:hover{border-color:var(--line-strong);color:var(--ink)}.pe-place-pill.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.pe-place-pill.on svg{color:var(--on-accent)}.pe-glyph-pulse{fill:none;stroke:var(--ink);stroke-width:2;transform-box:fill-box;transform-origin:center;animation:pe-pulse .9s ease-out 2;pointer-events:none}@keyframes pe-pulse{0%{opacity:.9;transform:scale(1)}60%{opacity:.15;transform:scale(1.18)}to{opacity:0;transform:scale(1)}}.pe-chips-tip{margin:var(--s3) 0 0;font-size:var(--fs-xs)}.catb-opt.on{outline:2px solid var(--accent);outline-offset:-1px;color:var(--accent);border-color:var(--accent)}.page.qo.qo-wide{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:0;padding:0}.qo-main{min-width:0}.qo-wide .qo-main{width:100%;max-width:1100px;margin:0 auto;padding:var(--s6) var(--s6) var(--s8)}.qo-cat{position:sticky;top:60px;display:flex;flex-direction:column;height:calc(100vh - 60px);height:calc(100dvh - 60px);background:var(--panel);border:none;border-left:1px solid var(--line);overflow:hidden}.qo-cat-head{display:flex;align-items:center;justify-content:space-between;padding:var(--s4) var(--s5);border-bottom:1px solid var(--line)}.qo-cat-head h3{margin:0;font-size:var(--fs-h3, 1.0625rem)}.qo-cat .catb{display:flex;flex-direction:column;min-height:0}.catb-top{flex:none;padding:var(--s4) var(--s5);border-bottom:1px solid var(--line)}.catb-scroll{flex:1;min-height:0;overflow-y:auto;padding:var(--s4) var(--s5) var(--s5)}.qo-cat-close,.qo-cat-toggle{display:none}.qo-head-acts{display:flex;align-items:center;gap:var(--s2);flex:none}@media(max-width:1080px){.page.qo.qo-wide{display:block;max-width:880px;padding:var(--s6) var(--s5) var(--s8)}.qo-wide .qo-main{max-width:none;margin:0;padding:0}.qo-cat-toggle{display:inline-flex}.qo-cat{position:fixed;inset:0 0 0 auto;width:min(420px,94vw);height:auto;max-height:none;border-radius:0;z-index:60;transform:translate(105%);transition:transform .22s ease;box-shadow:var(--sh2)}.qo-cat.open{transform:translate(0)}.qo-cat-close{display:inline-flex}}.catb-search{margin-bottom:var(--s3)}.catb-tabs-wrap{position:relative}.catb-tabs-wrap:before,.catb-tabs-wrap:after{content:"";position:absolute;top:0;bottom:0;width:32px;pointer-events:none;z-index:1;opacity:1;transition:opacity .15s ease}.catb-tabs-wrap:before{left:0;background:linear-gradient(90deg,var(--panel),transparent)}.catb-tabs-wrap:after{right:0;background:linear-gradient(270deg,var(--panel),transparent)}.catb-tabs-wrap.at-start:before,.catb-tabs-wrap.at-end:after{opacity:0}.catb-tabs{display:flex;flex-wrap:nowrap;gap:var(--s1);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-bottom:0}.catb-tabs::-webkit-scrollbar{display:none}.catb-tabs button{flex:none;border:1px solid var(--line-strong);background:var(--panel);border-radius:999px;padding:6px 14px;font:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--ink-2);cursor:pointer;white-space:nowrap}.catb-tabs button.on{background:var(--ink);border-color:var(--ink);color:var(--panel)}.catb-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}.catb-card{display:flex;flex-direction:column;gap:var(--s2);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s3);background:var(--panel)}.catb-media{display:flex;align-items:center;justify-content:center;height:84px;border-radius:var(--r-sm);background:var(--panel);border:1px solid var(--line);color:var(--ink-3);overflow:hidden}.catb-media img{max-width:100%;max-height:100%;object-fit:contain}.catb-name{font-size:var(--fs-sm);font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em}.catb-opts{display:flex;flex-direction:column;gap:var(--s1);margin-top:auto}.catb-opt{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);min-height:40px;border:1px solid var(--line-strong);background:var(--panel);border-radius:var(--r-sm);padding:4px 10px;font:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--ink);cursor:pointer}.catb-opt .mono{margin-left:auto}.catb-opt:hover{border-color:var(--accent);color:var(--accent)}.catb-card.is-unavailable{background:var(--bg-sunken);color:var(--ink-3)}.catb-card.is-unavailable .catb-media{opacity:.55;filter:grayscale(1)}.catb-spec-missing{margin-top:auto;padding:6px 8px;border-radius:var(--r-sm);background:var(--warn-tint);color:var(--warn, #9a5b00);font-size:11px;font-weight:650;line-height:1.25}.an-toolbar{position:absolute;z-index:12;top:var(--s3);left:50%;max-width:calc(100% - 28px);min-height:54px;transform:translate(-50%);display:flex;align-items:center;gap:7px;padding:6px;border:1px solid var(--line-strong);border-radius:14px;background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 99%,transparent),color-mix(in srgb,var(--bg-sunken) 32%,var(--panel)));box-shadow:0 12px 34px #161d2521,0 1px #ffffffbf inset;overflow-x:auto;scrollbar-width:none;overscroll-behavior-inline:contain;touch-action:pan-x;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.pe-canvas-wrap.is-elevation .an-toolbar{top:84px}.an-toolbar::-webkit-scrollbar{display:none}.an-tools,.an-colors,.an-widths,.an-context,.an-font{display:flex;align-items:center;gap:2px;flex:none}.an-context{width:228px}.an-toolbar button{min-width:42px;height:42px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:2px 6px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--ink-2);font:inherit;font-size:9px;font-weight:650;white-space:nowrap;cursor:pointer}.an-toolbar button:hover:not(:disabled){background:color-mix(in srgb,var(--accent-tint) 58%,var(--panel));color:var(--accent)}.an-toolbar button.on{background:var(--accent-tint);color:var(--accent);box-shadow:inset 0 -2px var(--accent)}.an-toolbar button:disabled{opacity:.35;cursor:not-allowed}.an-file{display:none}.an-separator{width:1px;height:30px;flex:none;background:var(--line)}.an-colors button{--swatch: #b72a2a;min-width:26px;width:26px;height:34px;padding:0}.an-colors button:before{content:"";width:16px;height:16px;border:2px solid var(--panel);border-radius:50%;background:var(--swatch);box-shadow:0 0 0 1px var(--line-strong)}.an-colors button.on:before{box-shadow:0 0 0 2px var(--accent)}.an-widths button{min-width:28px;width:28px;height:34px;padding:0 5px}.an-widths button span{width:17px;min-height:1px;border-radius:99px;background:currentColor}.an-toolbar .an-danger{color:var(--danger, #b42318)}.an-font{width:102px;height:34px;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}.an-font button{min-width:27px;width:27px;height:32px;padding:0;border-radius:0}.an-font input{width:46px;height:32px;padding:0 2px;border:0;border-inline:1px solid var(--line);outline:0;background:transparent;color:var(--ink);font:600 11px / 1 var(--font-mono);text-align:center;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.an-font input::-webkit-inner-spin-button,.an-font input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.an-busy{width:14px;height:14px;flex:none;visibility:hidden;border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%}.an-busy.is-busy{visibility:visible;animation:pe-spin .75s linear infinite}.an-toolbar .an-close{min-width:34px;width:34px;flex:none}.an-layer,.an-item{pointer-events:none}.an-item.is-interactive{cursor:grab}.an-item.is-interactive:active{cursor:grabbing}.an-item:focus,.ev-product:focus{outline:none}.an-item:focus-visible .an-hit,.ev-product:focus-visible .ev-product-hit{stroke:var(--brand-blue, #2563eb);stroke-width:1.5;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.an-hit{fill:transparent;stroke:transparent;vector-effect:non-scaling-stroke}.an-hit-area{fill:transparent;stroke-width:0;pointer-events:all}.an-hit-outline{fill:none;pointer-events:stroke}.an-hit-segment{stroke-width:16;pointer-events:stroke}.an-item.is-draft{opacity:.72}.an-item>line,.an-item>rect,.an-item>ellipse,.an-image-placeholder{stroke-linecap:round;stroke-linejoin:round}.an-text,.an-dimension-label{font-family:var(--font-sans);font-weight:650;paint-order:stroke;stroke:#fffffff0;stroke-width:.14em;stroke-linejoin:round}.an-inline-editor-wrap{overflow:visible;pointer-events:all}.an-inline-editor{width:100%;height:100%;box-sizing:border-box;margin:0;padding:.28em;resize:none;overflow:hidden;border:1px solid var(--accent);border-radius:.22em;outline:0;background:color-mix(in srgb,var(--accent) 7%,var(--panel));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 16%,transparent);font-family:var(--font-sans);font-weight:650;line-height:1.25;caret-color:var(--accent);pointer-events:all}.an-inline-editor::selection{color:var(--on-accent);background:var(--accent);-webkit-text-fill-color:var(--on-accent)}.an-image-placeholder{fill:#94a3b81a;stroke-dasharray:5 4}.an-selection{fill:none;stroke:#2563eb;stroke-width:1.5;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.an-selection.is-group{stroke-width:1.25;stroke-dasharray:3 3}.an-handle-wrap{pointer-events:none}.an-handle{fill:var(--panel);stroke:#2563eb;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:all;cursor:nwse-resize;touch-action:none}.an-handle-hit{fill:transparent;stroke:transparent;pointer-events:none;cursor:nwse-resize;touch-action:none}.an-handle-hit[data-handle=ne],.an-handle-hit[data-handle=sw],.an-handle[data-handle=ne],.an-handle[data-handle=sw]{cursor:nesw-resize}.an-handle-hit[data-handle=start],.an-handle-hit[data-handle=end],.an-handle[data-handle=start],.an-handle[data-handle=end]{cursor:move}@media(any-pointer:coarse)and (not (any-pointer:fine)){.an-handle-hit{pointer-events:all}.an-toolbar button,.an-toolbar .an-close,.an-colors button,.an-widths button,.an-font,.an-font button,.ev-label-toggle,.ev-export,.topnav-action{min-height:44px}.an-font{height:44px}.an-font input,input,select,textarea{font-size:16px}.btn,.menu-item,.acct-btn,.cart-btn,.iconbtn{min-height:44px}.acct-btn,.cart-btn,.iconbtn{min-width:44px}}@media(max-width:720px){.an-toolbar{left:var(--s2);right:var(--s2);max-width:none;transform:none}.an-toolbar button span:not(.sr-only){display:none}.an-toolbar button{min-width:38px}}.pe-canvas-wrap.is-elevation{background:#fff}.ev-work{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;background:#fff;color:var(--ink)}.ev-head{flex:none;min-height:72px;display:grid;grid-template-columns:minmax(72px,auto) minmax(0,1fr) auto;align-items:center;gap:var(--s4);padding:var(--s3) var(--s5);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 94%,transparent)}.ev-head .btn{justify-self:start}.ev-head-actions{display:flex;align-items:center;gap:var(--s4)}.ev-label-toggle{min-height:32px;display:inline-flex;align-items:center;gap:7px;padding:0 10px 0 7px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--panel);color:var(--ink-2);font:inherit;font-size:var(--fs-xs);font-weight:650;cursor:pointer}.ev-label-toggle:hover{border-color:var(--ink-3);color:var(--ink)}.ev-label-toggle[aria-pressed=true]{border-color:color-mix(in srgb,var(--accent) 42%,var(--line-strong));background:var(--accent-tint);color:var(--accent)}.ev-toggle-check{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:4px}.ev-export{white-space:nowrap}.ev-title{min-width:0}.ev-title .overline{display:block;margin-bottom:2px;color:var(--accent);font-size:10px;font-weight:750;letter-spacing:.13em;text-transform:uppercase}.ev-title h2{margin:0;overflow:hidden;color:var(--ink);font-size:17px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.ev-measures{display:flex;gap:var(--s4);color:var(--ink-3);font-size:var(--fs-xs);white-space:nowrap}.ev-measures span{display:flex;flex-direction:column;gap:1px}.ev-measures b{color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600}.ev-sheet{position:relative;flex:1 1 auto;min-height:0;margin:0;border:0;border-radius:0;background:#fff;box-shadow:none;overflow:hidden}.ev-sheet.is-placing{cursor:copy;box-shadow:inset 0 0 0 2px var(--accent)}.ev-sheet .cv-viewport{background:#fff}.ev-grid line{stroke:#ebe8e0;stroke-width:1;vector-effect:non-scaling-stroke}.ev-wall{fill:#f6f4ee6b;stroke:#6c6a62;stroke-width:1.4;vector-effect:non-scaling-stroke}.ev-floor{stroke:#1d1d1b;stroke-width:2;vector-effect:non-scaling-stroke}.ev-axis-label{fill:#77736a;font-family:var(--font-mono);font-size:.11px}.ev-product{color:var(--accent);pointer-events:none}.ev-product.is-interactive{cursor:grab;touch-action:none}.ev-product.is-interactive:active{cursor:grabbing}.ev-product-hit{fill:transparent;stroke:none;stroke-width:0;pointer-events:none}.ev-product.is-interactive .ev-product-hit{pointer-events:fill}.ev-product-selection{fill:color-mix(in srgb,var(--accent) 7%,transparent);stroke:var(--accent);stroke-width:1.5;stroke-dasharray:5 3;vector-effect:non-scaling-stroke;pointer-events:none}.ev-product-frame{fill:color-mix(in srgb,var(--accent) 10%,#fff);stroke:var(--accent);stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}.ev-product-glyph{fill:currentColor;pointer-events:none}.ev-product-glyph path{fill:currentColor;stroke:none}.ev-product-label,.ev-product-kind{fill:var(--ink);font-size:.11px;font-weight:650;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:.035px;pointer-events:none;-webkit-user-select:none;user-select:none}.ev-product-kind{dominant-baseline:middle;font-size:.09px;letter-spacing:.02px}.ev-product-toolbar{position:absolute;left:50%;bottom:var(--s4);z-index:4;transform:translate(-50%);display:flex;align-items:center;gap:var(--s3);max-width:calc(100% - 32px);padding:6px 6px 6px var(--s4);border:1px solid var(--line);border-radius:var(--r-pill);background:color-mix(in srgb,var(--panel) 96%,transparent);box-shadow:var(--sh-pop);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.ev-product-toolbar-name{min-width:120px;max-width:230px;overflow:hidden;font-size:var(--fs-sm);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.ev-product-toolbar-name small{display:block;margin-top:1px;color:var(--ink-3);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500}.ev-product-orientation{display:inline-flex;overflow:hidden;min-inline-size:0;margin:0;padding:0;border:1px solid var(--line-strong);border-radius:var(--r-sm)}.ev-product-orientation button{min-height:32px;padding:0 10px;border:0;border-right:1px solid var(--line-strong);background:var(--panel);color:var(--ink-2);font:inherit;font-size:var(--fs-xs);font-weight:650;cursor:pointer}.ev-product-orientation button:last-child{border-right:0}.ev-product-orientation button[aria-pressed=true]{background:var(--ink);color:var(--panel)}.ev-product-orientation button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.ev-product-height{display:flex;align-items:center;gap:6px;color:var(--ink-3);font-size:var(--fs-xs);white-space:nowrap}.ev-product-height .input{width:70px;min-height:32px;padding:5px 7px}.ev-empty{position:absolute;left:50%;top:50%;width:min(330px,calc(100% - 48px));transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--ink-3);text-align:center;pointer-events:none}.ev-empty svg{margin-bottom:4px;color:var(--accent)}.ev-empty b{color:var(--ink);font-size:var(--fs-body)}.ev-empty span{font-size:var(--fs-sm);line-height:1.45}.ev-place-hint,.ev-error{position:absolute;left:50%;bottom:var(--s4);z-index:2;max-width:calc(100% - 32px);transform:translate(-50%);padding:9px 14px;border-radius:var(--r-pill);background:var(--ink);box-shadow:0 5px 18px #0f172a38;color:#fff;font-size:var(--fs-xs);font-weight:600;text-align:center;pointer-events:none}.ev-place-hint{display:flex;align-items:center;gap:7px}.ev-place-dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}.ev-error{top:var(--s4);bottom:auto;background:#9f2923}@media(max-width:1100px){.ev-head{gap:var(--s2);padding-inline:var(--s3)}.ev-measures,.ev-export-label{display:none}}@media(max-width:720px){.ev-head{grid-template-columns:auto minmax(0,1fr) auto;gap:var(--s2);padding-inline:var(--s3)}.ev-export{padding-inline:var(--s2)}.ev-product-toolbar{width:calc(100% - 24px);justify-content:center;flex-wrap:wrap;border-radius:var(--r-md);padding:var(--s2)}.ev-product-toolbar-name{max-width:160px}}.dash-tabs button{font-weight:600}.otable .ptable-head,.otable .ptable-row{grid-template-columns:2.4fr .8fr .6fr 1fr .9fr .9fr 44px}.ot-contents{display:block;font-weight:400}.ot-acts{justify-self:end}.qo-rename{margin-left:var(--s2);vertical-align:middle}.otype{display:inline-flex;align-items:center;font-size:var(--fs-xs);font-weight:600;letter-spacing:.02em;padding:1px 9px;border-radius:999px;border:1px solid var(--line);color:var(--ink-2);white-space:nowrap}.otype-design{color:var(--accent);border-color:var(--accent-line, var(--accent))}.ostatus{display:inline-flex;align-items:center;font-size:var(--fs-sm);font-weight:600;padding:2px 10px;border-radius:999px;border:1px solid var(--line-strong);color:var(--ink-2);white-space:nowrap}.ostatus-placed,.ostatus-paid{color:var(--ok);border-color:var(--ok)}.ostatus-paid{background:color-mix(in srgb,var(--ok) 10%,transparent)}.ostatus-failed{color:var(--accent);border-color:var(--accent)}.ostatus-cancelled,.ostatus-refunded{background:var(--bg-sunken);color:var(--ink-2)}.ostatus-draft,.ostatus-placing{color:var(--ink-2)}@media(max-width:640px){.dash-top{align-items:stretch;flex-direction:column}.dash-tabs{align-self:flex-start}.dash-actions{width:100%}.dash-actions .btn{flex:1;min-width:0;justify-content:center}.dash-pagination{align-items:flex-start;flex-direction:column}.dash-pagination-controls{width:100%}.dash-page-step{flex:1}.topnav{gap:var(--s2);padding-inline:var(--s3)}.topnav.has-crumb .topnav-crumb>.projects-crumb,.topnav.has-crumb .topnav-crumb>.projects-sep,.topnav.has-crumb .acct-btn>svg{display:none}.topnav.has-crumb .brandlogo-img{height:24px}.topnav-left,.topnav-right,.topnav-crumb{min-width:0;gap:var(--s2)}.topnav.has-crumb .topnav-crumb{gap:var(--s1);padding-left:var(--s2)}.topnav.has-crumb .project-crumb,.topnav.has-crumb .floorswitch-label{max-width:72px}.topnav-actions{padding-left:0;border-left:0}.topnav-action{width:40px;padding-inline:0;justify-content:center;font-size:0}.topnav.has-crumb .acct-btn{width:36px;padding:0;justify-content:center}}@media(any-pointer:coarse){.cv-wallbtn,.cv-wallbtn.is-elevation,.an-toolbar button,.an-toolbar .an-close,.an-colors button,.an-widths button,.an-font button,.ev-label-toggle,.ev-export,.topnav-action,.btn,.menu-item,.acct-btn,.cart-btn,.iconbtn{min-width:44px;min-height:44px}.an-font{height:44px}input,select,textarea,.an-font input{font-size:16px}}:root{--paper: #ffffff;--bg: #f4f6f8;--bg-sunken: #eceff3;--panel: #ffffff;--line: #e4e7ec;--line-strong: #cfd5dd;--ink: #14181e;--ink-2: #525a66;--ink-3: #8b94a1;--accent: #bf343f;--accent-hover: #a82b35;--accent-press: #92252e;--accent-tint: #f8eaeb;--accent-line: #ebccce;--on-accent: #ffffff;--brand-blue: #173d6e;--brand-blue-tint: #e9eef5;--ok: #1f9d57;--ok-tint: #e8f6ee;--warn: #b9750f;--warn-tint: #fbf1de;--danger: #cf2a2a;--danger-hover: #b52323;--font-ui: "Archivo Variable", "Archivo", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", monospace;--font-display: "Inter Variable", "Inter", var(--font-ui);--fs-display: 26px;--fs-h1: 19px;--fs-h2: 15px;--fs-body: 13px;--fs-sm: 12px;--fs-xs: 11px;--lh: 1.45;--caps: .085em;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s8: 48px;--r-sm: 4px;--r-md: 6px;--r-lg: 10px;--r-pill: 999px;--sh1: 0 1px 2px rgba(20, 24, 30, .06), 0 1px 1px rgba(20, 24, 30, .04);--sh2: 0 4px 14px rgba(20, 24, 30, .08), 0 1px 2px rgba(20, 24, 30, .05);--sh-pop: 0 14px 36px rgba(20, 24, 30, .16);--grid: #eef1f4;--grid-strong: #e1e6ec;--topbar-h: 52px;--rail-w: 248px;--inspector-w: 296px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-body);line-height:var(--lh);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;touch-action:pan-x pan-y}
