:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{color:#eee;background:#1a1a1e;margin:0;font:14px/1.5 system-ui,sans-serif}#app{flex-direction:column;height:100vh;display:flex}#header{border-bottom:1px solid #2c2c33;flex:none;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 20px;display:flex}#header h1{margin:0;font-size:16px}#totals{color:#9a9aa5;font-size:13px}#layout{flex:1;grid-template-columns:360px 1fr;min-height:0;display:grid}#sidebar{border-right:1px solid #2c2c33;flex-direction:column;min-height:0;display:flex;overflow-y:auto}#mode-switch{flex:none;gap:6px;padding:12px 16px 0;display:flex}.mode-button{color:#9a9aa5;cursor:pointer;font:inherit;background:0 0;border:1px solid #3a3a42;border-radius:6px;flex:1;padding:6px 10px}.mode-button:hover{background:#2c2c33}.mode-button.is-active{color:#eee;border-color:#4f9cf9}#browse-pane[hidden],#scene-pane[hidden],#curate-pane[hidden]{display:none}#browse-pane{flex-direction:column;min-height:0;display:flex}#scene-pane,#curate-pane{flex-direction:column;gap:12px;padding:16px;display:flex;overflow-y:auto}.pane-title{margin:0;font-size:14px}.pane-note{color:#9a9aa5;margin:0;font-size:12px}.pane-note code{color:#c9c9d2;font-size:11px}.field{color:#9a9aa5;flex-direction:column;gap:4px;min-width:0;font-size:12px;display:flex}.field input{color:#eee;font:inherit;background:#232329;border:1px solid #3a3a42;border-radius:6px;min-width:0;padding:6px 8px}.field-row{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.primary-button{color:#111;font:inherit;cursor:pointer;background:#4f9cf9;border:none;border-radius:6px;padding:8px 12px;font-weight:600}.primary-button:hover{background:#6cadfa}.primary-button:disabled{color:#9a9aa5;cursor:default;background:#3a3a42}.checkbox{color:#9a9aa5;align-items:center;gap:8px;font-size:12px;display:flex}#scene-status{color:#9a9aa5;font-size:13px}#scene-status.error{color:#ff8a8a}#scene-notes{color:#d9c15a;flex-direction:column;gap:4px;font-size:12px;display:flex}#sidebar-header{flex:none;align-items:center;gap:10px;padding:12px 16px;display:flex}#sidebar-header h2{margin:0;font-size:14px}#back-button{color:inherit;cursor:pointer;font:inherit;background:0 0;border:1px solid #3a3a42;border-radius:6px;padding:4px 10px}#back-button:hover{background:#2c2c33}#sidebar-status,#viewport-status{color:#9a9aa5;padding:8px 16px;font-size:13px}#sidebar-status:empty,#viewport-status:empty{display:none}#sidebar-status.error,#viewport-status.error{color:#ff8a8a}.section-heading{text-transform:uppercase;letter-spacing:.05em;color:#9a9aa5;grid-column:1/-1;margin:12px 4px 4px;font-size:12px}#tile-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));align-content:start;gap:10px;padding:12px 16px;display:grid}.tile{color:inherit;font:inherit;cursor:pointer;text-align:left;background:#232329;border:1px solid #2c2c33;border-radius:8px;flex-direction:column;gap:4px;padding:6px;display:flex}.tile:hover{border-color:#4f9cf9}.tile-thumb{aspect-ratio:1;background:#1a1a1e;border-radius:4px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.tile-thumb img{object-fit:contain;width:100%;height:100%}.tile-placeholder{color:#9a9aa5;text-align:center;overflow-wrap:anywhere;padding:4px;font-size:11px}.tile-label{overflow-wrap:anywhere;font-size:12px}.tile-meta{color:#9a9aa5;font-size:11px}.badge{color:#111;text-transform:uppercase;background:#4f9cf9;border-radius:3px;padding:2px 4px;font-size:9px;font-weight:600;position:absolute;top:4px;right:4px}#viewport-pane{flex-direction:column;min-height:0;display:flex}#viewport-canvas-wrap{flex:1;min-height:0;position:relative}#scene{width:100%;height:100%;display:block}#viewport-empty{color:#6a6a75;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#viewport-empty[hidden]{display:none}#viewport-status{background:#0009;border-radius:6px;padding:6px 10px;position:absolute;bottom:12px;left:12px}#viewport-info{color:#9a9aa5;padding:8px 20px;font-size:13px}#character-controls{flex-direction:column;gap:8px;padding:0 20px 16px;display:flex}#character-controls[hidden]{display:none}#clip-label{color:#9a9aa5;margin-right:6px;font-size:12px}#clip-select{color:inherit;font:inherit;background:#232329;border:1px solid #3a3a42;border-radius:6px;padding:4px 8px}#untextured-notice{color:#d9c15a;font-size:12px}#skin-swatches{flex-wrap:wrap;gap:6px;display:flex}.swatch{cursor:pointer;background:#1a1a1e;border:2px solid #3a3a42;border-radius:6px;width:36px;height:36px;padding:0;overflow:hidden}.swatch img{object-fit:cover;width:100%;height:100%}.swatch.active{border-color:#4f9cf9}#licence-footer{color:#6a6a75;border-top:1px solid #2c2c33;flex:none;padding:8px 20px;font-size:12px}#licence-footer a{color:inherit}@media (width<=900px){#layout{grid-template-rows:minmax(200px,40vh) 1fr;grid-template-columns:1fr}#sidebar{border-bottom:1px solid #2c2c33;border-right:none}}#a11y-content{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.curate-list{flex-direction:column;gap:2px;display:flex}.curate-row{text-align:left;color:#c9c9d2;width:100%;font:inherit;cursor:pointer;background:#232329;border:1px solid #0000;border-radius:6px;grid-template-columns:auto 1fr auto;align-items:baseline;gap:8px;padding:6px 8px;font-size:12px;display:grid}.curate-row.is-active{color:#eee;border-color:#4f9cf9}.curate-key{color:#6f6f7d;font-variant-numeric:tabular-nums}.curate-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.curate-value{color:#eee;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;overflow:hidden}.curate-meta{color:#9a9aa5;white-space:nowrap;font-size:11px}#curate-slots .curate-row{cursor:default;grid-template-columns:96px 1fr auto}#curate-output{color:#c9c9d2;resize:vertical;background:#232329;border:1px solid #3a3a42;border-radius:6px;padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}#curate-pane kbd{background:#2c2c33;border:1px solid #3a3a42;border-radius:4px;padding:0 4px;font-family:inherit;font-size:11px}#curate-status{color:#9a9aa5;font-size:13px}#curate-status.error{color:#ff8a8a}#curate-notes{color:#d9c15a;flex-direction:column;gap:4px;font-size:12px;display:flex}.compose-steps{color:#c8c8d2;margin:0 0 .8rem;padding-left:1.2rem;font-size:.78rem;line-height:1.5}.compose-steps b{color:#f0f0f5}#compose-hud{pointer-events:none;background:#0000008c;border-radius:6px;flex-direction:column;gap:2px;padding:6px 10px;font-size:.78rem;display:flex;position:absolute;top:12px;left:12px;right:12px}#compose-hud[hidden]{display:none}.hud-action{color:#f0f0f5}.hud-meta{color:#9a9aa5;font-variant-numeric:tabular-nums}.hud-snap{color:#ffb347;font-variant-numeric:tabular-nums}.hud-snap.is-locked{color:#ffd8a0;font-weight:600}.hud-snap.is-none{color:#9c9184;font-weight:400}.hud-snap.is-nodata{color:#7d8794;font-style:italic;font-weight:400}.compose-list{border:1px solid #2c2c33;border-radius:4px;max-height:13rem;margin:.4rem 0 .6rem;overflow-y:auto}.compose-row{color:#d8d8de;width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #232329;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:baseline;gap:.5rem;padding:.3rem .5rem;font-size:.8rem;display:grid}.compose-row:hover{background:#232329}.compose-row--piece{-webkit-user-select:none;user-select:none;grid-template-columns:auto minmax(0,1fr);align-items:center}.compose-rowtext{flex-direction:column;gap:1px;min-width:0;display:flex}.compose-thumb{object-fit:contain;background:#e9e9ef;border-radius:3px;width:40px;height:40px}.compose-thumb.is-missing{color:#6e6e7a;text-align:center;white-space:pre-line;background:#212128;border:1px dashed #3a3a44;justify-content:center;align-items:center;font-size:.55rem;line-height:1.1;display:flex}.compose-row.is-active{color:#fff;background:#2b3550}.compose-row.is-changed .compose-name:after{content:" ●";color:#f0a04b}.compose-row.is-off-grid .compose-meta{color:#ff5fd2}.compose-rot-note{color:#8a8a94;margin:.2rem 0 .4rem;font-size:.72rem;line-height:1.35}.compose-rot-note.is-override{color:#ff5fd2}.segmented{gap:2px;display:flex}.segmented button{color:#9a9aa4;font:inherit;cursor:pointer;background:#1f1f25;border:1px solid #33333d;flex:1;padding:.3rem 0;font-size:.75rem}.segmented button:first-child{border-radius:4px 0 0 4px}.segmented button:last-child{border-radius:0 4px 4px 0}.segmented button.is-active{color:#fff;background:#2b3550;border-color:#4f9cf9}.compose-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.compose-value,.compose-meta{color:#9a9aa4;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.compose-more{color:#8a8a94;padding:.35rem .5rem;font-size:.75rem;display:block}.compose-selected{color:#b8b8c2;word-break:break-all;flex-direction:column;gap:.15rem;font-size:.75rem;display:flex}.compose-line:first-child{color:#e8e8ee;font-weight:600}.compose-warning{border-left:3px solid;border-radius:2px;margin:.35rem 0;padding:.35rem .5rem;font-size:.75rem;line-height:1.35}.compose-warning.is-warn{color:#f0b8a8;background:#2e1f1c;border-color:#e0603c}.compose-warning.is-note{color:#a8c4e8;background:#1c2430;border-color:#4f9cf9}.compose-budget{color:#9fd08a;background:#1f1f25;border-radius:4px;margin:.5rem 0;padding:.35rem .5rem;font-size:.75rem}.district-report{color:#c4c4ce;background:#1f1f25;border-left:3px solid #4f9cf9;border-radius:4px;flex-direction:column;gap:.15rem;margin:.5rem 0;padding:.45rem .6rem;font-size:.75rem;line-height:1.45;display:flex}.district-report .district-head{color:#e8e8ee;font-weight:600}.district-report .district-figure{color:#9fd08a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.district-report .district-cost{color:#f0b8a8;margin-top:.25rem}.district-report .district-gap{color:#d9c15a}.walk-status{color:#c4c4ce;background:#1f1f25;border-left:3px solid #9fd08a;border-radius:4px;margin:.35rem 0 .5rem;padding:.35rem .55rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}#district-gaps{color:#c9c9d2;resize:vertical;background:#232329;border:1px solid #3a3a42;border-radius:6px;width:100%;margin:.25rem 0 .5rem;padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem}.pane-sub{text-transform:uppercase;letter-spacing:.06em;color:#8a8a94;margin:1rem 0 .2rem;font-size:.8rem}#compose-output{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem}#compose-download{color:#6aa9f5;align-self:center;font-size:.8rem}
