/* Lotia admin details. Client pages and the original Bravon shell keep their styles. */
.portal-admin{--polish-green:#386b50;--polish-muted:#7a8980;--polish-line:#dce5df}
.portal-admin .admin-shell::before{background:radial-gradient(ellipse at 94% 4%,#e9e8f080,transparent 47%),radial-gradient(ellipse at 0% 50%,#e3ede780,transparent 55%),#f0f3ef}
.portal-admin .workspace{padding-bottom:32px}
.portal-admin .section-intro{margin-bottom:26px}
.portal-admin .section-intro h2{font-size:clamp(30px,3.1vw,44px);font-weight:500;letter-spacing:-.065em}
.portal-admin .section-intro .portal-section-copy{margin-top:12px;color:#64715e}
.portal-admin .panel{border-radius:28px;background:#ffffffb8}
.portal-admin .panel-head h3{font-size:20px;letter-spacing:-.045em;font-weight:500}
.portal-admin .portal-eyebrow{font-size:9px;letter-spacing:.12em;color:#64715e;line-height:1.5}
.portal-admin .portal-soft-tag{display:inline-flex;align-items:center;gap:6px;border-radius:99px;background:#ffffff8c;padding:7px 11px;font-size:10px;color:#65776a;white-space:nowrap}
.portal-admin .portal-soft-tag::before{content:'';width:5px;height:5px;border-radius:50%;background:#88aa7d}
.portal-admin .status-badge{display:inline-flex;align-items:center;gap:5px;font-size:9px;font-weight:400;white-space:nowrap}
.portal-admin .status-badge::before{content:'';width:5px;height:5px;flex:none;border-radius:50%;background:currentColor;opacity:.7}
.portal-admin .status-badge[data-status=pending]{background:#f1e7d9;color:#966c3d}
.portal-admin .status-badge[data-status=confirmed]{background:#e3eee1;color:#547647}
.portal-admin .status-badge[data-status=completed]{background:#e8e7f0;color:#746888}
.portal-admin .status-badge[data-status=cancelled]{background:#f1e3e4;color:#a0717b}
.portal-admin .recent-avatar{background:#e6ece0;color:#647458}
.portal-admin .recent-item:nth-child(3n+2) .recent-avatar,.portal-admin .portal-client-card:nth-child(3n+2) .recent-avatar{background:#f2e4d9;color:#937153}
.portal-admin .recent-item:nth-child(3n+3) .recent-avatar,.portal-admin .portal-client-card:nth-child(3n+3) .recent-avatar{background:#e6e6f0;color:#7b7996}

/* Dotted figures are real, accessible numbers, with no font or raster dependency. */
.portal-admin .portal-dot-number{display:inline-flex;color:inherit;line-height:1;vertical-align:middle}
.portal-admin .portal-dot-number-grid{height:48px;width:auto;display:block;overflow:visible}
.portal-admin .portal-dot-number circle{fill:currentColor;stroke:none}
.portal-admin .portal-dot-number .is-inactive{opacity:0}
.portal-admin .portal-dot-bars{display:block;width:100%;height:42px;fill:currentColor;stroke:none}
.portal-admin .portal-dot-bars .is-inactive{opacity:.13}
.portal-admin .portal-dot-bars .is-active{opacity:.88}
.portal-admin .portal-tick-scale{display:flex;align-items:end;justify-content:space-between;gap:4px;height:29px;color:#68826b}
.portal-admin .portal-tick-scale i{width:1px;flex:1;max-width:2px;height:10px;border-radius:3px;background:currentColor;opacity:.15}
.portal-admin .portal-tick-scale i:nth-child(5n+1){height:21px}
.portal-admin .portal-tick-scale i.is-active{opacity:.82;height:21px}

.portal-admin .portal-stat-grid{gap:12px;margin-bottom:18px}
.portal-admin .portal-stat-card{position:relative;isolation:isolate;overflow:hidden;min-width:0;min-height:212px;border-radius:28px;padding:21px 23px 17px;transition:transform .22s ease,box-shadow .22s ease;background:#fcfcf9;color:#2b4233}
.portal-admin .portal-stat-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #3d534a0b}
.portal-admin .portal-stat-card::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit}
.portal-admin .portal-stat-card[data-tone=mint]{background:#8ca982;color:#f9fff5}
.portal-admin .portal-stat-card[data-tone=mint]::before{background:radial-gradient(ellipse at 21% -5%,#ecddb3 3%,#cfd6a580 36%,transparent 65%),radial-gradient(ellipse at 87% 20%,#a4c595 0%,transparent 64%),radial-gradient(ellipse at 70% 110%,#2c6945 15%,#4b965a 55%,transparent 90%)}
/* Ink and a small frosted caption keep the lighter mint field readable. */
.portal-admin .portal-stat-card[data-tone=mint] .metric-heading,.portal-admin .portal-stat-card[data-tone=mint] .portal-stat-number{color:#203b28}
.portal-admin .portal-stat-card[data-tone=mint] .portal-stat-detail small{display:inline-flex;align-items:center;justify-content:center;max-width:100%;min-height:26px;padding:5px 11px;border-radius:99px;background:#f9fbeecc;color:#36573a;opacity:1;font-size:10px;line-height:1.3;text-align:center}
.portal-admin .portal-stat-card[data-tone=peach]{background:#eab086;color:#594135}
.portal-admin .portal-stat-card[data-tone=peach]::before{background:radial-gradient(ellipse at 0% 0%,#c4cfe0 0%,#dad9dc 22%,transparent 64%),radial-gradient(ellipse at 90% 95%,#e88e61 0%,transparent 70%),radial-gradient(ellipse at 85% 15%,#f4deac 0%,transparent 72%)}
.portal-admin .portal-stat-card[data-tone=lilac]::before{background:radial-gradient(ellipse at 95% 0%,#eee9f7a3,transparent 65%)}
.portal-admin .portal-stat-card[data-tone=paper]::before{background:radial-gradient(ellipse at 80% 100%,#f2ead89c,transparent 70%)}
.portal-admin .portal-stat-card .metric-heading{display:flex;align-items:center;gap:8px;width:100%;min-height:24px;margin-bottom:0;color:inherit;font-size:11px;font-weight:400}
.portal-admin .portal-stat-card .metric-icon{width:22px;height:22px;flex:0 0 22px;border-radius:0;background:none;color:inherit}
.portal-admin .portal-stat-card .metric-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.45}
.portal-admin .portal-stat-arrow{margin-left:auto;display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:#ffffff35;font-size:13px;line-height:1}
.portal-admin .portal-stat-number{margin-top:20px;min-height:49px}
.portal-admin .portal-stat-detail{margin-top:8px;min-height:28px}
.portal-admin .portal-stat-card .portal-stat-detail small{margin:0;color:inherit;font-size:10px;line-height:1.5;opacity:.82}
.portal-admin .portal-stat-art{margin-top:auto;padding-top:9px;width:100%;height:44px;opacity:.7}
.portal-admin .portal-stat-art .portal-dot-bars{height:34px;max-width:185px}
.portal-admin .portal-stat-art .portal-tick-scale{height:27px;color:inherit}
.portal-admin .portal-client-bubbles{display:flex;align-items:center;height:29px;padding-left:3px}
.portal-admin .portal-client-bubbles>span{display:grid;place-items:center;flex:none;width:clamp(18px,2.2vw,30px);height:clamp(18px,2.2vw,30px);margin-left:-3px;border:2px solid #fbfcfa;border-radius:50%;background:#d9e5d7;color:#587452;font-size:8px}
.portal-admin .portal-client-bubbles>[data-tone='1']{background:#f1dac5;color:#916f54}
.portal-admin .portal-client-bubbles>[data-tone='2']{background:#deddf0;color:#777593}
.portal-admin .portal-client-bubbles>[data-tone='3']{background:#dbe8e8;color:#628080}
.portal-admin .portal-client-bubbles .portal-bubble-more{background:#f0f2ed}
.portal-admin .portal-service-orbits{display:flex;gap:clamp(4px,.6vw,9px);align-items:center;height:28px}
.portal-admin .portal-service-orbits i{flex:none;width:clamp(14px,1.45vw,23px);height:clamp(14px,1.45vw,23px);border-radius:50%;background:radial-gradient(circle at 32% 27%,#eef9dd,#aaca83 48%,#6c8d57 85%);box-shadow:0 5px 8px -3px #788c6d40}
.portal-admin .portal-service-orbits i[data-tone='1']{background:radial-gradient(circle at 32% 27%,#fff0d2,#e5b87f 48%,#ad7d56 85%)}
.portal-admin .portal-service-orbits i[data-tone='2']{background:radial-gradient(circle at 32% 27%,#f2f2ff,#bfc9e8 48%,#869ab8 85%)}
.portal-admin .portal-service-orbits i[data-tone='3']{background:radial-gradient(circle at 32% 27%,#fff0f7,#d7b7c5 48%,#b7839e 85%)}
.portal-admin .portal-service-orbits i.is-paused{opacity:.25}

/* Colored daily dots lead to the existing details drawer. */
.portal-admin .portal-activity-ribbon{display:grid;grid-template-columns:150px minmax(0,1fr) 215px;align-items:center;gap:18px;background:#ffffff65;border-radius:25px;padding:14px 16px 14px 22px;margin-bottom:22px}
.portal-admin .portal-activity-heading{display:grid;gap:6px;font-size:10px;color:#64715e}
.portal-admin .portal-activity-days{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:5px;min-width:0}
.portal-admin .portal-activity-day{padding:6px 0 3px;display:flex;flex-direction:column;align-items:center;gap:7px;border:0;border-radius:12px;background:none;min-width:0;color:#64715e;transition:background .18s ease}
.portal-admin .portal-activity-day:hover,.portal-admin .portal-activity-day:focus-visible{background:#e7eee3}
.portal-admin .portal-activity-day.is-today{background:#fdfefa;color:#3d6649}
.portal-admin .portal-activity-day small{font-size:8px;font-weight:400}
.portal-admin .portal-day-dots{display:flex;flex-direction:column;gap:4px}
.portal-admin .portal-day-dots i{width:4px;height:4px;border-radius:50%;background:#dce3da}
.portal-admin .portal-day-dots i[data-status=completed]{background:#9abd8b}
.portal-admin .portal-day-dots i[data-status=confirmed]{background:#a5b9db}
.portal-admin .portal-day-dots i[data-status=pending]{background:#e6b184}
.portal-admin .portal-day-dots i[data-status=checkedIn]{background:#8cbdba}
.portal-admin .portal-day-dots i[data-status=cancelled],.portal-admin .portal-day-dots i[data-status=noShow]{background:#d6aabd}
.portal-admin .portal-activity-summary{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid #ffffffb0;border-radius:99px;min-height:63px;padding:12px 15px;background:linear-gradient(130deg,#fff9,#fdfdfda6);box-shadow:0 4px 16px #364b3304;color:#425e47;backdrop-filter:blur(10px)}
.portal-admin .portal-activity-summary strong{display:block;font-size:11px;font-weight:500;line-height:1.5}
.portal-admin .portal-activity-summary small{display:block;font-size:9px;color:#64715e;line-height:1.5}
.portal-admin .portal-summary-arrow{margin-left:auto;font-size:14px}
.portal-admin .portal-signal{width:8px;height:8px;flex:none;border-radius:50%;background:#c2da72;box-shadow:0 0 0 5px #c2da7219}

.portal-admin .portal-schedule-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,1fr);gap:14px;margin-bottom:16px;align-items:stretch}
.portal-admin .portal-schedule-grid .today-panel{margin-bottom:0;padding:24px;min-width:0}
.portal-admin .portal-schedule-grid .today-header{gap:14px}
.portal-admin .portal-schedule-grid .today-caption{font-size:10px}
.portal-admin .portal-schedule-grid .today-title{font-size:21px}
.portal-admin .portal-schedule-grid .today-symbol{height:33px;width:33px;flex-basis:33px}
.portal-admin .portal-schedule-grid .portal-appointment-row{grid-template-columns:49px minmax(0,1fr) 82px 18px;gap:11px;padding:12px 4px}
.portal-admin .portal-schedule-grid .portal-appointment-row>.portal-provider{display:none}
.portal-admin .portal-next-visit{display:flex;flex-direction:column;padding:24px;min-width:0;background:radial-gradient(ellipse at 100% 10%,#e2e8f48f,transparent 65%),#ffffffb8}
.portal-admin .portal-next-header,.portal-admin .portal-next-footer{display:flex;justify-content:space-between;align-items:center;gap:12px}
.portal-admin .portal-next-visual{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:25px 0 20px;min-height:80px}
.portal-admin .portal-next-time{display:block;font:400 clamp(35px,3.5vw,48px)/1 Inter,sans-serif;letter-spacing:-.055em;color:#405b44;font-variant-numeric:tabular-nums}
.portal-admin .portal-next-visual small{display:block;font-size:11px;color:#64715e;margin-top:10px}
.portal-admin .portal-portrait-halo{position:relative;isolation:isolate;display:grid;place-items:center;flex:0 0 86px;width:86px;height:86px;border-radius:50%;background:radial-gradient(circle,#eaf0e39c 53%,#f7faf500 54%);border:1px solid #d9e2d87a}
.portal-admin .portal-portrait-halo::before{content:'';position:absolute;inset:7px;border:1px solid #d9e2d8a6;border-radius:50%}
.portal-admin .portal-portrait-halo::after{content:'';position:absolute;top:10px;right:10px;width:5px;height:5px;border-radius:50%;background:#a7c07c;box-shadow:0 0 0 4px #f8fbf6}
.portal-admin .portal-portrait-halo img{width:60px;height:60px;object-fit:cover;border-radius:50%;filter:saturate(.7)}
.portal-admin .portal-next-visit h3{font:500 22px/1.15 Sora,sans-serif;letter-spacing:-.05em;margin:0 0 8px}
.portal-admin .portal-next-client{font-size:10px;line-height:1.6;color:#64715e;margin:0 0 20px}
.portal-admin .portal-next-footer{margin-top:auto;padding-top:14px;border-top:1px solid #dbe5dc70}
.portal-admin .portal-next-footer .quiet-button{font-size:10px;padding:0;white-space:nowrap}
.portal-admin .overview-grid{gap:14px}
.portal-admin .chart-panel{background:radial-gradient(ellipse at 20% 100%,#dce9d6a6,transparent 70%),#fbfcf9;color:#38583f}
.portal-admin .portal-line-chart line{stroke:#a6b79e4d;stroke-dasharray:1 7;stroke-linecap:round}
.portal-admin .portal-line-chart path{stroke:#73a16d;stroke-width:2}
.portal-admin .portal-line-chart circle{fill:#f9fcf5;stroke:#77a66e;stroke-width:1.4}
.portal-admin .portal-line-labels{color:#64715e;font-size:9px}

/* Bravon-style point inspection, with Lotia's daily counts and mint accents. */
.portal-admin .portal-line-chart{height:240px}
.portal-admin .portal-trend-plot{position:relative;flex:1;min-height:0;cursor:crosshair;--chart-x:50%;--trend-tip-width:222px}
.portal-admin .portal-trend-plot:focus-visible{outline:2px solid #91ad89;outline-offset:6px;border-radius:8px}
.portal-admin .portal-trend-plot>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.portal-admin .portal-line-chart .portal-trend-area{fill:#7eab7014;stroke:none}
.portal-admin .portal-line-chart .portal-trend-line{stroke:#73a16d;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.portal-admin .portal-trend-dot{position:absolute;z-index:2;width:7px;height:7px;border:1.5px solid #77a66e;background:#f9fcf5;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;transition:background .18s ease,box-shadow .18s ease}
.portal-admin .portal-trend-dot[data-active=true]{background:#59864f;border-color:#f9fcf5;box-shadow:0 0 0 3px #79a56b,0 0 0 8px #8eb98024}
.portal-admin .portal-trend-cursor{position:absolute;z-index:1;top:12px;bottom:16.66%;left:var(--chart-x);border-left:1px dashed #648b5766;pointer-events:none}
.portal-admin .portal-trend-tooltip{position:absolute;z-index:4;top:6px;left:clamp(8px,calc(var(--chart-x) - var(--trend-tip-width)/2),calc(100% - var(--trend-tip-width) - 8px));width:var(--trend-tip-width);max-width:calc(100% - 16px);padding:13px 15px;border:1px solid #ffffff14;border-radius:17px;background:#2e4637f5;color:#f8fcf5;box-shadow:0 9px 26px #23352520;pointer-events:none}
.portal-admin .portal-trend-tooltip[hidden],.portal-admin .portal-trend-cursor[hidden]{display:none}
.portal-admin .portal-trend-date{display:block;margin-bottom:10px;font-size:11px;font-weight:400;color:#d7e3d2}
.portal-admin .portal-trend-total{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:9px;margin-bottom:8px;border-bottom:1px solid #ffffff1a;font-size:11px}
.portal-admin .portal-trend-total b{font-size:19px;font-weight:500;color:#d9eaba;font-variant-numeric:tabular-nums;line-height:1}
.portal-admin .portal-trend-breakdown{display:grid;gap:5px}
.portal-admin .portal-trend-status{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;line-height:1.3}
.portal-admin .portal-trend-status>span{display:flex;align-items:center;gap:6px;color:#d7e3d2}
.portal-admin .portal-trend-status>span::before{content:'';height:4px;width:4px;flex:none;border-radius:50%;background:#a5b9db}
.portal-admin .portal-trend-status[data-status=pending]>span::before{background:#e6b184}
.portal-admin .portal-trend-status[data-status=completed]>span::before{background:#a9ca92}
.portal-admin .portal-trend-status[data-status=checked-in]>span::before{background:#8cbdba}
.portal-admin .portal-trend-status[data-status=cancelled]>span::before,.portal-admin .portal-trend-status[data-status=no-show]>span::before{background:#d6aabd}
.portal-admin .portal-trend-status b{font-weight:500;font-variant-numeric:tabular-nums}
.portal-admin .portal-trend-note{display:block;margin-top:9px;color:#bdceba;font-size:9px;line-height:1.4}
.portal-admin .portal-trend-empty{font-size:10px;color:#d7e3d2}
.portal-admin .portal-trend-instructions{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.portal-admin .portal-trend-plot[data-reveal=pending] .portal-trend-drawing{clip-path:inset(0 100% 0 0)}
.portal-admin .portal-trend-plot[data-reveal=pending] .portal-trend-dot{opacity:0}
.portal-admin .portal-trend-plot[data-reveal=visible] .portal-trend-drawing{animation:lotia-trend-reveal 1.25s cubic-bezier(.2,.65,.2,1) backwards}
.portal-admin .portal-trend-plot[data-reveal=visible] .portal-trend-dot{animation:lotia-trend-point .42s ease-out var(--point-delay,0ms) both}
@keyframes lotia-trend-reveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(-2% -1% -2% -1%)}}
@keyframes lotia-trend-point{from{opacity:0;transform:translate(-50%,-50%) scale(.4)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@media(max-width:720px){.portal-admin .portal-line-chart{height:245px}.portal-admin .portal-trend-plot{--trend-tip-width:208px}.portal-admin .portal-line-labels{font-size:8px;gap:8px}}
@media(prefers-reduced-motion:reduce){.portal-admin .portal-trend-plot[data-reveal] .portal-trend-drawing{animation:none;clip-path:none}.portal-admin .portal-trend-plot[data-reveal] .portal-trend-dot{animation:none;opacity:1;transition:none}}
.portal-admin .recent-item{border-bottom-color:#e4ebe36b}

/* Analytics pairs dotted volume with a quiet, segmented status ring. */
.portal-admin .portal-period-switch{display:flex;align-items:center;gap:3px;padding:4px;background:#e5eae299;border-radius:99px;flex:none}
.portal-admin .portal-period-switch button{border:0;background:none;color:#64715e;min-height:34px;min-width:64px;border-radius:99px;padding:0 13px;font-size:10px}
.portal-admin .portal-period-switch button[aria-pressed=true]{background:#fdfefa;color:#38593b;box-shadow:0 2px 9px #43583a07}
.portal-admin .portal-period-switch button:hover{color:#38593b}
.portal-admin .portal-analytics-main{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,1fr);gap:14px;margin-bottom:14px}
.portal-admin .portal-volume-card,.portal-admin .portal-completion-card{padding:26px;min-width:0}
.portal-admin .portal-chart-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;font-size:10px;color:#64715e}
.portal-admin .portal-volume-chart{display:flex;align-items:center;min-height:218px;margin-top:10px;padding:25px 10px 20px;color:#85a675;background:radial-gradient(ellipse at 50% 100%,#eaf1df80,transparent 75%);border-radius:20px}
.portal-admin .portal-volume-chart .portal-dot-bars{width:100%;height:130px}
.portal-admin .portal-volume-chart .portal-dot-bars .is-inactive{opacity:.12}
.portal-admin .portal-chart-legend{display:flex;justify-content:space-between;gap:10px;font-size:9px;color:#64715e;line-height:1.5}
.portal-admin .portal-chart-legend>span:nth-child(2){color:#64715e}
.portal-admin .portal-ring-wrap{position:relative;display:grid;place-items:center;width:162px;height:162px;margin:17px auto 10px}
.portal-admin .portal-ring-wrap::before{content:'';position:absolute;inset:20px;border-radius:50%;border:1px dashed #d8e1d5}
.portal-admin .portal-ring-chart{position:absolute;inset:0;width:100%;height:100%;transform:rotate(0deg)}
.portal-admin .portal-ring-label{display:flex;align-items:center;flex-direction:column;gap:8px;color:#526f4a}
.portal-admin .portal-ring-label .portal-dot-number-grid{height:30px}
.portal-admin .portal-ring-label small{font-size:9px;color:#64715e}
.portal-admin .portal-status-key{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px}
.portal-admin .portal-status-key>span{display:flex;align-items:center;gap:7px;font-size:9px;color:#64715e}
.portal-admin .portal-status-key i{width:5px;height:5px;border-radius:50%;flex:none}
.portal-admin .portal-status-key strong{margin-left:auto;font-size:10px;font-weight:400;color:#5c7453}
.portal-admin .portal-mini-note{font-size:9px;color:#64715e;margin:18px 0 0;line-height:1.6}
.portal-admin .portal-insight-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.portal-admin .portal-treatment-insights,.portal-admin .portal-specialist-insights{padding:26px;min-width:0}
.portal-admin .portal-treatment-list,.portal-admin .portal-specialist-list{display:grid;gap:2px;margin-top:22px}
.portal-admin .portal-treatment-row,.portal-admin .portal-specialist-row{display:flex;align-items:center;gap:13px;width:100%;min-width:0;padding:10px 4px;border:0;border-radius:15px;background:none;text-align:left;color:#4e6649;transition:background .2s ease}
.portal-admin .portal-treatment-row:hover,.portal-admin .portal-specialist-row:hover{background:#eff4eb}
.portal-admin .portal-treatment-orb{display:block;flex:0 0 43px;width:43px;height:43px;border-radius:16px;background:#eff2e9;position:relative}
.portal-admin .portal-treatment-orb::before{content:'';position:absolute;inset:10px;border-radius:50%;background:radial-gradient(circle at 34% 25%,#f4ffdf,#abc886 45%,#678e4e);box-shadow:2px 5px 7px -2px #79985250;transform:rotate(-16deg);transition:transform .3s ease}
.portal-admin .portal-treatment-row:hover .portal-treatment-orb::before{transform:translateY(-2px) rotate(14deg)}
.portal-admin .portal-treatment-orb[data-tone='1']{background:#f5eee6}
.portal-admin .portal-treatment-orb[data-tone='1']::before{background:radial-gradient(circle at 34% 25%,#fff4dd,#eec18d 45%,#b48157);box-shadow:2px 5px 7px -2px #b5805450}
.portal-admin .portal-treatment-orb[data-tone='2']{background:#eceff6}
.portal-admin .portal-treatment-orb[data-tone='2']::before{background:radial-gradient(circle at 34% 25%,#f6faff,#b9cce8 45%,#7c9abe);box-shadow:2px 5px 7px -2px #759abe50}
.portal-admin .portal-treatment-orb[data-tone='3']{background:#f3eaee}
.portal-admin .portal-treatment-orb[data-tone='3']::before{background:radial-gradient(circle at 34% 25%,#fff4fb,#dec1d0 45%,#b38ca7);box-shadow:2px 5px 7px -2px #b38ca750}
.portal-admin .portal-treatment-copy,.portal-admin .portal-specialist-copy{display:grid;gap:5px;flex:1;min-width:0}
.portal-admin .portal-treatment-copy strong,.portal-admin .portal-specialist-copy strong{font-size:11px;font-weight:400;line-height:1.4}
.portal-admin .portal-treatment-copy small,.portal-admin .portal-specialist-copy small{font-size:9px;color:#64715e;line-height:1.3}
.portal-admin .portal-treatment-count .portal-dot-number-grid{height:24px}
.portal-admin .portal-treatment-row .portal-row-arrow{font-size:13px;margin-left:8px;color:#64715e}
.portal-admin .portal-specialist-row{min-height:62px}
.portal-admin .portal-specialist-row>img{width:33px;height:33px;flex:none;object-fit:cover;border-radius:50%;filter:saturate(.65)}
.portal-admin .portal-specialist-ticks{width:72px;flex:none;height:23px;gap:2px;color:#98b67e}
.portal-admin .portal-specialist-ticks i{width:1px;max-width:1px;height:7px}
.portal-admin .portal-specialist-ticks i.is-active,.portal-admin .portal-specialist-ticks i:nth-child(5n+1){height:16px}
.portal-admin .portal-specialist-count{font-size:12px;width:17px;text-align:right;color:#74866b;font-variant-numeric:tabular-nums}

/* The supporting sections share the same small material and status details. */
.portal-admin .portal-service-card,.portal-admin .portal-client-card,.portal-admin .portal-team-card{border-radius:26px;background:#ffffffb8;transition:transform .2s ease,background .2s ease}
.portal-admin .portal-service-card:hover,.portal-admin .portal-client-card:hover{background:#fcfdf9;transform:translateY(-2px)}
.portal-admin .portal-service-card{position:relative;isolation:isolate;overflow:hidden}
.portal-admin .portal-service-card::after{content:'';position:absolute;z-index:-1;right:-12px;top:-24px;width:95px;height:95px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#eff7df,#c9deb688 45%,transparent 70%);opacity:.7}
.portal-admin .portal-service-card:nth-child(3n+2)::after{background:radial-gradient(circle at 35% 30%,#fff0dd,#edcbad88 45%,transparent 70%)}
.portal-admin .portal-service-card:nth-child(3n+3)::after{background:radial-gradient(circle at 35% 30%,#eef3ff,#becce088 45%,transparent 70%)}
.portal-admin .portal-service-card .service-number{font-variant-numeric:tabular-nums;color:#9cac8a}
.portal-admin .portal-calendar .calendar-day{transition:background .18s ease}
.portal-admin .portal-calendar .calendar-arrows{align-items:center;gap:6px}
.portal-admin .portal-calendar .calendar-arrows button{display:grid;place-items:center;flex:none;width:40px;height:40px;padding:0;line-height:1}
.portal-admin .portal-calendar .calendar-arrows svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.portal-admin .portal-calendar .calendar-today{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 8px;line-height:1}
.portal-admin .portal-calendar .calendar-weekdays,.portal-admin .portal-calendar .calendar-grid{gap:6px}
.portal-admin .portal-calendar .calendar-day{justify-content:flex-start;padding:14px 12px;gap:12px}
.portal-admin .portal-calendar .portal-calendar-day-number{display:flex;align-items:center;min-height:20px;line-height:1}
.portal-admin .portal-calendar .portal-calendar-day-count{margin-top:0;min-height:14px;line-height:1.25;white-space:nowrap}
.portal-admin .portal-calendar .calendar-day-panel>h3{margin:12px 0 18px;font-size:21px;font-weight:400;letter-spacing:-.045em;line-height:1.25}
.portal-admin .portal-calendar .portal-calendar-day-count{display:flex;align-items:center;gap:5px}
.portal-admin .portal-calendar .portal-calendar-day-count::before{content:'';width:4px;height:4px;flex:none;border-radius:50%;background:currentColor;opacity:.6}
@media(max-width:720px){
 .portal-admin .portal-calendar .calendar-period-controls{column-gap:10px;row-gap:12px}
 .portal-admin .portal-calendar .calendar-period-controls>h3{flex:1 0 100%}
 .portal-admin .portal-calendar .calendar-arrows button,.portal-admin .portal-calendar .calendar-today{min-height:44px;height:44px}
 .portal-admin .portal-calendar .calendar-arrows button{width:44px}
 .portal-admin .portal-calendar .calendar-weekdays,.portal-admin .portal-calendar .calendar-grid{gap:4px}
 .portal-admin .portal-calendar .calendar-day{align-items:center;min-height:70px;padding:10px 2px;gap:8px}
 .portal-admin .portal-calendar .portal-calendar-day-count{justify-content:center;gap:3px;font-size:8px}
 .portal-admin .portal-calendar .portal-calendar-day-count::before{width:3px;height:3px}
}

@media(max-width:1100px){
 .portal-admin .portal-stat-card{padding:20px;min-height:207px}
 .portal-admin .portal-stat-card .metric-heading{font-size:10px;gap:6px}
 .portal-admin .portal-activity-ribbon{grid-template-columns:minmax(0,1fr) 215px;gap:8px 18px}
 .portal-admin .portal-activity-heading{display:flex;grid-column:1/-1;justify-content:space-between}
 .portal-admin .portal-schedule-grid{grid-template-columns:minmax(0,1.3fr) minmax(265px,1fr)}
 .portal-admin .portal-schedule-grid .today-header{align-items:flex-start;flex-direction:column}
 .portal-admin .portal-schedule-grid .today-tabs{width:100%}
 .portal-admin .portal-schedule-grid .today-tabs button{flex:1}
 .portal-admin .portal-specialist-ticks{width:45px}
 .portal-admin .portal-analytics-main{grid-template-columns:minmax(0,1.15fr) minmax(290px,1fr)}
}
@media(max-width:900px){
 .portal-admin .portal-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .portal-admin .portal-stat-card{min-height:203px}
 .portal-admin .portal-schedule-grid,.portal-admin .portal-analytics-main{grid-template-columns:minmax(0,1fr)}
 .portal-admin .portal-next-visit{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}
 .portal-admin .portal-next-header{grid-column:1/-1}
 .portal-admin .portal-next-visual{grid-column:2;grid-row:2/5;margin:20px 0}
 .portal-admin .portal-next-visit h3{grid-column:1;margin-top:26px}
 .portal-admin .portal-next-client{grid-column:1}
 .portal-admin .portal-next-footer{grid-column:1/-1}
 .portal-admin .portal-insight-grid{grid-template-columns:minmax(0,1fr)}
 .portal-admin .portal-completion-card{display:grid;grid-template-columns:185px minmax(0,1fr);gap:0 22px}
 .portal-admin .portal-completion-card .panel-head{grid-column:1/-1}
 .portal-admin .portal-status-key{align-content:center}
 .portal-admin .portal-completion-card .portal-mini-note{grid-column:1/-1;margin-top:0}
 .portal-admin .portal-specialist-ticks{width:110px}
}
@media(max-width:720px){
 .portal-admin .portal-stat-grid{gap:10px;margin-bottom:12px}
 .portal-admin .portal-stat-card{padding:19px;min-height:195px;border-radius:25px}
 .portal-admin .portal-stat-card .metric-heading{font-size:10px;gap:5px}
 .portal-admin .portal-stat-card .metric-icon{width:18px;height:18px;flex-basis:18px}
 .portal-admin .portal-stat-card .metric-icon svg{width:16px;height:16px}
 .portal-admin .portal-stat-arrow{width:20px;height:20px;flex-basis:20px;font-size:11px}
 .portal-admin .portal-stat-number{margin-top:19px;min-height:42px}
 .portal-admin .portal-dot-number-grid{height:42px}
 .portal-admin .portal-stat-card .portal-stat-detail small{font-size:9px}
 .portal-admin .portal-client-bubbles>span{width:23px;height:23px;font-size:6px}
 .portal-admin .portal-service-orbits{gap:5px}
 .portal-admin .portal-service-orbits i{width:17px;height:17px}
 .portal-admin .portal-activity-ribbon{padding:16px;border-radius:23px;grid-template-columns:1fr;gap:13px;margin-bottom:14px}
 .portal-admin .portal-activity-heading{gap:10px;font-size:9px}
 .portal-admin .portal-activity-heading .portal-eyebrow{font-size:8px;letter-spacing:.08em}
 .portal-admin .portal-activity-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
 .portal-admin .portal-activity-summary{justify-self:center;min-height:50px;padding:9px 18px;gap:14px}
 .portal-admin .portal-activity-summary strong{font-size:10px}
 .portal-admin .portal-schedule-grid .today-panel{padding:22px}
 .portal-admin .portal-schedule-grid .portal-appointment-row{grid-template-columns:44px minmax(0,1fr) 18px;gap:8px}
 .portal-admin .portal-next-visit{padding:22px;column-gap:12px}
 .portal-admin .portal-next-visual{gap:10px}
 .portal-admin .portal-next-visit h3{font-size:18px}
 .portal-admin .portal-next-time{font-size:32px}
 .portal-admin .portal-portrait-halo{width:64px;height:64px;flex-basis:64px}
 .portal-admin .portal-portrait-halo img{width:46px;height:46px}
 .portal-admin .portal-next-client{font-size:9px}
 .portal-admin .portal-next-footer .quiet-button{font-size:9px}
 .portal-admin .portal-analytics-main,.portal-admin .portal-insight-grid{gap:12px}
 .portal-admin .portal-volume-card,.portal-admin .portal-completion-card,.portal-admin .portal-treatment-insights,.portal-admin .portal-specialist-insights{padding:22px}
 .portal-admin .portal-volume-chart{min-height:170px;padding:20px 0}
 .portal-admin .portal-volume-chart .portal-dot-bars{height:105px}
 .portal-admin .portal-completion-card{grid-template-columns:120px minmax(0,1fr);gap:12px}
 .portal-admin .portal-ring-wrap{width:118px;height:118px;margin:0}
 .portal-admin .portal-ring-label .portal-dot-number-grid{height:24px}
 .portal-admin .portal-ring-wrap::before{inset:16px}
 .portal-admin .portal-status-key{grid-template-columns:1fr;gap:9px}
 .portal-admin .portal-completion-card .portal-mini-note{margin-top:4px}
 .portal-admin .portal-specialist-ticks{width:65px}
 .portal-admin .portal-treatment-row,.portal-admin .portal-specialist-row{gap:10px}
 .portal-admin .portal-chart-legend{font-size:8px}
 .portal-admin .portal-chart-caption{font-size:9px}
 .portal-admin .portal-period-switch{padding:3px}
}
@media(max-width:360px){
 .portal-admin .portal-stat-card{padding:16px 14px;min-height:184px}
 .portal-admin .portal-stat-card .metric-heading{font-size:9px;gap:4px}
 .portal-admin .portal-stat-arrow{display:none}
 .portal-admin .portal-stat-card .portal-dot-number-grid{height:37px}
 .portal-admin .portal-stat-number{margin-top:16px;min-height:37px}
 .portal-admin .portal-client-bubbles>span{width:21px;height:21px}
 .portal-admin .portal-service-orbits{gap:3px}
 .portal-admin .portal-service-orbits i{width:13px;height:13px}
 .portal-admin .portal-next-visit{display:block}
 .portal-admin .portal-next-visual{margin:22px 0 16px}
 .portal-admin .portal-next-visit h3{margin-top:0}
 .portal-admin .portal-specialist-ticks{width:44px}
 .portal-admin .portal-treatment-copy strong,.portal-admin .portal-specialist-copy strong{font-size:10px}
 .portal-admin .portal-treatment-copy small,.portal-admin .portal-specialist-copy small{font-size:8px}
}
@media(prefers-reduced-motion:reduce){
 .portal-admin .portal-stat-card,.portal-admin .portal-service-card,.portal-admin .portal-client-card,.portal-admin .portal-treatment-orb::before{transform:none!important;transition:none!important}
}
