/* BD Studio: Bella Domus identity (same tokens as the site, the dashboard and bd-print.css) */
@font-face{font-family:'Baskervville';font-style:normal;font-weight:400;font-display:swap;src:url(marca/fontes/Baskervville-normal-latin.woff2) format('woff2')}
@font-face{font-family:'Baskervville';font-style:normal;font-weight:400;font-display:swap;src:url(marca/fontes/Baskervville-normal-latin-ext.woff2) format('woff2');unicode-range:U+0100-024F}
@font-face{font-family:'Baskervville';font-style:italic;font-weight:400;font-display:swap;src:url(marca/fontes/Baskervville-italic-latin.woff2) format('woff2')}
@font-face{font-family:'Didact Gothic';font-style:normal;font-weight:400;font-display:swap;src:url(marca/fontes/Didact-Gothic-normal-latin-v2.woff2) format('woff2')}
@font-face{font-family:'Didact Gothic';font-style:normal;font-weight:400;font-display:swap;src:url(marca/fontes/Didact-Gothic-normal-latin-ext-v2.woff2) format('woff2');unicode-range:U+0100-024F}

:root{
  --paper:#F9F8F4;--surface:#FFFFFF;--linen:#DEDACF;--taupe:#A3968D;--ink:#262626;
  --ink-2:#5b544e;--muted:#8a8178;--line:#ece9e2;--focus:#5b544e;--alert:#8c3b2e;
  --serif:'Baskervville',Georgia,serif;--sans:'Didact Gothic',Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5}
b,strong{font-weight:400}
.num,.price,h1,h2,.stat .v{font-variant-numeric:lining-nums tabular-nums;font-feature-settings:'lnum' 1,'tnum' 1}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}

/* top bar */
.top{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid var(--linen)}
.top .in{max-width:1280px;margin:0 auto;padding:10px 24px;display:flex;align-items:center;gap:28px}
.top img{height:38px;width:auto;display:block}
.top nav{display:flex;gap:22px;flex:1}
.top nav a{text-decoration:none;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding:6px 0;border-bottom:1px solid transparent}
.top nav a.on{color:var(--ink);border-bottom-color:var(--ink)}
.top .who{font-size:12px;color:var(--muted);display:flex;gap:14px;align-items:center}
main{max-width:1280px;margin:0 auto;padding:28px 24px 80px}

h1{font-family:var(--serif);font-weight:400;font-size:34px;line-height:1.1;margin:0 0 6px;letter-spacing:-.01em}
h2{font-family:var(--serif);font-weight:400;font-size:22px;margin:0}
.kicker{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--taupe)}
.sub{color:var(--ink-2);font-size:14px}
.muted{color:var(--muted)}

/* controls */
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);
  padding:9px 16px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;border-radius:0;white-space:nowrap}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.quiet{background:transparent;color:var(--ink-2);border-color:var(--linen)}
.btn:disabled{opacity:.45;cursor:default}
.link{background:none;border:0;padding:0;color:var(--ink-2);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-size:13px}
.link.danger{color:var(--alert)}
input[type=text],input[type=search],input[type=password],input[type=number],input[type=url],select,textarea{
  width:100%;background:var(--surface);border:1px solid var(--linen);padding:8px 10px;border-radius:0}
textarea{min-height:70px;resize:vertical}
label.f{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.field{margin-bottom:12px}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:18px 0 22px}
.toolbar input[type=search]{max-width:340px}
.toolbar select{max-width:240px}
.toolbar .grow{flex:1}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--taupe);padding-bottom:14px}

