:root{--bg:#0b1219;--panel:#131c26;--panel-2:#1a2531;--line:#263443;--text:#dfe7ef;--muted:#8ea1b5;--accent:#4ea8ff;--danger:#ff6b6b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}.app{grid-template-rows:auto 1fr auto;height:100%;display:grid}.toolbar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 12px;display:flex}.toolbar h1{letter-spacing:.02em;margin:0 8px 0 0;font-size:15px;font-weight:600}.toolbar .group{gap:4px;display:flex}.inline{color:var(--muted);align-items:center;gap:6px;display:inline-flex}button,select,input[type=text],input[type=search]{background:var(--panel-2);color:var(--text);border:1px solid var(--line);font:inherit;border-radius:6px;padding:5px 10px}button{cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}button.active,.tab.active{background:var(--accent);border-color:var(--accent);color:#06121e;font-weight:600}button.danger:hover{border-color:var(--danger);color:var(--danger)}.workspace{grid-template-columns:260px 1fr 260px;min-height:0;display:grid}.panel{background:var(--panel);border-right:1px solid var(--line);min-height:0;padding:10px 12px;overflow-y:auto}.workspace>.panel:last-child{border-right:none;border-left:1px solid var(--line)}.panel h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 10px;font-size:12px}.coord{color:var(--accent);text-transform:none;letter-spacing:0}.canvas-wrap{min-width:0;min-height:0;position:relative;overflow:hidden}.canvas-wrap canvas{touch-action:none;display:block}.search{width:100%;margin-bottom:8px}.tabs{flex-wrap:wrap;gap:4px;margin-bottom:10px;display:flex}.tab{border-radius:5px;padding:3px 7px;font-size:12px}.rotation-row{color:var(--muted);align-items:center;gap:8px;margin-bottom:10px;display:flex}.rotation-hint{margin:-4px 0 10px}kbd{border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px;display:grid}.tile{background:var(--panel-2);border:1px solid #0000;border-radius:6px;flex-direction:column;align-items:center;gap:2px;padding:4px 2px;display:flex}.tile img{object-fit:contain;image-rendering:auto;width:100%;height:42px}.tile span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:9px;overflow:hidden}.tile.selected{border-color:var(--accent);background:#14304a}.more-row{justify-content:center;padding:8px 0 2px;display:flex}.more-row button{border-radius:5px;padding:3px 10px;font-size:11px}.tile-preview{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;align-items:center;gap:10px;margin-bottom:12px;padding:8px;display:flex}.preview-img{object-fit:contain;flex:none;width:72px;height:62px}.preview-meta{word-break:break-all;min-width:0}.thumb-empty{width:72px;height:42px;color:var(--muted);justify-content:center;align-items:center;display:inline-flex}.field{margin-bottom:10px}.field label{color:var(--muted);margin-bottom:3px;font-size:11px;display:block}.field input[type=text],.field select{width:100%}.field.checkbox{align-items:center;gap:6px;display:flex}.field.checkbox label{color:var(--text);margin:0;font-size:13px}.readonly{margin:12px 0;font-size:12px}.readonly dt{color:var(--muted);margin-top:6px}.readonly dd{word-break:break-all;margin:0}.row.buttons{gap:6px;display:flex}.statusbar{background:var(--panel);border-top:1px solid var(--line);color:var(--muted);align-items:center;gap:16px;padding:5px 12px;font-size:12px;display:flex}.statusbar .msg{color:var(--text)}.statusbar .hints{opacity:.7;margin-left:auto}.mono,code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.muted{color:var(--muted)}.small{font-size:11px}.scale-row{align-items:center;gap:8px;display:flex}.scale-row input[type=range]{flex:1;min-width:0}.scale-number{flex:none;width:70px}.two-fields{gap:8px;display:flex}.two-fields .field{flex:1;min-width:0}.field input[type=number]{width:100%}.group-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);align-self:center;margin-right:2px;font-size:11px}.statusbar .server-state{color:var(--text)}.statusbar .server-state.dirty{color:var(--accent)}.modal-backdrop{z-index:20;background:#04080c99;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);border-radius:8px;width:min(640px,100vw - 32px);max-height:calc(100vh - 64px);padding:14px 16px 16px;overflow:auto;box-shadow:0 18px 48px #00000080}.modal-head{align-items:center;gap:8px;margin-bottom:12px;display:flex}.modal-head h2{flex:1;margin:0;font-size:15px;font-weight:600}.modal-error{border:1px solid var(--danger);color:var(--danger);border-radius:6px;margin:0 0 12px;padding:8px 10px}.maps-table{border-collapse:collapse;width:100%;font-size:13px}.maps-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:4px 8px 6px;font-weight:500}.maps-table td{border-bottom:1px solid var(--line);padding:6px 8px}.maps-table .num{text-align:right}.maps-table tr.current td{background:var(--panel-2)}
