/* Header and navigation */
.brand-lockup{display:flex;align-items:center;min-width:0;flex:1}.brand-mark{width:auto;height:auto;background:transparent;color:var(--forest);font-size:26px;line-height:30px;font-weight:850;letter-spacing:-.1em;box-shadow:none}.top-heading{flex:1;min-width:0}.top-bar>.top-heading{position:absolute;left:64px;right:64px;text-align:center;pointer-events:none}.brand-lockup .top-heading{margin-left:8px}.top-title{font-size:20px;line-height:24px;font-weight:800;letter-spacing:-.02em}.brand-lockup .top-title{display:none}.profile-head{flex:1;min-width:0}.profile-head .top-title{display:block}.top-subtitle{font-size:12px;line-height:17px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-subtitle:empty{display:none}.top-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.top-actions:empty{width:44px}.icon-btn,.back-btn{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;color:var(--ink);background:var(--surface);border:1px solid var(--line);transition:transform .12s var(--ease),background .18s var(--ease),border-color .18s var(--ease)}.icon-btn.primary{background:var(--forest);border-color:var(--forest);color:#fff}.icon-btn:active,.back-btn:active,.pressable:active{transform:scale(.985)}
.nav-item{min-width:0;min-height:60px;border-radius:16px;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11px;line-height:16px;font-weight:700;position:relative;transition:background .18s var(--ease),color .18s var(--ease),transform .12s var(--ease)}.nav-item svg{width:22px;height:22px;stroke-width:1.9;position:relative;z-index:1}.nav-item[aria-current="page"]{color:var(--forest);font-weight:850;background:linear-gradient(180deg,var(--green-soft),rgba(237,245,240,.35))}.nav-item[aria-current="page"] svg{stroke-width:2.25}.nav-item[aria-current="page"]:after{content:"";position:absolute;top:7px;width:38px;height:30px;border-radius:14px;background:#dfece5;z-index:0;box-shadow:inset 0 0 0 1px rgba(31,45,38,.04)}.nav-item:active{transform:scale(.96)}

/* Shared component language */
.stack{display:flex;flex-direction:column;gap:20px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:4px 0 -2px}.section-title{font-size:calc(17px * var(--font-scale));line-height:1.42;font-weight:800;letter-spacing:0;text-wrap:balance}.section-note{font-size:calc(12px * var(--font-scale));line-height:1.45;color:var(--muted)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-soft)}.card.pad{padding:18px}.hero-card{padding:22px;border-radius:20px;background:var(--surface-warm);border:1px solid var(--line);box-shadow:var(--shadow-card)}.eyebrow{font-size:12px;line-height:17px;font-weight:700;color:var(--forest-2);margin-bottom:6px}.display-title{font-size:calc(28px * var(--font-scale));line-height:1.22;font-weight:850;letter-spacing:-.02em;color:var(--ink);text-wrap:balance}.body-copy{font-size:calc(15px * var(--font-scale));line-height:1.58;color:var(--ink-soft);text-wrap:pretty}.tiny{font-size:calc(12px * var(--font-scale));line-height:1.5;color:var(--muted)}.grid{display:grid;gap:12px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.row{display:flex;align-items:center;gap:14px}.row.between{justify-content:space-between}
.pill,.status-pill{min-height:32px;display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 11px;font-size:12px;line-height:17px;font-weight:750;white-space:nowrap}.pill{border:1px solid var(--line);background:var(--surface);color:var(--ink-soft)}.pill.green,.status-pill.green{background:var(--green-soft);color:var(--forest-2);border-color:transparent}.pill.amber,.status-pill.amber{background:var(--amber-soft);color:var(--amber-text);border-color:transparent}.pill.red,.status-pill.red{background:var(--terracotta-soft);color:var(--terracotta);border-color:transparent}.pill.blue,.status-pill.blue{background:var(--blue-soft);color:var(--blue);border-color:transparent}.status-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.btn{min-height:52px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;font-size:15px;line-height:22px;font-weight:800;white-space:nowrap;transition:transform .12s var(--ease),background .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease)}.btn.full{width:100%}.btn.primary{background:var(--forest);color:#fff;box-shadow:0 8px 18px rgba(31,45,38,.14)}.btn.primary:active{background:var(--forest-2)}.btn.secondary{background:var(--surface);border:1px solid var(--line-strong);color:var(--forest)}.btn.danger{background:var(--terracotta-soft);border:1px solid #edc3bb;color:var(--terracotta)}.btn.ghost{min-height:44px;padding:0 10px;border-radius:12px;color:var(--forest);font-size:13px;font-weight:750}.btn:active{transform:scale(.98)}
.icon-tile{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;color:var(--forest-2);background:var(--green-soft);flex:0 0 auto}.icon-tile.blue{color:var(--blue);background:var(--blue-soft)}.icon-tile.amber{color:var(--amber-text);background:var(--amber-soft)}.icon-tile.red{color:var(--terracotta);background:var(--terracotta-soft)}.icon-tile.map{color:var(--map);background:var(--map-soft)}.icon-tile.pharmacy{color:var(--pharmacy);background:var(--pharmacy-soft)}.icon-tile.member{color:var(--member);background:var(--member-soft)}
.list-card{display:flex;min-height:76px;gap:14px;align-items:center;padding:16px;border-radius:18px;background:var(--surface);border:1px solid var(--line);text-align:left;width:100%;transition:transform .12s var(--ease),background .16s var(--ease),border-color .16s var(--ease)}.list-card:active{transform:scale(.985);background:var(--bg-soft)}.list-main{min-width:0;flex:1}.list-title{font-size:calc(15px * var(--font-scale));line-height:1.45;font-weight:750;overflow-wrap:anywhere}.list-meta{font-size:calc(13px * var(--font-scale));line-height:1.5;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}.chev{width:20px;height:20px;color:var(--subtle);margin-left:auto;flex:0 0 auto}.divider{height:1px;background:var(--line);margin:2px 0}
.tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:0}.tab{min-height:44px;border-radius:0;color:var(--muted);font-size:14px;line-height:20px;font-weight:650;position:relative}.tab[aria-selected="true"]{color:var(--forest);font-weight:800}.tab[aria-selected="true"]:after{content:"";position:absolute;left:22%;right:22%;bottom:-1px;height:2px;background:var(--forest);border-radius:999px}

/* Overlays and forms */
.drawer,.sheet{position:absolute;inset:0;z-index:100;pointer-events:none}.drawer.open,.sheet.open{pointer-events:auto}.scrim{position:absolute;inset:0;background:rgba(23,33,27,0);transition:background .22s var(--ease)}.open .scrim{background:rgba(23,33,27,.42)}.drawer-panel{position:absolute;top:0;right:0;width:min(360px,88%);height:100%;background:var(--bg);border-left:1px solid var(--line);box-shadow:var(--shadow-lift);transform:translateX(100%);transition:transform .3s var(--ease-out);display:flex;flex-direction:column;outline:none}.drawer.open .drawer-panel{transform:translateX(0)}.drawer-body{padding:16px;overflow:auto;display:flex;flex-direction:column;gap:10px}.sheet-panel{position:absolute;left:0;right:0;bottom:0;max-height:86%;background:var(--bg);border-radius:28px 28px 0 0;box-shadow:var(--shadow-lift);transform:translateY(104%);transition:transform .3s var(--ease-out);display:flex;flex-direction:column;outline:none}.sheet.open .sheet-panel{transform:translateY(0)}.sheet-head{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}.sheet-title{font-size:17px;line-height:24px;font-weight:800;flex:1}.sheet-body{padding:16px 16px calc(20px + var(--safe-bottom));overflow:auto;display:flex;flex-direction:column;gap:12px}.toast{position:absolute;left:50%;bottom:calc(var(--nav-h) + 20px + var(--safe-bottom));transform:translateX(-50%) translateY(12px);max-width:calc(100% - 32px);background:var(--forest);color:#fff;border-radius:16px;padding:11px 14px;font-size:13px;line-height:18px;font-weight:700;box-shadow:var(--shadow-card);opacity:0;pointer-events:none;transition:opacity .22s var(--ease),transform .22s var(--ease);z-index:200;white-space:normal}.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.form-grid{display:grid;gap:12px}.field label{display:block;font-size:12px;line-height:17px;font-weight:750;margin-bottom:6px;color:var(--ink-soft)}.field input,.field select,.field textarea{width:100%;min-height:48px;border-radius:15px;border:1px solid var(--line);background:var(--surface);padding:0 13px;outline:none}.field textarea{min-height:88px;padding:12px 13px;resize:vertical}.field .help{font-size:12px;line-height:17px;color:var(--muted);margin-top:5px}
.indicator-detail{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;font-size:12px;line-height:17px;color:var(--muted)}
.choice.danger-choice{width:100%;justify-content:center;display:inline-flex;align-items:center;gap:7px;border-color:#efc3bb;background:var(--terracotta-soft);color:var(--terracotta)}
.indicator-row .indicator-detail>span{color:var(--muted);font-size:12px;font-weight:500;white-space:normal}.indicator-row .indicator-detail>.pill{color:var(--amber-text);font-size:11px;font-weight:750;min-height:24px;padding:3px 7px}.indicator-row .indicator-detail>.pill.blue{color:var(--blue)}
.doctor-photo.portrait-doctor{background-image:url("../zhaoxin-portraits.png");background-repeat:no-repeat;background-size:255px auto;background-position:84% 47%;background-color:var(--stone)}
.doctor-summary{padding:15px 16px;border-radius:18px;background:var(--amber-soft);border:1px solid #f0dcb1}.doctor-summary ul{padding-left:18px;margin-top:8px}.doctor-summary li{font-size:13px;line-height:20px;color:var(--ink-soft);margin:3px 0}
.typing-state{display:flex;align-items:center;gap:7px;padding-left:36px;font-size:12px;line-height:17px;color:var(--subtle)}.typing-state i{display:block;width:6px;height:6px;border-radius:50%;background:var(--sage);animation:typing 1s ease-in-out infinite}.typing-state i:nth-child(2){animation-delay:.12s}.typing-state i:nth-child(3){animation-delay:.24s}
