:root{--bg:#f6f7f9;--surface:#fff;--text:#1c2130;--muted:#667085;--border:#dde1e8;--accent:#4f6df5;--accent-text:#fff;--danger:#c43d3d;--ok:#2f8a57;--warn:#b7791f;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#12151c;--surface:#1b1f29;--text:#e8ebf1;--muted:#98a2b3;--border:#2c3240;--accent:#7189ff;--danger:#ef6b6b;--ok:#5cc48a;--warn:#e0a84a}}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,h3{margin:0}h1{font-size:1.4rem}h2{font-size:1rem}a{color:var(--accent)}button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:6px 12px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}button.danger{color:var(--danger)}input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;min-width:0;padding:6px 10px}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--danger)}.page{max-width:880px;margin:0 auto;padding:24px 16px}.page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.back-link{text-decoration:none}.notice{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:10px;padding:20px;display:flex}.notice p{margin:0}.room-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.room-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:14px 16px;text-decoration:none;display:flex}.room-card:hover{border-color:var(--accent)}.room-name{font-weight:600}.room-meta{color:var(--muted);align-items:center;gap:10px;font-size:.85rem;display:flex}.badge{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:.75rem}.badge-ready{color:var(--ok);border-color:currentColor}.badge-failed{color:var(--danger);border-color:currentColor}.badge-processing,.badge-uploaded{color:var(--warn);border-color:currentColor}.room-page{flex-direction:column;height:100dvh;padding:16px;display:flex}.room-page .page-header{justify-content:flex-start}.room-layout{flex:1;grid-template-columns:1fr 300px;gap:16px;min-height:0;display:grid}.room-stage{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);flex:1;min-height:360px;position:relative;overflow:hidden}.room-stage>.notice{border:none}.room-sidebar{flex-direction:column;gap:12px;display:flex;overflow-y:auto}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;padding:14px;display:flex}.panel p{margin:0}.stats{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;margin:0;display:grid}.stats dt{color:var(--muted);font-size:.75rem}.stats dd{margin:0;font-size:1.2rem;font-weight:600}.share-row{gap:6px;display:flex}.share-row input{flex:1}.button-row{gap:8px;display:flex}@media (width<=760px){.room-page{height:auto;padding:12px 16px}.room-layout{grid-template-columns:1fr}.room-stage{height:70dvh}}.viewer{position:absolute;inset:0}.viewer-toolbar{pointer-events:none;flex-wrap:wrap;gap:6px;display:flex;position:absolute;top:10px;left:10px;right:10px}.viewer-toolbar>*{pointer-events:auto}.viewer-toolbar button{background:color-mix(in srgb, var(--surface) 90%, transparent);font-size:.85rem}.viewer-toolbar button[aria-pressed=true]{background:var(--accent)}.segmented{display:flex}.segmented button{border-radius:0}.segmented button:first-child{border-radius:8px 0 0 8px}.segmented button:last-child{border-radius:0 8px 8px 0}.segmented button+button{border-left:none}.viewer-labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.dimension-label{color:#fff;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;background:#1c2130cc;border-radius:6px;padding:1px 6px;font-size:11px;font-weight:600;position:absolute;top:0;left:0}.selection-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:200px;padding:12px 14px;position:absolute;bottom:10px;left:10px;box-shadow:0 4px 16px #00000026}.selection-panel header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.selection-panel h3{font-size:.95rem}.selection-panel dl{gap:4px;margin:0;display:grid}.selection-panel dl>div{justify-content:space-between;gap:16px;font-size:.85rem;display:flex}.selection-panel dt{color:var(--muted)}.selection-panel dd{margin:0}.icon-button{background:0 0;border:none;padding:0 6px;font-size:1.2rem;line-height:1}.measure-field{border-top:1px solid var(--border);gap:6px;margin-top:10px;padding-top:10px;display:grid}.measure-field label{justify-content:space-between;align-items:center;gap:8px;font-size:.85rem;display:flex}.measure-field input{width:7em}.measure-actions{justify-content:flex-end;gap:6px;display:flex}.measure-field p{margin:0}.page-header-start{justify-content:flex-start}.header-link{margin-left:auto}.table-scroll{margin-top:16px;overflow-x:auto}.accuracy-table{border-collapse:collapse;width:100%;font-size:.9rem}.accuracy-table th,.accuracy-table td{text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 10px}.accuracy-table th:first-child,.accuracy-table td:first-child{text-align:left;white-space:normal}.accuracy-table th{color:var(--muted);font-size:.75rem;font-weight:600}.walk-hint{color:#fff;white-space:nowrap;pointer-events:none;background:#1c2130cc;border-radius:999px;margin:0;padding:4px 12px;font-size:.8rem;animation:.6s 6s forwards walk-hint-fade;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}@keyframes walk-hint-fade{to{opacity:0}}.joystick{touch-action:none;-webkit-user-select:none;user-select:none;background:#1c213040;border:2px solid #fff9;border-radius:50%;place-items:center;width:128px;height:128px;display:grid;position:absolute;bottom:20px;right:20px}.joystick-knob{pointer-events:none;background:#ffffffe6;border-radius:50%;width:40px;height:40px;box-shadow:0 2px 6px #0000004d}
