/* meditainment Kundenportal — Executive Product CI */
body.meditainment-portal {
  --black: #10282d;
  --graphite: #10282d;
  --white: #fff;
  --warm: #f3f2ee;
  --mid: #6c7775;
  --line: #d8ddd7;
  --teal: #17454a;
  --teal-soft: #27666a;
  --mint: #aabbb7;
  --rust: #a65f47;
  --apricot: #bfa28d;
  --max: 1440px;
  --pad: clamp(1.25rem, 5vw, 5rem);
  background: #e8ebe7;
  color: var(--graphite);
}

.meditainment-portal :focus-visible { outline-color: var(--rust); }
.meditainment-portal h1,
.meditainment-portal h2,
.meditainment-portal h3 { font-weight: 650; }
.meditainment-portal .eyebrow { color: var(--rust); font-size: .64rem; font-weight: 750; }

/* Shared executive navigation */
.meditainment-portal .site-header { border-color: var(--line); background: rgba(243, 242, 238, .96); backdrop-filter: blur(18px); }
.meditainment-portal .nav-shell { min-height: 86px; }
.meditainment-portal .brand { width: auto; align-items: center; gap: .75rem; }
.meditainment-portal .brand .brand-signet { width: 33px; height: 33px; object-fit: contain; }
.meditainment-portal .brand-name { display: grid; line-height: 1; }
.meditainment-portal .brand-name strong { font-size: 1.2rem; letter-spacing: -.04em; }
.meditainment-portal .brand-name small { margin-top: .38rem; color: var(--mid); font-size: .52rem; font-weight: 650; letter-spacing: .15em; text-transform: uppercase; }
.meditainment-portal .nav-links { gap: clamp(.9rem, 1.65vw, 1.65rem); }
.meditainment-portal .nav-links a { padding: 2rem 0; color: var(--graphite); font-size: .68rem; font-weight: 650; letter-spacing: .045em; }
.meditainment-portal .nav-links a::after { bottom: 1.5rem; height: 2px; background: var(--rust); }
.meditainment-portal .nav-links a.nav-portal { border-color: var(--graphite); background: var(--graphite); color: white; padding: .72rem .9rem !important; }
.meditainment-portal .nav-links a.nav-portal:hover,
.meditainment-portal .nav-links a.nav-portal:focus-visible { border-color: var(--teal); background: var(--teal); color: white; }
.meditainment-portal .menu-toggle span { background: var(--graphite); }

