/* Hallmark · component-scope: drafting workspace · P4 H4 E4 S5 R5 V4 */
:root{--paper:#f7f8f4;--surface:#fff;--ink:#25352d;--muted:#6e796d;--subtle:#e0e5dc;--accent:#326248;--accent-soft:#eaf0e7;--draft:#ac7746;--grass:#dbe5ca;--gravel:#ece9e0;--paving:#e4e4df;--shadow:0 4px 24px #25352d0a;--font-ui:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--font-mono:ui-monospace,"SFMono-Regular",Consolas,monospace;--danger:#a54839;--toast-bg:#25352d;--toast-ink:#fff}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{display:grid;grid-template-rows:64px minmax(0,1fr) 34px;color:var(--ink);background:var(--paper);font:13px var(--font-ui)}button,input{font:inherit}button{cursor:pointer;border:0;background:none;color:inherit;touch-action:manipulation;white-space:nowrap}button:hover:not(:disabled){background:var(--accent-soft)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.35;cursor:default}button:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}[hidden]{display:none!important}.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--subtle);background:var(--surface);gap:12px}.identity,.history{display:flex;align-items:center;gap:10px}.mark{font-size:32px;color:var(--accent)}h1{font-size:17px;letter-spacing:.08em;margin:0;font-weight:600}.demo-tag{font-size:10px;color:var(--muted);border:1px solid var(--subtle);padding:3px 6px;border-radius:4px}.history{gap:4px}.history button{width:36px;height:36px;font-size:25px;border-radius:5px}.history .text-button{width:auto;padding:0 12px;font-size:12px}.divider{height:18px;border-left:1px solid var(--subtle);margin:0 8px}.workspace{position:relative;overflow:hidden;min-height:0;overscroll-behavior:none}canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}canvas[data-tool=select]{cursor:default}canvas[data-tool=pan]{cursor:grab}canvas.panning{cursor:grabbing}.tools{position:absolute;top:20px;left:20px;display:flex;flex-direction:column;gap:3px;padding:6px;background:var(--surface);border:1px solid var(--subtle);border-radius:9px;box-shadow:var(--shadow)}.tools button{position:relative;width:49px;height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:5px;color:var(--muted)}.tools button>span{font:26px var(--font-ui);line-height:27px}.tools small{font-size:10px}.tools kbd{position:absolute;right:4px;top:3px;font:8px var(--font-mono)}.tools .active{background:var(--accent-soft);color:var(--accent)}.tool-divider{border-top:1px solid var(--subtle);margin:4px 8px}.inspector{position:absolute;top:20px;right:20px;width:218px;padding:17px;background:var(--surface);border:1px solid var(--subtle);border-radius:9px;box-shadow:var(--shadow)}.panel-heading{display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:13px}.micro-label{font:8px var(--font-mono);letter-spacing:.12em;color:var(--muted)}#tool-description{color:var(--muted);font-size:11px;line-height:1.7;margin:10px 0 18px}.field-label{display:block;font-size:10px;color:var(--muted);margin-bottom:8px}.materials{display:flex;gap:6px}.materials button{height:46px;flex:1;border-radius:5px;font-size:10px;border:2px solid transparent}.materials .grass{background:var(--grass)}.materials .gravel{background:var(--gravel)}.materials .paving{background:var(--paving)}.materials button.active{border-color:var(--accent)}.range-field{display:block;font-size:11px;margin-top:17px}.range-field output{float:right;color:var(--accent);font-variant-numeric:tabular-nums}.range-field input{width:100%;margin:12px 0 0;accent-color:var(--accent)}.panel-foot{display:flex;justify-content:space-between;border-top:1px solid var(--subtle);padding-top:12px;margin-top:18px;font-size:10px;color:var(--muted)}.panel-foot button{padding:4px 5px;border-radius:3px}.panel-foot button[aria-pressed=true]{color:var(--accent);background:var(--accent-soft)}.panel-actions{display:flex;gap:6px;margin-top:16px;flex-wrap:wrap}.panel-actions button{font-size:10px;padding:8px 9px;border-radius:4px;flex:1}.primary{background:var(--accent);color:var(--surface)}button.primary:hover:not(:disabled){background:var(--ink)}.secondary{border:1px solid var(--subtle)}.measurement{display:block;padding-top:14px;font:19px var(--font-mono);color:var(--accent)}.empty-hint{position:absolute;left:46%;top:43%;transform:translate(-50%,-50%);pointer-events:none;text-align:center;white-space:nowrap}.hint-line{display:block;margin:0 auto 22px;width:42px;border-top:2px solid var(--accent);transform:rotate(-25deg);opacity:.3}.empty-hint h2{font-weight:400;letter-spacing:.06em;font-size:22px;margin:0 0 12px;color:var(--muted)}.empty-hint p{font-size:12px;color:var(--muted);margin:9px 0}.empty-hint .subtle{font-size:10px;margin-top:18px}.zoom-controls{position:absolute;right:20px;bottom:20px;display:flex;background:var(--surface);border:1px solid var(--subtle);padding:3px;border-radius:7px}.zoom-controls button{min-width:30px;height:32px;border-radius:4px;font-size:19px}.zoom-controls #reset-view{min-width:55px;font:11px var(--font-mono)}.guide{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);pointer-events:none;text-align:center;display:flex;flex-direction:column;gap:8px;max-width:calc(100% - 330px);width:max-content}#prompt{font-size:12px;background:var(--paper);padding:3px 8px;border-radius:3px}.guide-detail{font-size:10px;color:var(--muted)}.guide-detail span{margin:0 8px}.statusbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 20px;background:var(--surface);border-top:1px solid var(--subtle);font-size:10px;color:var(--muted)}.statusbar>span{display:flex;align-items:center;gap:8px;white-space:nowrap}.status-dot{width:5px;height:5px;background:var(--accent);border-radius:50%}#coordinates{font-family:var(--font-mono)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}#toast{position:absolute;bottom:100px;left:50%;transform:translateX(-50%);max-width:80%;background:var(--toast-bg);color:var(--toast-ink);border-radius:6px;padding:11px 17px;font-size:12px;box-shadow:var(--shadow);pointer-events:none}
@media(max-width:760px){body{grid-template-rows:54px minmax(0,1fr) 30px}.topbar{padding:0 12px}.identity{gap:6px}h1{font-size:14px}.demo-tag{display:none}.history .text-button{padding:0 7px}.tools{top:12px;left:12px}.tools button{width:38px;height:45px}.inspector{top:12px;right:12px;width:170px;padding:12px}.guide{bottom:68px;max-width:calc(100% - 24px)}.guide-detail{display:none}.empty-hint{left:50%;top:62%}.empty-hint h2{font-size:18px}.statusbar{padding:0 10px;font-size:9px}.session-note{display:none}.zoom-controls{right:12px;bottom:12px}.divider{margin:0 2px}}
@media(max-width:375px){.history button{width:29px}.history .text-button{padding:0 5px;font-size:10px}.mark{font-size:25px}.topbar{gap:4px}.inspector{width:154px}.panel-actions button{padding:7px 5px}.empty-hint h2{font-size:16px}.empty-hint p{font-size:10px}}
/* Landscape palette and real object stack. */
.inspector{width:248px;max-height:calc(100% - 100px);overflow:auto;scrollbar-width:thin}.panel-tabs{display:flex;gap:4px;padding-bottom:13px;margin-bottom:14px;border-bottom:1px solid var(--subtle)}.panel-tabs button{flex:1;font-size:11px;padding:6px;border-radius:4px;color:var(--muted)}.panel-tabs .active{background:var(--accent-soft);color:var(--accent)}.materials{flex-wrap:wrap}.materials button{flex-basis:40%;height:35px}.range-field select{display:block;width:100%;margin-top:8px;padding:7px 4px;background:var(--paper);color:var(--ink);border:1px solid var(--subtle);border-radius:4px;font:11px var(--font-ui)}.catalog-intro{font-size:11px;color:var(--muted);line-height:1.7;margin:0 0 12px}.catalog-items{display:grid;grid-template-columns:1fr 1fr;gap:6px}.catalog-items button{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;padding:12px 9px;border:1px solid var(--subtle);border-radius:5px;font-size:11px}.catalog-items small{font-size:9px;color:var(--muted)}.layer-actions{display:flex;gap:5px;margin-bottom:10px}.layer-actions button{flex:1;padding:6px;font-size:10px;border:1px solid var(--subtle);border-radius:4px}.layer-row{display:flex;gap:3px;align-items:center;border-bottom:1px solid var(--subtle);padding:5px 0;font-size:11px}.layer-row.active{background:var(--accent-soft)}.layer-row button{padding:6px 4px;border-radius:3px}.layer-row .layer-name{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis}.layer-row.dim{opacity:.55}.layer-row .layer-toggle{font-size:9px;color:var(--muted);width:30px}.tools{max-height:calc(100% - 95px);overflow:auto;scrollbar-width:thin}.tools button{flex-shrink:0;height:48px}.tools small{font-size:9px}
@media(max-width:760px){.inspector{width:174px;padding:11px;max-height:calc(100% - 110px)}.tools button{height:39px}.tools button>span{font-size:22px;line-height:22px}.catalog-items{grid-template-columns:1fr}.panel-tabs{gap:1px}.panel-tabs button{padding:5px 3px}.layer-row{font-size:10px}.layer-row .layer-toggle{width:25px}}
/* Visual library and local document controls. */
.document-tools{display:flex;align-items:center;gap:7px;font-size:11px;min-width:0}.document-tools input{width:125px;padding:6px;border:1px solid var(--subtle);border-radius:4px}.document-tools select{max-width:150px;padding:6px;border:1px solid var(--subtle);background:white;color:var(--muted)}.document-tools button{padding:8px;border:1px solid var(--subtle);border-radius:4px}.placement-options{display:flex;align-items:center;justify-content:space-between;margin:10px 0;font-size:11px}.placement-options input{accent-color:var(--accent)}#stop-placement{border:1px solid var(--subtle);padding:5px;font-size:10px}#label-field input{width:auto;margin:0 5px 0 0}.catalog-items button{padding:4px 4px 8px;align-items:center;gap:5px;white-space:normal}.catalog-items img{display:block;width:100%;height:68px;object-fit:contain;background:var(--paper);border-radius:3px}.catalog-items button.active,.recent-items button.active{border-color:var(--accent);background:var(--accent-soft)}#catalog-filters{display:flex;gap:3px;margin:10px 0}#catalog-filters button{padding:6px 8px;font-size:10px;border-radius:4px}#catalog-filters .active{background:var(--accent-soft);color:var(--accent)}.recent-items{display:flex;overflow:auto;gap:4px;padding-bottom:8px;border-bottom:1px solid var(--subtle)}.recent-items button{flex:0 0 51px;padding:3px;border:1px solid var(--subtle);border-radius:4px;font-size:8px}.recent-items img{display:block;width:46px;height:34px;object-fit:contain}.recent-items span{display:block;overflow:hidden;text-overflow:ellipsis;max-width:48px}#save-status[data-error=true]{color:var(--danger)}
@media(max-width:1200px){.identity .demo-tag,.history #example,.history #reference-example{display:none}.document-tools select{max-width:115px}.document-tools input{width:95px}.topbar{padding:0 12px;gap:6px}.document-tools{gap:4px}.document-tools button{padding:6px}}
@media(max-width:760px){.identity,.document-tools #export-document{display:none}.document-tools select{max-width:100px}.document-tools input{width:80px}.document-tools{font-size:10px}.catalog-items{grid-template-columns:1fr 1fr}.catalog-items img{height:45px}#catalog-filters button{padding:5px 3px}.recent-items button{flex-basis:45px}.statusbar .session-note{display:flex;font-size:8px}.statusbar #coordinates{display:none}}
