/* =====================================================================
   3OAK ADMIN — locked design system
   blue #4682B4 · yellow #FFCD00 · white #FFFFFF · red #E23B3B
   gray #CDD0D6 · bg #0A0A0B->#4A4A52 · 2px blue borders -> yellow on
   hover/active · buttons black + blue border -> yellow, white text
   always, small · blue scrollbars -> yellow · page never scrolls,
   inner containers do. Poppins is self-hosted in the real build.
   ===================================================================== */
:root{
  --blue:#4682B4; --yellow:#FFCD00; --white:#FFFFFF; --red:#E23B3B;
  --gray:#CDD0D6; --bg1:#0A0A0B; --bg2:#4A4A52; --panel:#141417;
  --panel2:#101013; --field:#0D0D0F; --line:#2a2a30;
  --rowline:rgba(70,130,180,.80);   /* table row dividers — brighter, on-brand */
}
*{box-sizing:border-box;}
html,body{height:100%;margin:0;}
body{
  font-family:'Poppins',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  color:var(--gray);
  background:linear-gradient(135deg,var(--bg1),var(--bg2));
  overflow:hidden;                 /* the page itself never scrolls */
}
*{scrollbar-width:thin;scrollbar-color:var(--blue) transparent;}
*::-webkit-scrollbar{width:10px;height:10px;}
*::-webkit-scrollbar-track{background:transparent;}
*::-webkit-scrollbar-thumb{background:var(--blue);border-radius:6px;}
*::-webkit-scrollbar-thumb:hover{background:var(--yellow);}

