/* V2.2.97 — Premium patient portal surface.
 * Presentation only: the portal data, permissions and download endpoints remain untouched.
 */
:root{--pp-ink:#103a45;--pp-deep:#063640;--pp-teal:#07858e;--pp-cyan:#10b7c4;--pp-green:#57b967;--pp-bg:#f3f8f8;--pp-line:#dbe9eb;--pp-muted:#71868d;--pp-shadow:0 24px 70px rgba(6,54,64,.09)}
body.lmp-portal-surface .lmp-patient-unified{width:min(1240px,calc(100% - 48px))!important;margin:34px auto 70px!important;color:var(--pp-ink)!important;font-size:14px!important;line-height:1.9!important}
body.lmp-portal-surface .lmp-patient-unified *{box-sizing:border-box}
body.lmp-portal-surface .lmp-patient-unified a{font-size:14px!important}
/* Hero */
body.lmp-portal-surface .lmp-patient-unified .patient-dashboard-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:26px;align-items:stretch;margin:0 0 16px;padding:34px;border-radius:32px;background:linear-gradient(135deg,#063640 0%,#076d78 54%,#0ba5a6 100%);color:#fff;box-shadow:0 28px 75px rgba(6,54,64,.2)}
body.lmp-portal-surface .patient-dashboard-hero:before{content:"";position:absolute;width:430px;height:430px;border:1px solid rgba(255,255,255,.12);border-radius:50%;left:-210px;bottom:-310px}
body.lmp-portal-surface .patient-dashboard-hero:after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;right:28%;top:-160px;background:rgba(255,255,255,.06)}
body.lmp-portal-surface .patient-dashboard-hero-copy,body.lmp-portal-surface .patient-hero-profile{position:relative;z-index:1}
body.lmp-portal-surface .patient-dashboard-hero-copy>span{display:inline-flex;align-items:center;gap:8px;color:#bce8e7;font-size:13px;font-weight:900;letter-spacing:.14em}
body.lmp-portal-surface .patient-dashboard-hero-copy>span:before{content:"";width:8px;height:8px;border-radius:50%;background:#72dfd6;box-shadow:0 0 0 5px rgba(114,223,214,.12)}
body.lmp-portal-surface .patient-dashboard-hero h1{margin:9px 0 8px;color:#fff;font-size:clamp(30px,4vw,50px);line-height:1.2;font-weight:950;letter-spacing:-1px}
body.lmp-portal-surface .patient-dashboard-hero-copy p{max-width:690px;margin:0;color:rgba(255,255,255,.78);font-size:15px;line-height:2}
body.lmp-portal-surface .patient-hero-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px}
body.lmp-portal-surface .patient-primary-action,body.lmp-portal-surface .patient-secondary-action{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border-radius:14px;text-decoration:none;font-weight:900!important;transition:.2s ease}
body.lmp-portal-surface .patient-primary-action{background:#fff;color:#076d78!important;box-shadow:0 12px 28px rgba(0,0,0,.12)}
body.lmp-portal-surface .patient-secondary-action{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.1);color:#fff!important;backdrop-filter:blur(10px)}
body.lmp-portal-surface .patient-primary-action:hover,body.lmp-portal-surface .patient-secondary-action:hover{transform:translateY(-2px)}
body.lmp-portal-surface .patient-hero-profile{display:flex;align-items:center;gap:16px;padding:23px;border:1px solid rgba(255,255,255,.16);border-radius:24px;background:rgba(255,255,255,.09);backdrop-filter:blur(15px)}
body.lmp-portal-surface .patient-avatar{width:76px;height:76px;display:grid;place-items:center;flex:0 0 76px;border-radius:24px;background:#fff;color:var(--pp-teal);font-size:31px;font-weight:950;box-shadow:0 14px 34px rgba(0,0,0,.13)}
body.lmp-portal-surface .patient-hero-profile small{display:block;color:#bce8e7;font-size:13px}
body.lmp-portal-surface .patient-hero-profile strong{display:block;margin:2px 0;color:#fff;font-size:20px;font-weight:950}
body.lmp-portal-surface .patient-hero-profile span{display:block;color:rgba(255,255,255,.7);font-size:14px}
/* Navigation */
body.lmp-portal-surface .patient-dashboard-nav{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:0 0 20px;padding:8px;border:1px solid var(--pp-line);border-radius:18px;background:#fff;box-shadow:0 12px 34px rgba(6,54,64,.05)}
body.lmp-portal-surface .patient-dashboard-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:45px;padding:0 16px;border-radius:12px;background:#f3f7f7;color:#526b73!important;text-decoration:none;font-weight:900!important;transition:.2s ease}
body.lmp-portal-surface .patient-dashboard-nav a:hover{background:#e8f6f5;color:var(--pp-teal)!important;transform:translateY(-1px)}
body.lmp-portal-surface .patient-dashboard-nav a.is-active{background:linear-gradient(135deg,var(--pp-teal),#066c76);color:#fff!important;box-shadow:0 9px 22px rgba(7,133,142,.18)}
body.lmp-portal-surface .patient-dashboard-nav a.patient-logout{margin-right:auto;background:#fff;border:1px solid #d9e5e7;color:#687d83!important}
/* Summary */
body.lmp-portal-surface .patient-summary-grid{display:grid;grid-template-columns:1.3fr 1.2fr 1fr 1.1fr;gap:12px;margin-bottom:22px}
body.lmp-portal-surface .patient-summary-card{min-height:105px;display:flex;flex-direction:column;justify-content:center;padding:18px 20px;border:1px solid var(--pp-line);border-radius:20px;background:#fff;box-shadow:0 12px 32px rgba(6,54,64,.045)}
body.lmp-portal-surface .patient-summary-card:first-child{background:linear-gradient(145deg,#f0fbf9,#fff);border-color:#cfe9e5}
body.lmp-portal-surface .patient-summary-card span{color:#7b9096;font-size:14px}
body.lmp-portal-surface .patient-summary-card strong{margin-top:3px;color:var(--pp-ink);font-size:17px;font-weight:950;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Sections */
body.lmp-portal-surface .patient-dashboard-section{margin-bottom:22px;padding:28px;border:1px solid var(--pp-line);border-radius:28px;background:#fff;box-shadow:var(--pp-shadow)}
body.lmp-portal-surface .patient-section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}
body.lmp-portal-surface .patient-section-heading>div>span{display:inline-block;color:var(--pp-teal);font-size:12px;font-weight:950;letter-spacing:.13em}
body.lmp-portal-surface .patient-section-heading h2{margin:4px 0 4px;color:var(--pp-ink);font-size:27px;line-height:1.35;font-weight:950}
body.lmp-portal-surface .patient-section-heading p{margin:0;color:var(--pp-muted);font-size:14px}
/* Current case */
body.lmp-portal-surface .patient-current-card{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 24px;border:1px solid #d4e9e8;border-radius:21px;background:linear-gradient(135deg,#f3fbfa,#fff)}
body.lmp-portal-surface .patient-current-main span{display:block;color:#789097;font-size:14px}
body.lmp-portal-surface .patient-current-main h3{margin:3px 0;color:#15515d;font-size:22px;font-weight:950}
body.lmp-portal-surface .patient-current-main small{color:#83969b;font-size:14px}
body.lmp-portal-surface .patient-current-status{display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding:9px 14px;border-radius:14px;background:#fff4df;color:#a16e20;font-size:14px;font-weight:900;white-space:nowrap}
body.lmp-portal-surface .patient-current-status.is-ready{background:#e6f7ee;color:#17745a}
body.lmp-portal-surface .patient-current-status b{font-size:13px;color:inherit}
/* Progress */
body.lmp-portal-surface .patient-progress{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px;padding:20px;border:1px solid #e1ecee;border-radius:22px;background:#f9fcfc}
body.lmp-portal-surface .patient-progress-line{position:absolute;right:12%;left:12%;top:45px;height:2px;background:#dce9eb}
body.lmp-portal-surface .patient-progress-step{position:relative;z-index:1;min-height:120px;padding:14px;border:1px solid #e1ebed;border-radius:18px;background:#fff}
body.lmp-portal-surface .patient-progress-step span{display:grid;place-items:center;width:34px;height:34px;margin-bottom:12px;border-radius:11px;background:#edf3f4;color:#748a91;font-size:12px;font-weight:950}
body.lmp-portal-surface .patient-progress-step strong{display:block;color:#31545d;font-size:15px;font-weight:950}
body.lmp-portal-surface .patient-progress-step small{display:block;margin-top:4px;color:#81949a;font-size:14px;line-height:1.7}
body.lmp-portal-surface .patient-progress-step.done{border-color:#cce8e2;background:#f5fcfa}
body.lmp-portal-surface .patient-progress-step.done span{background:#dff4ec;color:#17745a}
/* Final result */
body.lmp-portal-surface .patient-final-card{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:17px;margin-top:18px;padding:20px;border-radius:22px;background:linear-gradient(135deg,#073b47,#086d76 65%,#279b62);color:#fff;box-shadow:0 18px 45px rgba(6,54,64,.16)}
body.lmp-portal-surface .patient-pdf-mark{width:64px;height:64px;display:grid;place-items:center;border-radius:18px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);font-size:15px;font-weight:950}
body.lmp-portal-surface .patient-final-copy span{color:#a8e8dc;font-size:12px;font-weight:900;letter-spacing:.1em}
body.lmp-portal-surface .patient-final-copy h3{margin:2px 0;color:#fff;font-size:19px;font-weight:950}
body.lmp-portal-surface .patient-final-copy p{margin:0;color:rgba(255,255,255,.72);font-size:14px}
body.lmp-portal-surface .patient-final-actions{display:flex;gap:8px;flex-wrap:wrap}
body.lmp-portal-surface .patient-final-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 15px;border-radius:12px;border:1px solid rgba(255,255,255,.22);color:#fff!important;text-decoration:none;background:rgba(255,255,255,.08);font-weight:900!important}
body.lmp-portal-surface .patient-final-actions a.primary{background:#fff;color:#086a74!important;border-color:#fff}
/* History */
body.lmp-portal-surface .patient-history-list{display:grid;gap:12px}
body.lmp-portal-surface .patient-history-card{overflow:hidden;border:1px solid var(--pp-line);border-radius:20px;background:#fff}
body.lmp-portal-surface .patient-history-card>header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 20px;background:#f8fbfb;border-bottom:1px solid #e8eff0}
body.lmp-portal-surface .patient-history-card header span{display:block;color:#7d9298;font-size:13px}
body.lmp-portal-surface .patient-history-card header strong{display:block;margin-top:1px;color:#244e59;font-size:16px;font-weight:950}
body.lmp-portal-surface .patient-history-card header small{display:block;color:#87999e;font-size:13px}
body.lmp-portal-surface .patient-history-status{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border-radius:999px;background:#fff1dc;color:#9a6a1f;font-size:13px;font-weight:900;white-space:nowrap}
body.lmp-portal-surface .patient-history-status.ready{background:#e3f6ed;color:#19765b}
body.lmp-portal-surface .patient-test-list{display:grid;gap:0}
body.lmp-portal-surface .patient-test-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 20px;border-bottom:1px solid #edf2f3}
body.lmp-portal-surface .patient-test-row:last-child{border-bottom:0}
body.lmp-portal-surface .patient-test-row strong{display:block;color:#294f59;font-size:15px;font-weight:900}
body.lmp-portal-surface .patient-test-row span{display:block;color:#84969b;font-size:13px}
body.lmp-portal-surface .patient-test-row a,.patient-history-footer a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 13px;border-radius:11px;background:#e9f7f5;color:#08727b!important;text-decoration:none;font-weight:900!important;white-space:nowrap}
body.lmp-portal-surface .patient-history-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 20px;background:#f8fbfb}
body.lmp-portal-surface .patient-history-footer span{color:#687f86;font-size:14px}
/* Empty/wait */
body.lmp-portal-surface .patient-empty-card,body.lmp-portal-surface .patient-wait-card{padding:36px;text-align:center;border:1px dashed #cfe0e2;border-radius:20px;background:#f9fcfc}
body.lmp-portal-surface .patient-empty-card strong,body.lmp-portal-surface .patient-wait-card strong{display:block;color:#31555e;font-size:17px;font-weight:950}
body.lmp-portal-surface .patient-empty-card p,body.lmp-portal-surface .patient-wait-card p{margin:5px 0 0;color:#7a9096;font-size:14px}
/* Appointments embedded in dashboard */
body.lmp-portal-surface .lmp-patient-unified #appointments .noa-patient-appointments,
body.lmp-portal-surface .lmp-patient-unified #appointments .noa-patient-list{display:grid;gap:10px}
body.lmp-portal-surface .lmp-patient-unified #appointments .noa-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:17px 18px!important;margin:0!important;border:1px solid var(--pp-line)!important;border-radius:17px!important;background:#fff!important;box-shadow:none!important;min-height:74px}
body.lmp-portal-surface .lmp-patient-unified #appointments .noa-row strong{display:block;color:#254d57;font-size:15px!important;font-weight:950!important}
body.lmp-portal-surface .lmp-patient-unified #appointments .noa-row>div>small,.lmp-patient-unified #appointments .noa-row>small{display:block;color:#7d9197;font-size:13px!important}
body.lmp-portal-surface .lmp-patient-unified #appointments .noa-row>span{display:inline-flex;padding:6px 10px;border-radius:999px;background:#edf7f6;color:#08737c;font-size:13px!important;font-weight:900}
body.lmp-portal-surface .lmp-patient-unified #appointments .noa-row-actions{display:flex;gap:6px;align-items:center}
body.lmp-portal-surface .lmp-patient-unified #appointments .noa-row-actions a,.lmp-patient-unified #appointments .noa-row-actions button{min-height:38px!important;border-radius:10px!important;padding:0 11px!important;font-size:13px!important;font-weight:900!important}
body.lmp-portal-surface .lmp-patient-unified #appointments .noa-row-more{display:none!important}
body.lmp-portal-surface .patient-dashboard-footer-actions{display:flex;justify-content:flex-start;margin-top:8px}
body.lmp-portal-surface .patient-dashboard-footer-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 15px;border-radius:12px;color:#71858b!important;background:#fff;border:1px solid var(--pp-line);text-decoration:none;font-weight:850!important}
/* Workspace metric SVGs */
.workspace-metrics .metric .metric-icon{width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important;display:grid!important;place-items:center!important;border-radius:18px!important;font-size:0!important}
.workspace-metrics .metric .metric-icon svg{width:31px!important;height:31px!important;display:block!important}
.workspace-metrics .metric-cyan .metric-icon{background:#e7f8fb!important;color:#079caf!important}
.workspace-metrics .metric-amber .metric-icon{background:#fff3df!important;color:#b47a20!important}
.workspace-metrics .metric-green .metric-icon{background:#e8f7ee!important;color:#359c5c!important}
.workspace-metrics .metric-blue .metric-icon{background:#edf3ff!important;color:#4b72b3!important}
.workspace-metrics .metric-violet .metric-icon{background:#f2edff!important;color:#765db4!important}
@media(max-width:900px){
 body.lmp-portal-surface .lmp-patient-unified{width:min(100% - 24px,760px)!important;margin-top:18px!important}
 body.lmp-portal-surface .patient-dashboard-hero{grid-template-columns:1fr!important;padding:25px!important;border-radius:25px!important}
 body.lmp-portal-surface .patient-hero-profile{max-width:none}
 body.lmp-portal-surface .patient-summary-grid{grid-template-columns:1fr 1fr!important}
 body.lmp-portal-surface .patient-summary-card:first-child{grid-column:auto!important}
 body.lmp-portal-surface .patient-progress{grid-template-columns:1fr 1fr!important}
 body.lmp-portal-surface .patient-progress-line{display:none!important}
 body.lmp-portal-surface .patient-final-card{grid-template-columns:58px 1fr!important}
 body.lmp-portal-surface .patient-final-actions{grid-column:1/-1}
 body.lmp-portal-surface #appointments .noa-row{grid-template-columns:1fr!important}
}
@media(max-width:620px){
 body.lmp-portal-surface .lmp-patient-unified{width:calc(100% - 16px)!important;margin-bottom:35px!important}
 body.lmp-portal-surface .patient-dashboard-hero{padding:20px!important}
 body.lmp-portal-surface .patient-dashboard-hero h1{font-size:31px!important}
 body.lmp-portal-surface .patient-dashboard-hero-copy p{font-size:14px!important}
 body.lmp-portal-surface .patient-hero-profile{padding:16px!important}
 body.lmp-portal-surface .patient-avatar{width:58px;height:58px;flex-basis:58px;border-radius:18px;font-size:24px}
 body.lmp-portal-surface .patient-dashboard-nav{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
 body.lmp-portal-surface .patient-dashboard-nav::-webkit-scrollbar{display:none}
 body.lmp-portal-surface .patient-dashboard-nav a{flex:0 0 auto;padding:0 13px!important}
 body.lmp-portal-surface .patient-dashboard-nav a.patient-logout{margin-right:0}
 body.lmp-portal-surface .patient-summary-grid{grid-template-columns:1fr 1fr!important;gap:8px!important}
 body.lmp-portal-surface .patient-summary-card{min-height:90px;padding:14px!important}
 body.lmp-portal-surface .patient-summary-card strong{font-size:15px!important}
 body.lmp-portal-surface .patient-dashboard-section{padding:18px!important;border-radius:22px!important}
 body.lmp-portal-surface .patient-section-heading h2{font-size:23px!important}
 body.lmp-portal-surface .patient-current-card{align-items:flex-start;flex-direction:column}
 body.lmp-portal-surface .patient-current-status{align-items:flex-start}
 body.lmp-portal-surface .patient-progress{grid-template-columns:1fr!important;padding:12px!important}
 body.lmp-portal-surface .patient-progress-step{min-height:90px}
 body.lmp-portal-surface .patient-final-card{grid-template-columns:50px 1fr!important;padding:16px!important}
 body.lmp-portal-surface .patient-pdf-mark{width:50px;height:50px;border-radius:14px}
 body.lmp-portal-surface .patient-final-actions a{flex:1}
 body.lmp-portal-surface .patient-history-card>header{align-items:flex-start;flex-direction:column}
 body.lmp-portal-surface .patient-test-row{align-items:flex-start;flex-direction:column}
 body.lmp-portal-surface .patient-test-row a,.patient-history-footer a{width:100%}
 body.lmp-portal-surface .patient-history-footer{align-items:flex-start;flex-direction:column}
 .workspace-metrics .metric .metric-icon{width:50px!important;height:50px!important;min-width:50px!important;min-height:50px!important;border-radius:15px!important}
 .workspace-metrics .metric .metric-icon svg{width:26px!important;height:26px!important}
}
