:root{--ink:#243632;--muted:#64726f;--paper:#f6f7f3;--surface:#fff;--line:#dfe5df;--sage:#497a70;--sage-dark:#315b53;--sage-light:#e5efeb;--sand:#eadfce;--rose:#8f5555;--shadow:0 18px 55px rgba(42,63,58,.1);--radius:22px}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.6}a{color:var(--sage-dark);text-decoration-thickness:1px;text-underline-offset:3px}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.025em;line-height:1.13}h1{font-size:clamp(2.3rem,5vw,4.9rem)}h2{font-size:clamp(1.6rem,3vw,2.7rem)}p{color:var(--muted)}.container{max-width:1180px}.narrow-container{max-width:780px}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:9999;background:#fff;padding:.8rem 1rem}.skip-link:focus{top:1rem}.site-header{background:rgba(246,247,243,.96);border-bottom:1px solid rgba(73,122,112,.12);position:sticky;top:0;z-index:100;backdrop-filter:blur(16px)}.navbar{min-height:82px}.brand{display:flex;align-items:center;gap:.75rem;color:var(--ink);text-decoration:none}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:50% 50% 46% 54%;background:var(--sage);color:#fff;font-family:Georgia;font-size:1.35rem}.brand strong,.brand small{display:block}.brand small{font-size:.72rem;color:var(--muted);letter-spacing:.04em}.nav-link{color:var(--ink);font-weight:600;padding:.7rem .8rem!important;border-radius:12px}.nav-link:hover{background:var(--sage-light);color:var(--sage-dark)}.account-chip{border:1px solid var(--line);background:#fff}.btn{border-radius:14px;font-weight:700;padding:.68rem 1rem;border-width:1px}.btn-lg{padding:.9rem 1.25rem}.btn-primary{background:var(--sage);border-color:var(--sage);color:#fff}.btn-primary:hover,.btn-primary:focus{background:var(--sage-dark);border-color:var(--sage-dark)}.btn-quiet{background:#fff;border-color:var(--line);color:var(--ink)}.btn-quiet:hover{background:var(--sage-light);border-color:#bfd3cb;color:var(--sage-dark)}.btn-danger-quiet{background:#fff;border-color:#e8cccc;color:var(--rose)}.btn-danger-quiet:hover{background:#faeeee;color:#713f3f}.hero{padding:clamp(4rem,8vw,8rem) 0;background:radial-gradient(circle at 80% 20%,#dfece6 0,transparent 34%),linear-gradient(145deg,#f8f8f4 0,#f2f5f0 100%);overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:clamp(3rem,8vw,7rem)}.hero h1{max-width:720px;margin:.8rem 0 1.5rem}.lead{font-size:1.2rem;max-width:700px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--sage);font-size:.76rem;font-weight:800}.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin:2rem 0 1rem}.microcopy,.field-help{font-size:.85rem}.calm-card{min-height:470px;border-radius:42% 58% 54% 46%/44% 40% 60% 56%;background:var(--sage);color:#fff;position:relative;display:grid;place-items:center;padding:3rem;box-shadow:var(--shadow);overflow:hidden}.calm-orbit{position:absolute;border:1px solid rgba(255,255,255,.22);border-radius:50%}.orbit-one{width:380px;height:380px;right:-90px;top:-50px}.orbit-two{width:260px;height:260px;left:-70px;bottom:-80px}.calm-content{position:relative;max-width:340px}.calm-content>strong{display:block;font-family:Georgia;font-size:2.15rem;line-height:1.2;margin:.7rem 0 2rem}.calm-date{opacity:.8}.calm-content ul{list-style:none;padding:0;margin:0;display:grid;gap:1rem}.calm-content li{display:flex;align-items:center;gap:.8rem}.calm-content li span{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(255,255,255,.5);border-radius:50%;font-size:.8rem}.trust-section{padding:7rem 0}.section-heading{max-width:700px;margin-bottom:2.5rem}.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.feature-card,.data-card,.editor-card,.auth-card,.booking-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 28px rgba(48,71,65,.05)}.feature-card{padding:2rem;min-height:330px;display:flex;flex-direction:column}.feature-card.featured{background:var(--sage);color:#fff}.feature-card.featured p,.feature-card.featured a{color:#eff8f4}.feature-number{font-family:Georgia;font-size:1.4rem;color:#92a9a1}.feature-card h3{font-size:1.75rem;margin:2.2rem 0 .8rem}.feature-card a{margin-top:auto;font-weight:700}.site-footer{border-top:1px solid var(--line);padding:3rem 0;background:#eef1ec}.footer-grid{display:grid;grid-template-columns:1.4fr .7fr 1fr;gap:2rem;align-items:start}.footer-grid nav{display:grid;gap:.5rem}.security-note span{color:var(--sage)}.alert-wrap{padding-top:1rem}.auth-page,.page-shell{padding:clamp(3rem,7vw,6rem) 0;min-height:70vh}.auth-grid{display:grid;grid-template-columns:1fr .75fr;gap:1.5rem;max-width:980px}.auth-card,.editor-card{padding:clamp(1.5rem,4vw,3rem)}.auth-card h1{font-size:clamp(2.1rem,4vw,3.5rem);margin:.7rem 0}.auth-alternative{border-radius:var(--radius);padding:3rem;background:var(--sage-light);align-self:stretch;display:flex;flex-direction:column;justify-content:center}.auth-alternative h2{font-size:2.2rem}.form-group{display:grid;gap:.4rem;margin-bottom:1.1rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group label,.code-display-label{font-weight:750;font-size:.9rem}.form-group input,.form-group select,.form-group textarea,.generated-code{width:100%;border:1px solid #cbd5cf;border-radius:12px;padding:.82rem .9rem;background:#fff;color:var(--ink);font:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:3px solid rgba(73,122,112,.18);border-color:var(--sage)}.form-group span[data-valmsg-for],span.field-validation-error{color:var(--rose);font-size:.82rem}.validation-summary{color:var(--rose);margin:1rem 0}.validation-summary:empty{display:none}.check-row{display:flex;gap:.7rem;align-items:flex-start;margin:1.2rem 0}.check-row input{margin-top:.35rem}.auth-foot{text-align:center;margin:1.4rem 0 0}.privacy-seal{display:grid;place-items:center;width:62px;height:62px;background:var(--sage-light);color:var(--sage);border-radius:50%;font-size:2rem;margin-bottom:1rem}.code-input input,.generated-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;font-size:1.1rem;text-align:center}.privacy-explainer,.info-banner,.warning-box{margin-top:1.5rem;padding:1.1rem 1.2rem;border-radius:14px;background:var(--sage-light);border:1px solid #cadcd5}.privacy-explainer p,.warning-box p{margin:.2rem 0 0}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.2rem}.page-heading h1{font-size:clamp(2.4rem,5vw,4.2rem);margin:.4rem 0}.page-heading p{font-size:1.1rem;max-width:720px;margin:0}.info-banner{margin:-.5rem 0 1.5rem}.responsive-table{overflow:auto}.data-card{overflow:hidden}.responsive-table table{width:100%;border-collapse:collapse}.responsive-table th,.responsive-table td{text-align:left;padding:1rem 1.2rem;border-bottom:1px solid var(--line);white-space:nowrap}.responsive-table th{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#fafbf8}.status-pill{display:inline-flex;padding:.28rem .6rem;border-radius:999px;background:#eef1ec;font-size:.75rem;font-weight:800}.status-pill.active{background:#e4f2e9;color:#38634d}.status-pill.inactive{background:#faeaea;color:#804545}.status-page{min-height:68vh;display:grid;place-items:center;padding:3rem 1rem}.status-card{max-width:650px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(2rem,6vw,4rem);box-shadow:var(--shadow)}.status-symbol{display:grid;place-items:center;width:68px;height:68px;margin:0 auto 1rem;border-radius:50%;background:var(--sage-light);color:var(--sage);font-size:2rem}.wide-status{max-width:760px}.generated-code{margin:.5rem 0 1rem;font-size:1.35rem;padding:1.1rem}.split-editor{display:grid;grid-template-columns:1fr .9fr;gap:1.4rem;align-items:start}.editor-heading{margin-bottom:1.5rem}.editor-heading h1,.editor-heading h2{margin:.35rem 0}.editor-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:1.5rem}.session-list,.public-session-list{list-style:none;padding:0;margin:0;display:grid;gap:.7rem}.session-list li{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--line);border-radius:14px}.session-list span{display:block;color:var(--muted);font-size:.85rem}.session-form{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--line)}.filter-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:2rem}.filter-pill{padding:.55rem .9rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);text-decoration:none;font-weight:650}.filter-pill.selected{background:var(--sage);color:#fff;border-color:var(--sage)}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.course-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;display:flex;flex-direction:column;min-height:400px}.course-card-top{display:flex;align-items:center;gap:.55rem;color:var(--muted);font-size:.82rem}.course-card-top .status-pill{margin-left:auto}.category-dot{width:10px;height:10px;border-radius:50%}.course-card h2{font-size:1.65rem;margin:1.2rem 0 .7rem}.course-card h2 a{color:var(--ink);text-decoration:none}.course-facts{display:grid;gap:.7rem;margin-top:auto}.course-facts div{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:.65rem}.course-facts dt{font-size:.8rem;color:var(--muted)}.course-facts dd{font-weight:750;margin:0}.course-card-actions{display:flex;align-items:center;justify-content:space-between;margin-top:1.2rem}.text-link{font-size:.9rem}.course-detail-grid{display:grid;grid-template-columns:1fr 340px;gap:2rem;align-items:start}.detail-main{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.5rem,4vw,3.5rem)}.detail-main h1{font-size:clamp(2.3rem,5vw,4rem);margin:1rem 0}.target-group{font-size:1.1rem;padding-left:1rem;border-left:3px solid var(--sage)}.rich-copy,.schedule-section,.participants{padding-top:2rem;margin-top:2rem;border-top:1px solid var(--line)}.public-session-list li{display:flex;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}.public-session-list time{display:grid;place-items:center;align-content:center;width:58px;height:64px;border-radius:14px;background:var(--sage-light);color:var(--sage-dark)}.public-session-list time strong{font-size:1.4rem;line-height:1}.public-session-list p,.public-session-list small{display:block;margin:0;color:var(--muted)}.section-heading-row{display:flex;justify-content:space-between;align-items:center}.participants ul{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.participants li{display:flex;align-items:center;gap:.7rem;padding:.8rem;background:var(--paper);border-radius:14px}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--sage);color:#fff}.participants small{display:block;color:var(--muted)}.booking-card{padding:1.5rem;position:sticky;top:105px}.capacity-number{font-family:Georgia;font-size:4rem;display:block;line-height:1;margin-top:1.2rem}.therapist-info{display:grid;margin:1.5rem 0;padding:1.2rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.therapist-info small,.therapist-info span{color:var(--muted)}.booked-state{padding:1rem;background:var(--sage-light);border-radius:12px;margin-bottom:.7rem;color:var(--sage-dark);font-weight:750}.back-link{display:inline-block;margin-bottom:1rem}.timeline{display:grid;gap:2rem}.timeline-day{display:grid;grid-template-columns:170px 1fr;gap:1.5rem}.timeline-day>header{padding-top:.9rem}.timeline-day>header span,.timeline-day>header strong{display:block}.timeline-day>header span{text-transform:uppercase;color:var(--sage);font-weight:800;font-size:.76rem;letter-spacing:.1em}.timeline-items{display:grid;gap:.7rem}.timeline-item{display:grid;grid-template-columns:105px 1fr auto;gap:1.2rem;align-items:center;background:#fff;border:1px solid var(--line);border-left:5px solid var(--sage);border-radius:16px;padding:1.1rem}.timeline-item.course{border-left-color:#7b7395}.time-block strong,.time-block span{display:block}.time-block strong{font-size:1.2rem}.time-block span{font-size:.78rem;color:var(--muted)}.kind-label{text-transform:uppercase;font-size:.7rem;letter-spacing:.1em;color:var(--sage);font-weight:800}.item-main h2{font-family:inherit;font-size:1.1rem;letter-spacing:0;margin:.15rem 0}.item-main p{margin:0}.item-actions{display:flex;gap:.5rem}.empty-state{padding:4rem 2rem;text-align:center}.empty-state.compact{padding:1rem}.legal-page section{padding:1.5rem 0;border-top:1px solid var(--line)}.muted{color:var(--muted)}@media(max-width:980px){.hero-grid,.trust-grid,.course-grid,.course-detail-grid,.split-editor{grid-template-columns:1fr}.calm-card{min-height:390px}.course-grid{grid-template-columns:1fr 1fr}.booking-card{position:static}.footer-grid{grid-template-columns:1fr 1fr}.security-note{grid-column:1/-1}.timeline-day{grid-template-columns:1fr}.timeline-day>header{display:flex;gap:.5rem}}@media(max-width:720px){.hero{padding-top:3.5rem}.calm-card{border-radius:32px;padding:2rem}.trust-grid,.course-grid,.auth-grid,.form-row,.participants ul{grid-template-columns:1fr}.auth-alternative{padding:2rem}.page-heading{align-items:flex-start;flex-direction:column}.timeline-item{grid-template-columns:72px 1fr}.item-actions{grid-column:1/-1;justify-content:flex-end}.footer-grid{grid-template-columns:1fr}.responsive-table th,.responsive-table td{padding:.8rem}.detail-main{padding:1.3rem}}
.navbar-toggler{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);padding:.55rem .75rem;font-weight:750}.navbar-toggler:focus{box-shadow:0 0 0 3px rgba(73,122,112,.18)}.menu-icon{font-size:1.4rem;line-height:1}.menu-label{font-size:.85rem}@media(max-width:991.98px){.navbar-collapse{margin-top:.8rem;padding:1rem;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.navbar-nav{align-items:stretch!important}.navbar-nav .nav-link,.navbar-nav .btn{display:block;width:100%;text-align:left;margin:.15rem 0}.account-chip{margin-top:.4rem}}

/* Practice dashboard */
.staff-dashboard{padding-top:clamp(2rem,5vw,4.5rem)}
.staff-dashboard-header{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:2rem}
.staff-dashboard-header h1{font-size:clamp(2.5rem,5vw,4.2rem);margin:.35rem 0}
.staff-dashboard-header p{font-size:1.05rem;margin:0}
.staff-actions{display:flex;justify-content:flex-end;gap:.65rem;flex-wrap:wrap}
.staff-actions form{margin:0}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1.25rem}
.metric-card{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.35rem;display:grid;gap:.35rem;box-shadow:0 8px 28px rgba(48,71,65,.05)}
.metric-card strong{font-family:Georgia,"Times New Roman",serif;font-size:2.7rem;line-height:1;color:var(--ink)}
.metric-label{color:var(--muted);font-size:.85rem;font-weight:750;min-height:2.6em}
.metric-card a{font-size:.82rem;font-weight:750;margin-top:.35rem}
.dashboard-content-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.dashboard-panel{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 28px rgba(48,71,65,.05)}
.dashboard-panel>header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.4rem 1.5rem;border-bottom:1px solid var(--line)}
.dashboard-panel h2{font-size:1.65rem;margin:.2rem 0 0}
.dashboard-list{display:grid}
.dashboard-list-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.dashboard-list-item:last-child{border-bottom:0}
.dashboard-list-item:hover{background:var(--sage-light)}
.dashboard-list-item time{display:grid;place-items:center;width:48px;height:54px;border-radius:12px;background:var(--sage-light);color:var(--sage-dark);line-height:1}
.dashboard-list-item time strong{font-size:1.25rem}
.dashboard-list-item time span{font-size:.68rem;text-transform:uppercase}
.dashboard-list-item>div:not(.message-avatar){min-width:0;display:grid}
.dashboard-list-item>div>strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-list-item>div>span{color:var(--muted);font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.message-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--sage);color:#fff;font-family:Georgia;font-size:1.1rem}
.dashboard-empty{min-height:220px;display:grid;place-content:center;text-align:center;padding:2rem}
.dashboard-empty strong{font-family:Georgia,"Times New Roman",serif;font-size:1.35rem}
.dashboard-empty p{margin:.35rem 0 0}

