.ui-page{height:100%;overflow:auto;background:var(--bg);color:var(--ink);font-size:var(--text-lg);line-height:1.5;-webkit-overflow-scrolling:touch}.ui-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px}.ui-card>h2:first-child,.ui-card>h3:first-child{margin-top:0}.ui-field{display:flex;flex-direction:column;gap:8px;min-width:0}.ui-field>label,.ui-field>.ui-label{font-size:var(--text-sm);font-weight:600;color:var(--ink)}.ui-input,.ui-field input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]),.ui-field select,.ui-field textarea{width:100%}.ui-field textarea{min-height:84px;resize:vertical}.ui-field.invalid input,.ui-field.invalid select,.ui-field.invalid textarea{border-color:var(--danger)}.ui-hint{font-size:var(--text-sm);color:var(--muted)}.ui-error{font-size:var(--text-sm);color:var(--danger)}.ui-alert{padding:12px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--paper);font-size:var(--text-md)}.ui-alert.error{border-color:color-mix(in srgb,var(--danger) 35%,var(--border));background:var(--danger-soft);color:var(--danger)}.ui-alert.ok{border-color:color-mix(in srgb,var(--accent) 35%,var(--border));background:var(--accent-soft)}.ui-spinner{width:18px;height:18px;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;border-radius:50%;animation:ui-spin .7s linear infinite;flex:none}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-center{height:100%;display:grid;place-items:center;color:var(--muted)}.ui-wordmark{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:var(--text-xl);letter-spacing:-.01em;color:var(--accent);text-decoration:none}.ui-wordmark img{height:32px;max-width:140px;object-fit:contain;background:var(--doc-paper);box-shadow:0 0 0 4px var(--doc-paper);border-radius:1px}.ui-muted{color:var(--muted)}.ui-link{color:var(--accent);font-weight:600;text-decoration:none}.ui-link:hover{text-decoration:underline}@media (prefers-reduced-motion: reduce){.ui-spinner{animation-duration:2s}}.acct-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.acct-top,.onb-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.acct-back{display:inline-flex;align-items:center;gap:4px;flex:none;min-height:var(--control-h);padding:0 12px 0 8px;border-radius:var(--radius-md);color:var(--ink);font-size:var(--text-md);font-weight:600;text-decoration:none}.acct-back:hover{background:var(--hover)}.acct-mark{min-width:0;flex:1;display:flex}.acct-top .acct-mark{padding-left:12px;border-left:1px solid var(--border)}.acct-mark .ui-wordmark{min-width:0;font-size:var(--text-lg)}.acct-mark .ui-wordmark img{height:28px;max-width:96px}.acct-mark .ui-wordmark span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-top-end{display:flex;align-items:center;gap:4px;flex:none}.acct-body{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;max-width:1160px;margin:0 auto;padding:16px 16px 48px}.acct-nav-title{display:none}.acct-nav ul{display:flex;gap:4px;margin:0 -16px;padding:0 16px 2px;list-style:none;overflow-x:auto;scrollbar-width:none}.acct-nav ul::-webkit-scrollbar{display:none}.acct-nav a{display:flex;align-items:center;min-height:var(--control-h);padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font-size:var(--text-md);font-weight:500;text-decoration:none;white-space:nowrap}.acct-nav a:hover{border-color:var(--ink)}.acct-nav a[aria-current=page]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.acct-main{min-width:0;display:flex;flex-direction:column;gap:16px}.acct-head h1{margin:0;font-size:var(--text-xl);line-height:1.25;letter-spacing:-.01em}.acct-head h1:focus{outline:none}.acct-head p{margin:4px 0 0;max-width:60ch}@media (max-width: 767px){.acct-back-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.acct-back{padding:0 8px}.acct-top,.onb-top{padding:8px 12px;gap:8px}.acct-top .acct-mark{padding-left:8px}}@media (min-width: 1024px){.acct-body{grid-template-columns:210px minmax(0,1fr);gap:48px;padding:32px 24px 48px}.acct-nav{position:sticky;top:88px;align-self:start}.acct-nav-title{display:block;margin:0 0 8px 12px;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.acct-nav ul{flex-direction:column;gap:2px;margin:0;padding:0;overflow:visible}.acct-nav a{border-color:transparent;background:transparent;white-space:normal;line-height:1.3;padding:8px 12px}.acct-nav a:hover{border-color:transparent;background:var(--hover)}.acct-nav a[aria-current=page]{border-color:transparent;box-shadow:inset 3px 0 0 var(--accent)}.acct-head h1{font-size:var(--text-2xl)}}.acct-card{display:flex;flex-direction:column;gap:24px;min-width:0}@media (max-width: 767px){.acct-card{padding:16px}}.acct-card-title{margin:0;font-size:var(--text-lg)}.acct-note{margin:0;font-size:var(--text-md)}.acct-foot{padding-top:16px;border-top:1px solid var(--border)}.acct-stack{display:flex;flex-direction:column;gap:24px;min-width:0}.acct-stack-lg{gap:24px}.acct-row{display:flex;flex-wrap:wrap;gap:8px}.acct-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}@media (min-width: 768px){.acct-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px}.acct-wide{grid-column:1 / -1}.acct-narrow{max-width:340px}}.acct-card .ui-field input[readonly]:not([type=color]):not([type=file]):not([type=radio]):not([type=checkbox]){background:var(--paper);color:var(--muted)}.acct-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding-top:16px;border-top:1px solid var(--border)}.acct-saved{display:inline-flex;align-items:center;gap:8px;color:var(--accent);font-size:var(--text-md);font-weight:600}.acct-saved:empty{display:none}.acct-loading{display:grid;place-items:center;min-height:120px;color:var(--muted)}.acct-fieldset{margin:0;padding:0;border:0}.acct-fieldset legend{padding:0;margin-bottom:8px}.acct-choice{display:flex;flex-wrap:wrap;gap:8px}.acct-choice label{position:relative;display:flex}.acct-choice input{position:absolute;opacity:0;top:0;right:0;bottom:0;left:0;margin:0;cursor:pointer}.acct-choice span{display:flex;align-items:center;min-height:var(--control-h);padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-md);cursor:pointer;transition:border-color var(--dur-fast),background-color var(--dur-fast)}.acct-choice input:hover:not(:disabled)+span{border-color:var(--ink)}.acct-choice input:checked+span{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600;box-shadow:inset 0 0 0 1px var(--accent)}.acct-choice input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.acct-choice input:disabled+span{opacity:.5;cursor:default}.acct-choice input:disabled{cursor:default}.acct-pw{position:relative}.acct-pw .acct-pw-in:not([type=color]):not([type=file]):not([type=radio]):not([type=checkbox]){padding-right:72px}.acct-pw .ui-btn{position:absolute;top:50%;right:4px;transform:translateY(-50%);min-width:60px;font-weight:500;color:var(--muted)}.acct-brand{container-type:inline-size}.acct-brand-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}@container (min-width: 700px){.acct-brand-grid{grid-template-columns:minmax(0,1fr) minmax(0,330px);gap:32px}.acct-brand-preview{position:sticky;top:80px;align-self:start}}.acct-sub{margin:0 0 8px;font-size:var(--text-sm);font-weight:600}.acct-colors{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}@container (min-width: 440px){.acct-colors{grid-template-columns:repeat(2,minmax(0,1fr))}}.acct-color{display:flex;gap:8px}.acct-swatch{flex:none;width:var(--control-h);height:var(--control-h);padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);cursor:pointer}.acct-swatch:disabled{cursor:default}.acct-swatch::-webkit-color-swatch-wrapper{padding:4px}.acct-swatch::-webkit-color-swatch{border:0;border-radius:var(--radius-sm)}.acct-swatch::-moz-color-swatch{border:0;border-radius:var(--radius-sm)}.acct-swatch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.acct-color .acct-hex:not([type=color]):not([type=file]):not([type=radio]):not([type=checkbox]){font-family:var(--font-mono);min-width:0}.acct-presets{display:flex;flex-direction:column;gap:8px}.acct-preset-row{display:flex;flex-wrap:wrap;gap:8px}.acct-preset{display:inline-flex;align-items:center;gap:8px;min-height:var(--control-h);padding:0 12px 0 8px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--text-sm);cursor:pointer;transition:border-color var(--dur-fast)}.acct-preset:hover{border-color:var(--ink)}.acct-preset[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);font-weight:600}.acct-dots{display:inline-flex}.acct-dots i{width:20px;height:20px;border:2px solid var(--surface);border-radius:50%}.acct-dots i+i{margin-left:-8px}.acct-notes,.acct-logo{display:flex;flex-direction:column;gap:8px}.acct-drop{display:flex;align-items:center;gap:16px;padding:12px;border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--paper);transition:border-color var(--dur-fast),background-color var(--dur-fast)}.acct-drop.over{border-color:var(--accent);border-style:solid;background:var(--accent-soft)}.acct-drop.readonly{border-style:solid;border-color:var(--border)}.acct-logo-box{position:relative;flex:none;display:grid;place-items:center;width:96px;height:72px;padding:8px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--doc-paper);overflow:hidden}.acct-logo-box img{max-width:100%;max-height:100%;object-fit:contain}.acct-logo-empty{font-size:var(--text-xl);font-weight:600;letter-spacing:.02em;color:var(--muted)}.acct-logo-busy{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:color-mix(in srgb,var(--surface) 70%,transparent);color:var(--ink)}.acct-drop-body{display:flex;flex-direction:column;gap:8px;min-width:0}.acct-drop-body p{margin:0}.acct-drop-text{font-size:var(--text-md)}@media (max-width: 767px){.acct-drop{flex-direction:column;align-items:flex-start}}.acct-preview{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg)}.acct-pv-label{margin:0;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.acct-pv-label+.acct-pv-bar,.acct-pv-label+.acct-pv-doc{margin-bottom:8px}.acct-pv-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-xs)}.acct-pv-brand{display:inline-flex;align-items:center;gap:8px;min-width:0;flex:1 1 80px;color:var(--accent);font-weight:600;font-size:var(--text-sm)}.acct-pv-brand img{height:20px;max-width:56px;object-fit:contain;background:var(--doc-paper);box-shadow:0 0 0 3px var(--doc-paper);border-radius:1px}.acct-pv-brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-pv-tools{display:inline-flex;align-items:center;gap:8px;flex:none}.acct-pv-seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.acct-pv-seg span{padding:4px 8px;background:var(--surface)}.acct-pv-seg .on{background:var(--accent-fill);color:var(--accent-on);font-weight:600}.acct-pv-btn{padding:4px 8px;border:1px solid var(--accent-fill);border-radius:var(--radius-sm);background:var(--accent-fill);color:var(--accent-on);font-weight:600}.acct-pv-doc{--ink: var(--doc-ink);--muted: var(--doc-muted);--border: var(--doc-border);--surface: var(--doc-paper);padding:12px 12px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink)}.acct-pv-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding-bottom:8px;border-bottom:2px solid var(--brand-2)}.acct-pv-biz{display:flex;flex-direction:column;gap:1px;min-width:0;font-size:var(--text-xs);color:var(--muted)}.acct-pv-biz img{height:24px;max-width:80px;object-fit:contain;object-position:left;margin-bottom:4px}.acct-pv-biz b{font-size:var(--text-sm);color:var(--ink);overflow-wrap:anywhere}.acct-pv-biz .sample{color:color-mix(in srgb,var(--muted) 60%,transparent)}.acct-pv-meta{display:flex;flex-direction:column;align-items:flex-end;flex:none;font-size:var(--text-xs);color:var(--muted)}.acct-pv-meta b{font-size:var(--text-md);color:var(--brand-2)}.acct-pv-lines{display:flex;flex-direction:column;gap:8px;padding-top:12px}.acct-pv-lines i{height:5px;border-radius:var(--radius-full);background:var(--grid-minor)}.acct-pv-lines i:nth-child(2){width:80%}.acct-pv-lines i:nth-child(3){width:55%}.acct-members{margin:0;padding:0;list-style:none}.acct-members li{display:grid;grid-template-columns:36px minmax(0,1fr) auto;grid-template-areas:"avatar who role" "avatar last last";align-items:center;gap:2px 12px;padding:12px 0;border-top:1px solid var(--border)}.acct-members li:first-child{border-top:0;padding-top:0}.acct-avatar{grid-area:avatar;align-self:start;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:var(--text-sm);font-weight:600}.acct-member-who{grid-area:who;display:flex;flex-direction:column;min-width:0}.acct-member-who b,.acct-member-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-member-email{font-size:var(--text-sm);color:var(--muted)}.acct-you{font-weight:400;color:var(--muted)}.acct-role{grid-area:role;justify-self:end;padding:2px 8px;border:1px solid var(--border);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;white-space:nowrap}.acct-role.owner{border-color:var(--accent);color:var(--accent)}.acct-member-last{grid-area:last;font-size:var(--text-sm);color:var(--muted)}.acct-member-k{color:var(--ink)}.acct-member-k:after{content:":"}@media (min-width: 768px){.acct-members li{grid-template-columns:36px minmax(0,1fr) 120px 190px;grid-template-areas:"avatar who role last"}.acct-avatar{align-self:center}.acct-role{justify-self:start}.acct-member-k{display:block;font-size:var(--text-xs);color:var(--muted)}.acct-member-k:after{content:none}}@media (prefers-reduced-motion: reduce){.acct-choice span,.acct-preset,.acct-drop{transition:none}}.auth-frame{position:relative;isolation:isolate;min-height:100%;display:flex;flex-direction:column;padding:0 16px}.auth-frame:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:linear-gradient(var(--grid-major) 1px,transparent 1px),linear-gradient(90deg,var(--grid-major) 1px,transparent 1px),linear-gradient(var(--grid-minor) 1px,transparent 1px),linear-gradient(90deg,var(--grid-minor) 1px,transparent 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px;background-position:center -1px;-webkit-mask-image:linear-gradient(black,transparent 560px);mask-image:linear-gradient(black,transparent 560px);opacity:.8}.auth-top,.auth-foot{width:100%;max-width:1040px;margin:0 auto}.auth-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0}.auth-main{flex:1;display:flex;justify-content:center;align-items:flex-start;padding:clamp(12px,7vh,48px) 0 48px}.auth-sheet{width:100%;max-width:420px}.auth-dim{display:flex;align-items:center;gap:8px;height:14px;margin:0 0 8px;border-inline:1px solid color-mix(in srgb,var(--muted) 55%,transparent);color:var(--muted)}.auth-dim i{position:relative;flex:1;height:1px;background:color-mix(in srgb,var(--muted) 55%,transparent)}.auth-dim i:before{content:"";position:absolute;top:-4px;width:1px;height:9px;background:var(--muted);transform:rotate(45deg)}.auth-dim i:first-child:before{left:0}.auth-dim i:last-child:before{right:0}.auth-dim span{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}.auth-card{padding:32px;box-shadow:var(--shadow-1);animation:auth-in var(--dur-enter) ease-out}.auth-card h1{margin:0 0 8px;font-size:var(--text-xl);line-height:1.25;letter-spacing:-.015em}.auth-card h1:focus{outline:none}.auth-lead{margin:0 0 24px;color:var(--muted);font-size:var(--text-md)}.auth-card h1+:not(.auth-lead){margin-top:16px}.auth-form{display:grid;gap:16px}.auth-form>.ui-btn{margin-top:4px}.auth-stack{display:grid;gap:8px}.auth-aside{justify-self:end;font-size:var(--text-sm)}.auth-pw{position:relative}.ui-field .auth-pw input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]){padding-right:72px}.auth-pw-toggle{position:absolute;top:50%;right:4px;transform:translateY(-50%);min-height:32px;min-width:56px;padding:0 8px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--accent);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer}.auth-pw-toggle:hover{background:var(--accent-soft)}.auth-text{margin:0 0 24px;overflow-wrap:anywhere}.auth-text p{margin:0 0 12px}.auth-text p:last-child{margin-bottom:0}.auth-note{margin:0;font-size:var(--text-sm);color:var(--muted)}.auth-note:not(:empty){margin-bottom:16px}.auth-who{margin:0 0 24px;padding:12px;border:1px dashed var(--border);border-radius:var(--radius-md);background:var(--paper);font-size:var(--text-md);overflow-wrap:anywhere}.auth-actions{display:grid;gap:8px}.auth-below{margin:16px 0 0;text-align:center;font-size:var(--text-md);color:var(--muted)}.auth-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:16px 0;border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--muted)}@keyframes auth-in{0%{opacity:0;transform:translateY(6px)}}@media (max-width: 767px){.auth-card{padding:24px 16px}}@media (prefers-reduced-motion: reduce){.auth-card{animation:none}}.onb-main{display:flex;flex-direction:column;gap:24px;max-width:940px;margin:0 auto;padding:24px 16px 48px}@media (min-width: 768px){.onb-main{padding:32px 24px 48px}}.onb-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}.onb-steps li{display:flex;flex-direction:column;gap:8px;min-width:0;color:var(--muted);font-size:var(--text-sm)}.onb-bar{height:4px;border-radius:var(--radius-full);background:var(--border);transition:background-color var(--dur-enter)}.onb-steps li.done .onb-bar,.onb-steps li.on .onb-bar{background:var(--accent)}.onb-steps li.on{color:var(--ink);font-weight:600}.onb-step-label{display:flex;align-items:center;gap:8px;min-width:0}.onb-num{display:inline-grid;place-items:center;flex:none;width:20px;height:20px;border:1px solid var(--border);border-radius:50%;background:var(--surface);font-size:var(--text-xs);font-family:var(--font-mono);font-weight:500}.onb-steps li.on .onb-num{border-color:var(--accent);color:var(--accent)}.onb-steps li.done .onb-num{border-color:var(--accent);background:var(--accent);color:var(--surface)}@media (max-width: 767px){.onb-steps li:not(.on) .onb-step-label{font-size:0}}.onb-head h1{margin:0;font-size:var(--text-xl);line-height:1.25;letter-spacing:-.01em}.onb-head h1:focus{outline:none}.onb-head p{margin:0}.onb-head .ui-muted{margin-top:8px;max-width:62ch}.onb-head .onb-kicker{margin-bottom:4px;font-size:var(--text-sm);font-weight:600;color:var(--accent)}@media (min-width: 768px){.onb-head h1{font-size:var(--text-2xl)}}.onb-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:16px;border-top:1px solid var(--border)}.onb-foot-end{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-left:auto}@media (max-width: 767px){.onb-foot,.onb-foot-end{flex-direction:column;align-items:stretch}.onb-foot-end{margin-left:0}}.onb-hint{margin:-8px 0 0;text-align:center}@media (prefers-reduced-motion: reduce){.onb-bar{transition:none}}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff) format("woff")}@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")}@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")}@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")}@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")}:root{--bg: #f6f4ef;--surface: #ffffff;--paper: #fcfbf8;--ink: #1b1f1d;--muted: #5a625e;--border: #dcd8cf;--border-strong: #8b938e;--hover: color-mix(in srgb, var(--ink) 6%, transparent);--surface-hover: color-mix(in srgb, var(--ink) 6%, var(--surface));--overlay: color-mix(in srgb, var(--ink) 45%, transparent);--accent: #0b6b63;--accent-soft: #dcedea;--accent-fill: var(--accent);--accent-on: #fff;--brand-2: var(--ink);--measure: #945000;--measure-soft: #f9eedb;--warn: var(--measure);--warn-soft: var(--measure-soft);--danger: #b42318;--danger-soft: #fbe9e6;--danger-on: #fff;--ok: #1c6e45;--ok-soft: #dff0e6;--grid-minor: #ebe7de;--grid-major: #dcd6c9;--draw-unit: #efe6d3;--draw-unit-line: #7a6a4f;--draw-unit-ink: #5c4f39;--draw-upper: #cfe3f1;--draw-opening: #3b6f94;--draw-panel: #d2ae7a;--draw-panel-line: #7a5536;--draw-wallface: #f3f0ea;--draw-carcass: #f6efe0;--draw-front: #e9e2d3;--draw-side: #e4dccb;--draw-board: #efe7d6;--draw-inner: #ddd5c4;--draw-plinth: #8b7d66;--draw-worktop: #4b4640;--draw-dark: #1b1f1d;--draw-glass: #d6e8f3;--draw-clear: color-mix(in srgb, var(--draw-glass) 45%, transparent);--draw-steel: #c5cbd0;--draw-steel-line: #6b7680;--draw-mirror: #dfe9ee;--draw-fabric: #d8cdb9;--draw-marble: #efebe3;--draw-marble-line: #a08d6c;--draw-led: #ffe9a8;--draw-stock: #efece6;--draw-trim: #b8b2a6;--doc-desk: #e7e3db;--doc-paper: #ffffff;--doc-band: #f4f2ee;--doc-ink: #1b1f1d;--doc-muted: #5a625e;--doc-border: #dcd8cf;--photo-ink: #ffffff;--photo-scrim: rgb(27 31 29 / .7);--font-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-xs: 12px;--text-sm: 13px;--text-md: 14px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 28px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--control-h: 40px;--control-h-sm: 32px;--row-h: 44px;--appbar-h: 48px;--tabs-h: 40px;--rail-w: 52px;--inspector-w: 264px;--status-h: 28px;--toolbar-h: 56px;--shadow-1: 0 4px 14px rgb(27 31 29 / .1);--shadow-2: 0 20px 50px rgb(27 31 29 / .22);--ring: 0 0 0 3px var(--accent-soft);--dur-fast: .12s;--dur-enter: .2s;font-family:var(--font-sans);font-synthesis-weight:none;color:var(--ink)}@media (pointer: coarse){:root{--control-h: 44px}}@media (max-width: 767px){:root{--appbar-h: 52px;--tabs-h: 42px}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden;background:var(--bg);overscroll-behavior:none}body{padding:0 env(safe-area-inset-right) 0 env(safe-area-inset-left)}:where(button,input,select,textarea){font:inherit;color:inherit}b,strong,h1,h2,h3,h4,th{font-weight:600}small{font-size:var(--text-xs)}.num,.mono,kbd{font-family:var(--font-mono);font-variant-numeric:tabular-nums}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn,.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--control-h);padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--text-md);font-weight:500;line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast),border-color var(--dur-fast),color var(--dur-fast)}.btn:hover:not(:disabled),.ui-btn:hover:not(:disabled){background:var(--surface-hover)}.btn:disabled,.ui-btn:disabled{opacity:.5;cursor:default}.btn.primary,.ui-btn.primary{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--accent-on);font-weight:600}.btn.primary:hover:not(:disabled),.ui-btn.primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent-fill) 86%,var(--ink))}.btn.ghost,.ui-btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover:not(:disabled),.ui-btn.ghost:hover:not(:disabled){background:var(--hover)}.btn.danger,.ui-btn.danger{color:var(--danger)}.btn.danger.primary,.ui-btn.danger.primary{background:var(--danger);border-color:var(--danger);color:var(--danger-on)}.btn.danger.primary:hover:not(:disabled),.ui-btn.danger.primary:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 86%,var(--ink))}.btn.small,.ui-btn.small{min-height:var(--control-h-sm);padding:0 8px;font-size:var(--text-sm)}.btn.block,.ui-btn.block{width:100%}.btn.toggle.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.btn.lang{font-weight:600;min-width:44px}.btn.icon{width:var(--control-h);padding:0;flex:none}.btn.icon.small{width:var(--control-h-sm)}:where(input:not([type=checkbox],[type=radio],[type=color],[type=file],[type=range]),select,textarea){min-height:var(--control-h);padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font-size:var(--text-md)}:where(textarea){padding:8px 12px}:where(input:not([type=checkbox],[type=radio],[type=color],[type=file],[type=range]),select,textarea):focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent);box-shadow:var(--ring)}:where(input,select,textarea)::placeholder{color:var(--muted);opacity:1}@media (max-width: 767px){:where(input:not([type=checkbox],[type=radio],[type=color],[type=file],[type=range]),select,textarea){font-size:var(--text-lg)}}@media (prefers-reduced-motion: reduce){.btn,.ui-btn{transition:none}}.app{height:100%;display:flex;flex-direction:column}.appbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(max-content,1fr);align-items:center;gap:var(--space-4);height:var(--appbar-h);padding:0 var(--space-3);background:var(--surface);border-bottom:1px solid var(--border);flex:none}.ab-start,.ab-end{display:flex;align-items:center;gap:var(--space-2);min-width:0}.ab-end{justify-content:flex-end}.appbar .logo{height:var(--control-h-sm);flex:none}.appbar img.logo{max-width:calc(var(--space-12) * 2);object-fit:contain;margin:0 var(--space-1);border-radius:var(--radius-sm);background:var(--doc-paper);box-shadow:0 0 0 var(--space-1) var(--doc-paper)}.appbar .logo.mark{display:grid;place-items:center;width:var(--control-h-sm);border-radius:var(--radius-md);background:var(--ink);color:var(--surface);font-size:var(--text-md);font-weight:600}.proj{display:flex;flex-direction:column;min-width:0;line-height:1.25}.proj small,.proj h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj small{color:var(--muted)}.proj h1{margin:0;font-size:var(--text-md);font-weight:600}.stages{display:flex;gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-md);background:var(--bg)}.stages button{display:inline-grid;align-content:center;height:calc(var(--control-h) - var(--space-2));padding:0 var(--space-3);border:1px solid transparent;border-radius:var(--radius-sm);background:none;color:var(--muted);font-size:var(--text-md);font-weight:500;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast),color var(--dur-fast)}.stages button:after{content:attr(data-label);height:0;overflow:hidden;visibility:hidden;font-weight:600}.stages button:hover{color:var(--ink)}.stages button.on{background:var(--surface);border-color:var(--border);color:var(--ink);font-weight:600}.stagebtn{display:inline-flex;align-items:center;gap:var(--space-1);height:calc(var(--control-h) - var(--space-2));padding:0 var(--space-2) 0 var(--space-3);border:0;border-radius:var(--radius-md);background:var(--hover);color:var(--ink);font-size:var(--text-sm);font-weight:600;white-space:nowrap;cursor:pointer;flex:none}@media (max-width: 1023px){.appbar{gap:var(--space-2)}.proj small,.btn.projects span{display:none}.btn.projects{width:var(--control-h);padding:0;border-color:transparent}.appbar img.logo{max-width:var(--space-12)}.stages button{padding:0 var(--space-2)}}@media (max-width: 767px){.appbar{display:flex;padding:0 var(--space-2) 0 var(--space-3)}.ab-start{flex:1}.ab-end{gap:var(--space-1);flex:none}}@media (prefers-reduced-motion: reduce){.stages button{transition:none}}@media (hover: hover){[data-tip]{position:relative}[data-tip]:hover:after,[data-tip]:focus-visible:after{content:attr(data-tip);position:absolute;z-index:40;top:calc(100% + var(--space-2));left:50%;translate:-50% 0;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--ink);color:var(--surface);font-family:var(--font-sans);font-size:var(--text-xs);font-weight:500;line-height:1.5;white-space:nowrap;pointer-events:none}.ab-end [data-tip]:hover:after,.ab-end [data-tip]:focus-visible:after{left:auto;right:0;translate:none}.tools [data-tip]:hover:after,.tools [data-tip]:focus-visible:after{top:50%;left:calc(100% + var(--space-2));translate:0 -50%}.drawbar [data-tip]:hover:after,.drawbar [data-tip]:focus-visible:after{top:auto;bottom:calc(100% + var(--space-2))}}@media (min-width: 1024px){.appbar .btn.projects[data-tip]:after,.drawbar .opt.wide[data-tip]:after{display:none}}.menu{position:fixed;z-index:30;display:grid;min-width:calc(var(--space-12) * 4);max-width:min(320px,calc(100vw - var(--space-4)));padding:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-1);color:var(--ink);font-size:var(--text-md);font-weight:400;animation:rise var(--dur-fast) ease-out}.menu [role^=menuitem]{display:flex;align-items:center;gap:var(--space-2);min-height:var(--control-h);padding:0 var(--space-3);border:0;border-radius:var(--radius-sm);background:none;color:var(--ink);font-size:var(--text-md);text-align:left;text-decoration:none;white-space:nowrap;cursor:pointer}.menu [role^=menuitem]:hover,.menu [role^=menuitem]:focus-visible{background:var(--accent-soft);outline-offset:-2px}.menu [role^=menuitem].danger{color:var(--danger)}.menu [role^=menuitem].danger:hover,.menu [role^=menuitem].danger:focus-visible{background:var(--danger-soft)}.menu [aria-disabled=true]{opacity:.5;cursor:default}.menu .rule{position:relative;margin-top:calc(var(--space-2) + 1px)}.menu .rule:before{content:"";position:absolute;left:0;right:0;top:calc(-1 * var(--space-1) - 1px);border-top:1px solid var(--border)}.menu .text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.menu .tick{display:inline-grid;place-items:center;width:var(--space-4);color:var(--accent)}.menu .note{display:grid;padding:var(--space-2) var(--space-3)}.menu .note b,.menu .note small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu .note small{color:var(--muted)}@keyframes rise{0%{opacity:0;translate:0 var(--space-1)}}@media (prefers-reduced-motion: reduce){.menu{animation:none}}.field{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--muted)}.field select,.field input{padding:0 8px}.field.big input{width:150px;min-width:0;min-height:calc(var(--control-h) - 2px);border:0;background:none;font-family:var(--font-mono);font-size:var(--text-lg);font-weight:500;font-variant-numeric:tabular-nums}.field.big input:focus{outline:0;box-shadow:none}.field.big input::placeholder{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:400}.with-unit{display:inline-flex;align-items:center;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);padding-right:8px}.with-unit:focus-within{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent);box-shadow:var(--ring)}.with-unit em{font-style:normal;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs)}.body{flex:1;display:flex;min-height:0}.tools{position:relative;z-index:5;display:flex;flex-direction:column;align-items:center;gap:var(--space-1);width:var(--rail-w);padding:var(--space-2) 0;background:var(--surface);border-right:1px solid var(--border);flex:none}.tool{position:relative;display:grid;place-items:center;width:var(--control-h);height:var(--control-h);padding:0;border:0;border-radius:var(--radius-md);background:none;color:var(--muted);font-size:var(--text-xs);cursor:pointer;transition:background-color var(--dur-fast),color var(--dur-fast)}.tool:hover{background:var(--hover);color:var(--ink)}.tool.on{background:var(--accent-soft);color:var(--accent)}.tool span{display:none}.tool.keys{margin-top:auto}@media (hover: none){.tool.keys{display:none}}@media (max-width: 767px){.body{flex-direction:column}.tools{order:2;flex-direction:row;align-items:stretch;gap:0;width:auto;padding:0 0 env(safe-area-inset-bottom);border-right:0;border-top:1px solid var(--border)}.tool{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);width:auto;height:auto;min-height:var(--toolbar-h);border-radius:0}.tool span{display:block}.tool.on{font-weight:600}.tool.keys{display:none}}@media (prefers-reduced-motion: reduce){.tool{transition:none}}.work{position:relative;flex:1;display:flex;min-width:0;min-height:0}.stage{position:relative;flex:1;min-width:0;display:flex;flex-direction:column}.drawing{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;background:var(--paper)}.drawing{padding-bottom:var(--sheet-h, 0px)}.drawing.front{padding-bottom:max(var(--sheet-h, 0px),calc(var(--bar-h, 0px) + var(--space-6)))}.canvas{flex:1;width:100%;min-height:0;display:block;background:var(--paper);touch-action:none;user-select:none;-webkit-user-select:none}.canvas.tool-line{cursor:crosshair}.canvas.tool-pan{cursor:grab}.grid-minor{stroke:var(--grid-minor);stroke-width:1}.grid-major{stroke:var(--grid-major);stroke-width:1.4}.ln line{stroke:var(--ink);stroke-width:2.5;stroke-linecap:round}.ln circle{fill:var(--ink)}.ln.sel line{stroke:var(--accent);stroke-width:3.5}.ln.sel circle{fill:var(--accent)}.dim{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;font-variant-numeric:tabular-nums;fill:var(--muted);paint-order:stroke;stroke:var(--paper);stroke-width:4px;stroke-linejoin:round;pointer-events:none}.dim.sel,.dim.live{fill:var(--accent)}.dim.live{font-size:var(--text-md)}.handle{fill:var(--surface);stroke:var(--accent);stroke-width:2.5;cursor:move}.preview{stroke:var(--accent);stroke-width:2.5;stroke-dasharray:7 5;stroke-linecap:round}.dot{fill:var(--accent)}.guide{stroke:var(--measure);stroke-width:1;stroke-dasharray:3 4}.snap{fill:none;stroke:var(--accent);stroke-width:1.5;pointer-events:none}.snap.end,.snap.mid{stroke:var(--measure);stroke-width:2}.empty{position:absolute;inset:0 0 var(--space-12) 0;display:grid;place-content:center;text-align:center;padding:24px;pointer-events:none;color:var(--muted)}.empty h2{margin:0 0 8px;font-weight:600;color:var(--ink);font-size:var(--text-xl)}.empty p{margin:0;max-width:420px;line-height:1.5}.panel{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}.panel .field{flex-direction:column;align-items:stretch}.readout{display:flex;justify-content:space-between;font-size:var(--text-sm);color:var(--muted)}.readout b{color:var(--ink);font-family:var(--font-mono);font-weight:500;font-variant-numeric:tabular-nums}.status{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);height:var(--status-h);padding:0 var(--space-3);background:var(--surface);border-top:1px solid var(--border);color:var(--muted);white-space:nowrap;flex:none;overflow:hidden}.hint{font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;min-width:0}.meta{font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;flex:none}@media (max-width: 767px){.status{display:none}}.floaters{position:absolute;z-index:4;left:var(--space-3);right:var(--space-3);bottom:var(--space-3);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);pointer-events:none}.floatrow{display:flex;justify-content:center;align-items:flex-end;gap:var(--space-2);max-width:100%}.drawbar,.entry,.wallpick,.sheetbtn{pointer-events:auto}.drawbar,.entry,.wallpick{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-1)}.drawbar{flex-wrap:wrap;justify-content:center;min-width:0}.drawbar select,.drawbar .opt,.drawbar .fold,.wallpick button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);height:var(--control-h-sm);min-height:0;padding:0 var(--space-2);border:1px solid transparent;border-radius:var(--radius-sm);background:none;color:var(--ink);font-size:var(--text-sm);font-weight:500;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast),color var(--dur-fast)}.drawbar select{padding:0 var(--space-1)}.drawbar select:hover,.drawbar .opt:hover,.drawbar .fold:hover,.wallpick button:hover{background:var(--hover)}.drawbar .opt.on,.wallpick button.on{background:var(--accent-soft);color:var(--accent)}.drawbar .pick{display:inline-flex;align-items:center;gap:var(--space-1);padding-left:var(--space-2);color:var(--muted);font-size:var(--text-xs)}.drawbar .sep{width:1px;height:var(--space-4);margin:0 var(--space-1);background:var(--border)}.drawbar .zoom{min-width:6ch;padding:0 var(--space-2);color:var(--muted);font-size:var(--text-sm);text-align:right}.drawbar .field{gap:var(--space-2);padding-left:var(--space-2);font-size:var(--text-xs);white-space:nowrap}.drawbar .field.big input{width:calc(var(--space-12) + var(--space-4));min-height:calc(var(--control-h-sm) - 2px);padding:0 var(--space-2);font-size:var(--text-md)}.entry{gap:var(--space-2);padding:var(--space-2)}.wallpick{min-width:0;overflow-x:auto;scrollbar-width:none}.wallpick button{min-width:var(--control-h-sm);font-weight:600;flex:none}.sheetbtn{display:none}@media (max-width: 1023px){.drawbar .opt.wide span{display:none}.drawbar .pick>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.drawbar .pick{padding-left:0}}@media (max-width: 767px){.floaters{left:var(--space-2);right:var(--space-2);bottom:var(--space-2);align-items:stretch}.floatrow{flex-wrap:wrap;justify-content:space-between;align-items:flex-end}.drawbar{justify-content:flex-start}.drawbar:not(.folded){order:3;flex:1 0 100%}.drawbar .sep{display:none}.wallpick{flex:0 1 auto}.drawbar select,.drawbar .opt,.drawbar .fold{height:calc(var(--control-h) - var(--space-2))}.drawbar select,.drawbar .field.big input{font-size:var(--text-lg)}.sheetbtn{display:inline-flex;flex:none;margin-left:auto;box-shadow:var(--shadow-1)}.entry{align-self:center;max-width:100%}.entry .field>span{display:none}}@media (prefers-reduced-motion: reduce){.drawbar select,.drawbar .opt,.drawbar .fold,.wallpick button{transition:none}}.seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--radius-md);overflow:hidden;flex:none}.seg button{min-height:calc(var(--control-h) - 2px);padding:0 12px;border:0;background:var(--surface);cursor:pointer;font-size:var(--text-md);font-weight:500;white-space:nowrap}.seg button.on{background:var(--accent-fill);color:var(--accent-on);font-weight:600}.it *{vector-effect:non-scaling-stroke}.it .shape{fill:var(--draw-unit);fill-opacity:.85;stroke:var(--draw-unit-line);stroke-width:1.5}.it .frontedge{stroke:var(--draw-unit-line);stroke-width:3.5}.it .detail{fill:none;stroke:var(--draw-unit-line);stroke-width:1.2}.it.upper .shape{fill:var(--draw-upper);fill-opacity:.35;stroke:var(--draw-opening);stroke-dasharray:6 4}.it.opening .shape{fill:var(--paper);stroke:var(--draw-opening);stroke-width:1.5}.it.opening .detail{stroke:var(--draw-opening);stroke-width:1.5}.it.sel .shape{stroke:var(--accent);stroke-width:3;stroke-dasharray:none}.it.ghost{opacity:.6;pointer-events:none}.it.ghost .shape{stroke:var(--accent);stroke-width:2}.it.ghost.bad .shape{stroke:var(--danger);fill:var(--danger-soft)}.itlabel{font-size:var(--text-xs);font-weight:600;fill:var(--draw-unit-ink);pointer-events:none}.canvas.tool-place{cursor:copy}.library{flex:none;width:190px;overflow-y:auto;padding:8px;background:var(--surface);border-right:1px solid var(--border)}.library h3,.panel h3{margin:0;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.library h3{margin:12px 4px 4px}.library .sheethead+div h3:first-child{margin-top:2px}.library .sheethead button{width:var(--control-h-sm);min-height:var(--control-h-sm);padding:0;justify-content:center}.library button{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:40px;padding:0 12px;border:1px solid transparent;border-radius:var(--radius-md);background:none;cursor:pointer;font-size:var(--text-md);text-align:left}.library button:hover{background:var(--hover)}.library button.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.library small{color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.panel{width:250px}.panel h3{color:var(--ink)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.panel .field.big input{width:100%;font-size:var(--text-lg)}.readout{gap:8px;align-items:baseline}.empty.static{position:static;flex:1;background:var(--paper)}.elev .etitle{font-size:var(--text-lg);font-weight:600;fill:var(--ink)}.elev .wallface{fill:var(--draw-wallface);stroke:var(--grid-major)}.elev .floor{stroke:var(--ink);stroke-width:2.5}.elev .body{fill:var(--draw-carcass);stroke:var(--draw-unit-ink);stroke-width:1.4}.elev .plinth{fill:var(--draw-plinth);stroke:var(--draw-unit-ink);stroke-width:1}.elev .worktop{fill:var(--draw-worktop)}.elev .dark{fill:var(--draw-dark)}.elev .glass{fill:var(--draw-glass);stroke:var(--draw-opening);stroke-width:1.4}.elev .doorleaf{fill:var(--draw-front);stroke:var(--draw-unit-ink);stroke-width:1.4}.elev .sidepanel{fill:var(--draw-side);stroke:var(--draw-unit-ink);stroke-width:1;stroke-dasharray:4 3}.elev .fl{stroke:var(--draw-unit-ink);stroke-width:1}.elev .hd{stroke:var(--draw-dark);stroke-width:2.5;stroke-linecap:round}.elev .tap{stroke:var(--draw-steel-line);stroke-width:3;stroke-linecap:round}.elev .hdot{fill:var(--draw-dark)}.elev .selbox{fill:none;stroke:var(--accent);stroke-width:3}.elev .hit{fill:transparent;cursor:pointer}.chain line{stroke:var(--muted);stroke-width:1}.chain text{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;font-variant-numeric:tabular-nums;fill:var(--ink)}.chain .gapl{stroke:var(--measure);stroke-width:3}.chain .gapt{fill:var(--measure)}.it.bad .shape{stroke:var(--danger);stroke-width:2.5;stroke-dasharray:none;fill:var(--danger-soft)}.elev .badbox{fill:color-mix(in srgb,var(--danger) 12%,transparent);stroke:var(--danger);stroke-width:2.5}.elev .hit{cursor:ew-resize;touch-action:none}.warn{padding:8px;border-radius:var(--radius-md);background:var(--danger-soft);color:var(--danger);font-size:var(--text-sm);font-weight:600}.side{flex:none;width:var(--inspector-w);overflow-y:auto;background:var(--surface);border-left:1px solid var(--border)}.side .panel{position:static;width:auto;border:0;border-radius:0;box-shadow:none}.side .panel:not(.docpanel)>h3:first-child{font-family:var(--font-sans);font-size:var(--text-md);font-weight:600;letter-spacing:0;text-transform:none}.sidehint{margin:0;padding:16px 12px;color:var(--muted);font-size:var(--text-sm);line-height:1.5}.summary .sidehint{padding:var(--space-2) 0 0;border-top:1px solid var(--border);margin-top:var(--space-1)}.sheethead{display:none}@media (max-width: 767px){.work>.side,.work>.side.wide,.work>.library{position:absolute;z-index:6;left:0;right:0;bottom:0;display:none;width:auto;max-height:50vh;padding-bottom:env(safe-area-inset-bottom);border:0;border-top:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-2);animation:sheet var(--dur-enter) ease-out}.work>.side.open:not(.idle),.work>.library.open{display:block}.sheethead{position:sticky;z-index:1;top:0;display:flex;align-items:center;justify-content:space-between;padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3);background:var(--surface);border-bottom:1px solid var(--border);font-size:var(--text-md)}}@keyframes sheet{0%{translate:0 100%}}@media (prefers-reduced-motion: reduce){.side,.library{animation:none}}.view3d{flex:1;min-height:0;min-width:0;overflow:hidden;touch-action:none}.view3d canvas{display:block}.fintabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-1);margin:0 calc(-1 * var(--space-1))}.fintab{display:grid;place-items:center;min-height:var(--control-h);padding:var(--space-1) calc(var(--space-1) / 2);border:0;border-radius:var(--radius-sm);background:none;color:var(--muted);font-size:var(--text-sm);font-weight:500;line-height:1.2;text-align:center;text-wrap:balance;overflow-wrap:anywhere;cursor:pointer;transition:background-color var(--dur-fast),color var(--dur-fast)}.fintab:hover{background:var(--hover);color:var(--ink)}.fintab[aria-selected=true]{background:var(--accent-soft);color:var(--accent);font-weight:600;box-shadow:inset 0 -2px 0 var(--accent)}.fintab:focus-visible,.finrow:focus-visible{outline-offset:-2px}.finpanel{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.finlist{position:relative;display:flex;flex-direction:column;max-height:calc(var(--row-h) * 8.5);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;background:linear-gradient(var(--surface),var(--surface)) top / 100% var(--space-4) no-repeat local,linear-gradient(var(--surface),var(--surface)) bottom / 100% var(--space-4) no-repeat local,linear-gradient(var(--border-strong),transparent) top / 100% var(--space-2) no-repeat scroll,linear-gradient(transparent,var(--border-strong)) bottom / 100% var(--space-2) no-repeat scroll}.fingroup{padding:var(--space-3) var(--space-2) var(--space-1);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.finlist>[role=group]:first-child .fingroup{padding-top:var(--space-1)}.finrow,.finpick{display:flex;align-items:center;gap:var(--space-3);min-height:var(--row-h);padding:var(--space-1) var(--space-2);border:1px solid transparent;border-radius:var(--radius-md);color:var(--ink);font-size:var(--text-md);line-height:1.3;text-align:left;cursor:pointer;transition:background-color var(--dur-fast),border-color var(--dur-fast)}.finrow{flex:none}.finrow:hover{background:var(--hover)}.finrow.on{background:var(--accent-soft);border-color:var(--accent);font-weight:600}.finrow svg{flex:none;color:var(--accent)}.finsw{width:calc(var(--space-6) + var(--space-1));height:calc(var(--space-6) + var(--space-1));border:1px solid var(--border-strong);border-radius:var(--radius-full);background-size:cover;flex:none}.finsw.none{background:linear-gradient(to top right,transparent calc(50% - 1px),var(--border-strong) calc(50% - 1px),var(--border-strong) calc(50% + 1px),transparent calc(50% + 1px))}.finname{flex:1;display:grid;min-width:0;overflow-wrap:anywhere}.finname small{color:var(--muted);font-weight:400}.unitfinish{display:flex;flex-direction:column;gap:var(--space-2)}.finpick{width:100%;border-color:var(--border-strong);background:var(--surface)}.finpick:hover{background:var(--surface-hover)}.finpick[aria-expanded=true]{border-color:var(--accent)}.finpick>svg{flex:none;color:var(--muted)}.finpop{position:fixed;z-index:30;display:flex;flex-direction:column;padding:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-1);animation:rise var(--dur-fast) ease-out}.finpop .finlist{max-height:none;min-height:0}.finfold{padding:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-md)}.unitfinish .btn.link{margin-top:0}.side .panel.views{border-top:1px solid var(--border)}@media (max-width: 767px){.finishes>h3{display:none}.fintabs{position:sticky;z-index:1;top:calc(var(--control-h-sm) + var(--space-2) + 1px);margin:calc(-1 * var(--space-2)) 0;padding:var(--space-2) 0;background:var(--surface)}.finlist{max-height:none;overflow-y:visible;background:none}}@media (prefers-reduced-motion: reduce){.fintab,.finrow,.finpick{transition:none}.finpop{animation:none}}.btn.link{min-height:var(--control-h-sm);margin-top:8px;width:100%;font-size:var(--text-sm)}.elev .board{fill:var(--draw-board);stroke:var(--draw-unit-ink);stroke-width:1}.elev .inner{fill:var(--draw-inner)}.elev .steel{fill:var(--draw-steel);stroke:var(--draw-steel-line);stroke-width:1}.elev .mirror{fill:var(--draw-mirror);stroke:var(--draw-steel-line);stroke-width:1.4}.elev .fabric{fill:var(--draw-fabric);stroke:var(--draw-unit-ink);stroke-width:1}.elev .marble{fill:var(--draw-marble);stroke:var(--draw-marble-line);stroke-width:1}.elev .slatbase{fill:var(--draw-panel)}.elev .slats{stroke:var(--draw-unit-ink);stroke-width:1}.elev .slatgap{fill:var(--draw-unit-ink)}.elev .led{fill:var(--draw-led)}.elev .clear{fill:var(--draw-clear);stroke:var(--draw-opening);stroke-width:1}.elev .ghostfront{fill:none;stroke:var(--draw-unit-ink);stroke-width:1;stroke-dasharray:5 4;opacity:.45}.elev .swing{fill:none;stroke:var(--draw-unit-ink);stroke-width:.8;stroke-dasharray:3 4;opacity:.4}.it.back .shape{fill:var(--draw-panel);fill-opacity:.7;stroke:var(--draw-panel-line)}.rooms{display:flex;align-items:flex-end;gap:var(--space-1);height:var(--tabs-h);padding:0 var(--space-3);background:var(--bg);box-shadow:inset 0 -1px 0 var(--border);flex:none;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.rooms .tab{display:flex;align-items:center;height:var(--control-h-sm);border:1px solid transparent;border-bottom:0;border-radius:var(--radius-md) var(--radius-md) 0 0;color:var(--muted);font-size:var(--text-sm);white-space:nowrap;flex:none}.rooms .name{height:100%;padding:0 var(--space-3);border:0;border-radius:inherit;background:none;cursor:pointer}.rooms .tab:not(.on) .name:hover{color:var(--ink)}.rooms .tab.on{background:var(--surface);border-color:var(--border);color:var(--ink);font-weight:600}.rooms .tab.on .name{padding-right:var(--space-1)}.rooms .more,.rooms .add{display:grid;place-items:center;width:var(--control-h-sm);height:var(--control-h-sm);padding:0;border:0;border-radius:var(--radius-sm);background:none;color:var(--muted);cursor:pointer;flex:none}.rooms .more{height:100%}.rooms .more:hover,.rooms .add:hover,.rooms [aria-expanded=true]{background:var(--hover);color:var(--ink)}.rooms .add{align-self:center}@media (max-width: 767px){.rooms{align-items:center;gap:var(--space-2)}.rooms .tab{border:1px solid transparent;border-radius:var(--radius-full)}.rooms .tab.on{border-color:var(--border-strong)}}.stepper{display:flex;align-items:center;justify-content:space-between;gap:8px}.stepper span{font-size:var(--text-sm);color:var(--muted)}.stepper div{display:flex;align-items:center;gap:8px}.stepper button{width:var(--control-h);height:var(--control-h);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;font-size:var(--text-lg)}.stepper button:disabled{opacity:.5;cursor:default}.stepper b{min-width:24px;text-align:center;font-family:var(--font-mono);font-weight:500;font-variant-numeric:tabular-nums}.panel .seg{display:flex}.panel .seg button{flex:1;padding:0 4px;font-size:var(--text-sm)}.side.wide{width:300px}.docwrap{flex:1;min-height:0;overflow:auto;padding:24px;background:var(--doc-desk)}.offscreen{position:fixed;left:-4000px;top:0;width:1200px;height:720px;display:flex}.page{--ink: var(--doc-ink);--muted: var(--doc-muted);--border: var(--doc-border);--surface: var(--doc-paper);--paper: var(--doc-paper);width:190mm;max-width:none;margin:0 auto;padding:12mm;background:var(--doc-paper);color:var(--ink);box-shadow:var(--shadow-1);font-size:var(--text-sm);line-height:1.45}.page h1{margin:0;font-size:var(--text-2xl);color:var(--accent)}.page h2{margin:0 0 8px;font-size:var(--text-lg)}.page h3{margin:16px 0 8px;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.page p{margin:2px 0}.dochead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:12px;border-bottom:2px solid var(--brand-2)}.dochead h1{color:var(--brand-2)}.dochead .sender{display:flex;align-items:flex-start;gap:12px;min-width:0}.dochead .logo{display:block;max-height:18mm;max-width:55mm;object-fit:contain;flex:none}.docroom>h2{color:var(--brand-2)}.dochead .right{text-align:right}.page .client{display:flex;gap:8px;padding:8px 0;border-bottom:1px solid var(--border)}.docroom{margin-top:16px}.page figure{margin:0 0 12px;break-inside:avoid}.page .pic img{display:block;width:100%;border-radius:var(--radius-sm)}.page .wait{padding:48px 0;text-align:center;color:var(--muted)}.page .planfig{height:250px}.planstatic{display:block;width:100%;height:100%}.planstatic *{vector-effect:non-scaling-stroke}.planstatic line{stroke:var(--ink);stroke-width:2.5;stroke-linecap:round}.planstatic polygon{fill:var(--draw-unit);stroke:var(--draw-unit-line);stroke-width:1}.planstatic polygon.upper{fill:none;stroke:var(--draw-opening);stroke-dasharray:5 3}.planstatic polygon.back{fill:var(--draw-panel)}.planstatic polygon.opening{fill:var(--doc-paper);stroke:var(--draw-opening)}.planstatic text{fill:var(--ink);font-weight:600}.page .elevfig{height:460px;display:flex;pointer-events:none}.page .elevfig .canvas{background:none}.page table{width:100%;border-collapse:collapse;break-inside:auto}.page th{text-align:left;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--brand-2);padding:4px 8px}.page td{padding:4px 8px;border-bottom:1px solid var(--border)}.page tr{break-inside:avoid}.page .num{text-align:right;white-space:nowrap}.page td small{color:var(--muted)}.page tr.grp td{font-weight:600;background:var(--doc-band)}.page tr.total td{font-size:var(--text-lg);font-weight:600;border-top:2px solid var(--brand-2);border-bottom:0}.page .note{margin-top:8px;color:var(--muted);font-size:var(--text-xs)}.docpanel{display:flex;flex-direction:column;gap:8px;padding:12px}.docpanel h3{margin-top:12px}.dfield{display:grid;gap:3px;font-size:var(--text-xs);color:var(--muted)}.dfield input,.pricerow input,.extrarow input{padding:0 8px;min-width:0}.check{display:flex;align-items:center;gap:8px;min-height:32px;font-size:var(--text-md);cursor:pointer}.check input{width:18px;height:18px;accent-color:var(--accent)}.pricerow{display:grid;grid-template-columns:1fr 80px 32px;align-items:center;gap:8px;font-size:var(--text-sm)}.pricerow input,.extrarow input[type=number]{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.pricerow em{font-style:normal;font-size:var(--text-xs);color:var(--muted)}.extrarow{display:grid;grid-template-columns:1fr 80px 32px;gap:8px}.extrarow button{display:grid;place-items:center;padding:0;border:0;border-radius:var(--radius-sm);background:none;cursor:pointer;color:var(--danger)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:16px;background:var(--overlay)}.modal .card{width:min(560px,100%);max-height:100%;overflow:auto;padding:16px;border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-2)}.modal h2{margin:0 0 12px;font-size:var(--text-xl)}.modal .row{display:flex;flex-wrap:wrap;gap:8px}.modal ul{list-style:none;margin:16px 0 0;padding:0}.modal li{display:flex;align-items:center;gap:8px;padding:8px 4px;border-top:1px solid var(--border)}.modal li div{flex:1;min-width:0;display:grid}.modal li small,.modal .note{color:var(--muted);font-size:var(--text-xs)}.modal li.on em{font-style:normal;font-size:var(--text-sm);font-weight:600;color:var(--accent)}@media print{@page{size:A4;margin:10mm}html,body,#root,.app,.body,.work,.stage,.drawing,.docwrap{display:block;height:auto;overflow:visible;background:var(--doc-paper);padding:0}.appbar,.rooms,.side,.tools,.library,.status,.floaters,.menu,.modal,.canvas:not(.elev){display:none!important}.page{box-shadow:none;padding:0;margin:0}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.shoppage .internal{color:var(--muted)}.shoppage .assume{margin:12px 0 0;padding:8px 12px;border-left:3px solid var(--warn);background:var(--warn-soft);color:var(--ink)}.shoppage .warn{color:var(--warn)}.shoppage .matblock{margin-bottom:16px}.shoppage .matblock h3{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;text-transform:none;letter-spacing:0;color:var(--ink);break-after:avoid}.shoppage .swatch{display:inline-block;width:14px;height:14px;border:1px solid var(--border);border-radius:var(--radius-sm)}.shoppage td.where{color:var(--muted);font-size:var(--text-xs)}.shoppage .cuts td{padding:3px 8px}.shoppage .edges{display:block;width:30px;height:18px}.shoppage .edges line{stroke:var(--draw-trim);stroke-width:1}.shoppage .edges line.on{stroke:var(--ink);stroke-width:3.2;stroke-linecap:square}.shoppage .sheets{display:grid;gap:8px}.shoppage .sheets figure{margin:0}.shoppage figcaption{font-size:var(--text-xs);color:var(--muted)}.sheetsvg{display:block;width:100%}.sheetsvg .board{fill:var(--draw-stock);stroke:var(--ink);stroke-width:6}.sheetsvg .trim{fill:none;stroke:var(--draw-trim);stroke-width:3;stroke-dasharray:18 14}.sheetsvg .part{fill:var(--doc-paper);stroke:var(--ink);stroke-width:4}.sheetsvg text{fill:var(--muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.sheetsvg text.pno{fill:var(--ink);font-weight:500}.shopcost tr.sub td{font-weight:600;background:var(--doc-band)}.shopcost tfoot tr.margin td{font-weight:600;color:var(--accent);border-bottom:0}.shopcost tfoot tr.margin.neg td{color:var(--danger)}.shoppanel .note,.docpanel .note{margin:0;font-size:var(--text-xs);color:var(--muted)}.shopgroup{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.shopgroup summary{padding:8px 12px;font-size:var(--text-sm);font-weight:600;cursor:pointer}.shopgroup[open]{display:grid;gap:8px;padding:0 12px 12px}.shopgroup[open] summary{padding:8px 0 0}.shoppanel .pricerow{grid-template-columns:1fr 70px 40px}.shoppanel select{padding:0 8px}@media print{.shoppage .sheets figure{break-inside:avoid}}.elev .ceilh{font-size:var(--text-xs);fill:var(--muted)}.elev polygon.wallface{stroke-linejoin:round}.modelrow{display:flex;align-items:stretch;gap:2px}.modelrow>button:first-child{flex:1;min-width:0}.modelrow>button:first-child span{overflow:hidden;text-overflow:ellipsis}.modelrow .mini{width:32px;flex:none;justify-content:center;padding:0;color:var(--muted)}.layout{display:flex;flex-direction:column;gap:8px}.cellmap{width:100%;max-height:240px;touch-action:manipulation}.cellmap .b{fill:var(--draw-front);stroke:var(--draw-plinth);stroke-width:.4}.cellmap .f{fill:var(--surface);stroke:var(--draw-steel-line);stroke-width:.6}.cellmap .s{fill:var(--draw-steel-line)}.cellmap .c{fill:var(--draw-fabric)}.cellmap .cell{fill:transparent;stroke:none;cursor:pointer}.cellmap .cell.on{fill:color-mix(in srgb,var(--accent) 14%,transparent);stroke:var(--accent);stroke-width:1.6}.celltypes{display:grid;grid-template-columns:1fr 1fr;gap:8px}.celltypes button{min-height:var(--control-h);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-sm);cursor:pointer}.celltypes button.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.matlist{display:flex;flex-direction:column;gap:8px;margin:12px 0;max-height:50vh;overflow-y:auto}.matrow{display:grid;grid-template-columns:44px 1fr 1fr auto 40px;gap:8px;align-items:center}.matrow input,.matrow select{min-width:0;padding:0 8px}.matrow input[type=color]{width:100%;height:var(--control-h);padding:2px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);cursor:pointer}.matrow button{display:grid;place-items:center;height:var(--control-h);padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--danger);cursor:pointer}@media (max-width: 767px){.matrow{grid-template-columns:44px 1fr 40px}.matrow select,.matrow input:nth-child(3){grid-column:2}}.udim line{stroke:var(--measure);stroke-width:1.2;fill:none;vector-effect:non-scaling-stroke}.udim line.ext{stroke-width:.8;opacity:.75}.udim text{fill:var(--measure);font-family:var(--font-mono);font-weight:500;paint-order:stroke;stroke:var(--paper);stroke-width:.3em;stroke-linejoin:round;-webkit-user-select:none;user-select:none}.udim.sel line{stroke:var(--accent);stroke-width:2}.udim.sel text{fill:var(--accent)}.dimhit{stroke:transparent;stroke-width:26;cursor:move;touch-action:none}.dimlayer{fill:transparent;cursor:crosshair;touch-action:none}.canvas.tool-dim{cursor:crosshair}.it .overhang{fill:none;stroke:var(--muted);stroke-width:1;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}.elev .slidemark{fill:none;stroke:var(--muted);stroke-width:1}.presets{display:flex;flex-wrap:wrap;gap:8px}.presets button{min-height:var(--control-h);padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-sm);cursor:pointer}.presets button.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.panel .textfield{display:flex;flex-direction:column;gap:4px;font-size:var(--text-xs);color:var(--muted)}.panel .textfield input{min-width:0}.matlook{width:36px;height:36px;border-radius:50%;border:1px solid var(--border)}.matrow{grid-template-columns:44px 1fr 1fr auto 36px 40px}@media (max-width: 767px){.matrow{grid-template-columns:44px 1fr 36px 40px}}.angles{display:flex;flex-direction:column;gap:8px}.angles h3{margin-bottom:0}.angles .note{margin:0;font-size:var(--text-xs);color:var(--muted)}.anglechips{display:flex;flex-wrap:wrap;gap:8px}.anglechips .btn{flex:1 1 auto}.anglerow{display:grid;grid-template-columns:var(--control-h) 1fr var(--control-h);gap:8px;align-items:center}.anglerow input{min-width:0}.anglerow button{display:grid;place-items:center;height:var(--control-h);padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;color:var(--danger)}.anglerow button.go{color:var(--accent)}.anglerow.on button.go{background:var(--accent-soft);border-color:var(--accent)}.angles .seg{display:flex}.angles .seg button{flex:1}.page .pics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.page .pics .pic{margin:0}.page .pics .pic:first-child{grid-column:1 / -1}.page .pic .wait{aspect-ratio:16 / 10;display:grid;place-items:center;padding:0;background:var(--doc-band);border-radius:var(--radius-sm)}.page .pic figcaption{margin-top:3px;font-size:var(--text-xs);color:var(--muted)}.savestate{display:inline-flex;align-items:center;gap:var(--space-1);min-width:0;max-width:260px;font-size:var(--text-xs);color:var(--muted);white-space:nowrap}.savestate svg{flex:none}@media (max-width: 1023px){.savestate.saved span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}}@media (max-width: 767px){.savestate.saving span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}}.savestate button{overflow:hidden;text-overflow:ellipsis;max-width:100%;min-height:32px;padding:0 12px;border:1px solid currentColor;border-radius:var(--radius-full);background:var(--surface);cursor:pointer;font-size:var(--text-sm)}.savestate.offline{color:var(--warn)}.savestate.failed{color:var(--danger)}.account{position:relative}.btn.avatar{min-width:var(--control-h);padding:0 8px;border-radius:var(--radius-full);background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.btn.avatar:hover:not(:disabled){background:color-mix(in srgb,var(--accent-soft) 80%,var(--accent))}.accountmenu{position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:220px;max-width:min(320px,calc(100vw - 24px));padding:4px;display:grid;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-1)}.accountmenu .who{display:grid;padding:8px 12px;margin-bottom:4px;border-bottom:1px solid var(--border)}.accountmenu .who b,.accountmenu .who small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.accountmenu .who small{color:var(--muted)}.accountmenu [role=menuitem]{display:flex;align-items:center;min-height:var(--control-h);padding:0 12px;border:0;border-radius:var(--radius-sm);background:none;color:var(--ink);font-size:var(--text-md);text-align:left;text-decoration:none;cursor:pointer}.accountmenu [role=menuitem]:hover,.accountmenu [role=menuitem]:focus-visible{background:var(--accent-soft);outline-offset:-2px}.gate{padding:16px}.gate .ui-card{width:min(520px,100%)}.gate ul{margin:8px 0;padding-left:24px}.gate-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.kicon{flex:none;color:var(--muted)}.library{width:226px}.library button{justify-content:flex-start;min-height:44px;padding:0 8px}.library button>span{flex:1;min-width:0;line-height:1.2}.library button.on .kicon{color:var(--accent)}.panel h3.withicon{display:flex;align-items:center;gap:8px}kbd{display:inline-block;min-width:20px;padding:1px 4px;border:1px solid var(--border);border-bottom-width:2px;border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:var(--text-xs);font-weight:500;line-height:1.5;text-align:center}.modal .card.keys{width:min(640px,100%)}.keys h2{margin:0}.keygrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px 24px;margin-top:8px}.keygrid h3{margin:12px 0 4px;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.keygrid dl{margin:0}.keygrid dl>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:4px 0;border-top:1px solid var(--border);font-size:var(--text-md)}.keygrid dd{margin:0;white-space:nowrap;color:var(--muted);font-size:var(--text-xs)}.marquee{fill:var(--accent);fill-opacity:.08;stroke:var(--accent);stroke-width:1.5;stroke-dasharray:5 4;pointer-events:none}.empty .layouts{margin-top:24px;pointer-events:auto}.empty .layouts h3{margin:0 0 12px;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.empty .layouts>div{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.empty .layouts>p{margin:12px auto 0;font-size:var(--text-sm)}.layoutcard{display:grid;gap:8px;width:132px;padding:12px 8px 8px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;font-size:var(--text-sm);line-height:1.25;color:var(--ink)}.layoutcard:hover,.layoutcard:focus-visible{border-color:var(--accent);box-shadow:var(--shadow-1)}.layoutcard svg{width:100%;height:78px}.layoutcard line{stroke:var(--ink);stroke-width:7;stroke-linecap:square}.layoutcard polygon{fill:var(--accent-soft);stroke:var(--accent);stroke-width:3;stroke-linejoin:round}@media (max-width: 767px){.empty .layouts{margin-top:16px}.layoutcard{width:104px;padding:8px;font-size:var(--text-xs)}.layoutcard svg{height:54px}}.airender{display:grid;gap:4px}.aicredits{font-size:var(--text-xs);color:var(--muted);text-align:center}.aicredits.out{color:var(--danger);font-weight:600}.modal .card.ai{width:min(1040px,100%);display:grid;gap:12px;align-content:start}.modal .card.ai h2,.modal .card.ai h3,.modal .card.ai p{margin:0}.modal .card.ai h3{font-size:var(--text-sm);color:var(--muted);font-weight:600}.aihead{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.aihead h2{margin-right:auto!important}.aihead .aicredits{padding:4px 12px;border-radius:var(--radius-full);background:var(--accent-soft);color:var(--accent);font-size:var(--text-sm);font-weight:600}.aihead .aicredits.out{background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:var(--danger)}.aimake{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.aiintro{padding:32px 16px;border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--muted);text-align:center}.aiout,.aierror{padding:12px;border-radius:var(--radius-md);font-size:var(--text-md)}.aiout{background:var(--bg);font-weight:600}.aierror{background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger)}.aiplans{display:grid;gap:8px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--paper)}.modal .aiplans ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin:0}.modal .aiplans li{display:grid;gap:2px;align-items:start;padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.modal .aiplans li.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.aiplans li span{font-size:var(--text-md)}.aiplans li em{font-style:normal;font-size:var(--text-xs);color:var(--muted)}.modal .aiplans li.on em{color:var(--accent);font-weight:600}.aistage{display:grid;gap:8px}.aicompare{position:relative;width:100%;margin:0 auto;overflow:hidden;border-radius:var(--radius-md);background:var(--bg)}.aicompare img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;-webkit-user-select:none;user-select:none;pointer-events:none}.aicompare img.waiting,.aigallery img.waiting{filter:grayscale(.6) brightness(.75)}.aicompare .tag{position:absolute;top:8px;padding:2px 8px;border-radius:var(--radius-full);background:var(--photo-scrim);color:var(--photo-ink);font-size:var(--text-xs);font-weight:600}.aicompare .tag.l{left:8px}.aicompare .tag.r{right:8px}.aicompare .bar{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--photo-ink);outline:1px solid var(--photo-scrim)}.aicompare .bar:after{content:"";position:absolute;top:50%;left:50%;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;background:var(--photo-ink);box-shadow:var(--shadow-1)}.aicompare input[type=range]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}.aicompare input[type=range]:focus-visible~.bar,.aicompare:focus-within .bar{background:var(--accent)}.aiwait{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:8px;padding:16px;color:var(--photo-ink);text-align:center;text-shadow:0 1px 3px var(--photo-scrim)}.aiwait span:last-child{max-width:420px;font-size:var(--text-sm)}.aispin{width:28px;height:28px;border:3px solid color-mix(in srgb,var(--photo-ink) 40%,transparent);border-top-color:var(--photo-ink);border-radius:50%;animation:aispin .9s linear infinite}@keyframes aispin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.aispin{animation-duration:3s}}.aibar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.aimeta{margin-right:auto;font-size:var(--text-sm);color:var(--muted)}.aigallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.aigallery button{position:relative;aspect-ratio:3 / 2;padding:0;overflow:hidden;border:2px solid transparent;border-radius:var(--radius-md);background:var(--bg);cursor:pointer}.aigallery button.on{border-color:var(--accent)}.aigallery img{width:100%;height:100%;object-fit:cover;display:block}.aigallery .aispin{position:absolute;top:50%;left:50%;margin:-14px 0 0 -14px}.pwa-update{position:fixed;left:50%;bottom:calc(var(--space-4) + env(safe-area-inset-bottom));transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:var(--space-2);max-width:calc(100vw - 2 * var(--space-4));padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-2)}.pwa-update span{flex:1 1 auto;min-width:0}@media print{.pwa-update{display:none}}@media screen and (prefers-color-scheme: dark){:root:not([data-theme=light]),:root:not([data-theme=light]) .adm,:root:not([data-theme=light]) .acct-preview{color-scheme:dark;--bg: #141716;--surface: #1c201e;--paper: #181b1a;--ink: #e8ebe8;--muted: #a3aba6;--border: #2e3431;--border-strong: #6b736e;--overlay: rgb(0 0 0 / .6);--accent: var(--accent-dark, #5fc9bd) !important;--accent-soft: var(--accent-soft-dark, #17332f) !important;--accent-fill: var(--accent-fill-dark, var(--accent)) !important;--accent-on: var(--accent-on-dark, #06201d) !important;--measure: #f0b354;--measure-soft: #33280f;--danger: #ff8a7a;--danger-soft: #3a1c18;--danger-on: #2a0b07;--ok: #6fd19c;--ok-soft: #173324;--grid-minor: #252a28;--grid-major: #303634;--draw-unit: #3a3329;--draw-unit-line: #b09b78;--draw-unit-ink: #d6c6a6;--draw-upper: #2b4254;--draw-opening: #7fb4d8;--draw-panel: #6b5334;--draw-panel-line: #c79a68;--draw-wallface: #1e2220;--draw-carcass: #3d372d;--draw-front: #353028;--draw-side: #302c25;--draw-board: #3a342b;--draw-inner: #262320;--draw-plinth: #7d705a;--draw-worktop: #8d877d;--draw-dark: #868d89;--draw-glass: #223642;--draw-steel: #454c52;--draw-steel-line: #a9b4be;--draw-mirror: #2f3a40;--draw-fabric: #4a4236;--draw-marble: #44423d;--draw-marble-line: #b3a587;--draw-led: #ffdf8a;--draw-stock: #2b2e2c;--draw-trim: #6f6a60;--doc-desk: #0f1211;--shadow-1: 0 4px 14px rgb(0 0 0 / .45);--shadow-2: 0 20px 50px rgb(0 0 0 / .6)}}@media screen{:root[data-theme=dark],:root[data-theme=dark] .adm,:root[data-theme=dark] .acct-preview{color-scheme:dark;--bg: #141716;--surface: #1c201e;--paper: #181b1a;--ink: #e8ebe8;--muted: #a3aba6;--border: #2e3431;--border-strong: #6b736e;--overlay: rgb(0 0 0 / .6);--accent: var(--accent-dark, #5fc9bd) !important;--accent-soft: var(--accent-soft-dark, #17332f) !important;--accent-fill: var(--accent-fill-dark, var(--accent)) !important;--accent-on: var(--accent-on-dark, #06201d) !important;--measure: #f0b354;--measure-soft: #33280f;--danger: #ff8a7a;--danger-soft: #3a1c18;--danger-on: #2a0b07;--ok: #6fd19c;--ok-soft: #173324;--grid-minor: #252a28;--grid-major: #303634;--draw-unit: #3a3329;--draw-unit-line: #b09b78;--draw-unit-ink: #d6c6a6;--draw-upper: #2b4254;--draw-opening: #7fb4d8;--draw-panel: #6b5334;--draw-panel-line: #c79a68;--draw-wallface: #1e2220;--draw-carcass: #3d372d;--draw-front: #353028;--draw-side: #302c25;--draw-board: #3a342b;--draw-inner: #262320;--draw-plinth: #7d705a;--draw-worktop: #8d877d;--draw-dark: #868d89;--draw-glass: #223642;--draw-steel: #454c52;--draw-steel-line: #a9b4be;--draw-mirror: #2f3a40;--draw-fabric: #4a4236;--draw-marble: #44423d;--draw-marble-line: #b3a587;--draw-led: #ffdf8a;--draw-stock: #2b2e2c;--draw-trim: #6f6a60;--doc-desk: #0f1211;--shadow-1: 0 4px 14px rgb(0 0 0 / .45);--shadow-2: 0 20px 50px rgb(0 0 0 / .6)}}@media screen and (prefers-color-scheme: dark){:root:not([data-theme=light]) .page,:root:not([data-theme=light]) .acct-pv-doc{--grid-minor: #ebe7de;--grid-major: #dcd6c9;--draw-unit: #efe6d3;--draw-unit-line: #7a6a4f;--draw-unit-ink: #5c4f39;--draw-upper: #cfe3f1;--draw-opening: #3b6f94;--draw-panel: #d2ae7a;--draw-panel-line: #7a5536;--draw-wallface: #f3f0ea;--draw-carcass: #f6efe0;--draw-front: #e9e2d3;--draw-side: #e4dccb;--draw-board: #efe7d6;--draw-inner: #ddd5c4;--draw-plinth: #8b7d66;--draw-worktop: #4b4640;--draw-dark: #1b1f1d;--draw-glass: #d6e8f3;--draw-clear: color-mix(in srgb, var(--draw-glass) 45%, transparent);--draw-steel: #c5cbd0;--draw-steel-line: #6b7680;--draw-mirror: #dfe9ee;--draw-fabric: #d8cdb9;--draw-marble: #efebe3;--draw-marble-line: #a08d6c;--draw-led: #ffe9a8;--draw-stock: #efece6;--draw-trim: #b8b2a6;--border-strong: #8b938e;--hover: color-mix(in srgb, var(--ink) 6%, transparent);--surface-hover: color-mix(in srgb, var(--ink) 6%, var(--surface));--accent: var(--paper-accent, #0b6b63);--accent-soft: var(--paper-accent-soft, #dcedea);--accent-fill: var(--paper-accent-fill, var(--accent));--accent-on: var(--paper-accent-on, #fff);--measure: #945000;--measure-soft: #f9eedb;--warn: var(--measure);--warn-soft: var(--measure-soft);--danger: #b42318;--danger-soft: #fbe9e6;--danger-on: #fff;--ok: #1c6e45;--ok-soft: #dff0e6}}@media screen{:root[data-theme=dark] .page,:root[data-theme=dark] .acct-pv-doc{--grid-minor: #ebe7de;--grid-major: #dcd6c9;--draw-unit: #efe6d3;--draw-unit-line: #7a6a4f;--draw-unit-ink: #5c4f39;--draw-upper: #cfe3f1;--draw-opening: #3b6f94;--draw-panel: #d2ae7a;--draw-panel-line: #7a5536;--draw-wallface: #f3f0ea;--draw-carcass: #f6efe0;--draw-front: #e9e2d3;--draw-side: #e4dccb;--draw-board: #efe7d6;--draw-inner: #ddd5c4;--draw-plinth: #8b7d66;--draw-worktop: #4b4640;--draw-dark: #1b1f1d;--draw-glass: #d6e8f3;--draw-clear: color-mix(in srgb, var(--draw-glass) 45%, transparent);--draw-steel: #c5cbd0;--draw-steel-line: #6b7680;--draw-mirror: #dfe9ee;--draw-fabric: #d8cdb9;--draw-marble: #efebe3;--draw-marble-line: #a08d6c;--draw-led: #ffe9a8;--draw-stock: #efece6;--draw-trim: #b8b2a6;--border-strong: #8b938e;--hover: color-mix(in srgb, var(--ink) 6%, transparent);--surface-hover: color-mix(in srgb, var(--ink) 6%, var(--surface));--accent: var(--paper-accent, #0b6b63);--accent-soft: var(--paper-accent-soft, #dcedea);--accent-fill: var(--paper-accent-fill, var(--accent));--accent-on: var(--paper-accent-on, #fff);--measure: #945000;--measure-soft: #f9eedb;--warn: var(--measure);--warn-soft: var(--measure-soft);--danger: #b42318;--danger-soft: #fbe9e6;--danger-on: #fff;--ok: #1c6e45;--ok-soft: #dff0e6}}