/* ---- buttons ---- */
.btn{
  padding:7px 13px; font-size:12.5px; font-weight:600; font-family:inherit; cursor:pointer;
  color:var(--white)!important; background:#000; border:2px solid var(--blue);
  border-radius:8px; transition:border-color .12s ease; white-space:nowrap; text-decoration:none;
}
.btn:hover,.btn:active,.btn:focus{ border-color:var(--yellow); color:var(--white); }
.btn.sm{ padding:6px 12px; font-size:12px; }
.btn.mini{ padding:6px 12px; font-size:12px; }
.btn.danger{ border-color:#7a2a2a; }
.btn.danger:hover{ border-color:var(--red); }
form.inline{ margin:0; }

/* ---- banners ---- */
.banner{ margin-bottom:16px; padding:9px 12px; border-radius:8px; font-size:12.5px; line-height:1.35; }
.banner.err{ border:2px solid var(--red); color:#ffd7d7; background:rgba(226,59,59,.08); }
.banner.info{ border:2px solid var(--blue); color:var(--gray); background:rgba(70,130,180,.10); }

/* =====================================================================
   LOGIN / centered-card pages
   ===================================================================== */
body.centered{ display:flex; align-items:center; justify-content:center; padding:16px; }
.card{
  width:min(92vw,380px); background:var(--panel);
  border:2px solid var(--blue); border-radius:12px; padding:28px 26px;
  box-shadow:0 12px 40px rgba(0,0,0,.5); transition:border-color .12s ease;
}
.card:hover{ border-color:var(--yellow); }
.brand-c{ text-align:center; }
.card .logo{ color:var(--yellow); font-weight:700; letter-spacing:.5px; font-size:22px; }
.card .sub{ color:var(--gray); font-size:12px; opacity:.8; margin-top:2px; }
.card h1{ color:var(--white); font-size:16px; font-weight:600; margin:20px 0 4px; text-align:center; }
label{ display:block; font-size:12px; color:var(--gray); margin:14px 0 6px; }
input[type=text],input[type=password]{
  width:100%; padding:10px 12px; font-size:14px; font-family:inherit;
  color:var(--white); background:var(--field); border:2px solid var(--blue);
  border-radius:8px; outline:none; transition:border-color .12s ease;
}
input[type=text]:focus,input[type=password]:focus{ border-color:var(--yellow); }
.card .btn{ width:100%; margin-top:20px; padding:9px 14px; font-size:13px; }

/* =====================================================================
   SHELL (sidebar + main)
   ===================================================================== */
.app{ display:flex; height:100vh; padding:14px; gap:14px; }

.sidebar{
  flex:0 0 224px; display:flex; flex-direction:column;
  background:var(--panel); border:2px solid var(--blue); border-radius:12px;
  overflow:hidden; transition:border-color .12s ease;
}
.sidebar:hover{ border-color:var(--yellow); }
.brand{ padding:14px 18px 10px; border-bottom:1px solid var(--line); }
.brand .logo{ color:var(--yellow); font-weight:700; font-size:18px; letter-spacing:.5px; }
.brand .sub{ color:var(--gray); font-size:11px; opacity:.8; margin-top:2px; }
nav{ padding:7px 8px; overflow:auto; flex:1; }

/* section header (category title) */
.navsec{ margin-top:7px; }
.navsec:first-of-type{ margin-top:2px; }
.navsec-t{ padding:3px 10px 3px; color:var(--gray); font-size:10px; font-weight:700;
  text-transform:uppercase; letter-spacing:.6px; opacity:.6; }

/* nav link — light by default, yellow accent when active */
.navlink{
  display:flex; align-items:center; gap:9px;
  padding:6px 10px; margin-bottom:1px; border-radius:8px; text-decoration:none;
  color:var(--gray); font-size:12.5px; font-weight:500;
  border-left:3px solid transparent;
  transition:color .12s ease, background .12s ease, border-color .12s ease;
}
.navlink svg{ width:15px; height:15px; flex:0 0 15px; stroke:currentColor; fill:none; stroke-width:1.8; }
.navlink:hover{ color:var(--white); background:rgba(70,130,180,.14); }
.navlink.active{ color:var(--white); background:rgba(255,205,0,.10); border-left-color:var(--yellow); }
.navlink.sub{ margin-left:12px; padding-left:12px; font-size:12px; }

/* distinct Dashboard (home) link — a boxed button above the sections */
.navlink.home{ border:2px solid var(--blue); padding:8px 10px; margin-bottom:8px;
  color:var(--white); font-weight:600; }
.navlink.home:hover{ border-color:var(--yellow); background:transparent; }
.navlink.home.active{ border-color:var(--yellow); background:rgba(255,205,0,.10); }

.main{
  flex:1; display:flex; flex-direction:column; min-width:0;
  background:var(--panel); border:2px solid var(--blue); border-radius:12px;
  overflow:hidden; transition:border-color .12s ease;
}
.main:hover{ border-color:var(--yellow); }
.topbar{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:14px 20px; border-bottom:2px solid var(--blue);
}
.topbar h1{ color:var(--white); font-size:17px; font-weight:600; margin:0; }
.topbar .right{ display:flex; align-items:center; gap:14px; }
.who{ font-size:12px; color:var(--gray); }
.who b{ color:var(--white); font-weight:600; }
.chip{ display:inline-block; color:var(--yellow); border:2px solid var(--blue);
  border-radius:20px; padding:2px 10px; font-size:11px; margin-left:6px; }
.hamb{ display:none; }

.content{ padding:22px; overflow:auto; flex:1; }   /* inner scroll */
.content h2{ color:var(--white); font-size:16px; margin:0 0 4px; }
.content .lead{ font-size:13px; color:var(--gray); margin:0 0 18px; }

/* page heading row with a right-aligned live clock (Dashboard) */
.page-head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; margin:0 0 4px; }
.page-head h2{ margin:0; }
.live-clock{ color:var(--gray); font-size:12.5px; font-variant-numeric:tabular-nums; white-space:nowrap; letter-spacing:.2px; }
.live-clock b{ color:var(--white); font-weight:600; }
.live-clock .zone{ color:var(--yellow); }

/* stat cards */
.cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; margin-bottom:22px; }
.stat{ background:var(--panel2); border:2px solid var(--blue); border-radius:11px; padding:15px 16px; transition:border-color .12s ease; }
.stat:hover{ border-color:var(--yellow); }
.stat .n{ color:var(--white); font-size:24px; font-weight:700; }
.stat .l{ color:var(--gray); font-size:12px; margin-top:3px; }

