/* MyHealth — onecore house tokens, tuned for an older reader:
   19px base, high contrast, 52px+ touch targets, no hover-only meaning. */
:root{
  --red:#C8102E; --navy:#042B60; --navy-700:#0B3E86; --navy-100:#E3EBF7;
  --ink:#0C1B2A; --paper:#F7F5F0; --card:#FFFFFF;
  --n100:#EFEDE7; --n200:#E3E1DA; --n500:#5B6470; --n700:#38404A;
  --green:#1D6B3A; --green-100:#E3F2E8; --amber:#8A5A00; --amber-100:#FFF3D6;
  --red-100:#FCE8EB;
  --radius:10px; --radius-lg:16px;
  --shadow:0 1px 2px rgba(12,27,42,.06),0 4px 14px rgba(12,27,42,.06);
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --serif:Georgia,"Times New Roman",serif;
  --wrap:880px;
}
*{box-sizing:border-box}
html{font-size:19px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
  line-height:1.55;font-variant-numeric:tabular-nums}
a{color:var(--navy-700)}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--navy-700);outline-offset:2px}
h1,h2,h3{font-family:var(--serif);color:var(--navy);line-height:1.2;margin:0 0 .5em}
h1{font-size:1.9rem} h2{font-size:1.4rem;margin-top:1.4em} h3{font-size:1.1rem}
p{margin:0 0 .8em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 18px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:#fff;padding:8px;z-index:9}

/* top bar */
.bar{position:sticky;top:0;z-index:5;background:var(--navy);color:#fff}
.bar .wrap{display:flex;align-items:center;gap:12px;min-height:64px}
.brand{color:#fff;text-decoration:none;font-family:var(--serif);font-size:1.3rem;font-weight:700;flex:1;
  display:flex;align-items:center;gap:10px}
.brand .dot{width:12px;height:12px;border-radius:50%;background:var(--red);display:inline-block}
.barbtn{font:inherit;font-size:.85rem;font-weight:600;color:#fff;background:transparent;
  border:1.5px solid rgba(255,255,255,.55);border-radius:var(--radius);padding:10px 14px;min-height:48px;cursor:pointer;
  text-decoration:none;display:inline-flex;align-items:center}
.barbtn:hover{background:rgba(255,255,255,.12)}

main{padding:22px 0 60px}
.crumb{font-size:.9rem;margin-bottom:12px}
.crumb a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;text-decoration:none}
.sub{color:var(--n700)}
.muted{color:var(--n500);font-size:.9rem}

/* home */
.hello{margin:6px 0 18px}
.hello .sub{font-size:1.05rem}
.big3{display:grid;gap:14px;margin:18px 0 26px}
.bigbtn{display:flex;align-items:center;gap:16px;background:var(--card);border:2px solid var(--n200);
  border-radius:var(--radius-lg);padding:20px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);
  min-height:96px;transition:border-color .15s,transform .05s}
.bigbtn:hover{border-color:var(--navy-700)}
.bigbtn:active{transform:translateY(1px)}
.bigbtn .ic{flex:none;width:56px;height:56px;border-radius:14px;background:var(--navy-100);color:var(--navy);
  display:grid;place-items:center;font-size:28px}
