.ga-hfs{
  --ga-accent:#3a63f4;
  --ga-text:#111;
  --ga-muted:#666;
  --ga-line:#d9d9d9;
  --ga-soft:#f5f7fb;
  width:100%;
  max-width:1200px;
  margin-left:auto !important;
  margin-right:auto !important;
  transform:none;
  color:var(--ga-text);
  font:inherit;
  container-type:inline-size;
  container-name:ga-hfs-app;
}

/* Let the Financial Picture page use a true centered wide canvas without
   changing the site's global WordPress content-width settings. */
body.ga-hfs-page .wp-block-post-content:has(#ga-hfs-app),
body.ga-hfs-page main:has(#ga-hfs-app){
  width:100% !important;
  max-width:none !important;
}
body.ga-hfs-page .wp-block-shortcode:has(#ga-hfs-app){
  width:min(1200px,calc(100% - 60px)) !important;
  max-width:1200px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
body.ga-hfs-page .wp-block-shortcode:has(#ga-hfs-app) > #ga-hfs-app{
  width:100% !important;
  max-width:1200px !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
.ga-hfs *{box-sizing:border-box;min-width:0}
.ga-hfs h2{font-size:40px;line-height:1.12;margin:8px 0 14px}
.ga-hfs h3{font-size:27px;margin:0 0 12px}
.ga-hfs h4{font-size:19px;margin:0 0 16px}
.ga-hfs p{font-size:18px;line-height:1.62}
.ga-hfs-kicker{font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:13px;color:var(--ga-accent)}
.ga-hfs-intro{max-width:100%}
.ga-hfs-progress{margin-bottom:34px;width:100%}
.ga-hfs-progress-bar{height:9px;background:#e9e9e9}
.ga-hfs-progress-bar span{display:block;height:100%;background:var(--ga-accent);width:12.5%;transition:width .25s ease}
.ga-hfs-progress-text{display:flex;justify-content:space-between;gap:18px;margin-top:9px;font-size:14px;color:var(--ga-muted)}
.ga-hfs-step{display:none;width:100%}
.ga-hfs-step.is-active{display:block}
.ga-hfs-grid{display:grid;gap:18px 22px;margin:26px 0}
.ga-hfs-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ga-hfs-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ga-hfs label{display:block;font-weight:600;font-size:16px;min-width:0}

/* Compact fields: approximately 25% shorter than v1.0.3 while retaining a
   16px type size so mobile browsers do not zoom inputs. */
.ga-hfs input,.ga-hfs select,.ga-hfs textarea{
  width:100%;
  margin-top:6px;
  border:1px solid #b9b9b9;
  background:#fff;
  color:#111;
  padding:8px 11px;
  min-height:38px;
  height:38px;
  border-radius:0;
  font:inherit;
  font-size:16px;
  line-height:1.25;
}
.ga-hfs textarea{height:auto;min-height:105px;padding-top:10px;padding-bottom:10px}
.ga-hfs input:focus,.ga-hfs select:focus,.ga-hfs textarea:focus{outline:2px solid var(--ga-accent);outline-offset:1px;border-color:var(--ga-accent)}
.ga-hfs-help{display:block;font-weight:400;font-size:13px;color:var(--ga-muted);margin-top:4px}
.ga-hfs-callout{background:var(--ga-soft);border-left:4px solid var(--ga-accent);padding:18px 22px;font-size:16px;line-height:1.55;margin-top:26px;max-width:100%}

/* Client data-entry steps use visible checklists instead of dropdown-driven rows.
   Every category is on screen at once and nothing scrolls horizontally. */
.ga-hfs-checklist-head{
  display:grid;
  align-items:end;
  gap:18px;
  margin:26px 0 0;
  padding:0 14px 8px;
  border-bottom:1px solid var(--ga-line);
  color:#555;
  font-size:13px;
  font-weight:700;
  line-height:1.25;
}
.ga-hfs-assets-head,.ga-hfs-choice-assets{grid-template-columns:minmax(260px,1.7fr) minmax(190px,.8fr)}
.ga-hfs-liabilities-head,.ga-hfs-choice-liabilities{grid-template-columns:minmax(240px,1.45fr) minmax(160px,.8fr) minmax(160px,.8fr) minmax(125px,.55fr)}
.ga-hfs-income-head,.ga-hfs-choice-income,
.ga-hfs-expenses-head,.ga-hfs-choice-expenses{grid-template-columns:minmax(280px,1.7fr) minmax(200px,.8fr)}
.ga-hfs-checklist{width:100%;max-width:100%;margin:0 0 14px}
.ga-hfs-choice-item{
  display:grid;
  align-items:center;
  gap:18px;
  width:100%;
  padding:10px 14px;
  border-bottom:1px solid #ececec;
  background:#fff;
}
.ga-hfs-choice-item.is-selected{background:#f7f9ff}
.ga-hfs-choice-item:focus-within{background:#f7f9ff}
.ga-hfs-choice-label{
  display:flex!important;
  align-items:center;
  gap:12px;
  margin:0!important;
  min-width:0;
  font-size:16px!important;
  font-weight:600!important;
  cursor:pointer;
}
.ga-hfs-choice-label span{min-width:0;overflow-wrap:anywhere}
.ga-hfs-choice-label input[type="checkbox"]{
  width:20px!important;
  min-width:20px!important;
  height:20px!important;
  min-height:20px!important;
  margin:0!important;
  padding:0!important;
  flex:0 0 20px;
  accent-color:var(--ga-accent);
}
.ga-hfs-choice-field{margin:0!important;font-size:13px!important;font-weight:700!important;color:#555}
.ga-hfs-choice-field>span{display:none}
.ga-hfs-choice-field input{
  margin:0!important;
  width:100%;
  height:36px;
  min-height:36px;
  padding:7px 9px;
  font-size:15px;
  color:#111;
}
.ga-hfs button{border-radius:0;min-height:44px;padding:10px 24px;font:inherit;font-size:16px;font-weight:700;cursor:pointer;transition:none}
.ga-hfs-primary{background:var(--ga-accent);border:1px solid var(--ga-accent);color:#fff}
.ga-hfs-primary:hover{background:#000;border-color:#000;color:#fff}
.ga-hfs-secondary,.ga-hfs-add-row{background:#fff;border:1px solid #222;color:#111}
.ga-hfs-secondary:hover,.ga-hfs-add-row:hover{background:#000;color:#fff}
.ga-hfs button:disabled{opacity:.45;cursor:not-allowed}
.ga-hfs-remove-row{width:36px;min-width:36px;min-height:36px;height:36px;padding:0;border:1px solid #bbb;background:#fff;color:#111;font-size:22px;font-weight:400;line-height:1}
.ga-hfs-remove-row:hover{background:#111;color:#fff}
.ga-hfs-actions{display:flex;justify-content:space-between;gap:18px;border-top:1px solid var(--ga-line);padding-top:28px;margin-top:38px}
.ga-hfs-actions-right{display:flex;gap:14px;flex-wrap:wrap;justify-content:flex-end}
.ga-hfs-message{display:none;margin-top:20px;padding:15px 18px;border-left:4px solid #2d7f3e;background:#f1f8f2}
.ga-hfs-message.is-error{border-color:#b3261e;background:#fff2f1}
.ga-hfs-inline-action{min-height:0!important;padding:0!important;border:0!important;background:transparent!important;color:var(--ga-accent)!important;text-decoration:underline;font-weight:700}
.ga-hfs-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:var(--ga-line);border:1px solid var(--ga-line);margin:30px 0;max-width:100%;overflow:hidden}
.ga-hfs-summary-grid>div{background:#fff;padding:20px 18px;min-width:0}
.ga-hfs-summary-grid span{display:block;font-size:13px;color:var(--ga-muted);margin-bottom:6px}
.ga-hfs-summary-grid strong{font-size:25px;line-height:1.2;overflow-wrap:anywhere}
.ga-hfs-results-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.ga-hfs-small{font-size:14px!important;color:var(--ga-muted)}
.ga-hfs-cert{display:flex!important;gap:13px;align-items:flex-start;margin-top:28px;padding:20px 22px;background:var(--ga-soft)}
.ga-hfs-cert input{width:20px;height:20px;min-height:0;margin:2px 0 0;flex:0 0 auto}
.ga-hfs-result-head{display:grid;grid-template-columns:200px minmax(0,1fr);gap:38px;align-items:center;padding:30px 0;max-width:100%}
.ga-hfs-score-ring{width:180px;height:180px;border-radius:50%;background:conic-gradient(var(--ga-accent) var(--score),#e7e7e7 0);display:grid;place-items:center;position:relative}
.ga-hfs-score-ring:before{content:"";position:absolute;inset:18px;border-radius:50%;background:#fff}
.ga-hfs-score-ring>div{position:relative;text-align:center}
.ga-hfs-score-ring strong{font-size:54px;line-height:1;display:block}
.ga-hfs-score-ring span{font-size:15px;color:var(--ga-muted)}
.ga-hfs-health-band{display:inline-block;background:#111;color:#fff;padding:8px 11px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px}

/* Client charts must fit inside the application. No fixed inner widths are
   allowed to push the second or third card outside the page. */
.ga-hfs-client-charts{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr) minmax(0,1fr);gap:20px;margin:32px 0;width:100%;max-width:100%}
.ga-hfs-chart-card{border:1px solid var(--ga-line);padding:22px;min-width:0;max-width:100%;overflow:hidden;background:#fff}
.ga-hfs-chart-card h4{overflow-wrap:anywhere}
.ga-hfs-score-row{display:grid;grid-template-columns:minmax(105px,38%) minmax(36px,1fr) 36px;align-items:center;gap:10px;margin:13px 0;font-size:14px;width:100%;max-width:100%}
.ga-hfs-score-row>span,.ga-hfs-mini-bars span{min-width:0;overflow-wrap:anywhere;line-height:1.25}
.ga-hfs-score-row>div,.ga-hfs-mini-bars>div>div{height:10px;background:#ececec;min-width:0}
.ga-hfs-score-row i,.ga-hfs-mini-bars i{display:block;height:100%;background:#555;max-width:100%}
.ga-hfs-score-row strong{font-size:14px;text-align:right;white-space:nowrap}
.ga-hfs-mini-bars{width:100%;max-width:100%}
.ga-hfs-mini-bars>div{display:grid;grid-template-columns:minmax(82px,42%) minmax(28px,1fr) auto;gap:8px;align-items:center;margin:12px 0;font-size:13px;width:100%;max-width:100%}
.ga-hfs-mini-bars strong{text-align:right;font-size:13px;white-space:nowrap;max-width:90px;overflow:hidden;text-overflow:ellipsis}
.ga-hfs-narrative{border-top:5px solid var(--ga-accent);background:var(--ga-soft);padding:32px 36px;margin-top:34px;max-width:100%;overflow:hidden}
.ga-hfs-narrative p{font-size:17px;margin:0 0 16px;max-width:100%}
.ga-hfs-disclaimer{font-size:12px;color:#666;line-height:1.5;margin-top:22px}
.ga-hfs-review-warnings{margin:22px 0;padding:18px 20px;border-left:4px solid #dba617;background:#fff8e5}
.ga-hfs-review-warnings strong{display:block;margin-bottom:8px}
.ga-hfs-review-warnings ul{margin:0 0 0 20px;padding:0}
.ga-hfs-review-warnings li{margin:5px 0;line-height:1.45}

/* Container-aware reflow protects the plugin even when WordPress or a theme
   gives it less room than expected. */
@container ga-hfs-app (max-width:1050px){
  .ga-hfs-client-charts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ga-hfs-client-charts .ga-hfs-chart-card:first-child{grid-column:span 2}
  .ga-hfs-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ga-hfs-results-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@container ga-hfs-app (max-width:760px){
  .ga-hfs-client-charts{grid-template-columns:1fr}
  .ga-hfs-client-charts .ga-hfs-chart-card:first-child{grid-column:auto}
  .ga-hfs-summary-grid,.ga-hfs-results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:1300px){
  body.ga-hfs-page .wp-block-shortcode:has(#ga-hfs-app){width:calc(100% - 40px) !important}
  .ga-hfs{width:100%;max-width:1200px}
  .ga-hfs-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  body.ga-hfs-page .wp-block-shortcode:has(#ga-hfs-app){width:calc(100% - 32px) !important}
  .ga-hfs{width:100%;max-width:100%}
  .ga-hfs h2{font-size:34px}
  .ga-hfs-grid-2,.ga-hfs-grid-3{grid-template-columns:1fr}
  .ga-hfs-result-head{grid-template-columns:160px minmax(0,1fr);gap:26px}
  .ga-hfs-score-ring{width:150px;height:150px}
}

@media(max-width:900px){
  .ga-hfs-checklist-head{display:none}
  .ga-hfs-choice-item,
  .ga-hfs-choice-assets,
  .ga-hfs-choice-liabilities,
  .ga-hfs-choice-income,
  .ga-hfs-choice-expenses{
    grid-template-columns:minmax(0,1fr) minmax(150px,.75fr);
    border:1px solid var(--ga-line);
    margin-bottom:12px;
    padding:13px 14px;
  }
  .ga-hfs-choice-liabilities .ga-hfs-choice-label{grid-column:1/-1}
  .ga-hfs-choice-liabilities{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ga-hfs-choice-field>span{display:block;margin:0 0 5px;font-size:12px;color:#666}
}
@media(max-width:650px){
  .ga-hfs-choice-item,
  .ga-hfs-choice-assets,
  .ga-hfs-choice-liabilities,
  .ga-hfs-choice-income,
  .ga-hfs-choice-expenses{
    grid-template-columns:1fr;
    gap:10px;
  }
  .ga-hfs-choice-liabilities .ga-hfs-choice-label{grid-column:auto}
}

@media(max-width:600px){
  body.ga-hfs-page .wp-block-shortcode:has(#ga-hfs-app){width:calc(100% - 24px) !important}
  .ga-hfs h2{font-size:29px}
  .ga-hfs p{font-size:16px}
  .ga-hfs-progress-text{font-size:12px}
  .ga-hfs-actions{align-items:stretch}
  .ga-hfs-actions,.ga-hfs-actions-right{flex-direction:column}
  .ga-hfs-actions button{width:100%}
  .ga-hfs-summary-grid,.ga-hfs-results-grid{grid-template-columns:1fr}
  .ga-hfs-result-head{grid-template-columns:1fr;text-align:center}
  .ga-hfs-score-ring{margin:0 auto}
  .ga-hfs-chart-card,.ga-hfs-narrative{padding:20px}
  .ga-hfs-score-row{grid-template-columns:minmax(95px,40%) minmax(28px,1fr) 32px;gap:8px}
  .ga-hfs-entry-table td{grid-template-columns:1fr;gap:4px}
}

/* Use the wide desktop canvas efficiently: simple one-amount categories appear
   two across, while the more detailed liability checklist remains full width. */
.ga-hfs-assets-head,.ga-hfs-income-head,.ga-hfs-expenses-head{display:none}
#ga-hfs-assets-list,#ga-hfs-income-list,#ga-hfs-expenses-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px 16px;
  margin-top:26px;
}
.ga-hfs-choice-assets,.ga-hfs-choice-income,.ga-hfs-choice-expenses{
  grid-template-columns:minmax(0,1.15fr) minmax(155px,.85fr);
  border:1px solid var(--ga-line);
  padding:12px 14px;
}
.ga-hfs-choice-assets .ga-hfs-choice-field>span,
.ga-hfs-choice-income .ga-hfs-choice-field>span,
.ga-hfs-choice-expenses .ga-hfs-choice-field>span{
  display:block;
  margin:0 0 5px;
  font-size:12px;
  color:#666;
}
@media(max-width:900px){
  #ga-hfs-assets-list,#ga-hfs-income-list,#ga-hfs-expenses-list{grid-template-columns:1fr}
}
@media(max-width:650px){
  .ga-hfs-choice-assets,.ga-hfs-choice-income,.ga-hfs-choice-expenses{grid-template-columns:1fr}
}

/* v1.0.6 comprehensive asset taxonomy */
.ga-hfs-asset-warning{margin:18px 0 4px}
#ga-hfs-assets-list{align-items:start}
.ga-hfs-asset-group{
  grid-column:1 / -1;
  border-bottom:2px solid #111;
  padding:24px 0 8px;
  margin-top:6px;
}
.ga-hfs-asset-group:first-child{padding-top:4px}
.ga-hfs-asset-group h3{
  margin:0;
  font-size:21px;
  line-height:1.25;
}
.ga-hfs-asset-group p{
  margin:6px 0 0;
  font-size:13px;
  line-height:1.45;
  color:var(--ga-muted);
  max-width:100%;
}
@media(max-width:900px){
  .ga-hfs-asset-group{padding-top:18px}
}

/* Financial-value semantics */
.ga-hfs{--ga-positive:#32CD32;--ga-negative:#ff0000}
.ga-hfs-value-positive strong,
.ga-hfs-value-positive .ga-hfs-money-value{color:var(--ga-positive)!important}
.ga-hfs-value-negative strong,
.ga-hfs-value-negative .ga-hfs-money-value{color:var(--ga-negative)!important}
.ga-hfs-net-worth strong{font-weight:800!important}
.ga-hfs-summary-grid .ga-hfs-net-worth strong{font-size:27px}

/* Client-entered field values are intentionally neutral. Financial meaning is
   communicated in calculated results and charts, not by coloring typed inputs. */
.ga-hfs input:not([type="checkbox"]):not([type="radio"]),
.ga-hfs select,
.ga-hfs textarea{color:#111!important}

.ga-hfs-onboarding-accounts{margin-top:28px}.ga-hfs-onboarding-accounts fieldset{padding:18px;border:1px solid #d9e1ed;margin:18px 0}.ga-hfs-onboarding-accounts legend{font-weight:700;padding:0 6px}#ga-hfs-onboarding-continue{display:inline-block;text-decoration:none;padding:14px 22px;border-radius:6px;background:#3d5bff;color:white;font-weight:700}#ga-hfs-onboarding-continue[hidden]{display:none}#ga-financial-workspace{scroll-margin-top:24px}

/* Align cash-flow inputs within each row, including labels with help text. */
.ga-hfs .ga-hfs-cashflow-grid>label{display:flex;flex-direction:column;align-items:stretch;gap:6px}
.ga-hfs .ga-hfs-cashflow-grid>label>input{margin-top:auto;flex:none}