/* tables */
table{ width:100%; border-collapse:collapse; font-size:13px; }
th,td{ text-align:left; padding:9px 11px; border-bottom:1px solid var(--rowline); }
th{ color:var(--gray); font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:.4px; }
td{ color:var(--white); }
td .muted, .muted{ color:var(--gray); }
tr.unread td:first-child{ box-shadow:inset 3px 0 0 var(--yellow); }
.badge{ display:inline-block; font-size:11px; padding:2px 9px; border-radius:20px; border:2px solid var(--blue); color:var(--gray); }
.badge.new{ border-color:var(--yellow); color:var(--yellow); }

/* panels */
.panel{ background:var(--panel2); border:2px solid var(--blue); border-radius:11px; padding:16px; transition:border-color .12s ease; }
.panel:hover{ border-color:var(--yellow); }
.placeholder{ color:var(--gray); font-size:13px; line-height:1.6; }
.placeholder .chip{ margin:0 0 10px; }
.empty{ color:var(--gray); font-size:13px; padding:8px 2px; }

/* forms on management pages */
.section{ margin-top:26px; border-top:2px solid var(--blue); padding-top:16px; }
.section h3{ color:var(--white); font-size:14px; margin:0 0 12px; }
.fieldrow{ display:flex; gap:10px; flex-wrap:wrap; align-items:end; }
.fieldrow > div{ display:flex; flex-direction:column; }
.fieldrow label{ margin:0 0 5px; }
.fieldrow input,.fieldrow select{
  padding:8px 10px; font-size:13px; font-family:inherit; color:var(--white);
  background:var(--field); border:2px solid var(--blue); border-radius:8px; outline:none;
}
.fieldrow input:focus,.fieldrow select:focus{ border-color:var(--yellow); }
.rowacts{ display:flex; gap:6px; flex-wrap:wrap; }

@media (max-width:820px){
  .app{ padding:10px; gap:10px; }
  .sidebar{
    position:fixed; z-index:30; top:10px; bottom:10px; left:10px; width:224px; flex-basis:224px;
    transform:translateX(-260px); transition:transform .2s ease,border-color .12s ease;
  }
  .app.nav-open .sidebar{ transform:translateX(0); }
  .hamb{ display:inline-flex; align-items:center; justify-content:center; }
  .who{ display:none; }
}

/* ---- inquiry detail + delete icon ---- */
.link{ color:var(--blue); text-decoration:none; }
.link:hover{ color:var(--yellow); }
.backlink{ display:inline-block; margin-bottom:14px; color:var(--gray); text-decoration:none; font-size:13px; }
.backlink:hover{ color:var(--white); }
.kv{ display:grid; grid-template-columns:150px 1fr; gap:9px 16px; font-size:13.5px; margin:0 0 18px; }
.kv dt{ color:var(--gray); }
.kv dd{ color:var(--white); margin:0; }
.msg{ background:var(--field); border:2px solid var(--blue); border-radius:9px; padding:14px;
  color:var(--white); font-size:13.5px; line-height:1.55; white-space:pre-wrap; }
.detail-actions{ display:flex; gap:8px; margin-top:18px; flex-wrap:wrap; }
/* red ✘ delete marker — the one intentional exception to white-only button text */
.xdel{ color:var(--red); font-weight:700; margin-right:6px; }

