/* Map Studio — light editing workspace */
:root{font-family:"Segoe UI","Yu Gothic UI","Meiryo",sans-serif;font-size:13px;color:#263246;background:#f4f6fa;--border:#e0e5ed;--ink:#263246;--muted:#718096;--blue:#2464d5;--soft:#edf3ff}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{padding:9px 13px;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--ink);cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s}button:hover{background:#f2f6fc;border-color:#bac9df}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--blue);border-color:var(--blue);color:white;font-weight:600}button.primary:hover{background:#1b54ba}button.active{background:var(--soft);color:#1f5cc5;border-color:#a9c4f3}button.subtle{background:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #a6c5fb;outline-offset:2px}a{color:#2464d5}header{height:68px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border-bottom:1px solid var(--border)}.brand{display:flex;gap:10px;align-items:center;min-width:200px}.brand strong{font-size:13px;letter-spacing:.7px;color:#1e2c40}.brand small{display:block;font-size:11px;color:#8491a3;margin-top:3px;letter-spacing:.4px}.mark{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#eef3fc;color:#2464d5;font-size:24px}.badge{display:none}.actions{display:flex;gap:7px;flex-wrap:wrap}.actions button{font-size:12px;padding:8px 11px}.workspace{display:grid;grid-template-columns:224px minmax(350px,1fr) 294px;height:calc(100dvh - 68px)}aside{background:#fff;overflow:auto}.navigator{border-right:1px solid var(--border);padding:22px 14px 14px;display:flex;flex-direction:column}.section-label{color:#8793a4;font-size:11px;font-weight:600;letter-spacing:.2px;margin-bottom:12px}h1{font-size:19px;line-height:1.45;margin:0 0 7px;letter-spacing:-.3px;overflow-wrap:anywhere}h2{font-size:17px;line-height:1.5;margin:0 0 9px}.muted,.small{font-size:11px;color:var(--muted);line-height:1.8}.wide{width:100%;font-size:11px;margin-top:14px}.navtabs{display:flex;gap:3px;margin:22px 0 12px;padding:3px;background:#f1f4f8;border-radius:7px}.navtabs button{flex:1;padding:7px 5px;font-size:11px;border:0;background:none;border-radius:5px;color:#718096}.navtabs button.active{background:#fff;color:#245dc0;box-shadow:0 1px 3px #22324a12}.tree-row{display:block;width:100%;text-align:left;border:0;border-radius:5px;background:transparent;padding:9px 7px;color:#526078;font-size:12px;overflow:hidden;text-overflow:ellipsis}.tree-row:hover{background:#f4f7fc}.tree-row.active{background:#edf3ff;color:#245fc6;font-weight:600;box-shadow:inset 3px 0 #3474df}.tree-group{padding:18px 7px 7px;color:#98a1af;font-size:10px;font-weight:600}#tree{flex:1;min-height:100px;overflow:auto}.local-note{font-size:10px;color:#94a0af;line-height:1.9;border-top:1px solid var(--border);padding-top:15px;margin-top:18px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#4da38a;margin-right:4px}#dirty{font-size:10px;color:#a77923}main{display:flex;flex-direction:column;min-width:0;min-height:0}.workflow{padding:12px 18px;background:#fafcff;border-bottom:1px solid var(--border);max-height:286px;overflow:auto;flex-shrink:0}.workflow-top{display:flex;align-items:center;gap:8px}.workflow-top strong{font-size:11px;color:#7a8ba1;font-weight:500}.workflow-top button{font-size:10px;border:0;background:transparent;color:#6a85a9;padding:3px 6px}.workflow-top button:last-child{margin-left:auto}.workflow-steps{display:flex;gap:4px;overflow:auto;margin:9px 0 0}.workflow-steps button{font-size:11px;border:0;background:transparent;color:#7a8799;padding:7px 10px;border-radius:5px}.workflow-steps button.active{background:#e8f0ff;color:#245dc0;font-weight:600}.workflow-body{display:flex;align-items:flex-start;gap:24px;justify-content:space-between;padding-top:13px}.workflow-body h2{font-size:14px;margin:0 0 9px;color:#34445b}.workflow-body small{font-size:10px;color:#8492a3}.workflow-actions{display:flex;flex-direction:column;gap:6px;min-width:156px}.workflow-actions button{font-size:11px;padding:8px 10px}.step-explanation{margin:6px 0}.step-explanation>strong{font-size:10px;color:#6880a0;font-weight:600}.step-explanation>p{font-size:12px;color:#56657a;line-height:1.75;margin:2px 0;max-width:720px}.canvas-toolbar{padding:11px 14px;display:flex;align-items:center;flex-wrap:wrap;gap:7px;background:#fff;border-bottom:1px solid var(--border)}.canvas-toolbar button{font-size:11px;padding:7px 9px}.canvas-toolbar select{font-size:12px;font-weight:600;color:#3a4b65;max-width:150px;min-width:80px;border:0;background:#f6f8fc;border-radius:5px;padding:7px}.tools{display:flex;gap:4px;margin-right:auto;flex-wrap:wrap}.tools button.active{border-color:#bdd0ee;background:#edf3ff;color:#245fc6}.view-options{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:9px 16px;background:#fbfcfe;color:#8390a2;font-size:10px}.view-options label{display:flex;align-items:center;gap:4px}.view-options input{margin:0;accent-color:#2464d5}#canvasHint{margin-left:auto}#zoomLabel{min-width:30px;text-align:center;font-size:10px;color:#718096}#viewport{position:relative;flex:1;min-height:150px;overflow:auto;background-color:#edf0f5;background-image:radial-gradient(#c7cfdb .65px,transparent .65px);background-size:16px 16px}#canvas{display:block;margin:36px;box-shadow:0 3px 8px #263b5612,0 15px 40px #263b5614;background:#ede7d3;touch-action:none}#canvas:empty{display:none}#empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;padding:24px;text-align:center}#empty h2{font-size:23px;letter-spacing:-.5px;color:#34445b;font-weight:600;margin:0}#empty p{font-size:12px;color:#8693a5;margin:5px 0 15px}#empty .primary{padding:12px 22px}#empty .small{font-size:10px;margin-top:13px}footer{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#94a0b0;background:#fff;padding:10px 15px;border-top:1px solid var(--border)}.inspector{padding:22px 19px;border-left:1px solid var(--border)}.inspector h2{font-size:18px;letter-spacing:-.3px}.inspector .muted{font-size:12px;line-height:1.75;margin-bottom:19px}.property-field{margin-bottom:9px}#properties label{display:block;font-size:11px;color:#78869a;margin:13px 0 6px}#properties input,#properties textarea,#properties select{width:100%;min-width:0;color:#30435c;background:#f8fafd;border:1px solid #dfe6ef;border-radius:6px;padding:9px 10px}#properties input:hover{border-color:#b9cbe3}#properties input:disabled{background:#f4f5f8;color:#9ba5b3;border-color:#ebedf2}#properties textarea{min-height:85px;resize:vertical}#properties .bool{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0}#properties .bool input{width:auto;accent-color:#2464d5}.property-feedback{font-size:10px;color:#8092a9;line-height:1.7;margin-top:18px}.property-feedback.invalid{color:#c14c48}#properties input[aria-invalid=true]{border-color:#d07c77;background:#fff4f3}.advanced-properties{border-top:1px solid var(--border);padding-top:15px;margin-top:20px}.advanced-properties summary{font-size:11px;cursor:pointer;color:#70839a}.zone-dimensions{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px}.zone-dimensions input{min-width:0}#selectionActions{display:flex;gap:6px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:15px;margin-top:18px}#selectionActions button{font-size:11px;padding:7px 9px}.danger{color:#b75550!important}.canvas-region,.canvas-zone{cursor:move}.grid-handle{cursor:grab}.grid-handle:active,.canvas-region:active{cursor:grabbing}.zone-resize text{pointer-events:none}.guide-card{padding:12px 4px;border-bottom:1px solid var(--border);font-size:11px;line-height:1.9;color:#74859b}.guide-card strong{display:block;color:#3f5878}.guide-card p{margin:6px 0}.guide-link{font-size:11px}.chip{display:inline-block;font-size:10px;padding:3px 7px;background:#edf3ff;color:#4f72a8;border-radius:4px;margin:3px}#effectSummary{font-size:11px;line-height:1.8;margin-top:15px;color:#718096}dialog{border:1px solid var(--border);border-radius:12px;background:#fff;color:#30425b;max-width:min(650px,94vw);width:580px;max-height:88dvh;overflow:auto;padding:26px;box-shadow:0 24px 90px #18315330}dialog::backdrop{background:#1b2b4255}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.dialog-head h2{font-size:18px;margin:0}.dialog-head button{font-size:22px;border:0;background:none;color:#8f9aaa;padding:0 5px}.dialog-field{display:block;font-size:12px;color:#697c94;margin:16px 0}.dialog-field input,.dialog-field select{display:block;width:100%;margin-top:7px;padding:10px;border:1px solid var(--border);border-radius:6px;background:#f8fafd;color:#30425b}.dialog-check{display:block;font-size:12px;margin:13px 0}.dialog-check input{accent-color:#2464d5;margin-right:7px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:23px}.notice{background:#f5f1e6;color:#8c7548;border-radius:7px;padding:14px;font-size:12px;line-height:1.8;white-space:pre-wrap}.notice.pass{background:#edf7f3;color:#41816b}.notice.error{background:#fff0ed;color:#ad5f55}.report-list{font-size:12px;line-height:1.9;padding-left:21px;color:#61728a}.report-list li{padding:4px 0}.install-step{border-top:1px solid var(--border);padding:15px 0}.install-step h3{font-size:14px;margin:0 0 8px}.install-step p,.install-optional p{font-size:12px;line-height:1.85;margin:6px 0;color:#677a91}.path-copy{display:flex;gap:7px;margin:10px 0}.path-copy input{min-width:0;flex:1;border:1px solid var(--border);background:#f5f8fd;border-radius:5px;padding:10px;font:12px Consolas,monospace;color:#40618a}.path-copy button{font-size:11px}.install-optional{border-top:1px solid var(--border);padding:15px 0;margin-bottom:12px}.install-optional summary{font-size:12px;cursor:pointer}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#304968;color:#fff;border-radius:8px;padding:13px 21px;max-width:85vw;font-size:12px;line-height:1.7;white-space:pre-wrap;display:none;z-index:10;box-shadow:0 6px 22px #233d5522}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#cbd4e0;border:2px solid #f5f7fa;border-radius:6px}
@media(min-width:1500px){.workspace{grid-template-columns:242px minmax(350px,1fr) 320px}.step-explanation{display:grid;grid-template-columns:130px 1fr;gap:8px}.step-explanation>strong{padding-top:5px}.workflow{max-height:255px}}
@media(max-width:1150px){header{height:auto;min-height:68px;padding:12px 16px;flex-wrap:wrap;gap:10px}.workspace{height:calc(100dvh - 120px);grid-template-columns:180px minmax(280px,1fr) 250px}.actions button{font-size:11px;padding:7px 9px}.workflow-body{flex-direction:column;gap:10px}.workflow-actions{flex-direction:row;flex-wrap:wrap}.workflow{max-height:250px}.inspector{padding:20px 14px}.workflow-steps button{padding:6px 7px;font-size:10px}#canvasHint{display:none}}
@media(max-width:760px){.workspace{grid-template-columns:145px minmax(230px,1fr);height:auto;min-height:calc(100dvh - 120px)}.navigator{min-height:540px;padding:16px 9px}main{height:640px}.inspector{grid-column:1/-1;border-top:1px solid var(--border);max-height:400px}.workflow{max-height:210px}.canvas-toolbar{padding:8px}.tools button{padding:6px;font-size:10px}.brand strong{font-size:12px}.actions{gap:4px}.actions button{font-size:10px}.view-options{gap:8px}.inspector #properties{max-width:600px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}

/* Addition and idle modes must not be intercepted by map overlays. */
#canvas[data-mode="region"] .canvas-zone,#canvas[data-mode="region"] .canvas-region,#canvas[data-mode="region"] .zone-resize,#canvas[data-mode="region"] .grid-handle,
#canvas[data-mode="none"] .canvas-zone,#canvas[data-mode="none"] .canvas-region,#canvas[data-mode="none"] .zone-resize,#canvas[data-mode="none"] .grid-handle{pointer-events:none;cursor:default}
#canvas[data-mode="region"]{cursor:crosshair}

#canvas[data-mode="calibrate"]{cursor:crosshair}#canvas[data-mode="calibrate"]>*{pointer-events:none}

#calibrationGuide{position:fixed;right:24px;bottom:56px;width:min(340px,calc(100vw - 32px));z-index:9;padding:18px;background:#fff;border:1px solid #a9c4f3;border-top:4px solid #2464d5;border-radius:10px;box-shadow:0 8px 32px #233d5526;color:#263246}
#calibrationGuide .calibration-step{font-size:11px;color:#526b90;margin-bottom:10px}#calibrationGuide strong{display:block;font-size:15px;line-height:1.7}#calibrationGuide p{font-size:12px;line-height:1.8;margin:10px 0}#calibrationGuide .calibration-record{font-size:11px;color:#718096}.calibration-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.calibration-actions button{font-size:12px}

/* Everyday editing stays compact; learning content lives in Help. */
.workflow,.local-note,#selectionHelp,#effectSummary,#gridInfo,.navtabs [data-tab="guide"],#empty .small{display:none!important}
.property-feedback:not(.invalid){display:none}
button:not(:disabled){background:#dceafe;border-color:#9bbce9;color:#164983}
button:not(:disabled):hover{background:#c7ddfb;border-color:#638fca}
button.primary:not(:disabled),button.active:not(:disabled),.tools button.active:not(:disabled){background:#215dc4;border-color:#215dc4;color:#fff}
button:disabled{background:#f1f3f6;border-color:#e3e7ed;color:#9aa4b2;opacity:1;cursor:not-allowed}
#tree button:not(:disabled){background:transparent;border-color:transparent;color:#3b5273}
#tree button.active:not(:disabled){background:#215dc4;color:white}
.tutorial-progress{font-size:12px;color:#627d9d}.tutorial-copy{font-size:14px;line-height:1.9;min-height:110px}.tutorial-dots{display:flex;gap:6px;margin:18px 0}.tutorial-dots span{width:22px;height:4px;border-radius:3px;background:#dce4ef}.tutorial-dots .current{background:#215dc4}

button[hidden]{display:none!important}
.tools button.active:disabled{background:#f1f3f6;border-color:#e3e7ed;color:#9aa4b2}
.start-screen .navigator,.start-screen .inspector,.start-screen .canvas-toolbar,.start-screen .view-options,.start-screen footer{display:none}
.start-screen .workspace{display:block}.start-screen main{height:calc(100dvh - 68px)}
.start-screen header .actions>button:not(#usageHelp){display:none}
.start-actions{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.start-actions button{min-width:200px;min-height:72px;font-size:16px;font-weight:600}

.start-screen header .actions>button#systemSettings{display:inline-block}
.theme-choices,.help-index{display:grid;gap:10px;margin:14px 0}.theme-choices{grid-template-columns:repeat(3,1fr)}.help-index button{text-align:left;padding:13px}
:root[data-theme="navy"]{color-scheme:dark;--surface:#17263e;--surface2:#203450;--page:#101c30;--text:#e2ebfa;--muted:#b1c1d7;--border:#3e5574;--ink:#e2ebfa}
:root[data-theme="black"]{color-scheme:dark;--surface:#191919;--surface2:#282828;--page:#101010;--text:#eeeeee;--muted:#bcbcbc;--border:#484848;--ink:#eeeeee}
:root:is([data-theme="navy"],[data-theme="black"]) body{background:var(--page);color:var(--text)}
:root:is([data-theme="navy"],[data-theme="black"]) :is(header,.navigator,.inspector,.canvas-toolbar,.view-options,footer,dialog,#calibrationGuide){background:var(--surface);color:var(--text);border-color:var(--border)}
:root:is([data-theme="navy"],[data-theme="black"]) :is(h1,h2,h3,.brand strong,#empty h2,#selectionTitle){color:var(--text)}
:root:is([data-theme="navy"],[data-theme="black"]) :is(.small,.muted,.section-label,.dialog-field,#properties label,.tutorial-progress,.tutorial-copy,.report-list,.view-options,.tree-group){color:var(--muted)}
:root:is([data-theme="navy"],[data-theme="black"]) :is(#properties input,#properties textarea,#properties select,.dialog-field input,.dialog-field select,.canvas-toolbar select,.path-copy input){background:var(--surface2);color:var(--text);border-color:var(--border)}
:root:is([data-theme="navy"],[data-theme="black"]) #viewport{background-color:var(--page);background-image:radial-gradient(var(--border) .65px,transparent .65px)}
:root:is([data-theme="navy"],[data-theme="black"]) #tree button:not(:disabled){color:var(--text)}
:root:is([data-theme="navy"],[data-theme="black"]) button:disabled{background:var(--surface2);border-color:var(--border);color:#9299a2}
:root:is([data-theme="navy"],[data-theme="black"]) .notice{background:#403620;color:#ffe2a8}
:root:is([data-theme="navy"],[data-theme="black"]) .notice.error{background:#492a2a;color:#ffd1ca}
:root:is([data-theme="navy"],[data-theme="black"]) .notice.pass{background:#193d35;color:#c6f0de}
/* Theme tokens shared by every interactive control. */
:root,:root[data-theme="white"]{--control-bg:#dceafe;--control-text:#164983;--control-border:#9bbce9;--control-hover:#c7ddfb;--control-selected:#215dc4;--control-selected-hover:#194b9f;--control-on-selected:#ffffff;--control-disabled:#f1f3f6;--control-disabled-text:#737d8b;--control-disabled-border:#e3e7ed;--focus-ring:#215dc4;--link-color:#215dc4;--danger-text:#a12626;--danger-bg:#ffe5e5;--danger-hover:#ffd1d1;--tree-text:#3b5273}
:root[data-theme="navy"]{--control-bg:#29466a;--control-text:#edf5ff;--control-border:#6387b3;--control-hover:#365b87;--control-selected:#9cc9ff;--control-selected-hover:#bedcff;--control-on-selected:#102a48;--control-disabled:#203149;--control-disabled-text:#91a3bb;--control-disabled-border:#344b68;--focus-ring:#badcff;--link-color:#a9d1ff;--danger-text:#ffd5d5;--danger-bg:#632f3d;--danger-hover:#7d3d4e;--tree-text:#e2ebfa}
:root[data-theme="black"]{--control-bg:#353535;--control-text:#f2f2f2;--control-border:#747474;--control-hover:#494949;--control-selected:#e5e5e5;--control-selected-hover:#ffffff;--control-on-selected:#171717;--control-disabled:#232323;--control-disabled-text:#909090;--control-disabled-border:#3c3c3c;--focus-ring:#eeeeee;--link-color:#d9e6ff;--danger-text:#ffd2d2;--danger-bg:#582c2c;--danger-hover:#733939;--tree-text:#eeeeee}
:root[data-theme] button:not(:disabled){background:var(--control-bg);color:var(--control-text);border-color:var(--control-border)}
:root[data-theme] button:not(:disabled):hover{background:var(--control-hover);color:var(--control-text);border-color:var(--control-border)}
:root[data-theme] :is(button.primary,button.active,.tools button.active,#tree button.active):not(:disabled){background:var(--control-selected);color:var(--control-on-selected);border-color:var(--control-selected)}
:root[data-theme] :is(button.primary,button.active,.tools button.active,#tree button.active):not(:disabled):hover{background:var(--control-selected-hover);color:var(--control-on-selected)}
:root[data-theme] :is(button,.tools button.active,#tree button):disabled{background:var(--control-disabled);color:var(--control-disabled-text);border-color:var(--control-disabled-border)}
:root[data-theme] #tree button:not(.active):not(:disabled){background:transparent;color:var(--tree-text);border-color:transparent}
:root[data-theme] #tree button:not(.active):not(:disabled):hover{background:var(--control-hover);color:var(--control-text)}
:root[data-theme] button.danger:not(:disabled){background:var(--danger-bg);color:var(--danger-text)!important;border-color:var(--danger-text)}
:root[data-theme] button.danger:not(:disabled):hover{background:var(--danger-hover)}
:root[data-theme] button.danger:disabled{color:var(--control-disabled-text)!important}
:root[data-theme] :is(button,input,select,textarea,summary):focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}
:root[data-theme] input[type="checkbox"]{accent-color:var(--control-selected)}
:root[data-theme] a{color:var(--link-color)}
:root[data-theme] .tutorial-dots .current{background:var(--control-selected)}
:root[data-theme] .tutorial-dots span{background:var(--control-border)}
:root[data-theme] .mark{background:var(--control-bg);color:var(--control-text)}
:root[data-theme] #calibrationGuide{border-color:var(--control-border);border-top-color:var(--control-selected)}
:root:is([data-theme="navy"],[data-theme="black"]) :is(#calibrationGuide .calibration-step,#calibrationGuide .calibration-record,.install-step p,.install-optional p,.dialog-check,#empty p,#zoomLabel){color:var(--muted)}
/* Native file picker buttons need their own theme rules. */
:root[data-theme] input[type="file"]{color:var(--text,var(--ink));background:var(--surface2,#f8fafd);border:1px solid var(--border);border-radius:7px;max-width:100%;padding:8px;line-height:1.6}
:root[data-theme] input[type="file"]::file-selector-button{font:inherit;font-weight:600;padding:9px 14px;margin:0 12px 0 0;border:1px solid var(--control-border);border-radius:6px;background:var(--control-bg);color:var(--control-text);cursor:pointer}
:root[data-theme] input[type="file"]::file-selector-button:hover{background:var(--control-hover);color:var(--control-text)}
:root[data-theme] input[type="file"]:disabled{color:var(--control-disabled-text)}
:root[data-theme] input[type="file"]:disabled::file-selector-button{background:var(--control-disabled);color:var(--control-disabled-text);border-color:var(--control-disabled-border);cursor:not-allowed}
:root[data-theme] input[type="file"]:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}
