/* Home Care Solutions — onboarding portal & admin styles (mirrors hcsga.org) */
:root{--red:#A8353A;--red-dark:#7A2226;--red-light:#C94449;--red-pale:#FFF2F2;--white:#FFFFFF;--off-white:#FAFAFA;--light-gray:#F5F5F5;--border:#E5E5E5;--text:#1A1A1A;--text-mid:#555;--text-light:#888;--gold:#D4A843;--green:#2E7D52;}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Inter',sans-serif;color:var(--text);background:var(--light-gray);font-size:16px;line-height:1.65;min-height:100vh;display:flex;flex-direction:column;}
h1,h2,h3,h4{font-family:'Merriweather',serif;line-height:1.25;}
a{color:var(--red);}
.topbar{background:var(--white);border-bottom:3px solid var(--red);box-shadow:0 2px 12px rgba(0,0,0,0.06);position:sticky;top:0;z-index:50;}
.topbar-inner{max-width:960px;margin:0 auto;height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 1.25rem;gap:1rem;}
.brand{display:flex;align-items:center;gap:0.6rem;text-decoration:none;color:var(--text);}
.brand img{height:40px;width:auto;}
.brand strong{font-family:'Merriweather',serif;font-size:0.98rem;display:block;}
.brand span{font-size:0.68rem;color:var(--text-mid);display:block;}
.topbar-tag{font-size:0.72rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--red);background:var(--red-pale);border:1px solid #FFDADA;padding:0.3rem 0.75rem;border-radius:100px;white-space:nowrap;}
.hero-band{background:linear-gradient(135deg,var(--red-dark) 0%,var(--red) 60%,#C05055 100%);color:white;padding:2.75rem 1.25rem 5.5rem;}
.hero-band-inner{max-width:960px;margin:0 auto;}
.hero-band h1{font-size:clamp(1.6rem,3.4vw,2.3rem);margin-bottom:0.5rem;}
.hero-band p{opacity:0.9;max-width:620px;font-size:0.95rem;}
.wrap{max-width:960px;margin:-4rem auto 3rem;padding:0 1.25rem;width:100%;flex:1;}
.foot{text-align:center;font-size:0.75rem;color:var(--text-light);padding:1.5rem 1rem 2rem;}
.lock-note{display:flex;gap:0.6rem;align-items:flex-start;font-size:0.8rem;color:var(--text-mid);background:#F3F8F5;border:1px solid #D3E8DB;border-radius:10px;padding:0.75rem 1rem;margin-bottom:1.5rem;}
.lock-note b{color:var(--green);}
/* forms */
.form-grid{display:grid;gap:1.15rem;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem;}
.form-row-3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1.15rem;}
.form-row-name{display:grid;grid-template-columns:1fr 90px 1fr;gap:1.15rem;}
.form-group{display:flex;flex-direction:column;gap:0.35rem;}
.form-group label{font-size:0.82rem;font-weight:600;color:var(--text);}
.form-group .hint{font-size:0.74rem;color:var(--text-light);font-weight:400;}
.form-group .req{color:var(--red);}
.form-group input,.form-group select,.form-group textarea{border:1.5px solid var(--border);border-radius:8px;padding:0.68rem 0.85rem;font-family:inherit;font-size:0.9rem;background:var(--white);color:var(--text);transition:border-color 0.2s;outline:none;width:100%;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--red);}
.form-group input.mono{font-variant-numeric:tabular-nums;letter-spacing:0.04em;}
.form-group input[readonly]{background:var(--off-white);color:var(--text-mid);}
.field-err{font-size:0.74rem;color:var(--red);font-weight:600;display:none;}
.field-err.show{display:block;}
.sub-head{font-family:'Inter',sans-serif;font-size:0.72rem;letter-spacing:0.13em;text-transform:uppercase;color:var(--red);font-weight:700;margin:1.75rem 0 0.75rem;}
.sub-head:first-child{margin-top:0;}
.muted{font-size:0.82rem;color:var(--text-mid);}
.app-shell{background:var(--white);border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:0 10px 40px rgba(122,34,38,0.08);scroll-margin-top:90px;}
.app-head{background:linear-gradient(135deg,var(--red-dark),var(--red));color:white;padding:1.75rem 2rem 1.5rem;}
.app-head-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem;}
.app-head h3{font-size:1.35rem;}
.app-head p{font-size:0.82rem;opacity:0.85;margin-top:0.2rem;}
.app-time{font-size:0.75rem;font-weight:600;background:rgba(255,255,255,0.15);border-radius:100px;padding:0.3rem 0.8rem;white-space:nowrap;}
.stepper{display:grid;grid-template-columns:repeat(6,1fr);gap:0.4rem;list-style:none;counter-reset:step;}
.stepper li{font-size:0.7rem;font-weight:600;opacity:0.6;display:flex;flex-direction:column;gap:0.45rem;transition:opacity 0.2s;}
.stepper li::before{content:'';height:4px;border-radius:4px;background:rgba(255,255,255,0.3);transition:background 0.25s;}
.stepper li.done,.stepper li.current{opacity:1;}
.stepper li.done::before,.stepper li.current::before{background:white;}
.app-body{padding:2.25rem 2rem;}
.app-step{display:none;animation:stepIn 0.3s ease;}
.app-step.active{display:block;}
@keyframes stepIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
.step-kicker{font-size:0.7rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--red);font-weight:700;}
.step-title{font-size:1.3rem;margin:0.25rem 0 0.35rem;}
.step-sub{font-size:0.86rem;color:var(--text-mid);margin-bottom:1.75rem;}
.q-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;border:1px solid var(--border);border-radius:10px;background:var(--off-white);}
.q-row+.q-row,.q-row+.reveal,.reveal+.q-row{margin-top:0.75rem;}
.q-row .q-text{font-size:0.88rem;font-weight:500;}
.yn{display:inline-flex;border:1.5px solid var(--border);border-radius:8px;overflow:hidden;flex-shrink:0;background:white;}
.yn label{position:relative;cursor:pointer;}
.yn input{position:absolute;opacity:0;inset:0;cursor:pointer;}
.yn span{display:block;padding:0.4rem 1rem;font-size:0.82rem;font-weight:600;color:var(--text-mid);transition:all 0.15s;}
.yn label+label span{border-left:1.5px solid var(--border);}
.yn input:checked+span{background:var(--red);color:white;}
.yn input:focus-visible+span{outline:2px solid var(--red-dark);outline-offset:-2px;}
.reveal{display:none;padding:0 1.1rem 0.25rem;}
.reveal.show{display:block;}
.chip-set{display:flex;flex-wrap:wrap;gap:0.5rem;}
.chip-set label{position:relative;cursor:pointer;}
.chip-set input{position:absolute;opacity:0;inset:0;cursor:pointer;}
.chip-set span{display:inline-block;border:1.5px solid var(--border);border-radius:100px;padding:0.4rem 0.95rem;font-size:0.82rem;font-weight:600;color:var(--text-mid);background:white;transition:all 0.15s;}
.chip-set input:checked+span{border-color:var(--red);background:var(--red-pale);color:var(--red-dark);}
.chip-set input:checked+span::before{content:'\2713  ';}
.chip-set input:focus-visible+span{outline:2px solid var(--red);outline-offset:2px;}
.entry{border:1px solid var(--border);border-radius:12px;padding:1.5rem;margin-bottom:1rem;}
.entry-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.1rem;}
.entry-head h4{font-family:'Inter',sans-serif;font-size:0.8rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--red);}
.entry-remove{background:none;border:none;color:var(--text-light);font-size:0.78rem;cursor:pointer;text-decoration:underline;}
.entry.hidden{display:none;}
.btn-add{width:100%;border:1.5px dashed #DDB5B7;background:var(--red-pale);color:var(--red);border-radius:12px;padding:0.9rem;font-weight:600;font-size:0.88rem;cursor:pointer;transition:background 0.15s;}
.btn-add:hover{background:#FFE6E6;}
.app-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 2rem;border-top:1px solid var(--border);background:var(--off-white);}
.app-nav .btn-back{background:none;border:none;font-weight:600;color:var(--text-mid);cursor:pointer;font-size:0.9rem;padding:0.6rem 0;}
.app-nav .btn-back:hover{color:var(--red);}
.app-nav .btn-next{background:var(--red);color:white;border:none;border-radius:8px;padding:0.8rem 1.75rem;font-weight:700;font-size:0.92rem;cursor:pointer;transition:background 0.2s;}
.app-nav .btn-next:hover{background:var(--red-dark);}
.app-nav .btn-next:disabled{opacity:0.6;cursor:wait;}
.app-save-note{font-size:0.74rem;color:var(--text-light);}
.review{display:grid;gap:1rem;margin-bottom:1.75rem;}
.review-block{border:1px solid var(--border);border-radius:12px;overflow:hidden;}
.review-block-head{display:flex;justify-content:space-between;align-items:center;background:var(--light-gray);padding:0.6rem 1.1rem;font-size:0.76rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-mid);}
.review-block-head button{background:none;border:none;color:var(--red);font-weight:600;font-size:0.78rem;cursor:pointer;text-transform:none;letter-spacing:0;}
.review-block dl{display:grid;grid-template-columns:minmax(140px,38%) 1fr;padding:0.6rem 1.1rem;font-size:0.84rem;}
.review-block dt{color:var(--text-light);padding:0.3rem 0;}
.review-block dd{padding:0.3rem 0;word-break:break-word;}
.attest{background:var(--red-pale);border:1px solid #FFDADA;border-radius:12px;padding:1.25rem 1.4rem;font-size:0.86rem;line-height:1.7;color:var(--text);margin-bottom:1.5rem;}
.sig-input{font-family:'Merriweather',serif !important;font-style:italic;font-size:1.15rem !important;}
.check-line{display:flex;gap:0.6rem;align-items:flex-start;font-size:0.84rem;color:var(--text-mid);margin-top:1rem;cursor:pointer;}
.check-line input{margin-top:0.25rem;accent-color:var(--red);width:16px;height:16px;flex-shrink:0;}
.app-done{display:none;padding:3.5rem 2rem;text-align:center;}
.app-done.show{display:block;}
.app-done .done-ico{width:72px;height:72px;border-radius:50%;background:var(--red-pale);color:var(--red);display:flex;align-items:center;justify-content:center;font-size:2rem;margin:0 auto 1.25rem;}
.app-done h3{font-size:1.5rem;margin-bottom:0.5rem;}
.app-done p{color:var(--text-mid);max-width:460px;margin:0 auto;font-size:0.92rem;}
.hp-field{position:absolute;left:-9999px;}

.stepper{grid-template-columns:repeat(var(--steps,6),1fr);}
/* packet type cards */
.type-cards{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.type-card{position:relative;border:1.5px solid var(--border);border-radius:14px;padding:1.25rem 1.25rem 1.1rem;cursor:pointer;transition:all 0.15s;background:white;display:block;}
.type-card input{position:absolute;opacity:0;inset:0;cursor:pointer;}
.type-card strong{display:block;font-size:0.98rem;margin-bottom:0.2rem;}
.type-card span{font-size:0.8rem;color:var(--text-mid);display:block;}
.type-card em{font-style:normal;display:inline-block;margin-top:0.6rem;font-size:0.7rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--red);background:var(--red-pale);border-radius:100px;padding:0.15rem 0.6rem;}
.type-card:has(input:checked){border-color:var(--red);box-shadow:0 0 0 3px rgba(168,53,58,0.12);}
.type-card:has(input:focus-visible){outline:2px solid var(--red-dark);outline-offset:2px;}
/* documents */
.doc{border:1px solid var(--border);border-radius:12px;margin-bottom:0.85rem;overflow:hidden;background:white;}
.doc-head{display:flex;align-items:center;gap:0.85rem;padding:0.95rem 1.1rem;cursor:pointer;user-select:none;}
.doc-num{flex-shrink:0;width:30px;height:30px;border-radius:50%;background:var(--red-pale);color:var(--red);font-weight:700;font-size:0.78rem;display:flex;align-items:center;justify-content:center;transition:all 0.2s;}
.doc.agreed .doc-num{background:var(--green);color:white;}
.doc-title{flex:1;font-weight:600;font-size:0.92rem;}
.doc-title small{display:block;font-weight:400;color:var(--text-light);font-size:0.75rem;}
.doc-chev{color:var(--text-light);transition:transform 0.2s;font-size:0.8rem;}
.doc.open .doc-chev{transform:rotate(180deg);}
.doc-body{display:none;border-top:1px solid var(--border);}
.doc.open .doc-body{display:block;}
.doc-text{max-height:340px;overflow-y:auto;padding:1.1rem 1.25rem;font-size:0.84rem;line-height:1.7;color:#333;background:var(--off-white);}
.doc-text p{margin-bottom:0.65rem;}
.doc-text h4{font-family:'Inter',sans-serif;font-size:0.76rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--red-dark);margin:1rem 0 0.4rem;}
.doc-text ul,.doc-text ol{margin:0 0 0.65rem 1.25rem;}
.doc-text ul.sub{list-style:circle;margin-left:2.25rem;}
.doc-text li{margin-bottom:0.25rem;}
.doc-text .attest{background:var(--red-pale);border:1px solid #F1CFCF;border-radius:8px;padding:0.7rem 0.9rem;font-weight:600;}
.doc-foot{padding:0.9rem 1.1rem;display:flex;align-items:flex-start;gap:0.65rem;font-size:0.85rem;}
.doc-foot input{accent-color:var(--red);width:18px;height:18px;margin-top:0.12rem;flex-shrink:0;cursor:pointer;}
.doc-foot label{cursor:pointer;}
.doc-note{font-size:0.76rem;color:var(--text-mid);background:#FFF8E6;border:1px solid #F3E2B3;border-radius:8px;padding:0.55rem 0.8rem;margin:0 1.1rem 0.9rem;}
.progress-line{display:flex;justify-content:space-between;align-items:center;font-size:0.8rem;color:var(--text-mid);margin-bottom:1rem;}
.progress-line b{color:var(--green);}
.btn-ghost{background:none;border:1.5px solid var(--border);border-radius:8px;padding:0.45rem 0.9rem;font-size:0.78rem;font-weight:600;color:var(--text-mid);cursor:pointer;}
.btn-ghost:hover{border-color:var(--red);color:var(--red);}
/* policies */
.policy{border:1px solid var(--border);border-radius:12px;padding:1rem 1.15rem;margin-bottom:0.75rem;background:white;transition:border-color 0.15s;}
.policy.agreed{border-color:#B9DCC6;background:#FBFEFC;}
.policy h4{font-family:'Inter',sans-serif;font-size:0.76rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--red-dark);margin-bottom:0.35rem;}
.policy p{font-size:0.84rem;color:#333;line-height:1.7;margin-bottom:0.5rem;}
.policy-agree{display:flex;align-items:center;gap:0.65rem;font-size:0.84rem;font-weight:600;margin-top:0.25rem;cursor:pointer;}
.policy-agree input{accent-color:var(--red);width:18px;height:18px;cursor:pointer;}
.initial-chip{font-family:'Merriweather',serif;font-style:italic;color:var(--red-dark);background:var(--red-pale);border-radius:6px;padding:0.05rem 0.5rem;min-width:44px;text-align:center;}
.initials-bar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:var(--red-pale);border:1px solid #FFDADA;border-radius:12px;padding:1rem 1.15rem;margin-bottom:1.25rem;}
.initials-bar .form-group{flex:0 0 140px;}
.initials-bar p{flex:1;min-width:220px;font-size:0.82rem;color:var(--text-mid);}
/* sign panel */
.sig-preview{font-family:'Merriweather',serif;font-style:italic;font-size:1.5rem;color:var(--text);border-bottom:1.5px solid var(--text);min-height:2.6rem;padding:0.25rem 0.25rem 0.1rem;margin-top:0.5rem;}
.sig-meta{font-size:0.72rem;color:var(--text-light);margin-top:0.35rem;}
.submit-status{display:none;margin-top:1.25rem;border-radius:10px;padding:0.9rem 1.1rem;font-size:0.86rem;background:var(--off-white);border:1px solid var(--border);}
.submit-status.show{display:block;}
.submit-status ol{margin-left:1.2rem;}
.submit-status li{color:var(--text-light);}
.submit-status li.active{color:var(--text);font-weight:600;}
.submit-status li.done{color:var(--green);}
.submit-status.error{background:var(--red-pale);border-color:#F1CFCF;color:var(--red-dark);}
/* admin */
.panel{background:white;border:1px solid var(--border);border-radius:18px;box-shadow:0 10px 40px rgba(122,34,38,0.08);overflow:hidden;}
.panel-head{padding:1.4rem 1.75rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;}
.panel-head h2{font-size:1.2rem;}
.panel-body{padding:1.75rem;}
.narrow{max-width:440px;margin:0 auto;}
.btn{background:var(--red);color:white;border:none;border-radius:8px;padding:0.75rem 1.4rem;font-weight:700;font-size:0.9rem;cursor:pointer;transition:background 0.2s;font-family:inherit;}
.btn:hover{background:var(--red-dark);}
.btn:disabled{opacity:0.55;cursor:not-allowed;}
.btn.block{width:100%;}
.btn.sm{padding:0.45rem 0.9rem;font-size:0.8rem;}
.btn.outline{background:white;color:var(--red);border:1.5px solid var(--red);}
.btn.outline:hover{background:var(--red-pale);}
.btn.quiet{background:none;color:var(--text-mid);border:1.5px solid var(--border);}
.btn.quiet:hover{border-color:var(--red);color:var(--red);}
.msg{font-size:0.82rem;border-radius:8px;padding:0.65rem 0.85rem;margin-top:1rem;display:none;}
.msg.show{display:block;}
.msg.err{background:var(--red-pale);color:var(--red-dark);border:1px solid #F1CFCF;}
.msg.ok{background:#F3F8F5;color:var(--green);border:1px solid #D3E8DB;}
.unlock-bar{display:flex;gap:0.75rem;align-items:flex-end;flex-wrap:wrap;background:var(--off-white);border:1px solid var(--border);border-radius:12px;padding:1rem 1.15rem;margin-bottom:1.25rem;}
.unlock-bar .form-group{flex:1;min-width:220px;}
.unlock-bar.unlocked{background:#F3F8F5;border-color:#D3E8DB;}
.status-pill{display:inline-flex;align-items:center;gap:0.35rem;font-size:0.74rem;font-weight:700;border-radius:100px;padding:0.2rem 0.7rem;}
.status-pill.locked{background:var(--light-gray);color:var(--text-mid);}
.status-pill.unlocked{background:#E3F2E9;color:var(--green);}
table.subs{width:100%;border-collapse:collapse;font-size:0.86rem;}
table.subs th{text-align:left;font-size:0.7rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-light);font-weight:700;padding:0.5rem 0.6rem;border-bottom:1.5px solid var(--border);}
table.subs td{padding:0.8rem 0.6rem;border-bottom:1px solid var(--border);vertical-align:middle;}
table.subs td.actions{text-align:right;white-space:nowrap;}
table.subs td.actions .btn{margin-left:0.35rem;}
.type-tag{font-size:0.7rem;font-weight:700;border-radius:100px;padding:0.15rem 0.6rem;background:var(--red-pale);color:var(--red-dark);}
.type-tag.contractor{background:#EEF3FA;color:#1E5BA8;}
.ref{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:0.78rem;color:var(--text-light);}
.empty{text-align:center;color:var(--text-light);padding:2.5rem 1rem;font-size:0.9rem;}
.warn-box{background:#FFF8E6;border:1px solid #F3E2B3;border-radius:10px;padding:0.85rem 1rem;font-size:0.82rem;color:#6B5310;margin-bottom:1.25rem;}
dialog.confirm{border:none;border-radius:14px;padding:1.5rem;max-width:400px;width:calc(100% - 2rem);box-shadow:0 20px 60px rgba(0,0,0,0.25);}
dialog.confirm::backdrop{background:rgba(26,26,26,0.45);}
dialog.confirm h3{font-size:1.1rem;margin-bottom:0.5rem;}
dialog.confirm p{font-size:0.88rem;color:var(--text-mid);margin-bottom:1.25rem;}
dialog.confirm .row{display:flex;justify-content:flex-end;gap:0.6rem;}
@media(max-width:640px){
  .topbar-tag{display:none;}
  .hero-band{padding:2rem 1rem 5rem;}
  .wrap{padding:0 0.75rem;}
  .app-head{padding:1.4rem 1.25rem 1.25rem;}
  .app-body{padding:1.6rem 1.15rem;}
  .app-nav{padding:1rem 1.15rem;}
  .stepper li{font-size:0;}
  .stepper li.current{font-size:0.68rem;white-space:nowrap;}
  .form-row,.form-row-3,.form-row-name,.type-cards{grid-template-columns:1fr;}
  .q-row{flex-direction:column;align-items:flex-start;}
  .review-block dl{grid-template-columns:1fr;}
  .review-block dt{padding-bottom:0;}
  .app-save-note{display:none;}
  .panel-head,.panel-body{padding:1.15rem;}
  table.subs thead{display:none;}
  table.subs tr{display:grid;grid-template-columns:1fr auto;gap:0.25rem 0.75rem;padding:0.85rem 0;border-bottom:1px solid var(--border);}
  table.subs td{border:none;padding:0;}
  table.subs td.actions{grid-column:1 / -1;text-align:left;margin-top:0.5rem;}
  table.subs td.actions .btn{margin:0 0.35rem 0 0;}
}
details.doc[open] .doc-chev{transform:rotate(180deg);}
details.doc summary::-webkit-details-marker{display:none;}
.check-line input[type=radio]{accent-color:var(--red);width:16px;height:16px;margin-top:0.25rem;flex-shrink:0;}