/* ---- client / entity form ---- */
.eform{ display:flex; flex-wrap:wrap; gap:14px 16px; margin-bottom:8px; }
.eform .f{ display:flex; flex-direction:column; }
.eform .f label{ margin:0 0 5px; }
.eform .f input{ width:100%; }
.eform .f.name{ flex:1 1 240px; max-width:320px; }
.eform .f.phone{ flex:0 1 170px; }
.eform .f.email{ flex:1 1 240px; max-width:320px; }
.eform .f.street{ flex:1 1 100%; max-width:420px; }
.eform .f.city{ flex:1 1 170px; max-width:220px; }
.eform .f.state{ flex:0 1 70px; }
.eform .f.zip{ flex:0 1 110px; }
.toolbar{ display:flex; gap:10px; align-items:center; justify-content:space-between; flex-wrap:wrap; margin-bottom:14px; }
.searchbox{ display:flex; gap:8px; }
.searchbox input{ width:220px; }
@media (max-width:560px){ .searchbox input{ width:150px; } }

/* =====================================================================
   CALENDAR
   ===================================================================== */
.cal-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.cal-nav{ display:flex; align-items:center; gap:8px; }
.cal-title{ color:var(--white); font-size:16px; font-weight:600; min-width:150px; text-align:center; }
.cal-views{ display:flex; gap:8px; }

.legend{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:14px; }
.legend .lg{ display:flex; align-items:center; gap:6px; font-size:11.5px; color:var(--gray); }
.legend .dot{ width:11px; height:11px; border-radius:50%; background:var(--stc); }

