.ag-patient-portal,.ag-patient-portal-state{--ag-primary:#3858e9;--ag-ink:#172033;--ag-muted:#64748b;--ag-line:#e2e8f0;--ag-bg:#f5f7fb;color:var(--ag-ink);font-family:inherit}.ag-patient-portal{display:grid;gap:22px;max-width:1120px;margin:30px auto}.ag-portal-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px;border-radius:18px;background:linear-gradient(135deg,#172033,#263d78);color:#fff;box-shadow:0 18px 45px rgba(23,32,51,.18)}.ag-portal-hero span,.ag-portal-panel-head span{font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.ag-portal-hero h1{margin:4px 0 6px;color:#fff;font-size:clamp(28px,4vw,42px)}.ag-portal-hero p{margin:0;color:#dbe5ff}.ag-portal-button{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border:0;border-radius:8px;background:var(--ag-primary);color:#fff!important;font-weight:700;text-decoration:none!important}.ag-portal-button:hover{background:#2947cf}.ag-portal-button.secondary{background:#ffffff1c;border:1px solid #ffffff50}.ag-portal-button.small{padding:7px 12px;font-size:13px}.ag-portal-nav{display:flex;gap:8px;padding:8px;overflow:auto;border:1px solid var(--ag-line);border-radius:12px;background:#fff}.ag-portal-nav a{padding:9px 13px;border-radius:7px;color:#334155;text-decoration:none;white-space:nowrap}.ag-portal-nav a:hover{background:#eef2ff;color:var(--ag-primary)}.ag-portal-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.ag-portal-kpis div{display:flex;padding:20px;border:1px solid var(--ag-line);border-radius:14px;background:#fff;flex-direction:column}.ag-portal-kpis strong{font-size:30px;line-height:1;color:var(--ag-primary)}.ag-portal-kpis span{margin-top:8px;color:var(--ag-muted);font-size:13px}.ag-portal-panel{padding:24px;border:1px solid var(--ag-line);border-radius:16px;background:#fff;box-shadow:0 8px 26px rgba(30,41,59,.05);scroll-margin-top:30px}.ag-portal-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.ag-portal-panel-head span{color:var(--ag-primary)}.ag-portal-panel h2{margin:3px 0 0;font-size:24px}.ag-portal-panel details{border-top:1px solid var(--ag-line)}.ag-portal-panel details:last-child{border-bottom:1px solid var(--ag-line)}.ag-portal-panel summary{display:flex;align-items:center;gap:9px;padding:15px 4px;cursor:pointer;font-weight:700;list-style:none}.ag-portal-panel summary::-webkit-details-marker{display:none}.ag-portal-panel summary:after{content:'+';margin-left:auto;color:var(--ag-muted);font-size:20px}.ag-portal-panel details[open] summary:after{content:'−'}.ag-portal-panel summary b{display:inline-grid;min-width:24px;height:24px;place-items:center;border-radius:12px;background:#eef2ff;color:var(--ag-primary);font-size:12px}.ag-portal-appointments{display:grid;gap:9px;padding:0 0 15px}.ag-portal-appointment{display:grid;grid-template-columns:155px 1fr auto;gap:18px;align-items:center;padding:15px;border:1px solid var(--ag-line);border-left:4px solid #64748b;border-radius:10px;background:#fff}.ag-portal-appointment.status-pending{border-left-color:#d97706}.ag-portal-appointment.status-confirmed{border-left-color:#16a34a}.ag-portal-appointment.status-completed{border-left-color:#3858e9}.ag-portal-appointment.status-cancelled,.ag-portal-appointment.status-no_show,.ag-portal-appointment.status-no-show{border-left-color:#dc2626}.ag-portal-date,.ag-portal-appointment-main{display:flex;flex-direction:column;gap:3px}.ag-portal-date span,.ag-portal-appointment-main p,.ag-portal-appointment-main small{margin:0;color:var(--ag-muted)}.ag-portal-appointment-main h3{margin:0;font-size:16px}.ag-portal-status{padding:5px 9px;border-radius:20px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:700}.ag-portal-files{display:grid;gap:9px}.ag-portal-file{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;padding:13px;border:1px solid var(--ag-line);border-radius:10px}.ag-portal-file>div{display:flex;min-width:0;flex-direction:column}.ag-portal-file small{color:var(--ag-muted)}.ag-file-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:9px;background:#eef2ff;color:var(--ag-primary);font-weight:800}.ag-portal-table-wrap{overflow:auto}.ag-portal-panel table{width:100%;border-collapse:collapse}.ag-portal-panel th,.ag-portal-panel td{padding:12px;border-bottom:1px solid var(--ag-line);text-align:left}.ag-portal-panel th{color:var(--ag-muted);font-size:12px;text-transform:uppercase}.ag-portal-profile{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin:0}.ag-portal-profile div{padding:14px 0;border-bottom:1px solid var(--ag-line)}.ag-portal-profile div:nth-child(odd){padding-right:20px}.ag-portal-profile dt{color:var(--ag-muted);font-size:12px}.ag-portal-profile dd{margin:4px 0 0;font-weight:600}.ag-portal-empty,.ag-portal-help{padding:15px;border-radius:9px;background:var(--ag-bg);color:var(--ag-muted)}.ag-patient-portal-state{max-width:680px;margin:30px auto;padding:30px;border:1px solid var(--ag-line);border-radius:16px;background:#fff;text-align:center}@media(max-width:720px){.ag-patient-portal{margin:16px auto}.ag-portal-hero{align-items:flex-start;padding:22px;flex-direction:column}.ag-portal-kpis{grid-template-columns:repeat(2,1fr)}.ag-portal-panel{padding:18px}.ag-portal-appointment{grid-template-columns:1fr;gap:7px}.ag-portal-status{justify-self:start}.ag-portal-profile{grid-template-columns:1fr}.ag-portal-profile div:nth-child(odd){padding-right:0}}@media(max-width:420px){.ag-portal-kpis{grid-template-columns:1fr 1fr}.ag-portal-kpis div{padding:15px}.ag-portal-file{grid-template-columns:auto 1fr}.ag-portal-file .ag-portal-button{grid-column:1/-1}}
