/* Room workspace: the landing scene's ink, worn paper, and mechanical edges. */
:root{--room-ink:#e9e7df;--room-muted:#a29f98;--room-line:#3a3935;--room-panel:#101010;--room-dock:380px}
body{background:#080808;color:var(--room-ink)}
body::after{content:"";position:fixed;inset:0;z-index:45;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.83' numOctaves='3' seed='19' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}
.workspace-bar{background:#090909;border-bottom:1px solid #55524c;box-shadow:0 3px 0 #080808,0 4px 0 #242321}
.workspace-brand{color:#eeece5;transform:none}
.workspace-brand span{font-size:9px;color:#a7a39a}
.workspace-tabs{border-radius:2px;background:#0b0b0b;border-color:#494740;padding:3px;gap:4px}
.workspace-tabs button{border-radius:1px;padding:9px 17px;letter-spacing:.04em}
.workspace-tabs button[aria-pressed=true]{background:#e8e5dd;color:#101010;box-shadow:inset 0 -2px 0 #aaa69c}
body main{padding:86px 18px 18px}
body .viewer{background:#09090988;border:1px solid #32312e;box-shadow:inset 0 0 90px #0008}
body.dock-open .viewer{width:calc(100% - var(--room-dock) - 18px)}
body .viewer::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,transparent 45%,#0006 100%);border:9px solid #09090980}
body .viewer::before{content:"";position:absolute;inset:10px;z-index:4;pointer-events:none;background:linear-gradient(#bbb6aa,#bbb6aa) left top/28px 1px no-repeat,linear-gradient(#bbb6aa,#bbb6aa) left top/1px 28px no-repeat,linear-gradient(#bbb6aa,#bbb6aa) right bottom/28px 1px no-repeat,linear-gradient(#bbb6aa,#bbb6aa) right bottom/1px 28px no-repeat}
.cloud-canvas{z-index:1;cursor:grab}
.cloud-canvas:active{cursor:grabbing}
.cloud-state{position:absolute;left:22px;top:18px;z-index:6;margin:0;padding:7px 9px;border:1px solid #55524c;background:#090909c9;color:#aaa69c;font:9px/1 monospace;letter-spacing:.1em;text-transform:uppercase;pointer-events:none}
.cloud-state::before{content:"";display:inline-block;width:5px;height:5px;margin-right:7px;border-radius:50%;background:#aaa69c;box-shadow:0 0 8px #d8d4c8}
.cloud-state[data-ready="true"]{color:#ddd9cf}
.cloud-state[data-ready="true"]::before{background:#eeeae0}
/* The commit graph: a horizontal rail anchored on the RIGHT of the viewer, time running
   left -> right with the newest node at the right edge. Lanes stack on y; they differ by
   stroke dash, never by colour — this page has one accent and it is not spent here. */
.git-log{position:absolute;right:18px;top:52px;bottom:64px;z-index:6;width:min(64%,760px);display:flex;flex-direction:column;gap:8px;pointer-events:none}
.git-bar,.git-strip,.git-panel{pointer-events:auto}
.git-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:7px 9px;border:1px solid #55524c;background:#090909e0;font:9px/1 monospace;letter-spacing:.06em}
.git-log-name{color:#eeece5;text-transform:uppercase;letter-spacing:.12em}
.git-branch{padding:3px 6px;border:1px solid #8a8680;color:#eeece5;letter-spacing:.06em}
.git-log-hint{color:#8a8680;letter-spacing:.04em}
.git-dirty{color:#e0b268;letter-spacing:.04em}
.git-acts{margin-left:auto;display:flex;gap:6px}
.git-add,.git-cmdbtn{padding:6px 8px;border:1px solid #55524c;background:#0b0b0b;color:#eeece5;font:9px/1.2 monospace;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;cursor:pointer}
.git-add:hover,.git-cmdbtn:hover{background:#e8e5dd;color:#101010}
.git-add:disabled{cursor:wait;opacity:.55}

.git-stripwrap{position:relative;flex:none;min-height:0}
.git-stripwrap::before,.git-stripwrap::after{content:"";position:absolute;top:1px;bottom:1px;width:26px;z-index:1;pointer-events:none;opacity:0;transition:opacity .15s}
.git-stripwrap::before{left:1px;background:linear-gradient(90deg,#090909,#09090900)}
.git-stripwrap::after{right:1px;background:linear-gradient(270deg,#090909,#09090900)}
.git-stripwrap[data-more~="left"]::before,.git-stripwrap[data-more~="right"]::after{opacity:1}
.git-strip{flex:none;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;border:1px solid #55524c;background:#090909f2;scrollbar-width:thin;cursor:grab}
.git-strip[data-panning=true]{cursor:grabbing;scroll-behavior:auto}
.git-strip:focus-visible{outline:2px solid #eeeae0;outline-offset:-2px}
/* the lane band sits ABOVE the columns; each dot drops a stem to its own column */
.git-track{position:relative;width:max-content;padding:var(--band,74px) 6px 0}
.git-rails{position:absolute;left:0;top:0;overflow:visible}
.git-track ol{list-style:none;display:flex;margin:0;padding:0}
.git-track li{flex:0 0 150px;min-width:0;background:#0b0b0b}
.git-track li+li{border-left:1px solid #211f1d}
.git-log button[data-sha]{display:grid;gap:2px;width:100%;padding:7px 9px 9px;border:0;background:transparent;color:#c8c3b8;text-align:left;cursor:pointer;font:inherit}
.git-log button[data-sha]:hover{background:#ffffff0d;color:#eeece5}
.git-log button[data-sha]:disabled{cursor:default;opacity:.45}
.git-log button[aria-current=true]{background:#ffffff14;color:#eeece5;box-shadow:inset 0 -2px 0 #eeeae0}
.git-log button[data-compare]{background:#ffffff0a;box-shadow:inset 0 -2px 0 #8a8680}
.git-refs{display:flex;flex-wrap:wrap;gap:3px;min-height:12px}
.git-ref{padding:1px 4px;border:1px solid #55524c;color:#aaa69c;font:8px/1.4 monospace;letter-spacing:.04em;white-space:nowrap}
.git-ref[data-head=true]{background:#e8e5dd;color:#101010;border-color:#e8e5dd}
.git-ref[data-kind=tag]{border-style:dashed}
.git-id{font:9px/1.2 monospace;letter-spacing:.04em;color:#eeece5}
.git-msg{color:#8a8680;font:9px/1.35 Arial,sans-serif;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.git-when{color:#6f6c66;font:8px/1.3 monospace;letter-spacing:.04em}
.git-tip{margin-left:5px;font:8px/1 monospace;letter-spacing:.1em;color:#aaa69c}

.git-edge{fill:none;stroke:#8a8680;stroke-width:2;stroke-linecap:round}
.git-stem{stroke:#55524c;stroke-width:1;stroke-dasharray:2 4}
.git-stem[data-current]{stroke:#eeeae0;stroke-dasharray:none}
.git-dot{fill:#0b0b0b;stroke:#8a8680;stroke-width:2}
.git-dot-g[data-cloud=true] .git-dot{fill:#c8c3b8;stroke:#c8c3b8}
.git-dot-g[data-cloud=false] .git-dot{fill:#0b0b0b;stroke:#55524c}
.git-headdot{fill:#0b0b0b}
.git-dot-g[data-current] .git-dot{fill:#eeeae0;stroke:#eeeae0;r:8}
.git-dot-g[data-compare] .git-dot{fill:#0b0b0b;stroke:#eeeae0;stroke-width:3}

/* the panel: what this node is, what changed between two of them, and the commands */
.git-panel{flex:1 1 auto;min-height:0;width:min(100%,390px);margin-left:auto;overflow:auto;padding:12px 13px 14px;border:1px solid #55524c;background:#070707fa;scrollbar-width:thin}
.git-panel[hidden]{display:none}
.git-p-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.git-p-kicker{margin:0;color:#aaa69c;font:8px/1 monospace;letter-spacing:.2em;text-transform:uppercase}
.git-p-close{border:1px solid #55524c;background:transparent;color:#aaa69c;font:9px/1 monospace;padding:4px 6px;cursor:pointer}
.git-p-close:hover{background:#e8e5dd;color:#101010}
.git-p-title{margin:8px 0 10px;color:#eeece5;font:12px/1.35 Arial,sans-serif;overflow-wrap:anywhere}
.git-p-sub{margin:12px 0 6px;color:#8a8680;font:9px/1.4 monospace;letter-spacing:.04em}
.git-p-body{display:grid;gap:8px}
.git-dim{margin:0;color:#8a8680;font:10px/1.5 Arial,sans-serif}
.git-mono{font:9px/1.45 monospace;letter-spacing:.02em;color:#8a8680;overflow-wrap:anywhere}
.git-facts{display:grid;gap:3px;padding:8px 9px;border:1px solid #302e2b;background:#0d0d0d}
.git-fact{display:flex;gap:10px;align-items:baseline;font:9px/1.5 monospace}
.git-fact-k{flex:0 0 52px;color:#6f6c66;letter-spacing:.1em;text-transform:uppercase}
.git-fact-v{color:#c8c3b8;overflow-wrap:anywhere}
.git-sum{margin:0;display:flex;flex-wrap:wrap;gap:4px 12px}
.git-count{color:#8a8680;font:9px/1.4 monospace;letter-spacing:.06em;text-transform:uppercase}
.git-count b{color:#eeece5;font-size:13px;font-weight:400;margin-right:3px}
.git-sum-2{margin:0;color:#8a8680;font:9px/1.55 monospace;letter-spacing:.02em}
.git-zone{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:8px 0 0;padding-bottom:3px;border-bottom:1px solid #302e2b}
.git-zone .git-mono{color:#eeece5;letter-spacing:.08em}
.git-zone-n{color:#6f6c66;font:8px/1 monospace;letter-spacing:.1em;text-transform:uppercase}
.git-objs{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.git-obj{display:grid;gap:3px;padding:7px 8px;border:1px solid #302e2b;background:#0d0d0d}
.git-obj[data-op=removed]{opacity:.82}
.git-obj-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.git-sw{width:11px;height:11px;flex:none;border:1px solid #55524c;background:#3a3935}
.git-sw[data-unknown=true]{background:repeating-linear-gradient(45deg,#2a2926 0 3px,#3a3935 3px 6px)}
.git-obj-class{color:#eeece5;font:11px/1.2 Arial,sans-serif}
.git-obj-id{color:#6f6c66;font:9px/1.2 monospace;overflow-wrap:anywhere}
.git-badge{margin-left:auto;padding:2px 5px;border:1px solid #55524c;color:#aaa69c;font:8px/1.3 monospace;letter-spacing:.1em}
.git-badge[data-badge=NEW]{border-color:#e8e5dd;background:#e8e5dd;color:#101010}
.git-badge[data-badge=RETURNED]{border-color:#e8e5dd;color:#eeece5}
.git-badge[data-badge=GONE]{border-style:dashed}
.git-obj-how{color:#c8c3b8;font:10px/1.45 Arial,sans-serif}
.git-obj-pose{color:#8a8680;font:8.5px/1.45 monospace;overflow-wrap:anywhere}
.git-obj-line{color:#77746e;font:9px/1.5 Arial,sans-serif}
.git-cloud{margin:6px 0 0;padding-top:7px;border-top:1px solid #302e2b;color:#77746e;font:9px/1.5 Arial,sans-serif}
.git-same{padding:10px 11px;border:1px dashed #55524c;background:#0d0d0d;display:grid;gap:5px}
.git-same-title{margin:0;color:#eeece5;font:12px/1.2 Arial,sans-serif}
.git-same-line{margin:0;color:#8a8680;font:10px/1.5 Arial,sans-serif}

.git-cmd{display:grid;gap:7px;margin-top:10px;padding-top:10px;border-top:1px solid #302e2b}
.git-cmd-chips{display:flex;flex-wrap:wrap;gap:4px}
.git-chip{padding:4px 7px;border:1px solid #55524c;background:transparent;color:#c8c3b8;font:9px/1.2 monospace;cursor:pointer}
.git-chip:hover{background:#e8e5dd;color:#101010}
.git-cmd-line{display:flex;align-items:stretch;border:1px solid #8a8680;background:#060606}
.git-prompt{display:flex;align-items:center;padding:0 4px 0 7px;color:#6f6c66}
.git-cmd-in{flex:1 1 auto;min-width:0;padding:7px 5px;border:0;background:transparent;color:#eeece5;font:10px/1.2 monospace;outline:none}
.git-cmd-line:focus-within{box-shadow:0 0 0 1px #eeeae0}
.git-cmd-go{flex:none;border:0;border-left:1px solid #8a8680;background:#8a8680;color:#101010;font:9px/1 monospace;letter-spacing:.06em;text-transform:uppercase;padding:0 9px;cursor:pointer}
.git-cmd-out{display:grid;gap:6px}
.git-cmd-head{margin:0;color:#eeece5;font:11px/1.35 Arial,sans-serif}
.git-cmd-note{margin:0;color:#8a8680;font:9.5px/1.55 Arial,sans-serif}
.git-cmd-err{margin:0;color:#e0b268;font:9.5px/1.55 Arial,sans-serif}
.git-cmd-ok{margin:0;color:#c8c3b8;font:9.5px/1.55 Arial,sans-serif}
.git-run{justify-self:start;padding:9px 12px;border:0;background:#e8e5dd;color:#101010;font:10px/1 monospace;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.git-run:disabled{cursor:not-allowed;opacity:.45}
.git-run[data-arming=true]{background:repeating-linear-gradient(115deg,#e8e5dd 0 7px,#9b978e 7px 14px)}

@media (max-width:820px){
  .git-log{left:12px;right:12px;top:46px;bottom:58px;width:auto}
  .git-panel{width:100%}
  .git-track li{flex-basis:132px}
}
@media (prefers-reduced-motion:reduce){.git-strip{scroll-behavior:auto}}
.cloud-active #spatial{display:none}
.cloud-active .robot-splat-canvas,.cloud-active .robot-splat-state,.cloud-active .attached-camera-tools{display:none}
.voxel-active .cloud-canvas,.voxel-active .cloud-state,.voxel-active .git-log,.voxel-active .git-panel{display:none}
.camera-current .cloud-canvas,.camera-current .cloud-state,.camera-current .git-log,.camera-current .git-panel{visibility:hidden}
.robot-splat-canvas{z-index:1;opacity:0;transition:opacity .65s ease;cursor:grab}
.robot-splat-canvas.is-ready{opacity:1}
.robot-splat-canvas:active{cursor:grabbing}
.robot-splat-state{position:absolute;left:22px;top:18px;z-index:6;margin:0;padding:7px 9px;border:1px solid #55524c;background:#090909c9;color:#aaa69c;font:9px/1 monospace;letter-spacing:.1em;text-transform:uppercase;pointer-events:none}
.robot-splat-state::before{content:"";display:inline-block;width:5px;height:5px;margin-right:7px;border-radius:50%;background:#aaa69c;box-shadow:0 0 8px #d8d4c8}
.robot-splat-state[data-ready="true"]{color:#ddd9cf}
.robot-splat-state[data-ready="true"]::before{background:#eeeae0}
.attached-camera{position:absolute;inset:0;width:100%;height:100%;z-index:2;object-fit:cover;filter:grayscale(1) contrast(1.08);opacity:0;transition:opacity .5s ease;pointer-events:none}
.camera-current .attached-camera.is-live{opacity:1}
.camera-current .robot-splat-canvas,.camera-current #spatial{visibility:hidden}
.camera-current .robot-splat-state{display:none}
.attached-camera-tools{position:absolute;left:22px;top:52px;z-index:6;display:flex;gap:6px}
.attached-camera-tools button{padding:7px 9px;border:1px solid #55524c;border-radius:1px;background:#090909d9;color:#c8c3b8;font:9px/1 monospace;letter-spacing:.04em;cursor:pointer}
.attached-camera-tools button:hover{background:#e8e5dd;color:#101010}
.attached-camera-tools button:disabled{cursor:wait;color:#77736d}
.voxel-active .robot-splat-canvas,.voxel-active .robot-splat-state{display:none}
.voxel-active .attached-camera,.voxel-active .attached-camera-tools{display:none}
.agent-chat,body #room-settings,body .system-status{border-radius:3px;border-color:#605d55;background:#101010;box-shadow:4px 4px 0 #030303,0 0 0 3px #191817}
.agent-chat{top:86px!important;bottom:18px}
.chat-heading{padding:15px 15px 14px 18px;background:repeating-linear-gradient(135deg,#131313 0 5px,#161615 5px 6px);border-bottom:1px solid #605d55}
.chat-eyebrow{font-size:18px;font-weight:600;letter-spacing:-.035em;color:#eae7df}
.chat-heading button{border:1px solid #49473f;border-radius:2px;color:#d4d0c5}
.chat-heading button:hover{border-color:#c1bdb1;background:#24231f}
#chat-messages{padding:19px 18px 8px}
.chat-message[data-role=user] .message-body{background:#e2dfd5;color:#161616;border:1px solid #fffbed;border-radius:3px 3px 0 3px;box-shadow:3px 3px 0 #000;font-size:12px;line-height:1.6}
.chat-message[data-role=user] header{color:#aaa59a}
.chat-message[data-role=assistant] .message-body{color:#d3cfc5;font-size:12px;line-height:1.7}
.chat-message[data-role=assistant] header span{display:inline-flex;align-items:center;gap:7px;font:500 10px monospace;color:#e0dcd1}
.chat-message[data-role=assistant] header span::before{content:"";width:9px;height:9px;border:1px solid #c5c0b4;border-radius:50%;box-shadow:inset 0 0 0 2px #101010;background:#aaa699}
.chat-message .tool-detail{border-color:#35332d;color:#9c978d}
.agent-chat button{border-radius:2px}
#agent-form{background:#080808;border:1px solid #aaa497;border-radius:3px;box-shadow:0 3px 0 #000;margin:0 12px;padding:6px 6px 6px 11px}
#agent-form:focus-within{border-color:#f3eee1;box-shadow:0 0 0 1px #f3eee133}
#agent-input{color:#e9e5d9;font-size:13px}
#agent-input::placeholder{color:#b0aa9c}
#send-agent{border-radius:1px;background:#e7e2d5;color:#111;width:32px;height:32px}
#send-agent:hover{background:#fff9e8;color:#000}
.chat-suggestions button{background:#151513;color:#c1bbaf;border:1px solid #666154;border-radius:2px}
.chat-more{padding:10px 15px 13px}.chat-more>summary{color:#b6afa0;letter-spacing:.03em}
body .viewer-bottom{bottom:18px;left:22px;right:22px;z-index:6}
.controls button{border-color:#625e53;background:#0b0b0b;border-radius:1px!important}
.controls button[aria-pressed=true]{background:#ded9cc;color:#111}
@media(max-width:1000px) and (min-width:761px){:root{--room-dock:350px}}
@media(max-width:760px){body main{padding:108px 12px 12px}.workspace-bar{height:94px}.workspace-tabs button{padding:7px 8px}.agent-chat{top:108px!important;bottom:12px}body .viewer-bottom{left:18px;right:18px;bottom:15px}.robot-splat-state,.cloud-state{left:18px;top:16px}.attached-camera-tools{left:18px;top:50px;flex-direction:column;align-items:flex-start}.git-log{left:12px;right:12px;top:70px;bottom:58px;width:auto}.git-track li{flex-basis:126px}.git-panel{width:100%}}

/* Actual 3D structure is a fixed background, never a column or an overlay on controls. */
canvas.room-frame{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;cursor:default;touch-action:auto}
body main{position:relative;z-index:1}
