/* The front of the portal, brought into line with the workspace.
 *
 * The lenses were designed as a canvas with soft floating chrome — pill
 * controls, generous radii, one accent doing the work of saying "this is
 * active". The library, the guide and the brief were still square-cornered
 * with a tan accent, so moving between them felt like two products.
 *
 * Loaded last, on purpose: nothing here rewrites portal.css or workspace.css,
 * it only states the shared decisions in one place — which is also the only
 * way the accent can be changed once rather than in forty declarations.
 */

:root{
  /* Sealing-wax red: deep, warm and nearly brown in the shadow, the colour of
     a wax seal on a document rather than a warning label. It belongs to a
     product about records of real places — an orange-leaning vermilion reads
     as an alert, which is the opposite of what the accent is for.

     It is also simply more legible: white on it reads at 10.4:1, against 5.0
     for the vermilion it replaces, so it carries a button label, a tab and a
     hairline on a drawing without any of them being borderline. */
  --accent:#4F0E18;
  --accent-dark:#3A0A12;
  --accent-tint:#f6e9ea;
  --radius-pill:999px;
  --radius-card:18px;
  --radius-field:12px;
}
/* The workspace keeps its own token names; both now point at the same red, so
   an active wall tag and an active library tab are the same colour. */
.ws{--accent:#4F0E18;--accent-dark:#3A0A12;--accent-tint:#f6e9ea}

/* ---- Controls ----------------------------------------------------------- */
.btn{border-radius:var(--radius-pill);background:var(--accent);border-color:var(--accent);
  color:#fff;gap:12px}
.btn:hover{background:var(--accent-dark);border-color:var(--accent-dark)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn.ghost:hover{background:var(--accent-tint);border-color:var(--accent);color:var(--accent-dark)}
.btn.light{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.btn.light:hover{background:#fff;border-color:#fff}
.btn:disabled{opacity:1;background:var(--surface);color:var(--muted);border-color:var(--line)}
.text-button{text-decoration-color:var(--accent);text-decoration-thickness:2px}
.text-button:hover{color:var(--accent-dark)}

button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--accent);outline-offset:3px}

/* ---- Fields ------------------------------------------------------------- */
.search input,.workspace-select{border-radius:var(--radius-pill)}
.search input{padding-left:36px}
.field input,.field select,.field textarea{border-radius:var(--radius-field);background:var(--surface)}
.field textarea{border-radius:var(--radius-card)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}

/* ---- Navigation --------------------------------------------------------- */
.side-nav button{border-radius:var(--radius-pill);padding-left:14px;transition:background .15s,color .15s}
.side-nav button:hover{background:var(--accent-tint)}
.side-nav button.active{background:var(--accent-tint);color:var(--accent-dark)}
.side-nav button.active .nav-icon{color:var(--accent)}

.tabs button{border-radius:var(--radius-pill);padding:9px 16px;border-bottom:0;
  transition:background .15s,color .15s}
.tabs button:hover{background:var(--accent-tint);color:var(--accent-dark)}
.tabs button.active{background:var(--accent);color:#fff;border-bottom-color:transparent}
.tabs{gap:6px;border-bottom:1px solid var(--line);padding-bottom:10px}

/* ---- Surfaces ----------------------------------------------------------- */
.capture-card{border-radius:var(--radius-card);overflow:hidden}
.capture-card:hover{border-color:var(--accent)}
.card-visual{border-radius:0}
.tag{border-radius:var(--radius-pill);padding:5px 11px}
.tag.uploaded{background:#e4eadd}
.tag.sample{background:var(--accent-tint);color:var(--accent-dark)}
.notice,.empty-state,.loading-state,.info-panel,.brief-form,.plan-panel,.next-step,
.cad-inspector,.cad-canvas,.cad-consideration-grid article{border-radius:var(--radius-card)}
.notice.error{border-color:var(--accent);background:var(--accent-tint);color:var(--accent-dark)}
.toast{border-radius:var(--radius-pill)}
.empty-state .empty-icon,.guide-step>span,.step>span{color:var(--accent)}
.legend span:before{border-radius:var(--radius-pill)}
.private-label:before{border-color:var(--accent)}

/* The dark panel keeps its own contrast: a red on near-black is a warning,
   not an accent, so inside it the accent stays out of the way. */
.next-step .btn.light{background:var(--cream);color:var(--ink)}

@media (max-width:760px){
  .tabs{overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch}
  .tabs button{white-space:nowrap}
}

/* A card's own quiet action. It sits in the foot where the arrow was, so the
   card still reads as one thing to click and the removal has to be aimed at. */
.card-remove{border:0;background:none;padding:2px 0;font:inherit;font-size:11px;
  color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.card-remove:hover{color:var(--accent-dark)}
.card-acts{display:inline-flex;gap:14px;align-items:baseline}

/* Dark stage. The wax red is a deep colour on cream and nearly invisible on
   navy, so the dark ground gets a lifted version of the same hue rather than
   a different one — and the two literal teals that predate the accent become
   the token like everything else. White on it reads at 5.7:1. */
.ws .ws-stage.is-dark{--accent:#b8394b;--accent-dark:#8f2537;--accent-tint:#2a1620}
.ws .ws-stage.is-dark .ws-toolrail button.active,
.ws .ws-stage.is-dark .runtime-status{background:var(--accent);color:#fff}
.ws .ws-stage.is-dark .ws-float button.active{background:var(--accent);color:#fff}
.ws .ws-stage.is-dark .ws-float button:hover:not(.active){background:rgba(255,255,255,.12)}

/* Agency portfolio: shared property hierarchy, independent from viewer state. */
.portfolio-toolbar {display:flex;gap:16px;align-items:center;justify-content:space-between;margin:24px 0 12px;}
.portfolio-toolbar .search {flex:1;max-width:560px;}
.portfolio-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:24px;margin:24px 0;}
.portfolio-building {border:1px solid #d8d1c5;border-radius:12px;padding:24px;background:#fffdf8;min-width:0;}
.portfolio-building header {display:flex;justify-content:space-between;align-items:start;gap:16px;}
.portfolio-building h2 {margin:8px 0;font-size:26px;overflow-wrap:anywhere;}
.portfolio-building header p {overflow-wrap:anywhere;}
.portfolio-levels {border-top:1px solid #e5dfd4;margin-top:20px;}
.portfolio-floor {padding:16px 0;border-bottom:1px solid #e5dfd4;}
.portfolio-floor > div {display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;}
.portfolio-space {padding:6px 10px;border-radius:5px;background:#eee9df;overflow-wrap:anywhere;}
.portfolio-space small {display:block;color:#655d50;}
.portfolio-captures {list-style:none;margin:16px 0 0;padding:0;}
.portfolio-capture {padding:16px 0;border-top:1px solid #e5dfd4;display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between;align-items:start;}
.portfolio-capture > div {min-width:0;flex:1 1 180px;}
.portfolio-open {text-align:left;font-weight:600;overflow-wrap:anywhere;}
.portfolio-capture p {margin:6px 0;}
.portfolio-revision {font-size:11px;color:#70685c;}
.portfolio-assignment {display:flex;flex-direction:column;gap:6px;font-size:12px;flex:1 1 180px;max-width:100%;}
.portfolio-assignment select,.portfolio-editor input,.portfolio-editor select {font:inherit;padding:10px;background:#fff;border:1px solid #b9b09f;border-radius:5px;width:100%;box-sizing:border-box;}
.portfolio-inbox {padding:24px;background:#eee9df;border-radius:12px;margin:28px 0;}
.portfolio-editor {padding:24px;border:1px solid #b9b09f;border-radius:10px;margin:18px 0;max-width:620px;background:#fffdf8;}
.portfolio-editor label {display:block;margin:16px 0;}
.portfolio-editor label input,.portfolio-editor label select {display:block;margin-top:8px;}
.portfolio-recovery pre {max-height:240px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;}
#portfolio-status:empty {display:none;}
#portfolio-status {padding:12px 0;}
#portfolio-status[role="alert"] {color:#8b3524;}
@media(max-width:600px){.portfolio-toolbar{align-items:stretch;flex-direction:column}.portfolio-building{padding:18px}.portfolio-building header{flex-direction:column}.portfolio-inbox{padding:18px}.portfolio-capture{flex-direction:column}.portfolio-capture>div,.portfolio-assignment{flex:auto;width:100%}}

/* Keep accessible labels without inserting them above icon-bearing fields. */
.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}
.search{display:block;min-width:0}
.search:before{top:50%;transform:translateY(-50%);line-height:1;pointer-events:none}
.workspace-block,.workspace-select{min-width:0;max-width:100%}
.page-heading{flex-wrap:wrap}
.page-heading>div:first-child{flex:1 1 280px;min-width:0}
.page-heading>.actions{flex:0 1 auto;max-width:100%}
.portfolio-toolbar .search{width:100%}
.portfolio-toolbar>.btn{flex-shrink:0}
.portfolio-assignment{min-width:0}
.portfolio-assignment select{min-width:0;max-width:100%;text-overflow:ellipsis}
.portfolio-building .tag{max-width:100%;overflow-wrap:anywhere}
.portfolio-editor{min-width:0}

@media(max-width:760px){
  .sidebar{padding:16px 20px 12px;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:12px}
  .sidebar .wordmark{font-size:18px;letter-spacing:.2em}
  .workspace-select{display:block;min-height:44px;font-size:12px;padding:8px 10px}
  .workspace-kind{font-size:10px}
  .side-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:4px 0 0}
  .side-nav button{min-width:0;min-height:44px;padding:9px 6px;font-size:12px;line-height:1.3;
    text-align:center;border:0;border-radius:10px;gap:0}
  .side-nav button.active{border:0;background:var(--accent-tint)}
  .side-nav .nav-icon{display:none}
  .sidebar-foot{right:20px;padding:4px 0}
  .sidebar-foot .text-button{min-height:44px;padding:8px 0;font-size:12px}
  .topbar{min-height:54px;padding:12px 88px 12px 20px;gap:12px}
  .topbar .crumb{min-width:0;overflow-wrap:anywhere}
  .content{padding:24px 20px}
  .page-heading{gap:18px;margin-bottom:24px}
  .page-heading>div:first-child{flex:auto;width:100%}
  .page-heading h1{font-size:clamp(32px,7.5vw,42px);line-height:1.12}
  .page-heading>.actions{width:100%}
  .page-heading>.actions .btn{min-height:44px}
  .portfolio-toolbar{gap:12px;margin-top:20px}
  .search input,.portfolio-editor input,.portfolio-editor select,.portfolio-assignment select{font-size:16px;min-height:44px}
  .portfolio-editor{padding:18px}
  .portfolio-editor .actions .btn{min-height:44px}
  .portfolio-building .text-button,.portfolio-floor .text-button{min-height:44px}
}
@media(max-width:480px){
  .sidebar{padding-left:16px;padding-right:16px;column-gap:10px}
  .sidebar-foot{right:16px}
  .topbar{padding-left:16px;padding-right:84px}
  .content{padding:24px 16px}
  .page-heading>.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .page-heading>.actions .btn{padding:10px 8px;gap:8px;font-size:12px}
  .portfolio-building,.portfolio-inbox{padding:16px}
  .portfolio-building h2{font-size:24px}
  .portfolio-editor .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .portfolio-editor .actions .btn{padding:10px 8px}
}

.space-coordination{margin:12px 0 20px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.space-coordination summary{cursor:pointer;padding:14px;line-height:1.5;overflow-wrap:anywhere}
.space-coordination summary .tag{margin:4px 0 4px 8px}
.coordination-body{padding:0 16px 16px;min-width:0}
.coordination-roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
.coordination-roles article,.coordination-item{border:1px solid var(--line);border-radius:8px;padding:14px;min-width:0;overflow-wrap:anywhere}
.coordination-roles h3{margin:0 0 6px;font-size:17px}
.coordination-roles p{font-size:13px;line-height:1.5}
.coordination-roles small{display:block;margin-top:8px}
.coordination-item{margin:12px 0}
.coordination-item header{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}
.coordination-body .portfolio-editor{max-width:none;margin:8px 0 16px}
.coordination-body .form-grid{min-width:0}
.coordination-body label{min-width:0}
.coordination-status{overflow-wrap:anywhere}
@media(max-width:600px){.coordination-roles{grid-template-columns:1fr}.coordination-body{padding:0 12px 12px}.coordination-body .form-grid{grid-template-columns:1fr}.space-coordination summary .tag{display:table;margin-left:0}.coordination-body .btn{max-width:100%;white-space:normal}}

/* Authenticated, scoped role workspaces. Reuse the portal's form/button tokens. */
.stake-shell {max-width:1500px;margin:0 auto;}
.stake-shell-header {padding:24px 32px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid #d8d1c5;}
.stake-shell-header nav {display:flex;gap:20px;align-items:center;flex-wrap:wrap;}
.stake-shell-header a {color:inherit;}
.stake-sections {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:24px;align-items:start;}
.stake-section {padding:24px;background:#fffdf8;border:1px solid #d8d1c5;border-radius:12px;min-width:0;overflow-wrap:anywhere;}
.stake-card {padding:20px 0;border-top:1px solid #e3ddd3;min-width:0;overflow-wrap:anywhere;}
.stake-card h3 {margin:8px 0 12px;}
.stake-form {margin:18px 0;padding:18px;background:#f3eee5;border-radius:8px;}
.stake-form label,#stake-result label {display:block;margin:12px 0;font-size:14px;}
.stake-form input,.stake-form select,.stake-form textarea,#stake-result input {display:block;width:100%;max-width:100%;box-sizing:border-box;margin-top:6px;padding:10px 12px;font:inherit;border:1px solid #b9b09f;border-radius:5px;background:white;}
.stake-form textarea {resize:vertical;}
.stake-form fieldset {min-width:0;border:1px solid #c9c0b2;padding:12px;}
.stake-form .stake-check {display:flex;gap:8px;align-items:center;overflow-wrap:anywhere;}
.stake-form .stake-check input {width:auto;margin:0;}
.stake-form input[type="hidden"] {display:none;}
.stake-quote {border-left:3px solid #ab9b80;padding:14px;margin:12px 0;background:#f4f0e8;}
.stake-preline {white-space:pre-wrap;}
.stake-index {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px;margin:24px 0;}
.stake-index-card {background:#fffdf8;border:1px solid #d8d1c5;border-radius:12px;padding:24px;text-align:left;color:inherit;cursor:pointer;font:inherit;}
.stake-index-card:hover {border-color:#6b5340;}
#stake-studio:not(:empty) {margin:24px 0;border:1px solid #d8d1c5;border-radius:12px;overflow:hidden;min-width:0;}
#stake-status:not(:empty) {padding:16px 0;}#stake-status[role="alert"],#stake-index-status {color:#8b3524;}
#stake-result pre {white-space:pre-wrap;overflow-wrap:anywhere;max-height:200px;overflow:auto;}
@media(max-width:600px){.stake-shell-header{padding:16px;align-items:start;flex-direction:column}.stake-shell-header nav{gap:14px;font-size:13px}.stake-section{padding:16px}.stake-form{padding:12px}.stake-sections{gap:16px}.stake-index-card{padding:18px}.stake-shell .content{padding:20px 16px}.stake-card .btn{max-width:100%;white-space:normal}}
.stake-studio-header{display:flex;gap:16px;justify-content:space-between;align-items:center;padding:16px;flex-wrap:wrap;background:#f3eee5;overflow-wrap:anywhere}
.stake-table-wrap{max-width:100%;overflow-x:auto;margin:16px 0}.stake-schedule{border-collapse:collapse;width:100%;font-size:13px}.stake-schedule caption{text-align:left;font-weight:600;margin-bottom:10px}.stake-schedule th,.stake-schedule td{padding:10px;border-bottom:1px solid #ded7cc;text-align:left;vertical-align:top}.stake-schedule td small{display:block;color:#6b6258}.stake-schedule td{overflow-wrap:anywhere;min-width:85px}

/* Shared portal rhythm: working screens retain the brand without hero sizing. */
.workspace-layout .content,.stake-shell .content{padding:32px;max-width:1440px}
.page-heading{gap:20px;margin-bottom:24px;align-items:center}
.page-heading h1{font-size:36px;line-height:1.15;margin:6px 0 10px}
.page-heading p{font-size:14px;line-height:1.65}
button:disabled{cursor:default}
.btn{min-height:44px;font-weight:500}
.sidebar .wordmark{margin-bottom:32px}
.side-nav button{min-height:44px;gap:12px;border-radius:10px}
.side-nav .nav-icon{width:18px;height:18px;flex:none}
.side-nav button[data-page=team]{border-top:1px solid var(--line);border-radius:0;margin-top:12px;padding-top:18px}
.sidebar-foot{padding-top:16px}
.portfolio-toolbar{margin:20px 0 10px}
.portfolio-toolbar>.btn{background:var(--surface);color:var(--ink);border-color:var(--line)}
.portfolio-toolbar>.btn:hover{border-color:var(--accent);color:var(--accent)}
.portfolio-building,.stake-section,.stake-index-card{background:var(--surface);border-color:var(--line);border-radius:var(--radius-card)}
.portfolio-building h2{font-size:27px}
.portfolio-floor>div{display:block}
.portfolio-space{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;padding:12px 0;background:none;border-radius:0;font-weight:500}
.portfolio-space .text-button{font-weight:400}
.portfolio-space [data-collaborate]{margin-left:auto}
.portfolio-floor .space-coordination{margin:0 0 12px;background:var(--paper)}
.portfolio-inbox{background:transparent;border-top:1px solid var(--line);border-radius:0;padding:24px 0}
.portfolio-inbox h2{font-size:28px}
.portfolio-inbox>p{font-size:13px;max-width:680px}
.portfolio-assignment select,.portfolio-editor input,.portfolio-editor select,
.stake-form input,.stake-form select,.stake-form textarea,#stake-result input,#agency-admin-result input{
 min-height:44px;border:1px solid var(--line);border-radius:var(--radius-field);background:var(--surface);color:var(--ink);font:inherit;padding:10px 12px;max-width:100%}
.stake-form input[type=checkbox]{min-height:0}
.stake-form{background:var(--paper);border-radius:var(--radius-field)}
.stake-section>h2{font-size:27px}.stake-section>h3{font-size:24px}
.stake-card h3{font-size:23px}
#agency-admin-result label{display:block;margin:12px 0}#agency-admin-result input{width:100%;box-sizing:border-box}
#agency-admin-status:not(:empty){padding:14px 0}#agency-admin-status[role=alert]{color:var(--red)}
.stake-shell-header{background:var(--surface)}
.stake-shell-header nav a{padding:8px 0;text-underline-offset:5px}
.stake-shell-header nav a:hover{text-decoration:underline}
.stake-studio-header{background:var(--surface);border-bottom:1px solid var(--line)}
/* Keep the workspace name from squeezing navigation/actions off the page. */
.workspace-focus .topbar{padding:10px 24px;gap:12px;flex-wrap:wrap}
.workspace-focus .topbar-left{flex:1 1 220px}
.workspace-focus .topbar .topbar-tabs{flex:0 0 auto}
.workspace-focus .top-actions{margin-left:auto}
.top-actions .capture-design-btn{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;background:var(--accent);color:#fff;border:1px solid var(--accent);padding:10px 16px}
.top-actions .capture-design-btn:hover{background:var(--accent-dark)}
.crumb-pop{max-width:calc(100vw - 48px)}
.lay-hint{max-width:calc(100% - 32px);overflow:hidden}
/* A container can be narrower than its viewport (especially inside AI design). */
.lay-stage{container-type:inline-size}
@container (max-width:850px){.lay-hint{font-size:11px;gap:10px;padding:6px 12px}}
/* A phone: the line wraps to two short lines rather than going. */
@container (max-width:550px){#layHint{white-space:normal;flex-wrap:wrap;justify-content:center;gap:4px 12px;width:max-content;max-width:calc(100% - 32px);border-radius:14px}}

/* Private design studio. Own controls are scoped so they never restyle CAD. */
.tenant-studio{min-width:0;color:var(--ink);padding:20px;display:grid;
 grid-template-columns:minmax(0,1fr) 310px;gap:16px 20px;align-items:start;
 grid-template-areas:'title title' 'intro intro' 'actions actions' 'status status' 'model chat' 'selections selections'}
.tenant-studio>h3{grid-area:title;margin:0;font-size:28px}
.tenant-studio>p:not(.studio-status){grid-area:intro;font-size:13px;margin:0;max-width:900px}
.tenant-studio>.studio-actions{grid-area:actions;margin:0}
.tenant-studio .studio-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tenant-studio .studio-actions label{display:flex;align-items:center;gap:8px;font-size:12px;min-width:0}
.tenant-studio>.studio-actions label{margin-left:auto}
.tenant-studio :is(.studio-actions>button,.studio-views>button,[data-chat] button){
 font:500 12px/1.5 var(--sans);min-height:44px;border:1px solid var(--line);border-radius:var(--radius-pill);padding:10px 16px;background:var(--surface);color:var(--ink)}
.tenant-studio :is(.studio-actions>button,.studio-views>button,[data-chat] button):hover:not(:disabled){background:var(--accent-tint);border-color:var(--accent)}
.tenant-studio :is([data-save],[data-chat] button[type=submit]){background:var(--accent);color:#fff;border-color:var(--accent)}
.tenant-studio :is([data-save],[data-chat] button[type=submit]):hover:not(:disabled){background:var(--accent-dark);color:#fff}
.tenant-studio .studio-actions>button:disabled{opacity:.45}
.tenant-studio :is(.studio-actions select,[data-chat] textarea){font:inherit;min-height:44px;line-height:1.5;padding:10px 12px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-field);max-width:100%;min-width:0}
.tenant-studio .studio-actions select{font-size:12px;max-width:260px;text-overflow:ellipsis}
.tenant-studio .studio-status{grid-area:status;font-size:12px;line-height:1.6;min-height:1.6em;margin:0}
.tenant-studio .studio-model{grid-area:model;height:clamp(460px,65dvh,720px);min-width:0;position:relative;border:1px solid var(--line);border-radius:var(--radius-field);overflow:hidden}
.tenant-studio .studio-model>.ws,.tenant-studio .studio-model .lay{height:100%;min-height:0}
.studio-model>canvas{display:block}
.studio-assistant{grid-area:chat;min-width:0}
.tenant-studio [data-chat]{padding:18px;border:1px solid var(--line);border-radius:var(--radius-field);background:var(--surface);margin:0}
.tenant-studio [data-chat]>label{display:grid;gap:10px;font-weight:500;font-size:14px}
.tenant-studio [data-chat] textarea{width:100%;min-height:140px;resize:vertical;font-size:14px;font-weight:400}
.tenant-studio [data-chat] .studio-actions{margin-top:12px}
.tenant-studio [data-chat] .studio-actions label{display:grid;gap:6px;width:100%;font-weight:400}
.tenant-studio [data-chat] select{width:100%;max-width:none}
.tenant-studio [data-chat] button[type=submit]{width:100%}
.tenant-studio [data-chat] p{font-size:11px;line-height:1.65;margin:12px 0 0}
.tenant-studio .studio-log{list-style:none;margin:12px 0 0;padding:0;max-height:240px;overflow:auto}
.tenant-studio .studio-log li{padding:12px 0;border-bottom:1px solid var(--line);font-size:12px;overflow-wrap:anywhere}
.tenant-studio .studio-log p{margin:6px 0 0;white-space:pre-wrap}
.studio-selections{grid-area:selections;min-width:0;border-top:1px solid var(--line);padding-top:20px}
.studio-selections h4{font-size:15px;margin:0 0 12px;font-weight:500}
.tenant-studio .studio-table{overflow:auto;max-width:100%}
.tenant-studio table{width:100%;border-collapse:collapse;font-size:12px}
.tenant-studio td,.tenant-studio th{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top;min-width:120px}
.tenant-studio th{background:var(--paper);font-weight:500}
.tenant-studio .studio-table>p{font-size:11px;line-height:1.6}
.studio-views{display:none}

/* Full-screen task dialog, with one history and one working canvas. */
.capture-ai{width:calc(100vw - 32px);max-width:1600px;height:calc(100dvh - 32px);max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink);overflow:auto;overscroll-behavior:contain}
.capture-ai::backdrop{background:rgb(30 25 22 / .55)}
.capture-ai-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:5}
.capture-ai-header h2{font-size:26px;margin:0}.capture-ai-header p{font-size:12px;margin:4px 0 0}.capture-ai-header button{white-space:nowrap}
.capture-ai-note{font-size:12px;margin:14px 20px;color:var(--muted)}
.capture-ai-content{padding:0 20px 20px}
.capture-ai-content>.page-heading,.capture-ai-content>.small-note,.capture-ai-content>.stake-sections,.capture-ai-content .stake-studio-header{display:none}
.capture-ai #stake-studio{margin:0;border:0;overflow:visible}
.capture-ai .tenant-studio{padding:0;grid-template-areas:'actions actions' 'status status' 'model chat' 'selections selections'}
.capture-ai .tenant-studio>h3,.capture-ai .tenant-studio>h3+p{display:none}
.capture-ai .studio-model{height:clamp(420px,calc(100dvh - 280px),720px)}

@media(max-width:1050px){
 .tenant-studio,.capture-ai .tenant-studio{grid-template-columns:minmax(0,1fr);grid-template-areas:'title' 'intro' 'actions' 'views' 'status' 'model' 'chat' 'selections'}
 .studio-views{grid-area:views;display:flex;gap:4px;padding:4px;background:var(--paper);border-radius:var(--radius-pill)}
 .tenant-studio .studio-views>button{flex:1;background:transparent;border-color:transparent;padding:8px}
 .tenant-studio .studio-views>button[aria-pressed=true],.tenant-studio .studio-views>button[aria-pressed=true]:hover{background:var(--ink);color:var(--surface)}
 .tenant-studio:not([data-view=space])>.studio-model,.tenant-studio:not([data-view=chat])>.studio-assistant,.tenant-studio:not([data-view=selections])>.studio-selections{display:none}
 .studio-selections{border:0;padding-top:0}
 .tenant-studio [data-chat] textarea{min-height:150px}
 .tenant-studio .studio-actions select{max-width:100%}
 .capture-ai .tenant-studio{grid-template-areas:'actions' 'views' 'status' 'model' 'chat' 'selections'}
}
@media(max-width:760px){
 .workspace-layout .sidebar{padding:16px;gap:12px}
 .sidebar .wordmark{margin:0;font-size:18px}
 .side-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:0}
 .side-nav button{min-height:44px;padding:8px 4px;gap:0;border-radius:10px;justify-content:center}
 .side-nav button[data-page=team]{margin:0;border:0;padding:8px 4px;border-radius:10px}
 .side-nav .nav-icon{display:none}
 .sidebar-foot{position:static;grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding:4px 0 0;border-top:1px solid var(--line)}
 .sidebar-foot .username{display:block;font-size:11px;margin:0;max-width:65%}
 .sidebar-foot .text-button{min-height:44px;padding:8px}
 .topbar{padding:12px 16px;min-height:48px}
 .workspace-layout .content,.stake-shell .content{padding:24px 16px}
 .page-heading h1{font-size:32px}.page-heading{gap:16px}
 .page-heading>.actions .btn{font-size:12px}
 .portfolio-building,.stake-section{padding:18px}
 .portfolio-building header{flex-direction:row;gap:12px}
 .portfolio-building h2{font-size:25px}
 .portfolio-space [data-collaborate]{margin-left:0}
 .portfolio-inbox{padding:24px 0}
 .workspace-layout .side-nav{display:flex;flex-direction:column;width:100%}.workspace-layout .side-nav button{justify-content:flex-start;gap:12px;padding:12px}.workspace-layout .side-nav .nav-icon{display:block}.workspace-layout .workspace-label{display:block}
 /* The same mobile navigation drawer on every signed-in route. */
 .workspace-layout .sidebar{position:fixed;inset:0 auto 0 0;width:min(320px,88vw);height:100dvh;display:flex;z-index:40;transform:translateX(-100%);overflow:auto}
 .workspace-layout.sidebar-open .sidebar{transform:none}
 .workspace-layout.sidebar-open .sidebar-scrim{display:block;position:fixed;inset:0;z-index:35;background:#221d1855}
 .workspace-layout .side-toggle{display:inline-flex;flex:none;min-width:44px;min-height:44px;border-radius:10px}
 .workspace-layout .sidebar-foot{margin-top:auto}
 .workspace-focus .topbar{padding:8px 12px;gap:8px;display:grid;grid-template-columns:minmax(0,1fr)}
 .workspace-focus .topbar-left{width:100%;min-width:0}
 .workspace-focus .topbar .topbar-tabs{order:0;min-width:0;width:100%;overflow:visible;justify-content:space-between}
 .workspace-focus .top-actions{order:0;margin:0;justify-content:flex-end;flex-wrap:wrap;gap:8px}
 .workspace-focus .top-history{margin-right:auto}
 .workspace-focus .detail-title,.workspace-focus .back{display:none}
 .workspace-layout.workspace-focus .content{padding:8px}
 .crumb-project>button{max-width:100%}
 .top-actions .capture-design-btn{font-size:12px;padding:10px 14px;min-height:44px}
 .top-share-btn{min-height:44px}
 .tenant-studio{padding:14px;gap:12px}
 .tenant-studio>.studio-actions label{flex-basis:100%;margin:0;justify-content:space-between}
 .tenant-studio>.studio-actions>button{flex:1;padding:9px 8px}
 .tenant-studio .studio-model,.capture-ai .studio-model{height:auto;min-height:0;overflow:visible}
 .tenant-studio .studio-model .lay{height:auto;grid-template-rows:auto minmax(360px,55dvh) auto}
 .tenant-studio .studio-model>.ws{height:auto}
 .tenant-studio .studio-model>canvas{min-height:360px;max-width:100%}
 .tenant-studio :is(.studio-actions select,[data-chat] textarea){font-size:16px}
 .capture-ai{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;border:0;margin:0}
 .capture-ai-header{padding:12px 16px;align-items:start}.capture-ai-header h2{font-size:23px}
 .capture-ai-header p{max-width:42vw;font-size:11px}.capture-ai-header button{min-height:44px;padding:8px 14px}
 .capture-ai-note{margin:12px 16px;font-size:11px}.capture-ai-content{padding:0 12px 16px}
}

/* Folded navigation cannot receive keyboard focus outside the visible drawer. */
@media(max-width:760px){
.workspace-layout:not(.sidebar-open) .sidebar{visibility:hidden;pointer-events:none}
.workspace-layout.sidebar-open .sidebar{visibility:visible;pointer-events:auto}
}
/* Embedded studios open a full named library on demand, without the abbreviated rail. */
.tenant-studio .lay-rail-left>div{display:none}
.tenant-studio .lay-rail-left>button{min-width:44px;min-height:44px;border:0;background:transparent;border-radius:10px}
@media(max-width:760px){
 .tenant-studio .lay-rail-left>button{width:auto;display:flex;gap:10px;align-items:center;padding:8px 12px}
 .tenant-studio .lay-rail-left>button{font-size:12px}
}

.tenant-studio .lay-rail-left>button{display:flex;align-items:center;gap:8px;flex-direction:column;font-size:11px;padding:8px 2px}
.tenant-studio .lay-rail-left>button span:last-child{writing-mode:vertical-rl;letter-spacing:.03em}
@media(max-width:760px){.tenant-studio .lay-rail-left>button{flex-direction:row;padding:8px 12px}.tenant-studio .lay-rail-left>button span:last-child{writing-mode:horizontal-tb}}

/* Portfolio, tightened (10 Oct). Edit links recede; each space is one row with
   its one action on the right; People & decisions is a slim line until opened;
   an unfiled scan is one compact row. Only presentation: the markup and its
   behaviour are the portfolio's own. */
.small-note.portfolio-hint{max-width:none;margin-top:0}
.portfolio-grid{gap:20px;margin:20px 0 8px}
.portfolio-building{padding:20px 22px;border-radius:var(--radius-card,18px);border-color:var(--line);background:var(--surface,#fffdf8)}
.portfolio-building header{align-items:center}
.portfolio-building header .eyebrow{display:none}
.portfolio-building h2{margin:0 0 2px;font-size:24px;line-height:1.2}
.portfolio-building header p{margin:0;color:var(--muted);font-size:13.5px}
.portfolio-building header .tag{font-size:11.5px;white-space:nowrap}
/* Edit and add: quiet until wanted. */
.portfolio-building [data-edit-building],.portfolio-building [data-edit-floor],.portfolio-building [data-edit-space],
.portfolio-building [data-add-space],.portfolio-building [data-add-floor]{
  text-decoration:none;color:var(--muted);font-size:12.5px;font-weight:500;padding:2px 0;min-height:0}
.portfolio-building [data-edit-building]:hover,.portfolio-building [data-edit-floor]:hover,.portfolio-building [data-edit-space]:hover,
.portfolio-building [data-add-space]:hover,.portfolio-building [data-add-floor]:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.portfolio-building header > div{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.portfolio-building [data-edit-building]{order:3;margin-top:4px}
.portfolio-levels{margin-top:16px}
.portfolio-floor{padding:12px 0 10px}
.portfolio-floor > strong{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-right:6px}
.portfolio-floor > div{display:flex;flex-direction:column;gap:0;margin:6px 0 4px}
/* A space: name, kind, edit, and Open collaboration on the right. */
.portfolio-space{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;padding:10px 0 4px;background:none;border-radius:0;font-weight:500}
.portfolio-space small{display:inline;color:var(--muted);font-size:12px;font-weight:400}
.portfolio-space [data-collaborate]{margin-left:auto;text-decoration:none;font-size:12.5px;font-weight:500;color:var(--ink);
  border:1px solid var(--line);border-radius:var(--radius-pill,999px);padding:5px 12px;background:transparent;min-height:0;line-height:1.3}
.portfolio-space [data-collaborate]:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-tint)}
/* People & decisions: one slim line under its space until opened. */
.portfolio-floor .space-coordination{margin:0 0 6px;border:0;background:transparent;border-radius:10px}
.space-coordination summary{padding:2px 0 6px;font-size:12.5px;color:var(--muted);list-style-position:inside}
.space-coordination summary .tag{font-size:11px;margin:0 0 0 6px;padding:1px 8px}
.portfolio-floor .space-coordination[open]{border:1px solid var(--line);background:var(--paper);margin:4px 0 12px}
.space-coordination[open] summary{padding:10px 14px;color:var(--ink)}
.portfolio-floor [data-add-space]{margin-top:2px}
.portfolio-building > [data-add-floor]{margin-top:12px;display:inline-block}
/* Scans filed under the building, and the unfiled tray: one compact row each. */
.portfolio-captures{margin-top:10px}
.portfolio-capture{padding:12px 0;gap:10px 20px;align-items:center}
.portfolio-capture > div{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px}
.portfolio-capture .portfolio-open{flex-basis:100%;text-decoration-thickness:1px;text-underline-offset:3px;font-size:15px}
.portfolio-capture p{margin:0;font-size:12.5px}
.portfolio-revision{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}
.portfolio-assignment{flex:0 1 260px;flex-direction:row;align-items:center;gap:8px;font-size:12.5px;color:var(--muted)}
.portfolio-assignment select{padding:7px 10px;border-color:var(--line);border-radius:var(--radius-field,12px);font-size:13.5px}
.portfolio-inbox{padding:20px 22px;margin:20px 0;border-radius:var(--radius-card,18px)}
.portfolio-inbox h2{font-size:22px;margin:0 0 4px}
.portfolio-inbox > p{margin:0 0 4px;color:var(--muted);font-size:14px}
@media(max-width:600px){
  .portfolio-space [data-collaborate]{margin-left:0}
  .portfolio-assignment{flex:1 1 100%}
}
.agency-drawn{margin:8px 0 24px}
.agency-drawn > h2{font-size:22px;margin:0 0 4px}
.agency-drawn > p{margin:0 0 14px;color:var(--muted);font-size:14px}

/* Projects: every scan and every building is the same card as a published
   space. The whole card opens it; the one action in the foot sits above. */
.project-grid,.portfolio-detail .capture-grid{margin:20px 0 8px;grid-auto-rows:1fr}
.capture-card.scan-card,.capture-card.building-card{position:relative;cursor:pointer}
.card-hit{position:absolute;inset:0;z-index:1;border:0;background:none;padding:0;border-radius:inherit;cursor:pointer}
.card-hit:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.scan-card .card-acts{position:relative;z-index:2}
/* Folders: a scan card drags onto a folder or building card; while one is
   dragged the cards it can land on say so, and the one under it lights up. */
.scan-card[draggable="true"]{cursor:grab}
.scan-card.dragging{opacity:.45}
.folder-card .folder-icon{width:96px;height:96px;color:#8a7458}
/* A folder's face: its newest scans' outlines, like a folder's contents seen
   from above, on a tab-topped sheet so it still reads as a folder. */
.folder-peek{position:relative;display:grid;gap:8px;align-self:flex-end;width:74%;height:calc(100% - 58px);margin:0 0 14px;padding:10px;border:1px solid #b7a68f;border-radius:4px 10px 10px 10px;background:#e7e1d6}
.folder-peek:before{content:'';position:absolute;left:-1px;top:-13px;width:34%;height:12px;border:1px solid #b7a68f;border-bottom:0;border-radius:8px 8px 0 0;background:#e7e1d6}
.folder-peek.peek-1{grid-template-columns:1fr}
.folder-peek.peek-2{grid-template-columns:1fr 1fr}
.folder-peek.peek-3,.folder-peek.peek-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.peek-tile{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;overflow:hidden;background:#f3efe8;border-radius:6px}
.peek-tile svg{width:86%;height:86%;color:#685a48}
.peek-tile .package-icon{width:46%;height:46%;color:#a8977f}
.folder-names{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.folder-more{color:var(--accent)}
.share-folder{max-width:520px}
.share-folder h2{margin:0 0 8px;font-size:26px}
.share-add{display:flex;gap:10px;margin:14px 0 6px}
.share-add label{flex:1}
.share-add input{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:transparent;font:inherit}
.share-list{list-style:none;margin:6px 0 16px;padding:0;border-top:1px solid var(--line)}
.share-list li{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}
.share-list .share-email{flex:1;min-width:0;overflow-wrap:anywhere}
.folder-shared{margin:2px 0 0}
.shared-folders{margin-bottom:34px}
.shared-folders>.section-title{margin:0 0 4px}
.card-address{margin:-4px 0 6px;font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.dragging-scan [data-drop-folder],.dragging-scan [data-drop-building]{border-style:dashed;border-color:var(--accent)}
.drop-target.capture-card{border:2px solid var(--accent);transform:translateY(-3px);box-shadow:0 10px 30px #221d1820}
.back.drop-target{color:var(--accent);outline:2px dashed var(--accent);outline-offset:6px}
.portfolio-detail .back{display:inline-block;margin:4px 0 18px}
.building-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid var(--line)}
.building-head h2{margin:0 0 4px;font-size:34px}
.building-head p{margin:0}
.section-title{font:500 11px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:26px 0 0}
.portfolio-detail .portfolio-building{margin-top:28px}
.portfolio-detail .portfolio-building .section-title{margin-top:0}

/* Adding a scan to a building: building first, then the part of it. */
.file-dialog{position:fixed;inset:0;z-index:50;background:#221d1840;display:flex;align-items:center;justify-content:center;padding:16px}
.file-dialog-card{width:min(520px,100%);max-height:calc(100vh - 32px);overflow:auto;border-radius:var(--radius-card);box-shadow:0 20px 60px #221d1830}
.file-panel{box-sizing:border-box;padding:22px 24px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface,#fbf9f5)}
.file-panel h3{margin:0 0 12px;font:500 18px/1.3 var(--serif);letter-spacing:-.01em}
.file-choices{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px}
.file-building{all:unset;box-sizing:border-box;width:100%;cursor:pointer;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:#fff}
.file-building:hover,.file-building:focus-visible{border-color:var(--accent)}
.file-building span{font-size:12.5px;color:var(--muted)}
.file-building em{font-style:normal;font-size:11.5px;color:var(--accent);margin-left:auto}
.file-crumb{margin:0 0 6px;font-size:13px;display:flex;gap:8px;align-items:baseline}
.file-option{display:flex;gap:10px;align-items:center;padding:6px 0;font-size:14px;cursor:pointer}
.file-option small{color:var(--muted);font-size:11.5px}
.file-option input{accent-color:var(--accent);width:16px;height:16px;margin:0}
.file-floor{margin:6px 0 4px;padding-left:12px;border-left:2px solid var(--line)}
.file-floor-name{margin:4px 0 0;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.file-panel .text-button{font-size:12.5px}
.file-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:16px}
.file-actions .btn.ghost{margin-left:auto}
#file-form:not(:empty){margin:10px 0}
@media(max-width:600px){.file-actions .btn{flex:1 1 auto}.file-actions .btn.ghost{margin-left:0}.building-head h2{font-size:28px}}

.card-visual .mini-axo{width:88%;height:90%}

/* A scan the app itself asked to re-walk says so, quietly, in the house red. */
.tag.attention{background:var(--accent-tint);color:var(--accent-dark)}
.tag.replica{background:linear-gradient(135deg,#f7e9bd,#e4c56c);color:#4f3a0c;box-shadow:inset 0 0 0 1px #c99f3a;font-weight:600;letter-spacing:.04em}
.site-checks{margin:0 0 16px;font-size:12.5px}
.site-checks strong{display:block;color:var(--ink);margin-bottom:4px}
.site-checks.attention strong{color:var(--accent-dark)}
.site-checks ul{margin:6px 0 0;padding-left:18px}
.site-checks li{margin:3px 0}
.site-checks details{margin-top:8px}
.site-checks summary{cursor:pointer;color:var(--ink)}
.answer-acts{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:6px 0 4px}
.answer-acts .btn{min-height:32px;padding:6px 14px;font-size:12px}

/* AI chat shares the Furnish camera and renderer. */
.furnish-ai-entry{flex:none;margin-top:auto;padding-top:12px;border-top:1px solid var(--line);background:var(--surface)}
.lay .furnish-ai-entry .btn{width:100%;min-height:44px;padding:10px 12px;font-size:13px;background:var(--accent);color:var(--surface);border-color:var(--accent)}
.lay-rail-left:has(.furnish-ai-entry)>#layRailChips{flex:1;min-height:0;overflow-y:auto;flex-wrap:nowrap;scrollbar-width:thin}
.lay-rail-left>.furnish-ai-entry{width:100%;padding-top:8px}
.lay-rail-left>.furnish-ai-entry .btn{padding:8px 0}
@media(max-width:760px){
 .lay-rail-left:has(.furnish-ai-entry)>#layRailChips{flex-direction:row;overflow-x:auto}
 .lay-rail-left>.furnish-ai-entry{width:auto;margin:0;padding:0;border:0}
 .lay-rail-left>.furnish-ai-entry .btn{min-width:44px}
}
#detail-content.with-furnish-ai{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,360px);gap:0;align-items:stretch}
.with-furnish-ai>.ws{min-width:0}
.with-furnish-ai .lay{height:calc(100dvh - 190px);min-height:480px}
.furnish-ai{display:flex;flex-direction:column;min-width:0;height:calc(100dvh - 190px);min-height:480px;padding:0;background:var(--surface);border:0;border-left:1px solid var(--line);border-radius:0;overflow:hidden;scrollbar-color:var(--muted) var(--paper)}
.furnish-ai>header{display:flex;flex:none;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.furnish-ai>header p{font-size:12px;margin:4px 0 0}
.furnish-ai>header [data-close]{width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:8px;flex:none}
.furnish-ai h2{margin:0;font-size:24px}
.furnish-ai-content{min-height:0;overflow:auto;scrollbar-gutter:stable}
body:has(.with-furnish-ai) #capture-chat,body:has(.tenant-studio) .property-chat{display:none}
.furnish-ai .studio-inline{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;border:0;background:transparent}
.furnish-ai .studio-inline>.studio-assistant{order:-3}
.furnish-ai .studio-inline>.studio-status{order:-5}
.furnish-ai .studio-inline>.studio-pending{order:-4}
.furnish-ai .studio-inline>.studio-model,.furnish-ai .studio-inline>.studio-views,.furnish-ai .studio-inline>h3,.furnish-ai .studio-inline>h3+p{display:none}
.furnish-ai .studio-inline>.studio-assistant{display:block}
.furnish-ai .studio-inline>.studio-selections{display:block}
.furnish-ai .studio-inline [data-chat]{padding:0;border:0;background:transparent}
.furnish-ai .studio-inline [data-chat] textarea{font-size:16px;min-height:120px}
.furnish-ai .studio-inline .studio-actions{display:flex;flex-wrap:wrap;gap:8px}
.furnish-ai .studio-inline .studio-actions label{width:100%;max-width:100%;margin:0}
.furnish-ai .studio-inline .studio-actions select{max-width:100%;font-size:16px}
.furnish-ai .studio-inline .studio-status,.furnish-ai .studio-inline .studio-log li{font-size:14px}
.studio-existing{grid-column:1/-1;min-width:0}
.studio-existing summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:500}
.studio-existing [data-fixtures]{display:grid;gap:8px;max-height:250px;overflow:auto}
.studio-existing button{overflow-wrap:anywhere;text-align:left;min-height:44px}
.studio-pending:not([hidden]){position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:12px;padding:14px;background:var(--paper);color:var(--ink);font-size:14px}
.studio-spinner{width:18px;height:18px;flex:none;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:studio-wait 1s linear infinite}
@keyframes studio-wait{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.studio-spinner{animation:none}}
@media(max-width:1000px){
 #detail-content.with-furnish-ai{grid-template-columns:minmax(0,1fr)}
 .furnish-ai{height:auto;min-height:0;max-height:none;margin-top:16px}
 .furnish-ai-content{overflow:visible}
 .with-furnish-ai .lay-catalogue,.with-furnish-ai .lay-rail-left,.with-furnish-ai .lay-inspect,.with-furnish-ai .lay-rail-right{display:none}
 .with-furnish-ai .lay{display:block;height:330px;min-height:0}
 .with-furnish-ai .lay-stage{height:330px;min-height:0}
 .with-furnish-ai>.ws{height:auto;min-height:0}
}

/* One chat surface: only the transcript scrolls; the composer stays reachable. */
.furnish-ai-content:has(.studio-live){flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden;scrollbar-gutter:auto}
.furnish-ai-content:has(.studio-live) #stake-status,.furnish-ai-content:has(.studio-live) #stake-result{flex:none;max-height:30%;overflow:auto}
.furnish-ai-content:has(.studio-live) #stake-studio{margin:0;border:0;border-radius:0}
.furnish-ai-content:has(.studio-live) #stake-studio,.furnish-ai-content:has(.studio-live) #stake-studio-view,.furnish-ai .studio-live{flex:1;display:flex;flex-direction:column;min-height:0}
.furnish-ai .studio-live .studio-assistant{display:flex;flex-direction:column;flex:1;min-height:0}
.furnish-ai .studio-live .studio-log{flex:1 1 0;min-height:0;max-height:none;overflow:auto;overscroll-behavior:contain;margin:0;padding:20px 16px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.furnish-ai .studio-live .studio-log li{position:relative;border:0;margin:0 0 20px;padding:0;font-size:14px;line-height:1.6}
.furnish-ai .studio-live .studio-message strong{display:block;font-size:12px;margin-bottom:4px;color:var(--accent)}
.furnish-ai .studio-live .studio-message p{margin:0;color:var(--ink)}
.furnish-ai .studio-live .studio-log .is-user{margin-left:24px;padding:10px 14px;border-radius:12px 12px 3px 12px;background:var(--accent);color:var(--surface)}
.furnish-ai .studio-live .is-user strong{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.furnish-ai .studio-live .is-user p{color:inherit}
.furnish-ai .studio-live .studio-welcome{padding:12px 2px}
.furnish-ai .studio-live .studio-welcome h3{font-size:23px;line-height:1.25;margin:0 0 12px}
.furnish-ai .studio-live .studio-welcome p{margin:0;color:var(--muted)}
.furnish-ai .studio-compose{flex:none;padding:12px 16px 10px;border-top:1px solid var(--line);background:var(--surface)}
.furnish-ai .studio-live .studio-status,.furnish-ai .studio-live [data-design-selection]{font-size:12px;line-height:1.5;margin:0 0 8px;max-height:72px;overflow:auto}
.furnish-ai .studio-live [data-design-selection]{color:var(--accent);font-weight:500;overflow-wrap:anywhere}
.furnish-ai .studio-live [data-design-selection]:empty,.furnish-ai .studio-live .studio-status:empty{display:none}
.furnish-ai .studio-live [data-chat]{display:flex;align-items:flex-end;gap:8px;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.furnish-ai .studio-live [data-chat]:focus-within{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px}
.furnish-ai .studio-live [data-chat] textarea{flex:1;width:0;min-width:0;min-height:60px;height:60px;max-height:120px;padding:8px 6px;border:0;outline:none;border-radius:0;resize:none;font-size:16px;line-height:1.5;background:transparent;box-shadow:none}
.furnish-ai .studio-live [data-chat] textarea::placeholder{color:var(--muted);opacity:1}
.furnish-ai .studio-live [data-chat] button{width:44px;height:44px;min-height:44px;flex:none;padding:0;border-radius:9px;align-self:flex-end}
.furnish-ai .studio-live .small-note{margin:8px 0 0;font-size:11px;line-height:1.4!important}
.furnish-ai .studio-live .studio-caution{margin-top:2px}
/* Pick a business: the picker under the welcome, its capacity line and the AI disclosure (D14, D15). */
.studio-business-picker{margin-top:16px}
.studio-business-picker>p{margin:0 0 8px;font-size:13px;color:var(--muted)}
.studio-business-picker>div{display:flex;flex-wrap:wrap;gap:8px}
.studio-business-picker .btn{min-height:36px;padding:6px 12px;font-size:13px}
.studio-capacity{margin:0 0 8px;font-size:12px;line-height:1.5;color:var(--ink);font-weight:500}
.studio-ai-disclosure{margin:8px 0 0!important;font-size:11px;line-height:1.4;color:var(--muted)!important;font-style:italic}
/* The shell measures its header naturally, rather than subtracting a guessed
   pixel height from every child and creating empty page overflow. */
@media(min-width:1001px){
 /* Panels own scrolling in the desktop editor; focus must not scroll the page. */
 html:has(.furnish-ai-entry),body:has(.furnish-ai-entry){overflow:clip}
 .workspace-layout:has(.furnish-ai-entry){height:100dvh;min-height:0}
 .workspace-layout:has(.furnish-ai-entry)>.main-area{display:flex;flex-direction:column;min-height:0;min-width:0}
 .workspace-layout:has(.furnish-ai-entry) .topbar{flex:none}
 .workspace-layout:has(.furnish-ai-entry) .content{width:100%;display:flex;flex-direction:column;flex:1;min-height:0;padding:0}
 .workspace-layout:has(.furnish-ai-entry) #detail-content{flex:1;min-height:0;display:grid;grid-template-rows:minmax(0,1fr)}
 .workspace-layout:has(.furnish-ai-entry) #detail-content>.ws{height:100%;min-height:0;min-width:0}
 .workspace-layout:has(.furnish-ai-entry) .lay{height:100%;min-height:0}
 .workspace-layout:has(.furnish-ai-entry) .lay-stage{min-height:0}
 .workspace-layout:has(.furnish-ai-entry) .furnish-ai{height:100%;min-height:0}
}
@media(max-width:1000px){
 .furnish-ai{height:min(620px,85dvh);min-height:360px}
 .with-furnish-ai .lay[data-library] .lay-rail-left,.with-furnish-ai .lay[data-inspect] .lay-rail-right{display:none}
}

/* Furnish is an edge-to-edge editor; panel interiors own their spacing. */
.workspace-layout:has(.furnish-ai-entry) .content{max-width:none}
.workspace-layout:has(.furnish-ai-entry) .lay-chips{flex-shrink:0}
.workspace-layout:has(.furnish-ai-entry) .lay-catalogue>.lay-head,
.workspace-layout:has(.furnish-ai-entry) .lay-catalogue>.lay-find,
.workspace-layout:has(.furnish-ai-entry) .lay-catalogue>.lay-hint{flex-shrink:0}
.furnish-ai .studio-live .studio-log .is-assistant{background:var(--paper);padding:12px;border-radius:3px 12px 12px 12px;overflow-wrap:anywhere}
.furnish-ai .studio-live .studio-message p+p{margin-top:8px}
.furnish-ai .studio-live .studio-thinking p{display:flex;align-items:center;gap:10px;color:var(--muted)}
.furnish-ai .studio-live .studio-changes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
.furnish-ai .studio-live .studio-change{padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:8px;min-width:0}
.furnish-ai .studio-live .studio-change span{display:block;font-size:11px;line-height:1.4;color:var(--accent);margin-bottom:4px}
.furnish-ai .studio-live .studio-change b{display:block;font-size:12px;line-height:1.4;font-weight:500;color:var(--ink)}
.furnish-ai-content:has(.studio-live) #stake-status:not(:empty),.furnish-ai-content:has(.studio-live) #stake-result:not(:empty){padding:12px 16px}
@media(min-width:1001px) and (max-width:1500px){
 .with-furnish-ai .lay{grid-template-columns:228px 0 minmax(0,1fr) 0 244px}
 .with-furnish-ai .lay[data-library="shut"]{grid-template-columns:0 44px minmax(0,1fr) 0 244px}
 .with-furnish-ai .lay[data-inspect="shut"]{grid-template-columns:228px 0 minmax(0,1fr) 44px 0}
 .with-furnish-ai .lay[data-library="shut"][data-inspect="shut"]{grid-template-columns:0 44px minmax(0,1fr) 44px 0}
 .with-furnish-ai .lay-catalogue{padding:14px 10px}
 .with-furnish-ai .lay-inspect{padding:14px 10px}
}

.furnish-ai .studio-design-summary{margin-top:12px;border-top:1px solid var(--line);padding-top:10px;font-size:13px;line-height:1.55}
.furnish-ai .studio-design-summary summary{cursor:pointer;font-weight:600;color:var(--ink)}
.furnish-ai .studio-design-summary h4{font:600 12px/1.5 var(--font-body, sans-serif);margin:14px 0 4px;color:var(--ink)}
.furnish-ai .studio-design-summary ul{margin:0;padding-left:18px;color:var(--muted)}
.furnish-ai .studio-design-summary li{margin:4px 0}

/* Public exploration and account-owned tenant Furnish reuse the same editor. */
.listing-signin{padding:24px;margin:16px 0}.listing-signin h2{font-size:28px;margin-top:0}
.listing-studio-toolbar{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:16px;border-bottom:1px solid var(--line);background:var(--surface)}
.listing-studio-toolbar p{font-size:13px;margin:4px 0 0}.listing-studio-toolbar>.actions{margin-left:auto;flex-wrap:wrap}
.listing-studio-workspace{display:grid;grid-template-columns:minmax(0,1fr) 360px;min-width:0}.listing-studio-workspace>.ws{min-width:0}
.listing-studio-workspace .lay,.listing-studio-workspace .furnish-ai{height:calc(100dvh - 150px);min-height:500px}
body:has(.listing-studio) #main{max-width:none;padding:0;width:100%}.listing-share{padding:20px;max-width:700px}.listing-share textarea{width:100%}
@media(max-width:1000px){.listing-studio-workspace{grid-template-columns:1fr}.listing-studio-workspace .furnish-ai{height:650px;min-height:450px;border-top:1px solid var(--line)}.listing-studio-toolbar>.actions{margin-left:0}}
@media(prefers-reduced-motion:reduce){.listing-studio *{scroll-behavior:auto}}
body:has(.listing-workspace) #main{max-width:none;width:100%;padding:0}
.listing-workspace>.topbar{position:sticky;top:0;z-index:20;flex-wrap:wrap;gap:16px;padding:14px 24px;background:#300916;color:#F7F3EE}
.listing-workspace .crumb{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit}
.listing-workspace .topbar-left{min-width:0;gap:16px}.listing-brand{display:flex;flex:none;align-items:center}.listing-brand img{display:block;width:132px;height:auto;filter:brightness(0) invert(1)}
/* The views' switcher is the workspace's own (view-tabs.mjs, styled as .view-tabs); its row only places it. */
.listing-workspace .tabs{flex:none;margin:0;padding:0;border:0;overflow:visible}
.listing-workspace .top-actions{display:flex;align-items:center;gap:14px;margin-left:auto}
.listing-workspace .top-actions .btn{color:#F7F3EE;border-color:#C595A4;background:transparent}.listing-workspace .private-label{color:#E3CDD4}
.listing-workspace .lay .lay-keys,.listing-workspace .lay .lay-keys.open{border-radius:10px;padding:10px 12px 8px;cursor:default}
.listing-workspace .lay .lay-keys:hover,.listing-workspace .lay .lay-keys:focus-within,.listing-workspace .lay .lay-keys:focus{border-radius:10px}
.listing-view>.ws{padding:0}.listing-view>.public-header{display:none}.listing-view>.page-heading,.listing-view>.listing-summary,.listing-view>.listing-enquiry,.listing-view>footer{margin:24px auto;max-width:1100px;padding:0 24px}
.listing-view .listing-studio-toolbar>[data-back]{display:none}.listing-view .listing-studio-toolbar{padding:10px 20px}
.listing-signin{margin:16px 24px}
@media(max-width:700px){.listing-workspace>.topbar{padding:12px;gap:10px}.listing-workspace .topbar-left{width:100%}.listing-brand img{width:112px}.listing-workspace .top-actions{margin-left:0}.listing-workspace .private-label{display:none}.listing-view>.ws{padding:0}}
.listing-qualification{padding:12px 24px;border-bottom:1px solid var(--line);font-size:13px}.listing-qualification p{margin:4px 0 0}
.listing-view>.public-property-header{display:none}
.top-actions .listing-studio-toolbar{border:0;padding:0;background:transparent;gap:12px;flex-wrap:nowrap}
.top-actions .listing-studio-toolbar>[data-back],.top-actions .listing-studio-toolbar [data-undo],.top-actions .listing-studio-toolbar [data-redo]{display:none}
.top-actions .listing-studio-toolbar>div:not(.actions){max-width:180px}.top-actions .listing-studio-toolbar strong{font-size:12px}.top-actions .listing-studio-toolbar p{font-size:11px;color:#E3CDD4;line-height:1.3}
.top-actions .listing-studio-toolbar .btn{min-height:44px;padding:10px 16px;font-size:13px}.top-actions .listing-studio-toolbar [data-save]{background:#7B2843}
.listing-studio-workspace .lay,.listing-studio-workspace .furnish-ai{height:calc(100dvh - 100px)}
@media(max-width:1100px){.top-actions .listing-studio-toolbar>div:not(.actions){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}}
@media(max-width:1000px){.listing-studio-workspace .furnish-ai{height:650px}}
.design-coming-soon{padding:16px;border:1px solid var(--line);border-radius:12px;background:#f7f3ee;color:#3b3033;font-size:14px;line-height:1.5}.design-coming-soon strong{color:#7b2843;font-size:14px}.design-coming-soon p{margin:6px 0 0}.furnish-ai-entry button:disabled{opacity:1;background:#eee7e1;color:#65565c;border-color:#d4c5c9;cursor:default}

/* The tenant Details view shares the relationship portal's document/request model. */
.listing-view:has(>.tenant-details){overflow:auto;min-height:0}
.tenant-details{max-width:1180px;margin:0 auto;padding:32px clamp(16px,4vw,48px) 64px;width:100%;box-sizing:border-box}
.tenant-details h1{font-size:clamp(32px,4vw,48px)}
.tenant-details h2{font-size:28px;margin:32px 0 12px}.tenant-details h3{font-size:21px;margin:10px 0 12px}
.tenant-document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:20px 0 32px}
.tenant-document-card{background:#fff;border:1px solid var(--line,#dfd3c9);border-radius:12px;padding:24px;min-width:0;margin-bottom:16px;overflow-wrap:anywhere}
.tenant-document-grid .tenant-document-card{margin:0;display:flex;flex-direction:column;align-items:flex-start}
.tenant-document-card form{width:100%;margin-top:auto;padding-top:12px}
.tenant-document-card details{margin:0 0 12px}.tenant-document-card summary{font-size:14px;cursor:pointer}.tenant-document-card summary span{color:var(--muted,#75616b)}
.tenant-document-card textarea{width:100%;box-sizing:border-box;font:inherit;font-size:15px;padding:12px;border-radius:8px;margin-top:10px}
.tenant-document-card .btn{font-size:14px;border-radius:8px;white-space:normal;text-align:center;min-height:44px}
.tenant-document-card p{line-height:1.55}.tenant-document-card blockquote{margin:16px 0;padding-left:16px;border-left:3px solid #7b2843}
.tenant-request-status{color:#68223b;font-weight:600}.tenant-details .eyebrow{font-size:11px}
@media(max-width:700px){.tenant-document-grid{grid-template-columns:1fr}.tenant-details{padding-top:20px}.tenant-document-card{padding:20px}}
.tenant-local-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;padding:8px 16px;background:var(--ivory,#FAF6F0);border-bottom:1px solid rgba(79,14,24,.12);font-size:13px}
.tenant-local-bar[hidden]{display:none}
.listing-audience{position:relative;display:inline-flex}
.listing-workspace button.private-label{font:inherit;background:none;border:0;padding:4px 2px;cursor:pointer;text-align:right}
.listing-workspace button.private-label:disabled{cursor:default}
.listing-workspace button.private-label:not(:disabled):after{content:'';display:inline-block;width:6px;height:6px;margin:0 0 2px 7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}
.listing-local-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:40;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:240px;padding:12px 14px;border:1px solid rgba(79,14,24,.14);border-radius:12px;background:var(--ivory,#FAF6F0);color:var(--ink,#300916);box-shadow:0 12px 30px rgba(34,29,24,.18);font-size:13px}
.listing-local-menu[hidden]{display:none}
/* On a listing, Explore's panel sits where Furnish's library does, the same
   width, so moving between the two tabs leaves the room where it is: the
   canvas keeps its left edge and only its right gives up Furnish's 56 px rail.
   (The private portal keeps its inspector on the right.) Phones stack. */
@media(min-width:1001px){
 .listing-workspace .lay[data-lens="space"]{grid-template-columns:302px 0 minmax(0,1fr) 0 0}
 .listing-workspace .lay[data-lens="space"] .lay-inspect{grid-column:1;grid-row:1;border-left:0;border-right:1px solid var(--line)}
}
@media(min-width:1001px){
 /* Folded, it leaves its rail on the same side, and its arrows point that way. */
 .listing-workspace .lay[data-lens="space"][data-inspect="shut"]{grid-template-columns:56px 0 minmax(0,1fr) 0 0}
 .listing-workspace .lay[data-lens="space"] .lay-rail-right{grid-column:1;grid-row:1;border-left:0;border-right:1px solid var(--line)}
 .listing-workspace .lay[data-lens="space"] .lay-inspect-head{justify-content:flex-start}
 .listing-workspace .lay[data-lens="space"] .lay-fold[data-fold="inspect"]>span[aria-hidden],.listing-workspace .lay[data-lens="space"] .lay-inspect-head .lay-fold{display:inline-block;transform:scaleX(-1)}
}
@media(min-width:1001px) and (max-width:1100px){
 .listing-workspace .lay[data-lens="space"]{grid-template-columns:260px 0 minmax(0,1fr) 0 0}
 .listing-workspace .lay[data-lens="space"] .lay-space-rail .lay-figures{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.lay-inspect-title{display:none}
/* ---- A listing's side panels, open and put away (Evan, 31 Oct) -----------
   Open, each panel has one header: its name and, at the right, the control
   that puts it away. Put away, it leaves no strip: the room takes the whole
   width and the panel waits as a labelled pill over the room, in the same
   white as the 2D/3D and Render groups it sits beside. Phones stack instead. */
@media(min-width:1001px){
 .listing-workspace .lay{--lay-lib:302px;--lay-insp:330px;position:relative}
 .listing-workspace .lay:not([data-lens="space"]){grid-template-columns:var(--lay-lib) 0 minmax(0,1fr) 0 var(--lay-insp)}
 .listing-workspace .lay:not([data-lens="space"])[data-library="shut"]{grid-template-columns:0 0 minmax(0,1fr) 0 var(--lay-insp)}
 .listing-workspace .lay:not([data-lens="space"])[data-inspect="shut"]{grid-template-columns:var(--lay-lib) 0 minmax(0,1fr) 0 0}
 .listing-workspace .lay:not([data-lens="space"])[data-library="shut"][data-inspect="shut"],
 .listing-workspace .lay[data-lens="space"][data-inspect="shut"]{grid-template-columns:0 0 minmax(0,1fr) 0 0}
 .listing-workspace .lay[data-lens="space"]{grid-template-columns:var(--lay-lib) 0 minmax(0,1fr) 0 0}
 /* Put away: a pill over the room, top left or top right. */
 .listing-workspace .lay>.lay-rail{position:absolute;top:14px;z-index:5;width:auto;padding:0;border:0;background:none;overflow:visible;animation:lay-pill-in .24s cubic-bezier(.2,.7,.2,1) both}
 .listing-workspace .lay>.lay-rail>:not(.lay-fold){display:none}
 .listing-workspace .lay>.lay-rail-left,.listing-workspace .lay[data-lens="space"]>.lay-rail-right{left:14px;right:auto}
 .listing-workspace .lay>.lay-rail-right{right:14px;left:auto}
 .listing-workspace .lay>.lay-rail>.lay-fold{display:inline-flex;align-items:center;gap:8px;width:auto;max-width:300px;height:42px;min-height:42px;padding:0 12px 0 16px;justify-content:flex-start;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font:600 13px/1 var(--sans,inherit);white-space:nowrap;box-shadow:0 6px 24px #221d181a;transform:none}
 .listing-workspace .lay>.lay-rail>.lay-fold:hover{background:var(--paper);border-color:var(--line)}
 .listing-workspace .lay>.lay-rail>.lay-fold[data-fold]>span[aria-hidden]{display:none}
 .listing-workspace .lay>.lay-rail .lay-rail-label{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}
 /* Beside a pill, the room's own groups move over to make room for it. */
 .listing-workspace:not(.is-embed-listing) .lay[data-lens="space"][data-inspect="shut"] .lay-viewmain,
 .listing-workspace:not(.is-embed-listing) .lay:not([data-lens="space"])[data-library="shut"] .lay-viewmain{left:var(--lay-pill-room,158px)}
 /* Furnish's inspector shuts itself whenever nothing is selected, so its pill
    sits under the Render group rather than pushing it along on every click. */
 .listing-workspace .lay:not([data-lens="space"])>.lay-rail-right{top:72px}
 .listing-workspace .lay>.lay-rail>.lay-fold:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
 /* Chevrons, pointing the way the panel goes: a put-away panel's pill points
    into the room it opens across; an open panel's control points to its edge. */
 .listing-workspace .lay .lay-fold::before{content:'';display:block;flex:none;width:16px;height:16px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 4.8l5.2 5.2L8 15.2'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 4.8l5.2 5.2L8 15.2'/%3E%3C/svg%3E") center/contain no-repeat}
 .listing-workspace .lay>.lay-rail-left .lay-fold::before,.listing-workspace .lay[data-lens="space"]>.lay-rail-right .lay-fold::before{order:2}
 .listing-workspace .lay:not([data-lens="space"])>.lay-rail-right .lay-fold::before,
 .listing-workspace .lay .lay-catalogue .lay-head .lay-fold::before,
 .listing-workspace .lay[data-lens="space"] .lay-inspect-head .lay-fold::before{transform:rotate(180deg)}
 .listing-workspace .lay:not([data-lens="space"])>.lay-rail-right .lay-fold{padding:0 16px 0 12px}
 /* Open: the control that puts it away, in the panel's header. */
 .listing-workspace .lay :is(.lay-catalogue .lay-head,.lay-inspect-head) .lay-fold{display:inline-grid;place-items:center;width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font-size:0;transform:none;margin-left:auto}
 .listing-workspace .lay :is(.lay-catalogue .lay-head,.lay-inspect-head) .lay-fold:hover{background:var(--paper)}
 .listing-workspace .lay[data-lens="space"] .lay-fold[data-fold="inspect"]>span[aria-hidden]{transform:none}
 /* Its name, Clear furniture, the menu and the close control fit one line: the count gives way. */
 .listing-workspace .lay .lay-catalogue .lay-head{align-items:center;min-width:0;gap:8px}
 .listing-workspace .lay .lay-catalogue .lay-head .lay-count{display:none}
 .listing-workspace .lay .lay-catalogue .lay-head .lay-clear-btn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .listing-workspace .lay:not([data-lens="space"]) .lay-inspect-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px}
 .listing-workspace .lay:not([data-lens="space"]) .lay-inspect-title{display:block}
 /* Furnish's right panel holds one thing at a time, so it is one surface, not
    a card framed inside a panel. */
 .listing-workspace .lay:not([data-lens="space"]) .lay-inspect{background:var(--paper)}
 .listing-workspace .lay:not([data-lens="space"]) .lay-inspect #layPanel>.lay-panel{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
 .listing-workspace .lay:not([data-lens="space"]) .lay-inspect-head .lay-fold{background:transparent}
 .listing-workspace .lay:not([data-lens="space"]) .lay-inspect-head .lay-fold:hover{background:#E3DCD2}
 /* What else is in the room sits under the selection on the same surface, set off by a rule. */
 .listing-workspace .lay:not([data-lens="space"]) .lay-inspect #layRoom .lay-room{margin-top:18px;padding:18px 0 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}
 /* In Explore the panel's header is the listing's own name. */
 .listing-workspace .lay[data-lens="space"] .lay-inspect{position:relative}
 .listing-workspace .lay[data-lens="space"] .lay-inspect-head{position:absolute;top:var(--lay-head-top,20px);right:var(--lay-head-right,20px);z-index:1;margin:0}
 .listing-workspace .lay[data-lens="space"] .listing-identity{padding-right:46px}
}
@media(min-width:1001px) and (max-width:1100px){.listing-workspace .lay{--lay-lib:260px;--lay-insp:290px}}
/* Stacked under the room (tablet portrait and down), the panel is part of the page and has nothing to fold into:
   its fold arrow was a lone "›" above the address. The private portal hides it the same way. */
@media(max-width:1000px){
 .listing-workspace .lay-inspect-head{display:none}
 /* Furnish stacked: the library's own fold arrow shut it onto an empty page (the "Library" pill reopens it), and
    "Selection" with nothing picked opened an empty inspector. Picking a piece still opens it by itself, and with a
    piece picked and the library opened by hand, "Selection" is there to go back to it. */
 .listing-workspace .lay-catalogue .lay-head>.lay-fold{display:none}
 .listing-workspace .lay:not([data-lens="space"]):not([data-picked])>.lay-rail-right{display:none}
}
/* The listing's name at the head of Furnish's library, as at the head of
   Explore's panel and of Details: a row above the library's own, shorter, so
   the furniture keeps the height. */
@media(min-width:701px){
 .listing-workspace .lay .lay-catalogue:has(>.listing-identity){grid-template-rows:auto auto auto auto minmax(0,1fr) auto}
 .listing-workspace .lay .lay-catalogue>.listing-identity{grid-column:1/-1;grid-row:1;display:flex;flex-direction:column;gap:3px;padding:2px 2px 12px;border-bottom:1px solid #E7DCD5}
 .listing-workspace .lay .lay-catalogue:has(>.listing-identity)>.lay-head{grid-row:2}
 .listing-workspace .lay .lay-catalogue:has(>.listing-identity)>.lay-replacing{grid-row:3}
 .listing-workspace .lay .lay-catalogue:has(>.listing-identity)>.lay-category-tabs{grid-row:4}
 .listing-workspace .lay .lay-catalogue:has(>.listing-identity)>.lay-shelf{grid-row:5}
 .listing-workspace .lay .lay-catalogue:has(>.listing-identity)>.lay-hint{grid-row:6}
}
.listing-workspace .lay .lay-catalogue>.listing-identity .listing-identity-title{margin:0;font:400 21px/1.2 Marcellus,var(--font-display,serif);color:#300916;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.listing-workspace .lay .lay-catalogue>.listing-identity .listing-identity-address{margin:0;font-size:13px;line-height:1.35;color:#705A62;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.listing-workspace .lay .lay-catalogue>.listing-identity .listing-identity-floor{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:13px;color:#705A62}
.listing-workspace .lay .lay-catalogue>.listing-identity .listing-identity-floor select{min-height:34px;border:1px solid #D9C7CB;border-radius:10px;background:#fff;color:#300916;padding:0 10px;font:inherit}
@media(min-width:701px) and (max-width:1000px){.listing-workspace .lay .lay-catalogue:has(>.listing-identity){grid-template-rows:repeat(6,auto)}}
@media(max-width:700px){.listing-workspace .lay .lay-catalogue>.listing-identity{display:none}}
@keyframes lay-pill-in{from{opacity:0;transform:translateY(-4px) scale(.97)}}
/* Moving between Explore, Furnish and Details (swap() in listing-experience.mjs):
   the room holds still, the panel on each side slides in from its own edge,
   and Details rises into place. The browser draws it from two still pictures,
   so the 3D view is never resized frame by frame. */
@media(min-width:701px) and (prefers-reduced-motion:no-preference){
 .listing-workspace:not(.is-embed-listing) .lay-stage{view-transition-name:listing-room}
 .listing-workspace:not(.is-embed-listing) .lay[data-lens="space"] .lay-inspect,
 .listing-workspace:not(.is-embed-listing) .lay:not([data-lens="space"]) .lay-catalogue{view-transition-name:listing-left}
 .listing-workspace:not(.is-embed-listing) .lay:not([data-lens="space"]) .lay-inspect{view-transition-name:listing-right}
 .listing-workspace:not(.is-embed-listing) .listing-details-host{view-transition-name:listing-details}
}
::view-transition-group(root),::view-transition-group(listing-room),::view-transition-group(listing-left),::view-transition-group(listing-right),::view-transition-group(listing-details){animation-duration:.36s;animation-timing-function:cubic-bezier(.22,.8,.24,1)}
::view-transition-old(listing-left),::view-transition-old(listing-right){animation:listing-fade-out .16s ease-out both}
::view-transition-new(listing-left){animation:listing-from-left .34s cubic-bezier(.22,.8,.24,1) .04s both}
::view-transition-new(listing-right){animation:listing-from-right .34s cubic-bezier(.22,.8,.24,1) .04s both}
::view-transition-old(listing-left):only-child{animation:listing-to-left .24s ease-in both}
::view-transition-old(listing-right):only-child{animation:listing-to-right .24s ease-in both}
::view-transition-old(listing-details){animation:listing-fade-out .18s ease-out both}
::view-transition-new(listing-details){animation:listing-rise .38s cubic-bezier(.22,.8,.24,1) .05s both}
@keyframes listing-fade-out{to{opacity:0}}
@keyframes listing-from-left{from{opacity:0;transform:translateX(-28px)}}
@keyframes listing-from-right{from{opacity:0;transform:translateX(28px)}}
@keyframes listing-to-left{to{opacity:0;transform:translateX(-28px)}}
@keyframes listing-to-right{to{opacity:0;transform:translateX(28px)}}
@keyframes listing-rise{from{opacity:0;transform:translateY(14px)}}
@media(prefers-reduced-motion:reduce){.listing-workspace .lay>.lay-rail{animation:none}}
/* The space's figures: two columns, the ceiling's range across both, so no
   label runs under its neighbour and no figure breaks from its unit. */
.lay[data-lens="space"] .lay-space-rail .lay-figures{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;row-gap:14px}
.lay[data-lens="space"] .lay-space-rail .lay-figures>div{min-width:0}
.lay[data-lens="space"] .lay-space-rail .lay-figures>div[data-figure^="Ceiling"]{grid-column:1/-1;order:2}
.lay[data-lens="space"] .lay-space-rail .lay-figures dt{white-space:normal}
.lay[data-lens="space"] .lay-space-rail .lay-figures dd{white-space:nowrap}
.listing-workspace .top-actions button.private-label:not(:disabled){display:inline-flex;align-items:center;max-width:none;white-space:nowrap;font-size:13px;color:var(--burgundy,#4F0E18);text-align:left}
.listing-workspace .top-actions button.private-label:not(:disabled):before{display:none}
/* On the dark header: the header's own light ink. */
.listing-workspace:not(.is-phone-stack) .top-actions button.private-label:not(:disabled){color:#F3E6EA}
.listing-workspace .listing-local-menu .tenant-local-note,.listing-workspace:not(.is-embed-listing) .listing-local-menu .tenant-local-note{position:static;display:block;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal;color:var(--muted,#6b5d55);margin:0 0 2px}
/* On a phone the layout label is shown only when it opens the guest's menu. */
.listing-workspace.is-phone-stack button.private-label:not(:disabled):not([hidden]){display:inline-flex;align-items:center;font-size:12px;color:var(--burgundy,#4F0E18);white-space:nowrap}
.is-phone-stack .listing-local-menu{right:-8px;max-width:calc(100vw - 24px)}
.listing-local-menu .text-button{font-size:13px;color:var(--burgundy,#4F0E18);text-decoration:underline;text-underline-offset:3px;background:none;border:0;padding:4px 0;cursor:pointer}
.tenant-local-note{color:var(--muted,#6b6b6b);margin-right:auto}
.tenant-local-bar .text-button{font-size:13px;color:var(--burgundy,#4F0E18);text-decoration:underline;text-underline-offset:3px;background:none;border:0;padding:4px 0;cursor:pointer}

/* Shared furniture pictograms, drawn at the same scale as the viewer tools. */
.lay-category-icon{display:block;width:24px;height:24px;flex:none;pointer-events:none}
.lay #layChips{display:flex;flex-wrap:wrap;gap:6px;overflow:visible;padding:2px}
.lay #layChips button,.lay #layRailChips button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;min-height:44px;padding:9px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink)}
.lay #layChips button.on,.lay #layRailChips button.on{background:var(--accent);border-color:var(--accent);color:var(--surface)}
.lay #layChips button:focus-visible,.lay #layRailChips button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.lay-category-current{margin:0;font-size:14px;line-height:1.4;font-weight:500;color:var(--ink)}
.lay-rail-label{display:none}
.ws,.listing-view,.listing-studio,.listing-studio-workspace{min-width:0}

/* Phone/tablet editor: keep the newer room-first sheet arrangement. Later than
   the desktop Space grid so its five columns cannot leak into a narrow view. */
@media(max-width:1000px){
 .lay,.lay[data-library],.lay[data-inspect],.lay[data-library][data-inspect],.lay[data-lens="space"],.lay[data-lens="space"][data-inspect="shut"]{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(320px,58dvh) auto auto auto;height:auto;min-height:0;transition:none}
 .lay>.lay-catalogue{grid-column:1;grid-row:4}
 .lay>.lay-rail-left{grid-column:1;grid-row:2}
 .lay>.lay-stage{grid-column:1;grid-row:1;min-width:0;min-height:0}
 .lay>.lay-inspect{grid-column:1;grid-row:4}
 .lay>.lay-rail-right{grid-column:1;grid-row:3}
 .lay>.lay-catalogue{height:auto;max-height:none;overflow:visible;min-width:0;padding:16px}
 .lay>.lay-inspect{max-height:none;overflow:visible;padding:16px;border-left:0}
 .lay>.lay-rail{flex-direction:row;flex-wrap:nowrap;justify-content:flex-start;padding:6px 10px;gap:8px;min-width:0;border:0;border-bottom:1px solid var(--line)}
 .lay .lay-rail-left>#layRailChips{display:flex;flex:1;min-width:0;width:0;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;gap:6px;scrollbar-width:thin;padding:2px}
 .lay .lay-rail-label{display:inline;font-size:13px}
 .lay .lay-rail>.lay-fold{display:flex;align-items:center;justify-content:center;gap:6px;width:auto;padding:8px 10px;min-height:44px;min-width:44px}
 .lay .lay-fold{min-width:44px;min-height:44px}
 .lay .lay-rail-chip{writing-mode:horizontal-tb;min-width:0;max-height:none}
 .lay .lay-head{flex:none}
 .lay .lay-cards{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
 .lay #layChips{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
 .lay .lay-find input,.lay .lay-dim input,.lay .lay-wall-name{font-size:16px}
 .listing-studio-workspace .lay{height:auto;min-height:0}
 .listing-studio-workspace .furnish-ai{height:520px;min-height:0;max-width:100%}
 .listing-studio-workspace{grid-template-columns:minmax(0,1fr)}
 .listing-view>.ws{padding:0}
 .lay .lay-viewmain .lay-view-switch button,.lay .lay-viewbar button{min-height:44px;min-width:44px}
 .lay .lay-viewbar :is(.lay-more,.lay-full-btn){height:44px}
 .lay .lay-float button{min-width:44px;min-height:44px}
 .listing-workspace>.topbar{gap:12px;padding:12px 16px}
 .listing-workspace .topbar-left{flex:1 1 100%;min-width:0;max-width:100%}
 .listing-workspace .crumb{flex:1;min-width:0;max-width:none}
 .listing-workspace .top-actions{min-width:0;max-width:100%;flex-wrap:wrap}
 .listing-workspace [data-furnish-tools]{min-width:0;max-width:100%}
 .listing-workspace .top-actions .listing-studio-toolbar{min-width:0;max-width:100%}
 .listing-workspace .top-actions .listing-studio-toolbar>.actions{margin:0;min-width:0;flex-wrap:wrap}
}
@media(max-width:700px){
 .listing-workspace>.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:10px 12px;gap:8px;position:relative}
 .listing-workspace .topbar-left{grid-column:1/-1;gap:12px;width:100%}
 .listing-workspace .listing-brand img{width:112px}
 .listing-workspace .crumb{font-size:13px}
 .listing-workspace .topbar .topbar-tabs{grid-column:1;grid-row:2;order:0;min-width:0;width:100%}
 .listing-workspace .tab-lenses.view-tabs{width:100%}
 .listing-workspace .tab-lenses.view-tabs button{flex:1;justify-content:center;min-height:40px;height:40px}
 .listing-workspace .topbar>.lay-top{grid-column:2;grid-row:2;gap:2px}
 .listing-workspace .lay-top-btn{width:44px;height:44px}
 .listing-workspace .lay-top-sep{display:none}
 .listing-workspace .top-actions{grid-column:1/-1;grid-row:3;order:0;margin:0;gap:8px;justify-content:flex-start}
 .listing-workspace .top-actions:has([data-furnish-tools]:empty){justify-content:flex-end}
 .listing-workspace .top-actions .btn{min-height:44px;font-size:13px;padding:9px 12px;white-space:normal}
 .listing-workspace .top-actions .listing-studio-toolbar>.actions{gap:8px}
 .listing-workspace #listing-floor{max-width:110px;font-size:16px}
 .listing-signin{margin:12px;padding:16px}.listing-signin .actions{flex-wrap:wrap}
 .tenant-document-card textarea,.listing-share textarea{font-size:16px}
 .tenant-document-card summary{padding:10px 0;min-height:44px;box-sizing:border-box}
 .tenant-details h2{font-size:25px}.tenant-document-card .btn{width:100%}
 .workspace-layout .top-actions{min-width:0;max-width:100%;flex-wrap:wrap}
 .workspace-layout .topbar-left{min-width:0;max-width:100%}
}

/* Keep category tabs beside the independently scrolling shelf, not inside its
   auto-hiding tools. The same rail stays reachable when the page scrolls on a phone. */
.lay .lay-catalogue{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:10px}
.lay[data-library="shut"] .lay-catalogue{display:none}
.lay .lay-catalogue>.lay-head{grid-column:1/-1;grid-row:1}
.lay .lay-replacing{grid-column:1/-1;grid-row:2}
.lay .lay-catalogue>.lay-shelf{grid-column:1;grid-row:4;min-width:0}
.lay .lay-category-tabs{grid-column:1;grid-row:3;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;overscroll-behavior:contain}
/* The category row swipes sideways on its own: snaps to a whole icon, no scrollbar, and a sideways drag never turns into a page or canvas gesture. */
.lay .lay-category-tabs{scroll-snap-type:x proximity;scroll-padding-inline:2px;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none}
.lay .lay-category-tabs::-webkit-scrollbar{display:none}
.lay .lay-category-tabs #layChips button{scroll-snap-align:start}
.lay .lay-catalogue>.lay-hint{grid-column:1;grid-row:5}
.lay .lay-category-tabs #layChips{display:flex;flex-direction:row;flex-wrap:nowrap;gap:6px;overflow:visible;margin:0;padding:2px 0}
.lay #layChips button,.lay #layRailChips button{min-width:44px;box-shadow:none}
.lay #layChips button svg,.lay #layRailChips button svg{color:inherit;opacity:1}
.lay #layChips button.on,.lay #layRailChips button.on{background:#7b2843;border-color:#7b2843;color:#fff}
.lay #layChips button.on svg,.lay #layRailChips button.on svg{color:#fff;stroke:currentColor;opacity:1}
.lay .lay-catalogue .lay-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,90px),1fr))}
/* Reserve the zoom stack's space; wrap the tools rather than painting controls
   outside a width-constrained pill. Menus anchor to the complete toolbar. */
/* Only as long as its tools: centred, never under the zoom stack. */
.lay .lay-bar{left:50%;right:auto;bottom:22px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 160px);box-sizing:border-box;flex-wrap:wrap;justify-content:center;gap:4px;border-radius:16px;padding:6px 10px}
.lay .lay-bar .lay-icon{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px 10px}
.lay .lay-bar .lay-menu{position:static;min-width:0;max-width:100%}
.lay .lay-bar .lay-menu>.lay-icon{max-width:100%}
.lay .lay-bar .lay-menu>.lay-icon span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lay .lay-bar .lay-pop{left:50%;right:auto;transform:translateX(-50%);width:min(320px,calc(100% - 12px));min-width:0;max-width:calc(100% - 12px);box-sizing:border-box;max-height:50vh;overflow:auto}
@media(max-width:1000px){
 .lay .lay-catalogue{grid-template-rows:auto auto auto auto auto;overflow:visible}
 .lay .lay-catalogue>.lay-shelf{overflow:visible}
 .lay .lay-catalogue .lay-tools{position:relative;transform:none;opacity:1;pointer-events:auto}
 .lay .lay-catalogue .lay-cards{height:auto;max-height:none;overflow:visible;padding-top:12px;scroll-padding-top:0;grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
 .lay .lay-bar{left:8px;right:8px;bottom:8px;transform:none;width:auto;max-width:none;justify-content:flex-start;flex-wrap:nowrap;padding:4px 10px}
 .lay .lay-bar .lay-icon{height:44px;padding:8px;min-height:44px}
}

/* Selected viewer controls must win over themed menu text in either colour mode. */
.workspace-layout .lay .lay-bar .lay-icon.on,
.lay .lay-bar .lay-icon.on{background:#4f0e18;color:#fffdfb}
.lay .lay-bar .lay-icon.on :is(svg,span,i){color:inherit}
.lay .lay-sun-dial,.lay .lay-sun-dial:active{cursor:default;touch-action:auto}
.lay .lay-sun-dial.unset .needle{visibility:hidden}
@media(max-width:600px){
 /* Public listings share the same bottom sheet as authenticated workspaces. */
 .lay .lay-bar .lay-pop,.lay .lay-bar .lay-pop.lay-sun{position:fixed;left:0;right:0;bottom:0;top:auto;transform:none;width:auto;max-width:none;min-width:0;max-height:70vh;overflow:auto;border-radius:16px 16px 0 0;z-index:60;padding-bottom:max(16px,env(safe-area-inset-bottom))}
}

/* Toolbar hints live outside the scrollable bar; hovering never moves its layout. */
.lay-tool-hint{position:fixed;z-index:10000;box-sizing:border-box;width:max-content;max-width:min(260px,calc(100vw - 16px));padding:10px 13px;border:1px solid #75444e;border-radius:10px;background:#310b17;color:#fffdfb;box-shadow:0 4px 16px #310b1726;font:12px/1.45 var(--sans,Arial,sans-serif);text-align:left;white-space:normal;overflow-wrap:break-word}
.lay-tool-hint[hidden]{display:none}
.lay-tool-hint strong{display:block;font-size:13px;font-weight:600;color:inherit}
.lay-tool-hint span{display:block;margin-top:3px;font-size:12px;color:#eadadd}
.lay-tool-hint span[hidden]{display:none}
.lay .lay-bar .lay-icon:focus-visible{outline:2px solid #a74966;outline-offset:-3px}
@media (hover:hover) and (pointer:fine){
 .lay .lay-bar .lay-icon{transition:transform 125ms ease}
 .lay .lay-bar .lay-icon:hover:not(:disabled){transform:translateY(-1px);box-shadow:inset 0 0 0 1px #a7496666}
 .lay .lay-bar .lay-icon:hover:not(.on):not(:disabled){background:#f2e7e9;color:#310b17}
 .lay .lay-bar .lay-icon:active:not(:disabled){transform:translateY(0) scale(.97)}
}
@media (prefers-reduced-motion:reduce){
 .lay .lay-bar .lay-icon{transition:none}
 .lay .lay-bar .lay-icon:hover:not(:disabled),.lay .lay-bar .lay-icon:active:not(:disabled){transform:none}
}

/* Tabs share one mounted canvas; Details and account controls are separate panels. */
.listing-workspace>.listing-view[hidden],.listing-workspace>.listing-details-host[hidden],.listing-workspace>.listing-private-host[hidden]{display:none}
.listing-shared-studio .listing-studio-workspace{display:block}
.listing-design-history{width:min(460px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--paper,#fff)}
.listing-design-history::backdrop{background:#28061166}
.listing-design-history>.btn{float:right;margin-bottom:8px}
.listing-design-history .furnish-ai{clear:both;width:100%;height:min(680px,calc(100dvh - 120px));min-height:0}
/* Clip, not auto: an auto box is a scroll container that never scrolls here (the page does),
   so position:sticky inside it -- the Details rail and the assistant -- never stuck. */
.listing-details-host{min-width:0;overflow-x:clip}

/* Tenant evidence stays readable at mobile width; plan keeps its existing zoom. */
.tenant-document-grid .tenant-document-card--plan{grid-column:1/-1;display:block}
.tenant-scan-plan{width:100%;border-top:1px solid var(--line);padding-top:16px;margin-top:16px!important}
.tenant-scan-plan>summary{font-size:17px;font-weight:600;padding:10px 0}
.tenant-shared-record{width:100%;border-top:1px solid var(--line);padding:16px 0;margin-top:12px}
.tenant-shared-record h4{font:600 17px/1.4 var(--font-body,Arial,sans-serif);margin:0 0 10px}
.tenant-record-value,.tenant-shared-record blockquote{white-space:pre-wrap}
.tenant-evidence-gap{font-size:14px;color:var(--muted);background:var(--paper,#f7f3ef);padding:12px;border-radius:8px}
.tenant-scan-plan .plan-sheet,.tenant-scan-plan [data-sheet]{min-width:0;max-width:100%}
.tenant-scan-plan .plan-schedule{overflow-x:auto;max-width:100%}
@media(max-width:700px){.tenant-scan-plan .plan-fact-grid{grid-template-columns:1fr}.tenant-scan-plan select{max-width:100%;margin-left:0!important}.tenant-scan-plan .btn{margin-bottom:8px}}

/* Full listing on a phone: one page. The model, what the space is, the
   details, and Try furniture / Enquire always at hand (listing-experience.mjs
   sets .is-phone-stack and data-mode). Furnish keeps the shared workspace. */
.listing-back,.listing-share,.listing-phone-summary,.listing-phone-bar{display:none}
@media(max-width:700px){
 .listing-workspace.is-phone-stack>.topbar{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;padding:10px 16px;background:#FAF6F0;color:#300916;border-bottom:1px solid #E8DDD8}
 .is-phone-stack .topbar-left{flex:1;width:auto;min-width:0;gap:10px}
 .is-phone-stack .listing-brand img{filter:brightness(0) invert(8%) sepia(60%) saturate(2400%) hue-rotate(318deg) brightness(70%);width:104px}
 .is-phone-stack:not([data-mode=furnish]) .topbar>.lay-top{display:none}
 .is-phone-stack .crumb,.is-phone-stack .topbar .topbar-tabs,.is-phone-stack .top-actions [data-enquire],.is-phone-stack .private-label{display:none}
 .is-phone-stack .top-actions{margin:0;gap:6px;flex-wrap:nowrap}
 .is-phone-stack .top-actions .btn{color:#300916;border-color:#D9C7CB;background:transparent;min-height:40px;padding:8px 14px;font-size:14px}
 .is-phone-stack:not([data-mode=furnish]) .listing-share{display:inline-flex}
 .is-phone-stack[data-mode=furnish] .listing-brand{display:none}
 .is-phone-stack[data-mode=furnish] .listing-back{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;border:0;border-radius:20px;background:transparent;color:#300916;font-size:28px;line-height:1}
 .is-phone-stack[data-mode=furnish] .crumb{display:block;font-size:0}
 .is-phone-stack[data-mode=furnish] .crumb::before{content:'Try furniture';font:600 17px/1.2 var(--font-body,Arial,sans-serif);color:#300916}
 .is-phone-stack[data-mode=furnish] .listing-view .lay-rail{display:none}
 /* With the fold rails hidden there is no way to reopen a shut library on a phone, and Explore can leave it shut
    (a tap there opens the inspector and shuts the library); Furnish then opens with both shut and nothing under the
    model. The library is the page here, so it shows unless the inspector is open for a selected item. */
 .is-phone-stack[data-mode=furnish] .listing-view .lay[data-library="shut"]:not([data-inspect="open"]) .lay-catalogue{display:grid}
 .is-phone-stack[data-mode=furnish] .listing-view .lay{grid-template-rows:auto auto auto auto}
 .is-phone-stack[data-mode=furnish] .listing-view .lay-stage{height:min(360px,46svh)}
 .is-phone-stack .tenant-local-bar{gap:4px 14px;padding:8px 16px;font-size:13px}
 .is-phone-stack[data-mode=furnish] .top-actions .listing-studio-toolbar .btn{color:#FAF6F0;background:#300916;border-color:#300916}
 .is-phone-stack[data-mode=space] .listing-view .lay{height:auto;min-height:0;gap:0;grid-template-rows:auto}
 .is-phone-stack[data-mode=space] .listing-view .lay-stage{height:min(452px,56svh)}
 .is-phone-stack[data-mode=space] .listing-view .lay-inspect{display:none}
 .is-phone-stack:not([data-mode=furnish]) .listing-phone-summary{display:block;padding:20px 16px 4px}
 .listing-phone-summary h1{margin:0;font:400 30px/1.15 Marcellus,var(--font-display,serif);color:#300916;overflow-wrap:anywhere}
 .listing-phone-address{margin:6px 0 0;color:#7a6a6f;font-size:15px}
 .listing-pills{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;list-style:none}
 .listing-pills li{padding:7px 12px;border:1px solid #E4D8D3;border-radius:999px;background:#fff;font-size:13px;color:#300916;white-space:nowrap}
 .listing-pills li>span:first-child{color:#7a6a6f}.listing-pills .figure-tip{align-self:center}.listing-pills li b{font-weight:600}
 .listing-pills li[hidden]{display:none}
 .is-phone-stack .listing-details-host{overflow:visible}
 .is-phone-stack .listing-details-host .tenant-details{padding:8px 16px 24px}
 .is-phone-stack .listing-details-host .tenant-details>.page-heading{display:none}
 .is-phone-stack:not([data-mode=furnish]) .listing-phone-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:10px;position:sticky;bottom:0;z-index:30;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #E8DDD8}
 .listing-phone-bar .btn{min-height:48px;justify-content:center;font-size:15px;border-radius:12px}
 .listing-phone-bar .btn.ghost{color:#300916;border:1px solid #300916;background:#fff}
 .listing-phone-bar .btn:not(.ghost){color:#fff;background:#300916;border-color:#300916}
}

/* ---- Listing top bar (28 Oct) -------------------------------------------
   Three columns: the mark and the address on the left, the tabs in the true
   centre of the bar, one action on the right. The side columns are equal, so
   the tabs stay centred whatever the address is; a long address shortens. */
@media(min-width:701px){
 .listing-workspace:not(.is-embed-listing)>.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:24px;row-gap:0;flex-wrap:nowrap}
 .listing-workspace:not(.is-embed-listing) .topbar-left{grid-column:1;display:flex;align-items:center;gap:20px;min-width:0;width:auto}
 .listing-workspace:not(.is-embed-listing) .topbar .topbar-tabs{grid-column:2;justify-self:center;flex:none;min-width:0}
 .listing-workspace:not(.is-embed-listing) .top-actions{grid-column:3;justify-self:end;display:flex;align-items:center;gap:12px;min-width:0;max-width:100%;margin:0;flex-wrap:nowrap}
 .listing-workspace:not(.is-embed-listing) .listing-address{display:block;flex:0 1 auto;min-width:0;max-width:none;font:500 19px/1.25 var(--sans,Arial,sans-serif);letter-spacing:.005em;color:#FAF6F0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .listing-workspace:not(.is-embed-listing) .private-label{font-size:12px;line-height:1.3;max-width:96px;text-align:right}
 .listing-workspace:not(.is-embed-listing) .tenant-local-note{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
}
@media(min-width:701px) and (max-width:1100px){
 .listing-workspace:not(.is-embed-listing) .listing-brand img{width:104px}
 .listing-workspace:not(.is-embed-listing) .listing-address{font-size:16px}
}
.listing-workspace .listing-history{display:flex;align-items:center}
.listing-workspace:not(.is-phone-stack):not(.is-embed-listing) .listing-history .lay-top-btn{color:#FAF6F0}
.listing-workspace:not(.is-phone-stack):not(.is-embed-listing) .listing-history .lay-top-btn:hover:not(:disabled){background:rgba(250,246,240,.14)}
.is-phone-stack .listing-history .lay-top-btn{color:#300916}
.listing-workspace .listing-history .lay-top-sep{display:none}
.listing-workspace:not([data-mode=furnish]) .lay-top,.listing-workspace .private-label[hidden]{display:none}

/* Compact, stable listing chrome: secondary actions never wrap the header. */
.listing-workspace .top-actions .listing-studio-toolbar{flex:none;gap:8px}
.listing-workspace .top-actions .listing-studio-toolbar>[data-save]{color:#fff;white-space:nowrap}
/* The label is shown only while it opens a guest's Reset and Sign in (listing-experience.mjs). */
.listing-workspace .top-actions .private-label:disabled{display:none}
.listing-layout-menu{position:relative;flex:none}
.listing-layout-menu>summary{display:flex;align-items:center;justify-content:center;list-style:none;cursor:pointer;width:44px;height:44px;border:1px solid #C595A4;border-radius:10px;color:#FAF6F0;font-size:18px;letter-spacing:2px}
.listing-layout-menu>summary::-webkit-details-marker{display:none}
.listing-layout-menu>summary:hover,.listing-layout-menu[open]>summary{background:#60253a}
.listing-layout-menu>summary:focus-visible{outline:2px solid #FAF6F0;outline-offset:3px}
.listing-layout-menu-panel{position:absolute;right:0;top:calc(100% + 10px);z-index:50;width:260px;max-width:calc(100vw - 24px);padding:16px;border:1px solid #E4D8D3;border-radius:12px;background:#FAF6F0;color:#300916;box-shadow:0 12px 32px #30091626}
.listing-workspace .top-actions .listing-layout-menu-panel p{font-size:13px;line-height:1.5;color:#6B5560;margin:6px 0 14px;overflow-wrap:anywhere}
.listing-workspace .top-actions .listing-layout-menu-panel .btn{display:flex;width:100%;margin:6px 0 0;text-align:left;justify-content:flex-start;background:#fff;color:#300916;border-color:#D9C7CB}
.listing-workspace .top-actions .listing-layout-menu-panel [data-undo],.listing-workspace .top-actions .listing-layout-menu-panel [data-redo]{display:none}
@media(min-width:1280px){
 .listing-workspace:not(.is-embed-listing)>.topbar{min-height:84px;padding-top:14px;padding-bottom:14px}
}
@media(min-width:701px) and (max-width:1279px){
 .listing-workspace:not(.is-embed-listing)>.topbar{grid-template-columns:1fr auto;grid-template-rows:44px 52px;gap:8px 16px}
 .listing-workspace:not(.is-embed-listing) .topbar-left{grid-column:1/-1;grid-row:1}
 .listing-workspace:not(.is-embed-listing) .topbar .topbar-tabs{grid-column:1;grid-row:2;justify-self:start}
 .listing-workspace:not(.is-embed-listing) .top-actions{grid-column:2;grid-row:2;gap:8px}
 .listing-workspace:not(.is-embed-listing) .top-actions .btn{padding:10px 12px;font-size:12px}
}
@media(max-width:700px){
 .listing-workspace.is-phone-stack>.topbar{min-height:64px;background:#300916;color:#FAF6F0;border-color:#60253a}
 .is-phone-stack .listing-brand img{filter:brightness(0) invert(1)}
 .is-phone-stack .top-actions .btn,.is-phone-stack .listing-history .lay-top-btn,.is-phone-stack[data-mode=furnish] .listing-back,.is-phone-stack[data-mode=furnish] .crumb::before{color:#FAF6F0}
 .is-phone-stack[data-mode=furnish] .top-actions .listing-studio-toolbar>[data-save]{background:#7B2843;color:#fff;border-color:#C595A4;padding:8px 10px;font-size:12px;min-height:44px}
 .is-phone-stack[data-mode=furnish] .topbar-left{flex:1 1 40px;gap:4px}
 .is-phone-stack[data-mode=furnish] .crumb{display:block;min-width:0}
 .is-phone-stack[data-mode=furnish] .crumb::before{content:"Furnish";font-size:14px}
 .is-phone-stack .listing-history .lay-top-btn{width:36px;min-width:36px}
}

.listing-share-dialog{width:min(460px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid #E4D8D3;border-radius:16px;background:#FAF6F0;color:#300916}
.listing-share-dialog::backdrop{background:#28061166}
.listing-share-dialog .listing-share:not([hidden]){display:block}
@media(max-width:359px){.is-phone-stack[data-mode=furnish] .crumb{display:none}}

/* ---- Listing Details for a tenant -------------------------------------- */
.tenant-details{max-width:1120px;padding-top:28px}
.tenant-details .tenant-head{display:block;margin:0 0 20px}
.tenant-details .tenant-head h1{margin:0;font-size:clamp(28px,3.4vw,40px);line-height:1.15;color:#300916}
.tenant-listing-line{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none}
.tenant-listing-line li{padding:6px 12px;border:1px solid #E4D8D3;border-radius:999px;background:#fff;font-size:13px;color:#300916}
.tenant-listing-line span{color:#7a6a6f}.tenant-listing-line b{font-weight:600}
.tenant-floor{margin:0 0 28px}
.tenant-floor-name{font-size:20px!important;margin:24px 0 10px!important}
.tenant-key-facts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr) minmax(0,.8fr) minmax(0,.8fr);gap:12px;margin:0;padding:0}
.tenant-key-facts>div{background:#fff;border:1px solid #E8DDD8;border-radius:12px;padding:14px 16px;min-width:0}
.tenant-key-facts dt{font-size:13px;color:#7a6a6f;margin:0 0 6px}
.tenant-key-facts dd{margin:0;font:500 24px/1.15 var(--sans,Arial,sans-serif);color:#300916;font-variant-numeric:tabular-nums;white-space:nowrap}
.tenant-key-facts .is-unmeasured dd{font-size:16px;font-weight:400;color:#7a6a6f;padding-top:6px}
.tenant-facts-note{margin:10px 0 0;font-size:12px;color:#7a6a6f}
.tenant-plan{margin-top:20px}
.tenant-plan .plan-sheet{margin:0;padding:0;border:0;background:transparent}
.tenant-details .tenant-section-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin:0 0 14px}
.tenant-details .tenant-section-head h2{margin:0}
.tenant-details .tenant-section-head p{margin:0;color:#7a6a6f;font-size:14px}
.tenant-docs{margin-top:36px}
.tenant-signin{margin:0 0 14px;font-size:14px;color:#3b3033}
.tenant-signin a{color:#300916;font-weight:600}
.tenant-doc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 12px;padding:0;list-style:none}
.tenant-doc{min-width:0;background:#fff;border:1px solid #E8DDD8;border-radius:12px;overflow:hidden}
.tenant-doc.is-open{border-color:#300916;box-shadow:inset 0 0 0 1px #300916}
.tenant-doc.is-open:has(>.tenant-doc-body:not([hidden])){grid-column:1/-1}
.tenant-doc-panel{grid-column:1/-1;background:#fff;border:1px solid #300916;border-radius:12px;min-width:0}
.tenant-doc-panel>.tenant-doc-body{border-top:0}
.tenant-doc-tile{display:grid;grid-template-rows:auto 1fr auto;gap:6px;align-items:start;width:100%;height:100%;min-height:128px;box-sizing:border-box;padding:16px;border:0;background:transparent;text-align:left;font:inherit;color:#300916;cursor:pointer}
.tenant-doc-tile:hover{background:#FBF8F4}
.tenant-doc-tile:focus-visible{outline:2px solid #300916;outline-offset:-2px}
.tenant-doc-title{font-weight:600;font-size:15px;line-height:1.3}
.tenant-doc-line{font-size:13px;line-height:1.4;color:#6f5f64}
.tenant-doc-status{justify-self:start;font-size:12px;padding:3px 10px;border-radius:999px;background:#F3ECE6;color:#5E4C48}
.tenant-doc-status[data-status=shared],.tenant-doc-status[data-status=scan]{background:#E8EFE4;color:#2F4A2A}
.tenant-doc-status[data-status=requested]{background:#F4E3E7;color:#5B1526}
.tenant-doc-body{padding:0 16px 16px;border-top:1px solid #F0E8E3}
.tenant-doc-body[hidden]{display:none}
.tenant-doc-body>p:first-child{margin-top:14px}
.tenant-doc-body p{font-size:14px;line-height:1.55;max-width:760px}
.tenant-request{display:grid;gap:8px;max-width:560px;margin-top:14px}
.tenant-request label{font-size:14px;font-weight:500}.tenant-request label span{color:#7a6a6f;font-weight:400}
.tenant-request textarea{width:100%;box-sizing:border-box;font:inherit;font-size:15px;padding:10px 12px;border:1px solid #E0D4CE;border-radius:8px;background:#fff}
.tenant-request .btn{justify-self:start;background:#300916;border-color:#300916;color:#fff;min-height:44px;border-radius:8px}
.tenant-request .btn:hover:not(:disabled){background:#1d0509}
.tenant-request p{margin:0}
.tenant-other-title{font-size:16px;margin:18px 0 10px}
.tenant-docs-note{margin:4px 0 0}
.tenant-requests{margin-top:32px}
.tenant-requests h2{font-size:22px;margin:0 0 10px}
.tenant-request-list{list-style:none;margin:0 0 8px;padding:0;border-top:1px solid #E8DDD8}
.tenant-request-list>li{padding:12px 0;border-bottom:1px solid #E8DDD8}
.tenant-request-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tenant-request-list p{margin:6px 0 0;font-size:14px}
.tenant-request-list blockquote{margin:10px 0;padding-left:14px;border-left:3px solid #7b2843}
.tenant-request-list .actions{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:1000px){.tenant-doc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tenant-key-facts{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.tenant-key-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.tenant-key-facts>div:nth-child(3){grid-column:1/-1}.tenant-key-facts dd{font-size:22px}.tenant-doc-tile{min-height:112px;padding:14px}.tenant-request .btn{width:100%}}

/* ---- The plan sheet, read first as a plan ------------------------------- */
.plan-sheet .plan-sheet-heading h3{margin:0 0 12px}
.plan-simple{margin:0;background:#fff;border:1px solid #E8DDD8;border-radius:12px;padding:16px}
.plan-simple-svg{display:block;width:100%;height:auto;max-height:460px}
.plan-simple-floor path{fill:#F1E9DF;stroke:none}
.plan-simple-walls line{stroke:#300916;stroke-width:5;stroke-linecap:square}
.plan-simple-gaps line{stroke:#fff;stroke-width:7;stroke-linecap:butt}
.plan-simple-windows line{stroke:#8AA3B5;stroke-width:2.5}
.plan-simple-walls polyline{stroke:#300916;stroke-width:5;stroke-linejoin:round;stroke-linecap:square}
.plan-simple-gaps polyline{stroke:#fff;stroke-width:7;stroke-linejoin:round;stroke-linecap:butt}
/* A curved wall stays a fine line under the flat glass set in it. */
.plan-simple-curve polyline{stroke:#300916;stroke-width:1.2;stroke-linejoin:round}
.plan-simple-dim line{stroke:#7a6a6f;stroke-width:1}
.plan-simple-dim text{font:500 14px var(--sans,Arial,sans-serif);fill:#300916}
.plan-simple-area{font:600 22px var(--sans,Arial,sans-serif);fill:#300916}
.plan-take{margin:16px 0 0}
.plan-take h4{margin:0 0 8px;font-size:15px}
.plan-take-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.plan-take-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:56px;padding:10px 14px;border:1px solid #E0D4CE;border-radius:10px;background:#fff;color:#300916;font:inherit;text-align:left;cursor:pointer}
.plan-take-item b{font-size:14px}.plan-take-item span{font-size:12px;color:#7a6a6f}
.plan-take-item:hover{border-color:#300916}
.plan-take-item{text-decoration:none}.plan-take-item:disabled{cursor:not-allowed;background:#FAF7F4;border-style:dashed}.plan-take-item:disabled:hover{border-color:#E0D4CE}.plan-take-item:disabled b{color:#7a6a6f}
.plan-take-note{margin:0 0 10px;font-size:13px;color:#705A62}
.plan-take-item:focus-visible{outline:2px solid #300916;outline-offset:2px}
.plan-measurements{margin:16px 0 0;border-top:1px solid #E8DDD8;padding-top:4px}
.plan-measurements>summary{cursor:pointer;padding:12px 0;font-weight:600;font-size:15px;color:#300916;min-height:44px;box-sizing:border-box}
.plan-measurements[open]>summary{margin-bottom:12px}
@media(max-width:700px){.plan-take-row{grid-template-columns:1fr}.plan-simple{padding:10px}}
@media(max-width:700px){
 .listing-phone-bar .btn{white-space:nowrap;padding-left:10px;padding-right:10px}
 /* The phone summary above already carries the measured floor and ceiling. */
 .is-phone-stack .tenant-key-facts>div:nth-child(-n+2){display:none}
}
/* Listing views keep what a tenant needs: click a wall or the floor, see its
   size, make a quote. The pickers, wall lists, quantity working, air volume
   and the scan notes stay in the portal (Katie, 28 Oct). */
.listing-workspace .lay-select-panel,.listing-workspace .lay-air-panel,.listing-workspace .lay-capture-panel,
.listing-workspace #spaceCeilingEvidence,.listing-workspace #surfaceSummary .selected-list,
.listing-workspace #surfaceSummary .quantity-breakdown,
.listing-workspace #surfaceSummary .ws-chips{display:none}

/* Tab acknowledgement overlays content without moving the model or header. */
.listing-workspace{position:relative}
.listing-switch-status{position:absolute;z-index:80;top:110px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:10px 16px;border:1px solid #dfd1cb;border-radius:12px;background:#fff;color:#63253a;box-shadow:0 4px 16px #30091618;pointer-events:none;font-size:14px}
.listing-switch-status[hidden]{display:none}
.listing-switch-status::before{content:"";width:14px;height:14px;flex:none;border:2px solid #e8ddd8;border-top-color:#7b2843;border-radius:50%;animation:listing-switch-spin .8s linear infinite}
.listing-workspace [role=tab][aria-busy=true]{box-shadow:inset 0 -3px #e5b6a4}
.tenant-plan-summary{display:flex;flex-wrap:wrap;gap:20px 32px;margin:20px 0}
.tenant-plan-summary dt{color:#705a62;font-size:13px}
.tenant-plan-summary dd{margin:6px 0 0;font-size:20px;font-variant-numeric:tabular-nums}
.tenant-plan-document+.tenant-plan-document{margin-top:32px;padding-top:24px;border-top:1px solid #e8ddd8}
@keyframes listing-switch-spin{to{transform:rotate(360deg)}}
@media(max-width:700px){.listing-switch-status{position:fixed;top:auto;bottom:calc(84px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.listing-switch-status::before{animation:none}}

/* The shared dollhouse meets the header and shell edges. Panel interiors keep
   their own spacing; document/Details pages retain their reading gutters. */
.workspace-layout.workspace-focus .content:has(#detail-content .lay){padding:0;max-width:none;width:100%}

/* Shared property evidence: a readable work surface for agents and owners. */
.internal-details-sections {display:block!important;padding:clamp(20px,4vw,56px);max-width:1320px;margin:auto}
.internal-details {display:grid;gap:40px;color:var(--ink,#392b30)}
.internal-details-heading,.details-section-heading {display:flex;align-items:center;justify-content:space-between;gap:24px}
.internal-details-heading h1 {font-size:clamp(28px,3vw,42px);margin:8px 0;line-height:1.15}
.internal-details-heading p {margin:8px 0;color:#705d64}.internal-details .eyebrow {font-size:11px;letter-spacing:.14em;font-weight:600}
.internal-details h2 {font-size:26px;margin:0 0 16px}.details-section-heading span {font-size:14px;color:#705d64}
.document-demand {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.demand-card {border:1px solid #ded3cb;border-radius:16px;background:#fff;padding:20px;display:flex;flex-direction:column;gap:12px}
.demand-card h3 {font-family:inherit;font-size:16px;line-height:1.4;margin:0}.demand-card p {font-size:14px;line-height:1.5;margin:0;color:#705d64}.demand-card div {margin-top:auto;display:grid;gap:4px;font-size:13px}.demand-card div span {color:#705d64}
.demand-card.has-requests {border-color:#842b4b;background:#faf2f5}.demand-card a {font-size:14px;color:#842b4b;text-underline-offset:3px}
.document-drop {position:relative;background:#fff;border:1px dashed #ae8092;border-radius:20px;padding:32px;text-align:center;transition:background .15s,border-color .15s}.document-drop.is-dragging {background:#f5e5ec;border-style:solid;border-color:#842b4b;box-shadow:0 0 0 4px #f5dfe5}.drop-now .upload-symbol {background:#842b4b;color:#fff}.document-drop h3 {font-size:23px;margin:12px 0}.document-drop p {max-width:580px;margin:12px auto;line-height:1.5}
.upload-symbol {display:inline-grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#f3e9ec;color:#842b4b;font-size:27px}.document-choose {position:relative;cursor:pointer;display:inline-flex}.document-choose input {position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.document-choose:focus-within {outline:3px solid #842b4b;outline-offset:4px}
.document-pick {display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin:16px auto 4px}.drop-now {position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:10px;border-radius:inherit;background:#F5E5E9;font:400 28px Marcellus,Georgia,serif;color:#300916;pointer-events:none}.document-drop.is-dragging .drop-now {display:flex}
@media(hover:none),(pointer:coarse){.drop-hint{display:none}}
.property-documents {display:grid;gap:12px;margin-top:24px}.document-empty {padding:20px;border:1px solid #ded3cb;border-radius:16px;color:#705d64}
.property-document {background:white;border:1px solid #ded3cb;border-radius:16px;overflow:hidden}.property-document>summary {display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px;cursor:pointer}.property-document>summary span:first-child {display:grid;gap:6px;min-width:0;overflow-wrap:anywhere}.property-document small {color:#705d64;font-size:13px;font-weight:400}.document-body {border-top:1px solid #e6dcd5;padding:24px}.document-actions {display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}
.document-finding {border-top:1px solid #e6dcd5;margin-top:24px;padding-top:24px}.document-category {font-size:12px;color:#842b4b;font-weight:600;margin-bottom:16px}.document-finding form {display:grid;gap:16px}.document-finding label {display:grid;gap:6px;font-size:14px}.document-finding input:not([type=checkbox]),.document-finding textarea {width:100%;box-sizing:border-box;border:1px solid #d9c9ce;border-radius:10px;padding:12px;font:inherit;line-height:1.5;background:white;color:#392b30}.document-finding .document-check {display:flex;align-items:center;gap:8px}.document-finding .btn {justify-self:start}.document-citation {margin-top:16px;font-size:14px}.document-citation blockquote {margin:12px 0;border-left:3px solid #d9c9ce;padding:8px 16px;white-space:pre-wrap}.document-limit {background:#f7f1eb;border-radius:10px;padding:12px}.property-fact-records>summary {font-size:20px;cursor:pointer;padding:20px 0}.internal-details .stake-section {box-shadow:none}.internal-details .small-note {font-size:13px;line-height:1.6;color:#705d64}
#detail-content:has(.internal-details-sections) {overflow:auto;height:100%;min-height:0}#stake-status:not(:empty) {padding:12px 24px;background:#f5e8ed;color:#542335;border-bottom:1px solid #decbd2}
@media(max-width:1000px){.document-demand{grid-template-columns:repeat(2,minmax(0,1fr))}.internal-details-heading{align-items:flex-start}}
@media(max-width:600px){.internal-details-heading,.details-section-heading{display:block}.internal-details-heading>.btn{margin-top:12px}.document-demand{grid-template-columns:1fr}.document-drop,.document-body{padding:20px}.internal-details{gap:28px}.document-finding .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.document-drop{transition:none}}
/* Flexible source-linked document tables: AI selects data, never arbitrary UI. */
.evidence-panel{margin:16px 0;min-width:0}.evidence-subject{padding:12px;background:#f5f0ea;border-radius:8px;font-size:14px;overflow-wrap:anywhere}.evidence-table-scroll{max-width:100%;overflow:auto;border:1px solid #ded3cb;border-radius:10px}.evidence-panel table{border-collapse:collapse;width:100%;font-size:14px;text-align:left;background:#fff}.evidence-panel caption{padding:12px;text-align:left;font-weight:600}.evidence-panel th,.evidence-panel td{padding:12px;border-top:1px solid #e6dcd5;vertical-align:top;overflow-wrap:anywhere;min-width:90px}.evidence-panel thead{background:#f5f0ea}.evidence-panel th[scope=row]{font-weight:500}.evidence-panel summary{cursor:pointer;color:#842b4b}.evidence-panel blockquote{margin:8px 0;font-size:13px}.evidence-panel input[type=checkbox]{width:20px;height:20px;accent-color:#842b4b}.document-context{display:grid;gap:6px;flex:1 1 100%;font-size:14px}.document-context input{border:1px solid #d9c9ce;border-radius:10px;padding:12px;font:inherit;color:#392b30;background:#fff;width:100%;box-sizing:border-box}.document-actions{align-items:center}.document-finding .document-check{align-items:flex-start}.document-finding .document-check input{flex:0 0 auto;margin-top:3px}.evidence-table-scroll:focus-visible{outline:2px solid #842b4b;outline-offset:3px}

/* Reviewed information reads like a tenant brief; evidence stays one tap away. */
.tenant-shared-overview{margin:32px 0;max-width:860px}
.tenant-shared-overview h2{margin:0 0 8px}
.tenant-overview-intro{margin:0 0 20px;color:var(--muted);font-size:15px;line-height:1.5}
.tenant-shared-overview .tenant-shared-record{box-sizing:border-box;min-width:0;margin:0;padding:20px 0;border-top:1px solid var(--line);scroll-margin-top:110px}
.tenant-shared-record h3{font:600 17px/1.4 var(--font-body,Arial,sans-serif);margin:0 0 6px;overflow-wrap:anywhere}
.tenant-shared-record .tenant-record-value{font-size:16px;line-height:1.6;margin:0 0 8px;max-width:68ch;overflow-wrap:anywhere}
.tenant-record-warning{font-size:14px;font-weight:600;color:#7b2843;margin:0 0 8px}
.tenant-record-scope{font-size:13px;color:var(--muted);margin:0 0 6px}
.tenant-record-source>summary{display:list-item;width:fit-content;max-width:100%;box-sizing:border-box;min-height:44px;padding:10px 0;color:#7b2843;font-size:14px;cursor:pointer}
.tenant-record-source>summary:hover{text-decoration:underline;text-underline-offset:3px}
.tenant-record-source>summary:focus-visible,.tenant-record-link:focus-visible{outline:2px solid #7b2843;outline-offset:3px;border-radius:4px}
.tenant-record-source>div{padding:4px 0 12px;min-width:0;color:var(--muted);font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.tenant-record-source>div>p{margin:8px 0 16px;max-width:72ch}
.tenant-record-source blockquote{margin:12px 0;font-size:14px}
.tenant-record-links{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:12px 0}
.tenant-record-link{font:inherit;font-size:15px;line-height:1.4;min-height:44px;padding:8px 0;text-align:left;color:#7b2843;border:0;background:transparent;cursor:pointer;white-space:normal;overflow-wrap:anywhere}
.tenant-record-link:hover{text-decoration:underline;text-underline-offset:3px}
@media(max-width:600px){.tenant-shared-overview{margin:24px 0}.tenant-shared-overview .tenant-shared-record{padding:16px 0;scroll-margin-top:170px}.tenant-record-source .evidence-subject{background:transparent;padding:0}.tenant-record-source .evidence-panel caption{display:none}}

.tenant-record-caveat{font-size:14px;line-height:1.6;color:var(--muted);max-width:72ch;overflow-wrap:anywhere}

/* Mobile figure explanations stay inside the viewport, above the visitor actions. */
@media(max-width:600px){.tenant-details .figure-tip .info-tip-text{position:fixed;left:16px;right:16px;top:auto;bottom:88px;width:auto;max-width:none;max-height:40dvh;overflow:auto;z-index:150}}

/* Tenant Details, answers first (Evan, 30 Oct 2026; Claude Design artboards
   "Tenant Details" Main / TenantSource / TenantDesktop). Phone first: every
   target is at least 44px, nothing scrolls sideways, and the source of an
   answer is one tap away in a sheet. */
/* rail: heading, figures, search; main: topics and requests */
.dt .dt-rail,.dt .dt-main{display:flex;flex-direction:column;gap:22px;min-width:0}
.is-phone-stack .listing-details-host .tenant-details.dt .tenant-head{display:none}
.tenant-details.dt{--dt-ink:#36252A;--dt-muted:#705A62;--dt-line:#E7DCD5;--dt-soft:#F0E8E2;--dt-paper:#FAF6F0;--dt-chrome:#300916;
 color:var(--dt-ink);max-width:1120px;padding:24px clamp(16px,4vw,48px) 96px;display:flex;flex-direction:column;gap:22px}
.tenant-details.dt h2{font:400 26px/1.15 'Marcellus',Georgia,serif;margin:0;color:var(--dt-ink)}
.tenant-details.dt .tenant-head{margin:0}.tenant-details.dt .tenant-head h1{font:400 clamp(30px,4vw,40px)/1.1 'Marcellus',Georgia,serif;color:var(--dt-ink)}
.dt .dt-eyebrow,.tenant-details.dt h2.dt-eyebrow{display:block;margin:0 0 10px;font:600 12px/1.3 var(--sans,Arial,sans-serif);letter-spacing:.12em;text-transform:uppercase;color:var(--dt-muted)}
.dt .dt-fine{margin:10px 0 0;font-size:13px;line-height:1.5;color:var(--dt-muted)}
.dt .dt-glance dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
.dt .dt-glance dl>div{background:#fff;border:1px solid var(--dt-line);border-radius:16px;padding:14px;min-width:0}
.dt .dt-glance dt{font-size:13px;color:var(--dt-muted)}
.dt .dt-glance dd{margin:4px 0 0;font:600 22px/1.2 var(--sans,Arial,sans-serif);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.dt .dt-glance dd.dt-glance-source{font:400 12px/1.4 var(--sans,Arial,sans-serif);color:var(--dt-muted);margin-top:6px}
.dt .dt-glance dd.dt-glance-also{font:400 12px/1.4 var(--sans,Arial,sans-serif);color:var(--dt-muted);margin-top:2px}
.dt .dt-search{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #B98594;border-radius:14px;padding:0 14px;min-height:52px}
.dt .dt-search span{color:var(--dt-muted);font-size:20px}
.dt .dt-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:16px;color:var(--dt-ink);min-height:48px}
.dt .dt-search:focus-within{outline:2px solid var(--dt-chrome);outline-offset:2px}
.dt .dt-chips{display:flex;gap:8px;overflow-x:auto;margin:12px -16px 0;padding:0 16px 4px;scrollbar-width:none}
.dt .dt-chips a{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:999px;background:#fff;border:1px solid var(--dt-line);color:var(--dt-ink);text-decoration:none;font-size:14px;white-space:nowrap}
.dt .dt-chips a span{color:var(--dt-muted)}
.dt .dt-empty,.dt .dt-loading{margin:12px 0 0;color:var(--dt-muted)}
.dt .dt-loading-block{display:flex;flex-direction:column;gap:14px}
.dt .dt-skeleton{height:150px;border:1px solid var(--dt-line);border-radius:20px;background:linear-gradient(90deg,#fff 0,#f6f1ea 50%,#fff 100%);background-size:200% 100%;animation:dt-shimmer 1.4s ease-in-out infinite}
.dt .dt-skeleton.is-short{height:90px}
@keyframes dt-shimmer{from{background-position:100% 0}to{background-position:-100% 0}}
@media (prefers-reduced-motion:reduce){.dt .dt-skeleton{animation:none}}
.dt .dt-topic{background:#fff;border:1px solid var(--dt-line);border-radius:20px;padding:18px 16px 8px;scroll-margin-top:72px}
.dt .dt-topic>h2{margin-bottom:6px}
.dt .dt-answers,.dt .dt-stats,.dt .dt-needs{list-style:none;margin:0;padding:0}
.dt .dt-answers>li+li{border-top:1px solid var(--dt-soft)}
.dt .dt-answer{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:14px 0;border:0;background:none;text-align:left;color:inherit;font:inherit;cursor:pointer}
.dt .dt-answer.is-note{cursor:default}
.dt button.dt-answer:focus-visible,.dt .dt-stat:focus-visible{outline:2px solid var(--dt-chrome);outline-offset:2px;border-radius:8px}
.dt .dt-answer-text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.dt .dt-answer-title{font-weight:600;font-size:16px;line-height:1.3}
.dt .dt-answer-value{font-size:15px;line-height:1.5;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.dt .dt-answer-source{font-size:12px;color:var(--dt-muted)}
.dt .dt-chevron{flex:none;color:var(--dt-muted);font-size:20px}
.dt .dt-flag{align-self:flex-start;font-size:12px;font-weight:600;color:#805300;background:#FFF4DC;border-radius:999px;padding:3px 10px}
.dt .dt-flag.is-private{color:#1d4a7a;background:#E8F0F8}
.dt .dt-answer.is-conflict{background:#FFFBF1;margin:0 -16px;padding:14px 16px;width:calc(100% + 32px)}
.dt .dt-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:8px 0 6px}
.dt .dt-stat{display:flex;flex-direction:column;gap:4px;width:100%;height:100%;min-height:64px;padding:12px 14px;border:1px solid var(--dt-line);border-radius:14px;background:#FCFAF7;text-align:left;font:inherit;color:inherit;cursor:pointer}
.dt .dt-stat span{font-size:13px;color:var(--dt-muted)}.dt .dt-stat b{font-size:18px;font-weight:600;overflow-wrap:anywhere}
.dt .dt-plan{border-top:1px solid var(--dt-soft)}.dt .dt-plan>div{padding:0 0 14px}
.dt .dt-plan .tenant-key-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
.dt .dt-missing{background:var(--dt-paper);border:1px solid var(--dt-line);border-radius:20px;padding:18px 16px;scroll-margin-top:72px}
.dt .dt-missing>p{margin:6px 0 12px;color:var(--dt-muted)}
.dt .dt-needs{display:grid;gap:8px;margin-bottom:14px}
.dt .dt-needs label{display:flex;gap:12px;align-items:flex-start;min-height:44px;padding:12px 14px;background:#fff;border:1px solid var(--dt-line);border-radius:14px;cursor:pointer}
.dt .dt-needs label:has(input:checked:not(:disabled)){border-color:var(--dt-chrome);box-shadow:inset 0 0 0 1px var(--dt-chrome)}
.dt .dt-needs label.is-requested{opacity:.7;cursor:default}
.dt .dt-needs input{width:20px;height:20px;margin:1px 0 0;flex:none;accent-color:#4F0E18}
.dt .dt-needs span{display:flex;flex-direction:column;gap:2px}.dt .dt-needs small{color:var(--dt-muted);font-size:13px}
.dt .dt-note-field{display:block;font-weight:600;margin-bottom:6px}.dt .dt-note-field span{font-weight:400;color:var(--dt-muted)}
.dt .dt-request textarea{width:100%;font-size:16px;padding:10px 12px;border:1px solid var(--dt-line);border-radius:12px;background:#fff;box-sizing:border-box}
.dt .dt-request-bar{margin-top:12px}.dt .dt-request-bar .btn{width:100%;min-height:50px}
.dt .dt-footer{margin-top:0}
.dt-sheet{border:0;padding:0;width:min(640px,100vw);max-width:100vw;max-height:88dvh;margin:auto auto 0;border-radius:22px 22px 0 0;background:#FAF6F0;color:#36252A;box-shadow:0 -10px 40px #3009162e}
.dt-sheet::backdrop{background:#3a1d27b3}
.dt-sheet .dt-sheet-head{display:flex;justify-content:space-between;gap:12px;padding:18px 16px 10px;position:sticky;top:0;background:#FAF6F0}
.dt-sheet h2{font:400 26px/1.15 'Marcellus',Georgia,serif;margin:0}
.dt-sheet .dt-eyebrow{margin:0 0 4px;font:600 12px/1.3 var(--sans,Arial,sans-serif);letter-spacing:.12em;text-transform:uppercase;color:#705A62}
.dt-sheet .dt-close{flex:none;width:44px;height:44px;border-radius:999px;border:1px solid #E7DCD5;background:#fff;font-size:22px;line-height:1;cursor:pointer;color:#36252A}
.dt-sheet .dt-sheet-body{padding:0 16px 24px;display:flex;flex-direction:column;gap:14px}
.dt-sheet .dt-sheet-value{font-size:18px;font-weight:500;line-height:1.5;margin:0;white-space:pre-wrap;color:#36252A}
.dt-sheet .dt-warning{background:#FFF4DC;color:#5c3b00;border-radius:14px;padding:12px 14px;font-size:14px;line-height:1.5}
.dt-sheet .dt-sides{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dt-sheet .dt-side{background:#fff;border:1px solid #E7DCD5;border-radius:16px;padding:14px;min-width:0}
.dt-sheet .dt-side p{margin:0;font-size:13px;color:#705A62}.dt-sheet .dt-side b{display:block;margin:4px 0 6px;font-size:18px;overflow-wrap:anywhere}
.dt-sheet .dt-note{margin:0;font-size:14px;color:#705A62}
.dt-sheet .dt-source{margin:0;background:#fff;border:1px solid #E7DCD5;border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:8px}
.dt-sheet .dt-source figcaption{font-weight:600;font-size:13px}
.dt-sheet .dt-source blockquote{margin:0;padding:10px 12px;background:#F7F3EE;border-radius:10px;font-size:14px;line-height:1.5;white-space:pre-wrap}
.dt-sheet .dt-source p{margin:0;font-size:13px;color:#705A62}.dt-sheet .dt-source a{font-weight:600;min-height:44px;display:inline-flex;align-items:center}
.dt-sheet .dt-provenance{margin:0;font-size:12px;line-height:1.5;color:#705A62}
.dt-sheet .dt-ask{min-height:50px;width:100%}
@media (min-width:900px){
 .tenant-details.dt{display:grid;grid-template-columns:320px minmax(0,1fr);gap:40px;align-items:start}
 .dt .dt-rail{position:sticky;top:16px}
 .dt .dt-chips{flex-direction:column;overflow:visible;margin:12px 0 0;padding:0}
 .dt .dt-chips a{justify-content:space-between;border-radius:10px}
 .dt .dt-topic{padding:20px 24px 10px}.dt .dt-answer.is-conflict{margin:0 -24px;padding:14px 24px;width:calc(100% + 48px)}
 .dt-sheet{margin:auto;border-radius:22px;max-height:85vh}
 .dt .dt-request-bar .btn{width:auto;min-width:240px}
}
@media (prefers-reduced-motion:no-preference){.dt .dt-answer:hover .dt-chevron{transform:translateX(2px);transition:transform .15s}}
.tenant-details.dt>[data-details-status]{grid-column:1/-1;margin:0}

/* Agent Details (Claude Design artboards AgentHome / AgentReview / AgentDesktop):
   to-dos first, then documents, each reviewed in one pass on a phone. */
.internal-details.ad{--ad-line:#E7DCD5;--ad-muted:#705A62;display:flex;flex-direction:column;gap:22px}
.internal-details.ad h1{font:400 30px/1.15 'Marcellus',Georgia,serif;margin:0}
.internal-details.ad h2{font-size:18px;margin:0 0 10px}
.ad .ad-doc{background:#fff;border:1px solid var(--ad-line);border-radius:18px;margin:0 0 10px;overflow:clip}
.ad .ad-doc-head{display:flex;flex-direction:column;gap:2px}.ad .ad-doc-head strong{font-size:15px;overflow-wrap:anywhere}.ad .ad-doc-head small{color:var(--ad-muted);font-size:13px}
.ad .ad-chips{display:flex;flex-wrap:wrap;gap:6px}
.ad .ad-chip{font-size:12px;padding:5px 10px;border-radius:999px;background:#F5E5E9;color:#3F0B1E}
.ad .ad-chip.is-listing{background:#E8F0F8;color:#1d4a7a}.ad .ad-chip.is-new{background:#EEF3EA;color:#2f5422}.ad .ad-chip.is-conflict{background:#FFF4DC;color:#805300}.ad .ad-chip.is-shared{background:#F3ECE6;color:#5c4a50}
.ad .ad-doc .document-body{padding:16px 14px 14px}
.ad .ad-summary{margin:12px 0 4px}
.ad .ad-review{display:flex;flex-direction:column;gap:16px;margin-top:12px}
.ad .ad-group>summary{display:flex;justify-content:space-between;align-items:center;min-height:44px;font-weight:600;font-size:15px;cursor:pointer}.ad .ad-group>summary small{color:var(--ad-muted);font-weight:400}
.ad .ad-untick{border:0;background:none;color:#4F0E18;font-size:13px;min-height:44px;padding:0;cursor:pointer;text-decoration:underline}
.ad .ad-excerpt{font-size:13px;line-height:1.45;color:#5c4a50;background:#F7F3EE;border-radius:8px;padding:6px 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;quotes:'“' '”'}
.ad .ad-asking q{display:block;font-size:13px;color:#36252A;margin-top:4px}.ad .ad-asking-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.ad .ad-visible{list-style:none;margin:10px 0;padding:0}.ad .ad-visible li{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-top:1px solid #F0E8E2}.ad .ad-visible small{color:var(--ad-muted)}
.ad .ad-technical{margin-top:12px}.ad .ad-technical>summary{min-height:44px;display:flex;align-items:center}
.ad .ad-edit label.document-check{flex-direction:row;align-items:center;gap:8px}.ad .ad-edit label.document-check input{width:20px;height:20px;flex:none}
.ad .ad-review-status:empty{display:none}.ad .ad-review-status{color:#8a1c1c;margin:0}.ad .ad-group>p{margin:0 0 8px}
.ad .ad-group ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.ad .ad-tag{font-size:12px;font-weight:600;color:#2f5422;background:#EEF3EA;border-radius:999px;padding:3px 8px;margin-left:6px}
.ad .ad-item{border:1px solid var(--ad-line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:10px;background:#fff}
.ad .ad-item.is-listing{border-color:#9db8d6}.ad .ad-item.is-conflict{background:#FFFBF1;border-color:#EBD3A0}
.ad .ad-pick{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start;cursor:pointer;min-height:44px}
.ad .ad-pick input{width:20px;height:20px;margin:2px 0 0;accent-color:#4F0E18}
.ad .ad-pick>span{display:flex;flex-direction:column;gap:3px;min-width:0}
.ad .ad-kicker{font-size:12px;color:var(--ad-muted)}.ad .ad-kicker b{color:#805300}
.ad .ad-value{font-size:15px;line-height:1.45;overflow-wrap:anywhere}.ad .ad-source{font-size:12px;color:var(--ad-muted)}
.ad .ad-listing,.ad .ad-edit label{display:flex;flex-direction:column;gap:4px;font-size:13px}
.ad .ad-listing input,.ad .ad-listing select,.ad .ad-edit input:not([type=checkbox]),.ad .ad-edit textarea{font-size:16px;padding:10px 12px;border:1px solid var(--ad-line);border-radius:10px;min-height:44px;box-sizing:border-box;width:100%}
.ad .ad-choice{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.ad .ad-choice legend{font-size:13px;margin-bottom:6px;color:#5c3b00}
.ad .ad-choice label{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid var(--ad-line);border-radius:10px;background:#fff;font-size:14px}
.ad .ad-choice label:has(input:checked){border-color:#4F0E18;box-shadow:inset 0 0 0 1px #4F0E18}
.ad .ad-here{display:flex;gap:8px;align-items:center;min-height:44px;font-size:14px}
.ad .ad-edit summary{font-size:13px;color:#4F0E18;cursor:pointer;min-height:44px;display:flex;align-items:center}
.ad .ad-edit[open]{display:flex;flex-direction:column;gap:10px}.ad .ad-edit blockquote{margin:0;padding:8px 10px;background:#F7F3EE;border-radius:8px;font-size:13px}
.ad .is-elsewhere .ad-item{opacity:.75}
.ad .ad-submit{position:sticky;bottom:0;background:#FAF6F0;border-top:1px solid var(--ad-line);margin:0 -14px -14px;padding:14px;display:flex;flex-direction:column;gap:10px}
.ad .ad-attest{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.4}.ad .ad-attest input{width:20px;height:20px;margin:0;flex:none;accent-color:#4F0E18}
.ad .ad-submit .btn{min-height:50px}.ad .ad-submit .btn:disabled{opacity:.5}
.ad .ad-asking{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--ad-line);border-radius:18px;overflow:hidden}
.ad .ad-asking li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px}.ad .ad-asking li+li{border-top:1px solid #F0E8E2}
.ad .ad-asking span{display:flex;flex-direction:column;gap:2px}.ad .ad-asking small{color:var(--ad-muted)}
@media (min-width:900px){.ad .ad-submit{flex-direction:row;align-items:center;flex-wrap:wrap}.ad .ad-submit .btn{min-width:220px}}

@media (max-width:899px){.tenant-details.dt{padding-bottom:120px}}

/* The AI mark on an answer row (D34), and a 44px target for each figure "?" */
.dt .dt-ai{display:block;margin-top:2px;font-size:12px;color:#5c4a50}
.dt .dt-stat .dt-ai{margin-top:4px}
.dt .info-tip-btn{position:relative}.dt .info-tip-btn::before{content:'';position:absolute;inset:-15px}
/* The figure, not the line saying where it came from: that stays at its own small size. */
.tenant-details.dt .dt-glance dd:not(.dt-glance-source):not(.dt-glance-also){font-size:22px;font-weight:600;color:#2A1A1F}
@media (min-width:900px){.ad .ad-excerpt{-webkit-line-clamp:4}}
/* The page itself scrolls (measured at 390 and 1440 px): a non-scrolling overflow
   box above the review form would otherwise capture its sticky Share bar. */
#detail-content:has(.internal-details.ad){overflow:visible;height:auto}
/* The document beside its answers (document-viewer.mjs). Only where the open document is wide enough for both;
   below that the pane is not drawn at all and each answer keeps its quoted words inline. */
.ad .ad-doc{container-type:inline-size}
.ad .ad-source-pane,.ad .ad-show{display:none}
@container (min-width:860px){
 .ad .ad-split{display:grid;grid-template-columns:minmax(0,1fr) clamp(320px,38%,400px);gap:20px;align-items:start;margin-top:12px}
 .ad .ad-split .ad-review{margin-top:0}
 .ad .ad-split .ad-source-pane{grid-column:1;grid-row:1}.ad .ad-split .ad-split-review{grid-column:2;grid-row:1}
 .ad .ad-source-pane{display:block;position:sticky;top:12px;height:calc(100vh - 24px);min-height:420px;max-height:1100px}
 .ad .ad-split .ad-submit{margin:0;border:1px solid var(--ad-line);border-radius:14px}
 .ad .ad-show{display:inline-flex;align-self:flex-start;align-items:center;min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--ad-line);background:#fff;color:#4F0E18;font:600 13px Archivo,sans-serif;cursor:pointer}
 .ad .ad-show:hover{border-color:#B98594}
 .ad .ad-item.is-viewing{border:2px solid #4F0E18;padding:11px}
 .ad .ad-item.is-viewing .ad-show{background:#4F0E18;color:#FFF7F0;border-color:#4F0E18}
}
.dv{height:100%;display:flex;flex-direction:column;gap:8px;background:#F3EDE7;border:1px solid var(--ad-line,#E7DCD5);border-radius:14px;padding:10px;box-sizing:border-box}
.dv-bar{display:flex;justify-content:space-between;align-items:center;gap:10px}
.dv-where{font-size:14px;color:#705A62}
.dv-nav{display:flex;gap:6px}
.dv-step{width:40px;height:40px;border-radius:10px;border:1px solid #E7DCD5;background:#fff;color:#36252A;font-size:20px;line-height:1;cursor:pointer}
.dv-step:disabled{opacity:.4;cursor:default}
.dv-said{margin:0;font-size:13px;line-height:1.4;color:#36252A}.dv-said:empty{display:none}.dv-said.is-miss{color:#805300;background:#FFF4DC;border-radius:8px;padding:6px 8px}
.dv-page{flex:1;min-height:0;overflow:auto;border-radius:8px;background:#fff}
.dv-sheet{position:relative;box-shadow:0 1px 0 #E7DCD5}
.dv-sheet canvas{display:block}
.dv-mark{position:absolute;background:#E9D9B8;mix-blend-mode:multiply;border-radius:3px;pointer-events:none}
.dv-mark.is-current{background:#F0C9D4;outline:2px solid #4F0E18;outline-offset:0}
.dv-image{display:block;max-width:100%;height:auto;margin:0 auto}
.dv-text{margin:0;padding:16px;white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.6 ui-monospace,Menlo,monospace;color:#36252A}
.dv-text mark{background:#F0C9D4;outline:2px solid #4F0E18;border-radius:2px}
.dv-none{padding:20px;display:flex;flex-direction:column;gap:12px;font-size:14px;line-height:1.5;color:#36252A}.dv-none p{margin:0}
.dv-quote{margin:10px;padding:12px 14px;border-left:0;background:#F7F3EE;border-radius:10px}.dv-quote p{margin:0 0 6px;font:15px/1.6 Georgia,serif}.dv-quote footer{font-size:12px;color:#705A62}
@media (prefers-reduced-motion:reduce){.dv-page{scroll-behavior:auto}}
.dv-clip{overflow:hidden;margin:0 auto}
.dv-nav[hidden]{display:none}
.dv-live{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
/* Only a PDF needs the full height; a photo, a text file or a no-preview note is as tall as it is. */
.ad .ad-source-pane:has(.dv:not(.is-pdf)){height:auto}
.dv:not(.is-pdf){height:auto;max-height:calc(100vh - 24px)}.dv:not(.is-pdf) .dv-page{flex:none}
.dv-page.is-wide{box-shadow:inset -14px 0 12px -12px rgba(48,9,22,.35)}

/* Review filters (AgentDesktop artboard): the chosen one is filled; each kind keeps its colour from the document chips. */
.ad .ad-filter{display:flex;flex-wrap:wrap;gap:8px}
.ad .ad-filter-chip{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid transparent;font:500 14px Archivo,sans-serif;cursor:pointer;background:#F5E5E9;color:#3F0B1E}
.ad .ad-filter-chip b{font-weight:700;margin-left:2px}
.ad .ad-filter-chip.is-listing{background:#E8F0F8;color:#1d4a7a}.ad .ad-filter-chip.is-conflict{background:#FFF4DC;color:#805300}.ad .ad-filter-chip.is-new{background:#EEF3EA;color:#2f5422}.ad .ad-filter-chip.is-unplaced{background:#fff;color:#36252A;border-color:var(--ad-line)}
.ad .ad-filter-chip[aria-pressed="true"]{background:#4F0E18;color:#FFF7F0;border-color:#4F0E18}
.ad .ad-filter-chip:focus-visible{outline:3px solid #842b4b;outline-offset:2px}
.ad .ad-filter-note{margin:0;color:#36252A;background:#F7F3EE;border-radius:8px;padding:6px 10px}
.ad .ad-group[hidden]{display:none}
.ad .ad-filter-note:empty{padding:0;background:none}

/* ---- Listing: the site's header, then the listing's own bar (31 Oct) ----
   A public listing is a page of the Inscena site. The dark header is the
   site's: the mark, the site's pages, and who is signed in. The listing's
   name is the page's heading, on a light bar under it with its views and
   actions, so it reads as the page and not as the site's chrome. */
.site-header{display:flex;align-items:center;gap:32px;min-height:52px;padding:0 24px;background:#300916;color:#F7EAE2;font-family:var(--font-body,Arial,sans-serif)}
.site-brand{display:flex;flex:none;align-items:center}.site-brand img{display:block;width:118px;height:auto;filter:brightness(0) invert(1)}
.listing-site-nav{display:flex;align-items:center;gap:28px;margin-right:auto}
.listing-site-nav a{color:#F7EAE2;text-decoration:none;font-size:15px;font-weight:500;line-height:44px}
.listing-site-nav a:hover{text-decoration:underline;text-underline-offset:4px}
.site-header a:focus-visible,.site-header button:focus-visible{outline:3px solid #B7476A;outline-offset:3px;border-radius:6px}
.site-account{position:relative;display:flex;align-items:center}
.site-signin{display:inline-flex;align-items:center;min-height:40px;padding:0 18px;border:1px solid rgba(247,234,226,.5);border-radius:999px;color:#F7EAE2;text-decoration:none;font-size:15px;font-weight:500}
.site-signin:hover{border-color:#F7EAE2;background:rgba(247,234,226,.08)}
.site-account-button{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:4px 10px 4px 4px;border:0;border-radius:999px;background:transparent;color:#F7EAE2;font:500 15px/1 var(--font-body,Arial,sans-serif);cursor:pointer}
.site-account-button:hover,.site-account-button[aria-expanded=true]{background:rgba(247,234,226,.1)}
.site-avatar{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#F7EAE2;color:#300916;font:600 13px/1 var(--font-body,Arial,sans-serif);letter-spacing:.02em}
.site-account-text{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;text-align:left}
.site-account-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.1}
.site-account-role{font-size:12px;font-weight:500;line-height:1;color:#E3CDD4;letter-spacing:.02em}.site-account-role[hidden]{display:none}
.site-caret{width:7px;height:7px;margin:0 4px 3px 2px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}
.site-account-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:60;min-width:220px;padding:8px;border:1px solid #E4D8D3;border-radius:14px;background:#FAF6F0;color:#300916;box-shadow:0 14px 34px rgba(48,9,22,.18)}
.site-account-menu[hidden]{display:none}
.site-account-who{margin:4px 10px 8px;padding-bottom:10px;border-bottom:1px solid #E4D8D3;color:#705A62;font-size:13px;overflow-wrap:anywhere}
.site-account-menu a,.site-account-menu button{display:flex;align-items:center;width:100%;min-height:42px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:#300916;font:500 15px/1 var(--font-body,Arial,sans-serif);text-align:left;text-decoration:none;cursor:pointer}
.site-account-menu a:hover,.site-account-menu button:hover{background:#F0E8E2}.site-account-menu a:focus-visible,.site-account-menu button:focus-visible{background:#F0E8E2;outline:2px solid #4F0E18;outline-offset:-2px}
.site-menu-toggle{display:none}

/* The listing's bar: light, the name as the page's heading. */
.listing-workspace.has-site-header>.topbar{background:#FAF6F0;color:#300916;border-bottom:1px solid #E7DCD5;padding:8px 24px;min-height:60px}
.has-site-header .listing-heading{min-width:0;display:flex;flex-direction:column;gap:2px}
.has-site-header .listing-title{margin:0;font:400 24px/1.15 Marcellus,var(--font-display,serif);color:#300916;letter-spacing:-.005em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.has-site-header .listing-heading .listing-address{margin:0;font:400 14px/1.3 var(--font-body,Arial,sans-serif);color:#705A62;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.has-site-header #listing-floor{min-height:40px;border:1px solid #D9C7CB;border-radius:10px;background:#fff;color:#300916;padding:0 10px}
.has-site-header .top-actions .btn{color:#300916;border-color:#D9C7CB;background:transparent}
.has-site-header .top-actions .btn:hover{border-color:#300916}
.has-site-header .private-label{color:#705A62}
.has-site-header .top-actions .listing-studio-toolbar p{color:#705A62}
.listing-workspace.has-site-header .listing-history .lay-top-btn,.listing-workspace.has-site-header .listing-back{color:#300916}
.listing-workspace.has-site-header .listing-history .lay-top-btn:hover:not(:disabled){background:rgba(48,9,22,.08)}
.has-site-header .listing-layout-menu>summary{color:#300916;border-color:#D9C7CB}
.has-site-header .listing-layout-menu>summary:hover,.has-site-header .listing-layout-menu[open]>summary{background:rgba(48,9,22,.08)}
.has-site-header .listing-layout-menu>summary:focus-visible{outline-color:#4F0E18}
@media(min-width:701px){
 .listing-workspace.has-site-header .listing-share{display:inline-flex;max-width:none}
 .listing-workspace.has-site-header .topbar-left{gap:16px}
}
@media(min-width:701px) and (max-width:1100px){
 .site-header{gap:24px;padding:0 20px}.listing-site-nav{gap:20px}
 .has-site-header .listing-title{font-size:20px}
 .site-header .site-account-text{display:none}
}

/* A phone: the site's header is the mark and a menu; the listing's bar is
   its name and Share, then the model and what the space is. */
@media(max-width:700px){
 .site-header{position:relative;gap:12px;min-height:56px;padding:0 8px 0 16px}
 .site-brand img{width:100px}
 .site-menu-toggle{display:inline-grid;place-items:center;width:44px;height:44px;margin-left:auto;border:0;border-radius:10px;background:transparent;color:#F7EAE2;cursor:pointer}
 .site-menu-toggle>span[aria-hidden]{position:relative;width:20px;height:1.5px;background:currentColor;box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor}
 .site-menu-toggle[aria-expanded=true]>span[aria-hidden]{box-shadow:none;transform:rotate(45deg)}
 .site-menu-toggle[aria-expanded=true]>span[aria-hidden]::after{content:'';position:absolute;inset:0;background:currentColor;transform:rotate(90deg)}
 .listing-site-nav,.site-header .site-account{display:none}
 .site-header:has(.is-open){flex-wrap:wrap}
 .listing-site-nav.is-open{display:flex;order:3;flex:1 0 100%;flex-direction:column;align-items:stretch;gap:0;margin:0}
 .listing-site-nav.is-open a{line-height:48px;border-top:1px solid rgba(247,234,226,.14)}
 .site-account.is-open{display:flex;order:4;flex:1 0 100%;padding:12px 0 16px;border-top:1px solid rgba(247,234,226,.14)}
 .site-account.is-open .site-signin{flex:1;justify-content:center;min-height:44px}
 .site-account.is-open .site-account-button{flex:1}
 .site-account.is-open .site-account-menu{left:0;right:0}
 .listing-workspace.has-site-header.is-phone-stack>.topbar{min-height:0;padding:10px 12px 10px 16px}
 .is-phone-stack .listing-heading{flex:1;min-width:0}
 .is-phone-stack .listing-title{font-size:19px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
 .is-phone-stack .listing-heading .listing-address{display:none}
 .is-phone-stack .listing-phone-summary h1{display:none}
 .is-phone-stack .listing-phone-address{margin-top:0}
 .is-phone-stack[data-mode=furnish] .listing-heading{font-size:0}
 .is-phone-stack[data-mode=furnish] .listing-heading>*{display:none}
 .is-phone-stack[data-mode=furnish] .listing-heading::before{content:'Try furniture';font:600 17px/1.2 var(--font-body,Arial,sans-serif);color:#300916}
 /* A signed-in layout carries undo and redo in its ••• menu, so the bar's own pair would only squeeze the title to
    "Try furnit". A guest has no menu and keeps them. */
 .is-phone-stack[data-mode=furnish] .top-actions:has(.listing-studio-toolbar) .listing-history{display:none}
 .is-phone-stack[data-mode=furnish] .listing-heading::before{white-space:nowrap}
 /* The title keeps its own width: squeezed to nothing it drew over the next button's words (6 Nov). */
 .is-phone-stack[data-mode=furnish] .listing-heading{flex:none;min-width:max-content}
 .is-phone-stack[data-mode=furnish] .top-actions{min-width:0;overflow:hidden}
 /* Its box keeps that width too: .topbar-left's flex:1 1 40px shrank it to 122px and the title spilled over "This browser" (6 Nov). */
 .is-phone-stack[data-mode=furnish] .topbar-left{flex:none}
 .listing-workspace.is-phone-stack[data-mode=furnish] .top-actions{flex:1 1 0;justify-content:flex-end}
 /* At 375 the bar is ~16px short, so a guest's "This browser" menu reads "Layout"; its menu still says where the layout is kept. */
 .listing-workspace.is-phone-stack[data-mode=furnish] .top-actions button.private-label:not(:disabled):not([hidden]){font-size:0}
 .listing-workspace.is-phone-stack[data-mode=furnish] .top-actions button.private-label:not(:disabled):not([hidden])::before{display:inline;content:'Layout';font-size:14px;position:static;width:auto;height:auto;border:0;border-radius:0;background:none;margin:0;transform:none;line-height:1.2}
 /* Its menu hangs from the bar, not the button: inside .top-actions (overflow hidden, so the title keeps its room) it was cut off and ran off the left edge (6 Nov). */
 .listing-workspace.is-phone-stack[data-mode=furnish] .listing-audience{position:static}
 .listing-workspace.is-phone-stack[data-mode=furnish] .listing-local-menu{right:12px;left:auto;top:calc(100% - 4px);max-width:calc(100vw - 24px)}
}
/* Review as a checklist: one headline per answer, its page as a chip, the quote and edit folded underneath. */
.ad .ad-head{font-weight:600;font-size:15px;line-height:1.35;color:#2A1A1F;overflow-wrap:anywhere}
.ad .ad-pick .ad-value{font-size:14px;line-height:1.45;color:#4A3A40}
.ad .ad-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.ad .ad-meta-chip{font-size:12px;line-height:1;padding:5px 8px;border-radius:999px;background:#F5EDE6;color:#63253A}
.ad .ad-meta-chip.is-warn{background:#FFF4DC;color:#805300;font-weight:600}
.ad .ad-item .ad-here{margin-left:34px;padding:0 12px;border-radius:12px;background:#F7F3EE;font-weight:600}
.ad .ad-item .ad-here input{width:20px;height:20px;accent-color:#4F0E18}
.ad .ad-edit .ad-source{margin:0}
.ad .ad-caution{margin:12px 0 0;padding:12px 14px;border-radius:12px;background:#FFF4DC;color:#4F3600;font-size:14px;line-height:1.45;display:flex;flex-direction:column;gap:2px}
.ad .ad-caution b{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#805300}
.ad .ad-about{margin-top:8px}.ad .ad-about>summary{font-size:13px;color:#4F0E18;cursor:pointer;min-height:44px;display:flex;align-items:center}
.ad .ad-about .document-limit{font-size:13px}
.ad .ad-progress{margin:0;font-size:14px;color:var(--ad-muted)}.ad .ad-progress b{color:#2A1A1F;font-size:16px}
.ad .ad-attest{display:flex;gap:10px;align-items:center;font-weight:600;min-height:44px}.ad .ad-attest input{width:20px;height:20px;flex:none;accent-color:#4F0E18}
.ad .ad-attest-note{margin:-6px 0 0}
.ad .ad-pick input.ad-mirror{visibility:hidden}.ad .ad-item.is-unplaced .ad-pick{cursor:auto}
/* The context field, then the two buttons side by side: Read again beside the field it uses, the download after it. */
.ad .ad-doc .document-actions{gap:10px 12px;margin-bottom:16px}
.ad .ad-doc .document-context{order:-2}.ad .ad-doc [data-read-document]{order:-1}
.ad .ad-doc .document-actions .btn{min-height:44px;padding:10px 18px}
/* App-screen rules (taste-skill inspector, 31 Oct): one filled button per screen, panel borders a whisper,
   one tracked capital label at most, and a working title rather than a landing-page one on the phone. */
.ad .ad-item.is-listing{border-color:var(--ad-line)}
@media (min-width:900px){.ad .ad-item.is-viewing .ad-show{background:#fff;color:#4F0E18;border-color:#4F0E18}}
.ad .ad-caution b{font-size:13px;letter-spacing:0;text-transform:none}
@media (max-width:600px){.internal-details.ad .internal-details-heading h1{font-size:24px}}
/* A Which space row has no tick box of its own (the Yes box decides), so its text starts at the card's edge. */
.ad .ad-item.is-unplaced .ad-pick{grid-template-columns:minmax(0,1fr);position:relative}
.ad .ad-item.is-unplaced .ad-pick input.ad-mirror{position:absolute;width:1px;height:1px;margin:0;opacity:0}
.ad .ad-item.is-unplaced .ad-here{margin-left:0}
/* One header on a wider screen (listing-experience arrange()): the site's header carries the tabs and the
   listing's actions, the cream listing bar goes, and the listing's name heads the column on the right. */
@media(min-width:701px){
 .listing-workspace.is-one-header>.listing-bar{display:none}
 .is-one-header .site-header{position:relative;flex-wrap:wrap;gap:8px 20px;min-height:64px;padding:8px 16px 8px 24px}
 .is-one-header .site-header>.topbar-tabs{margin:0 auto}
 .is-one-header .site-header>.top-actions{display:flex;align-items:center;gap:10px}
 /* Only the buttons sitting on the header itself: the layout menu's panel is cream and keeps its own. */
 .is-one-header .site-header .top-actions>.btn,.is-one-header .site-header .listing-studio-toolbar>.btn,.is-one-header .site-header .listing-studio-toolbar>.actions>.btn{color:#F7EAE2;border-color:rgba(247,234,226,.4);background:transparent}
 .is-one-header .site-header .top-actions>.btn:hover,.is-one-header .site-header .listing-studio-toolbar>.btn:hover,.is-one-header .site-header .listing-studio-toolbar>.actions>.btn:hover{border-color:#F7EAE2}
 .is-one-header .site-header .top-actions>.btn.listing-request,.is-one-header .site-header .listing-studio-toolbar>.btn[data-save]{background:#F7EAE2;color:#300916;border-color:#F7EAE2}
 .is-one-header .site-header .top-actions>.btn.listing-request:hover{background:#fff}
 .is-one-header .site-header .private-label,.is-one-header .site-header .listing-studio-toolbar p{color:#DABBC5}
 .is-one-header .site-header .listing-history .lay-top-btn,.is-one-header .site-header .listing-layout-menu>summary{color:#F7EAE2;border-color:rgba(247,234,226,.4)}
 .is-one-header .site-header .listing-history .lay-top-btn:hover:not(:disabled),.is-one-header .site-header .listing-layout-menu>summary:hover{background:rgba(247,234,226,.12)}
 /* The site's own pages sit behind the menu button, so the header has room for the listing. */
 .is-one-header .listing-site-nav{display:none;margin:0}
 .is-one-header .site-menu-toggle{display:inline-grid;place-items:center;width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:#F7EAE2;cursor:pointer}
 .is-one-header .site-menu-toggle>span[aria-hidden]{position:relative;width:18px;height:1.5px;background:currentColor;box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor}
 .is-one-header .site-menu-toggle[aria-expanded=true]>span[aria-hidden]{box-shadow:none;transform:rotate(45deg)}
 .is-one-header .site-menu-toggle[aria-expanded=true]>span[aria-hidden]::after{content:'';position:absolute;inset:0;background:currentColor;transform:rotate(90deg)}
 .is-one-header .listing-site-nav.is-open{display:flex;position:absolute;top:100%;right:12px;z-index:60;flex-direction:column;gap:0;min-width:200px;padding:6px 18px;background:#300916;border-radius:0 0 12px 12px;box-shadow:0 10px 24px rgba(0,0,0,.2)}
 .is-one-header .listing-site-nav.is-open a{line-height:44px}
 /* Furnish brings its own save and undo into the header; Share and whose-layout step aside. */
 .is-one-header[data-mode=furnish] .site-header .listing-share,.is-one-header[data-mode=furnish] .site-header [data-audience],.is-one-header[data-mode=furnish] .site-header .site-account-text{display:none}
 /* The listing's name, at the head of the column beside the model. */
 .ws .ws-rail .listing-identity{display:flex;flex-direction:column;gap:4px;padding:2px 2px 14px;margin-bottom:2px;border-bottom:1px solid #E7DCD5}
 .ws .ws-rail .listing-identity-title{margin:0;font:400 26px/1.15 Marcellus,var(--font-display,serif);color:#300916;overflow-wrap:anywhere}
 .ws .ws-rail .listing-identity-address{margin:0;font-size:14px;line-height:1.35;color:#705A62}
 .ws .ws-rail .listing-identity-floor{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px;color:#705A62}
 .ws .ws-rail .listing-identity-floor select{min-height:36px;border:1px solid #D9C7CB;border-radius:10px;background:#fff;color:#300916;padding:0 10px;font:inherit}
}
@media(min-width:701px) and (max-width:1000px){
 /* One row on a tablet too: the mark without the word, and tighter tabs and buttons, rather than a second band. */
 .is-one-header .site-header{flex-wrap:nowrap;gap:10px;padding:8px 12px 8px 16px;min-height:60px}
 .is-one-header .site-header>.topbar-tabs{margin:0 auto;flex:0 0 auto}
 /* Furnish's save and undo need the room; Request documents steps aside there, as Share does. */
 .is-one-header[data-mode=furnish] .site-header .listing-request{display:none}
 .is-one-header .site-header .tab-lenses.view-tabs button{padding:0 10px}
 .is-one-header .site-header>.top-actions{order:0;gap:8px}
 .is-one-header .site-header .top-actions>.btn,.is-one-header .site-header .listing-studio-toolbar>.btn{padding:8px 12px;min-height:40px;font-size:13px;white-space:nowrap}
 .is-one-header .site-brand img{width:44px;height:40px;object-fit:cover;object-position:left center}
}

@media(max-width:700px){.listing-identity{display:none}}

/* ---- Portal: who is signed in, top right (31 Oct) ------------------------
   The same control as the listing's site header (site-account.mjs), in the
   portal's top bar beside the workspace's privacy, so it is in one place
   across Inscena. The sidebar no longer carries the name or Sign out. */
.topbar-right{display:flex;align-items:center;gap:18px;margin-left:auto;min-width:0}
.workspace-layout.workspace-focus .topbar>.topbar-right{justify-self:end;gap:10px}
/* Placed, not flowed: the bar's columns hold their places before the tabs arrive (a scan opening). */
.workspace-layout.workspace-focus .topbar>.topbar-left{grid-column:1;grid-row:1}
.workspace-layout.workspace-focus .topbar>.topbar-tabs{grid-column:2;grid-row:1}
.workspace-layout.workspace-focus .topbar>.topbar-right{grid-column:3;grid-row:1}
.topbar-right .private-label{white-space:nowrap}
.portal-account{position:relative;display:flex;align-items:center}
@media(max-width:900px){.topbar-right .private-label{display:none}}
@media(max-width:700px){.portal-account .site-account-text{display:none}.portal-account .site-account-button{padding-right:6px}}
/* A scan's name in the top bar while its files load (openingTitle): the loaded
   name's type and place, without the menu it opens once the facts are in. */
.workspace-layout .topbar .crumb-opening{display:block;max-width:100%;min-width:0;height:36px;padding:0 10px;font:600 14px/36px var(--sans);color:var(--chrome-text,#F7EAE2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.workspace-layout .topbar .crumb-opening-pending{width:180px;height:14px;margin:0 10px;padding:0;border-radius:7px;background:rgba(247,234,226,.18)}
/* The scan view's top bar is full: from a laptop down, the signed-in control
   is its initials up to 1600px, now the bell sits beside it (name and role are in its menu); on a phone the scan's name
   and unit tag shorten rather than run under the actions beside them. */
@media(max-width:1600px){.workspace-layout.workspace-focus .portal-account .site-account-text{display:none}.workspace-layout.workspace-focus .portal-account .site-account-button{padding-right:6px}}
/* Between a phone and a laptop the name, the tabs and the right-hand controls do
   not fit one row beside the sidebar (the tabs ran over the back button and the
   name, or the bar ran past the window's edge), so the tabs take a row of their own. */
@media(min-width:761px) and (max-width:1200px){
 .workspace-layout.workspace-focus .main-area>.topbar{grid-template-columns:minmax(0,1fr) max-content;row-gap:6px}
 .workspace-layout.workspace-focus .main-area>.topbar>.topbar-right{grid-column:2;grid-row:1}
 .workspace-layout.workspace-focus .main-area>.topbar>.topbar-tabs{grid-column:1/-1;grid-row:2;justify-self:center}
 .workspace-layout.workspace-focus .topbar-right .private-label{display:none}
}
@media(max-width:760px){
 /* The controls fill the first row, so the scan's name takes a short row of its own under them. */
 .workspace-layout.workspace-focus .main-area>.topbar{grid-template-columns:auto auto minmax(0,1fr) auto;row-gap:4px}
 .workspace-layout.workspace-focus .main-area>.topbar>.topbar-left,.workspace-layout.workspace-focus .main-area>.topbar #crumb{display:contents}
 .workspace-layout.workspace-focus .main-area>.topbar .side-toggle{grid-column:1;grid-row:1}
 .workspace-layout.workspace-focus .main-area>.topbar .crumb-back{grid-column:2;grid-row:1}
 .workspace-layout.workspace-focus .main-area>.topbar>.topbar-right{grid-column:4;grid-row:1}
 .workspace-layout.workspace-focus .main-area>.topbar .crumb-project{grid-column:1/-1;grid-row:2;min-width:0;display:flex}
 .workspace-layout.workspace-focus .main-area>.topbar>.topbar-tabs{grid-column:1/-1;grid-row:3}
 .workspace-layout.workspace-focus .main-area>.topbar .crumb-project>button{min-width:0;max-width:100%;height:28px;min-height:28px;overflow:hidden}
 .workspace-layout.workspace-focus .main-area>.topbar .crumb-project>button b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .workspace-layout.workspace-focus .main-area>.topbar .crumb-opening{height:28px;line-height:28px}
 .workspace-layout.workspace-focus .main-area>.topbar .crumb-suite{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 /* The first row holds menu, back, undo, redo, people, Share, bell and account, 358px of buttons, so it carries no
    gaps of its own: the empty column between the two sides would cost two of them. Nothing here may be wider than the
    window: a phone browser widens its whole page to fit whatever sticks out (innerWidth, not scrollWidth, shows it).
    If a narrower window can't fit the row, the scan's actions wrap inside it; the bell and account stay on the edge. */
 .workspace-layout.workspace-focus .main-area>.topbar{column-gap:0}
 .workspace-layout.workspace-focus .main-area>.topbar .side-toggle{margin-right:0}
 .workspace-layout.workspace-focus .topbar>.topbar-right{gap:4px}
 .workspace-layout.workspace-focus .topbar-right>.top-actions{flex:0 1 auto;gap:4px}
 .workspace-layout.workspace-focus .topbar-right>:not(.top-actions){flex:none}
 .workspace-layout.workspace-focus .top-actions .lay-top-sep{display:none}
 .portal-account .site-account-button,.workspace-layout.workspace-focus .portal-account .site-account-button{gap:4px;padding:2px}
 .portal-account .site-caret{display:none}
}

/* An agent's note (internal-details.mjs): words and the pictures that go with them. */
.agent-note{margin-top:24px;background:#fff;border:1px solid #e3d6db;border-radius:20px;padding:24px 32px;transition:background .15s,border-color .15s}.agent-note.is-dragging{background:#f5e5ec;border-color:#842b4b}.agent-note h3{font-size:23px;margin:0 0 8px}.agent-note p{line-height:1.5}.agent-note textarea{width:100%;box-sizing:border-box;border:1px solid #d9c9ce;border-radius:10px;padding:12px;font:inherit;color:#392b30;background:#fff;resize:vertical;min-height:110px}.agent-note .document-pick{justify-content:flex-start}
.agent-note-pictures{list-style:none;display:flex;flex-wrap:wrap;gap:12px;padding:0;margin:12px 0}.agent-note-pictures:empty{display:none}.agent-note-pictures li{position:relative;display:grid;gap:4px;justify-items:start}.agent-note-pictures img{width:120px;height:120px;object-fit:cover;border-radius:10px;border:1px solid #e3d6db;background:#f5f0ea}.agent-note-pictures small{font-size:12px;color:#6b5a60}.agent-note-pictures [data-note-remove]{position:absolute;top:4px;right:4px;background:#fff}
.agent-note-record{margin:12px 0}.ad-doc.is-note .ad-show{display:none}.agent-note-words{margin:0 0 12px;padding:12px 16px;border-left:3px solid #842b4b;background:#f8f3ef;border-radius:0 10px 10px 0;white-space:pre-wrap;line-height:1.5}
@media(max-width:600px){.agent-note{padding:20px}.agent-note-pictures img{width:96px;height:96px}}

/* Tell us about this property (internal-details.mjs chatHTML): one message box for words, documents and pictures,
   and a thread where the reader answers each thing sent with where its answers would go. Colours are the Details
   page's own (--ad-line, --ad-muted) and the portal's button burgundy. */
.ad-chat{--chat-accent:#7B2843}
.ad-thread{list-style:none;margin:20px 0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:640px;overflow:auto}.ad-thread:empty{display:none}
.ad-turn{display:flex;flex-direction:column;max-width:min(560px,86%);scroll-margin-bottom:120px}.ad-turn.is-sent{align-self:flex-end;align-items:flex-end}.ad-turn.is-read{align-self:flex-start;margin-bottom:14px}
.ad-bubble{padding:12px 16px;border-radius:18px;line-height:1.5;overflow-wrap:anywhere}.ad-bubble>:first-child{margin-top:0}.ad-bubble>:last-child{margin-bottom:0}
.is-sent .ad-bubble{background:var(--chat-accent);color:#fff;border-bottom-right-radius:6px}.is-sent .ad-bubble a,.ad-chat .is-sent .ad-bubble p,.ad-chat .is-sent .ad-bubble b,.ad-chat .is-sent .ad-bubble small,.ad-chat .is-sent .ad-file-mark{color:#fff}
.is-read .ad-bubble{background:#fff;border:1px solid var(--ad-line);border-bottom-left-radius:6px;color:#392b30}.is-pending .ad-bubble{padding:4px 14px}
.ad-when{font-size:12px;color:var(--ad-muted);margin-top:4px}.ad-said{white-space:pre-wrap;margin:0}
.ad-file{display:flex;align-items:center;gap:10px;margin:0}.ad-file b{display:block;font-weight:600}.ad-file small{opacity:.8}
.ad-file-mark{display:inline-grid;place-items:center;min-width:40px;height:40px;padding:0 4px;border-radius:8px;background:rgba(255,255,255,.18);font:600 11px/1 var(--sans,inherit);letter-spacing:.04em}
.is-sent .agent-note-pictures{margin:8px 0 0;justify-content:flex-end}.is-sent .agent-note-pictures img{width:96px;height:96px;border-color:rgba(255,255,255,.35)}
.ad-where-title{font-weight:600;margin:12px 0 6px}.ad-where{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:6px}.ad-where li{padding:8px 10px;border-radius:10px;background:#f8f3ef;font-size:14px}.ad-where li b{display:block;font-size:13px;color:var(--ad-muted);font-weight:600}
.ad-where li.is-listing{background:#f5e5ec}.ad-where li.is-conflict{background:#fff1dc}.ad-where li.is-elsewhere,.ad-where li.is-same{color:var(--ad-muted)}
.ad-bubble .ad-review-link{margin-top:6px}
.ad-composer{position:sticky;bottom:12px;display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:10px;text-align:left;border-radius:22px;border:1px solid var(--ad-line);background:#fff;box-shadow:0 6px 20px rgba(48,9,22,.08)}
.ad-composer-row{display:flex;align-items:flex-end;gap:8px}.ad-composer textarea{flex:1;min-width:0;min-height:44px;max-height:240px;resize:none;border:0;outline:0;padding:11px 6px;font:inherit;color:#392b30;background:transparent;line-height:1.4}
.ad-composer:focus-within{border-color:var(--chat-accent)}.ad-attach{flex:0 0 auto;width:44px;height:44px;border-radius:50%;padding:0;justify-content:center;align-items:center;font-size:24px;line-height:1;background:#f5f0ea;color:var(--chat-accent);border:1px solid var(--ad-line)}
.ad-attach-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.ad-send{flex:0 0 auto;min-height:44px;border-radius:22px}
.ad-attached{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}.ad-attached:empty{display:none}
.ad-attached li{position:relative;display:flex;align-items:center;gap:8px;border:1px solid var(--ad-line);border-radius:12px;background:#fff;padding:4px 30px 4px 4px;font-size:13px;max-width:240px}.ad-attached li span:not(.ad-file-mark){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad-attached img{width:56px;height:56px;object-fit:cover;border-radius:8px}.ad-attached .ad-file-mark{background:#f5e5ec;color:var(--chat-accent);min-width:36px;height:36px}
.ad-attached [data-remove-picture],.ad-attached [data-remove-file]{position:absolute;top:4px;right:4px;width:22px;height:22px;min-width:0;min-height:0;padding:0;border-radius:50%;font-size:14px;line-height:20px;display:grid;place-items:center;background:#fff;border:1px solid var(--ad-line);color:#392b30}
.ad-attached li.is-picture{padding:4px}.ad-attached li.is-picture [data-remove-picture]{background:rgba(255,255,255,.92)}
.ad-welcome .ad-bubble{color:var(--ad-muted)}
.is-inflight{opacity:.92}.is-inflight .ad-when{font-style:italic}
.ad-where li.is-several b{color:#392b30}.ad-listing-pick{display:flex;align-items:center;gap:8px;font-weight:600;margin:8px 0 4px}.ad-listing-pick input{width:20px;height:20px;accent-color:var(--chat-accent,#7B2843)}.ad-figures{display:grid;gap:2px;margin-top:4px}.ad-figures span{display:block}
@media(max-width:600px){.ad-turn{max-width:92%}.ad-composer{border-radius:18px}.ad-attach{width:40px;height:40px}.ad-send{padding-inline:14px}}
/* The bell, beside who is signed in: what needs this person, each item going where it is done (31 Oct). */
.site-bell{position:relative;display:flex;align-items:center}
.site-bell[hidden]{display:none}
.bell-button{position:relative;display:inline-grid;place-items:center;width:44px;height:44px;border:0;border-radius:999px;background:transparent;color:inherit;cursor:pointer}
.bell-button:hover,.bell-button[aria-expanded=true]{background:color-mix(in srgb,currentColor 12%,transparent)}
.bell-button:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.bell-icon svg{width:21px;height:21px;display:block}
.bell-count{position:absolute;top:5px;right:4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#B3261E;color:#fff;font:700 11px/18px var(--font-body,Arial,sans-serif);text-align:center;box-shadow:0 0 0 2px var(--bell-ring,#300916)}
.bell-count[hidden]{display:none}
.bell-panel{position:absolute;top:calc(100% + 8px);right:-8px;z-index:60;width:min(380px,calc(100vw - 24px));max-height:min(70vh,560px);overflow:auto;padding:16px 8px 8px;border:1px solid #E4D8D3;border-radius:14px;background:#FAF6F0;color:#300916;box-shadow:0 14px 34px rgba(48,9,22,.18);text-align:left}
.bell-panel[hidden]{display:none}
.bell-head{padding:0 10px 10px}
.bell-head h2{margin:0;font:600 17px/1.3 var(--font-body,Arial,sans-serif);color:#300916}
.bell-head p{margin:2px 0 0;font:400 13px/1.4 var(--font-body,Arial,sans-serif);color:#705A62}
.bell-list{list-style:none;margin:0;padding:0}
.bell-item a{display:flex;flex-direction:column;gap:3px;padding:12px 10px;border-radius:10px;color:#300916;text-decoration:none}
.bell-item a:hover{background:#F0E8E2}.bell-item a:focus-visible{background:#F0E8E2;outline:2px solid #4F0E18;outline-offset:-2px}
/* Each item is its own row, with a rule between them, so three items never read as one block (Evan, 31 Oct). */
.bell-item+.bell-item{margin-top:0;border-top:1px solid #EFE6E1}
.bell-item+.bell-item a{margin-top:4px}
.bell-item-lead{font:600 15px/1.3 var(--font-body,Arial,sans-serif)}
.bell-item-what{font:400 14px/1.4 var(--font-body,Arial,sans-serif);color:#4A2E36;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.bell-item-where{font:400 13px/1.3 var(--font-body,Arial,sans-serif);color:#705A62}
.bell-item-who{font:500 13.5px/1.3 var(--font-body,Arial,sans-serif);color:#300916;overflow-wrap:anywhere}
.bell-item.is-news .bell-item-lead{font-weight:500}
.bell-new{display:inline-block;margin-right:4px;padding:1px 6px;border-radius:999px;background:#4F0E18;color:#FAF6F0;font:600 11px/16px var(--font-body,Arial,sans-serif);vertical-align:1px}
.bell-empty{margin:4px 10px 12px;font:400 15px/1.45 var(--font-body,Arial,sans-serif);color:#300916}
.bell-foot{margin:6px 10px 4px;font:400 13px/1.4 var(--font-body,Arial,sans-serif);color:#705A62}
/* The panel is a surface of its own, not the page's colour: white over the cream, a firmer edge, and it drops in from the bell. */
.bell-panel{background:#fff;border-color:#D9C9C2}
.bell-panel:not([hidden]){animation:bell-in .16s ease-out}
@keyframes bell-in{from{opacity:0;transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){.bell-panel:not([hidden]){animation:none}}
/* On a phone it spans the screen under the bar, so the page behind it dims: there is no doubt it is open (Evan, 31 Oct). */
.bell-scrim{display:none}
/* The scrim and panel live in the top bar, so while the bell is open the bar is lifted above the page's own floating
   parts (the Details message box, the listing's assistant at 120); a toast or a system dialog may still paint over it. */
@media(max-width:760px){.bell-panel{position:fixed;top:64px;left:12px;right:12px;width:auto;z-index:131;box-shadow:0 18px 40px rgba(48,9,22,.28)}.bell-scrim:not([hidden]){display:block;position:fixed;inset:0;z-index:130;background:rgba(42,26,31,.38);animation:bell-dim .16s ease-out}body:has(.bell-panel:not([hidden])) :is(.topbar,.site-header){z-index:130}}
@keyframes bell-dim{from{opacity:0}}
@media (prefers-reduced-motion:reduce){.bell-scrim:not([hidden]){animation:none}}
@media(max-width:700px){.site-header .site-bell:not([hidden]){margin-left:auto}.site-header .site-bell:not([hidden])~.site-menu-toggle{margin-left:0}}

/* The workspace frame stays put while the page scrolls (pinShell in portal.mjs
   sets --shell-top to the pinned banner's height). The side navigation is the
   rest of the window tall and scrolls inside itself if it ever needs to; the
   top bar sits under the banner. A phone keeps its drawer, and its banner,
   which wraps there, scrolls away. */
.workspace-layout>.main-area>.topbar{position:sticky;top:var(--shell-top,0px);z-index:25}
/* Except a 3D page on a phone: its bar is three rows there, and pinned it
   would take the room the model was given back (portal.css, studio). */
@media(max-width:760px){.workspace-layout.workspace-focus>.main-area>.topbar{position:static}}
@media(min-width:761px){
 .demo-banner{position:sticky;top:0;z-index:30}
 .workspace-layout>.sidebar{top:var(--shell-top,0px);height:calc(100vh - var(--shell-top,0px));height:calc(100dvh - var(--shell-top,0px));overflow-y:auto;overscroll-behavior:contain}
}

/* A text or picture document in the viewer scrolls in its own pane, so the quote can be scrolled to (document-viewer.mjs). */
.dv:not(.is-pdf) .dv-page{max-height:min(70vh,720px);overflow:auto}
/* The essentials (tenant-essentials.mjs): every item always shows; a gap reads as clearly as an answer and is one tap from a request. */
.dt .dt-essentials{background:#fff;border:1px solid var(--dt-line);border-radius:20px;padding:18px 16px;scroll-margin-top:72px}
.dt .dt-essentials h2{margin:0 0 12px}
.dt .dt-ess-sub{font:600 15px/1.3 var(--sans,Arial,sans-serif);margin:20px 0 8px;color:var(--dt-ink)}
.dt .dt-ess-grid,.dt .dt-ess-list{list-style:none;margin:0;padding:0}
.dt .dt-ess-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.dt .dt-ess{display:flex;flex-direction:column;gap:8px;min-width:0;border:1px solid var(--dt-line);border-radius:14px;background:#FCFAF7;padding:12px 14px}
.dt .dt-ess-open{display:flex;flex-direction:column;gap:3px;width:100%;padding:0;border:0;background:none;text-align:left;font:inherit;color:inherit;min-width:0}
button.dt-ess-open{cursor:pointer}
.dt button.dt-ess-open:focus-visible,.dt .dt-ess-request:focus-visible{outline:2px solid var(--dt-chrome);outline-offset:3px;border-radius:8px}
.dt .dt-ess-k{font-size:13px;color:var(--dt-muted)}
.dt .dt-ess b{font-size:18px;font-weight:600;line-height:1.25;color:#2A1A1F;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.dt .dt-ess small{font-size:12px;line-height:1.4;color:var(--dt-muted)}
.dt .dt-ess.is-missing{background:#fff;border-style:dashed;border-color:#CDB9AE}
.dt .dt-ess.is-missing b{color:#8A3A2E;font-size:16px}
.dt .dt-ess-request{align-self:flex-start;margin-top:auto;min-height:36px;padding:6px 14px;border-radius:999px;border:1px solid var(--dt-chrome);background:var(--dt-chrome);color:#FFF7F0;font:600 13px/1 var(--sans,Arial,sans-serif);cursor:pointer}
.dt .dt-ess-request.is-chosen{background:#8A3A2E;border-color:#8A3A2E}
.dt .dt-ess.is-partial .dt-ess-request{background:#fff;color:var(--dt-chrome)}
.dt .dt-ess-asked{align-self:flex-start;margin-top:auto;font-size:12px;font-weight:600;color:var(--dt-chrome);background:var(--dt-soft);border-radius:999px;padding:6px 10px}
.dt .dt-ess-list{display:flex;flex-direction:column;gap:6px}
.dt .dt-ess-list .dt-ess{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:2px;align-items:center;padding:10px 14px}
.dt .dt-ess-list .dt-ess>*{grid-column:1}.dt .dt-ess-list .dt-ess>.dt-ess-request,.dt .dt-ess-list .dt-ess>.dt-ess-asked{grid-column:2;grid-row:1/span 3;align-self:center}
.dt .dt-ess-list .dt-ess b{font-size:15px;-webkit-line-clamp:2}.dt .dt-ess-list .dt-ess.is-missing b{font-size:14px}
.dt .dt-ess-list .dt-ess-request,.dt .dt-ess-list .dt-ess-asked{margin-top:0;flex:none}
.dt .dt-essentials .dt-fine{margin:10px 0 0}
.dt .dt-summary{background:#fff;border:1px solid var(--dt-line);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.dt .dt-summary h2{margin:0}
.dt .dt-summary-count{margin:0;font-size:15px;color:var(--dt-ink)}.dt .dt-summary-count b{font-size:22px;font-weight:600;color:#2A1A1F}
.dt .dt-summary-missing{margin:0;font-size:14px;line-height:1.45;color:var(--dt-muted)}
.dt .dt-summary-link{font-size:13px;color:var(--dt-chrome)}
@media (max-width:420px){.dt .dt-ess-grid{grid-template-columns:minmax(0,1fr)}}
@media (min-width:900px){.dt .dt-essentials{padding:20px 24px}}
/* The agent's view of the same check: gaps first, with how many tenants asked. */
.dt .dt-ess small.dt-ess-gap{color:#8A3A2E;font-weight:600}
.dt .dt-ess-status:empty{display:none}.dt .dt-ess-status{margin:0 0 10px;font-size:14px;font-weight:600;color:var(--dt-chrome)}
.dt .dt-summary-request.is-chosen{background:#8A3A2E;border-color:#8A3A2E}

/* PROPERTY DETAILS (internal-details.mjs, 31 Oct): the page is the agent's to-do; the conversation with the reader is
   a rail the height of the window beside it, as a messaging pane is; each document's review is a sheet over the page.
   Narrower than 1200px the rail is a message box docked at the foot of the window that opens the conversation full
   screen. The floating property assistant would sit on the rail's Send button, so the rail stands in for it here. */
body:has(.internal-details.ad.has-rail) .property-chat{display:none}
.internal-details-sections:has(.ad.has-rail){max-width:1440px}
.ad .ad-main{display:flex;flex-direction:column;gap:44px;min-width:0}
.ad .internal-details-heading{display:block}
.ad .ad-lede{margin:8px 0 0;max-width:64ch;font-size:15px;line-height:1.5;color:var(--ad-muted)}.ad .ad-lede b{color:#2A1A1F;font-weight:600}
.internal-details.ad h2{font:400 22px/1.2 'Marcellus',Georgia,serif;margin:0}
.ad .ad-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.ad .ad-tally{margin:0;font-size:13px;color:var(--ad-muted);white-space:nowrap}.ad .ad-tally b{font-size:20px;font-weight:600;color:#2A1A1F;margin-right:4px;font-variant-numeric:tabular-nums}
.ad .ad-section-line{margin:6px 0 14px;font-size:14px;line-height:1.5;color:var(--ad-muted);max-width:64ch}
.ad .ad-empty{margin:12px 0 0;padding:14px 16px;background:#fff;border:1px solid var(--ad-line);border-radius:14px}
.ad .ad-asking{margin-top:12px}
/* Check and share: one row per document, its counts, and the button that opens its review. */
.ad .ad-queue{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--ad-line);border-radius:16px}
.ad .ad-queue-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px}
.ad .ad-queue-row+.ad-queue-row{border-top:1px solid #F0E8E2}
.ad .ad-queue .ad-file-mark{background:#F5E5E9;color:#4F0E18}
.ad .ad-queue-text{display:flex;flex-direction:column;gap:4px;min-width:0}
.ad .ad-queue-text b{font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad .ad-queue-text small{font-size:13px;color:var(--ad-muted)}
.ad .ad-queue .btn{min-height:40px;white-space:nowrap;font-variant-numeric:tabular-nums}
/* The essentials: laid out to the data, in as many columns as fit; each says what it is, and its mark its state. */
.ad .ad-ess-ask{font-size:13px;line-height:1.4;color:var(--ad-muted)}
.ad .ad-ess-note{font-size:12px;line-height:1.4;color:#7A4E1D;font-weight:600}
.ad .ad-ess-add{width:22px;height:22px;border-radius:50%;border:1px solid var(--ad-line);display:grid;place-items:center;color:#4F0E18;font-size:15px;line-height:1;box-sizing:border-box}
.ad .ad-ess-wait{align-self:flex-start;margin:-4px 10px 8px 40px;padding:5px 10px;border:0;border-radius:999px;background:#F5E5E9;color:#4F0E18;font:600 12px/1.3 Archivo,sans-serif;cursor:pointer;text-align:left}
/* Records: what is looked at now and then, one line each, opening in place. */
.ad .ad-records h2{margin-bottom:12px}
.ad .ad-records-list{background:#fff;border:1px solid var(--ad-line);border-radius:16px}
.ad .ad-records-list>.property-fact-records{padding:0 16px}
.ad .ad-records-list>.property-fact-records+.property-fact-records{border-top:1px solid #F0E8E2}
.ad .ad-records-list>.property-fact-records>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;font-size:inherit;list-style:none;min-height:44px;box-sizing:border-box}
.ad .ad-records-list>.property-fact-records>summary::-webkit-details-marker{display:none}
.ad .ad-records-list>.property-fact-records>summary::after{content:'›';font-size:22px;line-height:1;color:var(--ad-muted)}
.ad .ad-records-list>.property-fact-records[open]>summary::after{transform:rotate(90deg)}
.ad .ad-records-list>.property-fact-records[open]{padding-bottom:16px}
.ad .ad-records-list summary>span{display:flex;flex-direction:column;gap:2px}.ad .ad-records-list summary b{font-size:15px;font-weight:600}.ad .ad-records-list summary small{font-size:13px;color:var(--ad-muted)}
/* The conversation. */
.ad .ad-rail{--chat-accent:#7B2843;min-width:0}
.ad .ad-rail-head h2{font-size:20px}.ad .ad-rail-head p{margin:4px 0 0}
.ad .ad-thread{position:relative}
.ad .ad-rail .ad-turn.is-read{max-width:96%}.ad .ad-rail .ad-turn.is-sent{max-width:90%}
.ad .ad-rail .ad-composer{position:static;box-shadow:none}
.ad .ad-limits{margin:0;font-size:12px;line-height:1.4}
.ad .ad-how summary{font-size:12px;color:#4F0E18;cursor:pointer;min-height:28px;display:flex;align-items:center}.ad .ad-how p{margin:4px 0 0;font-size:12px}
.ad .ad-rail [data-document-status]:empty{display:none}.ad .ad-rail [data-document-status]{margin:0;font-size:13px;color:#36252A}
.ad .ad-rail-open,.ad .ad-rail-close{display:none}
.ad .ad-reply-summary{margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ad .ad-reply-summary.is-all{display:block;-webkit-line-clamp:unset}
.ad .ad-more{border:0;background:none;padding:2px 0;color:#4F0E18;font:600 13px Archivo,sans-serif;cursor:pointer;min-height:32px}
.ad .ad-where{grid-template-columns:minmax(0,1fr);gap:0;background:#fff;border:1px solid var(--ad-line);border-radius:12px;overflow:hidden}
.ad .ad-where li{padding:0;background:none;border-radius:0;font-size:inherit}.ad .ad-where li+li{border-top:1px solid #F0E8E2}
.ad .ad-where a,.ad .ad-where-row{display:flex;gap:10px;align-items:baseline;justify-content:space-between;padding:8px 10px;color:inherit;text-decoration:none}
.ad .ad-where a:hover{background:#F8F3EF}.ad .ad-where a:focus-visible{outline:2px solid #4F0E18;outline-offset:-2px}
.ad .ad-where a>span:first-child,.ad .ad-where-row>span:first-child{display:flex;flex-direction:column;gap:1px;min-width:0}
.ad .ad-where li b{font-size:13px;font-weight:600;color:#2A1A1F}
.ad .ad-where li small{font-size:12px;color:var(--ad-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad .ad-n{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:#2A1A1F}
.ad .ad-where li.is-listing b{color:#4F0E18}.ad .ad-where li.is-conflict b{color:#805300}
.ad .ad-where li.is-elsewhere b,.ad .ad-where li.is-same b,.ad .ad-where li.is-elsewhere .ad-n,.ad .ad-where li.is-same .ad-n{color:var(--ad-muted);font-weight:500}
@media (max-width:1199px){
 .ad .ad-rail{position:sticky;bottom:12px;z-index:40;width:min(820px,100%);margin:20px auto 0;box-sizing:border-box;display:flex;flex-direction:column;gap:8px;padding:8px;background:#fff;border:1px solid var(--ad-line);border-radius:22px;box-shadow:0 6px 24px rgba(48,9,22,.14)}
 .ad .ad-rail>.ad-rail-head,.ad .ad-rail>.ad-thread,.ad .ad-rail>.ad-how,.ad .ad-rail>.ad-chat-limits{display:none}
 .ad .ad-rail-open{display:block;align-self:flex-start;border:0;background:none;padding:4px 8px;min-height:32px;color:#4F0E18;font:600 13px Archivo,sans-serif;cursor:pointer}
 .ad .ad-rail .ad-composer{border:0;padding:0 2px}
 .ad .ad-rail.is-open{position:fixed;inset:0;z-index:300;border:0;border-radius:0;box-shadow:none;padding:16px}
 .ad .ad-rail.is-open>.ad-rail-head{display:block;position:relative;padding-right:52px}
 .ad .ad-rail.is-open>.ad-thread{display:flex;flex:1;min-height:0;max-height:none;margin:0 -16px;padding:12px 16px;background:#FBF8F5}
 .ad .ad-rail.is-open>.ad-chat-limits{display:block;margin:0 4px}.ad .ad-rail.is-open .ad-rail-open{display:none}
 .ad .ad-rail.is-open .ad-rail-close{display:grid;place-items:center;position:absolute;top:0;right:0;width:44px;height:44px;border-radius:50%;border:1px solid var(--ad-line);background:#fff;font-size:22px;line-height:1;cursor:pointer;color:#36252A}
 .ad .ad-rail.is-open .ad-composer{border:1px solid var(--ad-line);padding:10px}
}
.ad .ad-rail.is-open>.ad-rail-head{min-height:44px}
.ad .ad-rail.is-open>.ad-rail-head h2{margin:0;padding:9px 0 0 52px;font:600 20px/1.3 Archivo,sans-serif;text-align:center}
.ad .ad-composer textarea::placeholder{white-space:nowrap}
@media (max-width:480px){.ad .ad-rail.is-open>.ad-rail-head h2{padding-left:0;text-align:left;font-size:18px}}
.ad .ad-rail.is-open>.ad-samples{display:none}
.ad .ad-rail:not(.is-open)>.ad-rail-open{margin:-2px 0}
@media (min-width:768px) and (max-width:1199px){.ad .ad-rail.is-open{inset:auto 0 16px;margin:0 auto;width:min(820px,calc(100vw - 32px));height:min(78vh,760px);border:1px solid var(--ad-line);border-radius:22px;box-shadow:0 18px 60px rgba(48,9,22,.22)}}
.ad .ad-samples{display:flex;gap:8px;overflow-x:auto;padding:2px;scrollbar-width:none}.ad .ad-samples[hidden]{display:none}
.ad .ad-samples button{flex:none;min-height:36px;padding:0 14px;border:1px solid var(--ad-line);border-radius:18px;background:#fff;color:#36252A;font:500 13px Archivo,sans-serif;cursor:pointer}
.ad .ad-samples button:hover{background:#F8F3EF}
.ad .ad-save-note{align-self:flex-end;border:0;background:none;padding:6px 2px;min-height:32px;color:#4F0E18;font:500 12px Archivo,sans-serif;text-decoration:underline;cursor:pointer}
.ad .ad-answer-file{display:inline-flex;margin-top:8px}
.ad .ad-entry-asked{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:10px;background:#F8F1EC;font-size:13px;line-height:1.4;color:#36252A}.ad .ad-entry-asked q{color:var(--ad-muted)}.ad .ad-entry-asked a{color:#4F0E18;font-weight:600}
.ad .ad-ess-held{font-size:12px;color:var(--ad-muted);overflow-wrap:anywhere}
.ad .ad-entry-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px 12px}
.ad .ad-entry label{display:flex;flex-direction:column;gap:8px;font:500 13px/1.3 Archivo,sans-serif;color:#36252A}
.ad .ad-entry input:not([type=checkbox]):not([type=file]),.ad .ad-entry select,.ad .ad-entry textarea{width:100%;box-sizing:border-box;min-height:44px;margin:0;padding:10px 12px;border:1px solid var(--ad-line);border-radius:8px;background:#fff;font:400 15px/1.4 Archivo,sans-serif;color:#2A1A1F}
.ad .ad-entry select{height:44px;padding-block:0}
.ad .ad-entry input:not([type=checkbox]):not([type=file]):focus-visible,.ad .ad-entry select:focus-visible,.ad .ad-entry textarea:focus-visible{outline:2px solid #4F0E18;outline-offset:-1px;box-shadow:none}
.ad .ad-entry-wide{grid-column:1/-1}
.ad .ad-entry-money>span{display:flex;align-items:center;gap:8px}.ad .ad-entry-money i{flex:none;font-style:normal;color:#2A1A1F;font-size:15px;line-height:1}
.ad .ad-entry .ad-entry-drop{position:relative;flex-direction:row;align-items:center;justify-content:center;min-height:48px;padding:12px;line-height:1.4;border:1px dashed #CDBDB4;border-radius:8px;background:#fff;color:#4F0E18;text-align:center;cursor:pointer;overflow-wrap:anywhere}
.ad .ad-entry-drop.is-dragging{background:#F4E9E3;border-color:#4F0E18}
.ad .ad-entry-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.ad .ad-entry .ad-entry-share{flex-direction:row;align-items:center;gap:8px;color:#36252A;font-size:13px}.ad .ad-entry-share[hidden]{display:none}
.ad .ad-entry-error{margin:0;color:#A1261C;font-size:13px}.ad .ad-entry-error:empty{display:none}
.ad .ad-entry-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px}.ad .ad-entry-actions .btn{min-height:44px}.ad .ad-entry-actions small{margin-left:auto;font-size:12px;line-height:1.4;color:var(--ad-muted)}
.ad .ad-entry-remove{color:#A1261C}
/* A review, over the page: the document on the left, its answers on the right, the share bar at the foot. */
.ad .ad-sheet{width:min(1240px,calc(100vw - 48px));height:calc(100dvh - 48px);max-width:none;max-height:none;margin:auto;padding:0;border:0;border-radius:18px;background:#FAF6F0;color:#392b30;overflow:hidden}
.ad .ad-sheet[open]{display:flex;flex-direction:column}
.ad .ad-sheet::backdrop{background:rgba(42,26,31,.5)}
.ad .ad-sheet-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;padding:14px 20px;background:#fff;border-bottom:1px solid var(--ad-line)}
.ad .ad-sheet-head .ad-doc-head{flex:1;min-width:220px}
.internal-details.ad .ad-sheet-head h2{font:600 16px/1.3 Archivo,sans-serif;overflow-wrap:anywhere}
.ad .ad-sheet-head .document-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0}
.ad .ad-sheet-head .btn{min-height:40px}
.ad .ad-context{position:relative}.ad .ad-context summary{font-size:13px;color:#4F0E18;cursor:pointer;min-height:40px;display:flex;align-items:center}
.ad .ad-context[open] label{position:absolute;right:0;top:44px;z-index:5;width:min(360px,80vw);padding:12px;background:#fff;border:1px solid var(--ad-line);border-radius:12px;box-shadow:0 8px 24px rgba(48,9,22,.12);display:flex;flex-direction:column;gap:6px;font-size:13px}
.ad .ad-context input{font:inherit;font-size:15px;padding:8px 10px;border:1px solid var(--ad-line);border-radius:8px}
.ad .ad-sheet-close{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--ad-line);background:#fff;font-size:22px;line-height:1;cursor:pointer;color:#36252A}
.ad .ad-sheet .document-body.ad-sheet-body{flex:1;min-height:0;padding:0;overflow:auto}
.ad .ad-sheet .ad-split-review{padding:16px 20px 0}
.ad .ad-sheet .ad-split-review.is-alone{max-width:760px;margin:0 auto}
.ad .ad-sheet .ad-note-pane{padding:16px 20px 0}
.ad .ad-sheet .ad-submit{margin:16px -20px 0;border-radius:0;border:0;border-top:1px solid var(--ad-line)}
.ad .ad-sheet .ad-caution{margin-top:0}
@container (min-width:860px){
 .ad .ad-sheet .document-body.ad-sheet-body{overflow:hidden}
 .ad .ad-sheet .ad-split,.ad .ad-sheet .ad-split.is-note{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,44%);gap:0;align-items:stretch;height:100%;margin:0}
 .ad .ad-sheet .ad-split.is-note{grid-template-columns:minmax(0,1fr) minmax(420px,52%)}
 .ad .ad-sheet .ad-split-review{height:100%;overflow:auto;box-sizing:border-box}
 .ad .ad-sheet .ad-split-review.is-alone{height:100%}
 .ad .ad-sheet .ad-source-pane,.ad .ad-sheet .ad-note-pane{position:static;height:100%;max-height:none;min-height:0;padding:16px;box-sizing:border-box;border-right:1px solid var(--ad-line);overflow:auto}
 .ad .ad-sheet .ad-split .ad-submit{margin:16px -20px 0;border:0;border-top:1px solid var(--ad-line);border-radius:0}
}
@media (max-width:600px){.ad .ad-sheet{width:100vw;height:100dvh;border-radius:0}.ad .ad-sheet-head{position:relative;padding:12px 64px 12px 16px}.ad .ad-sheet-close{position:absolute;top:10px;right:12px;width:44px;height:44px}.ad .ad-sheet-head .btn{min-height:36px;padding-inline:12px;font-size:13px;white-space:nowrap}.ad .ad-queue-row{grid-template-columns:minmax(0,1fr) auto}.ad .ad-queue .ad-file-mark{display:none}}
/* In the sheet the answers are one list, a row each, not a stack of cards: "Show in document" and the edit sit on one line under the answer. */
.ad .ad-sheet .ad-group ul{gap:0;background:#fff;border:1px solid var(--ad-line);border-radius:12px;overflow:hidden}
.ad .ad-sheet .ad-item{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;row-gap:6px;align-items:center;border:0;border-radius:0;padding:12px 14px}
.ad .ad-sheet .ad-item+.ad-item{border-top:1px solid #F0E8E2}
.ad .ad-sheet .ad-item>*{grid-column:1/-1}.ad .ad-sheet .ad-item>.ad-show{grid-column:1}.ad .ad-sheet .ad-item>.ad-edit{grid-column:2}.ad .ad-sheet .ad-item>.ad-edit[open]{grid-column:1/-1}
.ad .ad-sheet .ad-item .ad-edit summary{min-height:36px}
.ad .ad-sheet .ad-item.is-viewing{border:0;padding:12px 14px;background:#FBF1F4}.ad .ad-sheet .ad-item.is-viewing+.ad-item{border-top-color:#F0E8E2}
.ad .ad-sheet .ad-item.is-listing{border-color:transparent}
/* The downloads sit above the plan on the listing (plan-sheet downloadsFirst): a gap between them. */
.plan-take+.plan-simple{margin-top:16px}
/* "I need this" (Evan, 31 Oct): a gap reads as something to act on when it blocks you. */
.dt .dt-ess-hint{margin:-4px 0 12px;font-size:14px;line-height:1.45;color:var(--dt-muted)}.dt .dt-ess-hint b{color:var(--dt-ink);font-weight:600}
.dt .dt-link{border:0;background:none;padding:0;font:inherit;color:var(--dt-chrome);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.dt .dt-ess-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:8px}
.dt .dt-ess-request{min-height:40px;padding:8px 16px;font-size:14px}
.dt-signin{border:0;border-radius:22px;padding:24px;width:min(420px,calc(100vw - 32px));background:#FAF6F0;color:#36252A;box-shadow:0 14px 50px #30091640}
.dt-signin::backdrop{background:#3a1d27b3}
.dt-signin h2{font:400 26px/1.15 'Marcellus',Georgia,serif;margin:0 0 10px}
.dt-signin p{margin:0 0 10px;line-height:1.5;color:#5b474e}.dt-signin [data-signin-what]{color:#36252A;font-weight:600}.dt-signin [data-signin-what]:empty{display:none}
.dt-signin-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.dt-signin-actions .btn{min-height:46px}
/* Ask about this space (listing-assistant.mjs): docked as the page's third column on
   a wide screen, so the side space carries the conversation; a launcher anywhere narrower. */
.dt-assist{position:fixed;right:16px;bottom:max(16px,env(safe-area-inset-bottom));z-index:120;display:flex;flex-direction:column;align-items:flex-end;color:#36252A}
.dt-assist [hidden]{display:none!important}
.dt-assist-launch{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 20px;border:0;border-radius:999px;background:#300916;color:#FFF7F0;font:600 15px/1 var(--sans,Arial,sans-serif);box-shadow:0 10px 30px #30091640;cursor:pointer}
.dt-assist-dot{width:9px;height:9px;border-radius:50%;background:#E9B7A4;box-shadow:0 0 0 4px #e9b7a433}
.dt-assist-panel{display:none;flex-direction:column;width:min(400px,calc(100vw - 32px));height:min(640px,calc(100dvh - 32px));background:#FFFDF9;border:1px solid #E7DCD5;border-radius:20px;box-shadow:0 18px 60px #3009163a;overflow:hidden}
.dt-assist.is-open .dt-assist-panel{display:flex}.dt-assist.is-open .dt-assist-launch{display:none}
.dt-assist-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px 12px;border-bottom:1px solid #F0E8E2}
.dt-assist-head h2{font:400 22px/1.15 'Marcellus',Georgia,serif;margin:0;color:#36252A}
.dt-assist-head p{margin:4px 0 0;font-size:13px;color:#705A62}
.dt-assist-close{flex:none;width:40px;height:40px;border-radius:999px;border:1px solid #E7DCD5;background:#fff;font-size:20px;line-height:1;color:#36252A;cursor:pointer}
.dt-assist-log{flex:1;min-height:0;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:14px;overscroll-behavior:contain}
.dt-assist-intro p{margin:0 0 12px;font-size:15px;line-height:1.5;color:#5b474e}
.dt-assist-examples{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.dt-assist-examples button{min-height:40px;padding:8px 14px;border:1px solid #E7DCD5;border-radius:999px;background:#fff;color:#36252A;font:500 14px/1.3 var(--sans,Arial,sans-serif);text-align:left;cursor:pointer}
.dt-assist-examples button:hover,.dt-assist-source:hover{border-color:#300916}
.dt-assist-msg p{margin:0}
.dt-assist-msg.is-you{align-self:flex-end;max-width:85%;background:#300916;color:#FFF7F0;border-radius:16px 16px 4px 16px;padding:10px 14px;font-size:15px;line-height:1.45;overflow-wrap:anywhere}
/* The page's paragraph colour is a muted grey; on the dark bubble the visitor's own words are in its light ink. */
.dt-assist-panel .dt-assist-log .dt-assist-msg.is-you,.dt-assist-panel .dt-assist-log .dt-assist-msg.is-you :is(p,span,b,strong,em){color:#FFF7F0}
.dt-assist-msg.is-ai{display:flex;flex-direction:column;gap:10px}
.dt-assist-answer{font-size:15px;line-height:1.55;color:#36252A}.dt-assist-answer p+p,.dt-assist-answer p+ul,.dt-assist-answer ul+p{margin-top:8px}.dt-assist-answer ul{margin:0;padding-left:20px}
.dt-assist-sources{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.dt-assist-sources>span{font-size:12px;color:#705A62}
.dt-assist-source{min-height:30px;padding:4px 10px;border:1px solid #E7DCD5;border-radius:999px;background:#FCFAF7;color:#36252A;font:500 12px/1.2 var(--sans,Arial,sans-serif);cursor:pointer}
.dt-assist-needs{display:flex;flex-direction:column;gap:8px}
.dt-assist-needs-h{font-size:13px;font-weight:600;color:#8A3A2E}
.dt-assist-need{border:1px dashed #CDB9AE;border-radius:14px;padding:12px 14px;background:#fff;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.dt-assist-need b{font-size:15px}.dt-assist-need p{font-size:13px;line-height:1.45;color:#5b474e}
.dt-assist-need-btn{min-height:40px;padding:8px 16px;border-radius:999px;border:0;background:#300916;color:#FFF7F0;font:600 14px/1 var(--sans,Arial,sans-serif);cursor:pointer}
.dt-assist-need.is-sent{border-style:solid;background:#FCFAF7}.dt-assist-sent{font-size:13px;font-weight:600;color:#300916}
.dt-assist-typing{margin:0 18px 8px;font-size:13px;color:#705A62;display:flex;align-items:center;gap:8px}
.dt-assist-typing span{display:inline-flex;gap:3px}.dt-assist-typing i{width:6px;height:6px;border-radius:50%;background:#B98594;animation:dt-assist-bounce 1s infinite ease-in-out}.dt-assist-typing i:nth-child(2){animation-delay:.15s}.dt-assist-typing i:nth-child(3){animation-delay:.3s}
@keyframes dt-assist-bounce{0%,80%,100%{opacity:.35;transform:none}40%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.dt-assist-typing i{animation:none}}
.dt-assist-form{display:flex;gap:8px;align-items:flex-end;margin:0 14px;padding:8px 8px 8px 14px;border:1px solid #B98594;border-radius:16px;background:#fff}
/* One line round the box when it has the cursor: an outline outside its own border read as two boxes. */
.dt-assist-form:focus-within{border-color:#300916;box-shadow:0 0 0 1px #300916}
.dt-assist-form textarea:focus-visible{outline:0}
.dt-assist-form textarea{flex:1;min-width:0;border:0;outline:0;resize:none;background:transparent;font:16px/1.4 var(--sans,Arial,sans-serif);color:#36252A;padding:6px 0;max-height:120px}
.dt-assist-send{flex:none;width:40px;height:40px;border-radius:50%;border:0;background:#300916;color:#FFF7F0;font-size:18px;cursor:pointer}
.dt-assist-status{margin:8px 18px 0;font-size:13px;line-height:1.4;color:#8A3A2E}.dt-assist-status:empty{display:none}
.dt-assist-fine{margin:8px 18px 14px;font-size:11px;line-height:1.4;color:#8a777d}
@media (max-width:899px){.dt-assist{right:12px;bottom:calc(84px + env(safe-area-inset-bottom))}.dt-assist-panel{width:calc(100vw - 24px);height:calc(100dvh - 110px - env(safe-area-inset-bottom))}.dt-assist.is-open{top:var(--assist-top,0);left:0;right:0;bottom:auto;height:var(--assist-height,100dvh)}.dt-assist.is-open .dt-assist-panel{width:100%;height:100%;border:0;border-radius:0;padding-bottom:env(safe-area-inset-bottom)}}
/* On a phone the chat owns the screen. iOS floats its keyboard bar over the page, so the page is covered right down behind it;
   the suggestions run in one row, so none is cut off by the box; and the small print gives its room up while typing. */
@media (max-width:899px){
 .dt-assist.is-open::after{content:'';position:fixed;inset:0 0 -100vh;background:#FFFDF9;z-index:-1}
 .dt-assist-log{padding:12px 16px}
 .dt-assist-intro p{margin-bottom:10px;font-size:14px}
 .dt-assist-examples{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;margin-right:-16px;padding:0 16px 2px 0;scrollbar-width:none;scroll-snap-type:x proximity}
 .dt-assist-examples::-webkit-scrollbar{display:none}
 .dt-assist-examples button{flex:none;white-space:nowrap;scroll-snap-align:start}
 .dt-assist-form:focus-within~.dt-assist-fine{display:none}
 .dt-assist-form:focus-within~.dt-assist-status{margin-bottom:8px}
}
/* The launcher floats over the page's content on a phone: a smaller pill covers less of it. */
@media (max-width:700px){
 .dt-assist-launch{min-height:44px;padding:0 15px;gap:8px;font-size:14px}
 .dt .dt-ess-grid{grid-template-columns:minmax(0,1fr)}
 .dt .dt-ess-grid .dt-ess.is-missing{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:2px;align-items:center;padding:10px 14px}
 .dt .dt-ess-grid .dt-ess.is-missing>*{grid-column:1}
 .dt .dt-ess-grid .dt-ess.is-missing>:is(.dt-ess-request,.dt-ess-asked){grid-column:2;grid-row:1/span 3;margin:0;align-self:center}
 .dt .dt-ess-grid .dt-ess.is-missing b{font-size:14px;justify-self:start}
 .dt .dt-summary .btn,.dt .dt-request-bar .btn{min-height:46px;font-size:15px}
}
@media (min-width:1280px){
 .tenant-details.dt{grid-template-columns:272px minmax(0,1fr) minmax(320px,380px);max-width:1520px;gap:32px}
 /* Room for the site header above, which scrolls away: the composer is never below the fold. */
 .dt .dt-rail{max-height:calc(100dvh - 96px);overflow-y:auto;scrollbar-width:thin}
 .dt-assist{grid-column:3;grid-row:1/span 2;position:sticky;top:16px;right:auto;bottom:auto;z-index:auto;align-self:start;align-items:stretch;height:calc(100dvh - 96px);max-height:900px}
 .dt-assist-launch,.dt-assist-close{display:none}
 .dt-assist-panel{display:flex;width:auto;height:100%;box-shadow:none}
}
.ad .ad-ess-blocked,.ad-essentials small.ad-ess-blocked{color:#8A3A2E;font-weight:600}
.dt-assist-status.is-note{color:#705A62}
/* ---- One look across the agent's pages and the listing (Claude Design canvas "Inscena Enquiries
   inbox", 1 Nov 2026): warm ground, white cards with a hairline, Marcellus headings, the same
   three-number strip and the same tags for what a tenant sent. ---- */
:root{--ui-ground:#F6F1EE;--ui-card:#fff;--ui-line:#E7DCD5;--ui-soft:#F0E8E2;--ui-paper:#FCFAF7;--ui-ink:#36252A;--ui-strong:#2A1A1F;--ui-muted:#705A62;--ui-chrome:#300916;--ui-accent:#4F0E18;--ui-gap:#8A3A2E}
.ui-tag,.enq-tag{align-self:flex-start;display:inline-flex;align-items:center;font:600 12px/1.3 var(--sans,Arial,sans-serif);border-radius:999px;padding:3px 10px;white-space:nowrap}
.enq-tag.is-need,.ui-tag.is-need,.ui-tag.is-missing{color:#8A3A2E;background:#FBEAE6}
.enq-tag.is-ask,.ui-tag.is-ask{color:#5B3B8C;background:#EFE9F7}
.enq-tag.is-question{color:#5c3b00;background:#FFF4DC}
.enq-tag.is-message,.ui-tag.is-message{color:#1D4A7A;background:#E8F0F8}
.enq-tag.is-answered,.ui-tag.is-shared{color:#2F5D34;background:#EAF2EA}
.ui-glance,.enq-glance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ui-glance>*,.enq-glance>div{background:var(--ui-card);border:1px solid var(--ui-line);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--ui-muted);font-size:14px}
.ui-glance b,.enq-glance b{font:600 30px/1.1 var(--sans,Arial,sans-serif);color:var(--ui-strong)}.ui-glance b.is-accent,.enq-glance b.is-accent{color:var(--ui-accent)}
@media(max-width:700px){.ui-glance,.enq-glance{grid-template-columns:minmax(0,1fr)}}

.enq{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:20px;color:var(--ui-ink)}
.enq .enq-heading{margin:0}.enq .enq-heading h1{font:400 40px/1.1 'Marcellus',Georgia,serif;color:var(--ui-strong);margin:0 0 8px}.enq .enq-heading p{margin:0;color:var(--ui-muted);max-width:640px;line-height:1.5}
.enq-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px}
.enq-filters{display:flex;flex-wrap:wrap;gap:8px}
.enq-chip{min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--ui-line);background:#fff;color:var(--ui-ink);font:500 14px/1 var(--sans,Arial,sans-serif);cursor:pointer}
.enq-chip span{opacity:.7;margin-left:4px}.enq-chip.active{background:var(--ui-chrome);border-color:var(--ui-chrome);color:#FFF7F0;font-weight:600}
.enq-place{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ui-muted)}.enq-place select{min-height:44px;min-width:240px;border:1px solid #D9C7CB;border-radius:10px;background:#fff;color:var(--ui-chrome);padding:0 12px}
.enq-body{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}
.enq-groups{flex:999 1 520px;min-width:0;display:flex;flex-direction:column;gap:16px}
.enq-group{background:#fff;border:1px solid var(--ui-line);border-radius:20px;overflow:hidden}
.enq-group-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:16px 20px;border-bottom:1px solid var(--ui-soft);background:var(--ui-paper)}
.enq-group-head h2{margin:0;font:400 20px/1.2 'Marcellus',Georgia,serif;color:var(--ui-strong)}.enq-group-head span{font-size:13px;color:var(--ui-muted)}
.enq-group-head a,.enq-demand a{font-size:14px;font-weight:600;color:var(--ui-accent);min-height:44px;display:inline-flex;align-items:center}
.enq-demand{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:8px 20px;background:#FFF8F3;border-bottom:1px solid var(--ui-soft);font-size:14px}.enq-demand b{color:var(--ui-gap)}
.enq-list{list-style:none;margin:0;padding:0}.enq-list li+li{border-top:1px solid var(--ui-soft)}
.enq-row{width:100%;display:flex;gap:12px;align-items:center;justify-content:space-between;text-align:left;padding:14px 20px;border:0;background:#fff;color:inherit;min-height:64px;font:inherit;cursor:pointer}
.enq-row:hover{background:#FDF8F5}.enq-row.is-selected{background:#FBF3EF;box-shadow:inset 3px 0 0 var(--ui-accent)}
.enq-row:focus-visible{outline:2px solid var(--ui-chrome);outline-offset:-2px}
.enq-row-text{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.enq-row-text b{font-size:16px;color:var(--ui-strong)}
.enq-meta{font-size:13px;color:var(--ui-muted)}
.enq-status{flex:none;font-size:12px;font-weight:600;border-radius:999px;padding:4px 10px;color:#2F5D34;background:#EAF2EA}.enq-status.is-waiting{color:#FFF7F0;background:var(--ui-accent)}
.enq-detail{flex:1 1 360px;min-width:0;background:#fff;border:1px solid var(--ui-line);border-radius:20px;padding:22px;box-sizing:border-box;display:flex;flex-direction:column;gap:14px;position:sticky;top:16px}
.enq-detail h2{margin:0;font:400 26px/1.15 'Marcellus',Georgia,serif;color:var(--ui-strong)}
.enq-who{margin:0;font-size:14px;color:var(--ui-muted)}.enq-empty{margin:0;color:var(--ui-muted)}
.enq-detail blockquote{margin:0;padding:12px 14px;background:#F7F3EE;border-radius:12px;font-size:15px;line-height:1.5;white-space:pre-wrap}
.enq-fine{margin:0;font-size:12px;line-height:1.45;color:var(--ui-muted)}
.enq-form{display:flex;flex-direction:column;gap:12px;padding-top:12px;border-top:1px solid var(--ui-soft)}
.enq-form label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
.enq-form textarea,.enq-form input{border:1px solid #D9C7CB;border-radius:12px;padding:10px 12px;font:16px var(--sans,Arial,sans-serif);color:var(--ui-ink);font-weight:400}.enq-form input{min-height:44px;box-sizing:border-box}
.enq-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.enq .btn.enq-primary{min-height:44px;padding:0 20px;border-radius:999px;background:var(--ui-chrome);border-color:var(--ui-chrome);color:#FFF7F0;font-weight:600}
.enq .enq-actions .btn.ghost{min-height:44px;border-radius:999px}
.enq-contact{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:15px}.enq-contact a{font-weight:600;color:var(--ui-accent);min-height:44px;display:inline-flex;align-items:center}
.enq-status-pick{display:flex;gap:8px;align-items:center;font-size:14px}.enq-status-pick select{min-height:44px;border:1px solid #D9C7CB;border-radius:10px;background:#fff;color:var(--ui-chrome);padding:0 12px}
.enq-answer{background:var(--ui-paper);border:1px solid var(--ui-line);border-radius:12px;padding:12px 14px}.enq-answer span{font-size:12px;color:var(--ui-muted)}.enq-answer p{margin:4px 0 0;white-space:pre-wrap}
@media(max-width:900px){.enq-detail{position:static}}
/* The bell's panel in the inbox's look: cream, grouped, the same tags. */
.bell-panel{width:min(460px,calc(100vw - 24px));background:#FAF6F0;border-radius:20px;border:0;box-shadow:0 18px 50px rgba(20,4,9,.3);padding:0;max-height:min(80vh,720px);overflow:auto}
.bell-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding:18px 20px 10px}
.bell-head h2{font:400 24px/1.1 'Marcellus',Georgia,serif;color:var(--ui-strong)}
.bell-head a{font:600 13px/1 var(--sans,Arial,sans-serif);color:var(--ui-accent);min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}
.bell-head a[hidden]{display:none}
.bell-group{padding:0 12px 12px}
.bell-group h3{margin:4px 8px 6px;font:600 12px/1.3 var(--sans,Arial,sans-serif);letter-spacing:.1em;text-transform:uppercase;color:var(--ui-muted)}
.bell-group .bell-list{background:#fff;border:1px solid var(--ui-line);border-radius:16px;overflow:hidden}
.bell-group .bell-item+.bell-item{border-top:1px solid var(--ui-soft)}.bell-group .bell-item+.bell-item a{margin-top:0}
.bell-group .bell-item a{flex-direction:row;align-items:center;gap:12px;padding:12px 14px;border-radius:0;min-height:56px}
.bell-item-text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.bell-group .bell-item-lead{font:600 15px/1.3 var(--sans,Arial,sans-serif);color:var(--ui-strong)}
.bell-item.is-demand .bell-item-lead{color:var(--ui-gap);font-size:14px}.bell-item.is-demand a{background:#FFF8F3}
.bell-dot{flex:none;width:8px;height:8px;border-radius:999px;background:#C0392B}.bell-dot.is-seen{background:transparent}
.bell-file{flex:none;width:36px;height:36px;border-radius:10px;background:#F5DFE5;color:var(--ui-accent);font:600 11px/1 var(--sans,Arial,sans-serif);display:grid;place-items:center}
.bell-act{flex:none;font:600 13px/1 var(--sans,Arial,sans-serif);color:var(--ui-accent)}
.bell-group .bell-item .bell-new{display:none}
.bell-empty,.bell-foot{margin-left:20px;margin-right:20px}
/* Property details in the inbox's look: the three numbers, and tenants waiting as inbox rows. */
.ad .ad-glance{margin:2px 0 6px}
.ad .ad-glance a{color:var(--ui-muted)}.ad .ad-glance a:hover{border-color:#CDB9AE}
.ad .ad-section-head>a{font:600 14px/1 var(--sans,Arial,sans-serif);color:var(--ui-accent);min-height:44px;display:inline-flex;align-items:center}
.ad .ad-waiting .ad-asking li>span:first-child{gap:4px}
.ad .ad-waiting .ad-asking b{font-size:16px;color:var(--ui-strong)}
.ad .btn.ad-answer{min-height:44px;padding:0 18px;border-radius:999px;background:var(--ui-chrome);border-color:var(--ui-chrome);color:#FFF7F0;font-weight:600}
.ad .btn.ad-answer:hover{background:var(--ui-accent)}
.ad .ad-asking-actions .btn.ghost{min-height:44px;border-radius:999px}
/* The tenant's Details in the same look: "Not shared" is the pill the agent's pages use for a gap. */
.dt .dt-ess.is-missing>b,.dt .dt-ess-list .dt-ess.is-missing>b{align-self:flex-start;display:inline-flex;font:600 12px/1.3 var(--sans,Arial,sans-serif);color:#8A3A2E;background:#FBEAE6;border-radius:999px;padding:3px 10px;-webkit-line-clamp:unset}
.dt .dt-essentials,.dt .dt-topic,.dt .dt-missing{border-radius:20px}
.dt .dt-ess{border-radius:14px}
/* The conversation as someone to talk to, and a place to drop files (Evan, 31 Oct). Inscena AI's replies carry its
   monogram and name; the whole rail takes a dropped file, and says so the moment one is held over it. */
.ad .ad-turn.is-read{flex-direction:row;align-items:flex-start;gap:8px}
.ad .ad-avatar{flex:none;width:28px;height:28px;margin-top:19px;border-radius:50%;background:#4F0E18;display:grid;place-items:center}
.ad .ad-avatar svg{width:15px;height:15px;fill:#FFF7F0}
.ad .ad-read{display:flex;flex-direction:column;gap:3px;min-width:0}
.ad .ad-who{font-size:12px;font-weight:600;line-height:16px;color:#4F0E18}
.ad .ad-drop-hint{list-style:none;flex:1;display:flex;min-height:140px;margin:6px 0 0 36px}
.ad .ad-drop-hint label{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:20px;border:1.5px dashed #C9AFB7;border-radius:16px;text-align:center;color:#4F0E18;cursor:pointer;transition:background .15s,border-color .15s}
.ad .ad-drop-hint label:hover{background:#FBF3F5;border-color:#7B2843}
.ad .ad-drop-hint b{font-size:14px;font-weight:600}.ad .ad-drop-hint small{font-size:12px;color:var(--ad-muted)}
.ad .ad-drop-icon{width:40px;height:40px;border-radius:50%;background:#F5E5E9;color:#4F0E18;display:grid;place-items:center;font-size:20px;line-height:1}
.ad .ad-drop-cue{display:none;position:absolute;inset:0;z-index:6;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:2px dashed #7B2843;border-radius:inherit;background:rgba(251,243,245,.95);color:#4F0E18;text-align:center;pointer-events:none}
.ad .ad-drop-cue b{font-size:17px;font-weight:600}.ad .ad-drop-cue small{font-size:13px;color:var(--ad-muted)}
.ad .ad-drop-cue .ad-drop-icon{width:52px;height:52px;font-size:26px;background:#4F0E18;color:#FFF7F0}
.ad .ad-rail.is-dragging .ad-drop-cue{display:flex}
/* Sources (internal-details.mjs queueHTML, 31 Oct): each file's actions sit at the row's end; marking one out of date or
   deleting it is in a small menu, since it is rare and is asked about first. Out-of-date sources fold away below. */
.ad .ad-src-actions{display:flex;align-items:center;gap:6px}
.ad .ad-src-more{position:relative}
.ad .ad-src-more>summary{list-style:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:#4F0E18;font-size:20px;line-height:1}
.ad .ad-src-more>summary::-webkit-details-marker{display:none}
.ad .ad-src-more>summary:hover,.ad .ad-src-more[open]>summary{background:#F5E5E9}.ad .ad-src-more>summary:focus-visible{outline:2px solid #4F0E18;outline-offset:2px}
.ad .ad-src-menu{position:absolute;right:0;top:44px;z-index:8;min-width:260px;padding:6px;background:#fff;border:1px solid var(--ad-line);border-radius:12px;box-shadow:0 10px 30px rgba(48,9,22,.16);display:flex;flex-direction:column}
.ad .ad-src-menu button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border:0;border-radius:8px;background:none;text-align:left;font:600 14px/1.3 Archivo,sans-serif;color:#2A1A1F;cursor:pointer}
.ad .ad-src-menu button small{font-weight:400;font-size:12px;color:var(--ad-muted)}
.ad .ad-src-menu button:hover,.ad .ad-src-menu button:focus-visible{background:#F8F3EF;outline:0}
.ad .ad-src-menu button.is-danger{color:#8A1C1C}
.ad .ad-src-retired{margin-top:10px}
.ad .ad-src-retired>summary{cursor:pointer;min-height:40px;display:flex;align-items:center;font-size:14px;font-weight:600;color:var(--ad-muted)}
.ad .ad-queue-row.is-retired .ad-queue-text b{color:var(--ad-muted)}.ad .ad-queue-row.is-retired .ad-file-mark{background:#F0EBE7;color:var(--ad-muted)}
.ad .ad-retired-note{margin:0 0 12px;padding:12px 14px;border-radius:12px;background:#F4EFEA;font-size:14px;line-height:1.45}
/* On the listing: an answer from a document the agent has since marked out of date. */
.dt .dt-dated{margin:0 0 12px}
.enq-tag.is-comment{color:#8A3B12;background:#FBEDE3}
/* A comment on the plan (comment-pins.mjs): over the model, clear of its toolbar, its zoom buttons and the Feedback tab; along the bottom on a phone. */
.comment-slot{position:fixed;z-index:62;right:56px;bottom:164px;width:min(360px,calc(100vw - 32px));max-height:calc(100dvh - 180px);overflow-y:auto;font:400 14px/1.45 var(--sans,Arial,sans-serif);color:#2a1418}
.comment-card,.comment-hint,.comment-slot-agent{margin:0;padding:12px 14px;background:#fff;border:1px solid #D9CFC7;border-radius:10px;box-shadow:0 8px 24px rgba(48,9,22,.16)}
.comment-slot.is-left{right:auto;left:24px}
.comment-card{display:grid;gap:10px}
.comment-card label{display:grid;gap:4px;font-weight:600;font-size:13px}
.comment-card textarea,.comment-card input{width:100%;box-sizing:border-box;font:400 16px/1.35 var(--sans,Arial,sans-serif);padding:8px 10px;border:1px solid #C9BDB4;border-radius:8px;background:#fff;color:inherit}
.comment-as{font-weight:600;overflow-wrap:anywhere}
.comment-fine,.comment-status,.comment-note,.comment-changed,.comment-as{margin:0}
.comment-fine{font-size:12.5px;color:#5C4A4E}
.comment-status:empty{display:none}
.comment-changed{font-weight:600;color:#8A3A2E}
.comment-note{overflow-wrap:anywhere;white-space:pre-wrap}
.comment-actions{display:flex;justify-content:flex-end;gap:8px}
.comment-actions .btn{min-height:40px}
.comment-hint .text-button{min-height:32px}
.comment-slot-agent{left:16px;right:auto;top:156px;bottom:auto;display:grid;gap:4px;justify-items:start;max-height:calc(100dvh - 172px)}
.comment-slot-agent p{margin:0;overflow-wrap:anywhere}
.comment-slot-agent p:first-child{font-weight:600}
@media (max-width:640px){.comment-slot,.comment-slot.is-left{left:16px;right:16px;bottom:16px;width:auto;max-height:calc(100dvh - 32px)}.comment-slot-agent{bottom:auto}}
/* The Feedback box opens on the right too: the card makes way, and where there is no room for both it waits, draft kept, until the box closes. */
body:has(.tfb-panel:not([hidden])) .comment-slot{right:auto;left:24px}
@media (max-width:820px){body:has(.tfb-panel:not([hidden])) .comment-slot{display:none}}

/* ---- Tester feedback (tester-feedback-ui.mjs, 3 Nov) ----------------------
   A tab on the right edge, half way down, clear of the chat launchers in the
   bottom corner; it opens into a small box beside it. Only testers and staff. */
.tfb-tab{position:fixed;right:0;top:50%;z-index:60;transform:translateY(-50%);writing-mode:vertical-rl;rotate:180deg;padding:14px 9px;border:1px solid #4F0E18;border-right:0;border-radius:0 10px 10px 0;background:#300916;color:#F7EAE2;font:600 13px/1 var(--sans,system-ui);letter-spacing:.02em;cursor:pointer;box-shadow:0 6px 20px rgba(34,29,24,.18)}
.tfb-tab:hover{background:#4F0E18}.tfb-tab:focus-visible{outline:2px solid #C8A2AE;outline-offset:2px}
.tfb-tab[aria-expanded="true"]{background:#4F0E18}
.tfb-panel{position:fixed;right:52px;top:50%;z-index:61;transform:translateY(-50%);width:min(360px,calc(100vw - 72px));max-height:calc(100dvh - 32px);overflow:auto;padding:18px;border:1px solid #E2D6D0;border-radius:16px;background:#FFFCF8;color:#300916;box-shadow:0 18px 50px rgba(34,29,24,.22);font:400 14px/1.45 var(--sans,system-ui)}
.tfb-panel[hidden]{display:none}
.tfb-head{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;margin-bottom:12px}
.tfb-head h2{margin:0 0 4px;font:400 20px/1.2 Marcellus,var(--font-display,serif)}.tfb-head p{margin:0;color:#705A62;font-size:13px}
.tfb-close{flex:none;width:32px;height:32px;border:1px solid #E2D6D0;border-radius:9px;background:#fff;color:#300916;font-size:18px;line-height:1;cursor:pointer}
.tfb-panel textarea{width:100%;box-sizing:border-box;min-height:110px;padding:10px 12px;border:1px solid #D9C7CB;border-radius:10px;background:#fff;color:#300916;font:inherit;resize:vertical}
.tfb-pics{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 0;padding:0;list-style:none}.tfb-pics:empty{display:none}
.tfb-pics li{position:relative}.tfb-pics img{display:block;width:88px;height:64px;object-fit:cover;border:1px solid #E2D6D0;border-radius:8px}
.tfb-pics button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border:0;border-radius:50%;background:#300916;color:#fff;font-size:14px;line-height:22px;cursor:pointer}
.tfb-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}
.tfb-attach{display:inline-flex;align-items:center;min-height:40px;padding:0 12px;border:1px solid #D9C7CB;border-radius:10px;background:#fff;cursor:pointer;font-size:13px}
.tfb-attach:has(input:disabled){opacity:.5;cursor:default}
.tfb-send{min-height:40px;padding:0 18px}
.tfb-status{margin:8px 0 0;min-height:1.2em;font-size:13px;color:#4F0E18}.tfb-status:empty{display:none}
.tfb-fine{margin:8px 0 0;font-size:12px;color:#705A62}
.tfb-prompt{margin:0;color:#300916;font-size:14px}.tfb-signin{display:flex;align-items:center;justify-content:center;min-height:40px;text-decoration:none}
@media(max-width:700px){.tfb-tab{top:auto;bottom:96px;transform:none}.tfb-panel{right:8px;left:8px;top:auto;bottom:16px;transform:none;width:auto}}
@media print{.tfb{display:none}}
.tfi{max-width:900px}.tfi-testers{margin:0 0 28px;padding:18px;border:1px solid #E2D6D0;border-radius:14px;background:#FFFCF8}
.tfi-testers form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.tfi-testers textarea{flex:1 1 320px;min-height:72px;padding:10px;border:1px solid #D9C7CB;border-radius:10px;font:inherit}
.tfi-list{display:flex;flex-direction:column;gap:14px;margin:0;padding:0;list-style:none}
.tfi-item{padding:16px 18px;border:1px solid #E2D6D0;border-radius:14px;background:#fff}
.tfi-kind{display:block;margin:0 0 6px;font-size:12px;font-weight:600;color:#705A62}
.tfi-item header{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline}.tfi-item header span{color:#705A62;font-size:13px}.tfi-item time{margin-left:auto;color:#705A62;font-size:13px}
.tfi-staff{padding:1px 8px;border-radius:999px;background:#F3E6EA;color:#4F0E18!important}
.tfi-text{margin:8px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.tfi-pics{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.tfi-pics img{display:block;max-width:260px;max-height:180px;border:1px solid #E2D6D0;border-radius:8px}
.tfi-meta{margin:10px 0 0;font-size:13px;color:#705A62;overflow-wrap:anywhere}
.tfi-meta a{color:#4F0E18;text-decoration:underline}
/* Limitations found in the scan (internal-details.mjs limitsHTML): stated, not alarmed. */
.ad .ad-limits{background:#fff;border:1px solid var(--ad-line,#E7DCD5);border-radius:20px;padding:18px 22px}
.ad .ad-limits-list{margin:10px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:14px;line-height:1.5;color:#36252A}
.ad .ad-limits-sub{margin:14px 0 4px;font:600 13px/1.3 var(--sans,Arial,sans-serif);color:#2A1A1F}
.ad .ad-limits-tech{margin-top:14px;font-size:13px;color:#705A62}.ad .ad-limits-tech summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}
.ad .ad-limits-tech ul{margin:4px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:4px;line-height:1.45}
.team-rename{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;max-width:560px}
.team-rename label{flex:1 1 240px;margin:0}
/* Try furniture on a phone (Evan, 3 Nov): the layout's own buttons, Save layout and its menu, take a row under the title,
   which ran on underneath them; Share stays beside the title. */
@media (max-width:600px){
  .listing-workspace .listing-bar:has(.listing-studio-toolbar){flex-wrap:wrap;row-gap:8px}
  .listing-workspace .listing-bar:has(.listing-studio-toolbar) .top-actions{display:contents}
  .listing-workspace .listing-bar:has(.listing-studio-toolbar)>*,.listing-workspace .listing-bar:has(.listing-studio-toolbar) .top-actions>*{order:2}
  .listing-workspace .listing-bar:has(.listing-studio-toolbar) .topbar-tabs{order:1}
  .listing-workspace .listing-bar:has(.listing-studio-toolbar) .topbar-left{order:1;flex:1 1 0;min-width:0}
  .listing-workspace .listing-bar:has(.listing-studio-toolbar) .top-actions>div:has(.listing-studio-toolbar){order:3;flex:1 1 100%}
  .listing-workspace .listing-bar:has(.listing-studio-toolbar) .listing-studio-toolbar{justify-content:flex-start}
}

/* Details, 3 Nov 2026: an item's files and private comments, and a "?" on every figure. */
.ad .ad-glance-cell{position:relative;padding:0}
.ad .ad-glance-cell>a{display:flex;flex-direction:column;gap:4px;padding:16px 18px;text-decoration:none;color:inherit;height:100%;box-sizing:border-box;border-radius:inherit}
.ad .ad-glance-tip{position:absolute;top:12px;right:12px}
.ad .ad-entry-docs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.ad .ad-entry-docs li{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;min-height:36px;padding:4px 10px;border:1px solid var(--ad-line);border-radius:10px;font-size:14px}
.ad .ad-entry-docs a{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#4F0E18}
.ad .ad-entry .text-button{flex:none;min-height:28px;padding:0;border:0;background:none;font-size:13px;color:#4F0E18;text-decoration:underline;cursor:pointer}
.ad .ad-entry-comments{display:flex;flex-direction:column;gap:8px;font-size:14px}.ad .ad-entry-comments h4{margin:0;font:500 13px/1.3 Archivo,sans-serif;color:#36252A}
.ad .ad-entry-comments p{margin:0;padding:8px 10px;background:#FBF8F5;border-radius:10px;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.ad .ad-entry-comments small{display:block;margin-top:4px;font-size:12px;line-height:1.4;color:var(--ad-muted)}
.ad .ad-entry [data-entry-file]{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad .ad-answer{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.ad .ad-answer+.ad-answer{margin-top:12px;padding-top:12px;border-top:1px solid #F0E8E2}.ad .ad-answer p{margin:0}
.ad .ad-answer-head{font-size:13px;font-weight:600;color:var(--ad-muted)}
.ad .ad-answer-value{display:flex;align-items:center;gap:8px;font:600 17px/1.3 Archivo,sans-serif;color:#2A1A1F;overflow-wrap:anywhere}
.ad .ad-answer .text-button,.ad .ad-answer-missing{display:block;min-height:28px;padding:0;border:0;background:none;font-size:14px;color:#4F0E18;text-decoration:underline;cursor:pointer;text-align:left}
/* The two lists on Details, one row per item (Katie, 4 Nov): an item opens under its own row, and what has no answer reads lighter. */
.ad .ad-essentials{display:flex;flex-direction:column;gap:20px}
.ad .ad-ess-panel{background:#fff;border:1px solid var(--ad-line);border-radius:20px;padding:20px 22px 8px}
.ad .ad-ess-panel .ad-section-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 16px;margin:0 0 12px}
.ad .ad-ess-panel .ad-tally{margin:0;font-size:13px;color:var(--ad-muted)}.ad .ad-ess-panel .ad-tally b{font-size:13px;font-weight:500;color:#7A1B2E}
.ad .ad-ess{list-style:none;margin:0;padding:0}
.ad .ad-ess li{position:relative;display:flex;flex-direction:column;border-top:1px solid #F0E8E2}
.ad .ad-ess-item{display:grid;grid-template-columns:minmax(120px,210px) minmax(0,1fr) auto 14px;gap:12px;align-items:baseline;width:100%;min-height:48px;padding:13px 0;border:0;background:none;text-align:left;font:inherit;color:inherit}
.ad button.ad-ess-item{cursor:pointer}.ad button.ad-ess-item:hover b{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.ad button.ad-ess-item:focus-visible{outline:2px solid #4F0E18;outline-offset:2px;border-radius:6px}
.ad .ad-ess-name b{font-size:14px;line-height:1.5;font-weight:500;color:#2A1A1F}
.ad .ad-ess-text{display:flex;flex-direction:column;gap:4px;min-width:0}
.ad .ad-ess-value{font-size:14px;line-height:1.5;color:#2A1A1F;overflow-wrap:anywhere}
.ad .ad-ess-empty{font-size:14px;line-height:1.5;color:#A3949A}
.ad .ad-ess-end{display:inline-flex;align-self:center;align-items:center;gap:8px;justify-content:flex-end}
.ad .ad-ess-held,.ad .ad-ess-note{font-size:13px;line-height:1.4}
.ad .ad-ess-tipgap{width:22px}
.ad .ad-ess-tip{position:absolute;top:14px;right:26px}
.ad .ad-ess-chev{align-self:center;width:8px;height:8px;margin:-3px 0 0 2px;border-right:1.5px solid var(--ad-muted);border-bottom:1.5px solid var(--ad-muted);transform:rotate(45deg);transition:transform .15s}
.ad .is-open>.ad-ess-item .ad-ess-chev{margin-top:3px;transform:rotate(-135deg)}
.ad .ad-ess-flag{display:inline-flex;align-items:center;gap:6px;padding:2px 4px 2px 10px;border-radius:999px;background:#F6E7E5;color:#7A1B2E;font:500 12px/1.4 Archivo,sans-serif;white-space:nowrap}
.ad .ad-ess-flag i{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;box-sizing:border-box;border-radius:999px;background:#7A1B2E;color:#fff;font:600 11px/1 Archivo,sans-serif}
.ad .ad-ess-flag.is-answered{padding-right:10px;background:#EDE6E0;color:#36252A}
.ad .ad-ess-wait{margin:0 0 10px}
.ad .ad-entry{display:flex;flex-direction:column;gap:16px;padding:0 0 20px}.ad .ad-entry[hidden]{display:none}
.ad .ad-entry-ask{margin:-4px 0 0;font-size:14px;line-height:1.5;color:var(--ad-muted)}
@media (min-width:1200px){
 .internal-details.ad.has-rail{display:grid;grid-template-columns:minmax(0,1fr) clamp(340px,34%,420px);column-gap:28px;align-items:start}
 .internal-details-sections:has(.ad.has-rail){padding-top:24px;padding-bottom:16px}
 /* Where it rests is where it sticks, and it ends where the page does, so it never moves: above it the shell's 65px bar,
    its 32px gap and 24 here (121); below, 16 here and the shell's 32 (48). */
 .ad .ad-rail{position:sticky;top:121px;height:calc(100vh - 169px);display:flex;flex-direction:column;gap:10px;padding:16px;box-sizing:border-box;background:#fff;border:1px solid var(--ad-line);border-radius:20px}
 .ad .ad-rail>.ad-thread{flex:1;min-height:0;max-height:none;overflow:auto;margin:0 -16px;padding:12px 16px;background:#FBF8F5;border-block:1px solid #F0E8E2}
 /* Nothing said yet: the question and its samples, in the middle of the panel. */
 .ad .ad-rail:has(.ad-samples:not([hidden]))>.ad-thread{display:none}
 .ad .ad-rail:has(.ad-samples:not([hidden]))>.ad-rail-head{margin-top:auto;text-align:center}
 .ad .ad-rail-head h2{font:400 22px/1.2 'Marcellus',Georgia,serif}
 .ad .ad-samples{flex-direction:column;overflow:visible;margin-bottom:auto}
 .ad .ad-samples button{min-height:44px;padding:10px 14px;border-radius:12px;font-size:14px;line-height:1.4;text-align:left;white-space:normal}
 .ad .ad-rail .ad-chat-limits{margin:0;font-size:12px;line-height:1.4}
 .ad .ad-rail .ad-how{margin:0}
 .ad .ad-rail [data-document-status]:empty{display:none}
 /* The box's own line has to fit a 340px panel. */
 .ad .ad-rail .ad-attach{width:36px;height:36px;align-self:center}
 .ad .ad-rail .ad-send{padding-inline:12px;min-height:40px}
 .ad .ad-rail .ad-composer-row{gap:6px}
}
@media (max-width:600px){
 .ad .ad-ess-panel{padding:16px 16px 6px}
 .ad .ad-ess-item{grid-template-columns:minmax(0,1fr) auto 14px;gap:4px 10px}
 .ad .ad-ess-text{grid-column:1/-1;grid-row:2}
}

/* A newer build is live (new-version.mjs): one quiet pill, centred under the header and the view's top controls so it covers no tab or button, in either state; those controls sit lower once the header takes more rows. */
.new-version{position:fixed;top:128px;left:50%;transform:translateX(-50%);z-index:72;display:flex;align-items:center;gap:6px;max-width:calc(100vw - 32px);min-height:36px;padding:3px 4px 3px 14px;border:1px solid #D9C7CB;border-radius:999px;background:#FAF6F0;color:#300916;font:400 13px/1.3 var(--sans,inherit);box-shadow:0 4px 14px rgba(48,9,22,.12)}
.new-version button{appearance:none;min-height:28px;padding:0 12px;border:0;border-radius:999px;background:transparent;color:#300916;font:600 13px/1.3 var(--sans,inherit);white-space:nowrap;cursor:pointer}
.new-version button:hover{background:#F0E6E1}.new-version button:focus-visible{outline:2px solid #300916;outline-offset:1px}
.new-version .new-version-go{background:#300916;color:#FAF6F0}.new-version .new-version-go:hover{background:#4F0E18}
@media (max-width:1100px){.new-version{top:176px}}
@media (max-width:600px){.new-version{top:186px;flex-wrap:wrap;justify-content:center;width:max-content;padding:8px 10px;border-radius:18px;text-align:center}}
@media print{.new-version{display:none}}

/* A long message wraps: a pill's radius drew it as a circle with the words cut off (mobile check, 5 Nov). */
.toast{width:max-content;max-width:min(560px,calc(100vw - 32px));border-radius:16px;line-height:1.45}
.ws .toast{width:auto;max-width:min(420px,calc(100vw - 32px))}
.mod-grip{display:none}
/* ---- A phone, 5 Nov: the mobile check ----------------------------------------
   Controls 44px to a finger, the room stays in sight while its panel is used. */
@media(max-width:760px){
 .toast,.ws .toast{left:16px;right:16px;bottom:calc(76px + env(safe-area-inset-bottom));width:auto;max-width:none;transform:none}
 /* Tabs, the title and the "?"s reach a finger's size; the "?" keeps its look. */
 .workspace-layout .topbar .tab-lenses button{min-height:44px}
 .info-tip-btn::before,.figure-tip .info-tip-btn::before{inset:-14px}
 .crumb-project>button{position:relative}.crumb-project>button::after{content:"";position:absolute;inset:-8px 0}
 .demo-banner a,.demo-banner button{display:inline-block;padding:10px 4px;margin:-10px 0}
 /* Modify: a sheet under the model, lowered with its grip. */
 .mod-drawer{height:42dvh;padding:0 14px 24px;transition:height .2s ease}
 .mod-drawer.is-lowered{height:124px;overflow:hidden}
 .mod-grip{display:block;position:sticky;top:0;z-index:3;width:calc(100% + 28px);height:30px;margin:0 -14px;padding:0;border:0;background:var(--surface);cursor:pointer;touch-action:none}
 .mod-grip::before{content:"";display:block;width:44px;height:4px;margin:0 auto;border-radius:2px;background:#C9BBB6}
 .mod-grip:focus-visible{outline:2px solid #300916;outline-offset:-4px}
 .mod-panel .btn{min-height:44px}
 body:has(.mod-drawer) .lay.lay.lay.lay{grid-template-rows:minmax(240px,calc(58dvh - 150px)) auto auto auto}
 body:has(.mod-drawer.is-lowered) .lay.lay.lay.lay{grid-template-rows:minmax(240px,calc(100dvh - 124px - 150px)) auto auto auto}
 body:has(.mod-drawer) .property-chat{display:none}
 /* The chat button steps aside on the way down; the page's foot leaves it room. */
 .property-chat .chat-launcher{transition:transform .2s ease,opacity .2s ease}
 .chat-tuck .property-chat .chat-launcher{transform:translateY(90px);opacity:0;pointer-events:none}
 .ad .ad-rail:not(.is-open){transition:transform .2s ease,opacity .2s ease}
 .chat-tuck .ad .ad-rail:not(.is-open){transform:translateY(calc(100% + 24px));opacity:0;pointer-events:none}
 .workspace-layout .main-area{padding-bottom:72px}
 /* Categories say their names. */
 .lay .lay-category-tabs #layChips button[data-category]{width:auto!important;min-width:64px;height:auto!important;min-height:60px;padding:8px 8px 6px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;flex:none}
 .lay-chip-name{display:block;font-size:11.5px;line-height:1.2;white-space:nowrap}
 /* How to move: one quiet line. */
 .lay .lay-hint{flex-wrap:nowrap;white-space:nowrap;gap:10px;padding:6px 10px;font-size:11px;max-width:calc(100% - 16px)}
 .lay .lay-hint svg{width:12px;height:12px}
 .lay .lay-hint span{gap:4px}
 .ws-windows label{grid-template-columns:60px minmax(0,1fr)}
}
.lay-chip-name{display:none}
@media(max-width:760px){.lay-chip-name{display:block}}
@media(max-width:350px){.lay .lay-hint svg{display:none}}
@media(max-width:1000px){
 /* The panels under the room: one named button, nothing lone or empty. */
 .workspace-layout:not(.listing-workspace) .lay-rail-left{width:100%;padding:8px 12px;align-items:center}
 .workspace-layout:not(.listing-workspace) .lay .lay-rail-left>#layRailChips{display:none}
 .workspace-layout:not(.listing-workspace) .lay .lay-rail-left>.furnish-ai-entry{display:none}
 .workspace-layout:not(.listing-workspace) .lay-rail-left .lay-fold{width:auto;padding:0 14px;gap:6px}
 .workspace-layout:not(.listing-workspace) .lay-rail-left .lay-fold .lay-rail-label{display:inline;font-size:14px}
 .workspace-layout:not(.listing-workspace) .lay-rail-left .lay-fold>[aria-hidden]{display:none}
 .workspace-layout:not(.listing-workspace) .lay-rail-right:has(#layRailChip:empty){display:none}
 .workspace-layout:not(.listing-workspace) .lay-rail-right .lay-fold>[aria-hidden]{display:none}
 .workspace-layout:not(.listing-workspace) .lay-catalogue .lay-head>.lay-fold,
 .workspace-layout:not(.listing-workspace) .lay-inspect-head>.lay-fold{display:none}
 .workspace-layout:not(.listing-workspace) .lay:not([data-lens="space"]) .lay-inspect-head{display:none}
 /* Measure's panel is the page under the model: nothing to fold. */
 .workspace-layout:not(.listing-workspace) .lay[data-lens="space"] .lay-rail-right{display:none}
 .workspace-layout:not(.listing-workspace) .lay[data-lens="space"][data-inspect="shut"] .lay-inspect{display:flex}
 .workspace-layout:not(.listing-workspace) .lay[data-lens="space"] .lay-inspect-head{display:none}
 /* A listing's stacked Library button: the word, not a lone "›" in a 60px strip. */
 .listing-workspace .lay>.lay-rail-left{width:100%;padding:8px 12px;align-items:center}
 .listing-workspace .lay>.lay-rail-left>#layRailChips{display:none}
 .listing-workspace .lay>.lay-rail-left>.lay-fold{width:auto;padding:0 14px;gap:6px}
 .listing-workspace .lay>.lay-rail-left>.lay-fold .lay-rail-label{display:inline;font-size:14px}
 .listing-workspace .lay>.lay-rail-left>.lay-fold>[aria-hidden]{display:none}
}
/* A finger on any size of screen. */
@media(pointer:coarse){
 .workspace-layout .topbar .tab-lenses button{min-height:44px}
 .info-tip-btn::before,.figure-tip .info-tip-btn::before{inset:-14px}
}
/* Furnish on a phone in portrait: the room stays in sight above the library and the finishes. */
@media(max-width:760px) and (min-height:600px){
 .workspace-layout:not(.listing-workspace) .lay:not([data-lens="space"]).lay.lay.lay{grid-template-rows:minmax(280px,46dvh) auto auto auto}
 .workspace-layout:not(.listing-workspace) .lay:not([data-lens="space"]) .lay-stage{position:sticky;top:0;z-index:6;height:46dvh;min-height:280px;align-self:start}
}

/* A phone listing: the model first, then its address and Share straight under the tool bar, then its figures. */
@media(max-width:700px){
 .listing-workspace.has-site-header.is-phone-stack:not([data-mode=furnish]){display:flex;flex-direction:column}
 .listing-workspace.has-site-header.is-phone-stack:not([data-mode=furnish])>.site-header{order:-2}
 .listing-workspace.has-site-header.is-phone-stack:not([data-mode=furnish])>*{order:1}
 .listing-workspace.has-site-header.is-phone-stack:not([data-mode=furnish])>.listing-view{order:-1;flex:none}
 .listing-workspace.has-site-header.is-phone-stack:not([data-mode=furnish])>.listing-bar{order:0;border-bottom:0}
 .is-phone-stack:not([data-mode=furnish]) .listing-phone-summary{padding-top:4px}
 .is-phone-stack:not([data-mode=furnish]) .listing-pills{margin-top:8px}
 .is-phone-stack:not([data-mode=furnish]) .listing-title{display:block;-webkit-line-clamp:unset;overflow:visible}
}
/* A phone's tool bar: no camera (the phone has its own), and every tool fits at 320 with its 44 px target. Only a
   signed-in bar with more tools than fit still scrolls. */
@media(max-width:600px){
 .lay .lay-bar #layCamera{display:none}
 .lay .lay-bar,.lay .lay-bar:not([data-scrolls]){left:0;right:0;margin-inline:auto;width:max-content;max-width:calc(100% - 8px);padding:2px;gap:0}
 .lay .lay-bar .lay-sep{display:none}
 .lay .lay-bar .lay-icon{min-width:44px;width:44px;padding:0}
 .lay .lay-bar .lay-ceiling-control{font-size:0}
 .lay .lay-bar .lay-ceiling-control svg{width:18px;height:18px}
}
/* A sent document's row: long names stay on one line, and it renames under itself. */
.ad-ess-name b[title],.ad-ess-text .ad-ess-value[title]{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad-doc-entry{padding:8px 12px 14px}.ad-doc-name{display:flex;gap:8px;align-items:flex-end;margin-top:8px}.ad-doc-name label{flex:1;min-width:0;font-size:13px;color:#705A62}.ad-doc-name input{display:block;width:100%;min-height:40px;margin-top:4px;padding:0 10px;border:1px solid #E7DCD5;border-radius:10px;font:inherit;color:#36252A}.ad-doc-name .btn{min-height:40px}
.ad-doc-entry .ad-entry-docs{border:0;padding:0;margin:0}.ad-doc-entry .ad-entry-docs li{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left}.ad-doc-entry .ad-entry-docs a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ad-doc-entry .text-button{min-height:44px;flex:none}

/* The tenant's glance (listing-details.mjs essentialsSummary): shared facts, then one quiet ask. No counts of what is missing. */
.dt .dt-summary-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px 16px;margin:0;width:100%}
.dt .dt-summary-facts div{display:flex;flex-direction:column;gap:2px;min-width:0}
.dt .dt-summary-facts dt{font-size:12px;color:var(--dt-muted)}
.dt .dt-summary-facts dd{margin:0;font-size:16px;font-weight:600;color:#300916;overflow-wrap:anywhere}
.dt .dt-summary .dt-summary-request{color:#300916;background:#fff;border:1px solid #300916}
.dt .dt-summary .dt-summary-request.is-chosen{color:#fff}
.dt .dt-summary-chat{font-size:14px;color:#300916;text-decoration:underline;text-underline-offset:3px}
@media(min-width:1280px){.dt .dt-summary-chat{display:none}}
@media(max-width:700px){
 .is-phone-stack .dt .dt-summary.is-ask-only{background:none;border:0;padding:0}
 /* One area on a phone: when the glance carries it (the agent's figure, or the scan's), the pill above steps aside. */
 .is-phone-stack:has(.dt-summary-facts [data-ess=area]) .listing-pills [data-measured]{display:none}
 .is-phone-stack:has(.dt-summary-facts [data-ess=area]) .listing-pills:not(:has(li:not([data-measured]))){display:none}
 .is-phone-stack .dt .dt-summary .dt-summary-request{width:100%;justify-content:center}
 /* The floating launcher hid what it sat over: on a phone the glance's "Ask about this space" opens the chat instead. */
 .is-phone-stack .dt-assist:not(.is-open){display:none}
 .is-phone-stack .dt .dt-summary .dt-summary-chat{align-self:center;min-height:44px}
 /* Both actions fit at 320 without clipping. */
 .listing-phone-bar .btn{font-size:clamp(13px,4.1vw,15px);letter-spacing:-.01em}
}

/* Phone listing, option A (Katie, 6 Nov): name and level, a round Share, three tiles, three rows, then the details on demand. */
.dt-phone{display:none}
@media(max-width:700px){
 .is-phone-stack:not([data-mode=furnish]) .listing-phone-summary{display:none}
 .listing-workspace.is-phone-stack .listing-bar .listing-title{font-size:clamp(19px,5.6vw,23px);line-height:1.2}
 .listing-workspace.is-phone-stack:not([data-mode=furnish]) .listing-bar .listing-address{display:block;margin:2px 0 0;font-size:14px;color:#7a6a6f;white-space:normal}
 .is-phone-stack .listing-bar .listing-share{position:relative;width:26px;height:26px;min-height:0;padding:0;border-radius:50%;justify-content:center;font-size:0;gap:0;flex:none;align-self:flex-start;margin-top:4px}
 .is-phone-stack .listing-bar .listing-share svg{width:14px;height:14px;margin:0}
 .is-phone-stack .listing-bar .listing-share::before{content:'';position:absolute;inset:-9px}
 .is-phone-stack .dt-phone{display:block;margin:4px 0 8px}
 .is-phone-stack .dt:not(.is-more)>.dt-rail,.is-phone-stack .dt:not(.is-more)>.dt-main{display:none}
 .is-phone-stack .dt .dt-summary{display:none}
 .dt-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .dt-tile{display:flex;flex-direction:column;gap:2px;min-width:0;padding:10px 12px;background:#fff;border:1px solid #E8DDD8;border-radius:12px}
 .dt-tile>span{font-size:12px;color:#7a6a6f}
 .dt-tile b{font-size:16px;font-weight:600;color:#300916;overflow-wrap:anywhere}
 .dt-tile small{font-size:11px;color:#7a6a6f}
 .dt-tile-ask{align-self:flex-start;padding:2px 0;min-height:32px;border:0;background:none;color:#300916;font:600 15px/1 var(--sans,Arial,sans-serif);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
 .dt-tile-asked{font-size:14px;color:#7a6a6f;min-height:32px;display:flex;align-items:center}
 .dt-phone-status{margin:6px 0 0;font-size:13px;color:#5b474e}.dt-phone-status:empty{display:none}
 .dt-rows{list-style:none;margin:12px 0 0;padding:0;border-top:1px solid #E8DDD8}
 .dt-row{display:grid;grid-template-columns:88px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:52px;padding:10px 0;border:0;border-bottom:1px solid #E8DDD8;background:none;text-align:left;cursor:pointer;color:#300916;font:inherit}
 .dt-row-k{font-size:14px;font-weight:600}
 .dt-row-v{font-size:14px;color:#5b474e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .dt-row .dt-chevron{font-size:20px;color:#9a8a8f}
 .dt-phone-chat{display:block;margin:14px auto 0;min-height:44px;font-size:14px;color:#300916;text-decoration:underline;text-underline-offset:3px}
}

/* Public listing on small screens (6 Nov mobile pass). One shared root for /view and the embed.
   Where the page's own heading is out of sight (a phone on its side, the embed's narrow bar), a small pill
   over the model names the place; it never takes a tap. */
.listing-place-pill{display:none}
@media (max-height:500px) and (min-width:701px){
 .listing-workspace .listing-place-pill{display:block;top:70px}
 /* On its side the model gets the height: "How to move" stays, the gesture line over the model goes. */
 .listing-workspace .lay-stage>.lay-hint{display:none}
}
@media (max-width:900px),(max-height:500px){
 .listing-workspace.is-embed-listing .listing-place-pill{display:block}
}
.listing-workspace .listing-place-pill{position:fixed;left:50%;transform:translateX(-50%);z-index:6;max-width:min(42vw,360px);margin:0;padding:5px 12px;border-radius:999px;background:#FAF6F0EB;color:#300916;font:600 12px/1.25 var(--font-body,Arial,sans-serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;box-shadow:0 2px 10px #30091622}
/* In the embed the figures chip holds the top right: the pill sits under the 2D/3D switch, out of its way. */
.listing-workspace.is-embed-listing .listing-place-pill{top:116px;left:10px;transform:none;max-width:min(60vw,360px)}
.listing-workspace[data-mode=details] .listing-place-pill,.listing-workspace.is-phone-stack .listing-place-pill{display:none}
/* Touch targets reach 44 px; what is drawn can stay small. */
@media (pointer:coarse),(max-width:900px){
 .listing-workspace .info-tip-btn,.listing-workspace .site-brand,.listing-workspace .listing-share,.listing-workspace .listing-open-full,.listing-workspace .view-tabs [role=tab],.listing-workspace .listing-brand{position:relative}
 .listing-workspace .info-tip-btn::before{content:'';position:absolute;inset:auto;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}
 .listing-workspace :is(.site-brand,.listing-share,.listing-open-full,.listing-brand,.view-tabs [role=tab])::after{content:'';position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}
}
/* 320 wide: the gesture line sizes to its words, never the full width. */
@media (max-width:360px){
 .listing-workspace .lay-stage>.lay-hint{width:max-content;max-width:calc(100% - 24px);font-size:10.5px;gap:8px;padding:4px 10px}
 .listing-phone-bar .btn{padding-left:10px;padding-right:10px;font-size:14px}
}

/* ---- Phone listing, full bleed (Katie, 6 Nov evening) ------------------------------------------------
   "Get rid of the dark red nav bar ... make the window as large as you can to see the dollhouse." The first
   screen is an ivory strip with the mark and the menu, the model as tall as the phone allows, the name with
   Share, and one cue down to the rent and details. The model's height is the screen less what is drawn around it
   (listing-experience.mjs measures --phone-chrome), on the small viewport, so Safari's bars never crop it.
   The same stage serves /view and the embed: the 3D tools are quieter for both; desktop is untouched. */
.listing-more-cue{display:none}
@media(max-width:700px){
 /* The header: no band, the mark and the menu in burgundy. */
 .listing-workspace.has-site-header>.site-header{min-height:48px;padding:0 4px 0 16px;gap:8px;background:#FAF6F0;color:#300916}
 .listing-workspace.has-site-header .site-brand{position:relative;width:92px;height:26px}
 .listing-workspace.has-site-header .site-brand img{width:100%;height:100%;opacity:0}
 .listing-workspace.has-site-header .site-brand::before{content:'';position:absolute;inset:0;background:#300916;-webkit-mask:url(/portal/inscena-wordmark.svg) left center/contain no-repeat;mask:url(/portal/inscena-wordmark.svg) left center/contain no-repeat}
 .listing-workspace.has-site-header .site-menu-toggle{color:#300916}
 .listing-workspace.has-site-header .site-menu-toggle:focus-visible{outline:2px solid #300916;outline-offset:-4px}
 /* The menu drops over the model rather than pushing it down: three links, then Sign in or the account. */
 .listing-workspace.has-site-header .site-header:has(.is-open){flex-wrap:nowrap}
 .listing-workspace.has-site-header .listing-site-nav.is-open{position:absolute;top:100%;left:0;right:0;z-index:80;display:flex;flex-direction:column;height:152px;box-sizing:border-box;margin:0;padding:4px 20px;background:#FAF6F0;border-top:1px solid #EDE3DE}
 .listing-workspace.has-site-header .listing-site-nav.is-open a{color:#300916;line-height:48px;border-top:1px solid #EDE3DE}
 .listing-workspace.has-site-header .listing-site-nav.is-open a:first-child{border-top:0}
 .listing-workspace.has-site-header .site-account.is-open{position:absolute;top:calc(100% + 152px);left:0;right:0;z-index:80;display:flex;padding:8px 20px 20px;background:#FAF6F0;border-top:1px solid #EDE3DE;box-shadow:0 18px 28px rgba(48,9,22,.14)}
 .listing-workspace.has-site-header .site-account.is-open .site-signin{color:#300916;border-color:#300916}
 .listing-workspace.has-site-header .site-account.is-open .site-account-button{color:#300916}
 .listing-workspace.has-site-header .site-account.is-open .site-account-role{color:#7a6a6f}

 /* The model takes what is left of the screen. */
 .is-phone-stack[data-mode=space] .listing-view .lay-stage{height:calc(100vh - var(--phone-chrome,236px));height:calc(100svh - var(--phone-chrome,236px));min-height:280px}

 /* The name and its level, Share level with them. */
 .listing-workspace.has-site-header.is-phone-stack:not([data-mode=furnish])>.listing-bar{align-items:center;gap:12px;padding:12px 16px 0;background:#FAF6F0;border:0}
 .listing-workspace.is-phone-stack:not([data-mode=furnish]) .listing-bar .listing-title{font:400 clamp(20px,5.4vw,23px)/1.18 Marcellus,var(--font-display,serif);letter-spacing:0;color:#300916}
 .listing-workspace.is-phone-stack:not([data-mode=furnish]) .listing-bar .listing-address{margin:3px 0 0;font-size:14px;line-height:1.3;color:#7a6a6f}
 .listing-workspace.is-phone-stack:not([data-mode=furnish]) .listing-bar .top-actions{flex:none;gap:0;align-self:center}
 .listing-workspace.has-site-header.is-phone-stack:not([data-mode=furnish]){background:#FAF6F0}
 .is-phone-stack:not([data-mode=furnish]) .listing-bar .listing-share{position:relative;display:inline-grid;place-items:center;width:40px;height:40px;min-height:0;margin:0;padding:0;border:1px solid #E4D8D3;border-radius:50%;background:#fff;color:#300916;font-size:0;gap:0;box-shadow:none;align-self:center}
 .is-phone-stack:not([data-mode=furnish]) .listing-bar .listing-share svg{width:19px;height:19px;margin:0 0 1px}
 .is-phone-stack:not([data-mode=furnish]) .listing-bar .listing-share::before{content:none}
 .is-phone-stack:not([data-mode=furnish]) .listing-bar .listing-share::after{content:'';position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%)}
 .is-phone-stack:not([data-mode=furnish]) .listing-bar .listing-share:active{background:#F3ECE7}
 /* In Try furniture the bar is fuller (layout, undo, redo): the same drawn button, a size down, its target still 44. */
 .is-phone-stack[data-mode=furnish] .listing-bar .listing-share{position:relative;display:inline-grid;place-items:center;width:34px;height:34px;min-height:0;margin:0 0 0 2px;padding:0;border:1px solid rgba(48,9,22,.16);border-radius:50%;background:#fff;color:#300916;font-size:0;gap:0;align-self:center;flex:none}
 .is-phone-stack[data-mode=furnish] .listing-bar .listing-share svg{width:17px;height:17px;margin:0 0 1px}
 .is-phone-stack[data-mode=furnish] .listing-bar .listing-share::before{content:none}
 /* Copied, where the phone has no share sheet: a small note over the button, as its own words are hidden. */
 .is-phone-stack:not([data-mode=furnish]) .listing-bar .listing-share[data-copied]::before{content:'Link copied';position:absolute;inset:auto;right:calc(100% + 8px);top:50%;transform:translateY(-50%);z-index:2;padding:6px 10px;border-radius:999px;background:#300916;color:#FAF6F0;font:500 12px/1 var(--font-body,Arial,sans-serif);white-space:nowrap;pointer-events:none}
 .is-phone-stack:not([data-mode=furnish]) .listing-bar .listing-share:focus-visible{outline:2px solid #300916;outline-offset:2px}

 /* One cue down to the rent and details. */
 .listing-workspace.is-phone-stack[data-mode=space] .listing-more-cue{order:0;display:flex;align-items:center;justify-content:center;gap:4px;align-self:center;height:44px;margin:0 auto;padding:0 14px;border:0;background:none;color:#6B4F58;font:500 13px/1 var(--font-body,Arial,sans-serif);letter-spacing:.01em;cursor:pointer}
 .listing-more-cue svg{width:16px;height:16px;color:#300916}
 .listing-more-cue:focus-visible{outline:2px solid #300916;outline-offset:-2px;border-radius:10px}
 .is-phone-stack .listing-details-host .tenant-details{padding-top:16px;scroll-margin-top:0}
 .is-phone-stack .dt-phone{scroll-margin-top:12px}

 /* Try furniture and Request documents: slimmer, on ivory, never over the name or the cue. */
 .is-phone-stack:not([data-mode=furnish]) .listing-phone-bar{gap:8px;padding:8px 16px calc(8px + env(safe-area-inset-bottom));background:#FAF6F0;border-top:1px solid #EDE3DE}
 .listing-phone-bar .btn{min-height:44px;height:44px;padding:0 10px;border-radius:12px;font-weight:600;font-size:clamp(13px,3.9vw,15px);white-space:nowrap}
 .listing-phone-bar .btn.ghost{background:#FAF6F0}

 /* The 3D tools: every one stays, smaller and quieter, inside the model's edges. */
 .listing-workspace .lay-stage .lay-viewmain{top:8px;left:8px;padding:2px;gap:0;border-radius:11px;border-color:#E4D8D3;background:rgba(255,255,255,.92);box-shadow:0 2px 10px rgba(48,9,22,.08)}
 .listing-workspace .lay-stage .lay-view-switch button{position:relative;width:auto;min-width:36px;height:32px;min-height:0;padding:0 10px;border-radius:9px;font-size:12.5px}
 .listing-workspace .lay-stage .lay-view-switch button::after{content:'';position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%)}
 .listing-workspace .lay-stage .lay-viewbar{top:8px;right:8px;padding:2px;gap:0;border-radius:11px;border-color:#E4D8D3;background:rgba(255,255,255,.92);box-shadow:0 2px 10px rgba(48,9,22,.08)}
 .listing-workspace .lay-stage .lay-viewbar-btn:not([hidden]){position:relative;min-width:32px;width:auto;height:32px;min-height:0;border-radius:9px;box-shadow:none}
 .listing-workspace .lay-stage .lay-viewbar-btn::after{content:'';position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%)}
 .listing-workspace .lay-stage .lay-full-btn svg{width:16px;height:16px}
 .listing-workspace .lay .lay-bar,.listing-workspace .lay .lay-bar:not([data-scrolls]){padding:0 2px;border-radius:14px;border-color:#E4D8D3;background:rgba(255,255,255,.92);box-shadow:0 2px 10px rgba(48,9,22,.08)}
 .listing-workspace .lay .lay-bar .lay-icon{position:relative;height:40px;min-height:0}
 .listing-workspace .lay .lay-bar .lay-icon::after{content:'';position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%)}
 .listing-workspace .lay .lay-bar .lay-icon svg{width:17px;height:17px}
 .listing-workspace .lay-stage>.lay-hint{bottom:60px}
 /* Walk keeps its own bar (workspace-ui.css .lay-touch-walk): the quieter sizes are for looking at the model. */
 .listing-workspace .lay-touch-walk .lay-bar.lay-bar.lay-bar{padding:4px}
 .listing-workspace .lay-touch-walk .lay-bar .lay-icon.lay-icon{height:44px}
}
/* 320 px: seven 44 px tools fit edge to edge once the bar's 2 px side padding goes (Katie 7 Nov: no scrolling bar). */
@media(max-width:340px){.listing-workspace .lay .lay-bar,.listing-workspace .lay .lay-bar:not([data-scrolls]){padding:0}}
@media(max-width:700px) and (prefers-reduced-motion:no-preference){
 /* The cue moves once, gently, then stays still. */
 .listing-workspace.is-phone-stack[data-mode=space] .listing-more-cue svg{animation:listing-cue 1.6s ease-in-out .8s 2}
}
@keyframes listing-cue{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}
/* 320 in Try furniture: the bar is ~57px short, and overflow hid "Layout" behind the title (6 Nov). Every part gives
   a little, nothing goes: a narrower back arrow, a 15px title, tighter gaps, 30px undo and redo, a 28px Share. */
@media(max-width:359px){
 .is-phone-stack[data-mode=furnish] .listing-bar{padding-right:8px;gap:6px}
 .is-phone-stack[data-mode=furnish] .listing-bar .topbar-left{gap:0}
 .is-phone-stack[data-mode=furnish] .listing-back{width:28px;min-width:28px;padding:0}
 .is-phone-stack[data-mode=furnish] .listing-heading::before{font-size:15px}
 .listing-workspace.is-phone-stack[data-mode=furnish] .top-actions{gap:2px}
 .listing-workspace.is-phone-stack[data-mode=furnish] .top-actions button.private-label:not(:disabled):not([hidden]){gap:3px;padding:4px 0}
 .listing-workspace.is-phone-stack[data-mode=furnish] .top-actions button.private-label:not(:disabled):not([hidden])::before{font-size:13px}
 .is-phone-stack[data-mode=furnish] .listing-history .lay-top-btn{width:30px;min-width:30px;padding:0}
 .is-phone-stack[data-mode=furnish] .listing-bar .listing-share{width:28px;height:28px}
 .is-phone-stack[data-mode=furnish] .listing-bar .listing-share svg{width:15px;height:15px}
}

/* Request details: a bottom sheet over the view, one question at a time. */
.dt-choose{position:fixed;inset:auto 0 0 0;width:100%;max-width:520px;max-height:82dvh;margin:auto auto 0;padding:18px 16px calc(16px + env(safe-area-inset-bottom));border:0;border-radius:16px 16px 0 0;background:#FAF6F0;color:#300916;overflow:auto;overscroll-behavior:contain}
.dt-choose::backdrop{background:rgba(48,9,22,.35)}
.dt-choose h2{margin:0 36px 14px 0;font-size:20px;line-height:1.25}
.dt-choose-x{position:absolute;right:8px;top:8px;width:44px;height:44px;border:0;background:none;font-size:24px;color:#300916}
.dt-choose-step[hidden]{display:none}
.dt-choose-pick{display:grid;grid-template-columns:1fr auto;gap:2px 10px;width:100%;min-height:60px;padding:12px 14px;margin-bottom:10px;text-align:left;border:1px solid #EDE3DE;border-radius:12px;background:#fff;color:#300916;font:inherit}
.dt-choose-pick b{font-size:16px}
.dt-choose-pick small{grid-column:1;color:#6f5a60;font-size:13px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.dt-choose-pick span{grid-column:2;grid-row:1/3;align-self:center;font-size:20px}
.dt-choose-back{min-height:44px;margin:-10px 0 4px -4px;padding:0 4px;border:0;background:none;color:#300916;font:inherit}
.dt-choose-all{display:flex;gap:10px;align-items:center;min-height:44px;padding:0 2px}
.dt-choose .dt-needs{margin:0 0 12px}
.dt-choose-send,.dt-choose [data-choose-step=sent] .btn{width:100%;min-height:48px;justify-content:center;background:#300916;border-color:#300916;color:#fff}
.dt-choose-send:disabled{opacity:.45}
.dt-choose-ask{display:block;min-height:44px;margin:4px auto 0}
.dt-choose-send{position:sticky;bottom:0}
