:root{--bg:#f6f7f9;--panel:#fff;--ink:#1b1f24;--muted:#5b6470;--line:#d5dae1;--accent:#1f5fbf;--accent-ink:#fff;--stage:#e9ecf0;--danger:#a3261b;--danger-bg:#fdecea;--focus:#1f5fbf;--radius:6px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}*{box-sizing:border-box}body{margin:0}.site-header{padding:16px 20px 8px}.site-header h1{margin:0;font-size:1.5rem}.lead{color:var(--muted);margin:4px 0 0}.app{flex-direction:column;gap:8px;padding:8px 20px 20px;display:flex}.toolbar{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px;padding:8px;display:flex}.spacer{flex:1}.btn{font:inherit;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);min-height:36px;color:var(--ink);cursor:pointer;padding:6px 12px;font-size:.95rem}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{color:var(--muted);cursor:default;opacity:.6}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-icon{font:inherit;min-width:32px;min-height:32px;color:inherit;cursor:pointer;background:0 0;border:0;font-size:1.2rem;line-height:1}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.save-state{color:var(--muted);font-size:.875rem}.save-state[data-save=error],.save-state[data-save=noImage],.save-state[data-save=off]{color:var(--danger)}.lang-switch{color:var(--accent);padding:6px 4px}.url-form{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px}.url-form label{margin-bottom:6px;font-weight:600;display:block}.url-row{flex-wrap:wrap;gap:8px;display:flex}.url-row input{font:inherit;border:1px solid var(--line);border-radius:var(--radius);flex:260px;min-height:36px;padding:6px 10px}.hint,.muted{color:var(--muted);margin:8px 0 0;font-size:.875rem}.messages .status{min-height:1.45em;color:var(--muted);margin:0;font-size:.875rem}.error{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius);border:1px solid;align-items:flex-start;gap:8px;margin-top:4px;padding:8px 8px 8px 12px;display:flex}.error[hidden]{display:none}.error-body{flex:1;padding-top:4px}.error-list{margin:4px 0 0;padding-left:1.25em}.error-list[hidden]{display:none}.lang-hint{color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:4px 12px;padding:6px 8px 6px 12px;font-size:.875rem;display:flex}.lang-hint[hidden]{display:none}.lang-hint a{color:var(--accent)}.btn-small{min-height:28px;padding:2px 10px;font-size:.875rem}.workspace{grid-template-columns:minmax(0,1fr) 300px;gap:8px;min-height:0;display:grid}.stage{height:max(400px, calc(100vh - var(--work-top,280px) - 20px));background:var(--stage);border:1px solid var(--line);border-radius:var(--radius);position:relative;overflow:hidden}.canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.empty{text-align:center;border:2px dashed var(--line);border-radius:var(--radius);flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:16px;display:flex;position:absolute;inset:16px}.empty h2{margin:0;font-size:1.15rem}.empty p{color:var(--muted);max-width:36em;margin:0 0 12px}.stage[data-state=ready] .empty{display:none}.drop-overlay{color:var(--accent);border:3px dashed var(--accent);border-radius:var(--radius);pointer-events:none;background:#1f5fbf1f;justify-content:center;align-items:center;font-weight:600;display:none;position:absolute;inset:0}.stage.dragging .drop-overlay{display:flex}.sidebar{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);max-height:max(400px, calc(100vh - var(--work-top,280px) - 20px));padding:12px;overflow:auto}.sidebar h2{margin:16px 0 0;font-size:1rem}.image-info{word-break:break-word;margin:0;font-size:.875rem}.image-info:empty{display:none}.edit-bar{gap:6px}.btn[aria-pressed=true]{border-color:var(--accent);color:#0b3d91;background:#e7efff;font-weight:600}.btn-square{min-width:36px;padding:6px 0;font-size:1.1rem;line-height:1}.sep{background:var(--line);align-self:stretch;width:1px;margin:0 2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.zoom-value{text-align:center;font-variant-numeric:tabular-nums;min-width:4.2em;font-size:.875rem;display:inline-block}.grid-size{width:5em;font:inherit;border:1px solid var(--line);border-radius:var(--radius);min-height:36px;padding:4px 6px;font-size:.9rem}.tool-hint{min-height:30px;color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-size:.875rem;display:flex}.tool-hint[hidden]{visibility:hidden;display:flex}.tool-hint [hidden]{display:none}.hint-text{flex:20em}.stage[data-cursor=crosshair] .canvas{cursor:crosshair}.stage[data-cursor=move] .canvas{cursor:move}.stage[data-cursor=grab] .canvas{cursor:grab}.stage[data-cursor=grabbing] .canvas{cursor:grabbing}.canvas:focus-visible{outline-offset:-3px}.sidebar h2 .count{color:var(--muted);font-size:.875rem;font-weight:400}.area-list{border-top:1px solid var(--line);max-height:40vh;margin:8px 0 0;padding:0;list-style:none;position:relative;overflow:auto}.area-list:empty{display:none}.area-row{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:2px 6px;padding:4px 2px;font-size:.875rem;display:flex}.area-row.selected{background:#fff1e6}.area-row.is-hidden .label{color:var(--muted);text-decoration:line-through}.area-row.dragging-row{opacity:.5}.area-row.drop-before{box-shadow:inset 0 3px 0 var(--accent)}.area-row.drop-after{box-shadow:inset 0 -3px 0 var(--accent)}.area-name{min-height:32px;font:inherit;text-align:left;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;flex:100%;justify-content:space-between;gap:8px;padding:4px 6px;display:flex}.area-name .label{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.area-name .shape{color:var(--muted);white-space:nowrap}.area-name .outside{color:var(--danger);background:var(--danger-bg);white-space:nowrap;border-radius:4px;margin-left:auto;padding:0 6px;font-size:.8rem}.dialog{border:1px solid var(--line);border-radius:var(--radius);max-width:min(32em,100vw - 32px);color:var(--ink);background:var(--panel);padding:16px 20px;box-shadow:0 8px 32px #0003}.dialog::backdrop{background:#00000059}.dialog h2{margin:0 0 8px;font-size:1.1rem}.dialog p{margin:0 0 16px}.dialog-actions{flex-wrap:wrap;gap:8px;display:flex}.area-row .chk{color:var(--muted);cursor:pointer;align-items:center;gap:4px;padding:2px 6px;display:inline-flex}.area-row .chk input{width:18px;height:18px;margin:0}.area-row .up{margin-left:auto}.area-row .btn-icon:disabled{opacity:.35;cursor:default}.properties{flex-direction:column;gap:8px;margin-top:8px;font-size:.875rem;display:flex}.shape-info{margin:0;font-weight:600}.field{flex-direction:column;gap:2px;display:flex}.field label,.field .label{font-weight:600}.field input,.field select,.data-row input{font:inherit;border:1px solid var(--line);border-radius:var(--radius);min-height:32px;color:var(--ink);background:#fff;min-width:0;padding:4px 8px}.field input[aria-invalid],.data-row input[aria-invalid]{border-color:var(--danger)}.coords{word-break:break-word;max-height:6.5em;color:var(--muted);font-size:.8rem;display:block;overflow:auto}.field-error,.field-warn{color:var(--danger);margin:0;font-size:.8rem}.field-warn{color:#8a4b00}.field-error[hidden],.field-warn[hidden]{display:none}.group{border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:6px;margin:0;padding:8px;display:flex}.group legend{padding:0 4px;font-weight:600}.data-rows,.ev-fields{flex-direction:column;gap:6px;display:flex}.data-row{grid-template-columns:auto minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:4px;display:grid}.data-row .field-error{grid-column:1/-1}.data-prefix{color:var(--muted);font-family:ui-monospace,monospace;font-size:.8rem}.check{align-items:center;gap:6px;display:flex}.check input{width:18px;height:18px;margin:0}.actions{flex-wrap:wrap;gap:6px;display:flex}.btn-danger{color:var(--danger);border-color:currentColor}@media (max-width:760px){.site-header,.app{padding-left:12px;padding-right:12px}.workspace{grid-template-columns:1fr}.stage{height:max(320px,60vh)}.sidebar{max-height:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.dialog-wide{width:min(64em,100vw - 32px);max-width:none;max-height:calc(100vh - 32px);overflow:auto}.dialog-wide>*+*{margin-top:10px}.dialog-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.dialog-head h2{margin:0}.dialog .label{font-weight:600;display:block}.dialog .row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dialog .field input,.dialog .field select{max-width:24em}.code{width:100%;min-height:9em;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);resize:vertical;white-space:pre;background:#fbfbfc;padding:8px;font:.8rem/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;display:block;overflow:auto}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;display:flex}.tab{font:inherit;border-radius:var(--radius) var(--radius) 0 0;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:none;padding:6px 10px}.tab[aria-selected=true]{color:var(--ink);background:var(--panel);border-color:var(--line);margin-bottom:-1px;font-weight:600}.tabpanel>*+*{margin-top:10px}.tabpanel>.hint{margin-top:0}.ev-export>div>*+*{margin-top:8px}.ev-others{border-radius:var(--radius);background:#fff8ec;border:1px solid #e0b26b;padding:8px}.ev-others p{margin:0 0 6px}.notes{margin:0;padding-left:1.2em;font-size:.875rem}.note-error{color:var(--danger)}.note-warn{color:#8a4b00}.notes-heading{color:var(--danger);margin:0 0 4px;font-weight:600}.preview h3{margin:0;font-size:1rem}.preview .hint{margin:2px 0 6px}.preview-frame{border:1px solid var(--line);border-radius:var(--radius);background:var(--stage);width:100%;height:min(420px,50vh);display:block}.preview-status{word-break:break-all;min-height:1.45em;margin:4px 0 0;font-size:.875rem}.import-result.is-error{color:var(--danger)}.import-notes summary{cursor:pointer}.pick{flex-wrap:wrap;align-items:center;gap:6px;margin-left:24px;display:flex}.dialog .check{flex-wrap:wrap}.pointer-pos{font-variant-numeric:tabular-nums;min-width:13ch;color:var(--muted);white-space:nowrap;font-size:.8rem}
