/* v1.7 customer portal: inherits all Theme Studio palette variables and layout styles. */
.portal-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 clamp(20px,5vw,78px) 28px}
.portal-stat{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:22px;display:grid;gap:7px}
.portal-stat>span,.portal-details small{font-size:.78rem;color:var(--muted)}
.portal-stat strong{font-size:clamp(1.3rem,2.1vw,1.9rem);line-height:1.3}
.portal-stat small{color:var(--muted);font-size:.77rem}
.portal-services{margin:0 clamp(20px,5vw,78px) 35px;display:grid;gap:22px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.portal-service{min-width:0;padding:28px!important}
.portal-service-top{display:flex;justify-content:space-between;gap:12px;align-items:start;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:22px}
.portal-service-top h2{font-size:clamp(1.28rem,2.15vw,1.8rem);letter-spacing:-.03em;margin:0 0 3px;overflow-wrap:anywhere}
.portal-service-top p{margin:0;color:var(--muted)}
.portal-service-top .eyebrow{margin:0 0 7px}
.portal-pill{font-size:.68rem;white-space:nowrap;padding:6px 11px;border:1px solid var(--line);border-radius:40px;color:var(--muted)}
.portal-pill.state-active{color:#bce4c5;border-color:#53775f}.portal-pill.state-paused{color:#eed8ae;border-color:#766343}
.portal-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px}
.portal-details>div{display:grid;gap:5px;min-width:0}.portal-details strong{overflow-wrap:anywhere;font-size:.95rem}
.portal-status.state-up{color:#a6dfb7}.portal-status.state-down{color:#f8b0ad}.portal-status.state-degraded{color:#f4d09c}.portal-status.state-unknown{color:var(--muted)}
.portal-meter{margin:13px 0 18px}.portal-meter-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:9px;font-size:.82rem}
.portal-meter-head span{color:var(--muted);text-align:right}
.portal-track{height:7px;border-radius:8px;background:var(--line);overflow:hidden}.portal-track span{height:100%;display:block;background:var(--accent);border-radius:8px;transition:width .2s}
.portal-data-note,.portal-mail,.portal-privacy-note{color:var(--muted);font-size:.79rem;line-height:1.55}
.portal-note{border-left:2px solid var(--accent);padding:8px 14px;color:var(--txt);background:var(--panel2);font-size:.84rem;margin-top:14px;overflow-wrap:anywhere}
.portal-privacy-note{margin:0 clamp(20px,5vw,78px) 62px}
.portal-empty{margin:0 clamp(20px,5vw,78px) 30px}
.portal-admin-layout{margin:0 clamp(20px,5vw,78px) 60px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:20px;align-items:start}
.portal-admin-layout>.feature{padding:26px;min-width:0}
.portal-admin-layout h2{font-size:1.25rem;margin-top:0}
.portal-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.portal-admin-service{border-bottom:1px solid var(--line);padding:16px 0;display:flex;align-items:start;gap:10px;justify-content:space-between}
.portal-admin-service:first-of-type{padding-top:4px}
.portal-admin-service>div:first-child{min-width:0;overflow-wrap:anywhere}.portal-admin-service small{display:block;color:var(--muted);font-size:.75rem;margin-top:4px}
.portal-admin-service .portal-ref{font-family:ui-monospace,monospace;font-size:.7rem}
.portal-admin-buttons,.portal-actions{display:flex;gap:8px;flex-wrap:wrap}.portal-admin-buttons a{padding:8px 12px;font-size:.7rem;white-space:nowrap}
@media(max-width:920px){.portal-admin-layout,.portal-services{grid-template-columns:1fr}.portal-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:610px){.portal-summary,.portal-details,.portal-form-row{grid-template-columns:1fr}.portal-service-top{flex-wrap:wrap}.portal-admin-service{flex-wrap:wrap}.portal-admin-buttons{width:100%}}
.portal-user-row{padding:18px 0;border-bottom:1px solid var(--line);display:grid;gap:12px}
.portal-user-row>div:first-child{display:grid;gap:3px}.portal-user-row small{font-size:.76rem;color:var(--muted)}
.portal-user-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.portal-user-form label{display:grid;gap:4px;flex:1 1 145px;color:var(--muted);font-size:.74rem}
.portal-user-form input,.portal-user-form select{min-width:0;width:100%;padding:10px 12px;background:var(--panel2);color:var(--txt);border:1px solid var(--line);border-radius:6px}
.portal-user-form button{white-space:nowrap}
.portal-admin-audit{margin:26px clamp(20px,5vw,78px) 60px;border-top:1px solid var(--line);padding-top:22px}
.portal-admin-audit h2{font-size:1.2rem}.portal-admin-audit>div{display:flex;gap:10px;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:.79rem}
.portal-admin-audit small{color:var(--muted);text-align:right}
