/* Official Home presentation based on the approved Follow-up Dashboard canvas. */
.home-dashboard-page{--fu-ink:var(--ui-text,#17313a);--fu-muted:var(--ui-text-secondary,#61757e);--fu-line:color-mix(in srgb,var(--blue,#1687a0) 15%,#dfe9ec);--fu-soft:color-mix(in srgb,var(--blue,#1687a0) 4%,#fff);--fu-tint:color-mix(in srgb,var(--blue,#1687a0) 8%,#fff);--fu-danger:#d92d3a;--fu-danger-soft:#fff5f5;--fu-success:#11815b;--fu-success-soft:#ecf8f3;--fu-warn:#bd6b20;--fu-warn-soft:#fff6eb;max-width:1740px;margin:0 auto;padding:18px 20px 28px;color:var(--fu-ink);font-family:var(--ui-font-family,Cairo,Tajawal,Arial,sans-serif)}
.home-dashboard-page *{box-sizing:border-box}.home-dashboard-page button,.home-dashboard-page input{font:inherit}.home-dashboard-page button:focus-visible,.home-dashboard-page input:focus-visible{outline:3px solid color-mix(in srgb,var(--blue,#1687a0) 26%,transparent);outline-offset:2px}
.followup-vnext-utility{display:grid;grid-template-columns:auto minmax(330px,1fr) auto;align-items:center;gap:18px;margin-bottom:12px}.followup-vnext-title{min-width:180px}.followup-vnext-title small{display:block;color:var(--fu-muted);font-size:var(--ui-font-xs);font-weight:700;margin-bottom:2px}.followup-vnext-title h2{margin:0;color:var(--fu-ink);font-size:clamp(21px,1.55vw,29px);line-height:1.25;font-weight:900}.followup-vnext-search{max-width:660px;width:100%;justify-self:center;position:relative}.followup-vnext-search svg{position:absolute;right:15px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:#76909a;pointer-events:none}.followup-vnext-search input{width:100%;height:46px;padding:0 45px 0 15px;border:1px solid var(--fu-line);border-radius:12px;background:#fff;color:var(--fu-ink);box-shadow:0 5px 16px rgba(30,70,84,.04)}.followup-vnext-search input::placeholder{color:#8ca0a8}.followup-vnext-actions{display:flex;align-items:center;gap:9px}.followup-vnext-action{height:46px;min-width:154px;border-radius:10px;border:1px solid var(--blue,#1687a0);display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 17px;font-weight:850;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.followup-vnext-action svg{width:18px;height:18px}.followup-vnext-action.primary{color:#fff;background:linear-gradient(135deg,var(--blue,#1687a0),var(--blue-dark,#0f596b));box-shadow:0 8px 18px color-mix(in srgb,var(--blue,#1687a0) 18%,transparent)}.followup-vnext-action.secondary{color:var(--blue-dark,#0f596b);background:#fff}.followup-vnext-action:hover{transform:translateY(-1px)}
.followup-vnext-alerts{display:grid;grid-template-columns:repeat(6,minmax(145px,1fr));gap:10px;margin-bottom:14px;padding:10px;border:1px solid var(--fu-line);border-radius:14px;background:#fff;box-shadow:0 7px 20px rgba(28,66,78,.04)}.followup-vnext-alert{position:relative;min-width:0;min-height:53px;border:1px solid #f7d8da;border-radius:10px;background:var(--fu-danger-soft);display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:7px 10px;color:var(--fu-ink);cursor:pointer;text-align:right}.followup-vnext-alert:hover{border-color:#efb8bd;background:#fff0f1}.followup-vnext-alert-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--fu-danger);background:#fff}.followup-vnext-alert-icon svg{width:17px;height:17px}.followup-vnext-alert-copy{min-width:0}.followup-vnext-alert-copy b{display:-webkit-box;font-size:var(--ui-font-xs);line-height:1.6;white-space:normal;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.followup-vnext-alert[data-tooltip]:after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 7px);z-index:70;width:max-content;max-width:min(280px,calc(100vw - 32px));padding:7px 10px;border:1px solid color-mix(in srgb,var(--blue,#1687a0) 18%,var(--fu-line));border-radius:8px;background:var(--fu-ink);color:#fff;font-size:var(--ui-font-xs);line-height:1.45;text-align:right;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,4px);transition:opacity .12s ease,transform .12s ease,visibility .12s ease;box-shadow:0 8px 20px rgba(18,53,63,.18)}.followup-vnext-alert[data-tooltip]:hover:after,.followup-vnext-alert[data-tooltip]:focus-visible:after{opacity:1;visibility:visible;transform:translate(-50%,0)}.followup-vnext-alert-count{font-size:18px;font-weight:900;color:var(--fu-danger);font-variant-numeric:tabular-nums}.followup-vnext-alert-caret{color:#b5c1c5;font-size:17px}
.followup-vnext-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px}.followup-vnext-section-head h3{margin:0;font-size:18px;font-weight:900;color:var(--fu-ink)}.followup-vnext-section-head small{color:var(--fu-muted);font-size:var(--ui-font-xs)}.followup-vnext-section-link{border:0;background:transparent;color:var(--blue-dark,#0f596b);font-weight:800;font-size:var(--ui-font-xs);cursor:pointer;padding:5px 0}
.followup-vnext-operations{display:grid;grid-template-columns:minmax(0,1fr) 282px;gap:12px;margin-bottom:10px}.followup-vnext-main-column{min-width:0;display:flex;flex-direction:column;gap:12px}.followup-vnext-board,.followup-vnext-side-panel,.followup-vnext-metric-strip,.followup-vnext-chart-panel,.followup-vnext-profit-panel{border:1px solid var(--fu-line);border-radius:14px;background:#fff;box-shadow:0 7px 22px rgba(28,66,78,.04)}.followup-vnext-board{min-width:0;padding:12px 13px 9px;display:flex;flex-direction:column}.followup-vnext-bookings{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;flex:1}.followup-vnext-booking{min-width:0;min-height:126px;border:1px solid #dae7ea;border-radius:11px;background:linear-gradient(180deg,#fff,var(--fu-soft));padding:11px;display:flex;flex-direction:column;gap:5px;cursor:pointer;text-align:right;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.followup-vnext-booking:hover{border-color:color-mix(in srgb,var(--blue,#1687a0) 35%,#dce8eb);box-shadow:0 8px 17px rgba(25,87,103,.08);transform:translateY(-1px)}.followup-vnext-booking header{display:flex;align-items:center;justify-content:space-between;gap:8px}.followup-vnext-booking header b{font-size:var(--ui-font-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.followup-vnext-status{flex:0 0 auto;border-radius:999px;padding:3px 7px;font-size:var(--ui-font-xs);font-weight:850}.followup-vnext-status.current{color:#08728a;background:#e7f6f9}.followup-vnext-status.soon{color:var(--fu-warn);background:var(--fu-warn-soft)}.followup-vnext-booking p{margin:0;color:#4f6872;font-size:var(--ui-font-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.followup-vnext-booking-meta{display:flex;align-items:center;gap:8px;color:var(--fu-muted);font-size:var(--ui-font-xs)}.followup-vnext-booking-ref{margin-top:auto;display:flex;align-items:center;justify-content:space-between;color:#617881;font-size:var(--ui-font-xs);direction:ltr}.followup-vnext-booking-ref svg{width:13px;height:13px;direction:rtl}.followup-vnext-board-footer{margin-top:9px;padding-top:7px;border-top:1px solid var(--fu-line);text-align:center}.followup-vnext-board-footer button{border:0;background:transparent;color:var(--blue-dark,#0f596b);font-size:var(--ui-font-xs);font-weight:850;cursor:pointer}
.followup-vnext-ops-side{display:grid;grid-template-rows:auto auto;gap:12px;min-width:0;align-items:start}.followup-vnext-side-panel{min-height:0;display:flex;flex-direction:column;overflow:hidden}.followup-vnext-side-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 7px;border-bottom:1px solid var(--fu-line)}.followup-vnext-side-head h4{margin:0;font-size:var(--ui-font-sm);font-weight:900}.followup-vnext-side-head span{font-size:var(--ui-font-xs);color:var(--blue-dark,#0f596b);font-weight:850}.followup-vnext-dense-list{display:grid}.followup-vnext-dense-row{min-width:0;display:grid;grid-template-columns:27px minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px 10px;border-bottom:1px solid #edf3f5;background:#fff}.followup-vnext-dense-row:last-child{border-bottom:0}.followup-vnext-dense-icon{width:25px;height:25px;border-radius:7px;display:grid;place-items:center;color:var(--blue-dark,#0f596b);background:var(--fu-tint)}.followup-vnext-dense-icon svg{width:14px;height:14px}.followup-vnext-dense-copy{min-width:0}.followup-vnext-dense-copy b{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:var(--ui-font-xs);white-space:normal;overflow-wrap:anywhere;overflow:hidden}/* P1R.8 — A CUSTOMER NAME AND A DESTINATION ARE PRIMARY TEXT. They were single-line with an
   ellipsis, so the answer to "who and where" was the first thing to disappear as the block
   narrowed, with a tooltip as the only way back — and a tooltip is not a substitute for a label.
   Two lines, wrapped, is the contract now. The line-heights below are not cosmetic either: at
   1.2 the line box does not contain Arabic descenders, and `overflow:hidden` was cutting the
   tails off ج/ع/ة — 3-4px of every row, which reads as a font defect rather than a CSS one. */
.followup-vnext-dense-copy small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--fu-muted);font-size:var(--ui-font-xs);white-space:normal;overflow-wrap:anywhere;overflow:hidden}.followup-vnext-dense-value{color:var(--blue-dark,#0f596b);font-size:var(--ui-font-xs);font-weight:900;white-space:nowrap}
.followup-vnext-finance-title{margin-top:2px}.followup-vnext-metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;margin-bottom:12px}.followup-vnext-metric{min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 16px;border-inline-start:1px solid var(--fu-line)}.followup-vnext-metric:first-child{border-inline-start:0}.followup-vnext-metric-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:var(--blue-dark,#0f596b);background:var(--fu-tint)}.followup-vnext-metric-icon.green{color:var(--fu-success);background:var(--fu-success-soft)}.followup-vnext-metric-icon.red{color:var(--fu-danger);background:#feecee}.followup-vnext-metric-icon svg{width:19px;height:19px}.followup-vnext-metric-copy small{display:block;color:var(--fu-muted);font-size:var(--ui-font-xs);font-weight:700}.followup-vnext-metric-copy b{display:block;margin-top:2px;font-size:18px;line-height:1.2;direction:ltr;text-align:right;font-variant-numeric:tabular-nums}.followup-vnext-metric-copy em{display:block;font-style:normal;color:#78909a;font-size:var(--ui-font-xs);margin-top:2px}.followup-vnext-metric-code{font-size:var(--ui-font-xs);color:#617881;font-weight:850;align-self:end}
.followup-vnext-analytics{display:grid;grid-template-columns:minmax(0,1fr) 460px;gap:12px}.followup-vnext-chart-panel,.followup-vnext-profit-panel{padding:12px 14px;min-width:0}.followup-vnext-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:6px}.followup-vnext-chart-head h3,.followup-vnext-profit-panel h3{margin:0;font-size:var(--ui-font);font-weight:900}.followup-vnext-chart-legend{display:flex;align-items:center;gap:12px;color:var(--fu-muted);font-size:var(--ui-font-xs)}.followup-vnext-chart-legend span{display:flex;align-items:center;gap:5px}.followup-vnext-chart-legend i{width:8px;height:8px;border-radius:2px;background:#24c4c8}.followup-vnext-chart-legend span:last-child i{background:#087b99;border-radius:50%}.followup-vnext-chart-controls{display:flex;align-items:center;gap:7px;margin-bottom:4px}.followup-vnext-segment{display:flex;align-items:center;padding:3px;border-radius:9px;background:#f1f6f7}.followup-vnext-segment button{height:25px;min-width:48px;border:0;border-radius:7px;background:transparent;color:#607780;font-size:var(--ui-font-xs);cursor:pointer;padding:0 9px}.followup-vnext-segment button.active{color:#fff;background:var(--blue,#1687a0);font-weight:850;box-shadow:0 3px 8px rgba(22,135,160,.18)}.followup-vnext-chart{height:148px;position:relative}.followup-vnext-chart svg{display:block;width:100%;height:100%;overflow:visible}.followup-vnext-grid-line{stroke:#e5eef0;stroke-width:1}.followup-vnext-axis-text{fill:#789099;font-size:var(--ui-font-xs);font-family:Cairo,Arial,sans-serif}.followup-vnext-bar{fill:#26c3c5;rx:2}.followup-vnext-line{fill:none;stroke:#087b99;stroke-width:2}.followup-vnext-point{fill:#fff;stroke:#087b99;stroke-width:1.4}
.followup-vnext-profit-panel{display:flex;flex-direction:column}.followup-vnext-profit-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:10px}.followup-vnext-profit-card{border:1px solid var(--fu-line);border-radius:10px;padding:11px;background:var(--fu-soft)}.followup-vnext-profit-card small{display:block;color:var(--fu-muted);font-size:var(--ui-font-xs)}.followup-vnext-profit-card b{display:block;font-size:17px;direction:ltr;text-align:right;margin:4px 0 2px}.followup-vnext-profit-card em{display:block;color:var(--fu-success);font-style:normal;font-size:var(--ui-font-xs);font-weight:850;direction:ltr;text-align:right}
.followup-vnext-profit-sub{display:flex;flex-direction:column;gap:1px;margin-top:2px;min-width:0}.followup-vnext-profit-sub small{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.followup-vnext-profit-note{margin-top:auto;padding-top:12px;color:#7a9098;font-size:var(--ui-font-xs);text-align:center}
@media(max-width:1560px){.followup-vnext-bookings{grid-template-columns:repeat(3,minmax(150px,1fr))}.followup-vnext-analytics{grid-template-columns:minmax(0,1fr) 420px}}
@media(max-width:1500px){.followup-vnext-alerts{grid-template-columns:repeat(3,minmax(170px,1fr))}}
@media(max-width:1260px){.home-dashboard-page{padding-inline:14px}.followup-vnext-utility{grid-template-columns:1fr auto;gap:10px}.followup-vnext-title{grid-column:1}.followup-vnext-search{grid-column:1/-1;grid-row:2;max-width:none}.followup-vnext-actions{grid-column:2;grid-row:1}.followup-vnext-operations{grid-template-columns:minmax(0,1fr) 252px}.followup-vnext-bookings{grid-template-columns:repeat(3,minmax(145px,1fr))}.followup-vnext-metric{padding-inline:11px}.followup-vnext-analytics{grid-template-columns:1fr}.followup-vnext-profit-panel{min-height:150px}.followup-vnext-profit-note{margin-top:10px}}
@media(max-width:980px){.followup-vnext-operations{grid-template-columns:1fr}.followup-vnext-ops-side{grid-template-columns:1fr 1fr;grid-template-rows:auto}.followup-vnext-metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.followup-vnext-metric:nth-child(3){border-top:1px solid var(--fu-line)}.followup-vnext-metric:nth-child(4){border-top:1px solid var(--fu-line)}.followup-vnext-alerts{grid-template-columns:repeat(2,minmax(150px,1fr))}}
@media(max-width:680px){.home-dashboard-page{padding:12px 9px 24px}.followup-vnext-utility{display:flex;flex-direction:column;align-items:stretch}.followup-vnext-title{min-width:0}.followup-vnext-actions{display:grid;grid-template-columns:1fr 1fr}.followup-vnext-action{min-width:0;padding-inline:8px}.followup-vnext-alerts{grid-template-columns:1fr}.followup-vnext-bookings{grid-template-columns:repeat(2,minmax(130px,1fr))}.followup-vnext-ops-side{grid-template-columns:1fr}.followup-vnext-metric-strip{grid-template-columns:1fr}.followup-vnext-metric{border-inline-start:0;border-top:1px solid var(--fu-line)}.followup-vnext-metric:first-child{border-top:0}.followup-vnext-profit-cards{grid-template-columns:1fr}.followup-vnext-chart-head{flex-direction:column}.followup-vnext-chart-controls{flex-wrap:wrap}}
@media(max-width:420px){.followup-vnext-bookings{grid-template-columns:1fr}.followup-vnext-actions{grid-template-columns:1fr}.followup-vnext-chart{height:128px}}
.followup-vnext-operations{align-items:start}.followup-vnext-bookings{flex:none}.followup-vnext-side-head{padding:7px 10px 5px}.followup-vnext-side-head h4{font-size:var(--ui-font-sm)}.followup-vnext-dense-row{grid-template-columns:24px minmax(0,1fr) auto;padding:3px 9px}.followup-vnext-dense-icon{width:22px;height:22px}.followup-vnext-dense-icon svg{width:12px;height:12px}.followup-vnext-dense-copy b{font-size:var(--ui-font-xs);line-height:1.55}
.followup-vnext-dense-copy small{font-size:var(--ui-font-xs);line-height:1.5}.followup-vnext-dense-value{font-size:var(--ui-font-xs)}
@media(max-width:1180px){.followup-vnext-operations{grid-template-columns:1fr}.followup-vnext-ops-side{grid-template-columns:1fr 1fr;grid-template-rows:auto}.followup-vnext-metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.followup-vnext-metric:nth-child(3),.followup-vnext-metric:nth-child(4){border-top:1px solid var(--fu-line)}}

/* Official Home presentation: real service data, compact operations and finance. */
.followup-vnext-search.omni-search-shell{display:block;padding:0;background:transparent;border:0;box-shadow:none}.followup-vnext-search.omni-search-shell>span{position:absolute;right:15px;top:50%;transform:translateY(-50%);z-index:2;color:#76909a}.followup-vnext-search.omni-search-shell>span svg{position:static;transform:none}.followup-vnext-search .omni-search-content{display:block}.followup-vnext-search .omni-search-content label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.followup-vnext-search .omni-results{position:absolute;top:50px;right:0;left:0;z-index:30;margin-top:0;max-height:min(60vh,420px);overflow-y:auto;background:var(--ui-card,#fff);border:1px solid var(--fu-line);border-radius:var(--ui-radius,12px);box-shadow:var(--ui-shadow,0 8px 24px rgba(15,55,68,.06));padding:10px}.followup-vnext-search .omni-results:empty{display:none;padding:0;border:0;box-shadow:none}
.followup-vnext-actions>#dashboardQuickActions:empty{display:none}.followup-vnext-actions .dashboard-quick-menu{position:relative}.followup-vnext-actions .dashboard-quick-popover{min-width:310px;inset-inline-end:0;inset-inline-start:auto;z-index:40}.followup-vnext-actions .followup-vnext-action.secondary{min-width:154px}
.followup-vnext-count{color:var(--blue-dark,#0f596b);font-size:var(--ui-font-xs);font-weight:850;white-space:nowrap}.followup-vnext-booking-ref .is-urgent{color:var(--fu-danger)}
.followup-vnext-dense-row{width:100%;border:0;border-bottom:1px solid #edf3f5;text-align:right;cursor:pointer}.followup-vnext-dense-row:hover{background:var(--fu-soft)}.followup-vnext-dense-value{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.followup-vnext-dense-value b{font-size:var(--ui-font-xs);color:var(--fu-muted);font-weight:750}.followup-vnext-dense-value small{font-size:var(--ui-font-xs);color:var(--blue-dark,#0f596b)}.followup-vnext-upcoming-row{min-height:47px;padding-block:7px}.followup-vnext-upcoming .followup-vnext-dense-list{min-height:0}.followup-vnext-side-footer{margin-top:auto;padding:6px 10px;border-top:1px solid var(--fu-line);text-align:center}.followup-vnext-side-footer button{border:0;background:transparent;color:var(--blue-dark,#0f596b);font-size:var(--ui-font-xs);font-weight:850;cursor:pointer}
.followup-vnext-empty{grid-column:1/-1;min-height:58px;display:grid;place-items:center;padding:12px;color:var(--fu-muted);font-size:var(--ui-font-xs);text-align:center}.followup-vnext-chart.is-empty{height:auto;min-height:62px}
.followup-vnext-task-panel{margin:0;padding:12px 14px 8px;border:1px solid var(--fu-line);border-radius:14px;background:#fff;box-shadow:0 7px 22px rgba(28,66,78,.04)}.followup-vnext-task-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.followup-vnext-task-list .followup-vnext-empty{min-height:0;padding:10px}.followup-vnext-task-row{min-width:0;border:1px solid var(--fu-line);border-radius:10px;background:var(--fu-soft);padding:9px 10px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:3px 8px;text-align:right;cursor:pointer}.followup-vnext-task-row:hover{border-color:color-mix(in srgb,var(--blue,#1687a0) 35%,#dce8eb);background:#fff}.followup-vnext-task-row.is-overdue{border-color:#f4c9cc;background:#fff8f8}.followup-vnext-task-row>b{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--ui-font-xs)}.followup-vnext-task-row small{grid-column:1/-1;color:var(--fu-muted);font-size:var(--ui-font-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.followup-vnext-task-row time,.followup-vnext-task-row em{font-size:var(--ui-font-xs);color:var(--fu-muted);font-style:normal}.followup-vnext-task-row em{text-align:left}
.followup-vnext-finance-title{margin-top:14px}.followup-vnext-trend-title{margin-top:4px}.followup-vnext-metric{border:0;border-inline-start:1px solid var(--fu-line);background:#fff;text-align:right;cursor:pointer;transition:background .16s ease,transform .16s ease}.followup-vnext-metric:hover{background:var(--fu-soft);transform:translateY(-1px)}.followup-vnext-metric-copy{min-width:0}.followup-vnext-currency-lines{display:grid;margin-top:5px}.followup-vnext-currency-lines>span{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 0;border-top:1px solid #edf3f5;direction:ltr}.followup-vnext-currency-lines>span:first-child{border-top:0}.followup-vnext-currency-lines i{font-size:var(--ui-font-xs);font-style:normal;color:var(--fu-muted);font-weight:800}.followup-vnext-currency-lines b{font-size:var(--ui-font-xs);line-height:1.25;font-variant-numeric:tabular-nums}.followup-vnext-metric-caret{color:#9fb0b6;font-size:17px}
.followup-vnext-trend-summary{display:flex;gap:12px;margin-top:5px;color:var(--fu-muted);font-size:var(--ui-font-xs)}.followup-vnext-trend-summary span{display:flex;gap:4px}.followup-vnext-trend-summary b{color:var(--fu-ink);direction:ltr}.followup-vnext-profit-card b.negative,.followup-vnext-profit-card em.negative{color:var(--fu-danger)}.followup-vnext-profit-warning{grid-column:1/-1;border:0;border-radius:8px;background:var(--fu-warn-soft);color:var(--fu-warn);padding:7px 9px;font-size:var(--ui-font-xs);font-weight:800;cursor:pointer}.followup-vnext-point{pointer-events:auto}.followup-vnext-point:hover{r:4}.followup-vnext-bar{transition:opacity .15s ease}.followup-vnext-bar:hover{opacity:.7}
/* System-wide UI Consistency round — restrained motion + semantic severity color, both limited.
   Entrance-only (never looping) animation plays when the alert strip/chart actually re-render
   with changed data (Dashboard.js skips the re-render entirely — see dataset.signature checks —
   when nothing changed, so this never replays on an unrelated refresh). Respects
   prefers-reduced-motion by only existing inside the no-preference media query. */
@media(prefers-reduced-motion:no-preference){
 .followup-vnext-chart svg{animation:followupFadeUp .32s ease-out}
 .followup-vnext-alert{animation:followupFadeUp .26s ease-out backwards}
 .followup-vnext-alert:nth-child(2){animation-delay:.03s}
 .followup-vnext-alert:nth-child(3){animation-delay:.06s}
 .followup-vnext-alert:nth-child(4){animation-delay:.09s}
 .followup-vnext-alert:nth-child(5){animation-delay:.12s}
 .followup-vnext-alert:nth-child(6){animation-delay:.15s}
}
@keyframes followupFadeUp{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
/* The strip already computes critical vs warning priority (severity-critical/severity-warning)
   but only critical's red treatment was ever styled — warning silently rendered identically to
   critical. Reusing the existing --fu-warn/--fu-danger tokens (already aliased to the shared
   warning/danger semantics) to actually express the distinction; no new color introduced. */
.followup-vnext-alert.severity-warning{border-color:color-mix(in srgb,var(--fu-warn) 32%,var(--fu-line));background:var(--fu-warn-soft)}
.followup-vnext-alert.severity-warning:hover{border-color:color-mix(in srgb,var(--fu-warn) 55%,var(--fu-line));background:color-mix(in srgb,var(--fu-warn) 8%,var(--fu-warn-soft))}
.followup-vnext-alert.severity-warning .followup-vnext-alert-icon{color:var(--fu-warn)}
.followup-vnext-alert.severity-warning .followup-vnext-alert-count{color:var(--fu-warn)}
@media(max-width:1180px){.followup-vnext-task-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.followup-vnext-task-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.followup-vnext-task-list{grid-template-columns:1fr}.followup-vnext-trend-summary{flex-direction:column;gap:2px}}
