:root{--navy:#123451;--teal:#147d83;--gold:#c69a43;--ink:#203344;--muted:#637789;--line:#e1e9ef}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--ink);background:#f5f8fa;line-height:1.6}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px max(5vw,20px);background:#fff;border-bottom:1px solid var(--line)}
.brand{font-weight:850;font-size:22px;letter-spacing:.16em;color:var(--navy);text-decoration:none}.brand span{color:var(--gold)}
nav{display:flex;gap:18px;align-items:center}nav a{color:var(--navy);font-weight:650;text-decoration:none}
.who{color:var(--muted);font-size:14px}
.wrap{max-width:960px;margin:0 auto;padding:32px 20px}
.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px;box-shadow:0 6px 20px #183c5210}
h1{color:var(--navy);margin-top:0}
.btn{background:var(--teal);color:#fff;border:0;border-radius:9px;padding:11px 18px;font-weight:700;cursor:pointer}
.btn:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.alert{padding:12px 16px;border-radius:9px;margin-bottom:16px;border:1px solid}
.alert-success{background:#e8f6ee;border-color:#9fd5b5;color:#14532d}.alert-error{background:#fdecec;border-color:#f1aaaa;color:#7f1d1d}.alert-info{background:#e8f2f7;border-color:#a9c9d9;color:#123451}
.checks{padding-left:18px}.ok{color:#14532d}.bad{color:#7f1d1d}
.foot{text-align:center;padding:22px;color:var(--muted);font-size:13px;border-top:1px solid var(--line);background:#fff}

/* ESERNY registration form improvements */
.panel form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.panel form > label,
.panel form fieldset label {
    display: block;
    margin: 10px 0 5px;
    font-weight: 600;
    color: var(--ink);
}

.panel input:not([type="checkbox"]):not([type="radio"]),
.panel select,
.panel textarea {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 11px 12px;
    margin: 5px 0 12px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font: inherit;
}

.panel input:focus,
.panel select:focus,
.panel textarea:focus {
    outline: 2px solid var(--teal);
    outline-offset: 2px;
}

.panel fieldset {
    min-width: 0;
    margin: 8px 0;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 10px;
}

.panel fieldset legend {
    padding: 0 8px;
    font-weight: 700;
    color: var(--navy);
}

.panel form button[type="submit"] {
    align-self: flex-start;
    margin-top: 8px;
}

.panel form a {
    color: var(--navy);
}

@media (min-width: 700px) {
    .panel form {
        max-width: 760px;
    }
}

@media (max-width: 600px) {
    .wrap {
        padding: 18px 12px;
    }

    .panel {
        padding: 18px;
    }

    .panel fieldset {
        padding: 12px;
    }
}

/* Stage 2: classes used by login, register, header and dashboards */
[hidden]{display:none!important}
.narrow{max-width:560px;margin:0 auto}
.muted{color:var(--muted)}
.inline{display:inline;margin:0}
.panel form.inline{display:inline}
.linkbtn{background:none;border:0;color:var(--navy);font:inherit;font-weight:650;cursor:pointer;padding:0}
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
.badge{padding:2px 10px;border-radius:99px;font-size:13px;font-weight:700}
.badge-pending{background:#fff4d6;color:#7a5a00}.badge-approved{background:#e8f6ee;color:#14532d}.badge-rejected{background:#fdecec;color:#7f1d1d}


/* Sprint 1: module hub and explicit skeleton pages */
.topbar{flex-wrap:wrap}.topbar nav{flex-wrap:wrap;justify-content:flex-end}
.module-hero{padding:28px 0 24px}.eyebrow{font-size:12px;letter-spacing:.16em;font-weight:800;color:var(--teal);margin:0 0 8px}.module-hero h1{font-size:clamp(28px,4vw,40px);margin-bottom:8px}.module-hero>p:not(.eyebrow){max-width:780px}
.module-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:22px;padding:14px 18px;background:#fff;border:1px solid var(--line);border-radius:12px}.module-summary strong{font-size:26px;color:var(--teal)}.module-summary span{color:var(--muted);font-size:14px}.role-chip{margin-left:auto;padding:5px 10px;border-radius:999px;background:#eaf4f5;color:var(--navy)!important;font-weight:700}
.module-section{margin:24px 0 32px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-heading h2{font-size:20px;margin:0;color:var(--navy)}.section-heading>span{font-size:13px;color:var(--muted)}
.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.module-card{display:flex;flex-direction:column;min-width:0;min-height:218px;padding:17px;background:#fff;border:1px solid var(--line);border-radius:13px;text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s,box-shadow .15s}.module-card:hover{border-color:#8abfc0;transform:translateY(-2px);box-shadow:0 8px 22px #183c5210}.module-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.module-mark{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:#eaf4f5;color:var(--teal);font-weight:850}.status-chip{display:inline-flex;align-items:center;max-width:70%;padding:4px 8px;border-radius:7px;background:#f1f4f6;color:#506474;font-size:11px;font-weight:750;line-height:1.35}.module-card h3{font-size:16px;line-height:1.35;margin:15px 0 7px;color:var(--navy)}.module-card p{font-size:13px;line-height:1.5;color:var(--muted);margin:0 0 15px}.module-open{margin-top:auto;color:var(--teal);font-size:13px;font-weight:800}.module-detail{max-width:800px;margin:10px auto}.back-link,.secondary-link{color:var(--teal);font-weight:700;text-decoration:none}.lead{font-size:17px;color:var(--muted)}.status-chip-large{max-width:none;font-size:12px}.notice-panel{margin:24px 0;padding:20px;border-radius:12px;border:1px solid var(--line);background:#f7fafb}.notice-panel h2{margin-top:0;font-size:18px;color:var(--navy)}.notice-panel p{margin-bottom:10px}.module-actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.module-actions .btn{text-decoration:none;display:inline-block}
@media(max-width:900px){.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.topbar{align-items:flex-start;padding:14px 16px}.topbar nav{gap:12px;justify-content:flex-start;width:100%}.who{width:100%}.module-grid{grid-template-columns:1fr}.module-card{min-height:0}.role-chip{margin-left:0}}

/* Sprint 2 — professional network workspace */
.network-page{max-width:100%;}.eyebrow{font-size:.76rem;letter-spacing:.13em;font-weight:800;color:var(--teal);margin-bottom:5px}.lead{font-size:1.06rem;color:var(--muted);max-width:780px}.back-link,.secondary-link{color:var(--navy);font-weight:700;text-decoration:none}.back-link{display:inline-block;margin-bottom:14px}.network-summary{display:flex;gap:14px;flex-wrap:wrap;margin:20px 0}.network-summary>div{display:flex;flex-direction:column;gap:4px;min-width:180px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#f8fbfc}.network-summary strong{font-size:1.05rem;color:var(--navy)}.detail-grid,.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-item{padding:12px 14px;border:1px solid var(--line);border-radius:10px;min-width:0}.detail-item span{display:block;color:var(--muted);font-size:.86rem}.detail-item strong{display:block;overflow-wrap:anywhere}.network-form{max-width:none!important;margin:16px 0 26px;padding:18px;background:#f8fbfc;border:1px solid var(--line);border-radius:12px}.network-form label{min-width:0}.network-form input[type=checkbox]{width:18px;height:18px;accent-color:var(--teal)}.toggle-row{display:flex!important;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}.toggle-row:last-of-type{border-bottom:0}.clinic-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}.clinic-card{border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0;background:#fff}.clinic-card h3{margin:0 0 5px;color:var(--navy)}.clinic-card p{margin:5px 0;overflow-wrap:anywhere}.clinic-card small{color:var(--muted)}.physician-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}.clinic-locations{grid-column:1/-1;border-top:1px solid var(--line);margin-top:8px;padding-top:6px}.availability{font-size:.78rem;align-self:start;padding:4px 8px;border-radius:99px;background:#eef2f6;color:#536575}.availability.available{background:#e8f6ee;color:#14532d}.result-count{display:inline-block;font-size:.8rem;background:#edf5f6;color:var(--teal);border-radius:99px;padding:2px 9px}.top-gap{margin-top:22px}.notice-panel{margin:18px 0;padding:18px;border:1px solid #d9e7ec;background:#f7fbfc;border-radius:12px}.notice-panel h2{margin-top:0}.module-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.module-actions .btn{display:inline-block;text-decoration:none}.network-page h2{margin-top:24px;color:var(--navy)}
@media(max-width:640px){.detail-grid,.form-grid,.clinic-list{grid-template-columns:1fr}.physician-card{grid-template-columns:1fr}.clinic-locations{grid-column:1}.network-summary>div{flex:1;min-width:130px}.module-actions{align-items:flex-start;flex-direction:column}}

/* Sprint 3: patient and clinical workspace */
.network-page select, .network-page input[type="date"], .network-page input[type="datetime-local"] { width:100%; box-sizing:border-box; }
.network-page .clinic-card small { display:block; margin-top:.45rem; }
.network-page .clinic-card h3 { margin-top:0; }
.network-page .clinic-list { margin-top:1rem; }
.network-page .notice-panel ul { padding-left:1.25rem; }
