.portal-page{min-height:100vh;display:flex;flex-direction:column}
.portal-page .brand-tagline{display:block;font-size:.7em;font-weight:normal}
.portal-main{flex:1;padding-block:2.5rem 4rem}
.portal-login{max-width:500px;margin:3rem auto;padding:2rem}
.portal-login h1{font-size:2.5rem;margin:.5rem 0}
.portal-login form{border:0;padding:0;background:transparent}
.portal-login label{margin-block:1.25rem}
.portal-logout{padding:0;border:0;background:transparent}
.portal-intro{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.portal-intro h1{font-size:clamp(2rem,4vw,3rem);margin:.3rem 0}
.portal-tabs{display:flex;flex-wrap:wrap;gap:1.5rem;margin:1.5rem 0 2rem;border-bottom:1px solid var(--line);padding-bottom:1rem}
.portal-services{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.portal-main>.card{margin-block:1.5rem;padding:clamp(1rem,3vw,2rem)}
.portal-main .card{align-items:stretch}
.portal-main .card h2{margin-top:0}
.portal-main .card form{width:100%}
.portal-main dt{font-weight:700;margin-top:.75rem}
.portal-main dd{margin:.2rem 0 1rem;color:var(--muted)}
.portal-notice{padding:1rem;background:#fff0cb;border:1px solid var(--gold);border-radius:8px}
.portal-main .hosting-records{overflow:auto;margin-block:1rem}
.portal-main input,.portal-main textarea,.portal-main select{max-width:100%}
.portal-site-good{color:#17613e}
.portal-site-check{color:#885a16}
.portal-aws-embedded{margin-block:1.5rem;padding-block:1.5rem;border-block:1px solid var(--line)}
.portal-aws-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.portal-aws-header h2{margin-bottom:.25rem}.portal-aws-header p{color:var(--muted);margin:0}.portal-aws-pending{padding:.4rem .75rem;border:1px solid var(--line);border-radius:2rem;font-size:.85rem}.portal-aws-gauges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.5rem 0}.portal-aws-gauge{padding:1rem;border:1px solid var(--line);border-radius:12px;min-width:0}.portal-aws-gauge h3{font-size:1.1rem;margin:0}.portal-aws-gauge p,.portal-aws-gauge small{color:var(--muted)}.portal-aws-payment{margin-top:1rem}.portal-aws-payment .hosting-tool-body form{display:block}.portal-aws-payment label{margin-block:1rem!important}@media(max-width:760px){.portal-aws-gauges{grid-template-columns:1fr}}
.portal-billing-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem;margin-block:1.5rem;align-items:start}.portal-billing-grid.no-contract{grid-template-columns:1fr}.portal-billing-grid>.card{padding:clamp(1rem,3vw,2rem);min-width:0}.portal-billing-grid .button{display:inline-flex;justify-content:center;align-items:center;max-width:100%}@media(max-width:760px){.portal-billing-grid{grid-template-columns:1fr}}
.hosting-bandwidth-gauge{max-width:280px;margin:1rem 0;text-align:center}.hosting-bandwidth-gauge svg{display:block;width:100%;height:auto}.hosting-bandwidth-gauge small{display:block;margin-top:.5rem;color:var(--muted)}
#hosting-usage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.hosting-usage-card{padding:1.25rem;border:1px solid var(--line);border-radius:12px}.hosting-usage-card dt{margin-top:0}.hosting-usage-card dd{margin-bottom:0}.hosting-usage-card .hosting-bandwidth-gauge{margin-inline:auto}@media(max-width:600px){#hosting-usage{grid-template-columns:1fr}}
.portal-main .customer-hosting{display:block}.hosting-section-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.hosting-section-header h2{margin-bottom:.3rem}.hosting-section-header p{margin:0;color:var(--muted)}.hosting-actions{display:flex;gap:.65rem;flex-wrap:wrap}.customer-hosting .hosting-actions .button{width:auto;margin:0;white-space:nowrap}.hosting-actions .secondary{background:transparent;border:1px solid var(--line)}#hosting-overview-status:empty,#hosting-cpanel-status:empty{display:none}#hosting-usage{margin:1.5rem 0}.hosting-usage-card:last-child:nth-child(odd){grid-column:1/-1}.hosting-usage-card:last-child:nth-child(odd) dt,.hosting-usage-card:last-child:nth-child(odd) dd{display:inline;margin-right:1rem}#hosting-tools:not([hidden]){display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}.hosting-tool{border:1px solid var(--line);border-radius:12px;min-width:0}.hosting-tool summary{padding:1.1rem 1.25rem;cursor:pointer;font-weight:700}.hosting-tool summary span{display:block;font-weight:400;font-size:.85rem;color:var(--muted);margin-top:.25rem}.hosting-tool-body{padding:0 1.25rem 1.25rem}.hosting-tool[open]{grid-column:1/-1}.hosting-tool-body form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:1rem;border-radius:10px}.hosting-tool-body form label{margin:0}.hosting-tool-body form .button{width:auto;justify-self:start;align-self:end}.hosting-tool-body form textarea{width:100%}.hosting-tool-body #hosting-dns-form h4,.hosting-tool-body #hosting-dns-hint{grid-column:1/-1}@media(max-width:600px){.hosting-actions{width:100%}.customer-hosting .hosting-actions .button{flex:1;text-align:center}#hosting-tools:not([hidden]),.hosting-tool-body form{grid-template-columns:1fr}.hosting-section-header{gap:1rem}}
@media(max-width:760px){.portal-services{grid-template-columns:1fr}.portal-intro{align-items:flex-start;flex-direction:column}.portal-tabs{gap:1rem}}
