:root{color-scheme:dark;--bg:#111321;--panel:#1a1c30;--edge:#34354b;--text:#f0edf8;--muted:#aaa8c2;--accent:#c0a4fb;--mint:#a5e2c7;font:15px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 80% 0,#29223e 0,transparent 45%),var(--bg);color:var(--text);min-height:100vh}header{max-width:1056px;margin:auto;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:14px}.brand{color:var(--text);font-size:22px;font-weight:750;text-decoration:none;letter-spacing:-.7px}.brand>span{color:var(--accent);margin-right:5px}.brand small{font-size:13px;color:var(--muted);font-weight:500;letter-spacing:0;margin-left:6px}main{max-width:1000px;margin:10px auto 40px;padding:0 20px}.card{background:var(--panel);border:1px solid var(--edge);border-radius:20px;padding:24px;margin-bottom:20px;box-shadow:0 12px 36px #0002}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--accent);font-weight:700;margin:0 0 10px}h1{font-weight:650;font-size:clamp(27px,6vw,45px);line-height:1.15;letter-spacing:-1.3px;margin:0 0 18px}h2{font-size:19px;margin:0}.hint{font-size:12px;color:var(--muted);overflow-wrap:anywhere}label{display:block;font-size:12px;font-weight:650;margin:16px 0 7px}button,input,textarea,select{font:inherit;border-radius:10px;border:1px solid var(--edge);color:var(--text);background:#25263d;max-width:100%}button{padding:11px 16px;cursor:pointer;font-size:13px;font-weight:600;min-height:44px}button:hover:enabled{border-color:var(--accent)}button:disabled{opacity:.4;cursor:default}.primary{background:var(--accent);color:#20182e;border-color:transparent}.quiet{background:transparent}textarea,input,select{width:100%;padding:11px;outline:none}textarea{resize:vertical;min-height:72px}textarea:focus,input:focus,select:focus,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}select{min-width:0}p{margin:12px 0}details{border-top:1px solid var(--edge);padding-top:15px;margin:18px 0}summary{cursor:pointer;font-size:13px;font-weight:600;min-height:32px}ol{padding-left:22px;color:var(--muted);font-size:13px}li{margin-bottom:9px}.badge{font-size:11px;border:1px solid var(--edge);border-radius:30px;padding:5px 10px;color:var(--muted);white-space:nowrap}.badge.connected{color:var(--mint);border-color:#386c59}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.section-head>div{min-width:0}#modelName{font-size:23px;letter-spacing:-.5px;margin:0 0 10px;overflow-wrap:anywhere}#viewport{background:#121422;min-height:240px;border:1px solid var(--edge);border-radius:12px;overflow:hidden;display:grid;place-items:center}#emptyView{text-align:center;padding:30px}#emptyView>span{font-size:52px;color:var(--muted)}#viewport img{display:block;width:100%;height:auto;object-fit:contain}#viewport img[hidden]{display:none}.view-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.view-actions button{padding:9px 4px;font-size:12px}.scene-row{display:flex;align-items:center;gap:8px;margin-top:12px}.scene-row input,.scene-row select{flex:1;min-width:0}.scene-row button{flex-shrink:0}#messages{min-height:60px;max-height:460px;overflow:auto;margin:16px 0;scroll-behavior:smooth}.message{padding:12px 14px;margin:10px 0;border-radius:12px;background:#24243b;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.message.user{background:#302943;border-left:2px solid var(--accent)}.message.activity{padding:8px 0;background:transparent;color:var(--muted);font-size:12px;border-radius:0}.message.error{border-left:2px solid #edacac}.message .author{display:block;font-size:10px;letter-spacing:1px;color:var(--accent);margin-bottom:4px}.desktop-main{max-width:720px}#pairing{max-width:650px;margin:auto}#answerBox{margin-top:18px}#composerForm .section-head{align-items:flex-end}#composerForm .section-head>div{display:flex;gap:8px}footer{text-align:center;font-size:11px;color:var(--muted);padding:12px 20px 28px}[hidden]{display:none!important}@media(min-width:850px){#workspace{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;align-items:start}}@media(max-width:420px){header{padding:18px 16px}.brand small{display:block;margin:0 0 0 26px}main{padding:0 12px}.card{padding:18px;border-radius:15px}.section-head{gap:8px}.section-head>button{padding:8px 9px}#composerForm .section-head{flex-wrap:wrap}#composerForm .section-head>div{margin-left:auto}.scene-row{flex-wrap:wrap}.scene-row input,.scene-row select{min-width:130px}}
.brand-wrap{display:flex;align-items:center;gap:8px;min-width:0;height:48px}.brand-wrap .brand{line-height:1.1}.brand-wrap .brand small{display:block;margin:4px 0 0;font-size:12px}.pet-mini{width:48px;height:48px;min-height:48px;padding:0;border:0;border-radius:9px;background:transparent;flex:0 0 48px;display:block}.pet-mini canvas{display:block;width:48px;height:48px;image-rendering:pixelated}.pet-mini:hover{background:#c0a4fb0d}.pet-mini:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.pair-qr{display:block;width:min(100%,340px);height:auto;margin:20px auto;background:#fff;image-rendering:pixelated;border-radius:8px}#scanVideo{display:block;width:100%;max-height:360px;object-fit:cover;background:#111;border-radius:12px;margin:12px 0}.legacy{margin-top:24px;font-size:.85rem;opacity:.75}
.capture-status{margin:12px 0;padding:12px;border:1px solid var(--edge);border-radius:10px;background:#24243b}.capture-status>div{display:flex;align-items:center;gap:8px}.capture-status strong{font-size:12px;flex:1}.capture-status progress{display:block;width:100%;height:5px;margin:10px 0;accent-color:var(--accent)}.capture-status p{margin:5px 0 0;font-size:11px}.capture-spinner{width:12px;height:12px;border:2px solid var(--edge);border-top-color:var(--accent);border-radius:50%;animation:capture-spin 1s linear infinite;flex-shrink:0}.capture-status[data-phase="done"] .capture-spinner,.capture-status[data-phase="error"] .capture-spinner{display:none}.capture-status[data-phase="error"]{border-color:#ad7474}@keyframes capture-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.capture-spinner{animation:none}}
.action-feedback{position:sticky;top:8px;z-index:2;background:#28283f;border:1px solid var(--edge);border-radius:10px;padding:10px 14px;font-size:12px;box-shadow:0 6px 20px #0004}.capture-tools,.attachment-tools,.markup-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.attachment-tools{margin:12px 0}.attachment-item{display:flex;gap:8px;justify-content:space-between;border:1px solid var(--edge);padding:10px;border-radius:10px;margin:8px 0;font-size:12px}.attachment-item>div{min-width:0;flex:1}.attachment-item strong,.attachment-item span{display:block;overflow-wrap:anywhere}.attachment-item input{margin-top:6px}.attachment-item button{align-self:flex-start}.markup-sheet{overflow:auto;background:#111;border-radius:10px;margin:12px 0}.markup-sheet canvas{display:block;width:100%;height:auto;touch-action:none}#markupDialog{width:min(92vw,800px);max-height:90vh;overflow:auto;background:var(--panel);color:var(--text);border:1px solid var(--edge);border-radius:16px;padding:18px}#markupDialog::backdrop{background:#000a}.markup-toolbar label{display:flex;align-items:center;gap:8px;margin:0}.markup-toolbar input{padding:2px;width:42px;height:36px}

.install-card{padding:18px 22px}.install-card h2{font-size:18px;margin:0 0 8px}.install-card p{font-size:14px;line-height:1.5}

html[data-install-only="true"] #pairing,html[data-install-only="true"] #workspace,html[data-install-only="true"] #actionFeedback,html[data-install-only="true"] #connectionDiagnostics{display:none!important}

/* Full-screen local image viewer: only the image stage consumes pinch gestures. */
#modelImage{cursor:zoom-in}#modelImage:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
#markupDialog{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;border:0;border-radius:0;padding:0;background:var(--bg);overflow:hidden;overscroll-behavior:contain}
#markupDialog[open]{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:0}
#markupDialog .image-header{padding:calc(8px + env(safe-area-inset-top)) 12px 8px;max-width:none;width:100%;margin:0;gap:8px}
#markupDialog h2{font-size:18px;overflow-wrap:anywhere}#markupDialog button{min-width:44px;min-height:44px;touch-action:manipulation;padding:9px 12px}
.image-controls{padding:0 10px 8px;border-bottom:1px solid var(--edge)}.image-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.image-tools+.image-tools{margin-top:6px}.image-modes{display:flex;gap:3px}.image-modes button[aria-pressed=true]{background:var(--accent);color:#20182e;border-color:var(--accent)}
.image-tools output{font-size:12px;min-width:32px;text-align:center}.image-tools label{display:flex;align-items:center;gap:6px;margin:0;font-size:12px}.image-tools input[type=color]{width:44px;height:44px;padding:3px}.image-tools .pen-width input{width:80px;padding:0;min-height:44px}.image-tools .pen-width output{min-width:14px}
#markupStage{position:relative;min-height:0;overflow:hidden;background:#0b0c15;touch-action:none;overscroll-behavior:none;user-select:none;-webkit-user-select:none;contain:layout paint}
#markupStage[data-mode=draw]{cursor:crosshair}#markupStage[data-mode=move]{cursor:grab}#markupStage:active[data-mode=move]{cursor:grabbing}
#markupSurface{position:absolute;top:0;left:0;transform-origin:0 0;pointer-events:none;will-change:transform}
#markupImage,#markupCanvas{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;touch-action:none;pointer-events:none}#markupImage{object-fit:fill}
#markupDialog .image-footer{padding:8px 12px calc(8px + env(safe-area-inset-bottom));text-align:left;border-top:1px solid var(--edge);background:var(--panel)}
#markupStatus{font-size:12px;color:var(--text);margin:0 0 6px;line-height:1.35;max-height:2.7em;overflow:auto}#markupDialog small{display:block;font-size:11px;color:var(--muted);margin-top:5px}#markupAdd{flex:1;min-width:175px}
.attachment-item .attachment-thumb{width:48px;height:48px;object-fit:contain;align-self:flex-start;border-radius:6px;background:#111321}.attachment-item>div>button{margin-top:6px}
@media(max-height:480px) and (orientation:landscape){#markupDialog .image-header{padding-top:4px;padding-bottom:4px}#markupDialog .image-footer{padding-top:5px}#markupDialog .image-footer small{display:none}.image-controls{padding-bottom:4px}#markupStatus{max-height:1.35em}#markupDialog h2{font-size:15px}}
