@import url("https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@100..125,400..700&family=Noto+Serif+TC:wght@500;700&family=Noto+Sans+TC:wght@400;500;700&display=swap");

/* The ArchCo look over style.css. Development and production show the same pages (2026-10-20): every page carries
   data-app-mode="production" on <html> and app-config.js sets it to "production" in both modes, so these selectors
   always apply; the attribute names the look, not the server mode (window.DXF_APP_MODE, read only by site-nav.js). */
html[data-app-mode="production"] {
  /* The ArchCo palette and typography: every page (library, workspace, search, upload) draws with these tokens. */
  --bg:#05080d; --panel:#0b111a; --panel-2:#101a27; --panel-solid:#0b111a;
  --line:rgba(255,255,255,.16); --line-2:#475563;
  --ink:#fff; --ink-2:#c3ccd6; --muted:#9caab9; --dim:#6f7c89;
  --accent:#9fc0ec; --accent-2:#c7905b; --accent-soft:rgba(159,192,236,.1);
  --ok:#a9c5bd; --warn:#e2b98e; --err:#dda79e; --run:#9fc0ec;
  --paper:#f3f2ee; --paper-2:#fbfaf6; --navy:#1f3a5c; --copper:#c7905b;
  --serif:'Noto Serif TC','Noto Serif CJK TC','Songti TC',serif;
  --sans:'Noto Sans TC','Noto Sans CJK TC','PingFang TC','Microsoft JhengHei',sans-serif;
  --latin:'Archivo','Helvetica Neue',Arial,sans-serif;
  --radius:0px; --radius-sm:0px; --shadow:none; --shadow-soft:none; --shadow-pop:0 24px 90px #0007;
  color-scheme:dark; scroll-padding-top:100px;
}
[data-app-mode="production"] :focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:-80px; left:24px; z-index:200; padding:12px; background:#fff; color:var(--bg); }
.skip-link:focus { top:12px; }
.studio-header { display:flex; align-items:center; justify-content:space-between; gap:30px; height:88px; padding:0 clamp(20px,4.4vw,64px); border-bottom:1px solid var(--line); background:var(--bg); }
.studio-brand { display:flex; flex-direction:column; gap:7px; color:var(--ink); white-space:nowrap; }
.studio-wordmark { font:600 21px/1 var(--latin); font-stretch:125%; letter-spacing:.62em; }
.studio-tagline { font:9.5px/1 var(--latin); font-stretch:125%; letter-spacing:.3em; color:var(--dim); }
.studio-nav { display:flex; align-self:stretch; gap:40px; }
.studio-nav a { display:flex; align-items:center; gap:12px; color:var(--muted); border-bottom:2px solid transparent; padding:2px 4px 0; font-size:14px; }
.studio-nav a[aria-current="page"] { color:var(--ink); border-color:var(--accent); }
.studio-nav a:hover { color:var(--ink); }
.studio-nav a span { font-family:var(--mono); font-size:10px; color:var(--muted); }
.studio-edition { color:var(--muted); font:10px var(--latin); letter-spacing:.2em; }
.library-main { max-width:1740px; margin:auto; padding:0 4.2%; }
.library-hero { display:flex; justify-content:space-between; align-items:center; gap:48px; padding:62px 0 54px; border-bottom:1px solid var(--line); }
.eyebrow { color:var(--accent); font:11px var(--latin); letter-spacing:.24em; margin:0 0 22px; display:flex; align-items:center; gap:10px; }
.eyebrow>span { width:36px; height:1px; background:var(--copper); }
.library-hero h1 { font-family:var(--serif); font-weight:700; font-size:clamp(25px,2.65vw,42px); letter-spacing:.07em; margin:0; line-height:1.4; }
.hero-en { font:500 clamp(15px,1.5vw,21px)/1.5 var(--latin); color:var(--accent); margin:10px 0 19px; letter-spacing:.16em; }
.hero-description { color:var(--muted); font-size:12px; letter-spacing:.025em; margin:0; }
.hero-index { width:290px; flex-shrink:0; border-left:1px solid var(--line); padding-left:34px; }
.index-caption { font:10px var(--latin); letter-spacing:.2em; color:var(--muted); }
.collection-numbers { display:flex; gap:40px; margin:22px 0 25px; }
.collection-numbers div { display:flex; flex-direction:column; gap:8px; }
.collection-numbers strong { font:500 46px/1 var(--latin); font-variant-numeric:tabular-nums; }
.collection-numbers span { color:var(--muted); font-size:11px; }
.workspace-link { display:flex; justify-content:space-between; font-size:11px; padding-top:16px; border-top:1px solid var(--line); color:var(--accent); }
.workspace-link span { font-size:18px; }
.collection-heading { display:flex; justify-content:space-between; align-items:center; margin:32px 0 22px; gap:12px; }
.collection-heading h2 { font-family:var(--serif); font-size:20px; font-weight:700; margin:0; letter-spacing:.05em; }
.collection-heading h2 span { font:9px var(--mono); letter-spacing:.12em; color:var(--muted); margin-left:16px; }
#collection-status { font-size:10px; color:var(--muted); }
.library-toolbar { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.library-search { display:flex; align-items:center; gap:12px; padding:0 14px; height:42px; border:1px solid var(--line); background:var(--panel); flex:1; min-width:200px; }
.library-search>span { font:25px Georgia,serif; color:var(--muted); }
.library-search input { width:100%; min-width:0; background:transparent; color:var(--ink); border:0; font:12px var(--sans); outline:none; }
.library-search:focus-within { border-color:var(--accent); }
.library-search input::placeholder { color:var(--muted); }
.bedroom-filters { display:flex; gap:3px; border:1px solid var(--line); padding:4px; height:42px; }
.bedroom-filters button { background:transparent; border:0; padding:0 14px; color:var(--muted); font-size:11px; cursor:pointer; white-space:nowrap; }
.bedroom-filters button[aria-pressed="true"] { background:#fff; color:#15181c; }
.filter-select select { height:42px; max-width:170px; border:1px solid var(--line); border-radius:0; background:var(--panel); color:var(--ink-2); font:11px var(--sans); padding:0 28px 0 12px; cursor:pointer; }
.filter-summary { display:flex; align-items:center; gap:14px; margin:19px 0; min-height:20px; font-size:11px; color:var(--muted); }
.collection-note { margin-left:auto; font-size:10px; }
.text-button { padding:0; background:none; border:0; color:var(--accent); font-size:11px; cursor:pointer; }
.unit-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.unit-card { min-width:0; background:#202420; border:1px solid var(--line); transition:border-color .18s,transform .18s; }
.unit-card:hover { border-color:#7e8a72; transform:translateY(-3px); }
.unit-card-main { width:100%; display:block; text-align:left; padding:0; background:none; border:0; cursor:pointer; }
.unit-preview { position:relative; height:244px; padding:19px; display:flex; align-items:center; justify-content:center; background:var(--paper); overflow:hidden; }
.unit-preview::before,.unit-preview::after { content:""; position:absolute; width:9px; height:9px; border-color:#6f7c89; opacity:.45; pointer-events:none; }
.unit-preview::before { left:11px; top:11px; border-left:1px solid; border-top:1px solid; }
.unit-preview::after { right:11px; bottom:11px; border-right:1px solid; border-bottom:1px solid; }
.unit-preview img { display:block; width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; }
.plan-fallback { text-align:center; font-size:12px; color:#6b6f75; line-height:1.8; }
.unit-ref { position:absolute; top:12px; right:13px; font:9px var(--mono); letter-spacing:.06em; color:#1f3a5c; background:#f3f2eeee; padding:4px 6px; }
.unit-info { padding:18px 18px 15px; }
.unit-title-row { display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.unit-title-row h3 { font-family:var(--serif); font-size:20px; font-weight:500; letter-spacing:.02em; margin:0; }
.unit-title-row>span { color:var(--muted); font-size:15px; }
.unit-source { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin:6px 0 18px; color:var(--muted); font:10px var(--mono); }
.unit-measures { display:flex; justify-content:space-between; align-items:baseline; gap:8px; font-size:12px; color:var(--ink-2); }
.unit-measures strong { font:16px var(--mono); color:var(--ink); }
.unit-measures small { font-size:10px; margin-left:4px; color:var(--muted); }
.unit-actions { display:flex; align-items:center; border-top:1px solid var(--line); margin:0 18px; padding:12px 0; gap:7px; }
.unit-actions button { font:10px var(--mono); color:var(--ink-2); border:1px solid var(--line-2); background:transparent; padding:7px 12px; cursor:pointer; }
.unit-actions button:hover { color:var(--accent); border-color:var(--accent); }
.unit-actions button:disabled { opacity:.4; cursor:not-allowed; }
.unit-actions>span { margin-left:auto; color:var(--muted); font:10px var(--mono); }
.library-pagination { display:flex; justify-content:center; align-items:center; gap:30px; padding:40px 0 8px; font:11px var(--mono); color:var(--muted); }
.library-pagination button { background:transparent; color:var(--ink-2); padding:10px 15px; border:1px solid var(--line); cursor:pointer; font-size:12px; }
.library-pagination button:disabled { opacity:.3; cursor:default; }
.library-empty { text-align:center; padding:75px 24px; border:1px dashed var(--line); color:var(--muted); }
.library-empty h3 { font-weight:450; color:var(--ink); }
.library-empty p { font-size:12px; }
.library-empty button { padding:10px 18px; background:#fff; color:var(--bg); border:0; margin-top:10px; cursor:pointer; }
.unit-skeleton { height:390px; border:1px solid var(--line); background:linear-gradient(100deg,#0b111a 30%,#162333 50%,#0b111a 70%); background-size:300% 100%; animation:shimmer 2s infinite; }
.library-footer { display:flex; gap:20px; justify-content:space-between; border-top:1px solid var(--line); margin-top:55px; padding:24px 0 32px; color:var(--muted); font:9px var(--mono); letter-spacing:.08em; }
.unit-dialog { color:var(--ink); background:var(--bg); padding:0; border:1px solid var(--line-2); border-radius:0; width:min(1160px,94vw); max-height:90vh; box-shadow:0 30px 100px #0008; }
.unit-dialog::backdrop { background:#05080dbb; backdrop-filter:blur(5px); }
.detail-header { display:flex; align-items:center; justify-content:space-between; padding:25px 30px; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:2; background:var(--bg); }
.detail-header .eyebrow { margin:0 0 8px; font-size:9px; }
.detail-header h2 { margin:0; font-family:var(--serif); font-weight:700; font-size:25px; }
.dialog-close { width:38px; height:38px; font-size:25px; background:none; border:1px solid var(--line); color:var(--ink); cursor:pointer; }
.detail-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:30px; padding:30px; }
.detail-plan { padding:25px; height:440px; background:var(--paper); display:grid; grid-template:minmax(0,1fr) / minmax(0,1fr); place-items:center; overflow:hidden; }
.detail-plan img { height:100%; width:100%; min-height:0; object-fit:contain; mix-blend-mode:multiply; }
.detail-plan-caption { display:flex; justify-content:space-between; padding:12px 0; color:var(--muted); font-size:11px; }
.detail-buttons { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 20px; }
.detail-buttons button,.detail-buttons a { background:var(--panel-2); color:var(--ink); border:1px solid var(--line-2); padding:10px 15px; cursor:pointer; font-size:12px; }
.detail-buttons button:first-child { background:#fff; color:var(--bg); border-color:var(--accent); }
.detail-buttons button:disabled { opacity:.4; cursor:default; }
.detail-meta { margin:0; display:grid; gap:0; font-size:12px; }
.detail-meta>div { display:flex; justify-content:space-between; gap:20px; padding:12px 0; border-bottom:1px solid var(--line); }
.detail-meta dt { color:var(--muted); flex-shrink:0; }
.detail-meta dd { margin:0; text-align:right; overflow-wrap:anywhere; }
.detail-section-title { display:flex; justify-content:space-between; align-items:center; margin:0 0 18px; font-size:14px; font-weight:500; }
.topology-status { color:var(--accent); font-size:10px; border:1px solid var(--line-2); padding:5px 8px; }
.topology-graph { background:#070b11; border:1px solid var(--line); padding:10px; }
.topology-graph svg { display:block; width:100%; min-height:200px; max-height:420px; }
.topology-legend { display:flex; gap:15px; color:var(--muted); font-size:10px; padding:10px 0 20px; }
.topology-legend span:first-child { color:var(--accent); }
.room-list { display:grid; grid-template-columns:1fr 1fr; gap:0 16px; margin-bottom:20px; }
.room-row { display:flex; justify-content:space-between; gap:10px; border-bottom:1px solid var(--line); padding:11px 0; font-size:11px; }
.room-row small { font:9px var(--mono); color:var(--muted); margin-right:7px; }
.room-row>span:last-child { color:var(--muted); white-space:nowrap; }
.detail-notes { font-size:11px; color:var(--muted); line-height:1.8; }
.detail-notes summary { cursor:pointer; color:var(--ink-2); }
.detail-notes ul { padding-left:18px; }
.detail-loading { padding:70px 30px; text-align:center; color:var(--muted); }
.library-toast { position:fixed; z-index:100; bottom:28px; left:50%; transform:translateX(-50%); padding:14px 22px; background:var(--panel-2); color:var(--ink); border:1px solid var(--line-2); box-shadow:var(--shadow-pop); }
/* Outline workspace: preserve all existing drawing and fitting interactions. */
[data-app-mode="production"] .ot-page .page { padding:20px 24px; }
.workspace-intro { display:flex; align-items:center; justify-content:space-between; gap:24px; margin:0 0 20px; }
.workspace-intro h1 { margin:0 0 6px; font-family:var(--serif); font-size:26px; font-weight:700; letter-spacing:.06em; }
.workspace-intro p { color:var(--muted); font-size:11px; margin:0; }
.workspace-steps { display:flex; gap:26px; color:var(--muted); font-size:11px; }
.workspace-steps span { display:flex; align-items:center; gap:8px; }
.workspace-steps b { font:10px var(--mono); border:1px solid var(--line-2); padding:6px; color:var(--accent); }
[data-app-mode="production"] .ot-body { grid-template-columns:226px minmax(0,1fr) 300px; height:calc(100dvh - 248px); min-height:590px; gap:14px; }
[data-app-mode="production"] .ot-tools,[data-app-mode="production"] .ot-side { gap:16px; padding:16px; }
[data-app-mode="production"] .ot-dxf { min-width:0; }
[data-app-mode="production"] .ot-dxf-row { display:grid; grid-template-columns:minmax(0,1fr); }
[data-app-mode="production"] .ot-dxf-pick { min-width:0; width:100%; }
[data-app-mode="production"] .ot-dxf-units { justify-content:space-between; white-space:nowrap; }
[data-app-mode="production"] .ot-dxf-units select { min-width:0; width:88px; max-width:100%; }
[data-app-mode="production"] .ot-tools .section-title::before,[data-app-mode="production"] .ot-side .section-title::before { display:none; }
[data-app-mode="production"] .btn-primary { background:#fff; color:#15181c; border-radius:0; box-shadow:none; }
[data-app-mode="production"] .btn,[data-app-mode="production"] .ot-tool,[data-app-mode="production"] .ot-scale,[data-app-mode="production"] .ot-mode { border-radius:0; }
[data-app-mode="production"] .ot-tool.active { background:var(--accent-soft); border-color:var(--accent); box-shadow:none; }
[data-app-mode="production"] .ot-tool-hint { font-size:10px; }
[data-app-mode="production"] .ot-blockers li { background:#241d17; color:#e2b98e; border-color:#674b32; border-radius:0; }
[data-app-mode="production"] .ot-ready { background:#152725; color:#a9c5bd; border-color:#3c5f57; border-radius:0; }
[data-app-mode="production"] .ot-canvas { background:var(--paper); --ink:#15181c; --ink-2:#353a40; --line:#d5d1c7; --line-2:#a4afba; --accent:#1f3a5c; --accent-soft:#e4eaf1; --muted:#6b6f75; --panel:#fbfaf6; --panel-solid:#fbfaf6; --panel-2:#f3f2ee; color-scheme:light; }
[data-app-mode="production"] .ot-side>.ot-legend { display:none; }
.workspace-details { border-top:1px solid var(--line); padding-top:12px; }
.workspace-details summary { font-size:11px; color:var(--muted); cursor:pointer; }
.workspace-details .ot-stats { margin:14px 0; }
.workspace-details .ot-foot { font-size:10px; }
[data-app-mode="production"] .workspace-details .ot-scale { margin-top:12px; }
[data-app-mode="production"] .ot-stats>div:first-child,[data-app-mode="production"] .ot-stats>div:nth-child(4) { display:none; }
[data-app-mode="production"] .ps-overlay { color-scheme:light; }
[data-app-mode="production"] .ot-db-chip { height:auto; font-size:10px; background:none; padding:8px 0; border:0; }
[data-app-mode="production"] .ot-card,[data-app-mode="production"] .ot-fit-status { border-radius:0; }
/* Light result cards need their own palette inside the dark workspace. */
[data-app-mode="production"] .ot-fit-status {
  --ink:#203e34; --ink-2:#34574a; --muted:#526b60; --dim:#576c61;
  --accent:#285c48; --accent-soft:#deebe3;
  --panel:#f7faf8; --panel-2:#f7faf8; --panel-solid:#f7faf8;
  --line:#c4d6cc; --line-2:#92afa0; --err:#9b3d30;
  color-scheme:light;
  color:var(--ink);
  background:#edf5f1;
  border-color:var(--line-2);
}
[data-app-mode="production"] .ot-fit-status p { color:var(--ink-2); }
[data-app-mode="production"] .ot-fit-status .hint { color:var(--muted); }
[data-app-mode="production"] .ot-fit-status summary { color:var(--accent); }
[data-app-mode="production"] .ot-fit-status summary:hover { color:var(--ink); }
[data-app-mode="production"] .ot-fit-status .btn {
  color:var(--accent); background:var(--panel); border-color:var(--line-2);
}
[data-app-mode="production"] .ot-fit-status .btn:hover:not(:disabled) {
  background:var(--accent-soft); border-color:var(--accent);
}
[data-app-mode="production"] .ot-fit-status .btn-primary {
  color:#fff; background:var(--accent);
}
[data-app-mode="production"] .ot-fit-status .btn-primary:hover:not(:disabled) { background:#204b3b; }
[data-app-mode="production"] .ot-fit-status .btn:disabled,
[data-app-mode="production"] .ot-fit-status .btn-primary:disabled {
  opacity:1; color:var(--dim); background:#e3ebe6; border-color:var(--line);
}
[data-app-mode="production"] .ot-modal .ot-pane-box { background:var(--paper); }
[data-app-mode="production"] .ot-modal .ot-pane-foot { color:var(--muted); }
@media(min-width:1650px) { .unit-preview { height:280px; } }
@media(max-width:1200px) { .unit-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .studio-edition { display:none; } .unit-preview { height:230px; } [data-app-mode="production"] .ot-body { grid-template-columns:210px minmax(0,1fr); height:auto; } [data-app-mode="production"] .ot-side { grid-column:1/-1; } [data-app-mode="production"] .ot-canvas-panel { height:65vh; } .workspace-steps { gap:14px; } }
@media(max-width:850px) { .studio-header { height:72px; gap:14px; } .studio-nav { gap:22px; } .studio-nav a span { display:none; } .library-hero { padding:38px 0; gap:24px; } .hero-index { width:210px; padding-left:22px; } .collection-numbers { gap:25px; } .collection-numbers strong { font-size:36px; } .unit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; } .collection-heading h2 span { display:none; } .detail-layout { grid-template-columns:1fr; padding:22px; } .detail-plan { height:380px; } .workspace-steps { display:none; } }
@media(max-width:560px) { .studio-header { padding:0 20px; } .studio-nav { gap:17px; } .studio-nav a { font-size:12px; } .library-main { padding:0 20px; } .library-hero { flex-direction:column; align-items:stretch; gap:28px; } .hero-index { border-left:0; border-top:1px solid var(--line); padding:22px 0 0; width:100%; } .index-caption { display:none; } .collection-numbers { margin:0 0 18px; gap:50px; } .collection-numbers div { flex-direction:row; align-items:baseline; } .collection-numbers strong { font-size:32px; } .hero-description { font-size:11px; line-height:1.8; } .library-search { flex-basis:100%; } .bedroom-filters { width:100%; justify-content:space-between; } .bedroom-filters button { padding:0 15px; } .filter-select { flex:1; min-width:0; } .filter-select select { width:100%; max-width:none; padding:0 10px; font-size:10px; } .collection-note { display:none; } .unit-grid { grid-template-columns:minmax(0,1fr); gap:22px; } .unit-preview { height:280px; } .library-footer { flex-wrap:wrap; font-size:8px; } .library-footer span:last-child { display:none; } .detail-header { padding:20px; } .detail-plan { height:300px; } .room-list { grid-template-columns:1fr; } [data-app-mode="production"] .ot-page .page { padding:20px 14px; } [data-app-mode="production"] .ot-body { grid-template-columns:minmax(0,1fr); } [data-app-mode="production"] .ot-tool-list { grid-template-columns:1fr 1fr; } [data-app-mode="production"] .ot-canvas-panel { min-height:420px; height:60vh; } }
/* Search shares the archive palette; drawing previews retain their paper background. */
[data-app-mode="production"] .ts-page .page { max-width:1240px; padding:32px 32px 24px; }
[data-app-mode="production"] .search-intro { margin-bottom:26px; }
[data-app-mode="production"] .workspace-intro .eyebrow { margin:0 0 12px; font-size:9px; color:var(--accent); }
[data-app-mode="production"] .ts-chat { max-width:none; height:calc(100dvh - 286px); min-height:480px; border-radius:0; }
[data-app-mode="production"] .ts-log { padding:26px 28px 16px; gap:20px; }
[data-app-mode="production"] .ts-empty { gap:18px; }
[data-app-mode="production"] .ts-empty h3 { font-family:var(--serif); font-size:25px; font-weight:700; letter-spacing:.04em; }
[data-app-mode="production"] .ts-empty p { font-size:12px; line-height:1.9; }
[data-app-mode="production"] .ts-empty-icon { border:1px solid var(--line-2); border-radius:0; width:60px; height:60px; }
[data-app-mode="production"] .ts-examples { gap:10px; }
[data-app-mode="production"] .ts-ex { border-radius:0; font-size:12px; padding:10px 14px; }
[data-app-mode="production"] .ts-msg.user .ts-bubble { color:var(--ink); border-color:var(--line-2); background:var(--accent-soft); }
[data-app-mode="production"] .ts-bubble { border-radius:0; }
[data-app-mode="production"] .ts-bubble.err { color:#dda79e; background:#271b1b; border-color:#714943; }
[data-app-mode="production"] .ts-opt,
[data-app-mode="production"] .ts-card { border-radius:0; padding:14px; }
[data-app-mode="production"] .ts-opt:hover,
[data-app-mode="production"] .ts-card:hover { border-color:var(--accent); box-shadow:none; }
[data-app-mode="production"] .ts-thumb { border-radius:0; background:var(--paper); }
[data-app-mode="production"] .ts-thumb img { mix-blend-mode:multiply; }
[data-app-mode="production"] .ts-card-with-preview { display:flex; flex-direction:column; cursor:default; }
[data-app-mode="production"] .ts-card-main { display:grid; align-content:start; gap:8px; width:100%; min-width:0; padding:0; border:0; background:none; color:inherit; text-align:left; cursor:pointer; }
[data-app-mode="production"] .ts-card-actions { margin-top:auto; padding-top:12px; border-top:1px solid var(--line); }
[data-app-mode="production"] .ts-card-preview { width:100%; justify-content:center; font-size:12px; }
[data-app-mode="production"] .ts-card-preview[aria-busy="true"] { opacity:.6; cursor:wait; }
[data-app-mode="production"] .ts-outline { stroke:#1f3a5c; }
[data-app-mode="production"] .ts-dock { padding:20px 28px; gap:12px; }
[data-app-mode="production"] .ts-textarea { border-radius:0; background:var(--bg); padding:12px 14px; }
[data-app-mode="production"] .ts-textarea:focus { box-shadow:none; }
[data-app-mode="production"] .ts-send { height:46px; }
[data-app-mode="production"] .ts-dock-foot .btn { border-radius:0; }
[data-app-mode="production"] .ts-modal-box { border-radius:0; }
[data-app-mode="production"] .ts-stage { --ink:#15181c; --ink-2:#353a40; --accent:#1f3a5c; --panel-solid:#fbfaf6; --line:#d5d1c7; --muted:#6b6f75; color-scheme:light; background:var(--paper); }
[data-app-mode="production"] .ts-cl.ok .ts-cl-mark { color:var(--ok); }
@media(max-width:560px) {
  .studio-header { height:auto; min-height:72px; flex-wrap:wrap; gap:8px 16px; padding-top:12px; }
  .studio-nav { flex:1; justify-content:flex-end; gap:12px; min-height:48px; }
  .studio-nav a { white-space:nowrap; padding:2px 0 0; }
  [data-app-mode="production"] .ts-page .page { padding:24px 14px 16px; }
  [data-app-mode="production"] .search-intro { align-items:flex-start; flex-direction:column; gap:14px; }
  [data-app-mode="production"] .ts-chat { min-height:500px; height:calc(100dvh - 290px); }
  [data-app-mode="production"] .ts-log { padding:20px 14px 12px; }
  [data-app-mode="production"] .ts-dock { padding:14px; }
  [data-app-mode="production"] .ts-empty h3 { font-size:19px; }
  [data-app-mode="production"] .ts-examples { display:grid; }
}
@media(prefers-reduced-motion:reduce) { .unit-card { transition:none; } .unit-skeleton { animation:none; } }

/* Blueprint surfaces and ruled, square controls from the product page. */
[data-app-mode="production"] body {
  background-color:var(--bg);
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px);
  background-size:80px 80px,80px 80px,16px 16px,16px 16px;
}
.studio-header { position:relative; z-index:30; background:#05080df2; }
.studio-nav a { font-size:15px; color:#dce2e9; }
.studio-nav a[aria-current="page"] { border-color:var(--copper); }
.studio-nav a span { font-family:var(--latin); letter-spacing:.06em; }
.library-hero { padding:64px 0 52px; }
.library-hero h1 { line-height:1.5; }
.hero-description { font-size:14px; line-height:1.9; color:var(--ink-2); }
.hero-index { border-color:var(--copper); }
.collection-numbers strong { color:var(--accent); }
.collection-heading { margin-top:34px; }
.library-search,.filter-select select,.bedroom-filters { background:var(--panel); }
.library-search input,.filter-select select,.bedroom-filters button { font-size:12px; }
.unit-preview,.detail-plan { background-color:var(--paper); background-image:linear-gradient(rgba(21,24,28,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(21,24,28,.045) 1px,transparent 1px); background-size:24px 24px; }
[data-app-mode="production"] .unit-card { padding:0; gap:0; border-radius:0; background:var(--panel); }
[data-app-mode="production"] .unit-card:hover { border-color:var(--accent); transform:translateY(-2px); }
.unit-actions button { min-height:34px; border-color:var(--line-2); }
.unit-ref { border:1px solid #d5d1c7; }
.library-footer>span:first-child { font-family:var(--latin); text-transform:uppercase; letter-spacing:.3em; color:var(--ink); }
.workspace-intro { padding:8px 0 22px; border-bottom:1px solid var(--line); }
.workspace-intro p { font-size:12px; line-height:1.8; color:var(--ink-2); }
.workspace-steps b { color:var(--copper); border-color:#674b32; }
[data-app-mode="production"] .btn-primary:hover:not(:disabled) { background:#e4eaf1; box-shadow:none; }
[data-app-mode="production"] .btn:hover:not(:disabled) { border-color:var(--accent); background:var(--accent-soft); }
[data-app-mode="production"] .ot-side .empty,
[data-app-mode="production"] .ot-viewport-ui,
[data-app-mode="production"] .ot-hint,
[data-app-mode="production"] .ot-mode-btn,
[data-app-mode="production"] .ot-stats,
[data-app-mode="production"] .ot-stepper>button,
[data-app-mode="production"] .ot-scale-value,
[data-app-mode="production"] .ot-scale-reset,
[data-app-mode="production"] .ts-db-chip { border-radius:0; }
[data-app-mode="production"] .ot-mode-btn[aria-pressed="true"] { color:var(--accent); border-color:var(--accent); box-shadow:none; }
[data-app-mode="production"] .ts-empty-icon { border-color:var(--copper); color:var(--copper); background:rgba(199,144,91,.06); }
[data-app-mode="production"] .ts-ex:hover { border-color:var(--accent); background:var(--accent-soft); }
[data-app-mode="production"] .ts-chat { background:rgba(7,11,17,.94); }
[data-app-mode="production"] .ts-empty p { color:var(--ink-2); }
[data-app-mode="production"] .ts-page .page { padding-top:28px; }
[data-app-mode="production"] .search-intro { margin-bottom:22px; }
@media(max-width:850px) {
  .studio-wordmark { font-size:18px; letter-spacing:.45em; }
  .studio-tagline { font-size:8px; letter-spacing:.22em; }
  .library-hero { padding:40px 0; }
}
@media(max-width:560px) {
  .studio-header { align-items:flex-start; gap:16px; padding-top:20px; }
  .studio-nav { flex:0 0 100%; justify-content:space-between; gap:20px; min-height:44px; }
  .studio-nav a { font-size:13px; }
  .library-hero { padding:32px 0; }
  .hero-en { font-size:16px; }
  .hero-description { font-size:12px; }
  .workspace-intro h1 { font-size:23px; line-height:1.6; }
  .collection-heading { align-items:flex-start; }
  .collection-heading h2 { font-size:18px; }
  #collection-status { text-align:right; max-width:45%; }
}

/* Shared controls in the archive palette (style.css draws them light; every page that uses them gets these):
   status chips, tables, figures, inputs, menus, the modal, toasts, banners, the zoom overlay and progress bars. */
[data-app-mode="production"] .sys-chip { border-radius:0; background:var(--panel); }
[data-app-mode="production"] .sys-chip.offline { color:var(--warn); border-color:#674b32; }
[data-app-mode="production"] .chip { border-radius:0; border-color:var(--line); background:transparent; color:var(--ink-2); }
[data-app-mode="production"] .chip.ok { color:var(--ok); border-color:#3c5f57; background:rgba(169,197,189,.07); }
[data-app-mode="production"] .chip.warn { color:var(--warn); border-color:#674b32; background:rgba(226,185,142,.07); }
[data-app-mode="production"] .chip.err { color:var(--err); border-color:#714943; background:rgba(221,167,158,.08); }
[data-app-mode="production"] .chip:is(.running,.queued) { color:var(--accent); border-color:#3a5172; background:var(--accent-soft); }
[data-app-mode="production"] .chip.pending { color:var(--dim); }
[data-app-mode="production"] .chip.scope { color:#c3b4e6; border-color:#4d4468; background:rgba(195,180,230,.06); }
[data-app-mode="production"] .chip.layer { background:var(--panel-2); color:var(--ink-2); }
[data-app-mode="production"] .chip.layer.ok { color:var(--ok); border-color:#3c5f57; background:rgba(169,197,189,.06); }
[data-app-mode="production"] .chip.layer b { color:var(--copper); }
[data-app-mode="production"] .btn.danger { color:var(--err); border-color:#714943; background:rgba(221,167,158,.08); }
[data-app-mode="production"] .btn.danger:hover:not(:disabled) { border-color:var(--err); background:rgba(221,167,158,.14); }
[data-app-mode="production"] .icon-btn { border-radius:0; background:var(--panel-2); }
[data-app-mode="production"] .icon-btn:hover,[data-app-mode="production"] .icon-btn[aria-expanded="true"] { color:var(--ink); border-color:var(--accent); background:var(--accent-soft); }
[data-app-mode="production"] .icon-btn.plain { border-color:transparent; background:transparent; }
[data-app-mode="production"] .icon-btn:disabled { opacity:.35; cursor:default; }
[data-app-mode="production"] .input { border-radius:0; background:var(--panel); }
[data-app-mode="production"] .input:focus { box-shadow:none; }
[data-app-mode="production"] .input::placeholder { color:var(--muted); }
[data-app-mode="production"] .table-wrap { border-radius:0; background:var(--panel); }
[data-app-mode="production"] .table th { color:var(--muted); font-weight:500; letter-spacing:.04em; }
[data-app-mode="production"] .table tbody tr:hover { background:rgba(255,255,255,.03); }
[data-app-mode="production"] .menu { border-radius:0; border-color:var(--line-2); background:var(--panel); }
[data-app-mode="production"] .menu-item { border-radius:0; }
[data-app-mode="production"] .menu-item:hover { color:var(--ink); }
[data-app-mode="production"] .menu-item.danger:hover { background:rgba(221,167,158,.1); }
[data-app-mode="production"] .modal { background:rgba(5,8,13,.72); }
[data-app-mode="production"] .modal-card { border-radius:0; border-color:var(--line-2); background:var(--bg); }
[data-app-mode="production"] .modal-head h2 { font-family:var(--serif); font-weight:700; letter-spacing:.04em; }
[data-app-mode="production"] .toast { border-radius:0; background:var(--panel-2); border-color:var(--line-2); color:var(--ink); }
[data-app-mode="production"] .toast.err { color:var(--err); }
[data-app-mode="production"] .banner { border-radius:0; }
[data-app-mode="production"] .banner.info { border-color:#3a5172; background:rgba(159,192,236,.07); color:var(--ink-2); }
[data-app-mode="production"] .banner.warn { border-color:#674b32; background:#241d17; color:#ecd0b2; }
[data-app-mode="production"] .banner.warn .b-icon { background:#a4774c; }
[data-app-mode="production"] .banner.error { border-color:#714943; background:#271b1b; color:#ecc3bc; }
[data-app-mode="production"] .banner.error .b-icon { background:#a35d55; }
[data-app-mode="production"] .zoom-overlay { background:rgba(5,8,13,.96); }
[data-app-mode="production"] .zoom-bar { background:var(--panel); color:var(--ink); }
[data-app-mode="production"] .zoom-stage img { background:var(--paper); box-shadow:none; border-radius:0; }
[data-app-mode="production"] .viewer { border-radius:0; background:var(--paper); }
[data-app-mode="production"] .viewer.loading { background:linear-gradient(90deg,#0b111a 0%,#162333 50%,#0b111a 100%); background-size:200% 100%; }
[data-app-mode="production"] .bar { border-radius:0; background:#1a2533; }
[data-app-mode="production"] .bar-fill { border-radius:0; background:var(--accent); }
[data-app-mode="production"] .kpi { border-radius:0; box-shadow:none; }

/* The signed-in account in the shared header (site-nav.js), and the sign-in page (login.html). */
.studio-side { display:flex; align-items:center; gap:28px; }
.studio-account { display:flex; align-items:center; gap:14px; font:11px var(--latin); letter-spacing:.08em; color:var(--ink-2); white-space:nowrap; }
.studio-account:empty { display:none; }
.studio-account button { height:28px; padding:0 12px; border:1px solid var(--line-2); background:transparent; color:var(--muted); font:12px var(--sans); letter-spacing:.06em; cursor:pointer; }
.studio-account button:hover { color:var(--ink); border-color:var(--accent); background:var(--accent-soft); }
@media(max-width:560px) {
  .studio-side { order:1; margin-left:auto; }
  .studio-nav { order:2; }
  .studio-account { gap:10px; }
  .studio-account > span { max-width:110px; overflow:hidden; text-overflow:ellipsis; }
}

.login-page { color:var(--ink); font-family:var(--sans); }
.login-shell { min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:44px; padding:48px 16px; }
.login-brand { display:flex; flex-direction:column; align-items:center; gap:9px; }
.login-brand .studio-tagline { letter-spacing:.34em; }
.login-card { width:100%; max-width:400px; padding:40px 40px 36px; border:1px solid var(--line); border-top:2px solid var(--copper); background:rgba(11,17,26,.94); }
.login-card .eyebrow { margin-bottom:18px; }
.login-card h1 { margin:0; font-family:var(--serif); font-weight:700; font-size:28px; letter-spacing:.12em; }
.login-lead { margin:12px 0 30px; color:var(--muted); font-size:13px; line-height:1.8; }
.login-field { display:flex; flex-direction:column; gap:9px; margin-bottom:20px; }
.login-field > span { color:var(--ink-2); font-size:12px; letter-spacing:.12em; }
.login-field input { height:46px; padding:0 14px; border:1px solid var(--line); border-radius:0; background:var(--bg); color:var(--ink); font:15px var(--latin); letter-spacing:.03em; outline:none; }
.login-field input:focus { border-color:var(--accent); }
.login-error { margin:-4px 0 18px; color:var(--err); font-size:13px; }
.login-submit { width:100%; height:48px; margin-top:6px; font-size:15px; letter-spacing:.3em; }
@media(max-width:560px) { .login-card { padding:32px 22px 28px; } .login-shell { gap:32px; } }
