*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-body);color:var(--color-text-body);background:var(--color-surface-page);line-height:1.55;font-size:17px}h1,h2,h3{font-family:var(--font-heading);color:var(--color-text-heading);line-height:1.25}a{color:var(--color-link-fg)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.chip:focus-within,.navcard:focus-visible{outline:3px solid var(--color-action-link);outline-offset:2px;border-radius:var(--radius-sm)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--space-3);top:-100px;background:var(--color-surface-page);color:var(--color-link-fg);padding:var(--space-2) var(--space-4);border-radius:var(--radius-1);z-index:50;transition:top .15s ease}.skip-link:focus{top:var(--space-3)}.portal{min-height:100vh;display:flex;flex-direction:column}.portal__header{background:var(--color-surface-dark);color:var(--color-text-on-dark);padding:var(--space-4) var(--space-4) 0;position:sticky;top:0;z-index:20}.portal__brandrow{max-width:860px;margin:0 auto;width:100%;padding-bottom:var(--space-3)}.portal__brandmark{display:flex;flex-direction:column;gap:2px}.portal__wordmark{font-family:var(--font-heading);font-size:1.15rem;font-weight:700;letter-spacing:.01em}.portal__product{color:var(--color-text-on-dark);opacity:.72;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase}.portal__nav{max-width:860px;margin:0 auto;width:100%}.nav{list-style:none;display:flex;gap:var(--space-1);margin:0;padding:0 0 var(--space-2);overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.nav__link{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:64px;padding:var(--space-2) var(--space-3);text-decoration:none;color:var(--color-text-on-dark);opacity:.78;border-radius:var(--radius-1);font-size:.72rem;white-space:nowrap;border-bottom:3px solid transparent}.nav__link:hover{opacity:1}.nav__link--active{opacity:1;border-bottom-color:var(--color-action-cta)}.nav__icon{font-size:1.15rem;line-height:1}.portal__main{flex:1;width:100%;max-width:860px;margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-7)}.portal__footer{background:var(--color-footer-bg);color:var(--color-footer-fg);padding:var(--space-5) var(--space-4)}.portal__footer-line{max-width:860px;margin:0 auto var(--space-2);font-size:.82rem;opacity:.85}.portal__footer-brand{max-width:860px;margin:0 auto;font-size:.78rem;opacity:.6}.demo-banner{background:var(--color-feedback-warning);color:var(--color-text-heading);text-align:center;padding:var(--space-2) var(--space-4);font-size:.85rem}.page-heading{margin:0 0 var(--space-5)}.page-heading__title{margin:0;font-size:1.6rem}.page-heading__subtitle{margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:.98rem}.section-title{margin:var(--space-6) 0 var(--space-3);font-size:1.1rem}.card{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:var(--radius-2);padding:var(--space-5);margin-bottom:var(--space-4)}.card--muted{background:var(--color-surface-alt)}.card__title{margin:0 0 var(--space-3);font-size:1.08rem}.stack>*{margin-bottom:var(--space-3)}.note{color:var(--color-text-muted);font-size:.9rem;margin:var(--space-3) 0 0}.link{color:var(--color-link-fg);font-weight:600;text-decoration:none}.link:hover{text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);min-height:48px;border-radius:var(--radius-2);border:2px solid transparent;font-family:var(--font-body);font-size:.98rem;font-weight:600;text-decoration:none;cursor:pointer;line-height:1.2}.btn--lg{min-height:54px;font-size:1.05rem;padding:var(--space-3) var(--space-5)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--color-button-primary-bg);color:var(--color-button-primary-fg)}.btn--primary:hover{filter:brightness(.95)}.btn--ghost-dark{background:transparent;color:var(--color-action-link);border-color:var(--color-action-link)}.btn--ghost-dark:hover{background:var(--color-surface-alt)}.btn--danger{background:var(--color-feedback-error);color:var(--color-text-on-dark)}.btn--danger:hover{filter:brightness(.95)}.btn--danger-ghost{background:transparent;color:var(--color-feedback-error);border-color:var(--color-feedback-error)}.btn--danger-ghost:hover{background:var(--color-surface-alt)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px var(--space-2);border-radius:var(--radius-sm);font-size:.74rem;font-weight:700;letter-spacing:.02em;text-transform:capitalize;border:1px solid var(--color-border-default);background:var(--color-surface-alt);color:var(--color-text-body)}.badge--success{background:var(--color-feedback-success);color:var(--color-text-on-dark);border-color:transparent}.badge--warning{background:var(--color-feedback-warning);color:var(--color-text-heading);border-color:transparent}.badge--error{background:var(--color-feedback-error);color:var(--color-text-on-dark);border-color:transparent}.badge--info{background:var(--color-action-link);color:var(--color-text-on-dark);border-color:transparent}.badge--lock{background:var(--color-surface-dark);color:var(--color-text-on-dark);border-color:transparent;text-transform:none}.safety{border:2px solid var(--color-feedback-error);background:var(--color-surface-page);border-radius:var(--radius-3);padding:var(--space-5);margin-bottom:var(--space-5);border-left-width:8px}.safety__head{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.safety__badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--color-feedback-error);color:var(--color-text-on-dark);font-weight:800;flex:none}.safety__title{margin:0;font-size:1.15rem;color:var(--color-feedback-error)}.safety__body{margin:0 0 var(--space-4);font-size:.96rem}.safety__actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.state{border-radius:var(--radius-2);padding:var(--space-6) var(--space-5);text-align:center;border:1px solid var(--color-card-border);background:var(--color-card-bg);margin-bottom:var(--space-4)}.state--loading{color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;gap:var(--space-3)}.state--error{border-color:var(--color-feedback-error)}.state__title{margin:0 0 var(--space-2);font-weight:700;color:var(--color-text-heading)}.state__detail{margin:0 0 var(--space-4);color:var(--color-text-muted);font-size:.9rem}.spinner{width:20px;height:20px;border-radius:50%;border:3px solid var(--color-border-default);border-top-color:var(--color-action-link);animation:spin .8s linear infinite;flex:none}@keyframes spin{to{transform:rotate(360deg)}}.checkin-status{display:flex;flex-direction:column;gap:var(--space-4)}.checkin-status__done{margin:0;color:var(--color-feedback-success);font-weight:600}.checkin-status__todo{margin:0;color:var(--color-text-body)}.snapshot{display:flex;gap:var(--space-4);flex-wrap:wrap}.snapshot__item{flex:1 1 120px;background:var(--color-surface-alt);border-radius:var(--radius-2);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-1)}.snapshot__label{font-size:.8rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.snapshot__value{font-size:1.5rem;font-weight:700;color:var(--color-metric-fg)}.snapshot__value--empty{font-size:.95rem;font-weight:500;color:var(--color-text-muted)}.glance{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}.glance__stat{flex:1 1 100px;text-align:center;text-decoration:none;color:inherit;background:var(--color-surface-alt);border-radius:var(--radius-2);padding:var(--space-4) var(--space-2);display:flex;flex-direction:column;gap:var(--space-1)}.glance__stat:hover{background:var(--color-border-default)}.glance__num{font-size:1.8rem;font-weight:800;color:var(--color-metric-fg)}.glance__cap{font-size:.78rem;color:var(--color-text-muted)}.glance__insight{border-top:1px solid var(--color-border-default);padding-top:var(--space-4)}.glance__insight-badge{display:inline-block;margin-bottom:var(--space-2)}.glance__insight-title{margin:0 0 var(--space-2);font-size:1.02rem}.glance__insight-body{margin:0 0 var(--space-3);color:var(--color-text-body);font-size:.92rem}.navgrid{display:grid;grid-template-columns:1fr;gap:var(--space-3)}.navcard{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:var(--radius-2);text-decoration:none;color:inherit}.navcard:hover{border-color:var(--color-action-link)}.navcard__icon{font-size:1.6rem;flex:none}.navcard__body{display:flex;flex-direction:column;flex:1}.navcard__title{font-weight:700}.navcard__detail{font-size:.85rem;color:var(--color-text-muted)}.navcard__chevron{font-size:1.6rem;color:var(--color-text-muted);flex:none}.med,.contact,.nutrition{display:flex;gap:var(--space-4);align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.med__name,.contact__name,.research__title,.nutrition__name{margin:0 0 var(--space-1);font-size:1.05rem}.med__meta,.contact__role{margin:0;color:var(--color-text-muted);font-size:.9rem}.med__notes,.nutrition__notes{margin:var(--space-2) 0 0;font-size:.88rem;color:var(--color-text-body)}.med__badges,.contact__actions{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center}.med__main,.contact__main,.nutrition__main{flex:1 1 60%;min-width:0}.contact__main .badge{margin-top:var(--space-2)}.contact__actions{flex-direction:column;align-items:stretch}.contact__actions .btn{width:100%}.nutrition__target{text-align:right;flex:none;display:flex;flex-direction:column}.nutrition__target-label{font-size:.72rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.nutrition__target-value{font-weight:700;color:var(--color-metric-fg)}.filters{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}.filters__field{display:flex;flex-direction:column;gap:var(--space-1)}.filters__field--grow{flex:1 1 200px}.filters__label{font-size:.78rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.cluster{margin-bottom:var(--space-5)}.cluster__title{font-size:1rem;margin:0 0 var(--space-3);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border-default);padding-bottom:var(--space-2)}.research{display:flex;gap:var(--space-3);align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.research__summary{margin:var(--space-2) 0 var(--space-3);font-size:.92rem}.insight__body{margin:0 0 var(--space-2);font-size:.94rem}.insight__date{margin:0;font-size:.78rem;color:var(--color-text-muted)}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:520px}.table th,.table td{text-align:left;padding:var(--space-3);border-bottom:1px solid var(--color-border-default);vertical-align:middle}.table thead th{font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.table__marker{font-weight:700}.table__ref,.table__date{color:var(--color-text-muted);white-space:nowrap}.form__actions{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-4)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field__label{font-weight:600;font-size:.95rem}.input{font-family:var(--font-body);font-size:1rem;padding:var(--space-3);min-height:48px;border:1px solid var(--color-border-default);border-radius:var(--radius-1);background:var(--color-surface-page);color:var(--color-text-body);width:100%}.textarea{min-height:110px;resize:vertical}.sliders{display:flex;flex-direction:column;gap:var(--space-5)}.slider__label{display:flex;align-items:center;justify-content:space-between;font-weight:600;margin-bottom:var(--space-2)}.slider__value{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:28px;border-radius:var(--radius-sm);background:var(--color-action-link);color:var(--color-text-on-dark);font-weight:700;padding:0 var(--space-2)}.slider__input{width:100%;height:40px;accent-color:var(--color-action-cta);cursor:pointer}.slider__help{margin:var(--space-1) 0 0;font-size:.8rem;color:var(--color-text-muted)}.checks{border:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-3)}.check{display:flex;align-items:center;gap:var(--space-3);font-size:1rem;min-height:44px;cursor:pointer}.check input[type=checkbox]{width:24px;height:24px;accent-color:var(--color-action-cta);flex:none}.chips{border:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-4);min-height:44px;border-radius:var(--radius-3);border:2px solid var(--color-border-default);background:var(--color-surface-page);color:var(--color-text-body);cursor:pointer;font-size:.92rem;-webkit-user-select:none;user-select:none}.chip--on{background:var(--color-action-link);color:var(--color-text-on-dark);border-color:var(--color-action-link)}.callout{border-radius:var(--radius-2);padding:var(--space-4);margin-bottom:var(--space-4);font-size:.92rem;border:1px solid var(--color-border-default)}.callout--info{background:var(--color-surface-alt);border-color:var(--color-action-link)}.callout--error{background:var(--color-surface-page);border-color:var(--color-feedback-error);color:var(--color-feedback-error);font-weight:600}.confirm{text-align:center}.confirm__icon{font-size:2.6rem}.confirm__title{margin:var(--space-3) 0 var(--space-2);color:var(--color-feedback-success)}.confirm__body{color:var(--color-text-body);max-width:44ch;margin:0 auto var(--space-5)}.confirm__actions{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap}@media (min-width: 620px){.navgrid{grid-template-columns:1fr 1fr}.contact__actions{flex-direction:row;align-items:center}.contact__actions .btn{width:auto}}@media (min-width: 760px){.portal__header{padding-top:var(--space-4)}.checkin-status{flex-direction:row;align-items:center;justify-content:space-between}.checkin-status .btn{flex:none}}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.spinner{animation:none;border-top-color:var(--color-action-link)}}
