:root{color:#283128;background:#edf1e7;font-family:Hiragino Sans,Yu Gothic UI,Yu Gothic,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 12% 0%,rgba(255,255,255,.94),transparent 32rem),#edf1e7}button,input{font:inherit}button{cursor:pointer}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px clamp(16px,4vw,54px);border-bottom:1px solid rgba(47,69,47,.14);background:#f8faf4e6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand,.mode-switch,.map-heading{display:flex;align-items:center}.brand{gap:13px}.brand-mark{position:relative;width:48px;height:48px;overflow:hidden;border-radius:15px;background:linear-gradient(145deg,#294a35,#4b744c);box-shadow:0 8px 20px #24432b40}.brand-mark i{position:absolute;left:14px;top:7px;width:13px;height:23px;border-radius:100% 0;background:#dbe89d;transform-origin:100% 100%}.brand-mark i:nth-child(2){transform:rotate(80deg)}.brand-mark i:nth-child(3){transform:rotate(150deg)}.eyebrow{display:block;margin-bottom:3px;color:#657a62;font-size:10px;font-weight:900;letter-spacing:.18em}h1,h2,p{margin:0}h1{font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:clamp(21px,2vw,29px);letter-spacing:.08em}h2{font-size:18px}.mode-switch{padding:4px;border-radius:13px;background:#dfe5d9}.mode-switch button{min-width:62px;padding:8px 14px;border:0;border-radius:9px;color:#687164;background:transparent;font-size:13px;font-weight:900}.mode-switch button.active{color:#fff;background:#34563e;box-shadow:0 4px 12px #26422d33}.layout{flex:1;width:100%;max-width:1800px;margin:0 auto;padding:22px clamp(10px,2.7vw,42px) 14px;display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.layout.editing{grid-template-columns:minmax(0,1fr) 310px}.map-column{min-width:0}.map-heading{justify-content:space-between;gap:18px;margin:0 4px 12px}.map-help{padding:7px 12px;border:1px solid #cfd9c9;border-radius:999px;color:#5f705d;background:#ffffff9e;font-size:11px;font-weight:800}.iso-map-shell{position:relative;overflow:hidden;min-height:570px;border:1px solid rgba(54,78,54,.18);border-radius:24px;background:#dbe4cf;box-shadow:0 20px 60px #2f43302e}.iso-map{display:block;width:100%;height:clamp(570px,70vh,780px);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.iso-map.is-moving{cursor:grabbing}.map-instruction{position:absolute;z-index:4;top:16px;left:16px;display:grid;gap:2px;max-width:calc(100% - 32px);padding:10px 14px;border:1px solid rgba(57,83,58,.18);border-radius:14px;color:#354c37;background:#fafcf7e0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 7px 20px #2a3c2b1f;pointer-events:none}.map-instruction strong{font-size:13px}.map-instruction span{color:#647262;font-size:11px}.iso-controls{position:absolute;z-index:4;left:50%;bottom:49px;transform:translate(-50%);display:flex;gap:6px;padding:6px;border:1px solid rgba(43,66,46,.18);border-radius:15px;background:#f8fbf5e6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 8px 24px #273a2926}.iso-controls button{min-width:42px;height:39px;padding:0 13px;border:0;border-radius:10px;color:#38543c;background:transparent;font-size:13px;font-weight:900;white-space:nowrap}.iso-controls button:hover{background:#e4ebdf}.map-legend{position:absolute;z-index:4;right:0;bottom:0;left:0;min-height:42px;display:flex;align-items:center;justify-content:center;gap:20px;padding:8px 14px;color:#566451;background:#eff4eaeb;border-top:1px solid rgba(62,84,61,.14);font-size:11px;font-weight:800}.map-legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.map-legend i{width:14px;height:10px;border-radius:3px}.legend-bed{background:#587f3f}.legend-path{background:#cbb995}.legend-tree{background:#799d52;border-radius:50%!important}.legend-flower{background:#b83f74;border-radius:50%!important}.legend-pin{background:#315c58}.area-label{pointer-events:none}.area-label rect{fill:#ffffffe6;stroke:#30493238}.area-label text{fill:#36503a;font-size:11px;font-weight:900}.map-object{cursor:pointer}.map-object.editable{cursor:move}.map-object.selected{filter:drop-shadow(0 0 7px rgba(255,231,92,.95))}.pin-object>path{fill:#315c58;stroke:#fff;stroke-width:2px}.pin-object>circle{fill:#fff;stroke:#315c58;stroke-width:2px}.pin-object>text{fill:#315c58;font-size:11px;font-weight:900}.pin-entrance>path,.pin-exit>path{fill:#a53767}.pin-entrance>circle,.pin-exit>circle{stroke:#a53767}.pin-entrance>text,.pin-exit>text{fill:#a53767}.pin-toilet>path{fill:#407a87}.pin-toilet>circle{stroke:#407a87}.pin-toilet>text{fill:#407a87}.object-label rect{fill:#263328e6;stroke:#ffffff80}.object-label text{fill:#fff;font-size:10px;font-weight:900}.editor-panel{align-self:start;max-height:calc(100vh - 132px);overflow-y:auto;border:1px solid rgba(54,78,54,.16);border-radius:20px;background:#fafcf7e6;box-shadow:0 14px 42px #2f43301f}.panel-section{padding:19px;border-bottom:1px solid #e0e7dc}.panel-section h2{margin-bottom:14px}.panel-section label{display:grid;gap:6px;margin-top:11px;color:#5f6c5b;font-size:12px;font-weight:900}.panel-section input:not([type=checkbox]):not([type=color]){width:100%;min-height:40px;padding:8px 10px;border:1px solid #cfd9ca;border-radius:10px;color:#263226;background:#fff;outline:none}.panel-section input:focus{border-color:#557657;box-shadow:0 0 0 3px #55765721}.color-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.color-grid label{text-align:center}.color-grid input{width:100%;height:35px;padding:3px;border:1px solid #cfd9ca;border-radius:9px;background:#fff}.panel-section .check-row{display:flex;align-items:center;gap:8px}.check-row input{width:18px;height:18px;accent-color:#395e43}.add-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.add-grid button{min-height:55px;display:grid;place-items:center;gap:2px;padding:6px;border:1px solid #d2dccd;border-radius:10px;color:#50604e;background:#f8faf5;font-size:10px;font-weight:800}.add-grid button span{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;color:#fff;background:#507154;font-size:10px}.coordinate-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.empty-message{color:#778175;font-size:12px;line-height:1.7}.danger-button{width:100%;margin-top:15px;padding:9px;border:1px solid #d9b8b8;border-radius:9px;color:#964a4a;background:#fff8f7;font-size:11px;font-weight:800}.editor-actions{display:grid;gap:8px;padding:17px 19px 19px}.editor-actions button{min-height:43px;border-radius:10px;font-weight:900}.primary-button{border:0;color:#fff;background:#365a40}.secondary-button{border:1px solid #cad6c6;color:#5c6858;background:transparent}footer{display:flex;justify-content:space-between;gap:18px;padding:9px clamp(16px,4vw,54px) 15px;color:#758173;font-size:10px}.toast{position:fixed;z-index:20;left:50%;bottom:20px;transform:translate(-50%);padding:10px 17px;border-radius:11px;color:#fff;background:#294332;box-shadow:0 10px 30px #243a2a47;font-size:12px;font-weight:900}@media(max-width:1050px){.layout.editing{grid-template-columns:1fr}.editor-panel{max-height:none;display:grid;grid-template-columns:repeat(3,1fr)}.editor-actions{grid-column:1 / -1;grid-template-columns:1fr 1fr}}@media(max-width:700px){.app-header{min-height:70px;padding:11px 13px}.brand{gap:9px}.brand-mark{width:40px;height:40px;border-radius:12px}.brand-mark i{left:11px;top:5px;transform:scale(.78)}.brand-mark i:nth-child(2){transform:scale(.78) rotate(80deg)}.brand-mark i:nth-child(3){transform:scale(.78) rotate(150deg)}h1{font-size:18px}.eyebrow{font-size:8px}.mode-switch button{min-width:51px;padding:7px 9px}.layout{padding:12px 8px 8px}.map-heading{align-items:flex-start}.map-help{display:none}.iso-map-shell{min-height:620px;border-radius:18px}.iso-map{height:620px}.map-instruction{top:10px;left:10px}.iso-controls{width:calc(100% - 16px);bottom:47px;gap:4px;overflow-x:auto;justify-content:flex-start}.iso-controls button{flex:0 0 auto;min-width:54px;height:42px}.map-legend{justify-content:flex-start;gap:14px;overflow-x:auto}.editor-panel{display:block}.editor-actions{display:grid;grid-template-columns:1fr}footer{padding-inline:12px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
