:root{--brand-ink:#28243e;--brand-violet:#8957e5;--brand-coral:#ffae89;--brand-ivory:#faf6ef;--surface:var(--brand-ivory);--card:#fff;--text:var(--brand-ink);--text-muted:#5a5670;--action:var(--brand-violet);--on-action:#fff;--link:#6b3fc7;--accent:var(--brand-coral);--on-accent:var(--brand-ink);--focus:var(--brand-ink);--danger:#b3261e;--border:#c9c3d8}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--surface);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:1rem;line-height:1.5}.portal-shell{flex-direction:column;align-items:center;min-height:100dvh;padding:1.5rem 1rem 2rem;display:flex}.portal-brand{align-items:center;gap:.75rem;margin:0 0 1.5rem;font-size:1.5rem;font-weight:700;display:flex}.brand-logo-disc{fill:var(--brand-ink)}.brand-logo-mark{fill:var(--accent)}.portal-card{background:var(--card);border:1px solid var(--border);border-top:.25rem solid var(--accent);border-radius:.75rem;width:100%;max-width:26rem;padding:1.5rem 1.25rem}.portal-wide{max-width:48rem}h1,h2{margin:0 0 1rem;line-height:1.25}h2{font-size:1.375rem}h2:focus{outline:none}.portal-form{flex-direction:column;gap:.25rem;display:flex}label{margin-top:.75rem;font-weight:600}.field-hint{color:var(--text-muted);margin:0;font-size:.875rem}input,textarea,select{border:1px solid var(--text-muted);background:var(--card);width:100%;min-height:2.75rem;color:var(--text);font:inherit;border-radius:.5rem;padding:.5rem .75rem}input[aria-invalid=true]{border-color:var(--danger);border-width:2px}button{border:2px solid var(--action);background:var(--card);min-height:2.75rem;color:var(--link);font:inherit;cursor:pointer;border-radius:.5rem;padding:.5rem 1rem;font-weight:600}button[type=submit],.primary{background:var(--action);color:var(--on-action);margin-top:1rem}button.link{background:0 0;border-color:#0000;text-decoration:underline}button:disabled{opacity:.6;cursor:progress}.portal-actions{flex-direction:column;gap:.5rem;margin-top:.75rem;display:flex}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.portal-alert,.portal-notice{border:1px solid var(--border);border-radius:.5rem;margin:1rem 0 0;padding:.75rem 1rem}.portal-alert{border-color:var(--danger);color:var(--danger);font-weight:600}.portal-notice{background:var(--surface)}@media (width>=40rem){.portal-shell{justify-content:center;padding-top:3rem}.portal-card{padding:2rem}.portal-actions{flex-flow:wrap}}@media (prefers-reduced-motion:no-preference){button{transition:background-color .15s}.app-nav button{transition:background-color .15s,box-shadow .15s}}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-header{z-index:10;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0}.app-header-inner{flex-wrap:wrap;align-items:center;gap:.25rem 1rem;max-width:60rem;margin-inline:auto;padding:.5rem 1rem;display:flex}.app-brand{margin:0;align-items:center;gap:.5rem;margin-right:auto;font-size:1.125rem;font-weight:700;line-height:1;display:flex}.app-nav{flex-basis:100%;order:3;gap:.25rem;display:flex}.app-nav button{border-color:#0000;border-radius:.375rem .375rem 0 0;flex:auto}.app-nav button[aria-current=page]{color:var(--link);box-shadow:inset 0 -3px 0 0 var(--action)}.app-account{position:relative}.app-menu{background:var(--card);border:1px solid var(--border);border-radius:.5rem;min-width:13rem;padding:.375rem;position:absolute;top:calc(100% + .375rem);right:0;box-shadow:0 .5rem 1.5rem #28243e26}.app-menu[hidden]{display:none}.app-menu button{text-align:left;border-color:#0000;width:100%}.app-content{flex:1 0 auto;width:100%;max-width:48rem;margin-inline:auto;padding:1.25rem 1rem 3rem}.app-card{background:var(--card);border:1px solid var(--border);border-radius:.75rem;padding:1.25rem}.page-intro{color:var(--text-muted);margin:-.5rem 0 1.25rem}.description-input{resize:vertical;min-height:11rem;line-height:1.6}.field-counter{font-variant-numeric:tabular-nums}.dirty-note{color:var(--text-muted);margin:.5rem 0 0;font-size:.875rem}.lab-result,.lab-history{margin-top:1rem}.lab-result h3,.lab-history h3{margin:0 0 .5rem}.lab-history ul{margin:0;padding-left:1.25rem}.lab-history li{margin:.25rem 0}@media (width>=40rem){.app-card{padding:2rem}.app-content{padding:2rem 1.5rem 3rem}}@media (width>=48rem){.app-brand{margin-right:0}.app-nav{flex-basis:auto;order:0;margin-left:1rem}.app-nav button{flex:0 auto;padding-inline:.875rem}.app-account{margin-left:auto}}
