    :root{--ink:#2a241b;--muted:#716655;--paper:#f4ead2;--paper2:#e7d4aa;--panel:#fbf4e5;--line:#c9b78f;--accent:#865f32;--accent2:#3f6452;--danger:#9b4337;--shadow:0 14px 40px rgba(37,28,16,.18)}
    *{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:"Yu Mincho","Hiragino Mincho ProN",Georgia,serif;color:var(--ink);background:#221f1a;overflow:auto;font-size:16px}
    button,input,select{font:inherit;color:inherit}button{cursor:pointer}.app{height:calc(100vh - 53px);min-height:560px;display:grid;grid-template-rows:58px 1fr}
    header{display:flex;align-items:center;gap:14px;padding:8px 14px;background:#29251f;color:#f7ecd2;border-bottom:1px solid #514637;box-shadow:0 3px 18px #0006;z-index:20}
    .header-actions{display:flex;align-items:center;gap:7px;margin-left:auto}.topbtn,.iconbtn{border:1px solid #665a49;background:#373129;color:#f3e5c8;border-radius:6px;padding:8px 11px;min-height:36px}.topbtn:hover,.iconbtn:hover{background:#4a4034}.topbtn.primary{background:#886234;border-color:#ad8651}.topbtn.primary:hover{background:#9a7342}.g-mark{font-weight:700;color:inherit;margin-right:4px}
    .workspace{min-height:0;display:grid;grid-template-columns:258px 1fr 278px}.panel{background:var(--panel);min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#aa9773 transparent}.panel.left{border-right:1px solid #8b7a5d}.panel.right{border-left:1px solid #8b7a5d}.panel-head{position:sticky;top:0;background:#e9dcc0eF;backdrop-filter:blur(8px);padding:12px 13px;border-bottom:1px solid var(--line);z-index:4}.panel-head h2{font-size:14px;margin:0;letter-spacing:.12em}.section{padding:12px;border-bottom:1px solid #d9c9aa}.section h3{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin:0 0 9px}.toolgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.tool{border:1px solid #c8b58e;background:#fffaf0;border-radius:7px;min-height:54px;padding:6px 3px;font-size:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.tool svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;overflow:visible}.tool:hover{border-color:#866637;background:#f7ead0}.tool.active{background:#3b5d4c;color:white;border-color:#304d3e;box-shadow:inset 0 0 0 1px #91aa92}.icon-defs{position:absolute;width:0;height:0;overflow:hidden}.row{display:flex;gap:7px;align-items:center;margin-top:7px}.row:first-child{margin-top:0}.field{display:grid;gap:4px;flex:1}.field label,.check{font-size:12px;color:#5e5446}.field input,.field select,.select{width:100%;border:1px solid #c3b18e;background:#fffaf1;border-radius:5px;padding:7px 8px;min-height:34px}.field input[type=color]{padding:3px;height:34px}.field input[type=range]{padding:0;border:0;background:transparent;min-height:20px}.smallbtn{border:1px solid #b7a47f;background:#fff9ec;border-radius:5px;padding:7px 9px;font-size:12px}.smallbtn:hover{background:#efe1c4}.smallbtn.danger{color:var(--danger)}.smallbtn.wide{width:100%}.seedline{display:grid;grid-template-columns:1fr auto;gap:6px}.checks{display:grid;grid-template-columns:1fr 1fr;gap:7px}.check{display:flex;align-items:center;gap:6px}.check input{accent-color:#496c59}.hint{font-size:11px;color:#7b6e5b;line-height:1.5;margin:7px 0 0}.map-list{display:grid;grid-template-columns:1fr auto;gap:6px}.map-list select{min-width:0}.canvas-stage{position:relative;min-width:0;min-height:0;background:#171512;overflow:hidden}.canvas-wrap{position:absolute;inset:0;display:grid;place-items:center;padding:36px}.canvas-shell{position:relative;box-shadow:0 20px 60px #000b;background:#ddd;transform-origin:center}.canvas-shell canvas{display:block;max-width:none;touch-action:none}.status{position:absolute;left:16px;bottom:12px;background:#28231edb;color:#eee0c4;border:1px solid #675c4c;border-radius:20px;padding:6px 11px;font-size:12px;pointer-events:none}.zoom{position:absolute;right:16px;bottom:12px;display:flex;background:#28231edb;border:1px solid #675c4c;border-radius:7px;overflow:hidden}.zoom button{border:0;border-right:1px solid #675c4c;background:transparent;color:#eee0c4;width:36px;height:34px}.zoom button:last-child{border:0}.zoom button:hover{background:#514637}.empty-props{padding:30px 15px;text-align:center;color:#81735e;font-size:13px;line-height:1.7}.prop-title{font-size:18px;margin:0 0 3px}.badge{display:inline-block;font-size:10px;letter-spacing:.08em;border:1px solid #b8a47e;border-radius:10px;padding:2px 7px;color:#6c5d49;background:#f9efd9}.divider{height:1px;background:#d8c5a2;margin:11px 0}.toast{position:fixed;left:50%;top:70px;transform:translate(-50%,-8px);background:#2c493b;color:white;padding:9px 14px;border-radius:6px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.2s;z-index:100}.toast.show{opacity:1;transform:translate(-50%,0)}
    .map-list{grid-template-columns:minmax(180px,1fr) auto auto;flex:1;max-width:540px;min-width:260px}.map-list select{color:#2a241b;background:#fffaf1;font-weight:700;opacity:1}
    dialog{border:1px solid #8d7957;border-radius:10px;background:#fbf3df;color:var(--ink);box-shadow:0 24px 80px #0009;padding:0;max-width:460px;width:calc(100% - 30px)}dialog::backdrop{background:#17130eaa}.dialog-head{padding:16px 18px;border-bottom:1px solid var(--line);font-weight:bold}.dialog-body{padding:17px 18px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--line)}
    .map-list{grid-template-columns:1fr auto auto}.canvas-stage.hand,.canvas-stage.space-hand{cursor:grab}.canvas-stage.hand:active,.canvas-stage.space-hand:active{cursor:grabbing}.draft-bar{position:absolute;left:50%;bottom:54px;transform:translateX(-50%);display:flex;gap:6px;padding:7px;background:#28231ef2;border:1px solid #806f56;border-radius:9px;box-shadow:0 8px 24px #0008;z-index:8}.draft-bar[hidden]{display:none}.draft-bar button{border:1px solid #8d7c61;background:#fff7e6;color:#30291f;border-radius:6px;padding:8px 12px;white-space:nowrap}.draft-bar .confirm{background:#4b705c;color:#fff;border-color:#789681}.draft-bar .cancel{color:#9b4337}.smallbtn.active{background:#3f6452;color:#fff;border-color:#304d3e}
    .generator-section{padding:8px 10px}.generator-details{border:1px solid #c4b18c;border-radius:7px;background:#f7edd8}.generator-details summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;cursor:pointer;font-size:12px;font-weight:700;letter-spacing:.08em;color:#574b3b;list-style:none}.generator-details summary::-webkit-details-marker{display:none}.generator-details summary::after{content:'＋';font-size:16px;line-height:1;color:#806b4d}.generator-details[open] summary::after{content:'−'}.generator-details[open] summary{border-bottom:1px solid #d5c4a3}.generator-body{padding:10px}.style-radios{display:grid;grid-template-columns:repeat(var(--choices,2),minmax(0,1fr));gap:5px;margin-top:4px}.style-choice{position:relative}.style-choice input{position:absolute;opacity:0;pointer-events:none}.style-choice span{display:flex;align-items:center;justify-content:center;min-height:34px;padding:6px 7px;border:1px solid #bca985;border-radius:6px;background:#fffaf0;color:#554a3c;font-size:12px;text-align:center;cursor:pointer}.style-choice input:checked+span{background:#3f6452;color:#fff;border-color:#304d3e;box-shadow:inset 0 0 0 1px #8ca38f}.style-choice input:focus-visible+span{outline:2px solid #916d3d;outline-offset:2px}.field input:disabled,.smallbtn:disabled{opacity:.45;cursor:not-allowed}
    .site-footer{max-width:1500px;margin:0 auto;padding:4px 24px 24px}.footer-links{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 18px;padding-top:14px;border-top:1px solid #514637}.footer-links a{color:#b9ad98;font-size:.78rem;text-decoration:none}.footer-links a:hover,.footer-links a:focus-visible{color:#e0b879;text-decoration:underline;text-underline-offset:3px}
    @media(max-width:900px){.workspace{grid-template-columns:210px 1fr}.panel.right{position:absolute;right:0;top:58px;bottom:0;width:260px;z-index:15;box-shadow:-10px 0 30px #0005}.topbtn span{display:none}.site-footer{padding:4px 12px 20px}}
    @media(max-width:650px){body{overflow:auto}.app{min-height:100%;height:auto;grid-template-rows:auto 1fr}header{flex-wrap:wrap;gap:6px 8px}.map-list{order:3;width:100%;max-width:none}.header-actions{margin-left:0}.workspace{grid-template-columns:1fr;grid-template-rows:auto 68vh auto}.panel.left,.panel.right{position:static;width:auto;max-height:none}.canvas-stage{grid-row:2}.panel.right{grid-row:3}.canvas-wrap{padding:18px}.header-actions .mobile-hide{display:none}.topbtn{padding:7px 8px}.g-mark{margin:0}}
