/* Palette derived from the Buckland exterior scheme:
   White Flour #F7F1E7 · Portico #BBAB95 · Repose Gray #C2BDB3
   Basil #626E60 · Needlepoint Navy #546670 · Honed Soapstone #9D9887 */
:root{
  --flour:#F7F1E7; --card:#FFFEFA; --ink:#2E2C26; --muted:#8A8375;
  --border:#E3DACA; --border-strong:#C9BFAC;
  --basil:#626E60; --basil-deep:#4F5A4E; --navy:#546670; --soap:#9D9887;
  --portico:#BBAB95; --brick:#A4543F; --leased:#3F6D4E;
  --pill-new:#546670; --pill-contacted:#626E60; --pill-tour:#7A6A54;
  --pill-toured:#5C5646; --pill-applied:#8A6D3B; --pill-leased:#3F6D4E; --pill-lost:#8B8578;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--flour);color:var(--ink);
  padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}
#app{max-width:640px;margin:0 auto;padding:12px 14px 140px}
@media(min-width:960px){#app{max-width:720px}.det-in{max-width:720px}}

/* Header */
header{display:flex;align-items:flex-end;justify-content:space-between;padding:6px 2px 12px}
.wordmark .eyebrow{font-size:11px;letter-spacing:.22em;color:var(--soap);text-transform:uppercase;font-weight:600}
.wordmark h1{font-size:22px;font-weight:700;letter-spacing:-.01em;margin-top:2px}
.hdr-actions{display:flex;gap:8px;align-items:center}
.whoami{font-size:13px;color:var(--basil);background:#fff;border:1px solid var(--border);
  border-radius:999px;padding:7px 12px;font-weight:600;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.iconbtn{width:38px;height:38px;border-radius:999px;border:1px solid var(--border);background:#fff;
  font-size:16px;color:var(--basil);display:flex;align-items:center;justify-content:center}

/* Segmented toggle */
.seg{display:flex;background:#EDE6D6;border:1px solid var(--border);border-radius:12px;padding:3px;
  position:sticky;top:6px;z-index:20;box-shadow:0 4px 14px rgba(46,44,38,.06)}
.seg button{flex:1;border:0;background:transparent;padding:11px 8px;border-radius:9px;font-size:15px;
  font-weight:600;color:var(--soap)}
.seg button.on{background:var(--basil);color:#FDFCF8;box-shadow:0 1px 3px rgba(46,44,38,.18)}
.seg .badge{display:inline-block;min-width:20px;padding:1px 6px;margin-left:6px;border-radius:999px;
  font-size:12px;background:rgba(255,255,255,.25)}
.seg button:not(.on) .badge{background:#DCD3BF;color:#6E685B}

/* Panels & fields */
.view{display:none;padding-top:14px}
.view.on{display:block}
.panel{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;margin-bottom:14px}
label.f{display:block;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  color:var(--soap);margin:22px 0 6px}
input[type=text],input[type=tel],input[type=email],input[type=date],input[type=number],textarea,select{
  width:100%;font-size:16px;padding:13px 12px;border:1px solid var(--border-strong);border-radius:10px;
  background:#fff;color:var(--ink);font-family:inherit}
input:focus,textarea:focus{outline:2px solid var(--basil);outline-offset:0;border-color:var(--basil)}
select{-webkit-appearance:none;appearance:none;font-weight:600;padding-right:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%239D9887' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center}
select:focus{outline:2px solid var(--basil);border-color:var(--basil)}
.req{border-color:var(--brick);box-shadow:0 0 0 1px var(--brick)}
textarea{min-height:84px;resize:vertical}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--border-strong);background:#fff;border-radius:999px;padding:9px 14px;
  font-size:14px;font-weight:500;color:var(--ink)}
.chip.on{background:var(--basil);border-color:var(--basil);color:#FDFCF8}
.row2{display:flex;gap:10px}.row2>*{flex:1}
.btn{display:block;width:100%;border:0;border-radius:12px;padding:15px;font-size:16px;font-weight:700;
  background:var(--basil);color:#FDFCF8;margin-top:16px}
.btn:active{background:var(--basil-deep)}
.btn:disabled{background:var(--border-strong);color:#FBF8F0;box-shadow:none!important}
.btn.ghost{background:#fff;color:var(--basil);border:1px solid var(--border-strong);font-weight:600}
.btn.sm{padding:10px;font-size:14px;margin-top:10px}
.btn.ghost.on{background:var(--basil);border-color:var(--basil);color:#FDFCF8}
.btn.danger{background:var(--brick);color:#FDF6F3}
.btn.danger:active{background:#8B4632}
.btn.danger:disabled{background:var(--border-strong)}
.btn.ghost.danger-ghost{color:var(--brick);border-color:#E0C0B4}
#savebar{position:fixed;left:0;right:0;bottom:0;z-index:40;
  padding:10px 14px calc(12px + env(safe-area-inset-bottom));
  background:linear-gradient(180deg,rgba(247,241,231,0),var(--flour) 40%)}
#savebar .btn{margin:0 auto;max-width:612px;box-shadow:0 6px 18px rgba(46,44,38,.16)}
#savebar .banner{margin:0 auto 10px;max-width:612px}
#det-savebar{position:fixed;left:0;right:0;bottom:0;z-index:60;
  padding:10px 14px calc(12px + env(safe-area-inset-bottom));
  background:linear-gradient(180deg,rgba(247,241,231,0),var(--flour) 40%)}
#det-savebar .btn{margin:0 auto;max-width:612px;box-shadow:0 6px 18px rgba(46,44,38,.16)}
.linkish{background:none;border:0;color:var(--navy);font-size:14px;font-weight:600;text-decoration:underline;padding:6px 2px}

/* Prefill / banners */
.prefill-row{display:flex;gap:10px;margin-bottom:4px}
.prefill-row .btn{margin-top:0;padding:12px;font-size:15px}
.banner{border-radius:10px;padding:11px 13px;font-size:14px;line-height:1.45;margin:12px 0 4px;display:none}
.banner.on{display:block}
.banner.ok{background:#EDF2EA;border:1px solid #C6D2C1;color:#3E4A3C}
.banner.warn{background:#F6ECE2;border:1px solid #E0C9AF;color:#6E4A2E}
.banner.err{background:#F5E7E2;border:1px solid #DEBBAD;color:#7A3B28}
.banner .linkish{padding:2px 0;margin-right:14px}
.spin{display:none;font-size:14px;color:var(--basil);font-weight:600;margin:10px 0 2px}
.spin.on{display:block}
.spin::before{content:"";display:inline-block;width:12px;height:12px;border:2px solid var(--basil);
  border-top-color:transparent;border-radius:50%;margin-right:8px;vertical-align:-1px;animation:sp .8s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.spin::before{animation:none}}

/* Prospects */
.statstrip{display:flex;gap:14px;font-size:13px;color:var(--muted);padding:2px 4px 10px;flex-wrap:wrap}
.statstrip b{color:var(--ink)}
.statstrip .od b{color:var(--brick)}
.toolrow{display:flex;gap:8px;margin-bottom:10px}
.toolrow input{flex:1}
.filters{display:flex;gap:8px;overflow-x:auto;padding-bottom:10px;-webkit-overflow-scrolling:touch}
.filters .chip{flex:0 0 auto;padding:7px 13px;font-size:13px}
.filters .chip.multi{margin-left:auto}
.list{display:flex;flex-direction:column;gap:8px}
.rowcard{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 14px;
  display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer}
.rowcard:active{background:#F4EEDF}
.rowcard.odrow{box-shadow:inset 3px 0 0 var(--brick)}
.rc-l{min-width:0}
.rc-name{font-size:16px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc-meta{font-size:13px;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc-r{text-align:right;flex:0 0 auto}
.pill{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.03em;color:#FDFCF8;
  border-radius:999px;padding:4px 10px;text-transform:uppercase}
.fu{font-size:12.5px;color:var(--muted);margin-top:5px}
.fu.over{color:var(--brick);font-weight:700}
.empty{text-align:center;color:var(--muted);font-size:14.5px;padding:36px 20px;line-height:1.5}
.exports{display:flex;gap:16px;justify-content:center;padding:18px 0 6px}

/* Detail sheet */
#detail{position:fixed;inset:0;background:var(--flour);z-index:50;display:none;overflow-y:auto;
  padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
#detail.on{display:block}
.det-in{max-width:640px;margin:0 auto;padding:10px 14px 140px}
.det-top{display:flex;align-items:center;gap:8px;padding:8px 0 6px}
.det-top .back{background:none;border:0;font-size:16px;font-weight:600;color:var(--navy);padding:8px 10px 8px 0}
.det-name{font-size:24px;font-weight:750;letter-spacing:-.01em;margin-top:2px}
.det-meta{font-size:13.5px;color:var(--muted);margin-top:5px;line-height:1.5}
.contact-row{display:flex;gap:8px;margin:14px 0 4px}
.contact-row a{flex:1;text-align:center;background:#fff;border:1px solid var(--border-strong);border-radius:11px;
  padding:12px 6px;font-size:14.5px;font-weight:650;color:var(--basil);text-decoration:none}
.sect{margin-top:18px}
.sect h3{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--soap);margin-bottom:8px}
.lognote{display:flex;gap:8px;margin-top:10px}
.lognote input{flex:1}
.timeline{margin-top:10px;border-left:2px solid var(--border-strong);padding-left:14px;display:flex;flex-direction:column;gap:12px}
.tl-item{position:relative;font-size:14px;line-height:1.45}
.tl-item::before{content:"";position:absolute;left:-19.5px;top:5px;width:8px;height:8px;border-radius:50%;
  background:var(--portico)}
.tl-when{font-size:12px;color:var(--muted);margin:0 0 4px}
.tl-line+.tl-line{margin-top:3px}
.notesblock{background:#fff;border:1px solid var(--border);border-radius:10px;padding:12px;font-size:14.5px;
  line-height:1.5;white-space:pre-wrap}


/* ================= Showings ================= */
.sublinks{display:flex;gap:14px;align-items:center;font-size:14px;margin:12px 2px 10px;flex-wrap:wrap}
.sublinks .spacer{flex:1}
.chk{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}
.chk input{width:18px;height:18px;margin:0}
.seg2{display:inline-flex;background:#EDE6D6;border:1px solid var(--border);border-radius:10px;padding:3px}
.seg2 button{border:0;background:transparent;padding:9px 14px;border-radius:8px;font-size:14px;font-weight:600;color:var(--soap)}
.seg2 button.on{background:var(--basil);color:#FDFCF8}
.h2{font-size:18px;font-weight:700}
.muted{font-size:13.5px;color:var(--muted);line-height:1.5}
.errline{color:var(--brick);font-size:13.5px;margin-top:8px;font-weight:600}
.cal-wrap{display:grid;grid-template-columns:1fr;gap:18px}
@media(min-width:640px){.cal-wrap{grid-template-columns:1fr 1fr}}
.cal-nav{display:flex;justify-content:space-between;margin-bottom:6px}
.cal-nav button{width:36px;height:36px;border-radius:999px;border:1px solid var(--border-strong);background:#fff;font-size:20px;line-height:1;color:var(--basil)}
.cal-nav button:disabled{opacity:.3}
.cal-title{text-align:center;font-weight:700;margin-bottom:8px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-w{text-align:center;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--soap);padding:4px 0}
.cal-d{aspect-ratio:1;border:2px solid transparent;border-radius:999px;background:transparent;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;padding:0}
.cal-d:hover:not(:disabled){background:#EDE6D6}
.cal-off{color:#CFC6B4;cursor:default}
.cal-today{border-color:var(--basil)}
.cal-on{background:var(--basil)!important;color:#FDFCF8!important}
.slot-grid{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 6px}
.slot{border:1px solid var(--border-strong);background:#fff;border-radius:10px;padding:10px 14px;font-size:14px;font-weight:600;color:var(--ink)}
.slot.on{background:var(--basil);border-color:var(--basil);color:#FDFCF8}
.confirm-grid{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:14.5px;line-height:1.45;margin:0}
.confirm-grid dt{color:var(--soap);font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding-top:3px}
.confirm-grid dd{margin:0}
.tpill{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.03em;color:#FDFCF8;border-radius:999px;padding:4px 10px;text-transform:uppercase;white-space:nowrap}
.tpill.moss{background:var(--basil)}
.tpill.mist{background:var(--navy)}
.shape{position:relative;height:6px;background:var(--border);border-radius:3px;overflow:hidden;margin:6px 0}
.shape-open,.shape-moss,.shape-mist{position:absolute;top:0;height:100%}
.shape-open{background:#D3C9B5}
.shape-moss{background:var(--basil)}
.shape-mist{background:var(--navy)}
.shape-closed{height:6px;border-radius:3px;margin:6px 0;background:repeating-linear-gradient(90deg,var(--border) 0 6px,transparent 6px 10px)}
.day-head{margin:18px 0 6px}
.day-head h3{font-size:16px;font-weight:700}
.srow{display:grid;grid-template-columns:auto auto 1fr auto;gap:10px;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin-bottom:8px;font-size:14px}
.srow.done{opacity:.55}
.srow .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.srow .acts button{border:1px solid var(--border-strong);background:#fff;border-radius:999px;padding:6px 10px;font-size:12.5px;font-weight:600;color:var(--ink)}
.srow .status{font-size:12.5px;font-weight:700;color:var(--muted)}
@media(max-width:560px){.srow{grid-template-columns:auto 1fr}.srow .acts{grid-column:1/-1;justify-content:flex-start}.srow .tcell{grid-column:2}}
.tag{display:inline-block;font-size:10.5px;font-weight:700;border-radius:999px;padding:2px 7px;margin-left:6px;vertical-align:1px;text-transform:none}
.tag-new{background:#DDE6D6;color:#3E4A3C}
.tag-changed{background:#E6E0F0;color:#4B3F6E}
.period{border-top:1px dashed var(--border);padding:12px 0}
.period:first-of-type{border-top:0;padding-top:4px}
.period h4{font-size:15px;font-weight:700;display:inline}
.hours-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:6px}
.hours-cell{background:#FAF6EC;border-radius:8px;padding:6px 3px;text-align:center;font-size:11.5px;line-height:1.35}
.hours-cell span:first-child{display:block;font-weight:700;color:var(--soap);font-size:10.5px;letter-spacing:.05em}
.hours-off{opacity:.45}
.json{background:#2E2C26;color:#F7F1E7;font-size:12px;padding:12px;border-radius:10px;overflow:auto;white-space:pre;margin-top:8px}
.chat{background:#FAF6EC;border:1px solid var(--border);border-radius:10px;padding:10px;max-height:340px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;font-size:14px}
.msg-user{align-self:flex-end;background:var(--basil);color:#FDFCF8;border-radius:12px 12px 2px 12px;padding:8px 12px;max-width:85%;white-space:pre-wrap}
.msg-ai{align-self:flex-start;background:#fff;border:1px solid var(--border);border-radius:12px 12px 12px 2px;padding:8px 12px;max-width:92%;white-space:pre-wrap}
.examples{display:flex;flex-direction:column;gap:6px}
.examples button{text-align:left;border:1px solid var(--border-strong);background:#fff;border-radius:10px;padding:9px 12px;font-size:13.5px;color:var(--navy);line-height:1.4}
.pending{border:1px solid var(--border-strong);background:#fff;border-radius:10px;padding:12px;margin-top:10px}
.rules-grid{display:grid;grid-template-columns:1fr;gap:14px}
.btn.inline{width:auto;margin:0;padding:11px 16px;font-size:14px}
a.btn{text-decoration:none;text-align:center;display:inline-block}
body.bookmode header,body.bookmode .seg{display:none}
body.bookmode #app{padding-top:4px}

/* Dialog */
#dlg{position:fixed;inset:0;background:rgba(46,44,38,.45);z-index:80;display:none;align-items:center;justify-content:center;padding:24px}
#dlg.on{display:flex}
.dlg-card{background:var(--card);border-radius:14px;padding:20px;width:100%;max-width:360px}
.dlg-card h3{font-size:17px;margin-bottom:6px}
.dlg-card p{font-size:14px;color:var(--muted);margin-bottom:12px;line-height:1.45}

/* Toast */
#toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%) translateY(20px);
  background:var(--ink);color:#F7F1E7;font-size:14px;font-weight:600;padding:11px 18px;border-radius:999px;
  opacity:0;pointer-events:none;transition:.25s;z-index:90;max-width:88vw;text-align:center}
#toast.on{opacity:1;transform:translateX(-50%) translateY(0)}



/* ---- staff pages: nav segments as links; public page header ---- */
.seg a{flex:1;text-align:center;text-decoration:none;padding:11px 8px;border-radius:9px;font-size:15px;font-weight:600;color:var(--soap)}
.seg a.on{background:var(--basil);color:#FDFCF8;box-shadow:0 1px 3px rgba(46,44,38,.18)}
.pub-head{padding:10px 2px 16px}
.pub-head h1{font-size:26px;font-weight:700;letter-spacing:-.01em;margin-top:2px}
.pub-head .sub{font-size:14px;color:var(--muted);margin-top:4px}

/* PIN gate (staff pages) */
#gate{position:fixed;inset:0;background:var(--flour);z-index:100;display:none;align-items:center;justify-content:center;padding:24px}
#gate.on{display:flex}
.gate-card{width:100%;max-width:340px}

.srow.tap{cursor:pointer}
.srow.tap:active{background:#F4EEDF}