.bigbtn .t{font-family:var(--serif);font-size:1.35rem;color:var(--navy);font-weight:700;display:block}
.bigbtn .d{font-size:.9rem;color:var(--n700);display:block}
.more{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.morebtn{display:flex;align-items:center;justify-content:center;text-align:center;min-height:60px;padding:10px;
  background:var(--card);border:1.5px solid var(--n200);border-radius:var(--radius);color:var(--navy);
  font-weight:700;text-decoration:none}
.morebtn:hover{border-color:var(--navy-700)}

/* cards & lists */
.card{background:var(--card);border:1px solid var(--n200);border-radius:var(--radius-lg);padding:18px 20px;
  box-shadow:var(--shadow);margin-bottom:14px}
.card h3{margin-bottom:.25em}
.row{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline}
.kv{font-size:.92rem;color:var(--n700)} .kv b{color:var(--ink)}
.tag{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:3px 8px;border-radius:999px;vertical-align:middle}
.tag.check{background:var(--amber-100);color:var(--amber)}
.tag.ok{background:var(--green-100);color:var(--green)}
.tag.now{background:var(--navy);color:#fff}
.tag.next{background:var(--navy-100);color:var(--navy)}
.tag.later,.tag.maybe{background:var(--n100);color:var(--n700)}
.tag.done{background:var(--green-100);color:var(--green)}
.tag.started{background:var(--amber-100);color:var(--amber)}
.warn{border-left:6px solid var(--red);background:var(--red-100);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}
.warn h3{color:var(--ink);margin-bottom:.2em}
.src{font-size:.8rem;color:var(--n500);margin-top:8px}
.emptybox{background:var(--card);border:2px dashed var(--n200);border-radius:var(--radius-lg);padding:22px;color:var(--n700)}
.emptybox h3{color:var(--navy)}
ol.qs{padding-left:1.4em;margin:0} ol.qs li{margin:0 0 .7em;padding-left:.2em}
ol.qs .ans{display:block;color:var(--green);font-size:.92rem}
.steps{list-style:none;padding:0;margin:0;counter-reset:s}
.steps li{position:relative;padding:0 0 18px 54px;counter-increment:s}
.steps li:before{content:counter(s);position:absolute;left:0;top:0;width:38px;height:38px;border-radius:50%;
  background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:700}
.steps li:after{content:"";position:absolute;left:18px;top:42px;bottom:4px;width:2px;background:var(--n200)}
.steps li:last-child:after{display:none}
table.t{width:100%;border-collapse:collapse;font-size:.92rem}
table.t th,table.t td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--n200)}
table.t th{color:var(--n700);font-weight:600}
.btn{font:inherit;font-weight:700;font-size:.95rem;display:inline-flex;align-items:center;gap:8px;min-height:52px;
  padding:0 20px;border-radius:var(--radius);border:0;background:var(--navy);color:#fff;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--navy-700)}
.btn.ghost{background:var(--card);color:var(--navy);border:2px solid var(--navy)}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 18px}

footer{border-top:1px solid var(--n200);padding:18px 0 30px;font-size:.8rem;color:var(--n500)}
.skeleton span{display:block;height:22px;margin:12px 0;border-radius:6px;background:linear-gradient(90deg,var(--n100),var(--n200),var(--n100));
  background-size:200% 100%;animation:sh 1.2s infinite}
@keyframes sh{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (min-width:700px){.big3{grid-template-columns:1fr 1fr 1fr}.bigbtn{flex-direction:column;text-align:center;min-height:190px;justify-content:center}.more{grid-template-columns:repeat(4,1fr)}}

/* sheet (doctor summary) */
.sheet h2{font-size:1.1rem;border-bottom:2px solid var(--navy);padding-bottom:4px;margin-top:1.1em}
.sheet ul{margin:.3em 0 .6em;padding-left:1.2em}
.sheet .hdr{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}

/* login */
.login{min-height:100vh;display:grid;place-items:center;padding:20px}
.login form{width:100%;max-width:420px;background:var(--card);border:1px solid var(--n200);border-radius:var(--radius-lg);
  box-shadow:var(--shadow);padding:30px 26px}
.login label{display:block;font-weight:700;color:var(--navy);margin:0 0 6px}
.login input{width:100%;font:inherit;font-size:1.05rem;padding:14px;border:2px solid var(--n200);border-radius:var(--radius);margin:0 0 18px;background:#fff;color:var(--ink)}
.login input:focus{border-color:var(--navy-700);outline:none;box-shadow:0 0 0 3px var(--navy-100)}
.login button{width:100%;justify-content:center;font-size:1.05rem;min-height:56px}
.login .err{display:none;background:var(--red-100);border-left:6px solid var(--red);padding:12px;border-radius:var(--radius);margin-bottom:16px}
.login .err.on{display:block}
.showpw{display:flex;align-items:center;gap:10px;margin:-8px 0 18px;font-size:.95rem;min-height:44px}
.showpw input{width:24px;height:24px;margin:0}

@media print{
  html{font-size:12pt} body{background:#fff}
  .bar,.crumb,.actions,footer .noprint,.skip{display:none!important}
  main{padding:0} .card{box-shadow:none;border:1px solid #bbb;break-inside:avoid}
  a{color:var(--ink);text-decoration:none}
  .warn{background:#fff;border:1px solid #999;border-left:6px solid #000}
}
