.hcs-wrap {
    --bg:#F1F5F1; --panel:#FFFFFF; --ink:#16262A; --ink-soft:#5A6B6D; --line:#DEE7E1;
    --teal:#1F6F6B; --teal-deep:#123C3D; --teal-pale:#EAF3EF;
    --blue:#4C7EA8; --green:#2F8F5B; --amber:#D98E2B; --red:#C1493B;
  }.hcs-wrap * {box-sizing:border-box;}.hcs-wrap, .hcs-wrap {margin:0;padding:0;}.hcs-wrap {background:var(--bg); color:var(--ink); font-family:'IBM Plex Sans', system-ui, sans-serif; padding:26px 16px 60px; box-sizing:border-box; line-height:normal;}
  .hcs-wrap p, .hcs-wrap h1, .hcs-wrap h2, .hcs-wrap h3, .hcs-wrap h4, .hcs-wrap ul, .hcs-wrap table{margin:0; padding:0;}
  .hcs-wrap img{max-width:100%;}
  .hcs-wrap svg{max-width:100%; height:auto; display:block;}
  .hcs-wrap{border:1px solid var(--line); border-radius:18px; overflow:hidden; container-type:inline-size; max-width:100%;}.hcs-wrap .app {max-width:1120px;margin:0 auto;}.hcs-wrap .masthead {display:flex; justify-content:space-between; align-items:flex-end; border-bottom:1px solid var(--line); padding-bottom:16px; margin-bottom:24px; gap:14px; flex-wrap:wrap;}.hcs-wrap .masthead .eyebrow {font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--teal); margin:0 0 6px;}.hcs-wrap .masthead h1 {font-family:'Space Grotesk', sans-serif; font-size:clamp(24px,3.6vw,32px); margin:0; letter-spacing:-0.01em; color:var(--teal-deep);}.hcs-wrap .masthead .sub {font-size:12.5px; color:var(--ink-soft); max-width:320px; text-align:right;}.hcs-wrap .layout {display:grid; grid-template-columns:minmax(0,320px) minmax(0,1fr); gap:20px; align-items:start; max-width:100%;}
  @media (max-width:840px){.hcs-wrap .layout {grid-template-columns:1fr;} }
@container (max-width:760px){.hcs-wrap .layout{grid-template-columns:1fr;}}.hcs-wrap .panel {background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:22px; min-width:0; max-width:100%;}.hcs-wrap .profile-panel {position:sticky; top:20px;}
  @media (max-width:840px){.hcs-wrap .profile-panel {position:static;} }
