:root{--bg: #eceef1;--panel: #ffffff;--border: #d9dde3;--text: #1f2933;--muted: #7b8794;--accent: #2563eb;--danger: #c53030;--radius: 7px;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Noto Sans TC,PingFang TC,sans-serif;font-size:13px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100%}.toolbar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap}.brand{font-weight:700;letter-spacing:.02em;color:var(--text)}.plan-name{width:180px;padding:5px 8px;font:inherit;color:inherit;background:#f7f8fa;border:1px solid var(--border);border-radius:var(--radius)}.plan-name:focus-visible,.field input:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.spacer{flex:1}.group{display:flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.seg{min-width:34px;padding:5px 10px;font:inherit;color:var(--text);background:var(--panel);border:0;border-left:1px solid var(--border);cursor:pointer}.seg:first-child{border-left:0}.seg.wide{min-width:56px;font-variant-numeric:tabular-nums}.seg:hover:not(:disabled){background:#f0f2f5}.seg.active{color:#fff;background:var(--accent)}.seg:disabled{color:#c1c7cf;cursor:default}.toolbar-more{display:none;padding:5px 10px;font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;touch-action:manipulation}.toolbar-extra{display:contents}.check{display:flex;align-items:center;gap:5px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none}.ghost{padding:5px 10px;font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}.ghost:hover{background:#f0f2f5}.ghost.danger{color:var(--danger);border-color:#e6c4c4}.workspace{display:flex;flex:1;min-height:0}.canvas-wrap{position:relative;flex:1;min-width:0;overflow:hidden}.inspector{display:flex;flex-direction:column;width:292px;flex-shrink:0;overflow:hidden;background:var(--panel);border-left:1px solid var(--border)}.inspector-scroll{flex:1 1 auto;min-height:0;padding:0 12px 12px;overflow-y:auto}.sheet-handle{display:none}.panel{padding-top:12px;padding-bottom:14px;margin-bottom:2px;border-bottom:1px solid #eceef1}.panel.selection{position:sticky;top:0;z-index:2;margin-bottom:2px;background:var(--panel);border-bottom:1px solid var(--border);box-shadow:0 6px 10px -8px #00000059;max-height:62vh;overflow-y:auto}.panel h2{margin:0 0 10px;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--muted);text-transform:uppercase}.panel h3{margin:10px 0 6px;font-size:11px;font-weight:600;color:var(--muted)}.meta{margin:6px 0 0;color:var(--muted);line-height:1.6}.row{display:flex;gap:8px}.field{display:block;flex:1;min-width:0}.field+.field{margin-top:0}.field-label{display:block;margin-bottom:3px;font-size:11px;color:var(--muted)}.field-input{display:flex;align-items:center;background:#f7f8fa;border:1px solid var(--border);border-radius:var(--radius)}.field-input input{width:100%;min-width:0;padding:5px 0 5px 8px;font:inherit;font-variant-numeric:tabular-nums;color:inherit;background:none;border:0;outline-offset:-1px}.field-input input[type=number]::-webkit-inner-spin-button{opacity:.35}.suffix{padding:0 7px;font-size:11px;color:var(--muted)}.field+.row,.row+.row,.row+.colors,.field+.field-block{margin-top:8px}.row+.meta{margin-top:8px}.chips{display:flex;flex-wrap:wrap;gap:5px}.chip{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;font:inherit;color:var(--text);background:#f7f8fa;border:1px solid var(--border);border-radius:999px;cursor:pointer}.chip:hover{border-color:var(--accent)}.swatch{width:9px;height:9px;border-radius:2px;box-shadow:inset 0 0 0 1px #0003;flex-shrink:0}.swatch.column{border-radius:1px;background-image:repeating-linear-gradient(45deg,rgb(0 0 0 / 45%) 0 1.5px,transparent 1.5px 4px);box-shadow:inset 0 0 0 1px #0000008c}.swatch.door{background:#2f3640;border-radius:1px}.swatch.window{background:linear-gradient(to bottom,transparent 0 2px,#4a90d9 2px 3.5px,transparent 3.5px 5.5px,#4a90d9 5.5px 7px,transparent 7px);box-shadow:none}.group.full{width:100%}.group.full .seg{flex:1;min-width:0;padding:5px 4px}.field-input.static{padding:5px 8px;color:var(--muted);font-variant-numeric:tabular-nums}.field-input select{width:100%;padding:5px 8px;font:inherit;color:inherit;background:none;border:0;outline-offset:-1px}.orient-list{padding:0;margin:8px 0 0;list-style:none}.orient-list li{display:flex;justify-content:space-between;padding:2px 0}.ok{color:#276749;font-weight:600}.bad{color:#9b2c2c;font-weight:600}.meta.small{font-size:11px;line-height:1.5}.warn{margin:8px 0 0;padding:5px 8px;color:#9b2c2c;background:#fdf0f0;border:1px solid #f3d2d2;border-radius:var(--radius);line-height:1.5}.badge-warn,.badge-notice{padding:1px 5px;font-size:10px;border-radius:999px;flex-shrink:0}.badge-warn{color:#9b2c2c;background:#fdf0f0;border:1px solid #f3d2d2}.badge-notice{color:#8a5a10;background:#fdf7ec;border:1px solid #f0e0c4}.notice{margin:8px 0 0;padding:5px 8px;color:#8a5a10;background:#fdf7ec;border:1px solid #f0e0c4;border-radius:var(--radius);line-height:1.5}.colors{display:flex;gap:5px;margin-top:8px}.color{width:22px;height:22px;padding:0;border:1px solid rgb(0 0 0 / 15%);border-radius:5px;cursor:pointer}.color.active{box-shadow:0 0 0 2px var(--accent)}.nudge-block{display:block;margin-top:12px}.nudge{display:flex;gap:12px;align-items:center;margin-top:3px}.nudge-pad{display:grid;grid-template-areas:". up ." "left mid right" ". down .";grid-template-columns:repeat(3,36px);grid-template-rows:repeat(3,30px);gap:2px;flex-shrink:0}.nudge-btn{font:inherit;font-size:15px;line-height:1;color:var(--text);background:#f7f8fa;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}.nudge-btn:hover:not(:disabled){background:#e9edf3;border-color:var(--accent)}.nudge-btn:active:not(:disabled){background:#dde4ee}.nudge-btn:disabled{color:#c9cfd7;background:#fbfbfc;cursor:default}.nudge-center{grid-area:mid;display:grid;place-items:center;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.nudge-steps{min-width:0;flex:1}.actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.item-list{padding:0;margin:0;list-style:none}.item-row{display:flex;align-items:center;gap:7px;width:100%;padding:5px 7px;font:inherit;color:inherit;text-align:left;background:none;border:0;border-radius:5px;cursor:pointer}.item-row:hover{background:#f2f4f7}.item-row.active{background:#e6efff}.item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-size{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.hint-block{margin:0;color:var(--muted);line-height:1.9}kbd{padding:1px 4px;font-family:inherit;font-size:11px;background:#f2f4f7;border:1px solid var(--border);border-bottom-width:2px;border-radius:4px}@media(max-width:860px){.workspace{flex-direction:column}.canvas-wrap{flex:1 1 auto;min-height:0}.inspector{width:100%;border-left:0;border-top:1px solid var(--border);box-shadow:0 -6px 12px -10px #0006}.inspector.sheet-collapsed{flex:0 0 auto}.inspector.sheet-collapsed .inspector-scroll{display:none}.inspector.sheet-half{flex:0 0 46%}.inspector.sheet-full{flex:0 0 82%}.panel.selection{max-height:70%}.sheet-handle{display:flex;align-items:center;gap:10px;flex:0 0 auto;width:100%;padding:10px 12px;font:inherit;color:var(--text);text-align:left;background:var(--panel);border:0;border-bottom:1px solid var(--border);cursor:pointer;touch-action:manipulation}.sheet-grip{width:30px;height:4px;flex-shrink:0;background:#c9cfd7;border-radius:2px}.sheet-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.sheet-action{flex-shrink:0;font-size:12px;color:var(--accent)}.brand{display:none}.toolbar{gap:6px;padding:6px 8px}.toolbar-extra{display:none}.toolbar.open .toolbar-extra{display:contents}.toolbar-more{display:inline-flex}.spacer{display:none}.plan-name{width:100%;order:1}.nudge-pad{grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,38px)}.seg,.ghost{padding:8px 10px}}
