*{box-sizing:border-box}html,body{margin:0;min-height:100%;max-width:100%;overflow-x:hidden}body.portal-body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#f4f8fc;color:#20384d;padding-bottom:calc(82px + env(safe-area-inset-bottom));-webkit-text-size-adjust:100%}.portal-shell{max-width:720px;margin:0 auto;padding:14px 14px 30px}.portal-top{position:sticky;top:0;z-index:80;background:rgba(244,248,252,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(213,228,240,.9)}.portal-top-inner{max-width:720px;margin:auto;min-height:62px;padding:8px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.portal-brand{display:flex;align-items:center;gap:10px;min-width:0}.portal-brand-mark{width:38px;height:38px;border-radius:13px;background:linear-gradient(145deg,var(--ui-primary,#4f9ff0),#57c7bb);display:grid;place-items:center;color:#fff;font-weight:900;font-size:20px;box-shadow:0 8px 22px rgba(62,129,186,.2)}.portal-brand strong,.portal-brand small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-brand strong{font-size:14px}.portal-brand small{font-size:11px;color:#71879a;margin-top:2px}.portal-avatar{width:38px;height:38px;border-radius:50%;border:0;background:#e5f1fb;color:#2e6f9f;font-weight:900}.portal-card{background:#fff;border:1px solid #e2edf5;border-radius:18px;padding:15px;box-shadow:0 8px 28px rgba(54,100,137,.06);margin-bottom:11px}.portal-hero{background:linear-gradient(145deg,#ffffff,#edf7ff);border:1px solid #dcebf7;border-radius:22px;padding:18px;margin-bottom:12px;position:relative;overflow:hidden}.portal-hero:after{content:"";position:absolute;width:145px;height:145px;border-radius:50%;right:-55px;top:-55px;background:rgba(79,159,240,.11)}.portal-kicker{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:#4b789b;font-weight:850}.portal-hero h1{font-size:23px;line-height:1.2;margin:7px 0 4px}.portal-hero p{font-size:12.5px;color:#6f8497;margin:0;line-height:1.5;max-width:520px}.portal-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:15px}.portal-stat{background:rgba(255,255,255,.85);border:1px solid #e3edf5;border-radius:14px;padding:10px;min-width:0}.portal-stat strong{font-size:17px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-stat small{font-size:10.5px;color:#71879a}.portal-section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:18px 2px 9px}.portal-section-head h2{font-size:15px;margin:0}.portal-section-head a{font-size:11px;color:var(--ui-primary,#4f9ff0);font-weight:800;text-decoration:none}.portal-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid #edf3f7;text-decoration:none;color:inherit}.portal-row:last-child{border-bottom:0}.portal-row-icon{width:39px;height:39px;border-radius:13px;background:#edf6fd;display:grid;place-items:center;color:#3479ad;font-size:17px;flex:0 0 auto}.portal-row-main{min-width:0;flex:1}.portal-row-main strong{display:block;font-size:13px}.portal-row-main span,.portal-row-main small{display:block;color:#73879a;font-size:11px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-row-side{text-align:right;flex:0 0 auto}.portal-row-side strong{font-size:12px}.portal-row-side small{font-size:10.5px;color:#7890a3;display:block;margin-top:2px}.portal-badge{display:inline-flex;align-items:center;min-height:24px;padding:4px 8px;border-radius:999px;font-size:9.5px;font-weight:900;background:#eaf5ff;color:#2e73a8}.portal-badge.green{background:#eaf8ef;color:#287c4d}.portal-badge.orange{background:#fff3df;color:#95621d}.portal-badge.red{background:#ffecee;color:#a63c48}.portal-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:10px 14px;border-radius:13px;border:0;text-decoration:none;font-size:12px;font-weight:850;cursor:pointer}.portal-btn.primary{background:var(--ui-primary,#4f9ff0);color:#fff}.portal-btn.soft{background:#eaf4fc;color:#2f70a0}.portal-btn.outline{background:#fff;color:#355b79;border:1px solid #dce8f1}.portal-btn.danger{background:#fff0f1;color:#a33a45}.portal-btn.full{width:100%}.portal-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.portal-input{width:100%;min-height:48px;border:1px solid #d9e6f0;border-radius:13px;background:#fff;padding:10px 12px;font-size:16px;color:#233d52;outline:none}.portal-input:focus{border-color:#79b8ec;box-shadow:0 0 0 3px rgba(79,159,240,.11)}textarea.portal-input{min-height:94px;resize:vertical}.portal-form label{display:block;font-size:11px;font-weight:800;color:#536f85;margin:11px 2px 6px}.portal-help{font-size:10.5px;line-height:1.5;color:#7c8f9f;margin-top:5px}.portal-alert{padding:11px 12px;border-radius:13px;margin-bottom:10px;font-size:12px;line-height:1.5}.portal-alert.danger{background:#fff0f1;color:#9b3843;border:1px solid #ffd9dc}.portal-alert.success{background:#eaf8ef;color:#28784a;border:1px solid #d1efdc}.portal-alert.info{background:#edf7ff;color:#2f6f9d;border:1px solid #d8ebfa}.portal-empty{text-align:center;padding:26px 16px;color:#71879a}.portal-empty i{display:block;font-size:30px;color:#9bbbd2;margin-bottom:8px}.portal-empty strong{display:block;color:#3b586f;font-size:13px}.portal-empty span{display:block;font-size:11px;margin-top:4px}.portal-bottom{position:fixed;z-index:100;left:0;right:0;bottom:0;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-top:1px solid #dce9f2;padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.portal-bottom nav{max-width:720px;margin:auto;display:grid;grid-template-columns:repeat(5,1fr);gap:3px}.portal-bottom a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:48px;border-radius:12px;text-decoration:none;color:#7b8f9f;font-size:9.5px;font-weight:750}.portal-bottom a i{font-size:18px}.portal-bottom a.active{color:var(--ui-primary,#4f9ff0);background:#edf6fd}.portal-profile-switch{display:flex;gap:8px;overflow-x:auto;padding:1px 0 5px;scrollbar-width:none}.portal-profile-switch::-webkit-scrollbar{display:none}.portal-profile-chip{min-width:180px;border:1px solid #dce9f2;background:#fff;border-radius:14px;padding:10px;text-align:left}.portal-profile-chip.active{border-color:#79b8ec;background:#edf7ff}.portal-profile-chip strong,.portal-profile-chip small{display:block}.portal-profile-chip strong{font-size:12px}.portal-profile-chip small{font-size:10px;color:#74899a;margin-top:2px}.portal-timeline{position:relative;padding-left:16px}.portal-timeline:before{content:"";position:absolute;left:5px;top:4px;bottom:4px;width:2px;background:#dbe8f1}.portal-timeline-item{position:relative;margin-bottom:10px}.portal-timeline-item:before{content:"";position:absolute;left:-15px;top:18px;width:10px;height:10px;border-radius:50%;background:var(--ui-primary,#4f9ff0);box-shadow:0 0 0 4px #edf7ff}.portal-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.portal-mini{border:1px solid #e3edf4;background:#f9fbfd;border-radius:12px;padding:9px}.portal-mini span{display:block;font-size:9.5px;color:#8294a3}.portal-mini strong{display:block;font-size:12px;margin-top:3px}.portal-rx-item{padding:10px 0;border-bottom:1px dashed #e1ebf2}.portal-rx-item:last-child{border-bottom:0}.portal-rx-item strong{font-size:12.5px}.portal-rx-item span{display:block;font-size:11px;color:#6f8496;margin-top:3px;line-height:1.5}.portal-qr{text-align:center}.portal-qr-box{display:inline-flex;background:#fff;border:1px solid #dce8f1;border-radius:20px;padding:16px;margin:10px auto}.portal-qr-box canvas,.portal-qr-box img{display:block;max-width:64vw;height:auto}.portal-login-wrap{min-height:100svh;display:grid;place-items:center;padding:18px 14px;background:radial-gradient(circle at top,#e9f6ff 0,#f5f9fc 48%,#f5f9fc 100%)}.portal-login-card{width:min(100%,430px);background:#fff;border:1px solid #dfeaf3;border-radius:24px;padding:22px;box-shadow:0 20px 60px rgba(46,89,124,.10)}.portal-login-brand{text-align:center;margin-bottom:18px}.portal-login-brand .portal-brand-mark{margin:auto;width:52px;height:52px;border-radius:17px}.portal-login-brand h1{font-size:21px;margin:10px 0 4px}.portal-login-brand p{font-size:11.5px;color:#71879a;margin:0;line-height:1.5}.portal-activation-patient{display:flex;align-items:center;gap:11px;background:#f5f9fc;border:1px solid #e1ebf2;border-radius:15px;padding:12px;margin:12px 0}.portal-activation-patient .avatar{width:43px;height:43px;border-radius:14px;background:#e5f3fd;color:#3277a9;display:grid;place-items:center;font-weight:900}.portal-activation-patient strong,.portal-activation-patient small{display:block}.portal-activation-patient small{font-size:10.5px;color:#71879a;margin-top:2px}.portal-copy-row{display:flex;gap:7px}.portal-copy-row input{flex:1;min-width:0}.portal-action-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.portal-action-card{display:flex;align-items:center;gap:9px;text-decoration:none;color:inherit;background:#fff;border:1px solid #e1ebf3;border-radius:15px;padding:12px}.portal-action-card i{width:37px;height:37px;border-radius:12px;background:#edf7ff;display:grid;place-items:center;color:#3077ad;font-size:16px}.portal-action-card strong{display:block;font-size:11.5px}.portal-action-card small{display:block;color:#7a8ea0;font-size:9.5px;margin-top:2px}.portal-info-list{margin:0;padding:0;list-style:none}.portal-info-list li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #edf3f7;font-size:11.5px}.portal-info-list li:last-child{border:0}.portal-info-list span{color:#788d9e}.portal-info-list strong{text-align:right}.portal-danger-note{font-size:10.5px;line-height:1.5;color:#8b4d54;background:#fff4f5;border:1px solid #ffe0e3;padding:10px;border-radius:12px}.portal-staff-box{background:#f5f9fc;border:1px solid #dce8f1;border-radius:15px;padding:12px}.portal-staff-box strong{display:block;font-size:13px}.portal-staff-box span{display:block;color:#71879a;font-size:10.5px;margin-top:3px}@media(min-width:700px){body.portal-body{padding-bottom:28px}.portal-bottom{position:sticky;bottom:auto;top:62px;padding:7px;border-bottom:1px solid #e1ebf2;border-top:0}.portal-bottom nav{grid-template-columns:repeat(5,120px);justify-content:center}.portal-shell{padding-top:18px}.portal-hero{padding:22px}.portal-hero h1{font-size:27px}}@media(max-width:420px){.portal-shell{padding:10px 10px 26px}.portal-top-inner{padding:7px 10px}.portal-card{border-radius:15px;padding:12px}.portal-hero{border-radius:18px;padding:15px}.portal-hero h1{font-size:20px}.portal-stats{gap:6px}.portal-stat{padding:8px}.portal-stat strong{font-size:15px}.portal-detail-grid,.portal-grid2{grid-template-columns:1fr}.portal-action-grid{grid-template-columns:1fr 1fr}.portal-bottom a{font-size:9px}.portal-bottom a i{font-size:17px}}