.st-paid{   --stc:#3FB56B; }
.st-booked{ --stc:#4682B4; }
.st-quoted{ --stc:#FFCD00; }
.st-new{    --stc:#8A8F98; }
.st-comp{   --stc:#9D7CD8; }

.cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.cal-dow{ text-align:center; color:var(--gray); font-size:11px; text-transform:uppercase; letter-spacing:.4px; padding:2px 0 4px; }
.cal-cell{ min-height:104px; background:var(--panel2); border:2px solid var(--blue); border-radius:9px; padding:5px 6px; overflow:hidden; transition:border-color .12s ease; }
.cal-cell.dim{ opacity:.4; }
.cal-cell.today{ border-color:var(--yellow); }
.cal-daynum{ display:flex; justify-content:space-between; align-items:center; font-size:12px; color:var(--gray); margin-bottom:4px; }
.cal-add{ cursor:pointer; color:var(--gray); border:2px solid transparent; border-radius:6px; padding:0 6px; font-size:14px; line-height:1.2; background:none; font-family:inherit; }
.cal-add:hover{ border-color:var(--blue); color:var(--white); }

.evchip{ display:block; border-left:4px solid var(--stc); background:#0d0d0f; color:var(--white)!important;
  font-size:11px; padding:2px 6px; border-radius:4px; margin-bottom:3px; text-decoration:none;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.evchip:hover{ background:#17171b; }
.notechip{ display:block; width:100%; text-align:left; border:none; border-left:4px solid var(--red);
  background:#141417; color:var(--gray); font-size:10.5px; padding:2px 6px; border-radius:4px;
  margin-bottom:3px; cursor:pointer; font-family:inherit; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.notechip:hover{ color:var(--white); }
.notechip .nt{ opacity:.7; }

.stbadge{ display:inline-block; font-size:11px; padding:2px 9px; border-radius:20px; border:2px solid var(--stc); color:var(--stc); }

/* modal */
.modal-overlay{ position:fixed; inset:0; background:rgba(0,0,0,.6); display:none; align-items:center; justify-content:center; z-index:50; padding:16px; }
.modal-overlay.open{ display:flex; }
.modal-box{ width:min(94vw,420px); background:var(--panel); border:2px solid var(--blue); border-radius:12px; padding:22px; }
.modal-box h3{ color:var(--white); margin:0 0 6px; font-size:15px; }
.modal-box .modal-sub{ color:var(--gray); font-size:12px; margin:0 0 8px; }
.modal-box label{ display:block; margin:12px 0 5px; font-size:12px; color:var(--gray); }
.modal-box input, .modal-box textarea{ width:100%; padding:9px 11px; font-size:13px; font-family:inherit;
  color:var(--white); background:var(--field); border:2px solid var(--blue); border-radius:8px; outline:none; }
.modal-box textarea{ min-height:70px; resize:vertical; }
.modal-box input:focus, .modal-box textarea:focus{ border-color:var(--yellow); }
.modal-actions{ display:flex; gap:8px; margin-top:16px; flex-wrap:wrap; align-items:center; }

@media (max-width:720px){
  .cal-cell{ min-height:78px; }
  .evchip,.notechip{ font-size:10px; }
}

/* ---- events list controls ---- */
.ev-controls{ display:flex; gap:10px; align-items:center; justify-content:space-between; flex-wrap:wrap; margin-bottom:14px; }
.ev-right{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.ev-seg{ display:inline-flex; gap:6px; }
.btn.active{ border-color:var(--yellow); }

/* ---- 12-hour time picker ---- */
.timepick{ display:flex; gap:6px; }
.timepick select{ padding:8px 8px; font-size:13px; font-family:inherit; color:var(--white);
  background:var(--field); border:2px solid var(--blue); border-radius:8px; outline:none; }
.timepick select:focus{ border-color:var(--yellow); }
.timepick .tp-h, .timepick .tp-ap{ width:56px; }
.timepick .tp-m{ width:62px; }

/* ---- price list ---- */
.pl-sheet{ max-width:820px; }
.pl-print-head{ display:none; }
.pl-search{ padding:6px 10px; font-size:12px; font-family:inherit; color:var(--white);
  background:var(--field); border:2px solid var(--blue); border-radius:8px; outline:none; }
.pl-search:focus{ border-color:var(--yellow); }
.pl-cat{ margin-bottom:20px; }
.pl-cat-h{ color:var(--yellow); font-size:14px; font-weight:700; margin:0 0 4px;
  padding-bottom:5px; border-bottom:2px solid var(--blue); }
.pl-table{ width:100%; border-collapse:collapse; }
.pl-table td{ padding:7px 10px; border-bottom:1px solid var(--rowline); color:var(--white); font-size:13.5px; }
.pl-table td.pl-rate{ text-align:right; color:var(--yellow); font-weight:600; white-space:nowrap; width:120px; }
.pl-star{ color:var(--yellow); }
.pl-empty{ color:var(--gray); font-size:13px; padding:10px 2px; }

@media print {
  .pl-print-head{ display:block !important; text-align:center; font-weight:700; font-size:16px; color:#000 !important; letter-spacing:.5px; margin-bottom:16px; }
  .pl-cat{ break-inside:avoid; }
  .pl-cat-h{ color:#000 !important; border-bottom:2px solid #000 !important; }
  .pl-table td{ color:#000 !important; border-bottom:1px solid #999 !important; }
  .pl-table td.pl-rate{ color:#000 !important; }
  .pl-star{ color:#000 !important; }
  .pl-table tr{ break-inside:avoid; }
}

/* ---- events line-item builder ---- */
.li-table{ width:100%; border-collapse:collapse; }
.li-table th{ color:var(--gray); font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:.4px; text-align:left; padding:0 6px 6px; }
.li-table td{ padding:4px 6px; border-bottom:1px solid var(--rowline); }
.li-table input{ width:100%; padding:6px 8px; font-size:13px; font-family:inherit; color:var(--white);
  background:var(--field); border:2px solid var(--blue); border-radius:7px; outline:none; }
.li-table input:focus{ border-color:var(--yellow); }
.li-table input.li-num{ text-align:right; }
.li-rm{ background:none; border:none; cursor:pointer; color:var(--red); font-weight:700; font-size:14px; line-height:1; padding:4px; }
label.ck{ display:inline-flex; align-items:center; gap:7px; font-size:12.5px; color:var(--gray); margin:0; cursor:pointer; }
label.ck input{ width:15px; height:15px; accent-color:var(--blue); }
.li-summary{ margin-top:18px; border-top:2px solid var(--blue); padding-top:14px;
  display:grid; grid-template-columns:1fr auto; gap:6px 24px; max-width:340px; font-size:13px; }
.li-summary .lbl{ color:var(--gray); }
.li-summary .val{ color:var(--white); text-align:right; font-variant-numeric:tabular-nums; }
.li-summary .grand{ color:var(--yellow); font-weight:700; font-size:14px; }

/* Two money panels side by side: the booking on the left (do they owe me),
   what was actually made on the right. They wrap on narrow screens. */
.fin-pair{ display:flex; gap:32px; flex-wrap:wrap; align-items:flex-start; }
.fin-pair > .li-summary{ flex:0 1 340px; }
.li-summary.made .head{ color:var(--yellow); font-weight:700; font-size:12px;
  text-transform:uppercase; letter-spacing:.5px; padding-bottom:4px; }

/* ---- calendar day number link ---- */
.cal-daylink{ color:var(--gray); text-decoration:none; }
.cal-daylink:hover{ color:var(--yellow); }

/* ---- daily schedule (calendar day view) ---- */
.sched{ max-width:900px; }
.sched-head{ text-align:center; margin-bottom:16px; }
.sched-biz{ color:var(--yellow); font-weight:700; letter-spacing:1px; font-size:15px; }
.sched-date{ color:var(--white); font-size:18px; font-weight:600; margin-top:2px; }
.sched-notes{ border:2px solid var(--blue); border-radius:10px; padding:12px 14px; margin-bottom:16px; background:var(--panel2); }
.sched-note{ font-size:13px; color:var(--gray); padding:4px 0; }
.sched-note-t{ color:var(--white); font-weight:600; }
.sched-note-d{ margin-top:3px; }
.sched-card{ border:2px solid var(--blue); border-radius:11px; background:var(--panel2); padding:14px 16px; margin-bottom:12px; }
.sched-card.pickup{ border-color:var(--yellow); }
.sched-card-top{ display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.sched-check{ width:16px; height:16px; border:2px solid var(--gray); border-radius:3px; flex:0 0 16px; }
.sched-time{ color:var(--yellow); font-weight:700; font-size:14px; font-variant-numeric:tabular-nums; }
.sched-client{ margin-left:auto; color:var(--white); font-weight:600; font-size:15px; text-decoration:none; }
.sched-client:hover{ color:var(--yellow); }
.sched-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:8px 18px; font-size:13px; color:var(--white); }
.sched-grid .wide{ grid-column:1 / -1; }
.sched-grid .label, .sched-items .label, .sched-cardnotes .label{ color:var(--gray); font-size:10.5px; text-transform:uppercase; letter-spacing:.4px; }
.sched-grid .label{ display:block; margin-bottom:1px; }
.sched-items{ margin-top:12px; border-top:1px solid var(--rowline); padding-top:10px; }
.sched-items .label{ display:inline-block; margin-bottom:5px; }
.sched-item{ display:flex; justify-content:space-between; font-size:13px; color:var(--white); padding:2px 0; }
.sched-cardnotes{ margin-top:12px; border-top:1px solid var(--rowline); padding-top:10px; font-size:13px; color:var(--white); }
.sched-footer{ text-align:right; color:var(--gray); font-size:13px; margin-top:14px; padding-top:12px; border-top:2px solid var(--blue); }
.sched-daytotal{ color:var(--yellow); font-weight:700; }

@media print {
  .sidebar, .topbar, .cal-toolbar, .no-print, .backlink{ display:none !important; }
  .app, .main, .content{ display:block !important; height:auto !important; overflow:visible !important; border:none !important; background:#fff !important; padding:0 !important; }
  body{ background:#fff !important; color:#000 !important; }
  .sched-biz, .sched-date, .sched-time, .sched-daytotal, .sched-client{ color:#000 !important; }
  .sched-card, .sched-notes{ border:1px solid #000 !important; background:#fff !important; break-inside:avoid; }
  .sched-card.pickup{ border:2px solid #000 !important; }
  .sched-grid, .sched-item, .sched-cardnotes, .sched-note{ color:#000 !important; }
  .sched-grid .label, .sched-items .label, .sched-cardnotes .label, .sched-footer, .muted{ color:#333 !important; }
  .sched-check{ border-color:#000 !important; }
}


/* ---- Toolbar / search-row uniformity ----
   Every control in a search or filter row is exactly 30px tall (2px border),
   search boxes are 220px wide, and buttons match — so rows line up cleanly. */
.searchbox input, .lg-tools input, .cl-tools input, .inv-tools input, .flt input, .flt select,
.pl-head-tools input,
.searchbox .btn, .lg-tools .btn, .cl-tools .btn, .inv-tools .btn, .flt .btn, .pl-head-tools .btn{
  height:30px !important; box-sizing:border-box !important; border-width:2px !important;
}
.searchbox input, .lg-tools input, .cl-tools input, .inv-tools input, .flt input, .flt select,
.pl-head-tools input{
  padding:0 12px !important; font-size:13px !important;
}
.searchbox input,
.lg-tools input[type=text], .cl-tools input[type=text], .inv-tools input[type=text],
.pl-head-tools input[type=text]{
  width:220px !important; flex:0 0 auto !important; min-width:0 !important;
}
.searchbox, .lg-tools form, .cl-tools form, .inv-tools form,
.pl-head-tools{ align-items:center !important; }

/* ---- Uniform button height everywhere: 30px tall, 2px border ---- */
.btn, .btn.mini, .btn.sm, .card .btn{
  height:30px !important; line-height:26px !important;
  padding-top:0 !important; padding-bottom:0 !important;
  box-sizing:border-box !important; border-width:2px !important;
}

/* ---- "+ Add ..." buttons ----
   Two sizes site-wide, no exceptions: 30px for every button, 60px for the
   "+ Add ..." ones so the create action stands out. Applies wherever an
   "+ Add" lives, including inside panels. Use <a class="btn big"> or
   <button class="btn big">. Must stay after the 30px rule to win.
   Never set a button height on a page — change it here instead. */
.btn.big, .btn.mini.big, .btn.sm.big{
  height:60px !important; line-height:normal !important;
  display:inline-flex !important; align-items:center; justify-content:center;
  padding:0 26px !important; font-size:16px !important;
  border-width:2px !important;
}

/* ---- Links inside line-item tables are yellow (buttons keep their style) ---- */
table a:not(.btn){ color:var(--yellow,#FFCD00) !important; text-decoration:none; }
table a:not(.btn):hover{ text-decoration:underline; }

/* =========================================================================
   Title Case — headings, sub-heads, labels and buttons across the admin.
   Note: CSS `capitalize` only raises the FIRST letter of each word; it can't
   lowercase text that PHP already ran through strtoupper(). Those (status
   badges, agreement states, inventory categories, document output) still
   render uppercase until the PHP is changed.
   ========================================================================= */
h1, h2, h3, h4, h5, h6,
.lead, .ctitle, .navsec-t,
label, th,
.btn, button,
.stat .l, .sd-sub, .lb-hint,
.cal-dow,
.sched-grid .label, .sched-items .label, .sched-cardnotes .label {
  text-transform: capitalize !important;
}

/* leave these exactly as typed / stored */
.who, .who b, .chip, .badge, .bdg, .stbadge,
input, select, textarea, option,
code, pre,
.msg, .note, .note .meta,
td, dd, .empty,
a[href^="mailto:"], .mailbtn {
  text-transform: none !important;
}
