/* LotLedger shared styles — mobile-first, max-width 480px */
*{box-sizing:border-box}
:root{
  --navy:#101e33;
  --navy-light:#1d3358;
  --green:#1a7f37;
  --green-bg:#e6f4ea;
  --amber:#b45309;
  --amber-bg:#fef3e2;
  --red:#c0392b;
  --red-bg:#fdecea;
  --bg:#f1f4f7;
  --card:#ffffff;
  --muted:#6b7280;
  --border:#dfe4ea;
  --radius:12px;
}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:#16202e;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  line-height:1.45;
}
.topbar{
  background:var(--navy);color:#fff;
  padding:14px 16px;position:sticky;top:0;z-index:10;
}
.topbar .inner{max-width:480px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:8px}
.brand{font-weight:800;font-size:20px;letter-spacing:.5px}
.brand small{display:block;font-weight:400;font-size:11px;color:#b9c6da;letter-spacing:.2px}
.wrap{max-width:480px;margin:0 auto;padding:14px 14px 40px}
h1{font-size:24px;margin:6px 0 10px}
h2{font-size:18px;margin:18px 0 8px}
h3{font-size:15px;margin:14px 0 6px}
p{margin:8px 0}
.muted{color:var(--muted);font-size:13px}
.card{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:14px;margin:10px 0;box-shadow:0 1px 2px rgba(16,30,51,.05);
}
.row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.btn{
  display:block;width:100%;min-height:52px;margin:10px 0;
  background:var(--navy);color:#fff;border:0;border-radius:12px;
  font-size:17px;font-weight:700;cursor:pointer;padding:12px 16px;
  text-decoration:none;text-align:center;
}
.btn:active{transform:scale(.99)}
.btn-green{background:var(--green)}
.btn-outline{background:#fff;color:var(--navy);border:2px solid var(--navy)}
.btn-danger{background:var(--red)}
.btn-sm{width:auto;min-height:44px;font-size:14px;margin:6px 0;padding:9px 14px;display:inline-block}
.btn:disabled{opacity:.45;cursor:default}
input[type=text],input[type=email],input[type=number],input[type=date],input[type=month],select,textarea{
  width:100%;min-height:48px;font-size:16px;padding:10px 12px;margin:6px 0;
  border:1.5px solid var(--border);border-radius:10px;background:#fff;color:#16202e;font-family:inherit;
}
textarea{min-height:96px;resize:vertical}
label{font-weight:700;font-size:14px;display:block;margin-top:8px}
.badge{
  display:inline-block;padding:4px 12px;border-radius:999px;
  font-size:13px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;
}
.badge-paid{background:var(--green-bg);color:var(--green)}
.badge-due{background:var(--amber-bg);color:var(--amber)}
.badge-overdue{background:var(--red-bg);color:var(--red)}
.badge-info{background:#e8eefb;color:var(--navy-light)}
.banner{
  border-radius:var(--radius);padding:12px 14px;margin:10px 0;font-size:14px;font-weight:600;
}
.banner-success{background:var(--green-bg);color:var(--green);border:1px solid #bfe3c9}
.banner-warn{background:var(--amber-bg);color:var(--amber);border:1px solid #f2d9a8}
.banner-error{background:var(--red-bg);color:var(--red);border:1px solid #f3c2bb}
.banner-draft{
  background:#fff3cd;color:#7a4d00;border:3px dashed #e0a800;
  font-size:16px;font-weight:800;text-align:center;
}
.tabs{display:flex;gap:6px;margin:12px 0}
.tabs .btn{min-height:46px;margin:0;font-size:14px;flex:1;padding:10px 4px}
.tabs .btn.active{background:#fff;color:var(--navy);border:2px solid var(--navy)}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--border)}
th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.4px}
.num{text-align:right;font-variant-numeric:tabular-nums}
.big-amount{font-size:32px;font-weight:800;margin:4px 0}
.stat-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:10px 0}
.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:10px 8px;text-align:center}
.stat .v{font-size:17px;font-weight:800}
.stat .l{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.msg{border-radius:10px;padding:10px 12px;margin:8px 0;font-size:15px;max-width:92%}
.msg.landlord{background:#e8eefb;margin-left:auto}
.msg.tenant{background:#f3f4f6}
.msg .who{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:2px}
.lease-text{font-family:Georgia,serif;font-size:15px;line-height:1.65;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin:10px 0}
.lease-text h2,.lease-text h3{font-family:inherit}
#sigpad{width:100%;height:180px;border:2px dashed var(--navy);border-radius:12px;background:#fff;touch-action:none;display:block;cursor:crosshair}
.hidden{display:none!important}
footer{max-width:480px;margin:0 auto;padding:0 14px 30px;color:var(--muted);font-size:12px;text-align:center}
ul.plain{list-style:none;padding:0;margin:8px 0}
ul.plain li{padding:10px 0;border-bottom:1px solid var(--border)}
.clickable{cursor:pointer}
.card.clickable:active{background:#f6f8fb}
.toggle{display:flex;gap:8px;margin:6px 0}
.toggle .btn{flex:1;min-height:46px;font-size:15px;margin:0}
.toggle .btn.active{background:#fff;color:var(--navy);border:2px solid var(--navy)}
/* --- tenant portal (2026-10-25 pass): bottom tab bar + balance hero --- */
.has-tabbar{padding-bottom:96px}
.tabbar{
  position:fixed;left:0;right:0;bottom:0;z-index:20;
  background:#fff;border-top:1px solid var(--border);
  display:flex;max-width:480px;margin:0 auto;
  padding-bottom:env(safe-area-inset-bottom);
  box-shadow:0 -2px 8px rgba(16,30,51,.06);
}
.tabbar button{
  flex:1;background:none;border:0;cursor:pointer;
  min-height:60px;padding:6px 2px 8px;
  font-size:12px;font-weight:700;color:var(--muted);font-family:inherit;
}
.tabbar button .ic{display:block;font-size:22px;line-height:1.2}
.tabbar button.active{color:var(--navy)}
.card.hero{text-align:left}
.card.hero .big-amount{font-size:40px}
.card.owe .btn{margin-bottom:2px}
.owe-amt{font-size:19px;white-space:nowrap}
.hist-row{padding:8px 0;border-bottom:1px solid var(--border)}
.hist-row:last-child{border-bottom:0}

/* --- i18n: EN | ES header toggle (all pages) --- */
.lang-toggle{display:flex;border:1.5px solid rgba(255,255,255,.45);border-radius:999px;overflow:hidden;flex:none}
.lang-toggle button{
  background:transparent;color:#cfd9e8;border:0;cursor:pointer;
  padding:6px 12px;font-size:13px;font-weight:800;letter-spacing:.4px;font-family:inherit;
}
.lang-toggle button.active{background:#fff;color:var(--navy)}