/* library grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:22px}
.card{background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column;cursor:pointer;text-align:left;padding:0}
.card:hover{border-color:var(--taupe)}
.thumb{aspect-ratio:4/3;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden}
.thumb img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.thumb .ph{font-family:var(--serif);font-style:italic;color:var(--linen);font-size:28px}
.card .body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:2px;flex:1}
.card .name{font-family:var(--serif);font-size:16px;line-height:1.25}
.card .meta{font-size:12px;color:var(--muted)}
.card .foot{margin-top:auto;padding-top:8px;display:flex;justify-content:space-between;font-size:13px}
.tag{display:inline-block;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);border:1px solid var(--linen);padding:1px 6px}

/* jobs list */
table{border-collapse:collapse;width:100%}
th{font-weight:400;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px 10px;border-bottom:1px solid var(--taupe)}
td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}
tr.click{cursor:pointer}
tr.click:hover td{background:#fff}
td.r,th.r{text-align:right}

/* selections sheet */
.stats{display:flex;gap:34px;flex-wrap:wrap;margin:18px 0 6px}
.stat .k{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.stat .v{font-family:var(--serif);font-size:24px}
.room{margin-top:34px}
.room .rh{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--ink);padding-bottom:6px;margin-bottom:2px}
.room .rh .code{font-size:11px;letter-spacing:.22em;color:var(--taupe);margin-right:10px}
.sel{table-layout:fixed}
.sel td{font-size:13.5px}
.sel th:nth-child(1){width:72px}.sel th:nth-child(3){width:90px}.sel th:nth-child(4){width:110px}
.sel th:nth-child(5){width:130px}.sel th:nth-child(6){width:100px}.sel th:nth-child(7){width:110px}
.sel th:nth-child(8){width:160px}.sel th:nth-child(9){width:56px}
.sel .ph{display:flex!important;align-items:center;justify-content:center;font-family:var(--serif);font-style:italic;color:var(--linen)}
.sel .pic{width:64px}
.sel .pic img,.sel .pic .ph{width:56px;height:56px;object-fit:contain;background:#fff;border:1px solid var(--line);display:block}
.sel .item .n{font-family:var(--serif);font-size:15px}
.sel .item .m{font-size:12px;color:var(--muted)}
.sel input.qty{width:64px;text-align:right}
.sel select.st{width:auto;min-width:130px;font-size:12.5px;padding:5px 6px}
.status-Approved{color:#2f5d3a}.status-Revise{color:var(--alert)}
.icode{font-family:var(--sans);font-size:10.5px;letter-spacing:.14em;color:var(--taupe);border:1px solid var(--linen);padding:0 5px;margin-right:8px;vertical-align:2px}
.sel .item .m.internal{color:var(--ink-2);font-style:italic}
.sel .item .m.client-said{color:var(--ink);background:#fff;border-left:2px solid var(--taupe);padding:2px 8px;margin-top:4px}
.hbtns{display:flex;gap:10px;flex-wrap:wrap}
.attach{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.attach .f{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
label.check{display:flex;gap:8px;align-items:center;margin:8px 0;font-size:14px}
.bycat{margin:14px 0 0;max-width:620px}
.bycat summary{cursor:pointer;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.bycat td{font-size:13px;padding:6px 10px}
.empty{grid-column:1/-1;padding:36px;text-align:center;color:var(--muted);border:1px dashed var(--linen);background:#fff}

/* dialogs */
dialog{border:1px solid var(--taupe);padding:0;max-width:760px;width:calc(100% - 32px);background:var(--paper);color:var(--ink)}
dialog::backdrop{background:rgba(38,38,38,.35)}
dialog .dh{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border-bottom:1px solid var(--linen)}
dialog .db{padding:18px 22px;max-height:70vh;overflow:auto}
dialog .df{display:flex;justify-content:space-between;gap:10px;padding:14px 22px;border-top:1px solid var(--linen)}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.cols3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 16px}
.imgbox{display:flex;gap:14px;align-items:center;margin-bottom:12px}
.imgbox .thumb{width:140px;border:1px solid var(--line)}
.note{font-size:12.5px;color:var(--ink-2);background:#fff;border-left:2px solid var(--taupe);padding:8px 12px;margin:0 0 12px}
.note.err{border-left-color:var(--alert);color:var(--alert)}
.pick{display:flex;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);cursor:pointer}
.pick:hover{background:#fff}
.pick img,.pick .ph{width:44px;height:44px;object-fit:contain;border:1px solid var(--line);background:#fff}
.hist{font-size:12px;color:var(--ink-2);border-bottom:1px solid var(--line);padding:6px 0}

/* login */
.login{max-width:360px;margin:12vh auto 0;padding:0 24px}
.login img{height:70px;display:block;margin:0 auto 28px}

.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:10px 18px;font-size:13px;z-index:50}
.toast.err{background:var(--alert)}

/* client link page (/c/<token>): no login, no cost, one card per line with Approve / Request a change */
.cl-top{border-bottom:1px solid var(--linen);background:var(--paper)}
.cl-top .in{max-width:1080px;margin:0 auto;padding:14px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.cl-top img{height:44px;display:block}
.cl main{max-width:1080px}
.cl .intro{color:var(--ink-2);max-width:640px}
.cl .summary{display:flex;gap:34px;flex-wrap:wrap;margin:18px 0 6px}
.cl .line{display:grid;grid-template-columns:120px 1fr 220px;gap:18px;padding:18px 0;border-bottom:1px solid var(--line)}
.cl .line .pic img,.cl .line .pic .ph{width:120px;height:120px;object-fit:contain;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-style:italic;color:var(--linen);font-size:24px}
.cl .line .n{font-family:var(--serif);font-size:18px;line-height:1.25}
.cl .line .m{font-size:13px;color:var(--muted)}
.cl .line .pr{font-variant-numeric:lining-nums tabular-nums;margin-top:6px}
.cl .act{display:flex;flex-direction:column;gap:8px;align-items:stretch}
.cl .badge{font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:4px 8px;border:1px solid var(--linen);text-align:center}
.cl .badge.Approved{color:#2f5d3a;border-color:#2f5d3a}.cl .badge.Revise{color:var(--alert);border-color:var(--alert)}
.cl .said{font-size:12.5px;color:var(--ink-2)}
.cl footer{margin-top:40px;color:var(--muted);font-size:12.5px}
@media (max-width:760px){
  .cl-top .in{padding:12px 16px}
  .cl .line{grid-template-columns:84px 1fr}
  .cl .line .pic img,.cl .line .pic .ph{width:84px;height:84px}
  .cl .act{grid-column:1/-1}
}

/* print: selections sheet only, letter landscape, Bella Domus header */
.print-only{display:none}
@media print{
  @page{size:11in 8.5in;margin:.45in .5in}
  body{background:#fff;font-size:10pt}
  .top,.no-print,.toolbar,dialog{display:none!important}
  .print-only{display:block}
  main{padding:0;max-width:none}
  .ph-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--taupe);padding-bottom:10px;margin-bottom:14px}
  .ph-head img{height:.55in}
  .ph-head .lbl{text-align:right;font-size:8pt;letter-spacing:.22em;text-transform:uppercase;color:var(--taupe)}
  .room{break-inside:auto;margin-top:18px}
  tr{break-inside:avoid}
  .sel select.st,.sel input.qty{border:0;background:none;padding:0;appearance:none}
  body.client-print .team-col{display:none}
  .cl-top,.cl .act button,.cl .act textarea{display:none!important}
  .cl .line{grid-template-columns:90px 1fr 160px;break-inside:avoid}
}

@media (max-width:760px){
  .top .in{padding:10px 16px;gap:14px;flex-wrap:wrap}
  .top nav{order:3;flex-basis:100%}
  main{padding:20px 16px 60px}
  h1{font-size:27px}
  .cols,.cols3{grid-template-columns:1fr}
  .grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
  .sel thead{display:none}
  .sel tr{display:grid;grid-template-columns:64px 1fr;gap:4px 10px;padding:10px 0;border-bottom:1px solid var(--line)}
  .sel td{border:0;padding:0}
  .sel td.pic{grid-row:span 8}
  .sel td[data-k]::before{content:attr(data-k) ': ';color:var(--muted);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
  .sel td.r{text-align:left}
  .jobs thead{display:none}
  .jobs tr{display:block;padding:10px 0;border-bottom:1px solid var(--line)}
  .jobs td{display:block;border:0;padding:1px 0}
}
