/* Shared base layout for every Praxis patient portal.
 *
 * Loads AFTER tokens.css. Consumes tokens — never literal values.
 * Project-specific stylesheets load AFTER this file via `head_extra`.
 *
 * Logical CSS properties throughout — layout flips for free in RTL when
 * the body picks up `dir="rtl"`.
 */

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
    font-family: var(--font-sans);
    background: var(--bg);
    color: var(--ink);
    line-height: var(--lh-base);
    font-size: var(--fs-md);
}

/* Cairo only loads for ar (see portal_base.html head). */
body.rtl {
    font-family: var(--font-arabic);
}

a { color: var(--accent); }

.wrap {
    max-width: var(--patient-wrap-max);
    margin: 0 auto;
    padding: var(--space-6) var(--space-4) var(--space-12);
    position: relative;
}

.portal-header {
    padding: var(--space-5) 0 var(--space-3);
    text-align: center;
}

.portal-logo {
    display: block;
    height: var(--patient-logo-h);
    width: auto;
    max-width: 100%;
    margin: 0 auto var(--space-3);
}

.practice-addr {
    color: var(--muted);
    font-size: var(--fs-sm);
    margin-top: 2px;
}

.practice-contact {
    color: var(--muted);
    font-size: var(--fs-sm);
    margin-top: var(--space-1);
}

.practice-contact a {
    color: var(--accent);
    text-decoration: none;
}

.practice-contact a:hover { text-decoration: underline; }

.portal-footer {
    margin-top: var(--space-8);
    padding-top: var(--space-4);
    border-top: 1px solid var(--border);
    font-size: var(--fs-xs);
    color: var(--muted);
    text-align: center;
}
