:root{--bg: #eef0f3;--surface: #ffffff;--surface-2: #f5f6f8;--surface-glass: rgb(255 255 255 / .86);--ink: #1d2330;--ink-2: #5b6474;--ink-3: #8a92a1;--line: #e1e4ea;--line-strong: #cdd2da;--accent: #2f6bff;--accent-ink: #ffffff;--accent-soft: rgb(47 107 255 / .12);--danger: #d93b3b;--danger-soft: rgb(217 59 59 / .1);--good: #2b8a3e;--shadow-sm: 0 1px 2px rgb(16 24 40 / .06);--shadow: 0 1px 2px rgb(16 24 40 / .06), 0 6px 20px rgb(16 24 40 / .08);--radius: 12px;--radius-sm: 8px;--paper: #fbfbfc;--grid: #eceef2;--grid-axis: #d3d7de;--wall: #262c38;--room: #f1e6d2;--room-ink: #7a6542;--glass: #3a8ee6;--scene-top: #f7f8fa;--scene-bottom: #e3e7ed;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px;line-height:1.4;color:var(--ink);-webkit-font-smoothing:antialiased}@media(prefers-color-scheme:dark){:root{--bg: #0f1218;--surface: #171b23;--surface-2: #1e232d;--surface-glass: rgb(26 31 40 / .86);--ink: #e7eaf0;--ink-2: #a3abba;--ink-3: #6f7889;--line: #272d38;--line-strong: #353c49;--accent: #5b8cff;--accent-soft: rgb(91 140 255 / .16);--danger: #ff6b6b;--danger-soft: rgb(255 107 107 / .12);--good: #69db7c;--shadow-sm: 0 1px 2px rgb(0 0 0 / .3);--shadow: 0 1px 2px rgb(0 0 0 / .3), 0 8px 24px rgb(0 0 0 / .35);--paper: #141821;--grid: #1d222c;--grid-axis: #2c3340;--wall: #d9dee7;--room: #3a3326;--room-ink: #d6bf94;--glass: #6fb3ff;--scene-top: #1b2029;--scene-bottom: #10131a}}*{box-sizing:border-box}html,body{margin:0;height:100%}body{display:grid;grid-template-rows:auto 1fr auto;background:var(--bg)}[hidden]{display:none!important}button{font:inherit;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-weight:500;cursor:pointer;white-space:nowrap;transition:background-color .12s,border-color .12s,color .12s,box-shadow .12s}button:hover:not(:disabled){background:var(--surface-2);border-color:var(--line-strong)}button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button:disabled{opacity:.35;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.primary:hover:not(:disabled){background:var(--accent);border-color:var(--accent);filter:brightness(1.08)}button.danger{color:var(--danger)}button.danger:hover:not(:disabled){background:var(--danger-soft);border-color:transparent}.icon{width:18px;height:18px;flex:none}.icon-button{width:32px;padding:0;border-color:transparent;background:transparent;color:var(--ink-2)}.icon-button:hover:not(:disabled){background:var(--surface-2);border-color:transparent;color:var(--ink)}kbd{font:inherit;font-size:10px;font-weight:600;min-width:16px;padding:0 4px;border-radius:4px;background:var(--surface-2);color:var(--ink-3);line-height:16px;text-align:center}button.ghost{border-color:transparent;background:transparent;color:var(--ink-2)}button.ghost:hover:not(:disabled){background:var(--surface-2);border-color:transparent;color:var(--ink)}.menu{position:fixed;z-index:10;display:flex;flex-direction:column;gap:2px;min-width:220px;padding:6px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.menu button{height:auto;flex-direction:column;align-items:flex-start;gap:0;padding:7px 10px;border:none;background:transparent;text-align:left}.menu button small{color:var(--ink-3);font-weight:400;font-size:12px}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:52px;padding:8px 12px;background:var(--surface);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:8px;height:36px;padding:0 8px 0 4px;margin-left:-4px;border:none;background:transparent;color:var(--ink);font-weight:700;font-size:15px;letter-spacing:-.01em}body.no-plan .brand{cursor:default}body.no-plan .brand:hover:not(:disabled){background:transparent}body:not(.no-plan) .brand:hover{background:var(--surface-2)}.brand-back{display:flex;margin:0 -2px;color:var(--ink-3)}.brand-back .icon{width:16px;height:16px}body:not(.no-plan) .brand:hover .brand-back{color:var(--accent)}.brand img{border-radius:7px}.file-name{cursor:pointer;display:flex;align-items:center;gap:6px;margin-left:8px;padding:4px 10px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);max-width:30vw}.variant-switch{max-width:180px;height:28px;padding:0 28px 0 12px;border-radius:999px;border:1px solid var(--line);appearance:none;background:var(--surface-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23888' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 4.5 3 3 3-3'/%3E%3C/svg%3E") no-repeat right 10px center;color:var(--ink-2);font:inherit;font-size:13px;font-weight:500;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;cursor:pointer}.variant-switch.open{border-color:var(--accent);background-color:var(--accent-soft);color:var(--accent)}#file-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dirty-dot{width:7px;height:7px;border-radius:50%;background:#f0a020;display:none}.file-name.dirty .dirty-dot{display:block}.spacer{flex:1}.group{display:flex;gap:2px}.divider{width:1px;height:20px;background:var(--line);margin:0 4px}.segmented{display:flex;padding:3px;gap:2px;border-radius:10px;background:var(--surface-2)}.segmented button{height:28px;padding:0 10px;border:none;background:transparent;color:var(--ink-2)}.segmented button:hover:not(:disabled){background:transparent;color:var(--ink)}.segmented button.active,.segmented button.active:hover{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.segmented .icon{width:16px;height:16px}.topics button{gap:6px}body:not(.no-plan) #language{gap:0;padding:0 8px;font-size:0}@media(max-width:1660px){#views button,#layers-button,#export,#share{gap:0;padding:0 8px;font-size:0}}@media(max-width:1500px){.topics button span{display:none}.topics button{gap:0;padding:0 8px}}@media(max-width:1800px){body.has-variants #views button,body.has-variants #layers-button,body.has-variants #export,body.remote-plan #views button,body.remote-plan #layers-button,body.remote-plan #export,body.has-variants #share,body.remote-plan #share{gap:0;padding:0 8px;font-size:0}}@media(max-width:1640px){body.has-variants .topics button span,body.remote-plan .topics button span{display:none}body.has-variants .topics button,body.remote-plan .topics button{gap:0;padding:0 8px}}@media(max-width:760px){.file-name{max-width:40vw;margin-left:0}.brand-name{display:none}}#area{--panel-width: 272px;display:grid;gap:8px;padding:8px;min-height:0;transition:grid-template-columns .2s ease}#plan-2d{grid-area:1 / 1}#plan-3d{grid-area:1 / 2}#panel{grid-area:1 / 3}#area.view-split{grid-template-columns:1fr 1fr var(--panel-width)}#area.view-2d{grid-template-columns:1fr 0 var(--panel-width)}#area.view-3d{grid-template-columns:0 1fr var(--panel-width)}#area.view-2d,#area.view-3d{column-gap:0}#area.view-2d #panel,#area.view-3d #panel{margin-left:8px}body.medium #area{--panel-width: 440px}body.wide #area.view-2d,body.wide #area.view-3d{grid-template-columns:1fr 1fr 272px;column-gap:8px}body.wide #area #panel{grid-area:1 / 2 / 2 / 4;margin-left:0}body.wide #area.view-2d #plan-3d,body.wide #area.view-3d #plan-2d{display:none}body.wide #area.view-3d #plan-3d{grid-area:1 / 1}body.wide .empty-state{grid-column:1}.pane{position:relative;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow-sm)}#area.view-2d #plan-3d,#area.view-3d #plan-2d{border-width:0}#plan-3d{background:linear-gradient(var(--scene-top),var(--scene-bottom))}#plan-3d canvas{position:absolute;inset:0}.pane-label{position:absolute;top:12px;left:12px;z-index:1;padding:4px 10px;border-radius:999px;background:var(--surface-glass);backdrop-filter:blur(8px);color:var(--ink-2);font-size:12px;pointer-events:none;box-shadow:var(--shadow-sm)}.pane .fit{position:absolute;right:12px;bottom:12px;z-index:1;background:var(--surface-glass);backdrop-filter:blur(8px);border:1px solid var(--line);box-shadow:var(--shadow-sm)}.palette{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:2;display:flex;align-items:center;gap:2px;padding:4px;max-width:calc(100% - 24px);overflow-x:auto;scrollbar-width:none;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-glass);backdrop-filter:blur(10px);box-shadow:var(--shadow)}.palette button{height:34px;padding:0 10px;border-color:transparent;background:transparent;color:var(--ink-2)}.palette button:hover:not(:disabled){background:var(--surface-2);border-color:transparent;color:var(--ink)}.palette button.active,.palette button.active:hover:not(:disabled){background:var(--accent);color:var(--accent-ink)}.palette button.active kbd{background:#fff3;color:var(--accent-ink)}.palette .divider{flex:none}#plan-2d{container-type:inline-size}@container (max-width: 640px){.palette button{padding:0 8px;font-size:0;gap:0}.palette kbd{display:none}}.empty-state{grid-row:1;grid-column:1 / 3;align-self:center;justify-self:center;z-index:3;width:min(500px,calc(100% - 32px));padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface-glass);backdrop-filter:blur(10px);box-shadow:var(--shadow);text-align:center}.empty-state h2{margin:0 0 6px;font-size:16px;letter-spacing:-.01em}.empty-state p{margin:0 0 18px;color:var(--ink-2)}.empty-state .actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.empty-state .link{display:inline-flex;align-items:center;gap:6px;margin-top:14px;padding:4px 8px;border:0;background:none;color:var(--accent, #2f6bff);font:inherit;font-weight:500;cursor:pointer}.empty-state .link:hover{text-decoration:underline}.empty-state .link .icon{width:16px;height:16px}#panel{display:flex;flex-direction:column;gap:12px;padding:16px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}#panel{container-type:inline-size}.panel-columns{display:grid;grid-template-columns:1fr;gap:12px 20px;align-items:start}@container (min-width: 600px){.panel-columns{grid-template-columns:1fr 1fr}}.panel-column{display:flex;flex-direction:column;gap:12px;min-width:0}#panel section{display:flex;flex-direction:column;gap:8px}#panel section+section{padding-top:12px;border-top:1px solid var(--line)}#panel h2{display:flex;align-items:center;gap:8px;margin:0 0 2px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}#panel h2 .icon{width:15px;height:15px}#panel p{margin:0;color:var(--ink-2)}#panel .field{display:grid;grid-template-columns:1fr 112px;align-items:center;gap:8px;color:var(--ink-2)}#panel .field.choice{grid-template-columns:1fr minmax(112px,50%)}body.wide:not(.compact) #panel>section .field{grid-template-columns:180px 112px}body.wide:not(.compact) #panel>section .field.choice{grid-template-columns:180px 220px}.input{display:flex;align-items:center;height:32px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);transition:border-color .12s,box-shadow .12s}.input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--surface)}.input input,.input select{font:inherit;flex:1;min-width:0;height:100%;padding:0 8px;border:none;outline:none;background:transparent;color:var(--ink);font-variant-numeric:tabular-nums}.input input[type=color]{padding:3px 4px;cursor:pointer}.input .reset{width:26px;height:26px;margin-right:3px;flex:none}.input .unit{padding-right:8px;color:var(--ink-3);font-size:12px}#panel input[type=range]{width:100%;accent-color:var(--accent)}#panel .actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}#panel .actions button{flex:1 1 calc(50% - 4px);max-width:100%;height:auto;min-height:32px;padding-block:6px;white-space:normal;text-align:start;line-height:1.25}#panel .actions button.item{flex-basis:100%;justify-content:flex-start;gap:10px;height:auto;padding:10px 12px;line-height:1.3}#panel button.item .lines{display:flex;flex-direction:column;gap:2px;min-width:0}#panel button.item small{color:var(--ink-2);font-size:12px;font-weight:400}.chart-title{margin:4px 0 0;color:var(--ink-2);font-size:12px}.month-chart{display:block;width:100%;height:auto}.month-chart .bar{fill:var(--accent)}.month-chart .axis{stroke:var(--line);stroke-width:1}.month-chart .bar,.month-chart text{pointer-events:none}.month-chart text{fill:var(--ink-2);font-size:9px;text-anchor:middle}.month-chart .value{fill:var(--ink);font-weight:600}.month-chart .hit{fill:transparent}.month-chart .hit:hover{fill:var(--surface-2);fill-opacity:.6}.stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat{padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-2)}.stat strong{display:block;font-size:18px;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat span{color:var(--ink-3);font-size:12px}.stat.wide{grid-column:span 2}#panel .note{font-size:12px;color:var(--ink-3)}#panel .note a{color:inherit}#status{display:flex;align-items:center;gap:8px;min-height:30px;padding:0 16px 8px;color:var(--ink-3);font-size:12px}#status:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}#status.error{color:var(--danger)}#status.error:before{background:var(--danger)}.editor2d{display:block;width:100%;height:100%;background:var(--paper);touch-action:none;user-select:none;cursor:default}.editor2d[data-tool=map]{cursor:move}.editor2d[data-tool=pan],.editor2d.space{cursor:grab}.editor2d.panning,.editor2d.panning *{cursor:grabbing!important}.editor2d[data-tool=wall],.editor2d[data-tool=door],.editor2d[data-tool=window],.editor2d[data-tool=dimension],.editor2d[data-tool=stair],.editor2d[data-tool=chimney],.editor2d[data-tool=furniture],.editor2d[data-tool=fixture],.editor2d[data-tool=run],.editor2d[data-tool=rectify],.editor2d[data-tool=calibrate]{cursor:crosshair}.editor2d line,.editor2d polyline,.editor2d path,.editor2d polygon,.editor2d circle{vector-effect:non-scaling-stroke}.grid line{stroke:var(--grid);stroke-width:1}.grid line.axis{stroke:var(--grid-axis)}.rooms polygon{fill:var(--room);fill-opacity:.7;pointer-events:none}.rooms polygon.selected{fill:var(--accent-soft);fill-opacity:1;stroke:var(--accent);stroke-width:2;stroke-dasharray:6 4}.room-label.name{font-weight:700}.room-label{paint-order:stroke;stroke:var(--paper);stroke-linejoin:round}.room-label,.dimension{text-anchor:middle;dominant-baseline:middle;pointer-events:none;fill:var(--room-ink);font-weight:500}.dimension{fill:var(--accent);font-weight:600;paint-order:stroke;stroke:var(--paper);stroke-linejoin:round}.wall{fill:var(--wall);cursor:move}.wall:hover{fill:color-mix(in srgb,var(--wall) 75%,var(--accent))}.wall.selected{fill:var(--accent)}.opening{cursor:ew-resize}.opening .gap{fill:var(--paper);stroke:var(--wall);stroke-width:1}.opening .leaf,.opening .swing,.opening .glass{fill:none;stroke:var(--wall);stroke-width:1.5;pointer-events:none}.opening .swing{stroke-dasharray:4 3;stroke-width:1;opacity:.7}.opening .glass{stroke:var(--glass);stroke-width:2}.opening.window .leaf{stroke-width:.8;opacity:.7}.opening.conflict .gap,.piece.conflict .box{stroke:var(--danger);stroke-width:2;stroke-dasharray:5 3}.opening.selected .gap{fill:var(--accent-soft);stroke:var(--accent)}.vertex{fill:var(--surface);stroke:var(--wall);stroke-width:1.5;cursor:move}.vertex:hover{stroke:var(--accent)}.vertex.selected{fill:var(--accent);stroke:var(--accent)}.overlay .preview{stroke:var(--accent);stroke-width:2;stroke-dasharray:6 4}.overlay .cursor{fill:none;stroke:var(--accent);stroke-width:1.5}.overlay .cursor.on-vertex,.overlay .cursor.on-wall{fill:var(--accent)}.dimension-line{cursor:move}.dimension-line line{stroke:var(--ink-2);stroke-width:1}.dimension-line line.tick{stroke-width:1.5}.dimension-line line.extension{stroke-dasharray:2 2;opacity:.7}.dimension-line line.hit{stroke:transparent;stroke-width:12}.dimension-line .measure{text-anchor:middle;dominant-baseline:middle;fill:var(--ink);font-weight:600;paint-order:stroke;stroke:var(--paper);stroke-linejoin:round;pointer-events:none}.dimension-line:hover line:not(.hit),.dimension-line.selected line:not(.hit){stroke:var(--accent)}.dimension-line.selected .measure{fill:var(--accent)}.preview-dimension{pointer-events:none;opacity:.8}.overlay .marquee{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.overlay .corners{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.5;stroke-dasharray:6 4}.suggestion{cursor:pointer}.suggestion line.body{stroke:#12b886;stroke-opacity:.55;stroke-linecap:square;vector-effect:none}.suggestion line.axis{stroke:#0c8a64;stroke-width:1.5}.suggestion.rejected line.body{stroke:var(--danger);stroke-opacity:.25}.suggestion.rejected line.axis{stroke:var(--danger);stroke-dasharray:4 3}.suggestion:hover line.body{stroke-opacity:.8}#panel .busy{display:flex;align-items:center;gap:8px;color:var(--ink-2)}#panel .busy:before{content:"";width:14px;height:14px;border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.below polygon{fill:none;stroke:var(--ink-3);stroke-width:1;stroke-dasharray:3 3;opacity:.6;pointer-events:none}.below .stair-hole{stroke:var(--accent);stroke-dasharray:6 3;opacity:.7}.stair{cursor:move}.stair .outline{fill:var(--paper);stroke:var(--wall);stroke-width:1.5}.stair .step{fill:none;stroke:var(--wall);stroke-width:1}.stair .walk{fill:none;stroke:var(--wall);stroke-width:1.2}.stair .landing{fill:var(--surface-2)}.stair .walk-start{fill:var(--wall)}.stair:hover .outline,.stair.selected .outline{stroke:var(--accent)}.stair.selected .outline{fill:var(--accent-soft)}.preview-stair{pointer-events:none;opacity:.6}.chimney{cursor:move}.chimney .outline{fill:#c2593f;fill-opacity:.25;stroke:#9c3d27;stroke-width:1.5}.chimney .cross{stroke:#9c3d27;stroke-width:1}.chimney.through{pointer-events:none;opacity:.45}.chimney.selected .outline{stroke:var(--accent);fill:var(--accent-soft)}.roof-lines line{stroke:#b0532f;stroke-width:1.2;stroke-dasharray:8 4;pointer-events:none}.clear-height line{stroke:#7a5c99;stroke-width:.8;stroke-dasharray:3 3;pointer-events:none}.clear-height line.low{stroke-dasharray:2 4;opacity:.7}.stories{position:absolute;left:12px;bottom:12px;z-index:2;display:flex;flex-direction:column;gap:2px;width:168px;padding:4px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-glass);backdrop-filter:blur(10px);box-shadow:var(--shadow)}.stories .story{justify-content:space-between;height:30px;padding:0 8px;border-color:transparent;background:transparent;color:var(--ink-2)}.stories .story small{color:var(--ink-3);font-weight:400;font-variant-numeric:tabular-nums}.stories .story.active{background:var(--accent-soft);color:var(--accent)}.stories .story.active small{color:var(--accent)}.stories .ground{height:1px;margin:2px 6px;background:var(--line-strong)}.stories .add{height:28px;border-style:dashed;border-color:var(--line-strong);background:transparent;color:var(--ink-3)}.compass{position:absolute;top:12px;right:12px;z-index:2;width:52px;height:52px;border:1px solid var(--line);border-radius:50%;background:var(--surface-glass);backdrop-filter:blur(10px);box-shadow:var(--shadow-sm);cursor:grab;touch-action:none}.compass svg{width:100%;height:100%}.compass .ring{fill:none;stroke:var(--line-strong)}.compass .north{fill:var(--danger)}.compass .south{fill:var(--ink-3)}.compass .letter{font-size:8px;font-weight:700;text-anchor:middle;fill:var(--ink)}@container (max-width: 640px){.compass{top:60px}}.pill-toggle{position:absolute;top:12px;right:12px;z-index:1;height:28px;border-radius:999px;background:var(--surface-glass);backdrop-filter:blur(8px);box-shadow:var(--shadow-sm);color:var(--ink-2);font-size:12px}.pill-toggle.active,.pill-toggle.active:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.piece{cursor:move}.piece .box{fill:var(--paper);stroke:var(--ink-2);stroke-width:1.2}.piece .part{fill:none;stroke:var(--ink-2);stroke-width:.8}.piece .piece-name{text-anchor:middle;dominant-baseline:middle;fill:var(--ink-2);font-size:10px;pointer-events:none}.piece:hover .box,.piece.selected .box{stroke:var(--accent)}.piece.selected .box{fill:var(--accent-soft)}.piece.selected .part{stroke:var(--accent)}.piece.ghost{pointer-events:none;opacity:.7}.overlay .ghost-box{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-dasharray:4 3}.catalog{position:absolute;top:60px;left:12px;bottom:12px;z-index:3;display:flex;flex-direction:column;width:min(320px,calc(100% - 24px));border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.catalog header{display:flex;align-items:center;justify-content:space-between;padding:10px 10px 6px 14px;font-weight:600}.catalog .tabs{display:flex;gap:2px;margin:0 10px;padding:3px;border-radius:10px;background:var(--surface-2)}.catalog .tabs button{flex:1;height:26px;padding:0 6px;border:none;background:transparent;color:var(--ink-2);font-size:12px}.catalog .tabs button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.catalog .search{margin:8px 10px}.catalog .search input{font:inherit;width:100%;height:30px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink);outline:none}.catalog .search input:focus{border-color:var(--accent);background:var(--surface)}.catalog .body{flex:1;overflow-y:auto;padding:0 10px 10px}.catalog h3{margin:10px 2px 6px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.catalog .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.catalog .card{flex-direction:column;height:auto;padding:6px 4px;gap:4px;font-size:11px;font-weight:500;line-height:1.2;white-space:normal;text-align:center;background:var(--surface)}.catalog .card .thumb{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;border-radius:6px;background:var(--surface-2);overflow:hidden}.catalog .card .thumb img{max-width:100%;max-height:100%;object-fit:contain}.catalog .card .thumb svg{width:80%;height:80%}.catalog .card .thumb svg .shape{fill:var(--surface);stroke:var(--ink-2)}.catalog .card .thumb svg .line{stroke:var(--ink-2)}.catalog .card small{color:var(--ink-3);font-weight:400}.catalog .card.busy{opacity:.6;pointer-events:none}.catalog .note{margin:8px 2px;font-size:12px;color:var(--ink-3)}.catalog .note.error{color:var(--danger)}.editor2d .opening-suggestion{stroke-linecap:butt;stroke-opacity:.85;cursor:pointer;vector-effect:none}.opening-suggestion.door{stroke:#f08c00}.opening-suggestion.window{stroke:#1c7ed6}.opening-suggestion.rejected{stroke:var(--danger);stroke-opacity:.3}.fixture{cursor:move}.fixture .hit,.run .hit{fill:transparent;stroke:transparent}.run .hit{fill:none;stroke-width:12}.fixture .shape{fill:var(--paper);stroke-width:1.3}.fixture .stroke{fill:none;stroke-width:1.3}.fixture.electric .shape,.fixture.electric .stroke{stroke:#d9480f}.fixture.electric .fill{fill:#d9480f}.fixture.heating .shape,.fixture.heating .stroke{stroke:#c92a2a}.fixture.heating .fill{fill:#c92a2a}.fixture.water .shape,.fixture.water .stroke{stroke:#1971c2}.fixture.water .fill{fill:#1971c2}.fixture.comms .shape,.fixture.comms .stroke{stroke:#7048e8}.fixture.comms .fill{fill:#7048e8}.fixture.selected .shape,.fixture.selected .stroke{stroke:var(--accent)}.fixture.selected .shape{fill:var(--accent-soft)}.fixture.ghost{pointer-events:none;opacity:.65}.run{cursor:move}.run .line,.overlay .run-preview{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.run.selected .line{stroke-width:3.5}.overlay .run-preview{opacity:.7}.services-menu{display:grid;grid-template-columns:1fr 1fr;min-width:360px}.services-menu h4{grid-column:span 2;margin:6px 8px 2px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.services-menu button{flex-direction:row;justify-content:flex-start;align-items:center;gap:8px}.services-menu svg.symbol{width:22px;height:22px;flex:none}.services-menu .swatch{width:22px;height:3px;flex:none;border-radius:2px}.menu .check{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--radius-sm);cursor:pointer}.menu .check:hover{background:var(--surface-2)}.menu .menu-label{margin:6px 10px 2px;padding-top:8px;border-top:1px solid var(--line);color:var(--ink-2);font-size:12px}.menu .menu-note{max-width:240px;margin:4px 10px 6px;color:var(--ink-2);font-size:12px}.map-credit{position:absolute;right:56px;bottom:14px;z-index:1;padding:2px 6px;border-radius:4px;background:var(--surface-glass);color:var(--ink-2);font-size:11px;text-decoration:none}.map-credit[hidden]{display:none}#panel details.group{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 10px}#panel details.group[open]{padding-bottom:10px}#panel details.group>summary{cursor:pointer;color:var(--ink-2);font-weight:500;padding:2px 0}#panel details.group>*+*{margin-top:8px}#panel .layer-row{display:grid;grid-template-columns:1fr 52px auto 28px;align-items:center;gap:4px}#panel .layer-row select,#panel .layer-row input,#panel .side-row select,#panel .side-row input{font:inherit;height:28px;min-width:0;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);color:var(--ink);padding:0 4px}#panel .layer-row span{color:var(--ink-3);font-size:12px}#panel .layer-row .icon-button{width:28px;height:28px}#panel .check-field input{justify-self:end;width:18px;height:18px;accent-color:var(--accent)}#panel p.warning{padding:8px 10px;border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:12px}.editor2d .insulation-wall{fill:none;stroke-linecap:butt;stroke-opacity:.85;pointer-events:none;vector-effect:none}.heat-label{text-anchor:middle;dominant-baseline:middle;font-weight:700;fill:#c92a2a;paint-order:stroke;stroke:var(--paper);stroke-linejoin:round;pointer-events:none}.roof-outline .outline{fill:#b0532f14;stroke:#b0532f;stroke-width:1.5}.roof-outline .corner{fill:var(--surface);stroke:#b0532f;stroke-width:1.5;cursor:move;vector-effect:non-scaling-stroke}.roof-outline .corner.selected{fill:#b0532f}.roof-outline .insert{fill:var(--surface);stroke:#b0532f;stroke-width:1;stroke-dasharray:2 2;cursor:copy}#panel .side-row{display:grid;grid-template-columns:18px 1fr 52px 56px;align-items:center;gap:4px}#panel .side-row span{color:var(--ink-3);font-size:12px;text-align:right}#panel .side-row input:disabled{opacity:.4}.roof-outline .side-number{text-anchor:middle;dominant-baseline:middle;font-weight:700;fill:#b0532f;paint-order:stroke;stroke:var(--paper);stroke-linejoin:round;pointer-events:none}body.no-plan .plan-tools,body:not(.no-plan) .home-only{display:none}body.overview #views,body.overview #layers-button{display:none}#home,#overview{display:grid;padding:8px;min-height:0}#home{display:block;overflow-y:auto;padding:40px 16px 32px}.home{display:flex;flex-direction:column;gap:8px;max-width:1040px;margin:0 auto}.home h2{margin:0;font-size:26px;letter-spacing:-.02em}.home .home-note{padding:0 0 16px;font-size:14px;max-width:680px}.home .project-list{gap:32px;padding:0;overflow:visible}.project-grid.start-row{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.start-row .project-start{min-height:84px;background:var(--surface);border-style:solid}.home-links{display:flex;flex-wrap:wrap;gap:4px 20px;padding-top:12px;border-top:1px solid var(--line)}.home-links .link{height:auto;padding:4px 0;border:none;background:transparent;color:var(--ink-2);font-size:13px}.home-links .link:hover:not(:disabled){background:transparent;color:var(--accent)}.home-links .link .icon{width:16px;height:16px}#overview{grid-template-columns:minmax(0,760px);justify-content:center}.home-card{display:flex;flex-direction:column;min-height:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.home-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:16px 20px 8px}.home-head h2{margin:0;font-size:17px;letter-spacing:-.01em}.home-note{margin:0;padding:0 20px 12px;color:var(--ink-3);font-size:12.5px;line-height:1.4}.home-note.warning{color:#c2410c}.project-list{display:flex;flex-direction:column;gap:20px;padding:4px 20px 20px;overflow-y:auto}.project-section h3{margin:0 0 10px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.project-empty{margin:0;color:var(--ink-3);font-size:14px}.project{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden;transition:border-color .12s,box-shadow .12s}.project:hover{box-shadow:var(--shadow-sm)}.project.current{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.project-open{height:auto;flex-direction:column;align-items:stretch;gap:0;padding:0;border:none;border-radius:0;background:transparent;text-align:start;white-space:normal}.project-open:hover:not(:disabled){background:transparent}.project-picture{display:grid;place-items:center;aspect-ratio:4 / 3;padding:10px;background:var(--paper);border-bottom:1px solid var(--line);color:var(--ink-3)}.project-picture img{width:100%;height:100%;object-fit:contain}.project-picture .icon{width:36px;height:36px;opacity:.5}.project-text{display:flex;flex-direction:column;gap:2px;min-width:0;padding:10px 12px 12px}.project-text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-text small{color:var(--ink-3);font-weight:400}.project-start{height:auto;flex-direction:row;justify-content:flex-start;align-items:center;gap:0;padding:0;border-style:dashed;background:transparent;color:var(--ink);text-align:start;white-space:normal;font-weight:400}.project-start:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.project-start .project-picture{flex:none;width:56px;aspect-ratio:auto;align-self:stretch;padding:0;background:transparent;border-bottom:none;color:var(--accent)}.project-start .project-picture .icon{width:24px;height:24px;opacity:1}.project-start .project-text{padding:12px 12px 12px 0}.project-name{margin:0 12px;width:calc(100% - 24px)}.project-tools{position:absolute;top:6px;right:6px;display:flex;gap:2px;padding:2px;border-radius:var(--radius-sm);background:var(--surface-glass);backdrop-filter:blur(8px);opacity:0;transition:opacity .12s}.project:hover .project-tools,.project:focus-within .project-tools{opacity:1}@media(hover:none){.project-tools{opacity:1}}.project-tools .icon-button.danger:hover:not(:disabled){color:#c92a2a}.contents{padding:0 12px 16px;overflow-y:auto}.contents-title{margin:0 8px 8px;color:var(--ink-3);font-size:12.5px}.contents details{margin-left:12px}.contents>details{margin-left:0}.contents summary{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;font-weight:500}.contents summary{list-style:none}.contents summary::-webkit-details-marker{display:none}.contents summary:before{content:"";flex:none;width:6px;height:6px;margin:0 2px 0 1px;border-right:1.5px solid var(--ink-3);border-bottom:1.5px solid var(--ink-3);transform:rotate(-45deg);transition:transform .12s}.contents details[open]>summary:before{transform:rotate(45deg)}.contents summary:hover{background:var(--surface-2)}.contents .count,.contents .leaf small{margin-left:auto;color:var(--ink-3);font-size:12px;font-weight:400}.contents .leaf{display:flex;align-items:center;gap:8px;width:calc(100% - 20px);height:auto;margin-left:20px;padding:5px 8px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--ink-2);font-weight:400;text-align:start}.contents button.leaf:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.contents .leaf .icon{width:16px;height:16px;flex:none}.contents .leaf span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1100px){.topbar .divider{display:none}}#panel details.group.variant>summary{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-height:30px}#panel details.group.variant .stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}#panel .variant-title{color:var(--ink);font-weight:600}#panel .variant-tag{padding:1px 7px;border-radius:999px;font-size:11px;font-weight:500}#panel .variant-tag.accent{background:var(--accent-soft);color:var(--accent)}#panel .variant-tag.plain{background:var(--surface-2);color:var(--ink-2)}#panel .variant-result{margin-left:auto;font-size:12px;font-weight:600}#panel .variant-result.better{color:var(--good)}#panel .variant-result.worse{color:var(--danger)}#panel .variant-actions{display:flex;gap:2px}#panel .variant-actions .icon-button{width:28px;height:28px}#panel .variant-actions .icon-button.active{color:var(--accent);background:var(--accent-soft)}#panel details.group.variant.open{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}#panel .variant-warning{padding:6px 8px;border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:12px}#panel .note.variant-open{color:var(--accent)}#panel .price{display:inline-flex;align-items:center;justify-content:flex-end;gap:2px}#panel .price input{width:92px;height:26px;padding:0 6px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink);font:inherit;text-align:right;font-variant-numeric:tabular-nums}#panel .price input:focus{outline:none;border-color:var(--accent);background:var(--surface)}#panel .icon-button.reset,#panel .reset-space{flex:none;width:24px;height:24px;color:var(--accent)}#panel details.group.variant .panel-table td:last-child{padding-right:0}.compare-dialog{max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);padding:16px 20px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.compare-dialog::backdrop{background:#00000059}.compare-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.compare-head h2{margin:0;font-size:18px}.compare-dialog .note{margin:0;color:var(--ink-3);font-size:12px}#panel h2 .heading-action{margin-left:auto;height:26px;padding:0 10px;font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink)}.compare-dialog .compare-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-sm)}.compare-dialog table.compare{border-collapse:collapse;width:100%;font-size:13px;font-variant-numeric:tabular-nums}.compare-dialog table.compare th,.compare-dialog table.compare td{padding:6px 16px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.compare-dialog table.compare thead th{position:sticky;top:0;background:var(--surface-2);font-weight:600}.compare-dialog table.compare thead th.open{color:var(--accent)}.compare-dialog table.compare tbody th{position:sticky;left:0;background:var(--surface);text-align:left;font-weight:500;color:var(--ink-2)}.compare-dialog table.compare tbody tr:last-child>*{border-bottom:none}.compare-dialog .compare-block{display:flex;flex-direction:column;gap:8px}.compare-dialog .compare-block p{margin:0}.compare-dialog table.compare td.best{color:var(--good);font-weight:600}.trash-row{display:flex;flex-direction:column;gap:6px}.trash-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.trash-item span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#panel .table-box{overflow-x:auto;margin:4px 0}#panel .panel-table{width:100%;border-collapse:collapse;font-size:12px}#panel .panel-table th{color:var(--ink-3);font-weight:500;text-align:left;padding:4px 6px;border-bottom:1px solid var(--line);white-space:nowrap}#panel .panel-table td{padding:4px 6px;border-bottom:1px solid var(--line);color:var(--ink)}#panel .panel-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.badge{display:inline-block;padding:1px 6px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap;background:var(--surface-2);color:var(--ink-2)}.badge.good{background:color-mix(in srgb,var(--good) 16%,transparent);color:var(--good)}.badge.fair{background:color-mix(in srgb,#e8a33d 20%,transparent);color:#b26b00}.badge.bad{background:var(--danger-soft);color:var(--danger)}#panel .note-text{width:100%;box-sizing:border-box;font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);color:var(--ink);resize:vertical}#panel .note-photos{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}#panel .note-photo{position:relative;width:72px;height:72px}#panel .note-photo img{width:100%;height:100%;object-fit:cover;border-radius:6px;cursor:zoom-in}#panel .note-photo .icon-button{position:absolute;top:2px;right:2px;width:22px;height:22px;border-radius:50%;background:#0000008c;color:#fff}#panel .note-add{width:72px;height:72px;border:1px dashed var(--line-strong);border-radius:6px;background:transparent;color:var(--ink-2)}.photo-dialog{padding:0;border:none;background:transparent;max-width:96vw;max-height:96vh}.photo-dialog::backdrop{background:#000c}.photo-dialog img{display:block;max-width:96vw;max-height:96vh;object-fit:contain}.shortcuts-dialog{max-width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 48px);padding:20px 24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.shortcuts-dialog::backdrop{background:#00000059}.shortcuts-dialog h2{margin:0 0 12px;font-size:18px}.shortcuts-dialog .app-version{margin:12px 0 8px;color:var(--ink-3);font-size:12px}.shortcuts-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px 24px}.shortcuts-dialog h3{margin:0 0 6px;font-size:12px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}.shortcuts-dialog dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:13px}.shortcuts-dialog dd{margin:0;color:var(--ink-2)}.shortcuts-dialog kbd{display:inline-block;min-width:1.4em;padding:1px 5px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:4px;background:var(--surface-2);font:12px/1.4 ui-monospace,monospace;text-align:center}.shortcuts-dialog>button{margin-top:16px}.project-warning{margin:-4px 0 10px;color:#b26b00;font-size:13px;line-height:1.45}.bottom-bar,.sheet-handle,.compact-only{display:none}.tool-done{position:absolute;right:12px;bottom:12px;z-index:3;height:44px;padding:0 18px;border-radius:22px;box-shadow:var(--shadow)}@media(pointer:coarse){.palette button{height:40px;min-width:40px}.icon-button{width:40px;height:40px}#panel button,#panel select,#panel .input input{min-height:38px}#panel .check-field input{width:22px;height:22px}.stories .story{height:38px}.menu button{min-height:44px}}body.compact{grid-template-columns:minmax(0,1fr);--bottom-bar: calc(58px + env(safe-area-inset-bottom)) ;--status-height: 22px;--sheet-bottom: calc(var(--bottom-bar) + var(--status-height));grid-template-rows:auto 1fr auto auto}body.compact .topbar{flex-wrap:nowrap;gap:4px;min-height:48px;padding:4px 8px;padding-top:max(4px,env(safe-area-inset-top))}body.compact .topbar>.group:not(:has(#undo)),body.compact #layers-button,body.compact #export,body.compact .topbar .divider,body.compact [data-view=split]{display:none}body.compact:not(.no-plan) .compact-only{display:inline-flex}body.compact .file-name{flex:1;min-width:0;max-width:none}body.compact .variant-switch{flex:0 1 auto;min-width:64px;max-width:30vw;margin-left:0}body.compact .topbar .spacer{display:none}body.compact #views button{padding:0 8px;font-size:0;gap:0}body.compact:not(.no-plan) .bottom-bar{display:flex;position:fixed;left:0;right:0;bottom:0;height:var(--bottom-bar);padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line);z-index:30}body.compact .bottom-bar .topics{display:flex;flex:1;height:100%;padding:0;border:none;border-radius:0;background:transparent}body.compact .bottom-bar .topics button{flex:1;flex-direction:column;justify-content:center;gap:2px;height:100%;padding:0;border-radius:0;font-size:10px;background:transparent;color:var(--ink-3)}body.compact .bottom-bar .topics button span{display:block;overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap}body.compact .bottom-bar .topics button.active{color:var(--accent);background:transparent;box-shadow:none}body.compact #area,body.compact.wide #area.view-2d,body.compact.wide #area.view-3d{grid-template-columns:1fr;gap:0;padding:0}body.compact #plan-2d,body.compact #plan-3d,body.compact.wide #area.view-3d #plan-3d{grid-area:1 / 1}body.compact #area.view-2d #plan-3d,body.compact #area.view-3d #plan-2d{display:none}body.compact .pane{border:none;border-radius:0;box-shadow:none}body.compact #panel,body.compact.wide #area #panel{position:fixed;left:0;right:0;bottom:var(--sheet-bottom);z-index:20;height:var(--sheet-height, 72px);margin:0;padding:26px 14px 14px;border-radius:16px 16px 0 0;box-shadow:0 -6px 24px #10182824;transition:height .18s ease}body.compact.no-plan #panel{display:none}body.compact:not(.no-plan) .sheet-handle{position:fixed;left:0;right:0;bottom:calc(var(--sheet-bottom) + var(--sheet-height, 72px) - 26px);z-index:21;display:flex;justify-content:center;align-items:center;height:26px;border:none;background:transparent;touch-action:none;transition:bottom .18s ease}body.compact .sheet-handle span{width:40px;height:5px;border-radius:3px;background:var(--line-strong)}body.compact.overview .sheet-handle,body.compact.overview #panel{display:none}body.compact:not(.no-plan){padding-bottom:var(--sheet-bottom)}body.compact:not(.no-plan) #status{position:fixed;left:0;right:0;bottom:var(--bottom-bar);z-index:25;background:var(--bg)}body.compact #status{grid-row:3;min-width:0;height:var(--status-height);min-height:0;box-sizing:border-box;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:11px;padding:2px 10px}body.compact .palette{top:8px;max-width:calc(100% - 16px)}body.compact .stories{top:60px;bottom:auto;left:8px;width:auto;min-width:132px}body.compact .stories:not(.open)>:not(.active){display:none}body.compact .compass{top:60px}body.compact .tool-done{position:fixed;bottom:calc(var(--sheet-bottom) + var(--sheet-height, 72px) + 12px)}body.compact .menu{max-width:calc(100vw - 16px)}body.compact #language{padding:0 8px;font-size:0;gap:0}body.compact.sheet-drag #panel,body.compact.sheet-drag .sheet-handle{transition:none}body.compact #home{padding:20px 16px 24px}body.compact .home h2{font-size:22px}#panel .place-search{position:relative}#panel .place-search>.icon{position:absolute;left:10px;top:10px;width:16px;height:16px;color:var(--ink-3);pointer-events:none}#panel .place-search input{width:100%;height:36px;box-sizing:border-box;padding:0 10px 0 34px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink);font:inherit}#panel .place-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--surface)}#panel .place-list{position:absolute;z-index:20;top:40px;left:0;right:0;margin:0;padding:4px;list-style:none;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow)}#panel .place-list li{display:flex;align-items:baseline;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer}#panel .place-list li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-3);font-size:12px}#panel .place-list li.active,#panel .place-list li:hover{background:var(--accent-soft)}#panel .place-status:empty{display:none}#panel .place-status{padding:4px 2px 0;color:var(--ink-3);font-size:12px}.remote-state{height:28px;max-width:200px;padding:0 10px;border-radius:999px;border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.remote-state .icon{width:15px;height:15px;flex:none}.remote-state.busy{border-color:var(--line-strong);background:var(--surface-2);color:var(--ink-2)}.remote-state.bad{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}body.compact .remote-state{font-size:0;gap:0;flex:none;padding:0 7px}body.compact #share{font-size:0;gap:0;padding:0 8px}.app-dialog{width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 48px);padding:16px 20px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.app-dialog::backdrop{background:#00000059}.app-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.app-dialog-head h2{margin:0;font-size:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-dialog-body{display:flex;flex-direction:column;gap:10px}.app-dialog h3{margin:8px 0 0;font-size:12px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}.dialog-form{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm)}.dialog-form>button.primary,.app-dialog-body>button.primary{align-self:flex-start}.dialog-field{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:10px;color:var(--ink-2);font-size:13px}.dialog-field input,.dialog-field select{min-width:0;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink);font:inherit}.dialog-pair{display:flex;gap:6px;min-width:0}.dialog-pair>input,.dialog-pair>select{flex:1}.dialog-check{display:flex;align-items:center;gap:8px;color:var(--ink-2);font-size:13px}.dialog-note{margin:0;color:var(--ink-3);font-size:12px}.dialog-note.strong{color:var(--ink);font-weight:600}.dialog-note.warning{color:var(--danger)}.dialog-note:empty{display:none}.dialog-actions{display:flex;flex-wrap:wrap;gap:6px}.new-link{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent-soft)}.token-list{display:flex;flex-direction:column}.token-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}.token-row span{display:flex;flex-direction:column;min-width:0}.token-row small{color:var(--ink-3)}.server-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.server-head h3{display:flex;align-items:center;gap:8px}.server-head h3 .icon{width:16px;height:16px}.server-head h3 small{color:var(--ink-3);font-weight:400;text-transform:none;letter-spacing:0}.server-head .project-tools{position:static;display:flex;gap:2px;padding:0;background:none;opacity:1}.project.remote .project-picture .icon{width:40px;height:40px;color:var(--accent)}.project-marks{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.remote-mark{padding:1px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:11px}.remote-mark.busy{background:var(--surface-2);color:var(--ink-2)}.token-row .dialog-actions{flex:none;flex-wrap:nowrap}.token-row strong .icon{width:14px;height:14px;margin-right:4px;vertical-align:-2px;color:var(--ink-3)}
