:root{
  --bg:#050914; --panel:#0b1225; --panel2:#101a32; --text:#eaf2ff; --muted:#91a4c5;
  --cyan:#22d3ee; --blue:#4f8cff; --green:#42f59b; --red:#ff5c7c; --amber:#ffd166; --line:rgba(132,177,255,.22);
}
*{box-sizing:border-box} body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at top left,#0a2852 0,#050914 38%,#03050c 100%);color:var(--text)}
.bg-grid{position:fixed;inset:0;background-image:linear-gradient(rgba(78,140,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(78,140,255,.08) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent 80%);pointer-events:none}
.topbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:16px 26px;border-bottom:1px solid var(--line);background:rgba(5,9,20,.82);backdrop-filter:blur(18px)}
.brand{display:flex;gap:12px;align-items:center}.logo-mark{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,var(--cyan),var(--blue));font-weight:900;color:#04111d;box-shadow:0 0 28px rgba(34,211,238,.45)}.brand-name{font-weight:900;letter-spacing:3px}.brand-subtitle{font-size:12px;color:var(--muted)}
.shell{max-width:1440px;margin:auto;padding:26px}.card{background:linear-gradient(180deg,rgba(16,26,50,.9),rgba(8,14,30,.92));border:1px solid var(--line);border-radius:22px;box-shadow:0 22px 70px rgba(0,0,0,.35)}.glow{box-shadow:0 0 0 1px rgba(34,211,238,.12),0 0 60px rgba(34,211,238,.10)}
.hero{display:flex;justify-content:space-between;gap:24px;padding:30px;margin-bottom:22px}.eyebrow{color:var(--cyan);font-size:12px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase}.hero h1{margin:10px 0;font-size:34px}.hero p{color:var(--muted);line-height:1.65;max-width:920px}.score-panel{min-width:220px;text-align:center;border:1px solid var(--line);border-radius:18px;padding:22px;background:rgba(5,9,20,.42)}.score-label{color:var(--muted);font-size:13px}.score-value{font-size:48px;font-weight:900;color:var(--green);text-shadow:0 0 22px rgba(66,245,155,.35)}.score-status{color:var(--muted)}
.layout{display:grid;grid-template-columns:290px 1fr;gap:22px}.sidebar{position:sticky;top:88px;align-self:start}.sidebar nav{display:flex;flex-direction:column;gap:8px}.sidebar a{padding:11px 13px;border:1px solid var(--line);border-radius:14px;color:var(--muted);text-decoration:none;background:rgba(12,20,40,.75);font-size:13px}.sidebar a:hover,.sidebar a.active{color:var(--text);border-color:rgba(34,211,238,.6);box-shadow:0 0 20px rgba(34,211,238,.08)}.mini-card{margin-top:14px;padding:16px;border:1px solid var(--line);border-radius:16px;color:var(--muted);background:rgba(12,20,40,.65)}.mini-card strong{color:var(--text)}
.form-stack{display:flex;flex-direction:column;gap:18px}.section{padding:24px}.section h2{margin:0 0 18px;font-size:21px}.grid{display:grid;gap:14px}.two{grid-template-columns:repeat(2,1fr)}.three{grid-template-columns:repeat(3,1fr)}.four{grid-template-columns:repeat(4,1fr)}
label{display:flex;flex-direction:column;gap:7px;color:#cdd9ef;font-size:13px;font-weight:700}input,select,textarea{width:100%;padding:12px 13px;border:1px solid rgba(145,164,197,.25);border-radius:13px;background:rgba(3,7,18,.74);color:var(--text);outline:none}textarea{min-height:90px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(34,211,238,.10)}
.btn{border:1px solid rgba(34,211,238,.35);background:rgba(34,211,238,.10);color:var(--text);padding:10px 13px;border-radius:13px;cursor:pointer;font-weight:800}.btn:hover{border-color:var(--cyan);box-shadow:0 0 18px rgba(34,211,238,.18)}.btn.primary{background:linear-gradient(135deg,var(--cyan),var(--blue));color:#04111d;border:0}.btn.ghost{background:rgba(255,255,255,.04)}.btn.small{font-size:12px;padding:8px 10px}.btn.danger{border-color:rgba(255,92,124,.45);background:rgba(255,92,124,.10)}.top-actions,.actions-row{display:flex;gap:9px;flex-wrap:wrap}
.repeat-head{display:flex;justify-content:space-between;align-items:center;margin:8px 0 12px;color:var(--cyan);font-weight:900}.repeat-list{display:flex;flex-direction:column;gap:12px}.repeat-item{border:1px solid var(--line);border-radius:18px;padding:16px;background:rgba(5,9,20,.45)}.checks{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.checks label{flex-direction:row;align-items:center;border:1px solid var(--line);border-radius:14px;padding:12px;background:rgba(5,9,20,.45)}.checks input{width:auto}.report{display:grid;gap:12px}.report h3{margin:10px 0 6px;color:var(--cyan)}.pill{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;border:1px solid var(--line);background:rgba(34,211,238,.09);font-size:12px;color:#dcecff;margin:3px}.risk-high{color:var(--red)}.risk-med{color:var(--amber)}.risk-ok{color:var(--green)}.report-box{border:1px solid var(--line);border-radius:16px;padding:15px;background:rgba(3,7,18,.45)}.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.kpi{border:1px solid var(--line);border-radius:16px;padding:13px;background:rgba(34,211,238,.05)}.kpi b{font-size:24px;color:var(--green)}.kpi span{display:block;color:var(--muted);font-size:12px;margin-top:4px}
@media(max-width:1000px){.layout{grid-template-columns:1fr}.sidebar{position:static}.two,.three,.four,.checks,.kpi-row{grid-template-columns:1fr}.hero{flex-direction:column}.topbar{flex-direction:column;gap:12px;align-items:flex-start}}
@media print{body{background:white;color:#111}.bg-grid,.no-print,.sidebar{display:none!important}.shell{max-width:none;padding:0}.layout{display:block}.card{box-shadow:none;border:1px solid #ddd;background:white;color:#111;break-inside:avoid}.hero{display:block}.hero p,label,.brand-subtitle,.score-status,.mini-card,.report-box{color:#111}input,select,textarea{border:0;background:#fff;color:#111;padding:3px}.section{page-break-inside:avoid}.score-value{color:#111;text-shadow:none}.pill{border:1px solid #999;color:#111}.kpi b{color:#111}.topbar{position:static;background:white;color:#111}.brand{color:#111}}
.hidden{display:none!important}.portal{padding-top:42px}.portal-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;align-items:stretch}.portal-hero{grid-row:span 3;padding:34px}.portal-hero h1{font-size:38px;margin:12px 0}.portal-hero p{color:var(--muted);font-size:16px;line-height:1.7}.portal-note{margin-top:18px;padding:16px;border:1px solid rgba(34,211,238,.25);border-radius:16px;background:rgba(34,211,238,.07);color:#cde9ff}.portal-card{padding:22px}.portal-card h2{margin:0 0 16px}.wide{width:100%;margin-top:12px}.helper{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.5}.consent-line{display:flex;flex-direction:row;align-items:flex-start;gap:10px;margin-top:10px;font-size:12px;line-height:1.35}.consent-line input{width:auto;margin-top:2px}.session-badge{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:14px;padding:7px 10px;background:rgba(34,211,238,.07);color:var(--cyan);font-weight:900}.intake-code-line{display:inline-flex;gap:8px;margin-top:5px;padding:7px 10px;border:1px solid rgba(34,211,238,.3);border-radius:999px;background:rgba(34,211,238,.08);color:var(--muted)}.intake-code-line strong{color:var(--cyan)}.admin-panel-card{padding:28px}.admin-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.admin-head h1{margin:8px 0}.admin-list{display:flex;flex-direction:column;gap:10px;margin-top:18px}.admin-row{display:grid;grid-template-columns:1.4fr 1.3fr .8fr auto auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:13px;background:rgba(5,9,20,.45)}.admin-row strong,.admin-row b{color:var(--green)}.admin-row span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.kpi-row{grid-template-columns:repeat(5,1fr)}@media(max-width:1000px){.portal-grid{grid-template-columns:1fr}.portal-hero{grid-row:auto}.admin-row{grid-template-columns:1fr}.kpi-row{grid-template-columns:1fr}}@media print{.hidden{display:none!important}.intake-code-line{border:1px solid #999;color:#111;background:white}.intake-code-line strong{color:#111}}

/* v3 public customer-facing landing screen */
.landing-screen{
  position:relative;
  min-height:100vh;
  padding-top:26px;
  padding-bottom:36px;
  overflow:hidden;
}
.landing-screen:before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-3;
  background:
    radial-gradient(circle at 50% 0%, rgba(31,116,255,.22), transparent 38%),
    radial-gradient(circle at 0% 48%, rgba(0,169,255,.18), transparent 32%),
    radial-gradient(circle at 100% 55%, rgba(0,113,255,.16), transparent 34%),
    linear-gradient(180deg,#030914 0%, #071324 48%, #03060e 100%);
}
.landing-screen:after{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background-image:
    radial-gradient(circle, rgba(44,143,255,.32) 1px, transparent 1.8px),
    linear-gradient(rgba(61,151,255,.10) 1px, transparent 1px),
    linear-gradient(90deg,rgba(61,151,255,.10) 1px, transparent 1px);
  background-size:22px 22px, 76px 76px, 76px 76px;
  mask-image:linear-gradient(to bottom, rgba(0,0,0,.85), rgba(0,0,0,.25) 55%, rgba(0,0,0,.65));
  opacity:.55;
}
.municipal-left,.municipal-right{
  position:absolute;
  bottom:145px;
  width:410px;
  height:190px;
  opacity:.34;
  pointer-events:none;
  filter:drop-shadow(0 0 22px rgba(0,132,255,.35));
}
.municipal-left{left:16px}.municipal-right{right:16px;transform:scaleX(-1)}
.municipal-left:before,.municipal-right:before{
  content:"";position:absolute;left:20px;right:20px;bottom:0;height:2px;background:linear-gradient(90deg,transparent,#119cff,transparent);
  box-shadow:0 0 24px rgba(17,156,255,.7)
}
.municipal-left:after,.municipal-right:after{
  content:"";position:absolute;left:70px;bottom:2px;width:84px;height:82px;border:2px solid rgba(38,155,255,.55);border-bottom:0;border-radius:42px 42px 0 0;
  box-shadow:140px 22px 0 -14px rgba(38,155,255,.28),220px 42px 0 -18px rgba(38,155,255,.25),0 0 28px rgba(28,140,255,.25);
}
.landing-header{text-align:center;max-width:1050px;margin:0 auto 22px;position:relative;z-index:1}.landing-logo{width:min(640px,70vw);height:auto;display:block;margin:0 auto 8px;filter:drop-shadow(0 18px 32px rgba(0,0,0,.55)) drop-shadow(0 0 20px rgba(50,145,255,.18))}.landing-header h1{font-size:clamp(28px,3.1vw,44px);line-height:1.14;margin:8px 0 14px;font-weight:900;letter-spacing:-.4px}.landing-header p{max-width:820px;margin:0 auto;color:#c7d7f2;font-size:18px;line-height:1.45}.landing-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(360px,.72fr);gap:22px;align-items:start;position:relative;z-index:2}.onboarding-card,.recall-card{background:linear-gradient(180deg,rgba(10,31,59,.84),rgba(5,14,30,.94));border-color:rgba(80,164,255,.55);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 0 0 1px rgba(32,149,255,.10),0 24px 80px rgba(0,0,0,.40),0 0 45px rgba(0,119,255,.11)}.onboarding-card{padding:30px}.recall-card{padding:30px;margin-top:0}.card-title-row{display:flex;gap:18px;align-items:flex-start;margin-bottom:22px}.round-icon{width:58px;height:58px;min-width:58px;border:1px solid rgba(35,143,255,.75);border-radius:50%;display:grid;place-items:center;color:#d9ecff;font-size:27px;background:radial-gradient(circle,rgba(33,130,255,.22),rgba(4,16,36,.65));box-shadow:0 0 22px rgba(34,130,255,.24)}.doc-icon{margin-bottom:24px}.card-title-row h2,.recall-card h2{font-size:28px;margin:0 0 8px}.card-title-row p,.recall-card p{color:#c7d7f2;line-height:1.55;margin:0}.landing-form-grid{gap:14px 26px}.landing-form-grid textarea{min-height:88px}.landing-form-grid input,.landing-form-grid textarea,.recall-card input{background:rgba(2,10,23,.62);border-color:rgba(141,181,234,.28);box-shadow:inset 0 0 0 1px rgba(255,255,255,.015)}.landing-form-grid input::placeholder,.landing-form-grid textarea::placeholder,.recall-card input::placeholder{color:#8295b5}.info-callout{display:flex;gap:14px;align-items:flex-start;border:1px solid rgba(0,174,255,.55);border-radius:14px;padding:15px;background:linear-gradient(135deg,rgba(0,150,255,.17),rgba(23,94,199,.10));color:#d3e8ff;font-size:13px;line-height:1.45;min-height:88px}.info-badge{width:34px;height:34px;min-width:34px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#11d1ff,#1768ff);font-weight:900;color:white;box-shadow:0 0 22px rgba(24,145,255,.45)}.landing-consent{font-size:14px;color:#dbe7fb;margin-top:18px}.landing-primary-btn,.recall-btn{max-width:520px;margin-left:auto;margin-right:auto;font-size:21px;padding:14px 18px;border-radius:12px;color:#fff!important;background:linear-gradient(180deg,#267bff,#074ed6)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 0 28px rgba(0,101,255,.35)}.recall-btn{max-width:none;margin-top:16px}.recall-card label{margin-top:24px}.trust-strip{position:relative;z-index:2;margin-top:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:18px 22px;background:linear-gradient(180deg,rgba(11,36,68,.72),rgba(5,19,39,.86));border-color:rgba(63,145,238,.34)}.trust-item{display:flex;gap:14px;align-items:center;padding:0 18px;border-right:1px solid rgba(139,183,255,.16)}.trust-item:last-child{border-right:0}.trust-icon{width:54px;height:54px;min-width:54px;border-radius:18px;display:grid;place-items:center;color:#dcefff;font-size:25px;border:1px solid rgba(34,122,255,.55);background:rgba(8,57,138,.22)}.trust-item strong{display:block;font-size:16px}.trust-item span{display:block;color:#adbfda;font-size:13px;line-height:1.35;margin-top:4px}.internal-access-link{position:fixed;right:14px;bottom:10px;z-index:9;background:transparent;border:0;color:rgba(140,164,205,.18);font-size:11px;cursor:pointer}.admin-access-box{display:none;position:fixed;right:18px;bottom:34px;z-index:10;width:320px;padding:18px;background:rgba(7,16,34,.97);border-color:rgba(67,144,255,.36)}.admin-access-box.open{display:block}.admin-access-box h2{font-size:18px;margin:0 0 12px}.topbar-logo{width:150px;height:auto;object-fit:contain;display:block}.logo-mark{display:none}.brand{min-width:260px}.brand-name{letter-spacing:1.6px}.brand-subtitle{color:#a9bddb}.top-actions .btn.primary{color:#fff}.session-badge{white-space:nowrap}
@media(max-width:1100px){.landing-grid{grid-template-columns:1fr}.recall-card{margin-top:0}.trust-strip{grid-template-columns:1fr;gap:14px}.trust-item{border-right:0;border-bottom:1px solid rgba(139,183,255,.12);padding-bottom:14px}.trust-item:last-child{border-bottom:0;padding-bottom:0}.municipal-left,.municipal-right{display:none}}
@media(max-width:760px){.landing-screen{padding-top:18px}.landing-logo{width:min(520px,92vw)}.landing-header p{font-size:15px}.onboarding-card,.recall-card{padding:20px}.landing-form-grid{grid-template-columns:1fr}.card-title-row{flex-direction:column}.landing-primary-btn{font-size:17px}.topbar-logo{width:120px}.topbar{align-items:stretch}.brand{min-width:0}.top-actions{width:100%}.top-actions .btn{flex:1}}
