/* ==========================================================================
   PG Manager - LIGHT theme. White paper, light blue accent.
   Loaded after the inline <style> in index.html, so it wins with !important.
   ========================================================================== */
:root{
  --paper:#F7FAFF;
  --paper-2:#EEF4FE;
  --sheet:#FFFFFF;
  --line:#E2EBF8;
  --line-2:#CFDFF3;
  --ink:#0F1B2D;
  --ink-2:#3F5670;
  --ink-3:#6B819A;
  --ink-4:#93A6BC;
  --blue:#2E90FA;
  --blue-2:#1B7CE6;
  --blue-3:#7FC0FA;
  --blue-soft:#E7F1FE;
  --deep:#0B3B63;
  --shadow:0 1px 2px rgba(15,27,45,.04),0 12px 28px rgba(20,70,130,.07);
  --shadow-lg:0 18px 48px rgba(20,70,130,.12);
}

/* ------------------------------------------------------------------ page -- */
html,body{
  background:var(--paper)!important;
  color:var(--ink)!important;
  font-family:"Outfit",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif!important;
  -webkit-font-smoothing:antialiased;
}
body{
  background-image:
    radial-gradient(46% 38% at 12% 0%,rgba(46,144,250,.10),transparent 70%),
    radial-gradient(40% 34% at 92% 6%,rgba(127,192,250,.14),transparent 72%)!important;
  background-attachment:fixed!important;
}
h1,h2,h3,h4{font-family:"Space Grotesk","Outfit",system-ui,sans-serif!important;letter-spacing:-.015em;}

/* ----------------------------------------------------------------- cards -- */
.card{
  background:var(--sheet)!important;
  border:1px solid var(--line)!important;
  border-radius:22px!important;
  box-shadow:var(--shadow)!important;
}

