:root{--fp-acid:#c9ff48;--fp-ink:#11161d;--fp-dark:#151b22;--fp-line:#dfe4da;--fp-bg:#eef1ea;--fp-paper:#fff;--fp-muted:#68737d;--fp-danger:#b33b32;--fp-shadow:0 18px 55px rgba(27,37,45,.08)}
.floorplan-hero{padding-bottom:52px}.floorplan-hero .inner{max-width:1000px}.floorplan-hero p{max-width:850px}.floorplan-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.floorplan-hero-points{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.floorplan-hero-points span{padding:8px 11px;border:1px solid rgba(255,255,255,.15);border-radius:99px;background:rgba(255,255,255,.06);color:#dde4e9;font-size:10px;font-weight:800}
.floorplan-section{padding:22px 14px 90px;background:var(--fp-bg)}.floorplan-app{max-width:1780px;margin:auto;border:1px solid #d8ded3;border-radius:24px;background:#f6f8f3;box-shadow:var(--fp-shadow);overflow:hidden;font-family:Inter,"Noto Sans KR",sans-serif}.fp-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;border-bottom:1px solid var(--fp-line);background:rgba(255,255,255,.97)}.fp-brandline{display:flex;align-items:center;gap:12px}.fp-brandline strong,.fp-brandline span{display:block}.fp-brandline strong{font-size:14px}.fp-brandline>div span{margin-top:3px;color:var(--fp-muted);font-size:9px}.fp-local{padding:6px 8px;border-radius:99px;background:#eff7d9;color:#536600;font-size:8px;font-weight:900}.fp-top-actions,.fp-history,.fp-view-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.fp-btn,.fp-file-btn,.fp-icon-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d4dad0;background:#fff;color:#202831;font:800 10px/1.2 Inter,"Noto Sans KR",sans-serif;cursor:pointer;transition:.18s}.fp-btn,.fp-file-btn{min-height:38px;padding:9px 11px;border-radius:10px}.fp-icon-btn{width:38px;height:38px;border-radius:10px;font-size:17px}.fp-btn:hover,.fp-file-btn:hover,.fp-icon-btn:hover{border-color:#9eaa97;transform:translateY(-1px)}.fp-btn:disabled,.fp-icon-btn:disabled{opacity:.38;cursor:not-allowed;transform:none}.fp-primary{background:var(--fp-ink);border-color:var(--fp-ink);color:#fff}.fp-acid{background:var(--fp-acid);border-color:#a8d532;color:#1c2600}.fp-danger{color:#8b2822}.fp-wide{width:100%}.fp-link-btn{text-decoration:none}.fp-file-btn input{display:none}
.fp-workspace{display:grid;grid-template-columns:270px minmax(480px,1fr) 280px;min-height:780px}.fp-sidebar{padding:12px;background:#f0f3ec;overflow:auto;max-height:calc(100vh - 86px)}.fp-left{border-right:1px solid var(--fp-line)}.fp-right{border-left:1px solid var(--fp-line)}.fp-panel{margin-bottom:11px;padding:15px;border:1px solid var(--fp-line);border-radius:16px;background:var(--fp-paper)}.fp-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.fp-panel-head h2{margin:0;font-size:14px;letter-spacing:-.025em}.fp-panel-head span{padding:5px 7px;border-radius:99px;background:#eef1ea;color:#68737d;font-size:8px;font-weight:900}.fp-field{display:grid;gap:6px;margin-top:10px}.fp-field>span{color:#3b4650;font-size:9px;font-weight:850}.fp-field input[type=text],.fp-field input[type=number],.fp-field input[type=url],.fp-field select,.fp-field textarea{width:100%;min-height:40px;padding:9px 10px;border:1px solid var(--fp-line);border-radius:9px;background:#fbfcf9;color:#1c242c;font:700 10px/1.4 Inter,"Noto Sans KR",sans-serif}.fp-field textarea{resize:vertical}.fp-field input[type=range]{width:100%;accent-color:#7e9e16}.fp-field input[type=color]{width:100%;height:40px;padding:3px;border:1px solid var(--fp-line);border-radius:9px;background:#fff}.fp-field output{justify-self:end;color:#66717b;font-size:9px;font-weight:850}.fp-unit{display:grid;grid-template-columns:1fr 31px}.fp-unit input{border-radius:9px 0 0 9px!important}.fp-unit b{display:grid;place-items:center;border:1px solid var(--fp-line);border-left:0;border-radius:0 9px 9px 0;background:#eef1ea;color:#66717b;font-size:9px}.fp-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.fp-help{margin:10px 0 0;color:#79838c;font-size:9px;line-height:1.6}.fp-tools{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.fp-tool{display:grid;place-items:center;gap:4px;min-height:58px;padding:7px 4px;border:1px solid var(--fp-line);border-radius:10px;background:#f9faf7;color:#35404a;cursor:pointer}.fp-tool b{font-size:15px;line-height:1}.fp-tool span{font-size:8px;font-weight:850}.fp-tool:hover,.fp-tool.active{background:var(--fp-ink);border-color:var(--fp-ink);color:#fff}.fp-library{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.fp-library button{min-height:36px;padding:7px 4px;border:1px solid var(--fp-line);border-radius:9px;background:#f9faf7;color:#39434c;font-size:8px;font-weight:800;cursor:pointer}.fp-library button:hover{border-color:#a9be61;background:#f1f8d8}.fp-file-drop{display:grid;place-items:center;min-height:70px;padding:12px;border:1px dashed #bfc8b7;border-radius:11px;background:#f8faf5;color:#5e6973;text-align:center;font-size:9px;font-weight:800;cursor:pointer}.fp-file-drop.dragging{border-color:#83a800;background:#f0f8d4}.fp-file-drop input{display:none}
.fp-canvas-column{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;background:#dde3d9}.fp-canvas-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border-bottom:1px solid #d4dbd0;background:#fff}.fp-check{display:flex;align-items:center;gap:5px;color:#53606a;font-size:9px;font-weight:800}.fp-check input{accent-color:#7f9f18}.fp-view-actions>span{min-width:43px;text-align:center;color:#56616a;font-size:9px;font-weight:850}.fp-stage-wrap{position:relative;overflow:hidden;min-height:650px;background:#cfd7cb;touch-action:none}.fp-stage{position:absolute;left:50%;top:50%;width:1200px;height:800px;transform:translate(-50%,-50%);transform-origin:0 0;box-shadow:0 12px 45px rgba(20,29,35,.16);background:#fff}.fp-stage svg{display:block;width:100%;height:100%;user-select:none}.fp-stage svg.tool-room,.fp-stage svg.tool-wall,.fp-stage svg.tool-dimension{cursor:crosshair}.fp-stage svg.tool-door,.fp-stage svg.tool-window,.fp-stage svg.tool-text,.fp-stage svg.tool-camera{cursor:copy}.fp-empty-guide{position:absolute;left:50%;top:50%;z-index:2;display:grid;gap:7px;max-width:420px;padding:18px 22px;border-radius:14px;background:rgba(17,22,29,.88);color:#fff;text-align:center;transform:translate(-50%,-50%);pointer-events:none;backdrop-filter:blur(10px)}.fp-empty-guide strong{font-size:13px}.fp-empty-guide span{color:#c4ccd2;font-size:9px;line-height:1.6}.fp-empty-guide.hidden{display:none}.fp-statusbar{display:flex;align-items:center;gap:15px;flex-wrap:wrap;padding:8px 11px;border-top:1px solid #d1d8cd;background:#f8faf6;color:#6d7780;font-size:8px}.fp-statusbar span:last-child{margin-left:auto}.fp-inspector-empty{padding:25px 10px;text-align:center;color:#7a858e}.fp-inspector-empty b{font-size:11px}.fp-inspector-empty p{font-size:9px;line-height:1.6}.fp-inspector-actions,.fp-export-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.fp-export-grid{grid-template-columns:repeat(3,1fr)}.fp-camera-list{display:grid;gap:6px}.fp-camera-list p{margin:0;color:#77818a;font-size:9px;line-height:1.6}.fp-camera-item{display:grid;grid-template-columns:25px 1fr auto;gap:7px;align-items:center;padding:8px;border:1px solid var(--fp-line);border-radius:9px;background:#f8faf6}.fp-camera-item b{display:grid;width:25px;height:25px;place-items:center;border-radius:50%;background:var(--fp-ink);color:var(--fp-acid);font-size:8px}.fp-camera-item span{font-size:8px;font-weight:800}.fp-camera-item button{border:0;background:transparent;color:#777;cursor:pointer}.fp-toast{position:fixed;right:18px;bottom:18px;z-index:10000;max-width:min(360px,calc(100vw - 36px));padding:13px 15px;border-radius:12px;background:#11161d;color:#fff;font-size:10px;font-weight:800;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.fp-toast.show{opacity:1;transform:none}.fp-toast.error{background:#8b2a24}.floorplan-steps{grid-template-columns:repeat(4,1fr)}
.fp-object{cursor:move}.fp-object.selected .selection-outline{display:block}.selection-outline{display:none;fill:none;stroke:#7fa500;stroke-width:3;stroke-dasharray:8 6;vector-effect:non-scaling-stroke;pointer-events:none}.fp-label{font:800 14px Inter,"Noto Sans KR",sans-serif;fill:#232b32;text-anchor:middle;pointer-events:none}.fp-room-shape{fill:#eef4df;stroke:#20262d;stroke-width:5}.fp-wall-line{stroke:#20262d;stroke-width:10;stroke-linecap:square}.fp-door-line{stroke:#1f2932;stroke-width:5;fill:none}.fp-window-line{stroke:#3d88bd;stroke-width:6}.fp-furniture-shape{fill:#e7ebf0;stroke:#56616c;stroke-width:3}.fp-camera-shape{fill:#11161d;stroke:#c9ff48;stroke-width:4}.fp-camera-text{font:900 12px Inter,sans-serif;fill:#c9ff48;text-anchor:middle;dominant-baseline:middle;pointer-events:none}.fp-dimension-line{stroke:#586570;stroke-width:2;marker-start:url(#arrowStart);marker-end:url(#arrowEnd)}.fp-dimension-text{font:800 12px Inter,sans-serif;fill:#3f4a54;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:5;stroke-linejoin:round}.fp-draft{fill:rgba(201,255,72,.18);stroke:#7fa500;stroke-width:3;stroke-dasharray:8 5}.fp-handle{fill:#fff;stroke:#7fa500;stroke-width:2;cursor:nwse-resize;vector-effect:non-scaling-stroke}
@media(max-width:1250px){.fp-workspace{grid-template-columns:240px minmax(420px,1fr)}.fp-right{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-height:none;border-left:0;border-top:1px solid var(--fp-line)}.fp-right .fp-panel{margin:0}.fp-stage-wrap{min-height:620px}}
@media(max-width:850px){.floorplan-section{padding-inline:0}.floorplan-app{border-radius:0;border-left:0;border-right:0}.fp-topbar{align-items:flex-start;flex-direction:column}.fp-top-actions{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}.fp-workspace{display:flex;flex-direction:column}.fp-sidebar{max-height:none;overflow:visible}.fp-left{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-right:0;border-bottom:1px solid var(--fp-line)}.fp-left .fp-panel{margin:0}.fp-canvas-column{min-height:650px}.fp-stage-wrap{min-height:540px}.fp-right{display:grid;grid-template-columns:1fr 1fr}.fp-canvas-toolbar{align-items:flex-start;flex-direction:column}.fp-view-actions{width:100%;overflow-x:auto;flex-wrap:nowrap}.fp-statusbar span:last-child{display:none}}
@media(max-width:560px){body{padding-bottom:0}.floorplan-hero-actions{flex-direction:column}.floorplan-hero-actions .button{width:100%}.fp-left,.fp-right{grid-template-columns:1fr}.fp-stage-wrap{min-height:470px}.fp-stage{width:900px;height:600px}.fp-tools{grid-template-columns:repeat(4,1fr)}.fp-library{grid-template-columns:repeat(4,1fr)}.fp-export-grid{grid-template-columns:1fr}.floorplan-steps{grid-template-columns:1fr}.fp-statusbar{gap:8px}.fp-statusbar span:nth-child(3){display:none}}
@media print{#site-header,#site-footer,.floorplan-hero,.fp-topbar,.fp-left,.fp-right,.fp-canvas-toolbar,.fp-statusbar,.section-muted,.fp-toast{display:none!important}.floorplan-section{padding:0;background:#fff}.floorplan-app{border:0;box-shadow:none}.fp-workspace{display:block;min-height:0}.fp-canvas-column{display:block}.fp-stage-wrap{min-height:auto;overflow:visible;background:#fff}.fp-stage{position:relative;left:auto;top:auto;transform:none!important;width:100%;height:auto;box-shadow:none}.fp-stage svg{height:auto}}

/* Mobile editor layout: fit the drawing to the viewport instead of shrinking a fixed canvas */
@media(max-width:850px){
  body{padding-bottom:0!important}
  .mobile-action-bar,.back-top-main{display:none!important}
  .floorplan-section{padding-bottom:32px}
  .fp-workspace{min-height:0}
  .fp-canvas-column{min-height:0!important;display:block}
  .fp-canvas-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:9px 10px}
  .fp-history{flex-wrap:nowrap}
  .fp-view-actions{width:auto!important;overflow:visible!important;flex-wrap:wrap!important;justify-content:flex-end;gap:7px}
  .fp-check{white-space:nowrap}
  #zoomOutBtn,#zoomInBtn,#zoomValue,#fitBtn{display:none!important}
  .fp-stage-wrap{display:block;min-height:0!important;height:auto;overflow:hidden;padding:10px;background:#cfd7cb;touch-action:none}
  .fp-stage{position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:auto!important;aspect-ratio:3/2;margin:0 auto;transform:none!important;transform-origin:center center!important;box-shadow:0 8px 24px rgba(20,29,35,.14)}
  .fp-stage svg{width:100%;height:100%;min-height:0}
  .fp-statusbar{justify-content:flex-end;min-height:34px}
  .fp-statusbar span:first-child,.fp-statusbar span:nth-child(3),.fp-statusbar span:last-child{display:none!important}
  .fp-right{max-height:none}
}
@media(max-width:560px){
  .fp-canvas-toolbar{grid-template-columns:1fr;align-items:stretch}
  .fp-history{justify-content:flex-start}
  .fp-view-actions{justify-content:flex-start}
  .fp-stage-wrap{padding:8px}
  .fp-stage{border-radius:3px}
  .fp-statusbar{justify-content:flex-start;padding-inline:10px}
  .fp-left,.fp-right{grid-template-columns:1fr}
  .fp-panel{border-radius:14px}
  .fp-toast{right:10px;bottom:10px;max-width:calc(100vw - 20px)}
}
