/* Shared chrome for the provider-portal auth + app pages (Phase 1).
   Brand tokens match the marketing home (portal/index.html). */
:root{
  --navy:#213D51; --navy2:#2c4f68; --turq:#0D9B97; --teal:#85B6B4;
  --green:#D1F2BD; --ink:#091616; --slate:#4a5b67; --mist:#E9F6FD;
  --line:#d6e6ee; --white:#fff;
  --ai-grad:linear-gradient(135deg,#0D9B97 0%,#213D51 100%);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:"Nunito Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--mist);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:"Nunito",sans-serif;color:var(--navy);line-height:1.2;font-weight:800;letter-spacing:-.02em}
a{color:var(--turq);text-decoration:none}
.topbar{background:var(--navy);color:#fff;padding:14px 22px;display:flex;align-items:center;gap:12px}
.topbar .word{font-family:"Nunito",sans-serif;font-weight:900;font-size:1.25rem}
.topbar .tag{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green);
  border-left:1px solid rgba(255,255,255,.25);padding-left:10px}
.topbar .right{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:.85rem;color:#cdd9e0}
.topbar .right a{color:#cdd9e0;font-weight:600}
.topbar .right a:hover{color:#fff}
.shell{max-width:980px;margin:0 auto;padding:34px 22px 60px}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px;box-shadow:0 10px 34px rgba(33,61,81,.07)}
.card h2{font-size:1.35rem;margin-bottom:6px}
.card .sub{color:var(--slate);font-size:.94rem;margin-bottom:18px}
.auth-wrap{max-width:430px;margin:7vh auto 0;padding:0 18px}
.field{margin-bottom:15px}
.field label{display:block;font-size:.84rem;font-weight:700;color:var(--navy);margin-bottom:6px}
.field input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:.95rem}
.field input:focus{outline:none;border-color:var(--turq);box-shadow:0 0 0 3px #0d9b9722}
.field .hint{font-size:.76rem;color:var(--slate);margin-top:4px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 26px;border-radius:999px;
  font-weight:800;font-size:.95rem;border:2px solid transparent;cursor:pointer;font-family:"Nunito",sans-serif;
  background:var(--turq);color:#fff;width:100%;transition:.18s}
.btn:hover{filter:brightness(1.07)}
.btn:disabled{opacity:.55;cursor:default}
.btn.ghost{background:#fff;color:var(--navy);border-color:var(--line);width:auto;padding:8px 18px;font-size:.84rem}
.err{display:none;background:#fdecec;border:1px solid #f0b9b9;color:#8f2020;border-radius:10px;
  padding:11px 14px;font-size:.88rem;margin-bottom:14px}
.ok{display:none;background:#eafaf0;border:1px solid #b6e6c8;color:#1c6b3f;border-radius:10px;
  padding:11px 14px;font-size:.88rem;margin-bottom:14px}
.fine{font-size:.8rem;color:var(--slate);margin-top:16px;text-align:center}
/* dashboard */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:18px 0}
.stat{border:1px solid var(--line);border-radius:12px;padding:16px;background:#fff}
.stat .k{font-size:.68rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--slate)}
.stat .v{font-family:"Nunito",sans-serif;font-weight:800;font-size:1.15rem;color:var(--navy);margin-top:4px}
.stat .v.good{color:#1c6b3f}.stat .v.warn{color:#a05a12}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.actions a{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;
  padding:9px 18px;font-weight:700;font-size:.88rem;color:var(--navy);background:#fff}
.actions a:hover{border-color:var(--turq);color:var(--turq)}
.section{margin-top:26px}
textarea{width:100%;min-height:110px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:.95rem;resize:vertical}
textarea:focus{outline:none;border-color:var(--turq);box-shadow:0 0 0 3px #0d9b9722}
/* Irv launcher (same look as the marketing home: full size + Irv's avatar) */
#irvLaunch{position:fixed;right:22px;bottom:22px;z-index:200;display:inline-flex;align-items:center;gap:14px;
  background:var(--navy);color:#fff;border:none;border-radius:999px;padding:14px 33px;
  font-family:"Nunito",sans-serif;font-weight:800;font-size:1.42rem;cursor:pointer;
  box-shadow:0 12px 32px rgba(9,22,22,.35);transition:transform .15s ease,box-shadow .15s ease}
#irvLaunch:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(9,22,22,.4)}
#irvLaunch .dot,#irvPanel .dot{width:19px;height:19px;border-radius:50%;background:linear-gradient(135deg,var(--turq),var(--green));flex-shrink:0}
/* Irv's face, matching the marketing-home launcher and the operator console. */
.irv-ava{width:44px;height:44px;border-radius:50%;flex-shrink:0;
  background:#fff url('/static/brand/irv.webp') no-repeat 50% 18%;background-size:150%;
  box-shadow:0 0 0 2px rgba(255,255,255,.85)}
.irv-head .irv-ava{width:34px;height:34px;box-shadow:0 0 0 2px rgba(255,255,255,.35)}
#irvPanel{position:fixed;right:22px;bottom:86px;z-index:201;width:min(370px,calc(100vw - 44px));
  max-height:min(540px,calc(100vh - 120px));display:none;flex-direction:column;background:#fff;
  border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 28px 70px rgba(9,22,22,.3)}
#irvPanel.open{display:flex}
.irv-head{display:flex;align-items:center;gap:10px;padding:14px 18px;background:var(--navy);color:#fff}
.irv-head b{font-family:"Nunito",sans-serif;font-size:1.02rem}
.irv-head .sub2{font-size:.72rem;color:#9fb6c2}
.irv-head button{margin-left:auto;background:none;border:none;color:#cdd9e0;font-size:1.25rem;cursor:pointer;line-height:1}
#irvMsgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:9px;background:var(--mist)}
.irv-msg{max-width:88%;padding:9px 13px;border-radius:13px;font-size:.9rem;line-height:1.5;white-space:pre-wrap}
.irv-msg.irv{background:#fff;border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:4px}
.irv-msg.me{background:var(--turq);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.irv-msg.busy{color:var(--slate);font-style:italic}
.irv-foot{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:#fff}
.irv-foot input{flex:1;border:1px solid var(--line);border-radius:999px;padding:10px 16px;font:inherit;font-size:.9rem}
.irv-foot input:focus{outline:none;border-color:var(--turq)}
.irv-foot button{background:var(--turq);color:#fff;border:none;border-radius:999px;padding:10px 18px;
  font-family:"Nunito",sans-serif;font-weight:800;font-size:.88rem;cursor:pointer}
.irv-foot button:disabled{opacity:.55}