@container (max-width:760px){.hcs-wrap .profile-panel{position:static;}}.hcs-wrap .profile-panel h2 {font-family:'Space Grotesk', sans-serif; font-size:16px; margin:0 0 4px; color:var(--teal-deep);}.hcs-wrap .profile-panel .hint {font-size:11.5px; color:var(--ink-soft); margin:0 0 18px; line-height:1.5;}.hcs-wrap .field {margin-bottom:15px;}.hcs-wrap .field label {display:block; font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:7px;}.hcs-wrap .field .optional {text-transform:none; font-weight:400; font-style:italic; letter-spacing:0;}.hcs-wrap .seg {display:flex; border:1px solid var(--line); border-radius:9px; overflow:hidden;}.hcs-wrap .seg button {flex:1; padding:8px 6px; border:none; background:var(--panel); color:var(--ink-soft); font-family:'IBM Plex Sans', sans-serif; font-size:12.5px; font-weight:500; cursor:pointer; transition:.15s;}.hcs-wrap .seg button + button {border-left:1px solid var(--line);}.hcs-wrap .seg button.active {background:var(--teal); color:#fff;}.hcs-wrap .num-row {display:flex; gap:8px;}.hcs-wrap .num-row input {flex:1; min-width:0;}.hcs-wrap .num-row3 {display:flex; gap:6px;}.hcs-wrap .num-row3 > div {flex:1;}.hcs-wrap input[type=number], .hcs-wrap input[type=date], .hcs-wrap input[type=text] {
    width:100%; padding:10px 11px; border:1px solid var(--line); border-radius:9px;
    font-family:'IBM Plex Mono', monospace; font-size:14px; color:var(--ink); background:#FAFCFB;
  }.hcs-wrap input[type=file] {width:100%; font-size:12px; color:var(--ink-soft); font-family:'IBM Plex Sans', sans-serif;}.hcs-wrap select {width:100%; padding:10px 11px; border:1px solid var(--line); border-radius:9px; font-family:'IBM Plex Sans', sans-serif; font-size:13px; color:var(--ink); background:#FAFCFB;}.hcs-wrap input:focus, .hcs-wrap select:focus {outline:2px solid var(--teal); outline-offset:1px;}.hcs-wrap .sub-unit {font-size:10.5px; color:var(--ink-soft); margin-top:4px; font-family:'IBM Plex Mono', monospace;}.hcs-wrap .group-divider {margin:20px 0 14px; padding-top:14px; border-top:1px dashed var(--line); font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--teal);}.hcs-wrap button.calc {width:100%; padding:13px; margin-top:8px; border:none; border-radius:9px; background:var(--teal-deep); color:#fff; font-family:'Space Grotesk', sans-serif; font-size:15px; font-weight:600; cursor:pointer; transition:.15s;}.hcs-wrap button.calc:hover {background:var(--teal);}.hcs-wrap button.calc:focus-visible {outline:2px solid var(--teal-deep); outline-offset:2px;}.hcs-wrap button.small {padding:10px 16px; border:none; border-radius:8px; background:var(--teal); color:#fff; font-family:'IBM Plex Sans', sans-serif; font-size:12.5px; font-weight:600; cursor:pointer; white-space:nowrap;}.hcs-wrap button.small:hover {background:var(--teal-deep);}.hcs-wrap button.ghost {background:none; border:1px solid var(--line); color:var(--ink-soft);}.hcs-wrap button.ghost:hover {background:#F5F8F6; color:var(--ink);}.hcs-wrap .placeholder {color:var(--ink-soft); font-size:14px; line-height:1.7; padding:10px 4px;}.hcs-wrap .tabs {display:flex; gap:4px; border-bottom:1px solid var(--line); margin:-22px -22px 20px; padding:0 18px; overflow-x:auto;}.hcs-wrap .tab {padding:14px 12px; background:none; border:none; border-bottom:2px solid transparent; color:var(--ink-soft); font-family:'IBM Plex Sans', sans-serif; font-size:13px; font-weight:500; cursor:pointer; white-space:nowrap;}.hcs-wrap .tab.active {color:var(--teal-deep); border-bottom-color:var(--teal);}.hcs-wrap .tab-panel {display:none;}.hcs-wrap .tab-panel.active {display:block;}.hcs-wrap h3.metric-title {font-family:'Space Grotesk', sans-serif; font-size:18px; margin:0 0 4px; color:var(--teal-deep);}.hcs-wrap p.metric-desc {font-size:12.5px; color:var(--ink-soft); margin:0 0 20px; max-width:560px; line-height:1.6;}.hcs-wrap .result-top {display:flex; gap:26px; align-items:center; flex-wrap:wrap; margin-bottom:6px;}.hcs-wrap .gauge-wrap {flex:0 0 auto; text-align:center;}.hcs-wrap .readout {flex:1; min-width:180px;}.hcs-wrap .readout .value {font-family:'IBM Plex Mono', monospace; font-size:46px; font-weight:600; color:var(--teal-deep); line-height:1;}.hcs-wrap .readout .value-unit {font-size:14px; color:var(--ink-soft); font-family:'IBM Plex Mono', monospace;}.hcs-wrap .readout .category-tag {display:inline-block; margin-top:10px; padding:5px 12px; border-radius:20px; font-size:12.5px; font-weight:600; color:#fff;}.hcs-wrap .readout .helper-line {margin-top:12px; font-size:12.5px; color:var(--ink-soft); line-height:1.6;}.hcs-wrap .readout .helper-line strong {color:var(--ink); font-family:'IBM Plex Mono', monospace;}.hcs-wrap hr.rule {border:none; border-top:1px solid var(--line); margin:20px 0;}.hcs-wrap .table-scroll{width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch;}
  .hcs-wrap table.range {width:100%; border-collapse:collapse; font-size:13px;}.hcs-wrap table.range th {text-align:left; font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft); padding:6px 8px; border-bottom:1px solid var(--line);}.hcs-wrap table.range td {padding:8px 8px; border-bottom:1px solid var(--line);}.hcs-wrap table.range tr.active td {background:var(--teal-pale); font-weight:600;}.hcs-wrap .dot {display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:7px;}.hcs-wrap .guideline-note {margin-top:18px; padding:14px 16px; background:#F5F8F6; border-left:3px solid var(--teal); border-radius:6px; font-size:12px; line-height:1.65; color:var(--ink-soft);}.hcs-wrap .guideline-note strong {color:var(--ink);}.hcs-wrap .guideline-note p {margin:0 0 8px;}.hcs-wrap .guideline-note p:last-child {margin-bottom:0;}.hcs-wrap .missing-note {padding:16px; background:#FBF3ED; border-left:3px solid var(--amber); border-radius:6px; font-size:13px; color:var(--ink); line-height:1.6;}.hcs-wrap .rbar-wrap {margin:6px 0 4px;}.hcs-wrap .rbar-track {position:relative; height:16px; border-radius:8px; overflow:hidden; display:flex;}.hcs-wrap .rbar-seg {height:100%;}.hcs-wrap .rbar-marker {position:absolute; top:-7px; width:2px; height:30px; background:var(--ink); border-radius:1px;}.hcs-wrap .rbar-marker::after {content:""; position:absolute; top:-5px; left:50%; transform:translateX(-50%); border-left:5px solid transparent; border-right:5px solid transparent; border-top:5px solid var(--ink);}.hcs-wrap .rbar-ticks {position:relative; height:18px; margin-top:2px;}.hcs-wrap .rbar-ticks span {position:absolute; transform:translateX(-50%); font-size:10px; color:var(--ink-soft); font-family:'IBM Plex Mono', monospace;}.hcs-wrap .barchart {margin-top:6px;}.hcs-wrap .barrow {display:flex; align-items:center; gap:10px; margin-bottom:9px; font-size:12.5px;}.hcs-wrap .barlabel {width:118px; color:var(--ink-soft); flex:0 0 auto;}.hcs-wrap .bartrack {flex:1; background:#EEF2EF; border-radius:6px; height:15px; overflow:hidden;}.hcs-wrap .barfill {height:100%; background:var(--teal); border-radius:6px;}.hcs-wrap .barfill.hi {background:var(--teal-deep);}.hcs-wrap .barvalue {width:90px; text-align:right; font-family:'IBM Plex Mono', monospace; color:var(--ink); flex:0 0 auto;}.hcs-wrap .ov-grid {display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
  @media (max-width:640px){.hcs-wrap .ov-grid {grid-template-columns:1fr 1fr;} }.hcs-wrap .ov-card {border:1px solid var(--line); border-left:4px solid var(--teal); border-radius:10px; padding:16px; background:#FCFDFC;}.hcs-wrap .ov-label {font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-soft); margin-bottom:6px;}.hcs-wrap .ov-value {font-family:'IBM Plex Mono', monospace; font-size:24px; font-weight:600; color:var(--teal-deep); line-height:1.1;}.hcs-wrap .ov-sub {font-size:12px; color:var(--ink-soft); margin-top:5px;}.hcs-wrap .ov-card.empty {color:var(--ink-soft); font-size:12px; display:flex; align-items:center; justify-content:center; text-align:center; border-left-color:var(--line);}.hcs-wrap .ov-nudge {margin-top:16px; font-size:12px; color:var(--ink-soft);}.hcs-wrap .ov-nudge a {color:var(--teal); font-weight:600; cursor:pointer; text-decoration:none;}.hcs-wrap .footer-note {text-align:center; font-size:11.5px; color:var(--ink-soft); margin-top:22px;}.hcs-wrap /* ---- Progress dashboard ---- */
  .storage-note {font-size:11.5px; color:var(--ink-soft); background:#F5F8F6; border-left:3px solid var(--teal); border-radius:6px; padding:10px 14px; margin-bottom:20px; line-height:1.6;}.hcs-wrap .prog-card {border:1px solid var(--line); border-radius:12px; padding:18px 20px; margin-bottom:18px; background:#FCFDFC;}.hcs-wrap .prog-card h4 {font-family:'Space Grotesk', sans-serif; font-size:15px; margin:0 0 12px; color:var(--teal-deep); display:flex; justify-content:space-between; align-items:center;}.hcs-wrap .prog-card h4 select {width:auto; font-size:11.5px; padding:6px 8px;}.hcs-wrap .prog-form-row {display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; align-items:flex-end;}.hcs-wrap .prog-form-row > * {flex:1; min-width:110px;}.hcs-wrap .prog-form-row button {flex:0 0 auto; min-width:auto;}.hcs-wrap .chart-box {margin-bottom:8px;}.hcs-wrap .chart-empty {font-size:12.5px; color:var(--ink-soft); padding:24px 0; text-align:center;}.hcs-wrap table.ptable {width:100%; min-width:480px; border-collapse:collapse; font-size:12.5px; margin-top:6px;}.hcs-wrap table.ptable th {text-align:left; font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-soft); padding:5px 6px; border-bottom:1px solid var(--line);}.hcs-wrap table.ptable td {padding:7px 6px; border-bottom:1px solid var(--line); font-family:'IBM Plex Mono', monospace;}.hcs-wrap .del-btn {background:none; border:none; color:var(--red); cursor:pointer; font-size:14px; padding:2px 6px; line-height:1;}.hcs-wrap .del-btn:hover {background:#FBEAE7; border-radius:4px;}.hcs-wrap .photo-grid {display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:12px;}.hcs-wrap .photo-item {border:1px solid var(--line); border-radius:10px; overflow:hidden; background:#fff;}.hcs-wrap .photo-item img {width:100%; height:120px; object-fit:cover; display:block;}.hcs-wrap .photo-item .photo-meta {padding:7px 8px; font-size:10.5px; color:var(--ink-soft); display:flex; justify-content:space-between; align-items:center; gap:4px;}.hcs-wrap .photo-item .photo-meta .pdate {font-family:'IBM Plex Mono', monospace; color:var(--ink);}.hcs-wrap .goal-bar-track {height:20px; border-radius:10px; background:#EEF2EF; overflow:hidden; margin:14px 0 8px;}.hcs-wrap .goal-bar-fill {height:100%; background:linear-gradient(90deg, var(--teal), var(--teal-deep)); border-radius:10px; display:flex; align-items:center; justify-content:flex-end; color:#fff; font-size:10.5px; font-family:'IBM Plex Mono', monospace; padding-right:8px; transition:width .3s;}.hcs-wrap .goal-stats {display:flex; gap:20px; flex-wrap:wrap; font-size:12.5px; color:var(--ink-soft);}.hcs-wrap .goal-stats strong {color:var(--ink); font-family:'IBM Plex Mono', monospace;}
