/* App layer on top of brand.css */
html{overflow-x:hidden}
body{overflow-x:hidden}
.rolebar{background:#3A2E12;color:#E8C98A;font:600 .72rem/1.3 Montserrat,sans-serif;letter-spacing:.02em;
  padding:.45rem 1rem;display:flex;flex-wrap:wrap;gap:.4rem .6rem;align-items:center;justify-content:center}
.rolebar span{opacity:.85}
.rolebar button{background:transparent;border:1px solid rgba(232,201,138,.4);color:#E8C98A;border-radius:99px;
  padding:.2rem .65rem;font:600 .7rem Montserrat,sans-serif;cursor:pointer}
.rolebar button.on{background:#E8C98A;color:#3A2E12;border-color:#E8C98A}
.rolebar .reset{border-style:dashed;opacity:.8}

.page{max-width:1080px;margin:0 auto;padding:1.6rem 1.15rem 1rem}
.page.wide{max-width:1240px}
.ph{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}
.ph h1{font-size:clamp(1.5rem,4vw,2.1rem);margin:0}
.ph .sub{margin:.25rem 0 0;color:var(--muted);font-size:.92rem}
.muted{color:var(--muted)}
.small{font-size:.82rem}
.hide{display:none!important}
.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.btn.sm{padding:.45rem .85rem;font-size:.8rem}
.btn.line{background:#fff;color:var(--green);border-color:var(--line)}
.btn.line:hover{border-color:var(--green);background:#fff}
.btn[disabled]{opacity:.45;cursor:not-allowed}

/* tabs */
.tabs{display:flex;gap:.3rem;border-bottom:1px solid var(--line);margin-bottom:1.1rem;overflow-x:auto}
.tabs button{background:none;border:0;border-bottom:3px solid transparent;padding:.6rem .8rem;cursor:pointer;
  font:600 .85rem Montserrat,sans-serif;color:var(--muted);white-space:nowrap}
.tabs button.on{color:var(--green);border-bottom-color:var(--orange)}
.count{display:inline-block;min-width:1.3rem;padding:0 .35rem;border-radius:99px;background:var(--orange);
  color:#fff;font-size:.68rem;line-height:1.3rem;text-align:center;margin-left:.3rem}

/* lists */
.list{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
.item{display:grid;grid-template-columns:1fr auto;gap:.4rem 1rem;padding:.9rem 1rem;border-bottom:1px solid var(--line);
  align-items:center}
.item:last-child{border-bottom:0}
.item h3{margin:0;font-size:.98rem}
.item .meta{font-size:.8rem;color:var(--muted);margin-top:.15rem}
.item .acts{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:640px){.item{grid-template-columns:1fr}.item .acts{justify-content:flex-start}}
.empty{padding:1.4rem 1rem;color:var(--muted);text-align:center;font-size:.9rem}
.st{display:inline-block;font:700 .62rem Montserrat,sans-serif;letter-spacing:.06em;text-transform:uppercase;
  padding:.18rem .5rem;border-radius:99px;white-space:nowrap;vertical-align:middle}
.st.new{background:#FDE7D3;color:#9A4B12}
.st.work{background:var(--tan-bg);color:#6B5A2E}
.st.ready,.st.pub{background:#DDEEE4;color:var(--green)}
.st.draft{background:#ECEAE4;color:#5E645F}
.st.hot{background:#FBE0DA;color:#9B3220}

/* forms */
.fgrid{display:grid;gap:.8rem;grid-template-columns:repeat(4,1fr)}
.fgrid.three{grid-template-columns:repeat(3,1fr)}
.fgrid.two{grid-template-columns:1fr 1fr}
.fgrid .span2{grid-column:span 2}
.fgrid .spanall{grid-column:1/-1}
@media(max-width:900px){.fgrid,.fgrid.three{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.fgrid,.fgrid.three,.fgrid.two{grid-template-columns:1fr}.fgrid .span2{grid-column:auto}}
.hint{font-size:.72rem;color:var(--muted);margin-top:.2rem;line-height:1.35}
.sec{background:#fff;border:1px solid var(--line);border-radius:12px;padding:1.1rem;margin-bottom:1rem;box-shadow:var(--shadow)}
.sec>h2{font:700 .72rem Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 .9rem;
  display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}
.seg button{border:0;background:none;padding:.5rem .85rem;font:600 .8rem Montserrat,sans-serif;color:var(--body);cursor:pointer}
.seg button.on{background:var(--green);color:#fff}
.check{display:flex;gap:.55rem;align-items:flex-start;padding:.45rem 0;font-size:.88rem;cursor:pointer}
.check input{width:17px;height:17px;flex:0 0 auto;margin-top:.15rem;accent-color:var(--green)}
.check b{color:var(--ink);font-weight:600}

/* rent roll */
.rr{width:100%;border-collapse:collapse;font-size:.85rem}
.rr th{font:700 .62rem Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);text-align:left;padding:.3rem .3rem}
.rr td{padding:.2rem .3rem}
.rr input{padding:.4rem .5rem;font-size:.88rem}
.rr .x{background:none;border:0;color:var(--muted);cursor:pointer;font-size:1.1rem;padding:.2rem .4rem}
.rr tfoot td{font-weight:600;color:var(--ink);padding-top:.5rem}
.scrollx{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* editor layout */
.ed{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:1.1rem;align-items:start}
@media(max-width:1000px){.ed{grid-template-columns:1fr}}
.res{position:sticky;top:64px}
@media(max-width:1000px){.res{position:static}}
.res .sec{padding:1rem}
.big2{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.7rem}
.kpi{background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:.55rem .65rem}
.kpi .k{font:700 .58rem Montserrat,sans-serif;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}
.kpi .v{font:700 1.18rem Montserrat,sans-serif;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.25}
.kpi .n{font-size:.68rem;color:var(--muted);line-height:1.3}
.good{color:var(--good)!important}.tight{color:var(--warn)!important}.short{color:var(--bad)!important}
.kv2{display:grid;grid-template-columns:1fr auto;gap:.25rem .8rem;font-size:.84rem}
.kv2 dt{color:var(--body)}
.kv2 dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600}
.callout{border-radius:9px;padding:.75rem .85rem;font-size:.85rem;line-height:1.5;margin-top:.7rem}
.callout.good{background:#E7F2EC;color:#1E4D36!important}
.callout.tight{background:#FBF1DE;color:#6E4C0E!important}
.callout.short{background:#FAE5E0;color:#7A2716!important}
.callout.info{background:var(--tan-bg);color:var(--body)}
.prog2{display:flex;justify-content:space-between;gap:.6rem;padding:.45rem 0;border-bottom:1px solid var(--line);font-size:.84rem}
.prog2:last-child{border-bottom:0}
.prog2 .why{font-size:.72rem;color:var(--muted)}
.pill{font:700 .6rem Montserrat,sans-serif;padding:.15rem .5rem;border-radius:99px;white-space:nowrap;letter-spacing:.05em;height:fit-content}
.pill.fits{background:var(--green);color:#fff}.pill.pending{background:#F3E2BF;color:#6E4C0E}.pill.no{background:var(--line);color:var(--muted)}

/* write-up (client deliverable) */
.wu{max-width:860px;margin:0 auto}
.wu-head{background:linear-gradient(135deg,var(--green-d),var(--green));color:#DCE8E0;border-radius:14px;padding:1.6rem 1.4rem;
  position:relative;overflow:hidden}
.wu-head::after{content:'';position:absolute;right:-70px;top:-60px;width:260px;height:260px;border-radius:50%;
  border:34px solid rgba(201,185,142,.13)}
.wu-head h1{color:#fff;font-size:clamp(1.4rem,4vw,2rem);margin:.2rem 0 .4rem;position:relative}
.wu-head .eyebrow{color:var(--tan-l);position:relative}
.wu-head p{position:relative;margin:0}
.verdict{display:flex;gap:.9rem;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:1.1rem;margin:1rem 0;box-shadow:var(--shadow)}
.verdict .dot{width:14px;height:14px;border-radius:50%;flex:0 0 auto;margin-top:.35rem}
.verdict .dot.good{background:var(--good)}.verdict .dot.tight{background:var(--warn)}.verdict .dot.short{background:var(--bad)}
.verdict h2{font-size:1.15rem;margin:0 0 .2rem}
.verdict p{margin:0;font-size:.92rem}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}
@media(max-width:720px){.tiles{grid-template-columns:1fr 1fr}}
@media(max-width:400px){.tiles{grid-template-columns:1fr}}
.tile{background:#fff;border:1px solid var(--line);border-radius:11px;padding:.85rem .9rem}
.tile .k{font:700 .62rem Montserrat,sans-serif;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}
.tile .v{font:700 1.45rem Montserrat,sans-serif;color:var(--ink);line-height:1.2;margin:.15rem 0;font-variant-numeric:tabular-nums}
.tile .n{font-size:.75rem;color:var(--muted);line-height:1.4}
.note-steve{background:var(--tan-bg);border-left:4px solid var(--tan);border-radius:0 12px 12px 0;padding:1.1rem 1.2rem;margin:1rem 0}
.note-steve .who{font:700 .7rem Montserrat,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--tan);margin-bottom:.4rem}
.note-steve p{white-space:pre-line;margin:0}
.nexts{margin:.4rem 0 0;padding-left:1.1rem}
.nexts li{margin-bottom:.35rem}
.reviewnote{background:#FFF7E0;border:1px dashed #D9B45A;border-radius:10px;padding:.7rem .85rem;font-size:.82rem;
  color:#6E4C0E;margin:1rem 0}
.reviewnote b{font-family:Montserrat,sans-serif}

/* home */
.how{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}
@media(max-width:860px){.how{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.how{grid-template-columns:1fr}}
.how .card{padding:1.1rem}
.how .card p{font-size:.88rem;margin:0}
.doors{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
.doors.two{grid-template-columns:1fr 1fr}
@media(max-width:820px){.doors,.doors.two{grid-template-columns:1fr}}
.doors .card{border-top:4px solid var(--tan)}
.doors .card.b{border-top-color:var(--green)}
.doors .card.c{border-top-color:var(--orange)}
.doclist{margin:0;padding:0;list-style:none}
.doclist li{padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.88rem}
.doclist li:last-child{border-bottom:0}
.doclist b{color:var(--ink);font-weight:600;display:block}
.doclist span{color:var(--muted);font-size:.8rem}
details.dd{background:#fff;border:1px solid var(--line);border-radius:11px;margin-bottom:.6rem}
details.dd summary{cursor:pointer;padding:.85rem 1rem;font:600 .95rem Montserrat,sans-serif;color:var(--ink);list-style:none;
  display:flex;justify-content:space-between;gap:.6rem}
details.dd summary::after{content:'+';color:var(--tan);font-size:1.2rem;line-height:1}
details.dd[open] summary::after{content:'–'}
details.dd .in{padding:0 1rem 1rem}
table.t{width:100%;border-collapse:collapse;font-size:.86rem}
table.t td,table.t th{text-align:left;padding:.5rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}
table.t th{font:700 .66rem Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}

.toast{position:fixed;left:50%;bottom:1.2rem;transform:translateX(-50%) translateY(150%);background:var(--green-d);color:#fff;
  padding:.7rem 1.1rem;border-radius:9px;font:600 .85rem Montserrat,sans-serif;transition:.25s;z-index:200;max-width:92vw;
  box-shadow:0 8px 28px rgba(0,0,0,.2);visibility:hidden}
.toast.on{transform:translateX(-50%) translateY(0);visibility:visible}

@media print{.rolebar,.nav,footer .built,.noprint,.toast{display:none!important}
  body{background:#fff}.wu-head{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.rr td.rrt{font-weight:600;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums;padding-left:.5rem}
