:root{--hh-spike: #E2C479;--hh-spike-soft: #f5e9c8;--hh-spike-deep: #c8a85a;--hh-brown: #6F4E2C;--hh-brown-mid: #8D6E4F;--hh-charcoal: #222222;--hh-graphite: #555555;--hh-mist: #888888;--hh-rule: #e8eae9;--hh-canvas: #f6f4ef;--hh-card: #ffffff;--hh-card-muted: #faf8f3;--ok: #2f7d4a;--ok-soft: #e7f3ec;--hh-green: #1b8245;--hh-red: #a93226;--warn: #b67c1f;--warn-soft: #fbf2dd;--danger: #a93226;--danger-soft: #f7e1de;--gap-1: 4px;--gap-2: 8px;--gap-3: 12px;--gap-4: 16px;--gap-5: 24px;--gap-6: 32px;--gap-7: 48px;--gap-8: 64px;--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--shadow-sm: 0 1px 2px rgba(34, 34, 34, .05), 0 1px 4px rgba(34, 34, 34, .04);--shadow-md: 0 4px 12px rgba(34, 34, 34, .06), 0 2px 4px rgba(34, 34, 34, .04);--font-body: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Monaco, "Cascadia Mono", "Roboto Mono", monospace;--text-xs: 12px;--text-sm: 13.5px;--text-md: 15px;--text-lg: 17px;--text-xl: 20px;--text-2xl: 26px;--text-3xl: 34px}*,*:before,*:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;background:var(--hh-canvas);color:var(--hh-charcoal);font-family:var(--font-body);font-size:var(--text-md);line-height:1.6;font-weight:400}#root{min-height:100vh}main{max-width:1080px;margin:0 auto;padding:var(--gap-6) var(--gap-5) var(--gap-8)}@media (max-width: 720px){main{padding:var(--gap-4) var(--gap-3) var(--gap-6)}}h1,h2,h3,h4{color:var(--hh-charcoal);font-weight:700;letter-spacing:-.01em;line-height:1.2;margin:0 0 var(--gap-4)}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl);padding-bottom:var(--gap-3);border-bottom:2px solid var(--hh-spike);margin-bottom:var(--gap-5)}h3{font-size:var(--text-lg)}p{margin:0 0 var(--gap-4)}p strong{color:var(--hh-brown);font-weight:600}small{font-size:var(--text-sm);color:var(--hh-graphite);line-height:1.55}a{color:var(--hh-brown);text-decoration-color:var(--hh-spike);text-underline-offset:3px;text-decoration-thickness:1.5px;transition:color .12s ease}a:hover{color:var(--hh-brown-mid);text-decoration-color:var(--hh-brown)}code,pre{font-family:var(--font-mono);font-size:12.5px}.app-header{background:var(--hh-card);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:var(--gap-5) var(--gap-5) var(--gap-3);margin-bottom:var(--gap-6);border:1px solid var(--hh-rule);position:relative;overflow:hidden}.app-header:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--hh-spike) 0%,var(--hh-brown-mid) 50%,var(--hh-brown) 100%)}.app-header h1{margin-bottom:var(--gap-2);letter-spacing:-.02em}.app-header h1:after{content:".";color:var(--hh-spike);margin-left:2px}.app-header p{margin:var(--gap-3) 0 var(--gap-4)}.app-header small{display:flex;flex-wrap:wrap;align-items:center;gap:var(--gap-2) var(--gap-4);font-size:var(--text-sm)}.app-header small strong{color:var(--hh-charcoal);font-weight:700;font-variant-numeric:tabular-nums}.app-header .metric{color:var(--hh-green);font-size:17px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em;vertical-align:middle;line-height:1}.app-header .reset-row{margin:var(--gap-5) 0 var(--gap-3);text-align:center}.progress{padding:var(--gap-4) 0 var(--gap-2);border-top:1px solid var(--hh-rule);margin-top:var(--gap-4);position:relative}.progress-track{position:absolute;top:36px;left:12px;right:12px;height:4px;background:var(--hh-rule);border-radius:999px;overflow:hidden;z-index:0}.progress-fill{height:100%;background:linear-gradient(90deg,var(--hh-spike) 0%,var(--hh-brown-mid) 100%);transition:width .25s ease;border-radius:999px}.progress ol{list-style:none;counter-reset:step;margin:0;padding:0;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:var(--gap-2);position:relative;z-index:1}.progress-step{counter-increment:step;display:flex;flex-direction:column;align-items:center;text-align:center}.progress-step button{background:none;border:none;padding:0;cursor:pointer;font-family:inherit;display:flex;flex-direction:column;align-items:center;gap:var(--gap-2);width:100%;color:var(--hh-graphite);font-size:11.5px;font-weight:500;line-height:1.25;transition:color .12s ease}.progress-step button:before{content:counter(step);display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--hh-card);border:2px solid var(--hh-rule);color:var(--hh-mist);font-size:var(--text-sm);font-weight:600;font-variant-numeric:tabular-nums;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}.progress-step--done button{color:var(--hh-graphite)}.progress-step--done button:before{background:var(--hh-spike);border-color:var(--hh-spike-deep);color:var(--hh-brown)}.progress-step--current button{color:var(--hh-charcoal);font-weight:700}.progress-step--current button:before{background:var(--hh-charcoal);border-color:var(--hh-charcoal);color:var(--hh-spike);transform:scale(1.15);box-shadow:0 0 0 4px var(--hh-spike-soft)}.progress-step--todo button:hover{color:var(--hh-brown)}.progress-step--todo button:hover:before{border-color:var(--hh-spike);color:var(--hh-brown)}.progress-step button:focus-visible{outline:none}.progress-step button:focus-visible:before{box-shadow:0 0 0 4px var(--hh-spike-soft)}@media (max-width: 900px){.progress ol{grid-template-columns:repeat(5,minmax(0,1fr));row-gap:var(--gap-4)}.progress-track{display:none}}main>section{background:var(--hh-card);border:1px solid var(--hh-rule);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:var(--gap-6);margin-bottom:var(--gap-5)}@media (max-width: 720px){main>section{padding:var(--gap-4)}}table{width:100%;border-collapse:separate;border-spacing:0;margin:var(--gap-4) 0;background:var(--hh-card);border:1px solid var(--hh-rule);border-radius:var(--r-md);overflow:hidden;font-size:var(--text-sm)}thead th{background:var(--hh-charcoal);color:var(--hh-spike);font-weight:600;text-align:left;padding:10px 14px;font-size:var(--text-sm);letter-spacing:.02em;text-transform:uppercase;border-bottom:2px solid var(--hh-spike)}thead th:not(:first-child){text-align:right}tbody td{padding:10px 14px;border-top:1px solid var(--hh-rule);vertical-align:middle;font-variant-numeric:tabular-nums}tbody td:not(:first-child){text-align:right}tbody tr:nth-child(2n) td{background:var(--hh-card-muted)}tbody tr:hover td{background:var(--hh-spike-soft)}tbody td:first-child{color:var(--hh-graphite);font-weight:500}tbody td:last-child{font-weight:600;color:var(--hh-charcoal)}tbody td.delta-good{color:var(--hh-green);font-weight:700}tbody td.delta-bad{color:var(--hh-red);font-weight:700}input[type=number],input[type=text],select{font-family:inherit;font-size:var(--text-sm);padding:6px 10px;border:1px solid var(--hh-rule);border-radius:var(--r-sm);background:var(--hh-card);color:var(--hh-charcoal);min-width:80px;transition:border-color .12s ease,box-shadow .12s ease;font-variant-numeric:tabular-nums}input[type=number]{width:100px;text-align:right}select{min-width:140px;cursor:pointer}input[type=number]:focus,input[type=text]:focus,select:focus{outline:none;border-color:var(--hh-spike);box-shadow:0 0 0 3px var(--hh-spike-soft)}input[type=radio]{accent-color:var(--hh-brown);margin-right:6px}.number-input-affix{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap}.number-input-affix .affix{color:var(--hh-graphite);font-size:var(--text-sm);font-variant-numeric:tabular-nums}label{color:var(--hh-charcoal);display:inline-flex;align-items:center;gap:var(--gap-2)}section>p label{margin-right:var(--gap-5)}section>p:has(>label)>label{font-weight:700;color:var(--hh-charcoal);font-size:var(--text-md);display:inline-flex;flex-wrap:wrap;gap:var(--gap-3);align-items:center}section>p:has(+fieldset){font-weight:700;color:var(--hh-charcoal);font-size:var(--text-md)}section>p>label input,section>p>label select{font-weight:400;color:var(--hh-charcoal)}section>p:has(>label),section>p:has(+fieldset){margin-top:var(--gap-7);margin-bottom:var(--gap-3)}section>p:has(>small){margin-top:var(--gap-2);margin-bottom:var(--gap-4)}section>fieldset{border:1px solid var(--hh-rule);border-radius:var(--r-md);background:var(--hh-card-muted);padding:var(--gap-3) var(--gap-4);margin:0 0 var(--gap-3);display:flex;flex-direction:column;gap:var(--gap-3)}section>fieldset label{font-weight:500;color:var(--hh-charcoal);margin-right:0;display:flex;align-items:center;gap:var(--gap-2)}button{font-family:inherit}section>button,section p button,section table button,.app-header>p button,footer button{background:var(--hh-spike);color:var(--hh-brown);border:1px solid var(--hh-spike-deep);padding:8px 14px;border-radius:var(--r-sm);font-weight:600;font-size:var(--text-sm);cursor:pointer;transition:background .12s ease,color .12s ease,transform 80ms ease}section>button:hover:not(:disabled),section p button:hover:not(:disabled),section table button:hover:not(:disabled),.app-header>p button:hover:not(:disabled),footer button:hover:not(:disabled){background:var(--hh-spike-deep);color:#fff}section>button:active,section p button:active,section table button:active,.app-header>p button:active,footer button:active{transform:translateY(1px)}p[role=alert],[role=alert]{background:var(--warn-soft);border:1px solid var(--warn);border-left:4px solid var(--warn);border-radius:var(--r-md);color:var(--hh-charcoal);padding:var(--gap-3) var(--gap-4);font-size:var(--text-sm);margin:var(--gap-4) 0}details{background:var(--hh-spike-soft);border:1px solid var(--hh-spike-deep);border-radius:var(--r-md);padding:var(--gap-3) var(--gap-4);margin:var(--gap-4) 0;font-size:var(--text-sm)}details summary{cursor:pointer;font-weight:700;color:var(--hh-brown);font-size:var(--text-lg);list-style:none;display:inline-flex;align-items:center;gap:var(--gap-3);padding:4px 0;-webkit-user-select:none;user-select:none}details summary::-webkit-details-marker{display:none}details summary::marker{content:""}details summary:before{content:"▶";display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex:0 0 36px;border-radius:50%;background:var(--hh-spike);color:var(--hh-brown);border:2px solid var(--hh-spike-deep);font-size:16px;line-height:1;padding-left:3px;box-shadow:var(--shadow-sm);transition:transform .22s ease,background .12s ease}details[open] summary:before{transform:rotate(90deg)}details summary:hover:before{background:var(--hh-spike-deep);color:#fff}details pre{margin:var(--gap-3) 0 0;white-space:pre-wrap;color:var(--hh-charcoal);background:#fff9;padding:var(--gap-3);border-radius:var(--r-sm);border:1px solid rgba(0,0,0,.05)}footer{margin-top:var(--gap-7);padding-top:var(--gap-5);border-top:1px solid var(--hh-rule)}footer p{margin:0}.research-link{margin:var(--gap-4) 0}.research-link a{font-weight:700;letter-spacing:.06em;font-size:var(--text-md);text-decoration-thickness:2px}.research-link a strong{font-weight:700}.page-nav{display:flex;justify-content:flex-end;align-items:center;gap:var(--gap-3);margin:var(--gap-6) 0 var(--gap-4)}.page-nav button{font-size:var(--text-lg);font-weight:600;padding:14px 28px;border-radius:var(--r-md);letter-spacing:.01em;min-height:56px;transition:background .12s ease,color .12s ease,transform 80ms ease,box-shadow .12s ease}.page-nav-prev{background:transparent!important;color:var(--hh-brown)!important;border:1.5px solid var(--hh-brown-mid)!important}.page-nav-prev:hover:not(:disabled){background:var(--hh-spike-soft)!important;color:var(--hh-brown)!important}.page-nav-next{background:var(--hh-spike)!important;color:var(--hh-brown)!important;border:1.5px solid var(--hh-spike-deep)!important;box-shadow:0 4px 12px #e2c47966}.page-nav-next:hover:not(:disabled){background:var(--hh-brown)!important;color:var(--hh-spike)!important;box-shadow:0 6px 16px #6f4e2c4d;transform:translateY(-1px)}.page-nav-next:active{transform:translateY(0);box-shadow:0 2px 6px #6f4e2c33}@media (max-width: 600px){.page-nav{flex-direction:column-reverse;align-items:stretch}.page-nav button{width:100%}}@media print{body{background:#fff}.progress,.page-nav,.app-header:before{display:none}main>section{box-shadow:none;border-color:#ccc;page-break-inside:avoid}details{background:transparent;border-color:#ccc}details[open] summary{display:none}}
