:root{color-scheme:dark;--panel: rgba(18, 20, 24, .9);--line: rgba(255, 255, 255, .12);--text: #e6e3da;--dim: #9a978e;--accent: #d9a441;--accent-ink: #1a1408;--danger: #e6705c;font-family:Segoe UI,system-ui,sans-serif;font-size:13px}html,body{margin:0;height:100%;overflow:hidden;background:#14161a;color:var(--text)}#view,#overlay{position:fixed;inset:0;width:100%;height:100%;display:block}#view{cursor:crosshair;touch-action:none}#view.dragging{cursor:grabbing}#overlay{pointer-events:none}#ui{position:fixed;inset:0;pointer-events:none}#ui .panel,#ui .lobby{pointer-events:auto}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;backdrop-filter:blur(6px)}.hidden{display:none!important}button,input,select{font:inherit;color:var(--text);background:#ffffff0f;border:1px solid var(--line);border-radius:5px;padding:5px 9px;min-width:0}button{cursor:pointer;white-space:nowrap}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}button.active{background:#d9a44138;border-color:var(--accent)}select option{background:#1c1f24}.dim{color:var(--dim)}.empty{color:var(--dim);padding:8px 2px}.spacer{flex:1}.label{color:var(--dim)}.topbar{position:absolute;top:10px;left:10px;right:10px;display:flex;align-items:center;gap:8px;padding:7px 10px}.topbar .title{font-weight:600;font-size:14px;color:var(--accent);margin:0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar input[type=text]{width:80px}.topbar .status{color:var(--dim);white-space:nowrap}.users{display:flex;gap:5px;overflow:hidden}.user{--user: #fff;padding:2px 8px 2px 18px;border-radius:999px;border:1px solid var(--line);position:relative;white-space:nowrap}.user:before{content:"";position:absolute;left:6px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:var(--user)}.level{display:flex;align-items:center;gap:5px;color:var(--dim)}.level button{padding:3px 9px}.level-value{min-width:1.6em;text-align:center;color:var(--text);font-variant-numeric:tabular-nums}.conn{width:10px;height:10px;border-radius:50%;background:var(--dim);flex:none}.conn.open{background:#6fcf6f}.conn.connecting{background:var(--accent)}.conn.closed{background:var(--danger)}.side{position:absolute;top:62px;left:10px;bottom:64px;width:300px;box-sizing:border-box;padding:10px;display:flex;flex-direction:column;min-height:0}.palette{display:flex;flex-direction:column;gap:8px;min-height:0;flex:1}.palette-filters{display:flex;gap:6px}.palette-filters select{width:118px}.palette-filters input{flex:1}.set-list{flex:0 0 28%;min-height:90px;overflow-x:hidden;overflow-y:auto;border:1px solid var(--line);border-radius:5px}.set{display:flex;justify-content:space-between;gap:8px;width:100%;box-sizing:border-box;overflow:hidden;text-align:left;border:0;border-radius:0;background:none;padding:4px 8px}.set:hover{background:#ffffff0f}.set.current{background:#d9a44138}.set .count{color:var(--dim)}.palette-label,.set-title{color:var(--dim);font-size:12px}.set-title{color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:4px;overflow-y:auto;align-content:start;flex:1;min-height:0}.tile-grid.recent{flex:none;display:flex;overflow-x:auto;overflow-y:hidden;min-height:66px}.tile{padding:2px;line-height:0;background:#ffffff0a;flex:none}.tile canvas{width:56px;height:56px}.tile.selected{border-color:var(--accent);background:#d9a44140}.toolbar{position:absolute;left:50%;bottom:12px;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:7px 10px;max-width:calc(100% - 40px)}.toolbar .divider{width:1px;align-self:stretch;background:var(--line);margin:0 4px}.selected-tile{color:var(--dim);width:270px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hoverbox{position:absolute;right:10px;bottom:12px;max-width:420px;padding:7px 10px;font-size:12px;line-height:1.5;white-space:pre-wrap;pointer-events:none!important}.hoverbox:empty{display:none}.hint{position:absolute;left:14px;bottom:8px;width:292px;color:var(--dim);font-size:12px;line-height:1.35;text-shadow:0 1px 2px #000}.notice{position:absolute;top:62px;left:50%;transform:translate(-50%);max-width:min(720px,calc(100% - 660px));min-width:280px;padding:10px 34px 10px 14px;line-height:1.55;overflow-wrap:anywhere;border-color:#d9a44199}.notice.error{border-color:var(--danger)}.notice .close{position:absolute;top:6px;right:6px;padding:0 7px;border:0;background:none;font-size:16px}.lobby{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:6vh 16px;background:radial-gradient(ellipse at top,#20242b,#14161a 70%)}.lobby-card{width:min(560px,100%);padding:22px 26px 26px}.lobby-card h1{margin:0;font-size:24px;color:var(--accent);letter-spacing:.01em}.lobby-card h2{margin:22px 0 8px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}.lobby-card p{margin:4px 0 16px}.field{display:flex;flex-direction:column;gap:4px;color:var(--dim);max-width:240px}.rows{display:flex;flex-direction:column;gap:6px}.row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:6px}.row-main{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.new-map{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.new-map input[type=text],.new-map input[type=password]{flex:1 1 200px}.new-map input[type=number]{width:52px}.new-map label{display:flex;align-items:center;gap:6px;color:var(--dim)}.form-error{color:var(--danger);margin-top:8px;min-height:1.2em}.row button.quiet{border-color:transparent;background:none;color:var(--dim)}.row button.quiet:hover:not(:disabled){color:var(--danger)}.row button.danger{border-color:var(--danger);color:var(--danger)}.lobby-note{margin-top:8px;color:var(--dim);line-height:1.5;overflow-wrap:anywhere}.lobby-note:empty{display:none}.lobby-note.error{color:var(--danger)}.savebox{position:absolute;top:62px;left:10px;width:300px;display:flex;flex-direction:column;gap:8px;padding:10px 12px;font-size:12px;line-height:1.4}.savebox p{margin:0}.savebox-buttons{display:flex;gap:8px}.side-head{display:flex;flex-direction:column;gap:3px;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--line)}.side-name{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.side-title{font-size:15px;color:var(--accent)}.side-key,.side-what{color:var(--dim);font-size:12px;line-height:1.4}.tool-help{margin:0 0 4px;padding-left:18px;line-height:1.5}.tool-help li{margin-bottom:4px}.size-group{display:flex;align-items:center;gap:6px}.size-group.off .label{opacity:.45}.side-page{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto}.ground-panel{display:flex;flex-direction:column;gap:8px}.ground-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.ground{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 4px;background:#ffffff0a}.ground canvas{width:96px;height:48px}.ground.selected{border-color:var(--accent);background:#d9a44140}.small{font-size:12px;line-height:1.5;margin:4px 0 0}.land-list{display:flex;flex-direction:column;gap:4px}.land{display:flex;align-items:center;gap:8px;text-align:left;white-space:normal;padding:5px 8px;background:#ffffff0a}.land .swatch{width:14px;height:14px;border-radius:3px;flex:none}.land-text{display:flex;flex-direction:column;min-width:0;font-size:12px;line-height:1.35}.land.selected{border-color:var(--accent);background:#d9a44140}.density{display:flex;gap:4px}.density button{flex:1;min-width:0;padding:4px 2px;font-size:12px}.preset-list{display:flex;flex-wrap:wrap;gap:4px}.preset-list button{padding:4px 8px;font-size:12px}.field.wide{max-width:none}.blueprint-list{display:flex;flex-direction:column;gap:4px}.blueprint-row{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid var(--line);border-radius:5px;cursor:pointer}.blueprint-row:hover{border-color:var(--dim)}.blueprint-row.active{border-color:var(--accent);background:#d9a4412e}.blueprint-text{flex:1;min-width:0}.blueprint-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.blueprint-row button{padding:2px 7px;font-size:12px}.blueprint-row button.quiet{border-color:transparent;background:none;color:var(--dim)}.blueprint-row button.danger{border-color:var(--danger);color:var(--danger)}.road-section{margin-top:8px;padding-top:8px;border-top:1px solid var(--line, rgba(255, 255, 255, .12))}.slider-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 6px;font-size:12px;color:var(--dim)}.slider-label{grid-row:1;grid-column:1}.slider-row input[type=range]{grid-row:2;grid-column:1 / -1;box-sizing:border-box;width:100%;min-width:0;padding:0;margin:0;border:0;accent-color:var(--accent)}.slider-value{grid-row:1;grid-column:2;color:var(--text);text-align:right;white-space:nowrap}.slider-row.off,.field.off{opacity:.45}.check{display:flex;align-items:center;gap:6px}.check input{padding:0}.selected-road{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--accent);border-radius:5px;font-size:12px;line-height:1.4}.build-panel{flex:1;min-height:0}.slot-list{display:flex;flex-wrap:wrap;gap:4px}.slot-list button{padding:4px 7px;font-size:12px}.style-grid{min-height:180px;max-height:46vh;flex:none}.field.wide select,.field.wide input{width:100%;box-sizing:border-box}.modal-back{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000008c;z-index:20}.modal{display:flex;flex-direction:column;gap:10px;max-width:min(860px,calc(100% - 40px));max-height:calc(100% - 40px);overflow-y:auto;padding:16px 18px}.modal h2{margin:0;font-size:17px;color:var(--accent)}.modal p{margin:0;line-height:1.45}.export-world{align-self:center;max-width:100%;border:1px solid var(--line);border-radius:4px;cursor:crosshair;touch-action:none}.export-views{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:12px}.export-closeup{display:flex;flex-direction:column;gap:4px;font-size:12px}.export-close{border:1px solid var(--line);border-radius:4px}.export-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.export-row label{display:flex;align-items:center;gap:6px;color:var(--dim)}.export-row input{width:64px}.export-modes{display:flex;flex-direction:column;gap:4px}.export-modes label{display:flex;align-items:baseline;gap:8px;cursor:pointer}.export-modes input{padding:0}.export-summary{display:flex;flex-direction:column;gap:5px;font-size:13px;line-height:1.45}.export-summary .warn{color:#f0b36a}.export-summary .dim{font-size:12px}.export-page{display:flex;flex-direction:column;gap:10px}.export-page.hidden,.workshop-form.hidden{display:none}.workshop-form{display:flex;flex-direction:column;gap:9px;width:min(760px,100%)}.workshop-row{display:grid;grid-template-columns:130px 1fr;gap:10px;align-items:start}.workshop-label{padding-top:5px;color:var(--dim)}.workshop-field{display:flex;flex-direction:column;gap:3px;min-width:0}.workshop-field>input[type=text],.workshop-field>textarea,.workshop-field>select{width:100%;box-sizing:border-box}.workshop-field textarea{resize:vertical;font:inherit;line-height:1.4;padding:6px 8px;color:var(--text);background:#14161a;border:1px solid var(--line);border-radius:4px}.workshop-field .dim{font-size:12px;line-height:1.4}.workshop-tags{display:flex;flex-wrap:wrap;gap:3px 14px;padding-top:4px}.workshop-tags label,.workshop-picture-choice label{display:flex;align-items:center;gap:5px;cursor:pointer;white-space:nowrap}.workshop-tags input,.workshop-picture-choice input[type=radio]{padding:0}.workshop-picture-row{display:flex;gap:12px;align-items:flex-start}.workshop-picture{width:128px;height:128px;flex:none;object-fit:cover;background:#14161a;border:1px solid var(--line);border-radius:4px}.workshop-picture-choice{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.workshop-error{flex:1;align-self:center;color:#f08a7a;font-size:13px;line-height:1.35}.export-buttons{display:flex;justify-content:flex-end;gap:8px;position:sticky;bottom:-16px;margin:0 -18px -16px;padding:10px 18px 16px;background:#1b1d21;border-top:1px solid var(--line)}.badge{display:inline-block;min-width:16px;margin-left:6px;padding:0 4px;border-radius:8px;background:#d9783f;color:#1b1d21;font-size:11px;font-weight:700;line-height:16px;text-align:center}.checklist{position:absolute;top:62px;right:10px;width:360px;max-height:calc(100% - 140px);display:flex;flex-direction:column;gap:8px;padding:10px 12px;overflow-y:auto;z-index:5}.checklist-head{display:flex;align-items:center;gap:6px}.checklist-head .spacer{flex:1}.checklist-head .close{padding:0 7px;border:0;background:none;font-size:16px}.checks{display:flex;flex-direction:column;gap:7px}.check{display:flex;gap:8px;font-size:13px;line-height:1.4}.check-mark{flex:none;width:18px;height:18px;border-radius:9px;background:#ffffff1f;font-size:12px;font-weight:700;line-height:18px;text-align:center}.check.warning .check-mark{background:#d9783f;color:#1b1d21}.check.ok .check-mark{background:#5fb878;color:#1b1d21}.check-text{display:flex;flex-direction:column;gap:1px}.check-fix{color:var(--dim);font-size:12px}.export-checks{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px solid var(--line);font-size:13px}.modal.mapview{width:min(1280px,calc(100% - 40px));height:calc(100% - 40px);max-width:none;overflow:hidden}.mapview-head{display:flex;align-items:center;gap:10px}.mapview-head .spacer{flex:1}.mapview-canvas{flex:1;min-height:0;width:100%;border:1px solid var(--line);border-radius:4px;cursor:grab;touch-action:none}.mapview-canvas:active{cursor:grabbing}.mapview-status{min-height:1.3em;color:var(--dim)}.mapview-legend{display:flex;flex-wrap:wrap;gap:4px 14px}.mapview-key{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.mapview-swatch{width:14px;height:14px;border-radius:3px;border:1px solid rgba(0,0,0,.4)}
