/* Finhive admin + customer area — shares the site's warm palette */
:root{
  --ink:#14120f; --ink-soft:rgba(20,18,15,.64); --ink-faint:rgba(20,18,15,.42);
  --cream:#faf8f5; --ivory:#f6f1e7; --white:#fff; --line:#e6e1d6; --line-strong:#d6d0c2;
  --orange:#d97706; --orange-deep:#b45f04; --danger:#b42318; --ok:#157347;
  --sidebar:#14120f; --radius:12px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:'Manrope',system-ui,sans-serif;background:var(--cream);color:var(--ink);font-size:14.5px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit}
h1,h2,h3{letter-spacing:-.01em}
:focus-visible{outline:2px solid var(--orange);outline-offset:2px}

/* ---------- shell ---------- */
.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
.side{background:var(--sidebar);color:#e9e4d9;padding:22px 14px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh;overflow:auto}
.side-brand{padding:4px 10px 18px}
.side-brand img{height:28px;display:block;filter:brightness(0) invert(1)}
.side-brand small{display:block;margin-top:8px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#b9ad95;font-weight:700}
.side a.nav{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:9px;text-decoration:none;font-weight:600;color:#d8d2c4}
.side a.nav:hover{background:#26231e}
.side a.nav.is-active{background:var(--orange);color:#fff}
.side .count{background:#3a352c;color:#f3c58a;border-radius:99px;font-size:11.5px;font-weight:800;padding:1px 8px}
.side a.nav.is-active .count{background:rgba(255,255,255,.25);color:#fff}
.side-sep{height:1px;background:#2d2a24;margin:10px 6px}
.side-foot{margin-top:auto;padding:12px 10px 0;border-top:1px solid #2d2a24;font-size:12.5px;color:#b9ad95}
.side-foot b{display:block;color:#fff;font-size:13.5px}
.side-foot a{color:#f3c58a;text-decoration:none;font-weight:700}
.main{padding:30px clamp(18px,3vw,44px) 60px;min-width:0}
.topbar{display:none}

.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.page-head h1{font-size:26px;font-weight:800}
.page-head p{color:var(--ink-soft);margin-top:2px}
.crumb{font-size:13px;color:var(--ink-soft);margin-bottom:6px}
.crumb a{text-decoration:none;font-weight:700}
.crumb a:hover{color:var(--orange-deep)}

/* ---------- cards / tables ---------- */
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.card+.card{margin-top:18px}
.grid>.card,.grid>div>.card:first-child{margin-top:0}
.card h2{font-size:16px;font-weight:800;margin-bottom:14px}
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g-main{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:22px}
.stat{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;text-decoration:none;display:block;transition:border-color .15s,transform .15s}
.stat:hover{border-color:var(--orange);transform:translateY(-1px)}
.stat b{display:block;font-size:30px;font-weight:800;line-height:1.1}
.stat span{font-size:12.5px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}
.stat.is-hot b{color:var(--orange-deep)}

.table-wrap{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-weight:800;padding:12px 16px;background:#fbf9f4;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:13px 16px;border-bottom:1px solid #f0ebdf;vertical-align:top}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:#fdfbf7}
td .sub{display:block;color:var(--ink-soft);font-size:12.5px}
td a.rowlink{font-weight:700;text-decoration:none}
td a.rowlink:hover{color:var(--orange-deep);text-decoration:underline}
.empty{padding:44px 16px;text-align:center;color:var(--ink-soft)}
.nowrap{white-space:nowrap}

.badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:800;letter-spacing:.01em;white-space:nowrap}
.badge--green{background:#e3f3ea;color:#116036}.badge--amber{background:#fdf0d8;color:#8a5200}
.badge--blue{background:#e2edfb;color:#1b4f9c}.badge--red{background:#fbe6e3;color:#9b2216}
.badge--violet{background:#ece6fa;color:#52328f}.badge--grey{background:#eeebe3;color:#5d584c}

/* ---------- forms ---------- */
label.l{display:block;font-size:12.5px;font-weight:700;margin-bottom:6px}
.field{margin-bottom:16px}
.field .err{color:var(--danger);font-size:12.5px;font-weight:600;margin-top:5px}
.hint{font-size:12.5px;color:var(--ink-faint);margin-top:5px}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=search],input[type=number],select,textarea{
  width:100%;font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:8px;padding:10px 12px}
textarea{min-height:110px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(217,119,6,.14)}
.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}
.filters .f{min-width:150px}.filters .f.grow{flex:1;min-width:220px}
.filters label{display:block;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:4px}

.btn{display:inline-flex;align-items:center;gap:6px;font:inherit;font-weight:700;font-size:14px;padding:10px 16px;border-radius:8px;border:1px solid transparent;cursor:pointer;text-decoration:none;background:var(--ink);color:#fff;transition:background .15s}
.btn:hover{background:var(--orange-deep)}
.btn--ghost{background:#fff;color:var(--ink);border-color:var(--line-strong)}
.btn--ghost:hover{background:#f6f1e7}
.btn--ok{background:var(--ok)}.btn--ok:hover{background:#0f5a35}
.btn--danger{background:#fff;color:var(--danger);border-color:#e9b9b3}.btn--danger:hover{background:#fbe6e3}
.btn--sm{padding:6px 12px;font-size:13px}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
form.inline{display:inline}

.flash{padding:12px 16px;border-radius:10px;margin-bottom:18px;font-weight:600;border:1px solid}
.flash--success{background:#e8f5ee;border-color:#bfe0cc;color:#0f5a35}
.flash--error{background:#fbe9e6;border-color:#efc2bc;color:#8f1f14}
.flash--warning{background:#fff4dc;border-color:#f0d9a1;color:#7a4b00;word-break:break-word}

.dl{display:grid;grid-template-columns:150px 1fr;gap:10px 16px;margin:0}
.dl dt{color:var(--ink-soft);font-weight:700;font-size:13px}
.dl dd{margin:0;word-break:break-word}
.prose p{margin-bottom:10px}.prose ul{margin:0 0 10px 20px}
.msg{white-space:pre-wrap;background:#fbf9f4;border:1px solid var(--line);border-radius:10px;padding:14px;margin:0}
.timeline{list-style:none;margin:0;padding:0}
.timeline li{padding:12px 0 12px 18px;border-left:2px solid var(--line);position:relative}
.timeline li::before{content:"";position:absolute;left:-6px;top:17px;width:10px;height:10px;border-radius:50%;background:var(--orange)}
.timeline li.is-status::before{background:#8b86d8}
.timeline .meta{font-size:12.5px;color:var(--ink-soft)}
.timeline .body{white-space:pre-wrap;margin-top:2px}

.pager{display:flex;gap:6px;justify-content:center;margin-top:18px;flex-wrap:wrap}
.pager .pg{padding:7px 12px;border:1px solid var(--line-strong);border-radius:8px;text-decoration:none;font-weight:700;font-size:13px;background:#fff}
.pager .pg.is-current{background:var(--ink);color:#fff;border-color:var(--ink)}
.total{font-size:13px;color:var(--ink-soft);margin:0 0 10px}

/* ---------- login ---------- */
.auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(1000px 620px at 50% -12%,#f5e8da 0,rgba(245,232,218,0) 64%),var(--cream)}
.auth-card{width:100%;max-width:410px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:38px 34px 30px;box-shadow:0 26px 64px -34px rgba(20,18,15,.26)}
.auth-card img{height:30px;display:block;margin:0 auto 6px}
.auth-card .tag{text-align:center;font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-deep);margin-bottom:22px}
.auth-card h1{font-size:22px;text-align:center;margin-bottom:20px}
.auth-card .btn{width:100%;justify-content:center;padding:13px}

/* ---------- customer area ---------- */
.cust{max-width:1040px;margin:0 auto;padding:0 24px 64px}
.cust-nav{display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line);margin-bottom:34px;gap:14px;flex-wrap:wrap}
.cust-nav img{height:28px;display:block}
.cust-nav .who{display:flex;align-items:center;gap:16px;font-size:14px}
.cust-nav a{text-decoration:none;font-weight:700}.cust-nav a:hover{color:var(--orange-deep)}
.hero-card{background:linear-gradient(135deg,#1a1713,#2a241b);color:#fff;border-radius:18px;padding:34px;margin-bottom:22px}
.hero-card h1{font-size:28px;font-weight:800}.hero-card p{color:#d8d0bd;margin-top:6px;max-width:560px}
.chip{display:inline-block;margin-top:14px;padding:4px 12px;border-radius:99px;background:rgba(255,255,255,.12);font-size:12.5px;font-weight:700;color:#f3c58a}
.soon{border:1px dashed var(--line-strong);background:transparent;color:var(--ink-soft)}

@media (max-width:900px){
  .shell{grid-template-columns:1fr}
  .side{position:fixed;inset:0 auto 0 0;width:260px;transform:translateX(-100%);transition:transform .2s;z-index:30;height:100vh}
  #navtoggle:checked ~ .side{transform:none}
  .topbar{display:flex;align-items:center;justify-content:space-between;background:var(--sidebar);color:#fff;padding:12px 16px;position:sticky;top:0;z-index:20}
  .topbar label{cursor:pointer;font-weight:800;padding:4px 10px;border:1px solid #4a443a;border-radius:8px}
  .g2,.g3,.g-main,.row{grid-template-columns:1fr}
  .dl{grid-template-columns:1fr;gap:2px 0}.dl dd{margin-bottom:10px}
}

/* ---------- customer portal ---------- */
.cust-top{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:18px 0 0}
.cust-top img{height:28px;display:block}
.portal-tag{font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-deep);margin-left:12px;padding-left:12px;border-left:1px solid var(--line-strong)}
.cust-top .brand{display:flex;align-items:center;text-decoration:none}
.cust-top .who{font-size:14px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.cust-top .who a{font-weight:700;text-decoration:none}.cust-top .who a:hover{color:var(--orange-deep)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:14px 0 30px;overflow-x:auto}
.tabs a{padding:12px 16px;font-weight:700;text-decoration:none;color:var(--ink-soft);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:flex;gap:8px;align-items:center}
.tabs a:hover{color:var(--ink)}
.tabs a.is-on{color:var(--ink);border-bottom-color:var(--orange)}
.pill{background:var(--orange);color:#fff;border-radius:99px;font-size:11.5px;font-weight:800;padding:1px 8px}
.bar{height:8px;border-radius:99px;background:#eee9dd;overflow:hidden;margin:10px 0 6px}
.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--orange),#f0a23d);border-radius:99px}
.doc{display:grid;grid-template-columns:1fr auto;gap:10px 18px;align-items:center;padding:16px 0;border-bottom:1px solid #f0ebdf}
.doc:last-child{border-bottom:0}
.doc b{display:block}.doc .d{color:var(--ink-soft);font-size:13px}
.doc .rej{color:var(--danger);font-size:13px;font-weight:600;margin-top:4px}
.doc form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.doc input[type=file]{font-size:13px;max-width:230px}
.thread{display:flex;flex-direction:column;gap:12px;max-height:520px;overflow:auto;padding:4px 2px 12px}
.bubble{max-width:78%;padding:11px 15px;border-radius:14px;white-space:pre-wrap;word-break:break-word}
.bubble small{display:block;font-size:11.5px;opacity:.65;margin-top:4px}
.bubble.them{align-self:flex-start;background:#f3eee2;border-bottom-left-radius:4px}
.bubble.me{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:4px}
.bubble .who{display:block;font-size:12px;font-weight:800;margin-bottom:2px;opacity:.75}
.thread-empty{color:var(--ink-soft);text-align:center;padding:30px 0}
.compose{display:grid;gap:10px;margin-top:14px;border-top:1px solid var(--line);padding-top:16px}
.compose textarea{min-height:84px}
@media (max-width:640px){.doc{grid-template-columns:1fr}.bubble{max-width:92%}}
