:root {
  --portal-bg: #f2f2f7;
  --portal-surface: #fff;
  --portal-ink: #111827;
  --portal-muted: #667085;
  --portal-line: rgba(60, 60, 67, .16);
  --portal-fill: rgba(120, 120, 128, .12);
  --portal-blue: #0079e1;
  --portal-green: #177a32;
  --portal-radius: 1rem;
}

* { box-sizing: border-box; }
html { min-height: 100%; font-size: 16px; }
body.portal-body { min-width: 320px; min-height: 100dvh; margin: 0; background: var(--portal-bg); color: var(--portal-ink); font-family: "Admin Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.5; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
textarea { font: inherit; }
.portal-page { min-height: 100dvh; }
.portal-app-header { position: fixed; inset: 0 0 auto; z-index: 20; display: flex; align-items: center; justify-content: space-between; min-height: calc(3.5rem + env(safe-area-inset-top, 0px)); padding: env(safe-area-inset-top, 0px) 1.25rem 0; border-bottom: 1px solid var(--portal-line); background: rgba(242, 242, 247, .86); backdrop-filter: saturate(180%) blur(18px); -webkit-backdrop-filter: saturate(180%) blur(18px); }
.portal-app-header__brand, .portal-login__brand { display: grid; gap: .05rem; color: var(--portal-ink); font-size: .875rem; font-weight: 750; letter-spacing: -.03em; line-height: 1.1; }
.portal-app-header__brand span span, .portal-login__brand span span { color: var(--portal-blue); }
.portal-app-header__brand small, .portal-login__brand small { color: var(--portal-muted); font-size: .6875rem; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; }
.portal-shell { padding: calc(5.25rem + env(safe-area-inset-top, 0px)) 0 calc(6.5rem + env(safe-area-inset-bottom, 0px)); }
.portal-container { width: min(100% - 2.5rem, 72rem); margin: 0 auto; }
.portal-hero { display: grid; gap: .45rem; margin-bottom: 1rem; padding: 1.25rem; border-radius: var(--portal-radius); background: var(--portal-ink); color: #fff; box-shadow: 0 .75rem 2rem rgba(17, 24, 39, .14); }
.portal-eyebrow, .portal-card__eyebrow { margin: 0; color: var(--portal-muted); font-size: .6875rem; font-weight: 700; letter-spacing: .07em; line-height: 1.2; text-transform: uppercase; }
.portal-hero .portal-eyebrow { color: rgba(255,255,255,.68); }
.portal-hero h1, .portal-login h1 { margin: 0; font-size: clamp(1.6rem, 4vw, 2rem); font-weight: 700; letter-spacing: -.04em; line-height: 1.12; }
.portal-hero p:not(.portal-eyebrow), .portal-login__card > p { margin: 0; color: var(--portal-muted); font-size: .9375rem; }
.portal-hero p:not(.portal-eyebrow) { color: rgba(255,255,255,.8); }
.portal-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.portal-kpi, .portal-card { min-width: 0; padding: 1rem; border: 1px solid rgba(60,60,67,.12); border-radius: var(--portal-radius); background: var(--portal-surface); box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.portal-kpi { display: grid; grid-template-columns: 2.25rem minmax(0,1fr); grid-template-rows: auto auto; column-gap: .75rem; align-items: center; }
.portal-kpi__icon { display: grid; grid-row: 1 / span 2; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: .75rem; background: var(--portal-fill); color: var(--portal-blue); }
.portal-kpi__icon--ok { color: var(--portal-green); }
.portal-kpi__value--ok { color: var(--portal-green) !important; }
.portal-kpi__value--slow { color: #a86200 !important; }
.portal-kpi__value--down { color: #b42318 !important; }
.portal-kpi__value--unknown { color: var(--portal-muted) !important; }
.portal-kpi svg, .portal-card svg, .portal-button svg { width: 1.25rem; height: 1.25rem; }
.portal-kpi strong { overflow: hidden; color: var(--portal-ink); font-size: 1.125rem; font-variant-numeric: tabular-nums; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.portal-kpi > span:last-child { overflow: hidden; color: var(--portal-muted); font-size: .75rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.portal-kpi__services { display: flex; flex-wrap: wrap; gap: .2rem .5rem; overflow: visible !important; white-space: normal !important; }
.portal-kpi__services > span { display: inline-flex; align-items: center; gap: .2rem; font-weight: 650; }
.portal-kpi__services svg { width: .9rem; height: .9rem; }
.portal-kpi__services .is-active { color: var(--portal-green); }
.portal-kpi__services .is-inactive { color: #b42318; }
.portal-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(16rem, .8fr); gap: 1rem; margin-bottom: 1rem; }
.portal-card { display: grid; align-content: start; gap: 1rem; }
.portal-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.portal-card__head > div { display: grid; gap: .25rem; }
.portal-card h2 { margin: 0; color: var(--portal-ink); font-size: 1.125rem; font-weight: 700; letter-spacing: -.025em; line-height: 1.2; }
.portal-card__head-icon { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: .75rem; background: var(--portal-fill); color: var(--portal-muted); }
.portal-chip, .portal-status { display: inline-flex; align-items: center; justify-content: center; min-height: 1.75rem; padding: .25rem .5rem; border: 1px solid var(--portal-line); border-radius: 999px; color: var(--portal-muted); font-size: .75rem; font-weight: 700; line-height: 1; }
.portal-site-list, .portal-monitor-list { display: grid; gap: .25rem; }
.portal-service-summary { display: grid; gap: .5rem; padding-top: .875rem; border-top: 1px solid var(--portal-line); }
.portal-service-summary > strong { color: var(--portal-ink); font-size: .875rem; line-height: 1.25; }
.portal-service-summary__item { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr); gap: .5rem; align-items: start; }
.portal-service-summary__item > span { display: grid; place-items: center; width: 1.5rem; height: 1.5rem; color: var(--portal-blue); }
.portal-service-summary__item > span svg { width: 1rem; height: 1rem; }
.portal-service-summary__item div { display: grid; gap: .08rem; min-width: 0; }
.portal-service-summary__item b { color: var(--portal-ink); font-size: .8125rem; line-height: 1.25; }
.portal-service-summary__item small { color: var(--portal-muted); font-size: .75rem; line-height: 1.35; overflow-wrap: anywhere; }
.portal-service-additions { margin-bottom: 1rem; }
.portal-service-additions__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.portal-service-additions__item { display: grid; grid-template-columns: 2rem minmax(0, 1fr) 1rem; align-items: center; gap: .625rem; min-height: 5.25rem; padding: .75rem; border: 1px solid var(--portal-line); border-radius: .875rem; background: var(--portal-fill); transition: background .16s ease, border-color .16s ease, transform .16s ease; }
.portal-service-additions__item:hover { border-color: rgba(0,121,225,.3); background: rgba(0,121,225,.08); transform: translateY(-.0625rem); }
.portal-service-additions__item > span { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: .625rem; background: var(--portal-surface); color: var(--portal-blue); }
.portal-service-additions__item > span svg { width: 1rem; height: 1rem; }
.portal-service-additions__item > div { display: grid; min-width: 0; gap: .15rem; }
.portal-service-additions__item strong { color: var(--portal-ink); font-size: .8125rem; line-height: 1.25; }
.portal-service-additions__item small { color: var(--portal-muted); font-size: .75rem; line-height: 1.35; }
.portal-service-additions__item > svg { width: 1rem; height: 1rem; color: var(--portal-muted); }
a.portal-service-additions__item > .portal-service-additions__cta { display: inline-flex; grid-column: 1 / -1; align-items: center; justify-content: center; width: auto; height: auto; min-height: 2.25rem; gap: .35rem; padding: .45rem .65rem; border-radius: .625rem; background: var(--portal-blue); color: #ffffff; font-size: .75rem; font-weight: 700; }
a.portal-service-additions__item > .portal-service-additions__cta svg { width: .9rem; height: .9rem; }
.portal-service-additions__item:hover .portal-service-additions__cta { background: #0068c2; }
.portal-service-additions__item--booked { grid-template-columns: 2rem minmax(0,1fr) auto; border-color: rgba(23,122,50,.24); background: rgba(23,122,50,.07); }
.portal-service-additions__item--booked > span { background: rgba(23,122,50,.12); color: var(--portal-green); }
.portal-service-additions__item--booked small { display: inline-flex; align-items: center; gap: .25rem; color: var(--portal-green); }
.portal-service-additions__item--booked small svg { width: .9rem; height: .9rem; }
.portal-service-additions__item--booked em { padding: .22rem .4rem; border-radius: 999px; background: rgba(23,122,50,.12); color: var(--portal-green); font-size: .6875rem; font-style: normal; font-weight: 700; }
.portal-service-links { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; }
.portal-service-links a { display: inline-flex; align-items: center; gap: .35rem; min-height: 2.25rem; padding: .45rem .65rem; border: 1px solid var(--portal-line); border-radius: 999px; color: var(--portal-muted); font-size: .8125rem; font-weight: 700; }
.portal-service-links a.is-active { border-color: rgba(0,121,225,.28); background: rgba(0,121,225,.08); color: var(--portal-blue); }
.portal-service-links svg { width: 1rem; height: 1rem; }
.portal-service-offer { gap: 1.25rem; }
.portal-service-offer__head-icon--ok { color: var(--portal-green); background: rgba(23,122,50,.10); }
.portal-service-offer__head-icon--warn { color: #a86200; background: rgba(217,130,0,.12); }
.portal-service-offer__head-icon--critical { color: #b42318; background: rgba(217,45,32,.10); }
.portal-service-offer__head-icon--urgent { color: #ffffff; background: #8d1c13; }
.portal-service-offer__status { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .875rem; border: 1px solid transparent; border-radius: .75rem; font-size: .8125rem; }
.portal-service-offer__status--ok { border-color: rgba(23,122,50,.22); background: rgba(23,122,50,.08); color: var(--portal-green); }
.portal-service-offer__status--warn { border-color: rgba(217,130,0,.25); background: rgba(217,130,0,.10); color: #a86200; }
.portal-service-offer__status--critical { border-color: rgba(217,45,32,.24); background: rgba(217,45,32,.08); color: #b42318; }
.portal-service-offer__status--urgent { border-color: #8d1c13; background: #8d1c13; color: #ffffff; }
.portal-service-offer__status--urgent strong, .portal-service-offer__status--urgent span { color: #ffffff; }
.portal-service-offer__status--urgent em { background: rgba(255,255,255,.16); color: #ffffff; }
.portal-service-offer__status > div { display: grid; gap: .18rem; }
.portal-service-offer__status small { font-size: .6875rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.portal-service-offer__status strong { color: var(--portal-ink); font-size: .875rem; }
.portal-service-offer__status b { font-size: .8125rem; line-height: 1.35; }
.portal-service-offer__status span { display: inline-flex; align-items: center; gap: .35rem; color: var(--portal-muted); font-size: .75rem; line-height: 1.35; }
.portal-service-offer__status em { flex: 0 0 auto; align-self: center; padding: .25rem .45rem; border-radius: 999px; background: rgba(255,255,255,.52); color: currentColor; font-size: .75rem; font-style: normal; font-weight: 700; text-align: center; }
.portal-service-offer__status svg { width: 1rem; height: 1rem; }
.portal-service-sites { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; }
.portal-service-sites > span { color: var(--portal-muted); font-size: .75rem; font-weight: 700; }
.portal-service-sites a { display: inline-flex; align-items: center; gap: .3rem; min-height: 2rem; padding: .35rem .55rem; border: 1px solid var(--portal-line); border-radius: 999px; color: var(--portal-muted); font-size: .75rem; font-weight: 700; }
.portal-service-sites a:hover, .portal-service-sites a.is-active { border-color: rgba(0,121,225,.3); background: rgba(0,121,225,.08); color: var(--portal-blue); }
.portal-service-sites svg { width: .9rem; height: .9rem; }
.portal-service-offer__packages { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .75rem; }
.portal-service-offer__packages article { display: grid; align-content: start; gap: .625rem; padding: .875rem; border: 1px solid var(--portal-line); border-radius: .875rem; background: var(--portal-surface); }
.portal-service-offer__packages article.is-recommended { border-color: rgba(0,121,225,.45); box-shadow: inset 0 0 0 1px rgba(0,121,225,.1); }
.portal-service-offer__packages h3 { margin: 0; font-size: .875rem; line-height: 1.25; }
.portal-service-offer__packages article > span { justify-self: start; padding: .18rem .4rem; border-radius: 999px; background: rgba(23,122,50,.10); color: var(--portal-green); font-size: .6875rem; font-weight: 700; }
.portal-service-offer__packages ul { display: grid; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.portal-service-offer__packages li { display: flex; align-items: flex-start; gap: .3rem; color: var(--portal-muted); font-size: .75rem; line-height: 1.35; }
.portal-service-offer__packages li svg { flex: 0 0 auto; width: .9rem; height: .9rem; color: var(--portal-green); }
.portal-service-offer__packages li.portal-service-offer__feature--care svg, .portal-service-offer__packages li.portal-service-offer__feature--plus svg { color: var(--portal-blue); }
.portal-service-offer__advice { margin: 0; color: var(--portal-muted); font-size: .8125rem; font-style: italic; line-height: 1.45; }
.portal-service-offer__bonus { display: grid; gap: .18rem; padding: .875rem; border-left: .25rem solid var(--portal-blue); border-radius: .5rem; background: rgba(0,121,225,.06); }
.portal-service-offer__bonus span { color: var(--portal-blue); font-size: .6875rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.portal-service-offer__bonus strong { font-size: .875rem; line-height: 1.35; }
.portal-form { display: grid; gap: .875rem; }
.portal-form fieldset { display: grid; gap: .625rem; min-width: 0; margin: 0; padding: 0; border: 0; }
.portal-form legend, .portal-form > label { color: var(--portal-ink); font-size: .8125rem; font-weight: 700; }
.portal-form > label { display: grid; gap: .35rem; }
.portal-form input:not([type="checkbox"]):not([type="radio"]),.portal-form textarea { width: 100%; padding: .65rem .75rem; border: 1px solid var(--portal-line); border-radius: .75rem; background: var(--portal-surface); color: var(--portal-ink); }
.portal-form textarea { min-height: 6rem; resize: vertical; }
.portal-service-order__terms { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .625rem; }
.portal-service-order__terms label { display: grid; justify-items: start; align-content: start; gap: .5rem; padding: .75rem; border: 1px solid var(--portal-line); border-radius: .75rem; background: var(--portal-fill); cursor: pointer; }
.portal-service-order__terms label:has(input:checked) { border-color: var(--portal-blue); background: rgba(0,121,225,.08); }
.portal-service-order__terms input[type="radio"] { inline-size: 1rem; block-size: 1rem; margin: 0; accent-color: var(--portal-blue); }
.portal-service-order__terms span { display: grid; width: 100%; gap: .14rem; min-width: 0; }
.portal-service-order__terms b { color: var(--portal-ink); font-size: .8125rem; }
.portal-service-order__terms small { color: var(--portal-muted); font-size: .75rem; line-height: 1.35; }
.portal-check { display: flex !important; align-items: flex-start; gap: .5rem; color: var(--portal-muted) !important; font-size: .75rem !important; font-weight: 400 !important; line-height: 1.4; }
.portal-check input { flex: 0 0 auto; margin-top: .2rem; }
.portal-check a { color: var(--portal-blue); text-decoration: underline; }
.portal-service-empty { justify-items: start; width: min(100%, 38rem); margin: 0 auto; }
.portal-service-empty--booked { border-color: rgba(23,122,50,.24); background: linear-gradient(135deg, rgba(23,122,50,.07), var(--portal-surface)); }
.portal-referral-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(13rem, .55fr); gap: 1rem; margin-bottom: 1rem; }
.portal-referral-setup { width: min(100%, 44rem); margin: 0 auto; }
.portal-referral-form { max-width: 38rem; }
.portal-referral-rewards { display: grid; gap: .5rem; min-width: 0; margin: 0; padding: 0; border: 0; }
.portal-referral-rewards legend { margin-bottom: .1rem; color: var(--portal-ink); font-size: .8125rem; font-weight: 700; }
.portal-form .portal-referral-rewards label { display: flex; align-items: flex-start; gap: .625rem; padding: .75rem; border: 1px solid var(--portal-line); border-radius: .75rem; background: var(--portal-fill); cursor: pointer; }
.portal-form .portal-referral-rewards label:has(input:checked) { border-color: rgba(0,121,225,.5); background: rgba(0,121,225,.08); }
.portal-referral-rewards input { flex: 0 0 auto; inline-size: 1rem; block-size: 1rem; margin: .1rem 0 0; accent-color: var(--portal-blue); }
.portal-referral-rewards span { display: grid; gap: .16rem; }
.portal-referral-rewards b { color: var(--portal-ink); font-size: .8125rem; line-height: 1.3; }
.portal-referral-rewards small { color: var(--portal-muted); font-size: .75rem; line-height: 1.35; }
.portal-referral-reward { display: grid; grid-template-columns: 2.25rem minmax(0,1fr); gap: .625rem; padding: .875rem; border: 1px solid rgba(23,122,50,.22); border-radius: .75rem; background: rgba(23,122,50,.07); }
.portal-referral-reward > span { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: .7rem; background: rgba(23,122,50,.12); color: var(--portal-green); }
.portal-referral-reward > div { display: grid; gap: .12rem; }
.portal-referral-reward small, .portal-referral-code { color: var(--portal-muted); font-size: .75rem; }
.portal-referral-reward strong { color: var(--portal-ink); font-size: .875rem; line-height: 1.3; }
.portal-referral-reward p { margin: 0; color: var(--portal-muted); font-size: .75rem; line-height: 1.4; }
.portal-referral-link { display: grid; gap: .35rem; }
.portal-referral-link label { color: var(--portal-ink); font-size: .8125rem; font-weight: 700; }
.portal-referral-link > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .5rem; }
.portal-referral-link input { min-width: 0; width: 100%; padding: .65rem .75rem; border: 1px solid var(--portal-line); border-radius: .75rem; background: var(--portal-fill); color: var(--portal-ink); font-size: .75rem; }
.portal-referral-message { display: grid; gap: .35rem; }
.portal-referral-message label { color: var(--portal-ink); font-size: .8125rem; font-weight: 700; }
.portal-referral-message textarea { width: 100%; min-height: 9.5rem; padding: .65rem .75rem; border: 1px solid var(--portal-line); border-radius: .75rem; resize: vertical; background: var(--portal-fill); color: var(--portal-ink); font: inherit; font-size: .75rem; line-height: 1.45; }
.portal-referral-message .portal-button { justify-self: start; }
.portal-referral-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.portal-referral-resend { margin: 0; }
.portal-referral-code { margin: 0; }
.portal-referral-code strong { color: var(--portal-ink); letter-spacing: .06em; }
.portal-referral-change { border-top: 1px solid var(--portal-line); padding-top: .875rem; }
.portal-referral-change summary { color: var(--portal-blue); font-size: .8125rem; font-weight: 700; cursor: pointer; }
.portal-referral-change form { margin-top: .875rem; }
.portal-referral-qr { justify-items: center; align-content: center; text-align: center; }
.portal-referral-qr img { width: min(100%, 11.25rem); height: auto; image-rendering: pixelated; }
.portal-referral-qr strong { color: var(--portal-ink); font-size: .875rem; }
.portal-referral-qr p { margin: 0; color: var(--portal-muted); font-size: .75rem; line-height: 1.4; }
.portal-referral-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; margin-bottom: 1rem; }
.portal-referral-traffic { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; margin-bottom: 1rem; }
.portal-referral-list { display: grid; gap: .25rem; }
.portal-referral-list article { display: grid; grid-template-columns: 2rem minmax(0,1fr) auto; align-items: center; gap: .625rem; padding: .625rem 0; border-top: 1px solid var(--portal-line); }
.portal-referral-list article:first-child { padding-top: 0; border-top: 0; }
.portal-referral-list article:last-child { padding-bottom: 0; }
.portal-referral-list article > span:first-child { display: grid; place-items: center; width: 2rem; height: 2rem; color: var(--portal-blue); }
.portal-referral-list article > div { display: grid; min-width: 0; gap: .12rem; }
.portal-referral-list strong { overflow: hidden; color: var(--portal-ink); font-size: .8125rem; text-overflow: ellipsis; white-space: nowrap; }
.portal-referral-list small { color: var(--portal-muted); font-size: .75rem; }
.portal-referral-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(13rem, .55fr); gap: 1rem; margin-bottom: 1rem; }
.portal-referral-setup { width: min(100%, 44rem); margin: 0 auto; }
.portal-referral-form { max-width: 38rem; }
.portal-referral-rewards { display: grid; gap: .5rem; min-width: 0; margin: 0; padding: 0; border: 0; }
.portal-referral-rewards legend { margin-bottom: .1rem; color: var(--portal-ink); font-size: .8125rem; font-weight: 700; }
.portal-form .portal-referral-rewards label { display: flex; align-items: flex-start; gap: .625rem; padding: .75rem; border: 1px solid var(--portal-line); border-radius: .75rem; background: var(--portal-fill); cursor: pointer; }
.portal-form .portal-referral-rewards label:has(input:checked) { border-color: rgba(0,121,225,.5); background: rgba(0,121,225,.08); }
.portal-referral-rewards input { flex: 0 0 auto; inline-size: 1rem; block-size: 1rem; margin: .1rem 0 0; accent-color: var(--portal-blue); }
.portal-referral-rewards span { display: grid; gap: .16rem; }
.portal-referral-rewards b { color: var(--portal-ink); font-size: .8125rem; line-height: 1.3; }
.portal-referral-rewards small { color: var(--portal-muted); font-size: .75rem; line-height: 1.35; }
.portal-referral-reward { display: grid; grid-template-columns: 2.25rem minmax(0,1fr); gap: .625rem; padding: .875rem; border: 1px solid rgba(23,122,50,.22); border-radius: .75rem; background: rgba(23,122,50,.07); }
.portal-referral-reward > span { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: .7rem; background: rgba(23,122,50,.12); color: var(--portal-green); }
.portal-referral-reward > div { display: grid; gap: .12rem; }
.portal-referral-reward small, .portal-referral-code { color: var(--portal-muted); font-size: .75rem; }
.portal-referral-reward strong { color: var(--portal-ink); font-size: .875rem; line-height: 1.3; }
.portal-referral-reward p { margin: 0; color: var(--portal-muted); font-size: .75rem; line-height: 1.4; }
.portal-referral-link { display: grid; gap: .35rem; }
.portal-referral-link label { color: var(--portal-ink); font-size: .8125rem; font-weight: 700; }
.portal-referral-link > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .5rem; }
.portal-referral-link input { min-width: 0; width: 100%; padding: .65rem .75rem; border: 1px solid var(--portal-line); border-radius: .75rem; background: var(--portal-fill); color: var(--portal-ink); font-size: .75rem; }
.portal-referral-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.portal-referral-code { margin: 0; }
.portal-referral-code strong { color: var(--portal-ink); letter-spacing: .06em; }
.portal-referral-change { border-top: 1px solid var(--portal-line); padding-top: .875rem; }
.portal-referral-change summary { color: var(--portal-blue); font-size: .8125rem; font-weight: 700; cursor: pointer; }
.portal-referral-change form { margin-top: .875rem; }
.portal-referral-qr { justify-items: center; align-content: center; text-align: center; }
.portal-referral-qr img { width: min(100%, 11.25rem); height: auto; image-rendering: pixelated; }
.portal-referral-qr strong { color: var(--portal-ink); font-size: .875rem; }
.portal-referral-qr p { margin: 0; color: var(--portal-muted); font-size: .75rem; line-height: 1.4; }
.portal-referral-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; margin-bottom: 1rem; }
.portal-referral-list { display: grid; gap: .25rem; }
.portal-referral-list article { display: grid; grid-template-columns: 2rem minmax(0,1fr) auto; align-items: center; gap: .625rem; padding: .625rem 0; border-top: 1px solid var(--portal-line); }
.portal-referral-list article:first-child { padding-top: 0; border-top: 0; }
.portal-referral-list article:last-child { padding-bottom: 0; }
.portal-referral-list article > span:first-child { display: grid; place-items: center; width: 2rem; height: 2rem; color: var(--portal-blue); }
.portal-referral-list article > div { display: grid; min-width: 0; gap: .12rem; }
.portal-referral-list strong { overflow: hidden; color: var(--portal-ink); font-size: .8125rem; text-overflow: ellipsis; white-space: nowrap; }
.portal-referral-list small { color: var(--portal-muted); font-size: .75rem; }
.portal-note.portal-note--ok { border: 1px solid rgba(23,122,50,.24); background: rgba(23,122,50,.08); color: var(--portal-green); }
.portal-analysis-booking { gap: 1rem; width: min(100%, 42rem); margin: 0 auto; }
.portal-analysis-booking__list { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.portal-analysis-booking__list li { display: flex; align-items: flex-start; gap: .4rem; color: var(--portal-muted); font-size: .8125rem; line-height: 1.4; }
.portal-analysis-booking__list svg { flex: 0 0 auto; width: 1rem; height: 1rem; color: var(--portal-green); }
.portal-analysis-booking__checkout { display: grid; gap: .5rem; margin: 0; padding: .875rem; border-radius: .75rem; background: var(--portal-fill); }
.portal-analysis-booking__checkout > div { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.portal-analysis-booking__checkout dt { color: var(--portal-muted); font-size: .8125rem; line-height: 1.35; }
.portal-analysis-booking__checkout dd { margin: 0; color: var(--portal-ink); font-size: .875rem; font-weight: 700; text-align: right; white-space: nowrap; }
.portal-analysis-booking__checkout del { color: var(--portal-muted); font-size: .75rem; font-weight: 400; }
.portal-analysis-booking__checkout > div:first-child strong { font-size: 1.25rem; }
.portal-analysis-booking__checkout-total { padding-top: .5rem; border-top: 1px solid var(--portal-line); }
.portal-analysis-booking__checkout-total dt, .portal-analysis-booking__checkout-total dd { color: var(--portal-ink); font-size: .9375rem; font-weight: 800; }
.portal-analysis-booking__site { display: inline-flex; align-items: center; gap: .35rem; margin: 0; color: var(--portal-muted); font-size: .8125rem; }
.portal-analysis-booking__site svg { width: 1rem; height: 1rem; color: var(--portal-blue); }
.portal-analysis-booking__sites { display: grid; gap: .5rem; }
.portal-form .portal-analysis-booking__sites label { display: flex; align-items: flex-start; gap: .5rem; padding: .65rem; border: 1px solid var(--portal-line); border-radius: .75rem; background: var(--portal-fill); cursor: pointer; }
.portal-form .portal-analysis-booking__sites label:has(input:checked) { border-color: var(--portal-blue); background: rgba(0,121,225,.08); }
.portal-form .portal-analysis-booking__sites input[type="radio"] { flex: 0 0 auto; inline-size: 1rem; block-size: 1rem; margin: .05rem 0 0; accent-color: var(--portal-blue); }
.portal-analysis-booking__sites span { display: grid; grid-template-columns: 1rem minmax(0,1fr); column-gap: .35rem; }
.portal-analysis-booking__sites svg { grid-row: 1 / span 2; width: 1rem; height: 1rem; color: var(--portal-blue); }
.portal-analysis-booking__sites b { color: var(--portal-ink); font-size: .8125rem; }
.portal-analysis-booking__sites small { color: var(--portal-muted); font-size: .75rem; overflow-wrap: anywhere; }
.portal-analysis-booking__keywords { display: grid; gap: .5rem; margin: 0; padding: 0; border: 0; }
.portal-analysis-booking__keywords legend { color: var(--portal-ink); font-size: .8125rem; font-weight: 700; }
.portal-analysis-booking__keywords > div { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .625rem; }
.portal-analysis-booking__keywords label { display: grid; gap: .3rem; color: var(--portal-ink); font-size: .75rem; font-weight: 700; }
@media (max-width: 40rem) { .portal-analysis-booking__keywords > div { grid-template-columns: 1fr; } }
.portal-site, .portal-monitor { display: grid; grid-template-columns: 2rem minmax(0,1fr) auto; align-items: center; gap: .625rem; padding: .625rem 0; border-top: 1px solid var(--portal-line); }
.portal-site:first-child, .portal-monitor:first-child { border-top: 0; padding-top: 0; }
.portal-site:last-child, .portal-monitor:last-child { padding-bottom: 0; }
.portal-site__icon { display: grid; place-items: center; width: 2rem; height: 2rem; color: var(--portal-blue); }
.portal-site > div, .portal-monitor > div { display: grid; min-width: 0; gap: .1rem; }
.portal-site strong, .portal-monitor strong { overflow: hidden; color: var(--portal-ink); font-size: .875rem; font-weight: 700; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.portal-site div span, .portal-monitor div span { overflow: hidden; color: var(--portal-muted); font-size: .75rem; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.portal-status { color: var(--portal-green); background: rgba(23,122,50,.08); border-color: rgba(23,122,50,.22); }
.portal-status--neutral { color: var(--portal-muted); background: var(--portal-fill); border-color: transparent; }
.portal-empty, .portal-card__copy { margin: 0; color: var(--portal-muted); font-size: .875rem; line-height: 1.45; }
.portal-document-counts { display: grid; gap: .2rem; }
.portal-card--coming-soon { justify-items: start; width: min(100%, 38rem); margin: 8vh auto 0; padding: 1.5rem; }
.portal-card--coming-soon h1 { margin: 0; font-size: clamp(1.5rem, 4vw, 2rem); letter-spacing: -.04em; line-height: 1.15; }
.portal-button { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 2.5rem; padding: .625rem .875rem; border: 1px solid transparent; border-radius: .75rem; font-size: .875rem; font-weight: 700; line-height: 1.2; text-align: center; cursor: pointer; }
.portal-button svg { width: 1.05rem; height: 1.05rem; }
.portal-button--primary { background: var(--portal-blue); color: #fff; }
.portal-button--primary:hover { background: #006bc7; }
.portal-button--secondary { border-color: var(--portal-line); background: var(--portal-surface); color: var(--portal-ink); }
.portal-note { display: flex; align-items: flex-start; gap: .45rem; padding: .75rem; border-radius: .75rem; background: var(--portal-fill); color: var(--portal-muted); font-size: .8125rem; line-height: 1.4; }
.portal-note span { display: grid; flex: 0 0 auto; place-items: center; }
.portal-note svg { width: 1rem; height: 1rem; }
.portal-note--danger { border: 1px solid rgba(217,45,32,.24); background: rgba(217,45,32,.08); color: #b42318; }
.portal-monitor { grid-template-columns: .75rem minmax(0,1fr) auto; }
.portal-monitor__dot { width: .5rem; height: .5rem; border-radius: 50%; background: var(--portal-muted); }
.portal-monitor__dot--ok { background: var(--portal-green); }
.portal-monitor__dot--slow { background: #d98200; }
.portal-monitor__dot--down { background: #d92d20; }
.portal-monitor > span:last-child { color: var(--portal-muted); font-size: .75rem; font-weight: 650; }
.portal-back { display: inline-flex; align-items: center; gap: .3rem; margin-bottom: .75rem; color: var(--portal-muted); font-size: .8125rem; font-weight: 700; }
.portal-back svg { width: 1rem; height: 1rem; }
.portal-hero--website { margin-bottom: 1rem; }
.portal-website-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.portal-kpi__icon--slow, .portal-card__head-icon--slow { color: #a86200; background: rgba(217,130,0,.1); }
.portal-kpi__icon--down, .portal-card__head-icon--down { color: #b42318; background: rgba(217,45,32,.1); }
.portal-kpi__icon--unknown, .portal-card__head-icon--unknown { color: var(--portal-muted); }
.portal-status--slow { color: #a86200; background: rgba(217,130,0,.1); border-color: rgba(217,130,0,.25); }
.portal-status--down { color: #b42318; background: rgba(217,45,32,.08); border-color: rgba(217,45,32,.22); }
.portal-status--unknown { color: var(--portal-muted); background: var(--portal-fill); border-color: transparent; }
.portal-website-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1rem; }
.portal-website-card { min-height: 15rem; transition: transform .16s ease, box-shadow .16s ease; }
.portal-website-card:hover { transform: translateY(-.125rem); box-shadow: 0 .75rem 1.75rem rgba(17,24,39,.1); }
.portal-website-card__title { display: grid; gap: .18rem; min-width: 0; }
.portal-website-card__title strong { overflow: hidden; font-size: 1rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.portal-website-card__title span { overflow: hidden; color: var(--portal-muted); font-size: .8125rem; text-overflow: ellipsis; white-space: nowrap; }
.portal-website-card__meta { display: grid; gap: .35rem; color: var(--portal-muted); font-size: .75rem; }
.portal-website-card__meta span, .portal-website-card__link { display: inline-flex; align-items: center; gap: .35rem; }
.portal-website-card__meta svg, .portal-website-card__link svg { width: .95rem; height: .95rem; }
.portal-website-card__link { margin-top: auto; color: var(--portal-blue); font-size: .8125rem; font-weight: 700; }
.portal-card--empty { justify-items: start; width: min(100%, 38rem); margin: 8vh auto 0; }
.portal-card--empty h2 { margin: 0; }
.portal-account-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.portal-account-facts { display: grid; gap: .75rem; margin: 0; }
.portal-account-facts > div { display: grid; gap: .1rem; padding-bottom: .75rem; border-bottom: 1px solid var(--portal-line); }
.portal-account-facts > div:last-child { padding-bottom: 0; border-bottom: 0; }
.portal-account-facts dt { color: var(--portal-muted); font-size: .75rem; font-weight: 700; }
.portal-account-facts dd { margin: 0; overflow-wrap: anywhere; font-size: .875rem; font-weight: 650; }
.portal-support-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(17rem, .8fr); gap: 1rem; }
.portal-ticket-list { display: grid; }
.portal-ticket { display: grid; gap: .4rem; padding: .875rem 0; border-top: 1px solid var(--portal-line); }
.portal-ticket:first-child { padding-top: 0; border-top: 0; }
.portal-ticket:last-child { padding-bottom: 0; }
.portal-ticket__head { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.portal-ticket__head strong { font-size: .875rem; line-height: 1.3; }
.portal-ticket p { display: -webkit-box; margin: 0; overflow: hidden; color: var(--portal-muted); font-size: .8125rem; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.portal-ticket small { color: var(--portal-muted); font-size: .75rem; }
.portal-status--progress { color: var(--portal-blue); border-color: rgba(0,121,225,.25); background: rgba(0,121,225,.08); }
.portal-status--attention { color: #a86200; border-color: rgba(217,130,0,.25); background: rgba(217,130,0,.1); }
.portal-status--closed { color: var(--portal-muted); border-color: transparent; background: var(--portal-fill); }
.portal-timeline { display: grid; grid-template-columns: repeat(48, minmax(0, 1fr)); align-items: stretch; gap: .18rem; min-height: 3rem; }
.portal-timeline__slot { min-width: 0; border-radius: .2rem; background: var(--portal-fill); }
.portal-timeline__slot--ok { background: #2d9b4e; }
.portal-timeline__slot--slow { background: #e6a700; }
.portal-timeline__slot--down { background: #d92d20; }
.portal-timeline__slot--unknown { background: rgba(102,112,133,.2); }
.portal-monitoring-timelines { display: grid; gap: .45rem; }
.portal-monitoring-timelines .admin-monitor-timeline { display: grid; gap: .25rem; min-width: 0; }
.portal-monitoring-timelines .admin-monitor-timeline__bars { display: flex; align-items: end; gap: .125rem; min-width: 0; }
.portal-monitoring-timelines .admin-monitor-timeline__bar { display: block; flex: 1 1 0; min-width: .125rem; border-radius: 999px; background: var(--portal-line); }
.portal-monitoring-timelines .admin-monitor-timeline--availability .admin-monitor-timeline__bars, .portal-monitoring-timelines .admin-monitor-timeline--availability .admin-monitor-timeline__bar { height: .75rem; }
.portal-monitoring-timelines .admin-monitor-timeline--performance .admin-monitor-timeline__bars { height: 2rem; }
.portal-monitoring-timelines .admin-monitor-timeline--performance .admin-monitor-timeline__bar--ok { height: 100%; }
.portal-monitoring-timelines .admin-monitor-timeline--performance .admin-monitor-timeline__bar--slow { height: 95%; }
.portal-monitoring-timelines .admin-monitor-timeline--performance .admin-monitor-timeline__bar--warn { height: 80%; }
.portal-monitoring-timelines .admin-monitor-timeline--performance .admin-monitor-timeline__bar--crit { height: 70%; }
.portal-monitoring-timelines .admin-monitor-timeline--performance .admin-monitor-timeline__bar--down, .portal-monitoring-timelines .admin-monitor-timeline--performance .admin-monitor-timeline__bar--unknown { height: 40%; }
.portal-monitoring-timelines .admin-monitor-timeline__bar--ok { background: #177a32; }
.portal-monitoring-timelines .admin-monitor-timeline__bar--slow { background: #34c759; }
.portal-monitoring-timelines .admin-monitor-timeline__bar--warn { background: #d98200; }
.portal-monitoring-timelines .admin-monitor-timeline__bar--crit { background: #d92d20; }
.portal-monitoring-timelines .admin-monitor-timeline__bar--down { background: #b42318; }
.portal-monitoring-timelines .admin-monitor-timeline__bar--unknown { background: #d7d7dc; }
.portal-monitoring-timelines .admin-monitor-timeline__scale { display: flex; justify-content: space-between; gap: .5rem; color: var(--portal-muted); font-size: .6875rem; line-height: 1.2; }
.portal-monitoring-timelines .admin-monitor-timeline--availability .admin-monitor-timeline__scale { display: none; }
.portal-remote-status .admin-monitor-remote-badges { display: flex; flex-wrap: wrap; gap: .35rem; }
.portal-remote-status .admin-monitor-remote-badge { display: inline-flex; align-items: center; gap: .3rem; min-height: 1.75rem; padding: .25rem .45rem; border: 1px solid var(--portal-line); border-radius: 999px; background: var(--portal-fill); color: var(--portal-muted); font-size: .6875rem; font-weight: 700; }
.portal-remote-status .admin-monitor-remote-badge__dot { width: .45rem; height: .45rem; border-radius: 50%; background: currentColor; }
.portal-remote-status .admin-monitor-remote-badge strong { font-size: .6875rem; }
.portal-remote-status .admin-monitor-remote-badge--ok { border-color: rgba(23,122,50,.25); background: rgba(23,122,50,.08); color: var(--portal-green); }
.portal-remote-status .admin-monitor-remote-badge--warn { border-color: rgba(217,130,0,.25); background: rgba(217,130,0,.08); color: #a86200; }
.portal-remote-status .admin-monitor-remote-badge--crit { border-color: rgba(217,45,32,.25); background: rgba(217,45,32,.08); color: #b42318; }
.portal-analysis { margin-top: 1rem; }
.portal-analysis .admin-detail-shell { display: grid; gap: 1rem; }
.portal-analysis .admin-monitor-analysis__head { display: grid; gap: .5rem; padding: 1rem; border: 1px solid var(--portal-line); border-radius: var(--portal-radius); background: var(--portal-surface); }
.portal-analysis .admin-monitor-analysis__head > div { display: grid; gap: .45rem; min-width: 0; }
.portal-analysis .admin-monitor-analysis__eyebrow { justify-self: center; color: var(--portal-muted); font-size: .6875rem; font-weight: 700; letter-spacing: .04em; line-height: 1.2; text-align: center; }
.portal-analysis .admin-monitor-analysis__head h2 { margin: 0; font-size: 1.25rem; letter-spacing: -.03em; line-height: 1.2; }
.portal-analysis .admin-monitor-analysis__url { display: inline-flex; align-items: center; justify-self: start; gap: .35rem; max-width: 100%; margin: 0; padding: .28rem .5rem; border: 1px solid var(--portal-line); border-radius: 999px; background: var(--portal-fill); color: var(--portal-muted); font-size: .8125rem; line-height: 1.35; overflow-wrap: anywhere; }
.portal-analysis .admin-monitor-analysis__url-icon { display: grid; place-items: center; flex: 0 0 auto; }
.portal-analysis .admin-monitor-analysis__url-icon svg { width: 1rem; height: 1rem; }
.portal-analysis .admin-monitor-analysis__assessment { display: grid; grid-template-columns: minmax(14rem,.8fr) minmax(0,1.2fr); align-items: center; gap: 1rem; padding: 1rem; border: 1px solid var(--portal-line); border-radius: var(--portal-radius); background: var(--portal-fill); }
.portal-analysis .admin-monitor-analysis__score-stack { display: grid; gap: .65rem; }
.portal-analysis .admin-monitor-analysis__score-card { display: flex; align-items: center; gap: .625rem; min-width: 0; }
.portal-analysis .admin-monitor-analysis__score-card > span { display: grid; gap: .1rem; min-width: 0; }
.portal-analysis .admin-monitor-analysis__score-card > span > strong { font-size: .875rem; line-height: 1.25; }
.portal-analysis .admin-monitor-analysis__score-card > span > small { color: var(--portal-muted); font-size: .75rem; line-height: 1.25; }
.portal-analysis .admin-monitor-analysis__score-circle { position: relative; display: grid; grid-template-rows: auto auto; align-content: center; place-items: center; width: 4.25rem; height: 4.25rem; flex: 0 0 4.25rem; }
.portal-analysis .admin-monitor-analysis__score-circle > svg:not(.admin-monitor-analysis__score-question) { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.portal-analysis .admin-monitor-analysis__score-circle circle { fill: none; stroke-width: 3.25; }
.portal-analysis .admin-monitor-analysis__score-track { stroke: var(--portal-line); }
.portal-analysis .admin-monitor-analysis__score-value { stroke: var(--portal-green); stroke-linecap: round; }
.portal-analysis .admin-monitor-analysis__score-card--warn .admin-monitor-analysis__score-value { stroke: #d98200; }
.portal-analysis .admin-monitor-analysis__score-card--critical .admin-monitor-analysis__score-value { stroke: #d92d20; }
.portal-analysis .admin-monitor-analysis__score-circle strong, .portal-analysis .admin-monitor-analysis__score-circle small, .portal-analysis .admin-monitor-analysis__score-question { position: relative; z-index: 1; }
.portal-analysis .admin-monitor-analysis__score-circle strong { font-size: 1.2rem; letter-spacing: -.03em; line-height: 1; }
.portal-analysis .admin-monitor-analysis__score-circle small { color: var(--portal-muted); font-size: .6rem; font-weight: 700; line-height: 1.1; }
.portal-analysis .admin-monitor-analysis__score-card--pending .admin-monitor-analysis__score-circle { color: var(--portal-muted); }
.portal-analysis .admin-monitor-analysis__score-question { width: 1.35rem; height: 1.35rem; }
.portal-analysis .admin-monitor-analysis__score-question { position: relative !important; inset: auto !important; transform: none !important; }
.portal-analysis .admin-monitor-analysis__assessment-copy { display: grid; gap: .5rem; }
.portal-analysis .admin-monitor-analysis__assessment-copy > strong { font-size: 1.0625rem; letter-spacing: -.02em; line-height: 1.25; }
.portal-analysis .admin-monitor-analysis__assessment-copy > p { margin: 0; color: var(--portal-muted); font-size: .875rem; line-height: 1.45; }
.portal-analysis .admin-monitor-analysis__assessment-status { padding: .625rem .75rem; border-left: .25rem solid #d98200; background: rgba(217,130,0,.08); color: var(--portal-ink) !important; }
.portal-analysis .admin-monitor-analysis__assessment-status--critical { border-left-color: #d92d20; background: rgba(217,45,32,.07); }
.portal-analysis .admin-monitor-analysis__insights { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
.portal-analysis .admin-monitor-analysis__insights > div { display: grid; gap: .45rem; min-width: 0; }
.portal-analysis .admin-monitor-analysis__insights h4 { margin: 0; color: var(--portal-muted); font-size: .6875rem; letter-spacing: .05em; text-transform: uppercase; }
.portal-analysis .website-search-preview, .portal-analysis .website-technik { display: grid; gap: .18rem; min-height: 100%; padding: .875rem; border: 1px solid var(--portal-line); border-radius: .75rem; background: var(--portal-surface); }
.portal-analysis .website-search-preview > span, .portal-analysis .website-technik > span { color: var(--portal-muted); font-size: .6875rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.portal-analysis .website-search-preview strong { color: #1a0dab; font-size: 1rem; font-weight: 600; line-height: 1.25; }
.portal-analysis .website-search-preview small { color: #177a32; font-size: .75rem; }
.portal-analysis .website-search-preview p, .portal-analysis .website-technik small { margin: .15rem 0 0; color: var(--portal-muted); font-size: .8125rem; line-height: 1.4; }
.portal-analysis .website-search-preview--missing { border-color: rgba(217,45,32,.52); background: rgba(217,45,32,.035); }
.portal-analysis .website-search-preview .is-missing { color: #d92d20; }
.portal-analysis .website-technik strong { font-size: 1rem; }
.portal-analysis .admin-monitor-analysis__customer-scores { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
.portal-analysis .admin-monitor-analysis__customer-score { display: grid; gap: .6rem; padding: .875rem; border: 1px solid var(--portal-line); border-radius: .75rem; background: var(--portal-surface); }
.portal-analysis .admin-monitor-analysis__customer-score--visibility { grid-column: 1 / -1; }
.portal-analysis .admin-monitor-analysis__customer-score > div { display: grid; grid-template-columns: 2.25rem minmax(0,1fr) auto; align-items: center; gap: .625rem; }
.portal-analysis .admin-monitor-analysis__customer-icon { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; color: var(--portal-muted); }
.portal-analysis .admin-monitor-analysis__customer-icon svg { width: 2.25rem; height: 2.25rem; }
.portal-analysis .admin-monitor-analysis__customer-score strong { font-size: .875rem; line-height: 1.28; }
.portal-analysis .admin-monitor-analysis__customer-score b { white-space: nowrap; font-size: 1.2rem; letter-spacing: -.03em; }
.portal-analysis .admin-monitor-analysis__customer-score b small { color: var(--portal-muted); font-size: .65em; }
.portal-analysis .admin-monitor-analysis__customer-score > span { display: block; height: .45rem; }
.portal-analysis .admin-monitor-analysis__customer-score > span svg { display: block; width: 100%; height: 100%; }
.portal-analysis .admin-monitor-analysis__bar-track { fill: var(--portal-fill); }
.portal-analysis .admin-monitor-analysis__bar-value { fill: var(--portal-blue); }
.portal-analysis .admin-monitor-analysis__customer-score--ok .admin-monitor-analysis__bar-value { fill: var(--portal-green); }
.portal-analysis .admin-monitor-analysis__customer-score--warn .admin-monitor-analysis__bar-value { fill: #d98200; }
.portal-analysis .admin-monitor-analysis__customer-score--critical .admin-monitor-analysis__bar-value { fill: #d92d20; }
.portal-analysis .admin-monitor-analysis__findings { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
.portal-analysis .admin-monitor-analysis__findings--issues-only { grid-template-columns: 1fr; }
.portal-analysis .admin-monitor-analysis__finding-stack { display: grid; gap: .75rem; align-content: start; }
.portal-analysis .admin-monitor-analysis__finding { padding: .875rem; border: 1px solid var(--portal-line); border-radius: .75rem; background: var(--portal-surface); }
.portal-analysis .admin-monitor-analysis__finding h3 { display: flex; align-items: center; gap: .375rem; margin: 0 0 .5rem; font-size: .9375rem; line-height: 1.2; }
.portal-analysis .admin-monitor-analysis__finding--positive { border-color: rgba(23,122,50,.3); background: rgba(23,122,50,.055); }
.portal-analysis .admin-monitor-analysis__finding--warn { border-color: rgba(217,130,0,.3); background: rgba(217,130,0,.07); }
.portal-analysis .admin-monitor-analysis__finding--critical { border-color: rgba(217,45,32,.3); background: rgba(217,45,32,.06); }
.portal-analysis .admin-monitor-analysis__finding-icon, .portal-analysis .admin-monitor-analysis__positive-icon { display: inline-grid; place-items: center; width: 1rem; height: 1rem; flex: 0 0 1rem; }
.portal-analysis .admin-monitor-analysis__finding-icon svg, .portal-analysis .admin-monitor-analysis__positive-icon svg { width: 100%; height: 100%; }
.portal-analysis .admin-monitor-analysis__finding--warn h3, .portal-analysis .admin-monitor-analysis__finding--warn .website-check__opportunities li::before { color: #d98200; }
.portal-analysis .admin-monitor-analysis__finding--critical h3, .portal-analysis .admin-monitor-analysis__finding--critical .website-check__opportunities li::before { color: #d92d20; }
.portal-analysis .admin-monitor-analysis__positive-icon { color: var(--portal-green); }
.portal-analysis .checklist, .portal-analysis .website-check__opportunities { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.portal-analysis .checklist li { display: flex; align-items: flex-start; gap: .375rem; font-size: .8125rem; line-height: 1.35; }
.portal-analysis .website-check__opportunities li { position: relative; padding-left: 1rem; font-size: .8125rem; line-height: 1.35; }
.portal-analysis .website-check__opportunities li::before { content: '→'; position: absolute; left: 0; font-weight: 700; }
.portal-analysis .website-check__opportunities strong, .portal-analysis .website-check__opportunities span { display: block; }
.portal-analysis .website-check__opportunities span { margin-top: .1rem; color: var(--portal-muted); font-size: .75rem; }
.portal-analysis .admin-detail-stack { display: grid; gap: .65rem; }
.portal-analysis .admin-detail-group { border: 1px solid var(--portal-line); border-radius: .75rem; background: var(--portal-surface); }
.portal-analysis .admin-detail-group > summary { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .875rem; cursor: pointer; list-style: none; }
.portal-analysis .admin-detail-group > summary::-webkit-details-marker { display: none; }
.portal-analysis .admin-detail-group > summary::after { content: '›'; margin-left: .35rem; color: var(--portal-muted); font-size: 1.25rem; font-weight: 400; line-height: 1; transition: transform .18s ease; }
.portal-analysis .admin-detail-group[open] > summary::after { transform: rotate(90deg); }
.portal-analysis .admin-detail-group[open] > summary { background: var(--portal-fill); }
.portal-analysis .admin-detail-group > summary strong { font-size: .875rem; }
.portal-analysis .admin-detail-group__counts { display: inline-flex; align-items: center; justify-content: flex-end; gap: .375rem; margin-left: auto; white-space: nowrap; }
.portal-analysis .admin-monitor-analysis__summary-count { display: inline-flex; align-items: center; gap: .22rem; color: var(--portal-muted); font-size: .75rem; font-weight: 700; }
.portal-analysis .admin-monitor-analysis__summary-count i { width: .45rem; height: .45rem; border-radius: 50%; background: currentColor; }
.portal-analysis .admin-monitor-analysis__summary-count--ok { color: var(--portal-green); }
.portal-analysis .admin-monitor-analysis__summary-count--warn { color: #a86200; }
.portal-analysis .admin-monitor-analysis__summary-count--critical { color: #b42318; }
.portal-analysis .admin-detail-group__content { padding: 0 .875rem .875rem; }
.portal-analysis .admin-table-wrap { overflow-x: auto; }
.portal-analysis .admin-table { width: 100%; border-collapse: collapse; }
.portal-analysis .admin-table th, .portal-analysis .admin-table td { padding: .65rem 0; border-top: 1px solid var(--portal-line); text-align: left; vertical-align: top; }
.portal-analysis .admin-table th { color: var(--portal-muted); font-size: .6875rem; letter-spacing: .04em; text-transform: uppercase; }
.portal-analysis .admin-table td:first-child { padding-right: 1rem; }
.portal-analysis .admin-table td strong, .portal-analysis .admin-table td em, .portal-analysis .admin-table td small { display: block; }
.portal-analysis .admin-table td em { margin-top: .2rem; color: var(--portal-muted); font-size: .75rem; line-height: 1.35; }
.portal-analysis .admin-table td small { margin-top: .35rem; color: var(--portal-muted); font-size: .75rem; line-height: 1.4; }
.portal-analysis .admin-badge { display: inline-flex; align-items: center; min-height: 1.75rem; padding: .25rem .5rem; border-radius: 999px; font-size: .75rem; font-weight: 700; white-space: nowrap; }
.portal-analysis .admin-monitor-analysis__badge--ok { background: rgba(23,122,50,.1); color: var(--portal-green); }
.portal-analysis .admin-monitor-analysis__badge--warn { background: rgba(217,130,0,.1); color: #a86200; }
.portal-analysis .admin-monitor-analysis__badge--critical { background: rgba(217,45,32,.08); color: #b42318; }
.portal-account { position: relative; }
.portal-account summary { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border: 1px solid var(--portal-line); border-radius: 50%; background: rgba(255,255,255,.78); cursor: pointer; list-style: none; }
.portal-account summary::-webkit-details-marker { display: none; }
.portal-account__button svg { width: 1.25rem; height: 1.25rem; }
.portal-account__menu { position: absolute; top: calc(100% + .5rem); right: 0; display: grid; min-width: 14rem; gap: .25rem; padding: .75rem; border: 1px solid var(--portal-line); border-radius: .875rem; background: rgba(255,255,255,.98); box-shadow: 0 1rem 2.5rem rgba(0,0,0,.16); }
.portal-account__menu strong { font-size: .8125rem; }
.portal-account__menu > span { margin-bottom: .375rem; color: var(--portal-muted); font-size: .75rem; overflow-wrap: anywhere; }
.portal-account__link { display: flex; align-items: center; gap: .45rem; padding: .55rem; border-radius: .625rem; color: var(--portal-ink); font-size: .8125rem; font-weight: 700; }
.portal-account__link:hover { background: var(--portal-fill); }
.portal-account__link svg { width: 1rem; height: 1rem; }
.portal-account__menu form { margin: 0; }
.portal-account__menu button { display: flex; align-items: center; gap: .45rem; width: 100%; padding: .55rem; border: 0; border-radius: .625rem; background: transparent; color: #d92d20; font-size: .8125rem; font-weight: 700; text-align: left; cursor: pointer; }
.portal-account__menu button:hover { background: rgba(217,45,32,.08); }
.portal-account__menu button svg { width: 1rem; height: 1rem; }
.portal-nav { position: fixed; bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px)); left: 50%; z-index: 20; width: min(calc(100% - 2.5rem), 33.75rem); transform: translateX(-50%); }
.portal-nav__dock { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); padding: .25rem; border: 1px solid rgba(255,255,255,.68); border-radius: 999px; background: rgba(249,249,251,.9); box-shadow: 0 .625rem 2rem rgba(0,0,0,.14); backdrop-filter: blur(14px); }
.portal-nav__link { display: grid; justify-items: center; gap: .1rem; padding: .3125rem .125rem; border-radius: 999px; color: var(--portal-muted); }
.portal-nav__link span { display: grid; place-items: center; }
.portal-nav__link svg { width: 1.25rem; height: 1.25rem; }
.portal-nav__link small { font-size: .6875rem; font-weight: 750; line-height: 1.1; }
.portal-nav__link.is-active { background: var(--portal-fill); color: var(--portal-blue); }
.portal-document-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.portal-card--addresses { margin-bottom: 1rem; }
.portal-account-addresses { margin-top: 1rem; }
.portal-addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: .75rem; }
.portal-address { display: grid; gap: .12rem; padding: .875rem; border-radius: .75rem; background: var(--portal-fill); color: var(--portal-muted); font-size: .8125rem; line-height: 1.35; }
.portal-address strong { color: var(--portal-ink); font-size: .875rem; }
.portal-address small { margin-top: .25rem; font-size: .6875rem; font-weight: 700; }
.portal-document-list { display: grid; }
.portal-document { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(7.5rem, .7fr) auto auto; align-items: center; gap: 1rem; padding: .875rem 0; border-top: 1px solid var(--portal-line); }
.portal-document:first-child { padding-top: 0; border-top: 0; }
.portal-document:last-child { padding-bottom: 0; }
.portal-document__main, .portal-document__amount { display: grid; min-width: 0; gap: .12rem; }
.portal-document__main strong, .portal-document__amount strong { overflow: hidden; color: var(--portal-ink); font-size: .875rem; font-weight: 700; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.portal-document__main span, .portal-document__main small, .portal-document__amount span { color: var(--portal-muted); font-size: .75rem; line-height: 1.3; }
.portal-document__amount { text-align: right; }
.portal-document__amount .is-open { color: #d98200; font-weight: 700; }
.portal-status--open { border-color: rgba(217, 130, 0, .25); background: rgba(217, 130, 0, .1); color: #a86200; }
.portal-document__download { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border: 1px solid var(--portal-line); border-radius: .625rem; color: var(--portal-blue); }
.portal-document__download:hover { border-color: rgba(0,121,225,.3); background: rgba(0,121,225,.08); }
.portal-document__actions { display: flex; gap: .35rem; }
.portal-document-filters { display: flex; flex-wrap: wrap; gap: .45rem; }
.portal-document-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.portal-document-filters--status { justify-content: flex-end; }
.portal-document-filters .portal-chip { gap: .35rem; text-decoration: none; }
.portal-document-filters .portal-chip span { display: inline-grid; place-items: center; min-width: 1.1rem; height: 1.1rem; border-radius: 999px; background: var(--portal-fill); font-size: .6875rem; }
.portal-document-filters .portal-chip.is-active { border-color: rgba(0,121,225,.24); background: rgba(0,121,225,.09); color: var(--portal-blue); }
.portal-pagination { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding-top: .875rem; border-top: 1px solid var(--portal-line); }
.portal-pagination__pages, .portal-pagination__sizes { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; }
.portal-pagination a, .portal-pagination strong, .portal-pagination span { display: grid; place-items: center; min-width: 2rem; height: 2rem; padding: 0 .4rem; border: 1px solid transparent; border-radius: .55rem; color: var(--portal-muted); font-size: .75rem; font-weight: 700; line-height: 1; }
.portal-pagination a:hover { border-color: var(--portal-line); background: var(--portal-fill); color: var(--portal-ink); }
.portal-pagination strong, .portal-pagination__sizes a.is-active { border-color: rgba(0,121,225,.24); background: rgba(0,121,225,.09); color: var(--portal-blue); }
.portal-body--login { display: grid; min-height: 100dvh; place-items: center; padding: calc(1.5rem + env(safe-area-inset-top, 0px)) 1.25rem calc(1.5rem + env(safe-area-inset-bottom, 0px)); }
.portal-login { display: grid; width: min(100%, 27rem); gap: 1rem; }
.portal-login__brand { justify-items: center; text-align: center; }
.portal-login__card { display: grid; gap: 1rem; padding: 1.5rem; border: 1px solid var(--portal-line); border-radius: 1.25rem; background: var(--portal-surface); box-shadow: 0 1rem 3rem rgba(17,24,39,.10); text-align: center; }
.portal-login__icon { display: grid; place-items: center; justify-self: center; width: 3.25rem; height: 3.25rem; border-radius: 1rem; background: rgba(0,121,225,.1); color: var(--portal-blue); }
.portal-login__icon svg { width: 1.6rem; height: 1.6rem; }
.portal-login__card > .portal-eyebrow { color: var(--portal-muted); }
.portal-form { display: grid; gap: .875rem; text-align: left; }
.portal-form label { display: grid; gap: .35rem; color: var(--portal-ink); font-size: .8125rem; font-weight: 700; }
.portal-form input:not([type="checkbox"]):not([type="radio"]) { width: 100%; min-height: 2.75rem; padding: .625rem .75rem; border: 1px solid var(--portal-line); border-radius: .75rem; outline: none; background: var(--portal-fill); color: var(--portal-ink); font-weight: 600; }
.portal-form textarea { width: 100%; min-height: 8rem; padding: .625rem .75rem; border: 1px solid var(--portal-line); border-radius: .75rem; outline: none; resize: vertical; background: var(--portal-fill); color: var(--portal-ink); font-weight: 500; line-height: 1.45; }
.portal-form input:not([type="checkbox"]):not([type="radio"]):focus, .portal-form textarea:focus { border-color: var(--portal-blue); box-shadow: 0 0 0 .1875rem rgba(0,121,225,.12); }
.portal-form input[name="code"] { letter-spacing: .18em; font-size: 1.25rem; text-align: center; }
.portal-form .portal-button { width: 100%; }
.portal-alert { padding: .75rem; border: 1px solid transparent; border-radius: .75rem; font-size: .8125rem; line-height: 1.4; text-align: left; }
.portal-alert--ok { border-color: rgba(23,122,50,.25); background: rgba(23,122,50,.08); color: var(--portal-green); }
.portal-alert--error { border-color: rgba(217,45,32,.25); background: rgba(217,45,32,.08); color: #d92d20; }
.portal-login__hint { margin: 0; color: var(--portal-muted); font-size: .75rem; line-height: 1.4; text-align: center; }
@media (max-width: 54rem) { .portal-kpis, .portal-website-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); } .portal-grid, .portal-support-grid, .portal-account-grid { grid-template-columns: 1fr; } }
@media (max-width: 40rem) { .portal-container { width: min(100% - 1.25rem, 72rem); } .portal-app-header { min-height: calc(3.25rem + env(safe-area-inset-top, 0px)); padding-inline: .625rem; } .portal-shell { padding-top: calc(4.5rem + env(safe-area-inset-top, 0px)); } .portal-hero { padding: 1rem; } .portal-kpis, .portal-website-kpis { gap: .5rem; } .portal-website-kpis { grid-template-columns: 1fr; } .portal-kpi, .portal-card { padding: .875rem; } .portal-kpi { grid-template-columns: 2rem minmax(0,1fr); column-gap: .55rem; } .portal-kpi__icon { width: 2rem; height: 2rem; border-radius: .625rem; } .portal-kpi strong { font-size: 1rem; } .portal-kpi > span:last-child { font-size: .6875rem; } .portal-nav { bottom: calc(.75rem + env(safe-area-inset-bottom, 0px)); width: calc(100% - 1.25rem); } .portal-document-summary { gap: .5rem; } .portal-document-toolbar { display: grid; } .portal-document-filters--status { justify-content: flex-start; } .portal-document { grid-template-columns: minmax(0,1fr) auto auto; gap: .625rem; } .portal-document__amount { grid-column: 1 / 2; grid-row: 2; text-align: left; } .portal-document > .portal-status { grid-column: 2; grid-row: 1 / span 2; } .portal-document__actions { grid-column: 3; grid-row: 1 / span 2; } .portal-document__main small { white-space: normal; } .portal-login__card { padding: 1.25rem; } .portal-website-grid { grid-template-columns: 1fr; } .portal-timeline { gap: .13rem; min-height: 2.5rem; } .portal-analysis .admin-monitor-analysis__assessment, .portal-analysis .admin-monitor-analysis__insights, .portal-analysis .admin-monitor-analysis__findings, .portal-analysis .admin-monitor-analysis__customer-scores { grid-template-columns: 1fr; } .portal-analysis .admin-monitor-analysis__customer-score--visibility { grid-column: auto; } .portal-analysis .admin-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); } .portal-analysis .admin-table, .portal-analysis .admin-table tbody, .portal-analysis .admin-table tr, .portal-analysis .admin-table td { display: block; width: 100%; } .portal-analysis .admin-table tr { padding: .5rem 0; } .portal-analysis .admin-table td { padding: .15rem 0; border: 0; } }
@media (max-width: 54rem) { .portal-service-additions__grid, .portal-service-offer__packages, .portal-service-order__terms { grid-template-columns: 1fr; } }
@media (max-width: 40rem) { .portal-service-offer__status { align-items: flex-start; flex-direction: column; } .portal-service-offer__status em { align-self: flex-start; } }
@media (max-width: 54rem) { .portal-referral-grid { grid-template-columns: 1fr; } .portal-referral-summary { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 40rem) { .portal-referral-summary, .portal-referral-traffic { grid-template-columns: 1fr; } .portal-referral-link > div { grid-template-columns: 1fr; } .portal-referral-actions { display: grid; } .portal-referral-actions .portal-button { width: 100%; } .portal-referral-list article { grid-template-columns: 2rem minmax(0,1fr); } .portal-referral-list .portal-status { grid-column: 2; justify-self: start; } }