@media(max-width:991.98px){
  .navbar-collapse{padding:.6rem!important}
  .navbar-nav{gap:.1rem!important}
  .navbar-nav .nav-item{width:100%}
  .navbar-nav .nav-link,.navbar-nav .btn{padding:.72rem .8rem!important;margin:0!important;border-radius:10px}
  .staff-dashboard-header{align-items:flex-start;flex-direction:column;gap:1.25rem}
  .staff-actions{justify-content:flex-start;width:100%}
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-content-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .staff-dashboard{padding-top:1.5rem}
  .staff-dashboard-header{margin-bottom:1.25rem}
  .staff-dashboard-header h1{font-size:2.45rem}
  .staff-actions{display:grid;grid-template-columns:1fr 1fr}
  .staff-actions form,.staff-actions .btn{width:100%}
  .staff-actions .btn{text-align:center}
  .metric-grid{gap:.7rem}
  .metric-card{padding:1rem;min-height:132px}
  .metric-card strong{font-size:2.25rem}
  .metric-label{font-size:.78rem}
  .dashboard-panel>header{padding:1.1rem;align-items:flex-start}
  .dashboard-panel h2{font-size:1.35rem}
  .dashboard-list-item{padding:.9rem 1rem;gap:.75rem}
  .dashboard-list-item .status-pill{display:none}
  .dashboard-empty{min-height:170px}
}


