:root{color-scheme:dark;--bg:#151b19;--panel:#202925;--line:#43534a;--text:#f1f5f2;--muted:#b4c1b9;--accent:#73e0c4}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.55 Arial,sans-serif}header,main{max-width:1280px;margin:auto;padding:24px}header{display:flex;gap:24px;border-bottom:1px solid var(--line);align-items:center}header a:first-child{font-weight:700;letter-spacing:.1em;text-decoration:none;color:var(--text)}header a:last-child{margin-left:auto}a{color:var(--accent)}h1{font:500 44px/1.15 Georgia,serif;margin:16px 0}h2{font-size:22px;margin:0 0 12px}p{margin:8px 0 16px;color:var(--muted)}small,.hint{font-size:14px;color:var(--muted)}.availability{padding:12px 18px;border:1px solid var(--line);border-radius:8px;margin:24px 0}.work-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:24px;align-items:start}.sources,#project-area{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:26px;min-width:0}form{display:grid;gap:16px}input,textarea,select{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:12px;font:inherit}label{display:block;font-size:14px}button,.download{padding:13px 18px;border:0;border-radius:6px;background:var(--accent);color:#10271f;font:600 16px Arial;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.secondary,#chat-reload,.remove-material,.add-measure{background:transparent;color:var(--text);border:1px solid var(--line)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.dimensions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}fieldset{padding:0;border:0;min-width:0}legend{font-weight:600;margin:12px 0}details{border-top:1px solid var(--line);padding:16px 0}summary{cursor:pointer;font-weight:600}details>div{margin-top:16px}.permission{display:flex;gap:12px;align-items:start}.permission input{width:20px;flex-shrink:0;margin-top:4px}.material-card{display:grid;gap:10px;margin:12px 0;padding:14px;background:var(--bg);border-radius:8px}.material-preview{display:none;width:100%;max-height:220px;object-fit:contain}.material-preview.visible{display:block}.measure-row{display:grid;grid-template-columns:1fr 100px 40px;gap:8px;margin:12px 0}.archive{margin-top:30px}.job{padding:16px 0;border-bottom:1px solid var(--line)}.job iframe{max-width:100%}.badge{font-size:14px;color:var(--muted);margin-left:12px}.download{display:inline-block;margin-top:12px;text-decoration:none}#chat-context{font-size:14px}#chat-messages{max-height:360px;overflow:auto;overflow-wrap:anywhere;white-space:pre-wrap;margin:16px 0}#chat-messages article{padding:14px;background:var(--bg);border-radius:8px;margin:10px 0}#chat-messages article p{color:var(--text);margin-bottom:0}#chat-preview iframe{width:100%;height:360px;border:0}.result-empty{padding:32px 16px;text-align:center;border:1px dashed var(--line);border-radius:8px;margin:24px 0}.login{max-width:440px}.hidden{display:none!important}@media(max-width:800px){.work-grid{grid-template-columns:1fr}main,header{padding:18px}.sources,#project-area{padding:20px}h1{font-size:36px}}@media(max-width:400px){.dimensions{grid-template-columns:1fr}}
:root{scroll-behavior:smooth}
[hidden]{display:none!important}
.work-grid{grid-template-columns:minmax(0,1fr);max-width:960px;margin:auto}
.sources>details{border:0;padding:0}
.start-area{display:grid;gap:16px;margin:20px 0}
.start-area>button{min-height:52px}
.run-status{padding:22px;background:var(--bg);border:1px solid var(--line);border-radius:10px;margin:24px 0}
.status-heading{display:flex;align-items:center;gap:12px;font-size:20px}
.run-status p{margin:12px 0 6px}
.spinner{width:24px;height:24px;flex:none;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:chuma-spin 1s linear infinite}
@keyframes chuma-spin{to{transform:rotate(360deg)}}
.scene-frame{display:block;width:100%;height:560px;border:1px solid var(--line);border-radius:8px}
.scene-links{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:12px 0}
#render-progress{margin:20px 0;padding:16px;border:1px solid var(--line);border-radius:8px}
#render-progress img{display:block;width:100%;max-height:420px;object-fit:contain}
figcaption{font-size:14px;color:var(--muted);margin-top:12px}
#scene-section{margin-top:28px}
@media(max-width:600px){.scene-frame{height:420px}.scene-links{align-items:stretch;flex-direction:column}.status-heading{font-size:18px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.spinner{animation:none}}