/* --------------------------------------------------- surfaces and lines --- */
.bg-slate-950,.bg-slate-900{background-color:var(--sheet)!important;}
.bg-slate-800{background-color:var(--paper-2)!important;}
.bg-slate-700{background-color:#DCE7F6!important;}
[class*="bg-slate-950/"],[class*="bg-slate-900/"]{background-color:rgba(255,255,255,.92)!important;}
[class*="bg-slate-800/"]{background-color:rgba(46,144,250,.06)!important;}
[class*="bg-black/"]{background-color:rgba(15,27,45,.34)!important;}
.border-slate-800,.border-slate-700,.border-slate-600,
[class*="border-slate-800/"],[class*="border-slate-700/"]{border-color:var(--line)!important;}
.divide-slate-800>*+*{border-color:var(--line)!important;}
hr{border-color:var(--line)!important;}

/* ------------------------------------------------------------------ text -- */
.text-white,.text-slate-100,.text-slate-200,.text-slate-300{color:var(--ink)!important;}
.text-slate-400{color:var(--ink-2)!important;}
.text-slate-500{color:var(--ink-3)!important;}
.text-slate-600,.text-slate-700{color:var(--ink-4)!important;}
.text-slate-950,.text-slate-900{color:var(--ink)!important;}

/* ---------------------------------------------------------------- inputs -- */
.inp{
  background:var(--sheet)!important;
  border:1px solid var(--line-2)!important;
  border-radius:14px!important;
  color:var(--ink)!important;
  box-shadow:inset 0 1px 2px rgba(15,27,45,.03)!important;
}
.inp::placeholder{color:var(--ink-4)!important;}
.inp:focus{
  border-color:var(--blue)!important;
  box-shadow:0 0 0 4px rgba(46,144,250,.15)!important;
  outline:none!important;
}
select.inp{appearance:none;}
input[type="checkbox"]{accent-color:var(--blue);}

/* --------------------------------------------------------------- buttons -- */
.btn{
  border-radius:9999px!important;
  transition:transform .16s cubic-bezier(.34,1.56,.64,1),background .16s,box-shadow .16s!important;
}
.btn:active{transform:scale(.97);}

/* ================= SEMANTIC COLOURS =======================================
   green  -> light blue    = free bed, paid, positive
   rose   -> deep blue     = occupied, unpaid, overdue
   amber  -> pale + dashed = maintenance, warning
   sky    -> mid blue      = neutral highlight
   ========================================================================= */
.bg-emerald-500,.bg-emerald-600,.bg-green-500,.bg-green-600,.bg-lime-500,.bg-teal-500{
  background-color:var(--blue)!important;color:#FFFFFF!important;
  box-shadow:0 6px 18px rgba(46,144,250,.24)!important;
}
.bg-emerald-500:hover,.bg-emerald-600:hover,.bg-green-500:hover{background-color:var(--blue-2)!important;}
.text-emerald-300,.text-emerald-400,.text-emerald-500,.text-green-400,.text-lime-300,.text-teal-300{
  color:var(--blue-2)!important;
}
.bg-rose-600,.bg-rose-500,.bg-red-600,.bg-red-500,.bg-pink-600,.bg-fuchsia-600{
  background-color:var(--deep)!important;color:#FFFFFF!important;
}
.text-rose-300,.text-rose-400,.text-rose-500,.text-red-400,.text-pink-400{color:var(--deep)!important;}
.bg-amber-500,.bg-amber-600,.bg-yellow-500,.bg-orange-500{
  background-color:#DCE9F8!important;color:var(--ink)!important;
}
.text-amber-300,.text-amber-400,.text-yellow-300,.text-orange-300{color:#8A6D1F!important;}
.bg-sky-500,.bg-sky-600,.bg-blue-600,.bg-indigo-500,.bg-violet-500,.bg-purple-500,.bg-cyan-500{
  background-color:var(--blue-3)!important;color:#08283F!important;
}
.text-sky-300,.text-sky-400,.text-indigo-300,.text-violet-300,.text-cyan-300{color:var(--blue-2)!important;}

/* tints (bg-emerald-500/15 and friends) - after the solids so they win ----- */
[class*="bg-emerald-500/"],[class*="bg-emerald-600/"],[class*="bg-green-500/"],[class*="bg-lime-500/"]{
  background-color:rgba(46,144,250,.12)!important;color:var(--blue-2)!important;box-shadow:none!important;
}
[class*="bg-rose-600/"],[class*="bg-rose-500/"],[class*="bg-red-500/"],[class*="bg-red-600/"]{
  background-color:rgba(11,59,99,.08)!important;color:var(--deep)!important;
}
[class*="bg-amber-500/"],[class*="bg-yellow-500/"],[class*="bg-orange-500/"]{
  background-color:rgba(148,178,212,.14)!important;color:var(--ink-2)!important;
}
[class*="bg-sky-500/"],[class*="bg-indigo-500/"],[class*="bg-violet-500/"],[class*="bg-cyan-500/"]{
  background-color:rgba(127,192,250,.18)!important;color:var(--blue-2)!important;
}

/* bed and status borders --------------------------------------------------- */
.border-emerald-500,[class*="border-emerald-500/"],[class*="border-emerald-400/"]{
  border-color:rgba(46,144,250,.55)!important;
}
.border-rose-600,[class*="border-rose-600/"],[class*="border-rose-500/"]{
  border-color:rgba(11,59,99,.35)!important;
}
.border-amber-500,[class*="border-amber-500/"],[class*="border-yellow-500/"]{
  border-color:rgba(120,150,185,.55)!important;border-style:dashed!important;
}
.border-sky-500,[class*="border-sky-500/"],[class*="border-indigo-500/"]{
  border-color:rgba(127,192,250,.5)!important;
}

/* ------------------------------------------------- inline SVG chart fills -- */
[fill="#10b981"],[fill="#a3e635"]{fill:#2E90FA!important;}
[fill="#f43f5e"]{fill:#0B3B63!important;}
[fill="#f59e0b"]{fill:#9BB8D4!important;}
[fill="#1d4ed8"]{fill:#7FC0FA!important;}
[fill="#1e293b"]{fill:#E7F1FE!important;}
[stroke="#10b981"],[stroke="#a3e635"]{stroke:#2E90FA!important;}
[stroke="#f43f5e"]{stroke:#0B3B63!important;}
[stroke="#f59e0b"]{stroke:#9BB8D4!important;}
[stroke="#1d4ed8"]{stroke:#7FC0FA!important;}
[stroke="#1e293b"]{stroke:#E2EBF8!important;}

/* ------------------------------------------------------------ small bits -- */
.chip{border-radius:9999px!important;}
.dot{border-radius:9999px!important;}
.tabular{font-variant-numeric:tabular-nums;}
table th{color:var(--ink-3)!important;font-weight:600;}
table td{border-color:var(--line)!important;}
#fab{box-shadow:0 12px 30px rgba(46,144,250,.32)!important;}
#buildStamp{
  background:rgba(255,255,255,.92)!important;
  color:var(--ink-4)!important;
  border:1px solid var(--line)!important;
}
#statusLine{color:var(--ink-4)!important;}
.hoverable:hover{background:rgba(46,144,250,.07)!important;}

/* rounded, quiet sheets and modals ---------------------------------------- */
.rounded-3xl{border-radius:24px!important;}
.rounded-2xl{border-radius:18px!important;}
.rounded-xl{border-radius:14px!important;}
.backdrop-blur{backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;}

/* ------------------------------------------------------------- scrollbar -- */
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:var(--paper);}
::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,#CFDFF3,#B9D3EF);
  border-radius:9999px;border:2px solid var(--paper);
}
::-webkit-scrollbar-thumb:hover{background:#A9C8EB;}
::selection{background:rgba(46,144,250,.24);color:var(--ink);}

/* --------------------------------------------------------------- motion --- */
@keyframes fadeUp{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@keyframes pulseDot{0%,100%{opacity:1;}50%{opacity:.35;}}
@keyframes floatY{0%,100%{transform:translateY(0);}50%{transform:translateY(-4px);}}
.fade{animation:fadeUp .34s cubic-bezier(.22,1,.36,1) both;}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
}

/* ---------------------------------------------------------------- print --- */
@media print{
  body{background:#FFFFFF!important;background-image:none!important;}
  .card{box-shadow:none!important;border:1px solid #C9D8EC!important;}
  .noprint,#fab,#buildStamp,nav,aside{display:none!important;}
}
