:root{--parchment: #e8d8b0;--ink: #4a3a26;--ink-soft: #6d5c44;--panel: #f3e9cf;--panel-2: #ece0c0;--panel-border: #c9b78c;--accent: #7a3b2e;--accent-soft: #a5604f;--radius: 5px;--shadow: 0 1px 2px rgba(74, 58, 38, .14)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Georgia,Iowan Old Style,Times New Roman,serif;color:var(--ink);background:var(--parchment);-webkit-font-smoothing:antialiased}#app{display:grid;grid-template-rows:auto 1fr;height:100%}#app-body{display:grid;grid-template-columns:208px minmax(0,1fr) 280px;min-height:0}#map-wrap{position:relative;min-width:0;overflow:hidden}.panel{background:var(--panel);border:1px solid var(--panel-border);overflow:auto}.rightcol{display:flex;flex-direction:column;min-width:0;min-height:0}.rightcol>*{min-height:0}.rightcol>.inspector{flex:1 1 58%}.rightcol>.legend{flex:1 1 42%}.section-title{text-transform:uppercase;font-size:11px;letter-spacing:1px;opacity:.72;margin-bottom:6px;font-family:system-ui,sans-serif}button{font:inherit;font-size:13px;color:var(--ink);background:linear-gradient(180deg,#fbf5e6,var(--panel-2));border:1px solid var(--panel-border);border-radius:var(--radius);padding:4px 9px;cursor:pointer;box-shadow:var(--shadow);transition:background .12s,border-color .12s,transform 60ms}button:hover:not(:disabled){background:#fffaee;border-color:var(--accent-soft)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:default;box-shadow:none}button.on{background:var(--accent);border-color:var(--accent);color:#fdf6e6;font-weight:700}:where(button,input,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:1px}input,textarea{font:inherit;font-size:13px;color:var(--ink);background:#fffdf6;border:1px solid var(--panel-border);border-radius:var(--radius);padding:4px 6px}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:7px 12px;background:linear-gradient(180deg,var(--panel),var(--panel-2));border-bottom:1px solid var(--panel-border)}.brand{font-weight:700;letter-spacing:.4px;white-space:nowrap}.mapname{width:168px;background:transparent;border-color:transparent;font-style:italic}.mapname:hover,.mapname:focus{background:#fffdf6;border-color:var(--panel-border)}.tb-group{display:flex;align-items:center;gap:5px}.tb-group.push{margin-left:auto}.tb-label{font-size:12px;opacity:.7;margin-left:2px}.seg{display:flex;box-shadow:var(--shadow);border-radius:var(--radius)}.seg button{border-radius:0;box-shadow:none;margin-left:-1px}.seg button:first-child{border-radius:var(--radius) 0 0 var(--radius);margin-left:0}.seg button:last-child{border-radius:0 var(--radius) var(--radius) 0}.seg button.on{position:relative;z-index:1}.toolbar-note{flex-basis:100%;font-size:12px;color:var(--accent)}.swatch-grid{display:flex;flex-wrap:wrap;gap:6px}.swatch{width:38px;height:38px;display:flex;align-items:center;justify-content:center;padding:0;border-radius:6px;box-shadow:var(--shadow)}.swatch.on{border:2px solid var(--accent);box-shadow:0 0 0 2px #7a3b2e2e}.legend-row{display:flex;gap:8px;align-items:baseline;width:100%;text-align:left;background:transparent;border:none;box-shadow:none;border-bottom:1px solid var(--panel-border);border-radius:0;padding:5px 4px}.legend-row:hover:not(:disabled){background:#7a3b2e14;border-color:var(--panel-border)}.legend-row.on{background:var(--accent);color:#fdf6e6;font-weight:400}.legend-num{font-weight:700;min-width:22px;text-align:right;color:var(--accent)}.legend-row.on .legend-num{color:#fdf6e6}.empty-note{opacity:.55;font-size:12px;line-height:1.5}.first-run{position:absolute;left:50%;bottom:28px;transform:translate(-50%);width:min(430px,calc(100% - 32px));padding:12px 16px;background:#f3e9cff0;border:1px solid var(--panel-border);border-radius:8px;box-shadow:0 4px 14px #4a3a262e;font-size:13px;line-height:1.55;pointer-events:none}.first-run p{margin:6px 0 0}@media (max-width: 1000px){#app-body{grid-template-columns:148px minmax(0,1fr) 232px}.mapname{display:none}}@media (max-width: 720px){#app-body{grid-template-columns:1fr;grid-template-rows:1fr auto}#app-body>.panel:first-child,.rightcol{display:none}}