/* Portal foundation */
.meditainment-portal .portal-shell { min-height: calc(100vh - 86px); padding: clamp(3rem, 6vw, 6rem) 0; background: #e8ebe7; color: var(--graphite); }
.meditainment-portal .portal-shell h1,
.meditainment-portal .portal-shell h2,
.meditainment-portal .portal-shell h3 { color: var(--graphite); }
.meditainment-portal .portal-shell p { color: var(--mid); }
.meditainment-portal .button { min-height: 44px; border-radius: 2px; border-color: var(--graphite); background: var(--graphite); color: white; font-size: .64rem; letter-spacing: .08em; }
.meditainment-portal .button:hover { background: var(--teal); transform: translateY(-1px); }
.meditainment-portal .button.light { border-color: var(--graphite); background: transparent; color: var(--graphite); }
.meditainment-portal .button.light:hover { background: var(--graphite); color: white; }
.meditainment-portal .button.white { border-color: rgba(255,255,255,.55); background: transparent; color: white; }
.meditainment-portal .button.white:hover { border-color: white; background: white; color: var(--graphite); }

/* Loading, login and security steps */
.meditainment-portal #portal-loading { max-width: 760px; padding: clamp(3rem,7vw,7rem); border-left: 8px solid var(--rust); background: var(--warm); }
.meditainment-portal #portal-loading h1 { font-size: clamp(3rem,7vw,6rem); }
.meditainment-portal #portal-login { position: relative; grid-template-columns: minmax(0,1.08fr) minmax(380px,.72fr); gap: 0; align-items: stretch; }
.meditainment-portal #portal-login > div:first-child { position: relative; overflow: hidden; padding: clamp(2.5rem,6vw,6rem); background: var(--graphite); }
.meditainment-portal #portal-login > div:first-child::after { content:""; position:absolute; right:-8rem; bottom:-8rem; width:24rem; height:24rem; border:4rem solid rgba(170,187,183,.1); border-radius:50%; pointer-events:none; }
.meditainment-portal #portal-login > div:first-child > * { position: relative; z-index: 1; }
.meditainment-portal #portal-login > div:first-child h1 { max-width: 780px; color: white; font-size: clamp(3.5rem,6vw,6.6rem); font-weight:650; line-height:.92; letter-spacing:-.065em; }
.meditainment-portal #portal-login > div:first-child .lead { color:#bdcdca; }
.meditainment-portal #portal-login > div:first-child .eyebrow { color:#d28a70; }
.meditainment-portal .status-list { max-width: 620px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin-top: 3rem; background:rgba(255,255,255,.14); }
.meditainment-portal .status { min-height: 78px; padding: 1rem; background: rgba(255,255,255,.055); color:#dbe5e2; font-size:.78rem; line-height:1.45; }
.meditainment-portal .status::before { background: var(--mint); }
.meditainment-portal .login-card { max-width:none; margin:0; padding:clamp(2.5rem,5vw,5rem); border-top:5px solid var(--rust); background:white; box-shadow:0 30px 80px rgba(16,40,45,.14); }
.meditainment-portal .login-card h2 { font-size: clamp(2.3rem,4vw,4.2rem); }
.meditainment-portal .login-card .contact-form { padding:0; border:0; background:transparent; box-shadow:none; }
.meditainment-portal .portal-mfa .login-card,
.meditainment-portal .portal-password .login-card { width:min(100%,620px); }
.meditainment-portal .mfa-qr { border-color:var(--warm); }
.meditainment-portal .security-note { padding:1rem; background:var(--warm); }

/* Authenticated workspace */
.meditainment-portal .portal-app { width:min(1600px,100%); }
.meditainment-portal .portal-topbar { position:relative; min-height:180px; margin-bottom:14px; padding:clamp(1.7rem,4vw,3.2rem); overflow:hidden; background:var(--graphite); color:white; }
.meditainment-portal .portal-topbar::after { content:""; position:absolute; right:-5rem; top:50%; width:18rem; height:18rem; transform:translateY(-50%); border:3rem solid rgba(170,187,183,.1); border-radius:50%; }
.meditainment-portal .portal-topbar > * { position:relative; z-index:1; }
.meditainment-portal .portal-topbar h2 { color:white; font-size:clamp(2.4rem,5vw,4.8rem); }
.meditainment-portal .portal-topbar p { color:var(--mint); }
.meditainment-portal .portal-topbar .eyebrow { color:#d28a70; }
.meditainment-portal .portal-grid { gap:14px; margin-bottom:14px; }
.meditainment-portal .portal-panel { border:1px solid var(--line); border-top:3px solid var(--mint); background:rgba(255,255,255,.94); box-shadow:0 14px 38px rgba(16,40,45,.045); }
.meditainment-portal .portal-grid > .portal-panel:nth-child(2) { border-top-color:var(--teal-soft); }
.meditainment-portal .portal-panel h3 { font-weight:650; }
.meditainment-portal .portal-panel .contact-form { padding:0; border:0; background:transparent; box-shadow:none; }
.meditainment-portal .portal-workspace-filter { border-top-color:var(--teal-soft); border-left:0; }
.meditainment-portal .portal-workspace-filter:first-child { border-top-color:var(--rust); }
.meditainment-portal .portal-contact-management { display:grid; grid-template-columns:minmax(220px,.7fr) minmax(360px,1.3fr); gap:clamp(1.5rem,4vw,4rem); align-items:end; margin-bottom:14px; border-top-color:var(--rust); }
.meditainment-portal .portal-contact-management .contact-form { margin:0; }
.meditainment-portal .portal-contact-list { display:grid; gap:.65rem; min-width:260px; }
.meditainment-portal .portal-contact-item { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem .8rem; background:var(--warm); border-left:3px solid var(--mint); }
.meditainment-portal .portal-contact-email { display:block; color:var(--graphite); font-size:.78rem; font-weight:700; overflow-wrap:anywhere; }
.meditainment-portal .portal-contact-status { display:block; margin-top:.2rem; color:var(--mid); font-size:.65rem; }
.meditainment-portal .portal-contact-status.accepted { color:#285b49; }
.meditainment-portal .portal-contact-status.pending { color:#7c482d; }
.meditainment-portal .portal-contact-remove { padding:.35rem 0; border:0; background:transparent; color:var(--rust); font:700 .6rem/1 Arial,sans-serif; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; }
.meditainment-portal .portal-contact-remove:hover { color:var(--graphite); }
.meditainment-portal .status-pill.accepted { border-color:#88ad9e; background:#e2f0ea; color:#285b49; }
.meditainment-portal .status-pill.pending { border-color:#d2a181; background:#f9ede6; color:#7c482d; }
.meditainment-portal .portal-stats { gap:14px; margin-bottom:14px; background:transparent; }
.meditainment-portal .portal-stats article { min-height:150px; padding:1.5rem; border:1px solid var(--line); border-top:3px solid var(--mint); background:white; display:flex; flex-direction:column; justify-content:space-between; }
.meditainment-portal .portal-stats article:nth-child(2) { border-top-color:var(--teal-soft); }
.meditainment-portal .portal-stats article:nth-child(3) { border-top-color:var(--rust); }
.meditainment-portal .portal-stats article:nth-child(4) { border-top-color:var(--apricot); }
.meditainment-portal .portal-stats strong { color:var(--graphite); font-size:3rem; font-weight:650; letter-spacing:-.05em; }
.meditainment-portal .portal-table-panel { margin-top:14px; }
.meditainment-portal .portal-activity-panel { border-top-color:var(--rust); }
.meditainment-portal .portal-completed-panel { border-top-color:var(--teal-soft); }
.meditainment-portal .portal-new-row { background:#eef2ef; box-shadow:inset 3px 0 var(--teal-soft); }
.meditainment-portal .portal-table th { border-color:var(--line); color:var(--mid); font-weight:750; }
.meditainment-portal .portal-table td { border-color:#e5e8e3; }
.meditainment-portal .portal-table tbody tr:hover { background:rgba(170,187,183,.12); }
.meditainment-portal .organization-link { color:var(--teal-soft); }
.meditainment-portal .organization-link:hover { color:var(--rust); }
.meditainment-portal .status-pill { border:1px solid var(--line); background:var(--warm); color:var(--teal); font-weight:700; }
.meditainment-portal .portal-compact-select { border-radius:2px; }
.meditainment-portal .portal-compact-select.status-not_started { border-color:#cad2cd; background:#eff2ef; color:#51605d; }
.meditainment-portal .portal-compact-select.status-in_progress { border-color:#d6bd72; background:#fbf4dd; color:#725d16; }
.meditainment-portal .portal-compact-select.status-completed { border-color:#88ad9e; background:#e2f0ea; color:#285b49; }
.meditainment-portal .portal-compact-select.billing-open { border-color:#d2a181; background:#f9ede6; color:#7c482d; }
.meditainment-portal .portal-compact-select.billing-billed { border-color:#88ad9e; background:#e2f0ea; color:#285b49; }
.meditainment-portal .field input,
.meditainment-portal .field textarea,
.meditainment-portal .field select { border-color:var(--line); background:var(--warm); }
.meditainment-portal .field input:focus,
.meditainment-portal .field textarea:focus,
.meditainment-portal .field select:focus { border-color:var(--teal-soft); outline:2px solid rgba(39,102,106,.12); }
.meditainment-portal .field-hint { color:var(--mid); }

/* Footer */
.meditainment-portal .site-footer { border:0; background:var(--graphite); }
.meditainment-portal .footer-grid p { color:var(--mint); }
.meditainment-portal .footer-column strong { color:#789491; }
.meditainment-portal .footer-column a { color:#dbe5e2; }

@media (max-width:1080px) {
  .meditainment-portal .nav-links { border-color:var(--line); background:var(--warm); }
  .meditainment-portal .nav-links a { color:var(--graphite); }
  .meditainment-portal .nav-links a.nav-portal { color:white; }
}

@media (max-width:980px) {
  .meditainment-portal #portal-login { grid-template-columns:1fr; }
  .meditainment-portal #portal-login > div:first-child h1 { font-size:clamp(3rem,10vw,5rem); }
  .meditainment-portal .portal-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:760px) {
  .meditainment-portal .nav-shell { min-height:72px; }
  .meditainment-portal .brand-name small { display:none; }
  .meditainment-portal .portal-shell { padding:1.2rem 0 4rem; }
  .meditainment-portal #portal-login > div:first-child,
  .meditainment-portal .login-card { padding:2rem 1.3rem; }
  .meditainment-portal .status-list { grid-template-columns:1fr; }
  .meditainment-portal .portal-topbar { min-height:220px; }
  .meditainment-portal .portal-panel { padding:1.3rem; }
  .meditainment-portal .portal-contact-management { grid-template-columns:1fr; }
}

@media (max-width:480px) {
  .meditainment-portal #portal-login > div:first-child h1 { hyphens:manual; overflow-wrap:normal; font-size:clamp(2.75rem,12vw,3.4rem); }
  .meditainment-portal .portal-stats { grid-template-columns:1fr; }
  .meditainment-portal .portal-stats article { min-height:115px; }
}
