:root{--brand:#032c28;--brand-deep:#02231f;--sage:#8a916b;--sage-light:#c2c9a0;--sage-pale:#e4e7cf;--cream:#fffef6;--cream-deep:#f2eedb;--background:#f7f5e9;--surface:#fffefb;--text:#173c36;--muted:#65766c;--border:#c9cda9;--white:#fff;--danger:#914b42;--danger-pale:#f6e3d9;--shadow:#032c281c}
*{box-sizing:border-box}
html{max-width:100%;overflow-x:clip;font-family:"Nunito",Arial,sans-serif}
body{max-width:100%;min-height:100vh;margin:0;overflow-x:clip;color:var(--text);background:var(--background);font-size:22px;line-height:1.5}
.workspace-root{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
.workspace-root body{width:100%;height:100%;max-height:100dvh;overflow:hidden;overscroll-behavior:none}
button,input,textarea{font:inherit}
.site-header{min-height:150px;display:flex;align-items:center;justify-content:center;position:relative;padding:1.4rem max(1rem,calc((100% - 1180px)/2));color:var(--cream);background:var(--brand);border-bottom:3px solid var(--sage);box-shadow:0 3px 16px var(--shadow)}
.wordmark{display:inline-flex;align-items:center;gap:.22em;color:inherit;font-size:clamp(3rem,6vw,5.5rem);font-weight:700;line-height:1;text-decoration:none}
.wordmark-logo{width:1.188em;height:1.188em;display:block;object-fit:contain}
.wordmark-text{display:inline-flex;align-items:baseline;font-size:calc(.9em - 4px);letter-spacing:-.065em}
.wordmark-main{color:#fffef6}
.wordmark-accent{color:#c2c9a0}
.logout-button{min-height:44px;padding:.55rem .9rem;border:1px solid var(--sage-light);border-radius:.7rem;color:var(--cream);background:#ffffff0b;font-weight:800;cursor:pointer;transition:background .18s ease,color .18s ease}
.logout-button:hover{color:var(--brand);background:var(--sage-light)}
.header-actions{min-height:58px;display:flex;align-items:center;justify-content:flex-start;padding:.45rem max(1rem,calc((100% - 1180px)/2));background:transparent}
.header-actions form{margin:0}.header-actions .logout-button,.header-back{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:.35rem .85rem;transform:translateY(.2rem);border:1px solid currentColor;border-radius:.7rem;color:var(--brand);background:transparent;font-size:calc(1em + 2pt);font-weight:800;text-decoration:none;box-shadow:none;cursor:pointer}
.header-actions .logout-button:hover,.header-back:hover{color:var(--sage);background:transparent;text-decoration:none}
.login-page{height:100dvh;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;background:radial-gradient(circle at 50% 12%,var(--cream) 0,var(--background) 54%,var(--cream-deep) 100%)}
.login-page main{width:min(100%,520px);height:100%;min-height:0;margin:auto;display:grid;align-items:center;padding:clamp(.75rem,3dvh,1.25rem) 1rem;overflow-y:auto}
.login-card{width:100%;max-width:440px;margin:auto;padding:clamp(1.15rem,3dvh,1.75rem);border:1px solid var(--border);border-radius:1.2rem;background:var(--surface);box-shadow:0 18px 50px var(--shadow)}
.login-card h1{margin-top:0;text-align:center;font-size:2.333rem}
.form-stack{width:100%;margin-inline:auto;display:grid;gap:.85rem}
.form-stack label{display:grid;gap:.35rem;font-weight:700}
input{width:100%;min-height:50px;padding:.75rem 1rem;border:1px solid var(--border);border-radius:.65rem;color:var(--text);background:#fff}
input:focus{border-color:var(--sage)}
input:focus-visible,textarea:focus-visible,button:focus-visible{outline:3px solid var(--sage-light);outline-offset:2px}
.primary-button{min-height:50px;border:1px solid var(--brand);border-radius:.65rem;color:var(--cream);background:var(--brand);font-weight:800;cursor:pointer;box-shadow:0 6px 18px var(--shadow);transition:background .18s ease,border-color .18s ease}
.form-stack .primary-button{margin-top:.25rem}
.primary-button:hover{border-color:var(--sage);background:#17453d}
.alert{width:min(100%,440px);margin:0 auto 1rem;padding:.8rem;border:1px solid #d7aaa0;border-radius:.6rem;color:var(--danger);background:var(--danger-pale)}
.password-field{position:relative;display:block}
.password-field input{padding-right:3.4rem}
.password-toggle{position:absolute;top:50%;right:.35rem;display:grid;place-items:center;width:44px;min-height:44px;padding:0;transform:translateY(-50%);border:0;color:var(--text);background:transparent;cursor:pointer}
.password-toggle svg,.composer-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.password-toggle .eye-hide,.password-toggle[aria-pressed="true"] .eye-show{display:none}
.password-toggle[aria-pressed="true"] .eye-hide{display:block}
.workspace-page{height:100dvh;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden;background:radial-gradient(circle at 50% 25%,var(--cream) 0,var(--background) 48%,var(--cream-deep) 100%)}
.workspace-page main{display:grid;min-height:0;padding:.5rem 2rem 1rem}
.assistant-shell{position:relative;width:min(900px,100%);min-width:0;height:100%;max-height:760px;margin:auto;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;justify-items:center;gap:.65rem}
.assistant-intro{width:100%;display:grid;justify-items:center;gap:.55rem;text-align:center}
.context-label{width:100%;max-width:100%;margin:0 0 .35rem;padding:0;color:var(--brand);background:transparent;font-size:calc(1em + 4pt);font-weight:700;line-height:1.2}
.assistant-intro h1{width:100%;margin:1rem 0 0;font-size:clamp(2.083rem,calc(5vw + 1.333px),3.683rem);font-weight:600;line-height:1.12;pointer-events:none}
.assistant-intro>p:last-child{margin:.8rem 0 0;color:var(--muted)}
.assistant-intro{transition:opacity .2s ease,transform .2s ease}
.assistant-intro.is-compact{position:absolute;opacity:0;pointer-events:none;transform:translateY(-8px)}
.conversation{width:100%;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;display:flex;flex-direction:column;gap:.8rem;padding:.5rem .2rem;scrollbar-color:var(--sage-light) transparent;scrollbar-width:thin}
.message{max-width:min(78%,680px);padding:.75rem 1rem;border-radius:1.15rem;white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:0 5px 18px var(--shadow)}
.message-user{align-self:flex-end;color:var(--cream);background:var(--brand);border:1px solid var(--brand-deep);border-bottom-right-radius:.35rem}
.message-assistant{align-self:flex-start;color:var(--text);background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:.35rem}
.message.is-loading{color:var(--muted);animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{50%{opacity:.55}}
.composer{position:relative;transform:translateY(-52px);width:100%;min-width:0;height:max(112px,18.75vh);min-height:112px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-rows:minmax(0,1fr) auto;align-items:end;gap:.5rem;padding:.7rem;border:1px solid var(--border);border-radius:1.5rem;background:#fff;box-shadow:0 18px 50px var(--shadow)}
.composer textarea{grid-column:1/-1;grid-row:1;width:100%;height:100%;max-height:none;min-height:48px;align-self:stretch;resize:none;padding:.72rem .4rem;border:0;outline:0;color:var(--text);background:transparent;font-size:calc(1.05rem + 4px)}
.composer [data-attachment-button]{grid-column:1;grid-row:2}
.composer .attachment-chip{grid-column:2;grid-row:2;align-self:center;justify-self:stretch;width:auto;max-width:100%;overflow:hidden}
.composer [data-microphone-button]{grid-column:3;grid-row:2}
.composer .send-button{grid-column:4;grid-row:2}
.composer-icon{width:48px;height:48px;display:grid;place-items:center;padding:0;border:1px solid var(--border);border-radius:50%;color:var(--brand);background:var(--sage-pale);transition:background .18s ease,border-color .18s ease}
.composer-icon:hover{border-color:var(--sage);background:var(--sage-light)}
.composer-icon:disabled{opacity:.72;cursor:not-allowed}
.composer-icon.is-recording{color:#fff;background:#b52e36;animation:recording-pulse 1.2s ease-in-out infinite}
@keyframes recording-pulse{50%{box-shadow:0 0 0 8px #b52e3630}}
.send-button{color:var(--cream);border-color:var(--brand);background:var(--brand);cursor:pointer}
.send-button:hover{color:var(--brand);border-color:var(--sage);background:var(--sage-light)}
.composer.is-busy .send-button{opacity:.55;cursor:wait}
.phase-note{position:relative;transform:translateY(-52px);width:100%;margin:0;padding:.1rem .5rem;color:var(--muted);font-size:calc(.8rem + 4px);line-height:1.35;text-align:center}
.identity-entry,.page-actions a,.text-link{display:inline-flex;width:max-content;color:var(--brand);font-weight:800;text-underline-offset:.2em}
.workspace-menu{width:100%;display:grid;gap:.45rem}.workspace-menu .identity-entry,.workspace-menu-button{width:100%;min-height:56px;margin:0;padding:.45rem .85rem;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:.9rem;color:var(--brand);background:var(--sage-pale);font-size:1em;font-weight:800;text-decoration:none;cursor:pointer}

.identity-page main{width:min(1180px,calc(100% - 2rem));margin:auto;padding:2rem 0 4rem}
.identity-shell{display:grid;gap:1.5rem}.page-actions{display:flex;flex-wrap:wrap;gap:1.2rem}.page-heading h1{margin:0;font-size:clamp(2.3rem,5vw,4rem);line-height:1.1}.page-heading p{margin:.3rem 0 0;color:var(--muted);font-size:1.25rem;font-weight:800}
.profile-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:1rem;align-items:start}.profile-card,.history-card{padding:1.25rem;border:1px solid var(--border);border-radius:1rem;background:var(--surface);box-shadow:0 6px 20px var(--shadow)}.profile-card h2,.history-card h2{margin:0 0 1rem;font-size:1.35rem}.profile-card dl{margin:0}.profile-card dl div{display:grid;grid-template-columns:minmax(8rem,1fr) minmax(8rem,1.2fr);gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--sage-pale)}.profile-card dl div:last-child{border:0}.profile-card dt{color:var(--muted)}.profile-card dd{margin:0;font-weight:800;text-align:right;overflow-wrap:anywhere}
.operational-sections{display:grid;gap:.75rem}.operation-card{border:1px solid var(--border);border-radius:1rem;background:var(--surface);overflow:hidden}.operation-card summary{display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;color:var(--brand);font-weight:800;cursor:pointer}.operation-card summary span{color:var(--muted);font-weight:700}.operation-content{padding:0 1.2rem 1.2rem}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:.65rem;text-align:left;border-bottom:1px solid var(--sage-pale)}th{color:var(--muted)}
.asset-summary{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}.document-list{display:grid;gap:.7rem}.document-list>div{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--sage-pale)}.document-list span{display:grid}.document-list small,.document-list em{color:var(--muted)}.document-list a{color:var(--brand);font-weight:800;white-space:nowrap}.history-card article{display:grid;grid-template-columns:8rem minmax(0,1fr) auto;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--sage-pale)}.history-card article:last-child{border:0}.history-card article p{margin:.25rem 0 0;color:var(--muted)}
.asset-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--sage-pale)}.asset-row:last-child{border:0}.asset-row p{margin:.2rem 0}
.attachment-chip{width:fit-content;max-width:100%;min-width:0;justify-self:start;display:flex;align-items:center;gap:.55rem;padding:.4rem .7rem;border:1px solid var(--border);border-radius:99px;background:var(--sage-pale);font-size:calc(.85rem + 4px);font-weight:700}
.attachment-chip[hidden]{display:none}.attachment-chip span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-chip button{flex:0 0 auto;border:0;background:transparent;color:var(--brand);font-size:1.25rem;cursor:pointer}
.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}
@media(max-width:700px){
  body{font-size:21px}
  .site-header{min-height:120px;padding:1rem}
  .wordmark{font-size:clamp(2.7rem,15vw,4rem)}
  .login-page main{width:100%;padding:.75rem}
  .login-card{margin:auto;padding:1.25rem}
  .logout-button{min-height:40px;padding:.4rem .65rem}
  .header-actions{min-height:52px;padding:.3rem 1rem}.header-actions .logout-button,.header-back{min-height:40px;padding:.3rem .65rem}
  .workspace-page main{min-height:0;padding:.25rem 1rem calc(.65rem + env(safe-area-inset-bottom))}
  .assistant-shell{height:100%;max-height:none;align-content:stretch;gap:.45rem}
  .login-card h1{font-size:2.208rem}
  .assistant-intro h1{font-size:2.083rem}
  .composer{height:18.75dvh;min-height:112px;padding:.5rem;border-radius:1.25rem}
  .composer-icon{width:44px;height:44px}
  .composer textarea{min-height:44px;padding:.6rem .2rem}
  .phase-note{display:none}
  .message{max-width:88%;font-size:calc(.95rem + 4px)}
  .composer{gap:.2rem}
  .identity-entry{width:100%;min-height:56px;align-items:center;justify-content:center;border-radius:.9rem;font-size:1.1em}
  .identity-page main{width:calc(100% - 1.2rem);padding:1rem 0 2rem}.profile-card dl div{grid-template-columns:1fr}.profile-card dd{text-align:left}.history-card article{grid-template-columns:1fr;gap:.25rem}.document-list>div{align-items:flex-start;flex-direction:column}
}

/* Single building identity: keep long values within the viewport. */
.identity-shell, .profile-card, .operation-card, .asset-summary { min-width:0; overflow-wrap:anywhere; }
.asset-summary { width:100%; }
.asset-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.asset-facts dd { margin:0; }
@media(max-width:600px) { .asset-facts { grid-template-columns:1fr; } .history-card article { flex-wrap:wrap; } }
.finance-shell {overflow-wrap:anywhere;min-width:0}
.finance-form {display:grid;gap:1rem;padding:1.2rem;min-width:0}
.finance-form label {display:grid;gap:.4rem;min-width:0}
.finance-form input:not([type=checkbox]),.finance-form select,.finance-form textarea {width:100%;max-width:100%;min-width:0;box-sizing:border-box;border:1px solid var(--border);border-radius:.5rem;padding:.6rem;font:inherit;background:var(--surface);color:var(--text)}
.finance-form input[type=checkbox] {width:1.1rem;height:1.1rem}
.finance-form button,.finance-document button {font:inherit;padding:.6rem;border:1px solid var(--border);border-radius:.5rem;color:var(--text);background:var(--cream);cursor:pointer}
.finance-repeat {display:grid;gap:.7rem;padding:1rem;border:1px solid var(--border);border-radius:.7rem;margin-bottom:.7rem}
.finance-notice {padding:1rem;background:var(--cream);border-radius:.7rem}
.finance-document {display:flex;gap:1rem;flex-wrap:wrap;align-items:center;padding:1rem 0;border-bottom:1px solid var(--border);min-width:0}
.finance-document form {max-width:100%}.finance-document input {max-width:100%;box-sizing:border-box}
.document-unavailable {opacity:.45;cursor:not-allowed;border:0;background:transparent;white-space:nowrap}
.finance-shell td {overflow-wrap:anywhere;max-width:24rem}
@media(min-width:800px){.finance-repeat {grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Raised edges on interactive controls and bounded content surfaces. */
:root{
  --surface-edge:inset 0 1px 0 #ffffffd9,inset 0 -2px 0 #032c281b,0 3px 0 #032c281c,0 9px 20px #032c2814;
  --button-edge:inset 0 1px 0 #ffffff73,inset 0 -2px 0 #032c2838,0 3px 0 #032c2838,0 6px 12px #032c281c;
  --field-edge:inset 0 2px 3px #032c2824,inset 0 -1px 0 #ffffffd9,0 2px 5px #032c2810;
}
.header-actions{gap:.6rem}
.login-card,.profile-card,.history-card,.operation-card,.composer,.message,.alert,.finance-repeat,.finance-notice,.attachment-chip{box-shadow:var(--surface-edge)}
button,.primary-button,.composer-icon,.finance-form button,.finance-document button,.header-actions .logout-button,.header-actions .header-back,.workspace-menu .identity-entry,.workspace-menu-button{box-shadow:var(--button-edge)}
input:not([type=hidden]):not([type=checkbox]):not([type=file]),select,textarea{box-shadow:var(--field-edge)}
.composer textarea{box-shadow:none}
.password-toggle,.attachment-chip button{box-shadow:inset 0 1px 0 #ffffffa6,0 2px 4px #032c281c}