/* Patient dashboard */
.patient-dashboard{padding-top:clamp(2rem,5vw,4.5rem)}
.patient-dashboard-header{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:1.5rem}
.patient-dashboard-header h1{font-size:clamp(2.6rem,5vw,4.4rem);margin:.35rem 0}
.patient-dashboard-header p{max-width:650px;font-size:1.05rem;margin:0}
.patient-actions{display:flex;justify-content:flex-end;gap:.65rem;flex-wrap:wrap}
.patient-summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 28px rgba(48,71,65,.05);margin-bottom:1.25rem}
.patient-summary-item{min-width:0;display:grid;gap:.18rem;padding:1.1rem 1.25rem;color:var(--ink);text-decoration:none;border-right:1px solid var(--line)}
.patient-summary-item:last-child{border-right:0}
.patient-summary-item:hover{background:var(--sage-light);color:var(--sage-dark)}
.patient-summary-item span{color:var(--muted);font-size:.78rem;font-weight:750}
.patient-summary-item strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.patient-summary-item.has-update{background:#edf6f2}
.patient-main-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:1.25rem;align-items:start}
.patient-primary-column,.patient-side-column{display:grid;gap:1.25rem;min-width:0}
.patient-focus-card,.patient-section-card,.patient-message-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 28px rgba(48,71,65,.05)}
.patient-focus-card,.patient-section-card{overflow:hidden}
.patient-focus-card>header,.patient-section-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.35rem 1.5rem;border-bottom:1px solid var(--line)}
.patient-focus-card h2,.patient-section-card h2{font-size:1.7rem;margin:.25rem 0 0}
.patient-appointment{display:grid;grid-template-columns:78px minmax(0,1fr);gap:1.25rem;align-items:center;padding:1.7rem 1.5rem 1.2rem}
.patient-appointment time{display:grid;place-items:center;align-content:center;min-height:92px;border-radius:18px;background:var(--sage);color:#fff;line-height:1}
.patient-appointment time strong{font-family:Georgia,"Times New Roman",serif;font-size:2.15rem;margin:.22rem 0}
.patient-appointment time span{font-size:.72rem;font-weight:750;text-transform:uppercase;letter-spacing:.07em}
.patient-appointment-copy{min-width:0}
.patient-appointment-copy h3{font-family:inherit;font-size:1.25rem;letter-spacing:0;margin:0 0 .3rem}
.patient-appointment-copy p{margin:.25rem 0}
.patient-appointment-copy .appointment-time{color:var(--ink);font-weight:750}
.patient-focus-card>.text-link{display:inline-block;margin:0 1.5rem 1.5rem;font-weight:750}
.patient-empty-state{display:grid;justify-items:start;gap:.45rem;padding:2rem 1.5rem}
.patient-empty-state strong{font-family:Georgia,"Times New Roman",serif;font-size:1.35rem}
.patient-empty-state p{margin:0 0 .5rem}
.patient-empty-state.compact{padding:1.5rem}
.patient-course-list{display:grid}
.patient-course-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.patient-course-row:last-child{border-bottom:0}
.patient-course-row:hover{background:var(--sage-light)}
.patient-course-row>div{min-width:0;display:grid}
.patient-course-row strong,.patient-course-row span:first-of-type{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.patient-course-row>div>span{color:var(--muted);font-size:.8rem}
.patient-message-card{padding:1.5rem;display:grid;justify-items:start}
.patient-message-card strong{font-family:Georgia,"Times New Roman",serif;font-size:1.75rem;margin:.35rem 0}
.patient-message-card p{margin:0 0 1rem}
.patient-message-card.has-update{background:linear-gradient(145deg,var(--sage) 0,var(--sage-dark) 100%);border-color:transparent;color:#fff}
.patient-message-card.has-update .eyebrow,.patient-message-card.has-update p{color:#e7f2ee}
.patient-message-card.has-update .btn-primary{background:#fff;border-color:#fff;color:var(--sage-dark)}
.patient-notice-list{display:grid}
.patient-notice{padding:1rem 1.5rem;border-bottom:1px solid var(--line)}
.patient-notice:last-child{border-bottom:0}
.patient-notice.is-new{border-left:4px solid var(--sage);padding-left:1.25rem;background:#fbfdfb}
.patient-notice>div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.patient-notice strong{font-size:.92rem}
.patient-notice span{color:var(--muted);font-size:.72rem;white-space:nowrap}
.patient-notice p{font-size:.84rem;margin:.3rem 0 0}

/* Shared messages view */
.messages-page{padding-top:clamp(2rem,5vw,4.5rem)}
.messages-container{max-width:900px}
.messages-header{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:1.5rem}
.messages-header h1{font-size:clamp(2.6rem,5vw,4.2rem);margin:.35rem 0}
.messages-header p{margin:0}
.messages-unread-banner{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.1rem;margin-bottom:.8rem;border:1px solid #c7ddd4;border-radius:14px;background:var(--sage-light);color:var(--sage-dark)}
.messages-unread-banner span{font-size:.82rem}
.conversation-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 28px rgba(48,71,65,.05)}
.conversation-list{display:grid}
.conversation-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1.1rem 1.25rem;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.conversation-row:last-child{border-bottom:0}
.conversation-row:hover{background:var(--sage-light)}
.conversation-row.is-unread{background:#fbfdfb;border-left:4px solid var(--sage);padding-left:1rem}
.conversation-avatar{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#edf1ed;color:var(--sage-dark);font-family:Georgia,"Times New Roman",serif;font-size:1.25rem}
.conversation-row.is-unread .conversation-avatar{background:var(--sage);color:#fff}
.conversation-copy{min-width:0;display:grid;gap:.12rem}
.conversation-title-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;min-width:0}
.conversation-title-row strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conversation-title-row time{color:var(--muted);font-size:.72rem;white-space:nowrap}
.conversation-counterpart{color:var(--sage-dark);font-size:.78rem;font-weight:750}
.conversation-preview{color:var(--muted);font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conversation-preview b{color:var(--ink);font-weight:650}
.conversation-state{display:flex;align-items:center;justify-content:flex-end;gap:.5rem}
.unread-count{display:grid;place-items:center;min-width:26px;height:26px;padding:0 .45rem;border-radius:999px;background:var(--sage);color:#fff;font-size:.76rem;font-weight:800}
.messages-empty{min-height:320px;display:grid;place-content:center;justify-items:center;text-align:center;padding:2rem}
.messages-empty h2{font-size:1.9rem;margin:.35rem 0}
.messages-empty p{max-width:480px;margin:.2rem 0 1rem}

@media(max-width:991.98px){
  .patient-dashboard-header{align-items:flex-start;flex-direction:column;gap:1.25rem}
  .patient-actions{justify-content:flex-start;width:100%}
  .patient-main-grid{grid-template-columns:1fr}
  .patient-side-column{grid-template-columns:repeat(2,minmax(0,1fr))}
  .patient-notifications{grid-column:1/-1}
}
@media(max-width:680px){
  .patient-dashboard,.messages-page{padding-top:1.4rem}
  .patient-dashboard-header,.messages-header{align-items:flex-start;flex-direction:column;gap:1rem;margin-bottom:1.15rem}
  .patient-dashboard-header h1,.messages-header h1{font-size:2.45rem}
  .patient-actions{display:grid;grid-template-columns:1fr 1fr}
  .patient-actions .btn{width:100%;text-align:center}
  .patient-summary-strip{grid-template-columns:1fr}
  .patient-summary-item{border-right:0;border-bottom:1px solid var(--line);padding:.85rem 1rem}
  .patient-summary-item:last-child{border-bottom:0}
  .patient-side-column{grid-template-columns:1fr}
  .patient-notifications{grid-column:auto}
  .patient-focus-card>header,.patient-section-card>header{padding:1.1rem}
  .patient-focus-card h2,.patient-section-card h2{font-size:1.4rem}
  .patient-appointment{grid-template-columns:64px minmax(0,1fr);gap:1rem;padding:1.25rem 1.1rem 1rem}
  .patient-appointment time{min-height:80px}
  .patient-appointment time strong{font-size:1.8rem}
  .patient-focus-card>.text-link{margin:0 1.1rem 1.2rem}
  .patient-course-row,.patient-notice{padding:.9rem 1.1rem}
  .patient-notice.is-new{padding-left:.85rem}
  .patient-notice>div{display:grid;gap:.05rem}
  .messages-header .btn{width:100%;text-align:center}
  .messages-unread-banner{align-items:flex-start;flex-direction:column;gap:.1rem}
  .conversation-row,.conversation-row.is-unread{grid-template-columns:42px minmax(0,1fr);gap:.8rem;padding:.9rem}
  .conversation-row.is-unread{padding-left:.65rem}
  .conversation-avatar{width:42px;height:42px}
  .conversation-state{grid-column:2;justify-content:flex-start}
  .conversation-title-row{display:grid;gap:.05rem}
  .conversation-title-row time{grid-row:2}
  .conversation-preview{margin-top:.15rem}
  .messages-empty{min-height:260px;padding:1.5rem}
}


/* Care relationships and coverage */
.care-management-card{padding:0;overflow:hidden}
.care-access-list{display:grid}
.care-access-row{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(170px,.8fr) minmax(190px,.9fr) auto;align-items:center;gap:1rem;padding:1.1rem 1.25rem;border-bottom:1px solid var(--line)}
.care-access-row:last-child{border-bottom:0}
.care-person{display:flex;align-items:center;gap:.9rem;min-width:0}
.care-person>div{display:grid;gap:.1rem;min-width:0}
.care-person strong,.care-person span{overflow:hidden;text-overflow:ellipsis}
.care-person>div>span{color:var(--muted);font-size:.83rem;white-space:nowrap}
.compact-check{margin:0;padding:.7rem .8rem;border:1px solid var(--line);border-radius:14px;background:#fbfcfa}
.compact-check input{width:18px;height:18px;flex:0 0 auto}
.compact-check span{font-size:.82rem;font-weight:720;line-height:1.25}

.coverage-grid{align-items:start}
.coverage-list{display:grid;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}
.coverage-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:1rem;padding:1rem 1.1rem;border-bottom:1px solid var(--line)}
.coverage-row:last-child{border-bottom:0}
.coverage-row>div{display:grid;gap:.18rem}
.coverage-row>div>span{color:var(--muted);font-size:.82rem}
.incoming-coverage{margin-top:1.5rem}
.status-pill.coverage{background:#eef3ff;color:#315b9e;border-color:#d8e4fb}

.patient-list-heading{align-items:end}
.patient-search{width:min(100%,340px);margin:0}
.patient-access-card{overflow:hidden;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:var(--shadow-soft)}
.patient-access-row{display:grid;grid-template-columns:minmax(230px,1.25fr) minmax(220px,1fr) minmax(155px,.7fr) auto;align-items:center;gap:1rem;padding:1.15rem 1.25rem;border-bottom:1px solid var(--line)}
.patient-access-row:last-child{border-bottom:0}
.patient-access-row[hidden]{display:none}
.patient-access-sources{display:flex;flex-wrap:wrap;gap:.4rem}
.patient-access-meta{display:grid;gap:.12rem;color:var(--muted);font-size:.8rem}
.patient-empty-state{display:grid;gap:.35rem;justify-items:start;padding:2rem}
.patient-empty-state.compact{padding:1.2rem 0}
.patient-empty-state p{margin:0;max-width:680px}

@media(max-width:991.98px){
  .care-access-row{grid-template-columns:minmax(220px,1fr) minmax(170px,1fr)}
  .care-access-row .btn{justify-self:start}
  .patient-access-row{grid-template-columns:minmax(220px,1fr) minmax(220px,1fr)}
  .patient-access-meta{grid-column:1}
  .patient-access-row>.btn{grid-column:2;justify-self:start}
}
@media(max-width:680px){
  .patient-list-heading{align-items:stretch}
  .patient-search{width:100%}
  .care-access-row,.patient-access-row,.coverage-row{grid-template-columns:1fr;align-items:stretch}
  .care-access-row{padding:1rem}
  .compact-check{width:100%}
  .care-access-row .btn,.patient-access-row>.btn{width:100%;justify-self:stretch;text-align:center}
  .patient-access-row{padding:1rem}
  .patient-access-meta,.patient-access-row>.btn{grid-column:auto}
  .patient-access-sources{margin-top:.15rem}
  .coverage-row{gap:.7rem}
  .coverage-row form,.coverage-row .btn{width:100%}
}

.metric-detail{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:-.2rem}
.metric-detail span{padding:.22rem .48rem;border-radius:999px;background:#f0f4f0;color:var(--sage-dark);font-size:.7rem;font-weight:760}

/* PsyPortal 2026 visual system */
:root {
  --ink: #17332e;
  --ink-soft: #2d4842;
  --muted: #6a7a76;
  --paper: #f4f7f4;
  --surface: #ffffff;
  --surface-soft: #eef5f1;
  --line: rgba(23, 63, 57, .12);
  --sage: #2f7d6d;
  --sage-dark: #173f39;
  --sage-light: #dff1ea;
  --mint: #76c5ad;
  --sand: #f3e4d2;
  --coral: #efaa82;
  --rose: #b25e65;
  --blue: #4b74a8;
  --radius-sm: 14px;
  --radius: 22px;
  --radius-lg: 32px;
  --shadow-sm: 0 12px 32px rgba(23, 63, 57, .08);
  --shadow: 0 24px 70px rgba(23, 63, 57, .12);
  --shadow-strong: 0 30px 90px rgba(16, 48, 43, .2);
}

html { scroll-behavior: smooth; }
body {
  color: var(--ink);
  background:
    radial-gradient(circle at 0 0, rgba(118, 197, 173, .1), transparent 32rem),
    var(--paper);
  font-family: "Segoe UI Variable Text", "Segoe UI", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
body.public-mode { background: #fbfcfa; }
h1, h2, h3, h4, h5, h6 {
  color: var(--ink);
  font-family: "Segoe UI Variable Display", "Segoe UI", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  font-weight: 730;
  letter-spacing: -.035em;
  line-height: 1.08;
}
a { color: var(--sage-dark); text-underline-offset: 3px; }
.container { max-width: 1220px; }
.page-shell { padding: clamp(2.25rem, 5vw, 4.75rem) 0 5rem; }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: var(--sage);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .15em;
  line-height: 1;
  text-transform: uppercase;
}
.eyebrow.light { color: #bce7d8; }

/* Shell */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1050;
  border-bottom: 1px solid rgba(23, 63, 57, .08);
  background: rgba(250, 252, 249, .9);
  box-shadow: 0 8px 30px rgba(23, 63, 57, .035);
  backdrop-filter: blur(18px) saturate(140%);
}
.site-header .navbar { min-height: 82px; padding: .75rem 0; }
.brand {
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  color: var(--ink);
  text-decoration: none;
}
.brand-mark {
  position: relative;
  display: grid;
  width: 47px;
  height: 47px;
  place-items: center;
  overflow: hidden;
  border-radius: 16px 16px 16px 7px;
  color: white;
  background: linear-gradient(145deg, #3d8f7d, var(--sage-dark));
  box-shadow: 0 10px 24px rgba(47, 125, 109, .22);
}
.brand-mark::after {
  position: absolute;
  right: -8px;
  bottom: -12px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255,255,255,.12);
  content: "";
}
.brand-mark span { position: relative; z-index: 1; font-size: 1.35rem; font-weight: 720; }
.brand-mark.small { width: 42px; height: 42px; border-radius: 14px 14px 14px 6px; flex: 0 0 auto; }
.brand-copy { display: grid; gap: .05rem; }
.brand-copy strong { font-size: 1.08rem; letter-spacing: -.02em; }
.brand-copy small { color: var(--muted); font-size: .72rem; letter-spacing: .02em; }
.site-header .nav-link {
  position: relative;
  padding: .68rem .8rem !important;
  border-radius: 12px;
  color: var(--ink-soft);
  font-size: .91rem;
  font-weight: 680;
  text-decoration: none;
  transition: .2s ease;
}
.site-header .nav-link:hover, .site-header .nav-link.active { color: var(--sage-dark); background: rgba(47, 125, 109, .09); }
.site-header .nav-link.active::after {
  position: absolute;
  right: .75rem;
  bottom: .28rem;
  left: .75rem;
  height: 2px;
  border-radius: 2px;
  background: var(--mint);
  content: "";
}
.nav-cta { padding: .7rem 1rem !important; font-size: .89rem !important; }
.account-chip { display: flex !important; align-items: center; gap: .55rem; padding: .38rem .65rem .38rem .4rem !important; border: 1px solid var(--line); background: white; box-shadow: var(--shadow-sm); }
.account-chip::after { margin-left: .2rem; }
.account-avatar { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 10px; color: white; background: linear-gradient(145deg, var(--sage), var(--sage-dark)); font-size: .8rem; font-weight: 800; text-transform: uppercase; }
.account-name { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dropdown-menu { min-width: 240px; margin-top: .65rem !important; padding: .65rem; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); }
.dropdown-caption { padding: .45rem .65rem .55rem; color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.dropdown-item { padding: .7rem .75rem; border-radius: 10px; color: var(--ink); font-size: .92rem; }
.dropdown-item:hover { color: var(--sage-dark); background: var(--surface-soft); }
.navbar-toggler { gap: .45rem; min-height: 44px; padding: .55rem .8rem; border: 1px solid var(--line) !important; border-radius: 14px; color: var(--ink); background: white; box-shadow: none !important; }
.menu-icon { font-size: 1.2rem; line-height: 1; }
.menu-label { font-size: .86rem; font-weight: 750; }

.btn { min-height: 44px; padding: .68rem 1.05rem; border-radius: 13px; font-weight: 750; letter-spacing: -.01em; box-shadow: none; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { border-color: var(--sage); background: linear-gradient(135deg, #3b8b79, var(--sage-dark)); box-shadow: 0 10px 24px rgba(47, 125, 109, .18); }
.btn-primary:hover, .btn-primary:focus { border-color: var(--sage-dark); background: linear-gradient(135deg, var(--sage), #103a33); box-shadow: 0 14px 30px rgba(47, 125, 109, .24); }
.btn-quiet, .btn-soft { border: 1px solid var(--line); color: var(--ink); background: rgba(255,255,255,.9); }
.btn-quiet:hover, .btn-soft:hover { border-color: rgba(47,125,109,.25); color: var(--sage-dark); background: var(--surface-soft); }
.btn-danger-quiet { border: 1px solid rgba(178, 94, 101, .25); color: #94454d; background: #fff6f6; }
.btn-lg { min-height: 52px; padding: .86rem 1.3rem; border-radius: 15px; font-size: 1rem; }
.text-link { color: var(--sage-dark); font-weight: 750; text-decoration: none; }
.text-link:hover { color: var(--sage); }

/* Marketing */
.marketing-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(4.5rem, 9vw, 8.5rem) 0 clamp(4rem, 8vw, 7.5rem);
  background:
    radial-gradient(circle at 87% 20%, rgba(118, 197, 173, .22), transparent 25rem),
    radial-gradient(circle at 5% 85%, rgba(239, 170, 130, .14), transparent 26rem),
    linear-gradient(180deg, #fbfcfa 0%, #f3f8f4 100%);
}
.marketing-hero::before { position: absolute; top: 12%; right: 2%; width: 260px; height: 260px; border: 1px solid rgba(47,125,109,.09); border-radius: 50%; content: ""; }
.marketing-hero-grid { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(440px, .98fr); align-items: center; gap: clamp(3rem, 7vw, 7.5rem); }
.marketing-hero-copy { position: relative; z-index: 2; }
.trust-chip, .auth-brand-chip { display: inline-flex; align-items: center; gap: .55rem; margin-bottom: 1.6rem; padding: .48rem .75rem; border: 1px solid rgba(47,125,109,.14); border-radius: 999px; color: var(--sage-dark); background: rgba(255,255,255,.72); font-size: .78rem; font-weight: 760; box-shadow: 0 7px 20px rgba(23,63,57,.06); }
.trust-chip span, .auth-brand-chip span { color: var(--mint); font-size: .7rem; }
.marketing-hero h1 { max-width: 760px; margin: 0 0 1.4rem; font-size: clamp(3.1rem, 6vw, 5.8rem); line-height: .98; letter-spacing: -.065em; }
.marketing-hero .lead { max-width: 650px; margin-bottom: 2rem; color: #58706a; font-size: clamp(1.12rem, 1.6vw, 1.32rem); line-height: 1.65; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.hero-assurance { display: flex; flex-wrap: wrap; gap: .8rem 1.25rem; margin-top: 1.65rem; color: var(--muted); font-size: .82rem; }
.hero-assurance span { display: inline-flex; align-items: center; gap: .42rem; }
.hero-assurance i { display: grid; width: 19px; height: 19px; place-items: center; border-radius: 50%; color: var(--sage-dark); background: var(--sage-light); font-size: .7rem; font-style: normal; font-weight: 900; }
.portal-preview { position: relative; min-height: 520px; display: grid; place-items: center; }
.portal-preview-glow { position: absolute; border-radius: 50%; filter: blur(2px); }
.glow-one { top: 2%; right: 5%; width: 300px; height: 300px; background: rgba(118,197,173,.26); }
.glow-two { bottom: 2%; left: 2%; width: 240px; height: 240px; background: rgba(243,228,210,.7); }
.portal-window { position: relative; z-index: 2; width: min(100%, 520px); padding: 1.1rem; border: 1px solid rgba(255,255,255,.8); border-radius: 30px; background: rgba(255,255,255,.88); box-shadow: var(--shadow-strong); backdrop-filter: blur(18px); transform: rotate(1.2deg); }
.portal-window-top { display: flex; align-items: center; justify-content: space-between; padding: .3rem .25rem 1.15rem; color: var(--ink); font-size: .88rem; }
.portal-window-top > div { display: flex; align-items: center; gap: .5rem; }
.preview-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 0 5px rgba(118,197,173,.15); }
.preview-secure { color: var(--sage); font-size: .72rem; font-weight: 760; }
.preview-welcome { display: grid; gap: .15rem; padding: 1.1rem 1.15rem 1.4rem; border-radius: 20px 20px 8px 8px; color: white; background: linear-gradient(135deg, var(--sage-dark), #2c7263); }
.preview-welcome span { color: #bce4d8; font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 750; }
.preview-welcome strong { color: white; font-size: 1.35rem; }
.preview-focus-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .9rem; margin: .75rem 0; padding: 1rem; border: 1px solid var(--line); border-radius: 18px; background: white; box-shadow: var(--shadow-sm); }
.preview-focus-card time { display: grid; width: 52px; height: 60px; place-items: center; padding: .35rem; border-radius: 14px; color: var(--sage-dark); background: var(--sage-light); line-height: 1; }
.preview-focus-card time strong { font-size: 1.35rem; }
.preview-focus-card time span { font-size: .68rem; font-weight: 750; text-transform: uppercase; }
.preview-focus-card > div { display: grid; gap: .12rem; min-width: 0; }
.preview-focus-card > div span, .preview-focus-card small { color: var(--muted); font-size: .7rem; }
.preview-focus-card > div strong { overflow: hidden; font-size: .9rem; text-overflow: ellipsis; white-space: nowrap; }
.preview-status { padding: .35rem .5rem; border-radius: 999px; color: var(--sage-dark); background: var(--sage-light); font-size: .65rem; font-weight: 800; }
.preview-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.preview-tile { display: grid; gap: .12rem; min-height: 115px; padding: 1rem; border-radius: 18px; }
.preview-tile.mint { background: #e2f3ed; }.preview-tile.sand { background: #f7ecdf; }
.preview-tile .preview-icon { display: grid; width: 30px; height: 30px; place-items: center; margin-bottom: .3rem; border-radius: 10px; background: rgba(255,255,255,.7); font-weight: 800; }
.preview-tile small { color: var(--muted); }.preview-tile strong { font-size: 1rem; }
.preview-float-card { position: absolute; z-index: 3; right: -1.5rem; bottom: 2rem; display: flex; align-items: center; gap: .7rem; padding: .85rem 1rem; border: 1px solid rgba(255,255,255,.85); border-radius: 16px; background: rgba(255,255,255,.94); box-shadow: var(--shadow); }
.preview-float-card > span { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 10px; color: white; background: var(--sage); font-weight: 900; }
.preview-float-card div { display: grid; line-height: 1.3; }.preview-float-card strong { font-size: .8rem; }.preview-float-card small { color: var(--muted); font-size: .68rem; }
.trust-band { border-block: 1px solid var(--line); background: white; }
.trust-band-grid { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 1.25rem; }
.trust-band-grid > div { display: flex; align-items: baseline; gap: .8rem; }.trust-band-grid strong { font-size: .92rem; }.trust-band-grid span { color: var(--muted); font-size: .82rem; }
.trust-band-grid a { font-size: .82rem; font-weight: 750; text-decoration: none; }
.journey-section { padding: clamp(4.5rem, 8vw, 7rem) 0; background: #fbfcfa; }
.section-heading.centered { max-width: 720px; margin: 0 auto 3rem; text-align: center; }
.section-heading.centered h2 { margin: .75rem 0 1rem; font-size: clamp(2.2rem, 4vw, 3.4rem); }.section-heading.centered p { color: var(--muted); font-size: 1.1rem; }
.journey-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.journey-card { position: relative; min-height: 350px; padding: 1.6rem; overflow: hidden; border: 1px solid var(--line); border-radius: 26px; background: white; box-shadow: var(--shadow-sm); }
.journey-card::after { position: absolute; right: -60px; bottom: -80px; width: 190px; height: 190px; border-radius: 50%; content: ""; opacity: .55; }
.journey-card.accent-mint::after { background: var(--sage-light); }.journey-card.accent-sand::after { background: var(--sand); }.journey-card.accent-coral::after { background: #f9dfd2; }
.journey-number { color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .12em; }
.journey-icon { display: grid; width: 52px; height: 52px; margin: 2.3rem 0 1.4rem; place-items: center; border-radius: 16px; color: var(--sage-dark); background: var(--surface-soft); font-size: 1.35rem; font-weight: 800; }
.journey-card h3 { margin-bottom: .75rem; font-size: 1.45rem; }.journey-card p { position: relative; z-index: 1; color: var(--muted); }.journey-card a { position: absolute; z-index: 2; bottom: 1.6rem; font-size: .88rem; font-weight: 760; text-decoration: none; }

/* Auth */
.auth-stage { min-height: calc(100vh - 82px); display: grid; align-items: center; padding: 3.25rem 0 4.5rem; background: linear-gradient(145deg, #edf5f0, #fbfcfa 55%, #f7eee4); }
.auth-stage-grid { display: grid; grid-template-columns: 1.05fr .95fr; min-height: 650px; padding: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.8); border-radius: 32px; background: white; box-shadow: var(--shadow-strong); }
.auth-visual-panel { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-height: 650px; padding: clamp(2rem, 5vw, 4.5rem); overflow: hidden; color: white; background: linear-gradient(150deg, #173f39 0%, #245f53 58%, #397e6d 100%); }
.auth-brand-chip { position: relative; z-index: 2; align-self: flex-start; border-color: rgba(255,255,255,.16); color: white; background: rgba(255,255,255,.08); box-shadow: none; }
.auth-visual-copy { position: relative; z-index: 2; max-width: 560px; margin: auto 0 2.5rem; }.auth-visual-copy h1 { margin: 1rem 0 1.15rem; color: white; font-size: clamp(2.7rem, 5vw, 4.5rem); }.auth-visual-copy p { max-width: 520px; color: rgba(255,255,255,.72); font-size: 1.08rem; }
.auth-promise-list { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; }
.auth-promise-list > div { min-width: 0; padding: .9rem; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: rgba(255,255,255,.07); backdrop-filter: blur(10px); }
.auth-promise-list > div > span { display: grid; width: 25px; height: 25px; margin-bottom: .65rem; place-items: center; border-radius: 9px; color: var(--sage-dark); background: var(--mint); font-size: .7rem; font-weight: 900; }
.auth-promise-list p { display: grid; gap: .1rem; margin: 0; line-height: 1.35; }.auth-promise-list strong { color: white; font-size: .75rem; }.auth-promise-list small { color: rgba(255,255,255,.58); font-size: .65rem; }
.auth-visual-orb { position: absolute; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; }.auth-visual-orb.orb-a { top: -120px; right: -120px; width: 380px; height: 380px; box-shadow: inset 0 0 0 50px rgba(255,255,255,.025); }.auth-visual-orb.orb-b { bottom: 70px; left: -120px; width: 270px; height: 270px; }
.auth-form-panel { align-self: center; width: 100%; max-width: 520px; margin: 0 auto; padding: clamp(2rem, 5vw, 4.5rem); }
.auth-form-heading h2 { margin: .7rem 0 .6rem; font-size: 2.35rem; }.auth-form-heading p { color: var(--muted); }
.auth-form { margin-top: 1.8rem; }.form-group { margin-bottom: 1.15rem; }.form-group label { margin-bottom: .42rem; color: var(--ink-soft); font-size: .85rem; font-weight: 760; }
input:not([type="checkbox"]):not([type="radio"]), select, textarea { min-height: 50px; padding: .76rem .9rem; border: 1px solid rgba(23,63,57,.16); border-radius: 13px; color: var(--ink); background: white; box-shadow: 0 1px 0 rgba(23,63,57,.02); }
input:focus, select:focus, textarea:focus { border-color: var(--sage); outline: none; box-shadow: 0 0 0 4px rgba(47,125,109,.11); }
.auth-divider { display: flex; align-items: center; gap: .8rem; margin: 1.35rem 0; color: #94a19e; font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; }.auth-divider::before, .auth-divider::after { height: 1px; flex: 1; background: var(--line); content: ""; }
.auth-foot { margin: 1.4rem 0 0; text-align: center; color: var(--muted); font-size: .88rem; }.auth-foot a { font-weight: 760; }
.auth-security-note { display: flex; justify-content: center; align-items: center; gap: .4rem; margin: 1rem 0 0; color: #82908c; font-size: .72rem; }.auth-security-note span { color: var(--mint); font-size: .55rem; }

/* Dashboards */
.dashboard-hero, .patient-dashboard-header, .staff-dashboard-header { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 1.3rem; padding: clamp(1.7rem, 4vw, 3rem); overflow: hidden; border-radius: var(--radius-lg); color: white; background: linear-gradient(130deg, #173f39 0%, #245e53 58%, #3c8876 100%); box-shadow: var(--shadow); }
.dashboard-hero::after, .patient-dashboard-header::after, .staff-dashboard-header::after { position: absolute; top: -100px; right: -45px; width: 320px; height: 320px; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; box-shadow: inset 0 0 0 55px rgba(255,255,255,.025); content: ""; }
.dashboard-hero > *, .patient-dashboard-header > *, .staff-dashboard-header > * { position: relative; z-index: 1; }
.dashboard-hero h1, .patient-dashboard-header h1, .staff-dashboard-header h1 { margin: .65rem 0 .45rem; color: white; font-size: clamp(2.25rem, 4vw, 3.7rem); }
.dashboard-hero p, .patient-dashboard-header p, .staff-dashboard-header p { max-width: 620px; margin: 0; color: rgba(255,255,255,.7); }
.patient-actions, .staff-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; }
.dashboard-hero .btn, .patient-dashboard-header .btn, .staff-dashboard-header .btn { border-color: rgba(255,255,255,.16); color: white; background: rgba(255,255,255,.1); box-shadow: none; backdrop-filter: blur(10px); }
.dashboard-hero .btn-primary, .patient-dashboard-header .btn-primary, .staff-dashboard-header .btn-primary { border-color: white; color: var(--sage-dark); background: white; }
.staff-actions form { margin: 0; }
.patient-summary-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; margin-bottom: 1rem; }
.patient-summary-item { display: grid; gap: .25rem; min-height: 112px; padding: 1.25rem; border: 1px solid var(--line); border-radius: 20px; color: var(--ink); background: white; box-shadow: var(--shadow-sm); text-decoration: none; transition: .2s ease; }
.patient-summary-item:hover { transform: translateY(-2px); border-color: rgba(47,125,109,.25); }.patient-summary-item span { color: var(--muted); font-size: .78rem; }.patient-summary-item strong { font-size: 1.05rem; }.patient-summary-item.has-update { background: linear-gradient(135deg, #e1f3ed, white); }
.patient-main-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .75fr); gap: 1rem; }.patient-primary-column, .patient-side-column { display: grid; align-content: start; gap: 1rem; }
.patient-focus-card, .patient-section-card, .patient-message-card, .dashboard-panel { border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow-sm); }
.patient-focus-card, .patient-section-card, .dashboard-panel { padding: clamp(1.25rem, 3vw, 1.8rem); }.patient-message-card { padding: 1.5rem; background: linear-gradient(145deg, #e6f4ef, white); }
.patient-focus-card > header, .patient-section-card > header, .dashboard-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }.patient-focus-card h2, .patient-section-card h2, .dashboard-panel h2 { margin: .35rem 0 0; font-size: 1.45rem; }
.patient-appointment { display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: center; padding: 1.1rem; border-radius: 18px; background: var(--surface-soft); }.patient-appointment time { display: grid; width: 72px; height: 82px; place-items: center; padding: .55rem; border-radius: 16px; color: white; background: var(--sage-dark); line-height: 1; }.patient-appointment time strong { color: white; font-size: 1.8rem; }.patient-appointment time span { font-size: .69rem; font-weight: 780; text-transform: uppercase; }.patient-appointment-copy h3 { margin: 0 0 .35rem; font-size: 1.12rem; }.patient-appointment-copy p { margin: .15rem 0; color: var(--muted); font-size: .85rem; }
.patient-course-list, .patient-notice-list, .dashboard-list { display: grid; gap: .6rem; }.patient-course-row, .patient-notice, .dashboard-list-item { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid var(--line); border-radius: 15px; color: var(--ink); background: white; text-decoration: none; }.patient-course-row:hover, a.dashboard-list-item:hover { border-color: rgba(47,125,109,.25); background: var(--surface-soft); }.patient-course-row > div, .patient-notice > div { display: grid; }.patient-course-row span, .patient-notice span, .dashboard-list-item span { color: var(--muted); font-size: .78rem; }
.patient-message-card > strong { display: block; margin: .65rem 0 .25rem; font-size: 1.5rem; }.patient-message-card p { color: var(--muted); }.patient-notice { display: block; }.patient-notice.is-new { border-left: 3px solid var(--mint); background: #f5fbf8; }.patient-notice p { margin: .55rem 0 0; color: var(--muted); font-size: .84rem; }.patient-empty-state, .dashboard-empty { padding: 1.4rem; border: 1px dashed rgba(23,63,57,.2); border-radius: 16px; background: var(--paper); text-align: center; }.patient-empty-state p, .dashboard-empty p { margin: .35rem 0 1rem; color: var(--muted); }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; margin: 1rem 0; }.metric-card { position: relative; display: grid; min-height: 180px; padding: 1.3rem; overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: white; box-shadow: var(--shadow-sm); }.metric-card::after { position: absolute; top: -30px; right: -28px; width: 90px; height: 90px; border-radius: 50%; background: var(--sage-light); content: ""; }.metric-label { color: var(--muted); font-size: .76rem; font-weight: 760; }.metric-card > strong { align-self: center; font-size: 2.5rem; letter-spacing: -.06em; }.metric-card a { align-self: end; font-size: .78rem; font-weight: 750; text-decoration: none; }.metric-detail { display: flex; flex-wrap: wrap; gap: .25rem; }.metric-detail span { padding: .18rem .35rem; border-radius: 6px; color: var(--muted); background: var(--paper); font-size: .66rem; }
.dashboard-content-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }.dashboard-list-item { display: grid; grid-template-columns: auto 1fr auto; }.dashboard-list-item time { display: grid; width: 48px; height: 52px; place-items: center; padding: .3rem; border-radius: 12px; color: var(--sage-dark); background: var(--sage-light); line-height: 1; }.dashboard-list-item time strong { font-size: 1.15rem; }.dashboard-list-item time span { font-size: .6rem; text-transform: uppercase; }.dashboard-list-item > div:not(.message-avatar) { display: grid; min-width: 0; }.dashboard-list-item > div > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.message-avatar { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 14px; color: white; background: var(--sage); font-weight: 800; }
.status-pill { display: inline-flex; align-items: center; justify-content: center; padding: .32rem .55rem; border-radius: 999px; color: var(--muted); background: var(--paper); font-size: .68rem; font-weight: 790; white-space: nowrap; }.status-pill.active { color: var(--sage-dark); background: var(--sage-light); }.status-pill.inactive { color: #91464b; background: #f9e8e9; }

/* Admin */
.admin-hero { align-items: center; }.hero-status-card { display: flex; align-items: center; gap: .7rem; min-width: 185px; padding: .85rem 1rem; border: 1px solid rgba(255,255,255,.14); border-radius: 16px; background: rgba(255,255,255,.1); }.status-signal { width: 10px; height: 10px; border-radius: 50%; background: #89dfbd; box-shadow: 0 0 0 6px rgba(137,223,189,.12); }.hero-status-card div { display: grid; line-height: 1.3; }.hero-status-card small { color: rgba(255,255,255,.6); }.hero-status-card strong { color: white; font-size: .85rem; }
.admin-metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; margin-bottom: 1rem; }.admin-metric-grid article { display: flex; align-items: center; gap: 1rem; min-height: 142px; padding: 1.25rem; border: 1px solid var(--line); border-radius: 20px; background: white; box-shadow: var(--shadow-sm); }.admin-metric-grid article > div { display: grid; line-height: 1.35; }.admin-metric-grid small { color: var(--muted); font-size: .72rem; font-weight: 760; text-transform: uppercase; letter-spacing: .08em; }.admin-metric-grid strong { font-size: 2rem; letter-spacing: -.05em; }.admin-metric-grid article div span { color: var(--muted); font-size: .75rem; }.metric-icon { display: grid; width: 46px; height: 46px; flex: 0 0 auto; place-items: center; border-radius: 14px; font-size: 1.1rem; font-weight: 800; }.icon-users { color: #316f62; background: #e1f3ed; }.icon-patients { color: #9c6242; background: #faecdf; }.icon-courses { color: #536d9c; background: #e9eef8; }.icon-calendar { color: #98626c; background: #f7e9ec; }
.admin-work-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 1rem; }.admin-command-card { padding: clamp(1.4rem, 3vw, 2rem); border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow-sm); }.card-kicker { display: flex; align-items: center; gap: .5rem; color: var(--sage); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.card-kicker span { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 8px; background: var(--sage-light); }.admin-command-card h2 { margin: 1rem 0 .65rem; font-size: 1.75rem; }.admin-command-card > p { color: var(--muted); }.admin-command-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.35rem; }.admin-command-foot { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .75rem; }.admin-command-foot span { color: var(--mint); }.demo-command-card { background: linear-gradient(145deg, #fff, #f5faf7); }.demo-command-card.is-loaded { border-top: 4px solid var(--mint); }.demo-credentials { margin: 1rem 0; border: 1px solid var(--line); border-radius: 14px; background: white; }.demo-credentials summary { padding: .8rem 1rem; cursor: pointer; font-size: .8rem; font-weight: 750; }.demo-credentials div { display: grid; gap: .35rem; padding: 0 1rem 1rem; }.demo-credentials code { overflow-wrap: anywhere; font-size: .72rem; }

/* Generic views */
.editor-heading h1, .course-page-header h1, main > .container > h1 { font-size: clamp(2.1rem, 4vw, 3.25rem); }
.editor-card, .data-card, .course-card, .contact-card, .privacy-card, .profile-card { border-color: var(--line) !important; border-radius: var(--radius) !important; background: white; box-shadow: var(--shadow-sm); }
.course-card { transition: transform .2s ease, box-shadow .2s ease; }.course-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.filter-chip, .category-filter { border-radius: 999px !important; }
.table-responsive { overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: white; box-shadow: var(--shadow-sm); }.table { margin-bottom: 0; color: var(--ink); }.table thead th { padding: 1rem; border-bottom-color: var(--line); color: var(--muted); background: #f8faf8; font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }.table tbody td { padding: 1rem; border-color: var(--line); vertical-align: middle; }.table tbody tr:hover { background: #f8fbf9; }
.timeline-event, .thread-list a, .message-thread-item { border-color: var(--line) !important; background: white; }.thread-list a:hover { background: var(--surface-soft); }
.alert { border: 0; border-radius: 14px; box-shadow: var(--shadow-sm); }.alert-wrap { margin-top: 1rem; }
.site-footer { padding: 3.25rem 0; border-top: 1px solid var(--line); background: #eef2ed; }.footer-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) auto minmax(250px, .8fr); align-items: center; gap: 2rem; }.footer-brand { display: flex; gap: .8rem; align-items: flex-start; }.footer-brand strong { font-size: 1.05rem; }.footer-brand p { max-width: 420px; margin: .2rem 0 0; color: var(--muted); font-size: .83rem; }.site-footer nav { display: flex; gap: 1rem; }.site-footer nav a { font-size: .82rem; font-weight: 720; text-decoration: none; }.security-note { justify-self: end; margin: 0; color: var(--muted); font-size: .76rem; }.security-note span { color: var(--mint); }

@media (max-width: 1199.98px) {
  .site-header .nav-link { padding-inline: .58rem !important; font-size: .84rem; }
  .account-name { max-width: 110px; }
  .marketing-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(380px, .85fr); gap: 3rem; }
  .preview-float-card { right: 0; }
}

@media (max-width: 991.98px) {
  .site-header .navbar { min-height: 72px; }.brand-mark { width: 43px; height: 43px; }.navbar-collapse { margin-top: .75rem; padding: .75rem; border: 1px solid var(--line); border-radius: 18px; background: white; box-shadow: var(--shadow); }.navbar-nav { align-items: stretch !important; }.site-header .nav-link { padding: .85rem .9rem !important; }.site-header .nav-link.active::after { top: .75rem; right: auto; bottom: .75rem; left: .25rem; width: 3px; height: auto; }.account-menu { margin-top: .4rem; }.account-chip { padding: .55rem !important; }.account-name { max-width: none; }.nav-cta { width: 100%; margin-top: .35rem; text-align: center; }
  .marketing-hero-grid { grid-template-columns: 1fr; }.marketing-hero-copy { text-align: center; }.marketing-hero-copy .lead { margin-inline: auto; }.hero-actions, .hero-assurance { justify-content: center; }.portal-preview { min-height: 500px; }.portal-window { transform: none; }
  .auth-stage-grid { grid-template-columns: 1fr; }.auth-visual-panel { min-height: auto; padding: 2.5rem; }.auth-visual-copy { margin: 3rem 0 2rem; }.auth-form-panel { max-width: 620px; }.auth-promise-list { max-width: 650px; }
  .patient-main-grid, .dashboard-content-grid, .admin-work-grid { grid-template-columns: 1fr; }.metric-grid, .admin-metric-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1fr auto; }.security-note { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 767.98px) {
  body { font-size: .96rem; }.page-shell { padding: 1.35rem 0 3.5rem; }.container { padding-inline: 1rem; }
  .marketing-hero { padding: 3.5rem 0 4rem; }.marketing-hero h1 { font-size: clamp(2.85rem, 14vw, 4.2rem); }.marketing-hero .lead { font-size: 1.05rem; }.portal-preview { min-height: 445px; }.portal-window { padding: .8rem; border-radius: 24px; }.preview-float-card { right: .25rem; bottom: 0; }.trust-band-grid { align-items: flex-start; flex-direction: column; gap: .6rem; }.trust-band-grid > div { align-items: flex-start; flex-direction: column; gap: .15rem; }.journey-grid { grid-template-columns: 1fr; }.journey-card { min-height: 310px; }
  .auth-stage { padding: 1.25rem 0 2rem; }.auth-stage-grid { border-radius: 24px; }.auth-visual-panel { padding: 1.6rem; }.auth-visual-copy { margin: 2rem 0 1rem; }.auth-visual-copy h1 { font-size: 2.45rem; }.auth-visual-copy p { font-size: .95rem; }.auth-promise-list { grid-template-columns: 1fr; }.auth-promise-list > div { display: flex; align-items: center; gap: .7rem; }.auth-promise-list > div > span { margin: 0; }.auth-form-panel { padding: 2rem 1.25rem; }
  .dashboard-hero, .patient-dashboard-header, .staff-dashboard-header { align-items: flex-start; flex-direction: column; padding: 1.4rem; border-radius: 24px; }.patient-actions, .staff-actions { width: 100%; justify-content: flex-start; }.patient-actions .btn, .staff-actions .btn, .staff-actions form { flex: 1 1 auto; }.staff-actions form .btn { width: 100%; }.patient-summary-strip { grid-template-columns: 1fr; }.patient-summary-item { min-height: 88px; }.metric-grid, .admin-metric-grid { grid-template-columns: 1fr 1fr; }.metric-card { min-height: 150px; }.admin-metric-grid article { align-items: flex-start; flex-direction: column; min-height: 165px; }
  .dashboard-list-item { grid-template-columns: auto minmax(0, 1fr); }.dashboard-list-item > .status-pill { grid-column: 2; justify-self: start; }.patient-appointment { align-items: flex-start; }.patient-focus-card > header, .patient-section-card > header, .dashboard-panel > header { align-items: flex-start; }
  .table-responsive { overflow-x: auto; border-radius: 16px; }.table { min-width: 720px; }.editor-card { border-radius: 18px !important; }
  .site-footer { padding: 2.5rem 0; }.footer-grid { grid-template-columns: 1fr; }.site-footer nav { flex-wrap: wrap; }.security-note { grid-column: auto; }
}

@media (max-width: 479.98px) {
  .brand-copy small { display: none; }.brand-mark { width: 41px; height: 41px; }.marketing-hero h1 { font-size: 2.75rem; }.hero-actions .btn { width: 100%; }.hero-assurance { align-items: flex-start; flex-direction: column; }.portal-preview { min-height: 405px; }.preview-focus-card { grid-template-columns: auto 1fr; }.preview-status { display: none; }.preview-float-card { display: none; }.metric-grid, .admin-metric-grid { grid-template-columns: 1fr; }.metric-card { min-height: 135px; }.admin-metric-grid article { min-height: auto; flex-direction: row; }.patient-actions .btn, .staff-actions .btn, .staff-actions form { flex-basis: 100%; }.patient-appointment time { width: 62px; height: 72px; }.patient-appointment-copy .appointment-time { font-size: .78rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Dense data views and remaining entry flows */
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 1.5rem; }
.page-heading h1 { margin: .55rem 0 .4rem; font-size: clamp(2.35rem, 5vw, 4rem); }.page-heading p { max-width: 680px; margin: 0; color: var(--muted); }
.heading-actions { display: flex; align-items: center; gap: .65rem; }
.search-field { display: flex; align-items: center; gap: .45rem; min-width: 270px; padding-left: .8rem; border: 1px solid var(--line); border-radius: 14px; color: var(--muted); background: white; box-shadow: var(--shadow-sm); }.search-field input { min-height: 44px; padding-left: .2rem; border: 0; background: transparent; box-shadow: none; }.search-field input:focus { box-shadow: none; }

.calendar-overview { position: sticky; top: 94px; z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-bottom: 2rem; padding: .85rem 1rem; border: 1px solid rgba(23,63,57,.1); border-radius: 18px; background: rgba(255,255,255,.9); box-shadow: var(--shadow-sm); backdrop-filter: blur(16px); }
.calendar-overview-copy { display: flex; align-items: center; gap: .75rem; }.calendar-overview-copy > span { display: grid; min-width: 45px; height: 45px; place-items: center; border-radius: 13px; color: white; background: var(--sage-dark); font-size: 1.05rem; font-weight: 800; }.calendar-overview-copy div { display: grid; line-height: 1.3; }.calendar-overview-copy strong { font-size: .82rem; }.calendar-overview-copy small { color: var(--muted); font-size: .7rem; }
.calendar-month-nav { display: flex; gap: .35rem; overflow-x: auto; scrollbar-width: none; }.calendar-month-nav::-webkit-scrollbar { display: none; }.calendar-month-nav a { min-width: 50px; padding: .45rem .65rem; border-radius: 10px; color: var(--ink-soft); background: var(--paper); font-size: .75rem; font-weight: 780; text-align: center; text-decoration: none; text-transform: uppercase; }.calendar-month-nav a:hover { color: var(--sage-dark); background: var(--sage-light); }
.calendar-months { display: grid; gap: 2.5rem; }.calendar-month { scroll-margin-top: 175px; }.calendar-month-heading { display: flex; align-items: baseline; gap: .55rem; margin-bottom: 1rem; padding-bottom: .7rem; border-bottom: 1px solid var(--line); }.calendar-month-heading span { font-size: 1.45rem; font-weight: 780; text-transform: capitalize; }.calendar-month-heading strong { color: var(--muted); font-size: .9rem; }.calendar-month-heading small { margin-left: auto; color: var(--muted); font-size: .72rem; }
.timeline { display: grid; gap: 1.5rem; }.timeline-day { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 1.2rem; }.timeline-day > header { position: sticky; top: 180px; align-self: start; display: grid; gap: .1rem; padding-top: .75rem; }.timeline-day > header span { color: var(--sage); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.timeline-day > header strong { font-size: .85rem; }
.timeline-items { display: grid; gap: .6rem; }.timeline-item { position: relative; display: grid; grid-template-columns: 84px minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1rem; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: white; box-shadow: var(--shadow-sm); }.timeline-item::before { position: absolute; inset-block: 0; left: 0; width: 4px; background: var(--mint); content: ""; }.timeline-item.course::before { background: var(--coral); }.time-block { display: grid; padding: .55rem; border-radius: 12px; background: var(--surface-soft); text-align: center; line-height: 1.25; }.time-block strong { font-size: .95rem; }.time-block span { color: var(--muted); font-size: .65rem; }.item-main { min-width: 0; }.item-main h2 { margin: .18rem 0 .25rem; font-size: 1.02rem; }.item-main p { margin: .1rem 0; overflow: hidden; color: var(--muted); font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }.kind-label { color: var(--sage); font-size: .64rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }.timeline-item.course .kind-label { color: #a36340; }.item-actions { display: flex; gap: .4rem; }.item-actions form { margin: 0; }.item-actions .btn { min-height: 38px; padding: .5rem .7rem; font-size: .75rem; }

.user-directory { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow-sm); }.user-directory-head, .user-directory-row { display: grid; grid-template-columns: minmax(270px, 1.35fr) minmax(170px, .85fr) minmax(170px, .8fr) 85px 105px; align-items: center; gap: 1rem; }.user-directory-head { padding: .85rem 1.1rem; color: var(--muted); background: #f7faf8; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.user-directory-row { min-height: 84px; padding: .9rem 1.1rem; border-top: 1px solid var(--line); }.user-directory-row:hover { background: #f9fbfa; }.directory-person { display: flex; align-items: center; gap: .8rem; min-width: 0; }.directory-avatar { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border-radius: 14px; color: white; background: linear-gradient(145deg, var(--sage), var(--sage-dark)); font-size: .72rem; font-weight: 800; }.directory-person > div, .directory-activity { display: grid; min-width: 0; line-height: 1.35; }.directory-person strong { font-size: .9rem; }.directory-person span:not(.directory-avatar), .directory-activity span, .directory-activity small { overflow: hidden; color: var(--muted); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }.directory-roles { display: flex; flex-wrap: wrap; gap: .3rem; }.role-badge { padding: .28rem .45rem; border-radius: 8px; color: var(--sage-dark); background: var(--sage-light); font-size: .66rem; font-weight: 760; }.muted-value { color: var(--muted); font-size: .72rem; }.user-directory-row .btn { min-height: 38px; padding: .46rem .65rem; font-size: .72rem; }.directory-empty { display: grid; gap: .25rem; margin-top: 1rem; padding: 2rem; border: 1px dashed var(--line); border-radius: 18px; color: var(--muted); text-align: center; }.directory-empty strong { color: var(--ink); }

.registration-grid, .code-stage-grid { display: grid; grid-template-columns: .85fr 1.15fr; max-width: 1120px; padding: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.8); border-radius: 32px; background: white; box-shadow: var(--shadow-strong); }.registration-intro, .code-privacy-card { position: relative; padding: clamp(2rem, 5vw, 4rem); overflow: hidden; color: white; background: linear-gradient(145deg, var(--sage-dark), #2e7464); }.registration-intro::after, .code-privacy-card::after { position: absolute; right: -100px; bottom: -110px; width: 300px; height: 300px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: inset 0 0 0 48px rgba(255,255,255,.025); content: ""; }.registration-intro h1, .code-privacy-card h2 { position: relative; z-index: 1; margin: 1rem 0; color: white; font-size: clamp(2.4rem, 4vw, 3.8rem); }.registration-intro > p, .code-privacy-card > p { position: relative; z-index: 1; color: rgba(255,255,255,.7); }.registration-steps { position: relative; z-index: 1; display: grid; gap: .8rem; margin-top: 3rem; }.registration-steps > div { display: flex; align-items: center; gap: .8rem; padding: .85rem; border: 1px solid rgba(255,255,255,.1); border-radius: 15px; background: rgba(255,255,255,.06); }.registration-steps > div > span { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border-radius: 10px; color: var(--sage-dark); background: var(--mint); font-size: .72rem; font-weight: 850; }.registration-steps p { display: grid; margin: 0; line-height: 1.35; }.registration-steps strong { color: white; font-size: .78rem; }.registration-steps small { color: rgba(255,255,255,.58); font-size: .68rem; }.registration-form-panel { max-width: none; }.check-row { display: flex; align-items: flex-start; gap: .6rem; margin: 1rem 0 1.3rem; color: var(--muted); font-size: .82rem; }.check-row input { margin-top: .25rem; }.field-help { margin: -.4rem 0 .6rem; color: var(--muted); font-size: .73rem; }
.code-stage-grid { grid-template-columns: 1fr .85fr; }.code-entry-card { align-self: center; padding: clamp(2rem, 5vw, 4.5rem); }.code-entry-card h1 { margin: .9rem 0 .75rem; font-size: clamp(2.5rem, 5vw, 4rem); }.code-entry-card > p { max-width: 520px; color: var(--muted); }.privacy-seal { display: grid; width: 58px; height: 58px; margin-bottom: 1.6rem; place-items: center; border-radius: 18px 18px 18px 7px; color: white; background: linear-gradient(145deg, var(--sage), var(--sage-dark)); box-shadow: 0 12px 28px rgba(47,125,109,.22); }.privacy-seal span { font-size: 1.3rem; font-weight: 900; }.code-form { margin-top: 1.8rem; }.code-input input { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 1.05rem; letter-spacing: .04em; }.code-privacy-card { align-self: stretch; display: flex; flex-direction: column; justify-content: center; }.code-privacy-card dl { position: relative; z-index: 1; display: grid; gap: .7rem; margin: 2rem 0 0; }.code-privacy-card dl div { padding: .8rem 0; border-top: 1px solid rgba(255,255,255,.12); }.code-privacy-card dt { color: #bce7d8; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }.code-privacy-card dd { margin: .2rem 0 0; color: white; font-size: .82rem; }

.messages-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1rem; }.messages-header h1 { margin: .55rem 0 .35rem; font-size: clamp(2.35rem, 5vw, 4rem); }.messages-header p { margin: 0; color: var(--muted); }.messages-unread-banner { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; padding: .85rem 1rem; border-radius: 14px; color: var(--sage-dark); background: var(--sage-light); font-size: .78rem; }.conversation-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow-sm); }.conversation-list { display: grid; }.conversation-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .9rem; min-height: 92px; padding: 1rem; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }.conversation-row:last-child { border-bottom: 0; }.conversation-row:hover { background: #f8fbf9; }.conversation-row.is-unread { background: linear-gradient(90deg, #edf8f4, white 38%); }.conversation-avatar { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 15px; color: white; background: linear-gradient(145deg, var(--sage), var(--sage-dark)); font-weight: 800; }.conversation-copy { display: grid; min-width: 0; line-height: 1.35; }.conversation-title-row { display: flex; justify-content: space-between; gap: 1rem; }.conversation-title-row strong { overflow: hidden; font-size: .9rem; text-overflow: ellipsis; white-space: nowrap; }.conversation-title-row time { color: var(--muted); font-size: .68rem; white-space: nowrap; }.conversation-counterpart, .conversation-preview { overflow: hidden; color: var(--muted); font-size: .74rem; text-overflow: ellipsis; white-space: nowrap; }.conversation-preview b { color: var(--ink-soft); }.conversation-state { display: flex; align-items: center; gap: .4rem; }.unread-count { display: grid; min-width: 24px; height: 24px; place-items: center; border-radius: 50%; color: white; background: var(--sage); font-size: .65rem; font-weight: 800; }

.patient-search { margin: 0; }.patient-access-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow-sm); }.patient-access-row { display: grid; grid-template-columns: minmax(240px, 1.2fr) minmax(240px, 1fr) minmax(160px, .65fr) auto; align-items: center; gap: 1rem; min-height: 88px; padding: .95rem 1rem; border-bottom: 1px solid var(--line); }.patient-access-row:last-child { border-bottom: 0; }.patient-access-row:hover { background: #f9fbfa; }.care-person { display: flex; align-items: center; gap: .75rem; min-width: 0; }.care-person > div { display: grid; min-width: 0; }.care-person strong, .care-person span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.care-person span { color: var(--muted); font-size: .72rem; }.patient-access-sources { display: flex; flex-wrap: wrap; gap: .3rem; }.status-pill.coverage { color: #91603d; background: #faecdf; }.patient-access-meta { display: grid; color: var(--muted); font-size: .72rem; }.patient-access-row .btn { min-height: 38px; padding: .48rem .7rem; font-size: .72rem; }

@media (max-width: 991.98px) {
  .registration-grid, .code-stage-grid { grid-template-columns: 1fr; }.registration-intro { padding: 2.25rem; }.registration-steps { grid-template-columns: repeat(3, 1fr); margin-top: 2rem; }.registration-steps > div { align-items: flex-start; flex-direction: column; }.code-privacy-card { min-height: auto; }.user-directory-head { display: none; }.user-directory-row { grid-template-columns: minmax(220px, 1.3fr) minmax(160px, 1fr) auto; }.directory-activity { display: none; }.user-directory-row > .status-pill { justify-self: start; }.patient-access-row { grid-template-columns: minmax(240px, 1.1fr) 1fr auto; }.patient-access-meta { display: none; }
}

@media (max-width: 767.98px) {
  .page-heading, .messages-header { align-items: stretch; flex-direction: column; }.heading-actions { align-items: stretch; flex-direction: column; }.search-field { min-width: 0; width: 100%; }.heading-actions .btn { width: 100%; }.calendar-overview { top: 82px; align-items: stretch; flex-direction: column; gap: .7rem; }.calendar-month-nav { width: 100%; }.timeline-day { grid-template-columns: 1fr; gap: .55rem; }.timeline-day > header { position: static; display: flex; align-items: baseline; gap: .45rem; padding-top: 0; }.timeline-item { grid-template-columns: 70px minmax(0, 1fr); }.item-actions { grid-column: 2; }.calendar-month { scroll-margin-top: 210px; }.user-directory-row { grid-template-columns: 1fr auto; gap: .7rem; }.directory-roles { grid-column: 1 / -1; }.user-directory-row > .status-pill { grid-column: 1; }.user-directory-row > .btn { grid-column: 2; grid-row: 2; }.registration-intro { padding: 1.7rem; }.registration-intro h1 { font-size: 2.45rem; }.registration-steps { grid-template-columns: 1fr; }.registration-steps > div { align-items: center; flex-direction: row; }.code-entry-card { padding: 2.2rem 1.25rem; }.code-privacy-card { padding: 2rem 1.5rem; }.code-privacy-card h2 { font-size: 2.2rem; }.messages-unread-banner { align-items: flex-start; flex-direction: column; gap: .15rem; }.conversation-row { grid-template-columns: auto minmax(0, 1fr); }.conversation-state { grid-column: 2; }.conversation-title-row time { display: none; }.patient-access-row { grid-template-columns: minmax(0, 1fr) auto; }.patient-access-sources { grid-column: 1 / -1; }.patient-access-row > .btn { grid-column: 2; grid-row: 1; }.patient-list-heading .patient-search { width: 100%; }
}

@media (max-width: 479.98px) {
  .calendar-overview-copy small { display: none; }.timeline-item { grid-template-columns: 58px minmax(0, 1fr); padding: .75rem; }.item-actions { align-items: stretch; flex-direction: column; }.item-actions .btn { width: 100%; }.directory-avatar { width: 38px; height: 38px; }.directory-person span:not(.directory-avatar) { max-width: 190px; }.conversation-row { padding: .8rem; }.conversation-avatar { width: 40px; height: 40px; }.conversation-state .status-pill { display: none; }.patient-access-row { padding: .8rem; }.patient-access-row > .btn { font-size: 0; }.patient-access-row > .btn::after { font-size: .72rem; content: "Öffnen"; }
}
