/* Approved Hoje composition. Shell refinements are scoped to this destination. */
.app-shell:has(.today-experience) { background: radial-gradient(ellipse at 85% 12%, #f0ecfc 0, transparent 48%), linear-gradient(135deg, #f8f7fc, #f6f5fc); }
.app-shell:has(.today-experience) > .app-shell__content { padding: 2.25rem clamp(1.5rem, 3vw, 3.5rem) 3rem; }
.today-experience { --today-ink: #201b50; --today-muted: #625984; --today-purple: #6848d8; margin: 0 auto; min-width: 0; width: 100%; }
.today-header { align-items: center; display: flex; gap: 1.5rem; justify-content: space-between; padding: 0 0 1.65rem; }
.today-header h1 { color: var(--today-ink); font-size: clamp(1.7rem, 2.4vw, 2.25rem); font-weight: 600; letter-spacing: -.035em; line-height: 1.25; margin: 0; overflow-wrap: anywhere; }
.today-date { color: var(--today-muted); font-size: 1rem; line-height: 1.5; margin: .42rem 0 0; }
.today-date::first-letter { text-transform: uppercase; }
.today-create.button { align-items: center; background: linear-gradient(165deg, #8058cc, #7958e5 68%, #795ce2); border: 1px solid #b29aee; border-radius: 1.1rem; box-shadow: inset 0 1px 2px #ffffff80, 0 7px 20px #7958d91c; display: inline-flex; flex-shrink: 0; font-size: 1rem; font-weight: 500; gap: .75rem; min-height: 3.6rem; padding: .65rem 1.6rem; }
.today-create.button:hover:not(:disabled) { background: linear-gradient(165deg, #7850c5, #7050d8); }
.today-create > span { font-size: 1.9rem; font-weight: 300; line-height: 1; }
.today-create:disabled { cursor: default; opacity: .5; }
.today-experience button:focus-visible { outline: 3px solid #7552d6; outline-offset: 3px; }

.today-layout { align-items: start; display: grid; gap: clamp(1.5rem, 2.7vw, 2.8rem); }
.today-operation { display: grid; gap: 1.6rem; min-width: 0; }
.today-layout:not(.today-layout--with-insights) .today-operation { max-width: 62rem; width: 100%; }
.today-section { min-width: 0; }
.today-section__heading { align-items: center; display: flex; gap: 1rem; justify-content: space-between; margin-bottom: .7rem; min-height: 1.5rem; }
.today-section__heading h2 { align-items: center; color: #4b4280; display: flex; font-size: .82rem; font-weight: 600; gap: .5rem; letter-spacing: .02em; line-height: 1.5; margin: 0; text-transform: uppercase; }
.today-section__heading p { color: var(--today-muted); font-size: .72rem; margin: .2rem 0 0; }
.today-attention-count { align-items: center; background: #fff0e8; border-radius: 50%; color: #a44a23; display: inline-flex; font-size: .7rem; height: 1.4rem; justify-content: center; letter-spacing: 0; min-width: 1.4rem; padding: 0 .3rem; }
.today-financial__error { color: var(--today-muted); font-size: .76rem; margin: .5rem 0 0; }
.today-financial__error button { background: none; border: 0; color: var(--today-purple); font: inherit; padding: .2rem; text-decoration: underline; }

.today-attention-summary { align-items: center; background: linear-gradient(115deg, #f0ebfcd9, #ffffffd9); border: 1px solid #fff; border-radius: 1.4rem; box-shadow: 0 7px 24px #55408d0a; display: flex; gap: 1rem; margin-bottom: 1.4rem; min-height: 5.3rem; padding: .8rem 1rem; }
.today-attention-summary__icon { align-items: center; background: linear-gradient(140deg, #eee6ff, #e3d9fb); border: 1px solid #ffffffb3; border-radius: 50%; color: #7952db; display: flex; flex: 0 0 3.3rem; height: 3.3rem; justify-content: center; }
.today-attention-summary__icon svg { height: 1.8rem; width: 1.8rem; }
.today-attention-summary p { color: #4b3596; font-size: 1rem; font-weight: 550; line-height: 1.4; margin: 0 0 .3rem; }
.today-attention-summary div > span { color: #645486; font-size: .82rem; line-height: 1.4; }
.today-attention { display: grid; gap: .65rem; list-style: none; margin: 0; padding: 0; }
.today-attention__item { background: linear-gradient(115deg, #fffffffa, #ffffffd9); border: 1px solid #ffffff; border-left: 3px solid #ed9c7d; border-radius: 1.2rem; box-shadow: 0 8px 24px #59467d0d; }
.today-attention__item--financial { border-left-color: #9c7bd7; }
.today-financial-attention__mark { align-items: center; background: #efe8fa; border-radius: 50%; color: #6743b7; display: flex; font-size: 1.05rem; font-weight: 650; height: 3.2rem; justify-content: center; width: 3.2rem; }
.today-attention__item--financial .today-attention__open { min-height: 5.6rem; }
.today-attention__item--financial .today-attention__action { justify-self: end; }
.today-attention__open { align-items: center; background: transparent; border: 0; border-radius: inherit; color: var(--today-ink); display: grid; gap: .9rem; grid-template-columns: 3.2rem minmax(0, 1fr) auto; min-height: 7.2rem; padding: 1rem 1.15rem; text-align: left; width: 100%; }
.today-attention__open:hover { background: #eeebfa5c; }
.today-attention__copy { display: grid; gap: .25rem; min-width: 0; overflow-wrap: anywhere; }
.today-attention__identity { align-items: center; display: flex; flex-wrap: wrap; gap: .35rem .75rem; }
.today-attention__identity strong { color: var(--today-ink); font-size: 1rem; font-weight: 600; line-height: 1.35; }
.today-attention__time { background: #eee8fc; border-radius: 99rem; color: #6745bd; font-size: .8rem; font-variant-numeric: tabular-nums; font-weight: 600; line-height: 1.3; padding: .18rem .65rem; }
.today-attention__copy > span:not(.today-attention__identity) { font-size: .88rem; line-height: 1.5; }
.today-attention__copy small { color: var(--today-muted); font-size: .79rem; line-height: 1.45; }
.today-attention__tools { align-items: end; display: flex; flex-direction: column; gap: .7rem; }
.today-attention__action { align-items: center; background: #ffffffb3; border: 1px solid #cbb9ed; border-radius: .65rem; color: #6242b9; display: inline-flex; font-size: .74rem; gap: .4rem; min-height: 2.75rem; padding: .45rem .65rem; white-space: nowrap; }
.today-attention__action svg { height: 1.1rem; width: 1.1rem; }
.today-in-order { align-items: center; background: #eaf5f080; border: 1px solid #d7eae18c; border-radius: 1rem; color: #426956; display: flex; font-size: .8rem; gap: .8rem; line-height: 1.5; padding: .85rem 1rem; }
.today-in-order strong { color: #2f6c53; display: block; font-weight: 600; margin-bottom: .12rem; }
.today-in-order__mark { align-items: center; background: #dfeee6; border-radius: 50%; color: #377457; display: inline-flex; flex: 0 0 2rem; font-size: .9rem; height: 2rem; justify-content: center; }

.today-timeline { background: linear-gradient(125deg, #fffffffa, #ffffffd9); border: 1px solid #fff; border-radius: 1.2rem; box-shadow: 0 8px 24px #58427d0a; list-style: none; margin: 0; padding: 0 1rem; }
.today-appointment + .today-appointment { border-top: 1px solid #7762b412; }
.today-appointment__open { align-items: center; background: transparent; border: 0; border-radius: .75rem; color: var(--today-ink); display: grid; gap: .7rem; grid-template-columns: 3.35rem .55rem 2.4rem minmax(0, 1fr) auto 2.4rem; min-height: 5.4rem; padding: .85rem .3rem; position: relative; text-align: left; width: 100%; }
.today-appointment__open:hover { background: #eeebfa61; }
.today-appointment__time { color: #6745c1; display: grid; font-size: .96rem; font-variant-numeric: tabular-nums; font-weight: 650; gap: .25rem; }
.today-appointment__time small { color: var(--today-muted); font-size: .61rem; font-weight: 400; }
.today-appointment__marker { background: #9a78e2; border-radius: 50%; height: .55rem; position: relative; width: .55rem; z-index: 1; }
.today-appointment:not(:last-child) .today-appointment__open::before { background: #ddd4ec; bottom: -50%; content: ""; left: 4.6rem; position: absolute; top: 50%; width: 1px; }
.today-appointment__avatar { align-items: center; background: linear-gradient(135deg, #f0eafa, #e1d8f3); border: 2px solid #ffffffe0; border-radius: 50%; color: #675088; display: flex; font-size: .7rem; font-weight: 550; height: 2.4rem; justify-content: center; width: 2.4rem; }
.today-attention__avatar { box-shadow: 0 3px 10px #6e4daf14; color: #5a4b86; font-size: .9rem; font-weight: 600; height: 3.2rem; width: 3.2rem; }
.today-appointment__copy { display: grid; gap: .24rem; min-width: 0; overflow-wrap: anywhere; }
.today-appointment__copy strong { color: var(--today-ink); font-size: .92rem; font-weight: 600; line-height: 1.3; }
.today-appointment__copy > span, .today-appointment__copy small { color: var(--today-muted); font-size: .77rem; line-height: 1.4; }
.today-appointment__status { border-radius: .65rem; font-size: .7rem; font-weight: 500; line-height: 1.4; padding: .35rem .6rem; white-space: nowrap; }
.today-appointment__action { align-items: center; background: #ffffff80; border: 1px solid #e8e1f2; border-radius: .75rem; color: var(--today-purple); display: flex; height: 2.4rem; justify-content: center; width: 2.4rem; }
.today-appointment__action svg { height: 1.15rem; width: 1.15rem; }
.today-section--current .today-timeline { background: radial-gradient(ellipse at 100% 100%, #e3dafa8c, transparent 65%), linear-gradient(115deg, #e9e1fbf2, #f8f5ffed); border-color: #d8cafa; box-shadow: 0 10px 28px #7656b514, inset 0 1px 0 #ffffff; position: relative; }
.today-section--current .today-timeline::after { border: 1px solid #ffffffb3; border-radius: 60% 40% 70% 30%; bottom: 1.7rem; content: ""; height: 3rem; pointer-events: none; position: absolute; right: 1rem; transform: rotate(-30deg); width: 7rem; }
.today-section--current .today-appointment__open { gap: 1rem; grid-template-columns: 3.6rem 4.4rem minmax(0, 1fr) auto; min-height: 7.3rem; z-index: 1; }
.today-section--current .today-appointment__avatar { font-size: .9rem; grid-column: 1; grid-row: 1; height: 3.6rem; width: 3.6rem; }
.today-section--current .today-appointment__time { font-size: 1.65rem; grid-column: 2; grid-row: 1; }
.today-section--current .today-appointment__copy { border-left: 1px solid #bda6e880; grid-column: 3; grid-row: 1; padding: .25rem 0 .25rem 1.2rem; }
.today-section--current .today-appointment__copy strong { font-size: 1.08rem; }
.today-section--current .today-appointment__status { grid-column: 4; grid-row: 1; }
.today-section--current .today-appointment__action, .today-section--current .today-appointment__marker, .today-section--current .today-appointment__open::before { display: none; }
.today-agenda-button { align-items: center; background: none; border: 0; border-radius: .4rem; color: #6542bf; display: inline-flex; font-size: .75rem; gap: .4rem; line-height: 1.4; min-height: 2.75rem; padding: .3rem 0; text-align: left; }
.today-agenda-button:hover { color: #4e2e9c; text-decoration: underline; text-underline-offset: .2rem; }
.today-agenda-button svg { flex-shrink: 0; height: 1rem; width: 1rem; }
.today-agenda-link { display: flex; justify-content: flex-end; }
.today-sync { color: var(--today-muted); font-size: .72rem; margin: 0; }
.today-sync:empty { display: none; }

/* A distinct contextual panel exists only when real insights are available. */
.today-section--insights { background: linear-gradient(150deg, #ffffffed, #fdfbffeb); border: 1px solid #fff; border-radius: 1.7rem; box-shadow: 0 12px 36px #67428d12; isolation: isolate; overflow: hidden; padding: 1.15rem 1rem 1rem; position: relative; }
.today-section--insights::before { border: 1px solid #9d7deb26; border-radius: 78% 22% 76% 24%; bottom: -2.3rem; content: ""; height: 10rem; pointer-events: none; position: absolute; right: -1.2rem; transform: rotate(-35deg); width: 5.5rem; }
.today-section--insights > .today-section__heading { margin: .1rem .7rem 1rem; position: relative; }
.today-section--insights .today-section__heading h2 { color: #6b47ce; font-size: .9rem; letter-spacing: .01em; }
.today-section--insights .today-section__heading svg { color: #9a7cdf; height: .9rem; width: .9rem; }
.today-insights { display: grid; gap: .7rem; list-style: none; margin: 0; padding: 0; position: relative; }
.today-insights__empty { color: var(--today-muted); font-size: .82rem; line-height: 1.5; margin: .15rem .7rem .35rem; }
.today-insights__item { background: radial-gradient(ellipse at 100% 0, #e8ddfa91, transparent 55%), linear-gradient(140deg, #f8f5ff, #f0eafb); border: 1px solid #e9dffa; border-radius: 1.25rem; box-shadow: inset 0 1px 0 #ffffffcc, 0 4px 14px #6c51a10a; }
.today-insights__item--recurring-client { background: radial-gradient(ellipse at 100% 0, #e2e4fa85, transparent 55%), linear-gradient(145deg, #f6f3ff, #eceafb); }
.today-insights__item--post-appointment { background: radial-gradient(ellipse at 100% 0, #e4edf991, transparent 55%), linear-gradient(145deg, #f7f6fd, #eef0fc); }
.today-insights__open { align-items: center; background: transparent; border: 0; border-radius: inherit; color: var(--today-ink); display: grid; gap: .5rem .75rem; grid-template-columns: 2.5rem minmax(0, 1fr); padding: .95rem 1rem 1rem; position: relative; text-align: left; width: 100%; }
.today-insights__open:hover { background: #e5ddf84d; }
.today-insights__mark { align-items: center; background: linear-gradient(145deg, #fff, #f2ebff); border: 1px solid #fff; border-radius: 50%; box-shadow: 0 4px 12px #7b58af0c; color: #7350ca; display: flex; height: 2.5rem; justify-content: center; width: 2.5rem; }
.today-insights__item--recurring-client .today-insights__mark { background: linear-gradient(145deg, #fff, #ebeafd); color: #6459bd; }
.today-insights__item--post-appointment .today-insights__mark { background: linear-gradient(145deg, #fff, #e9f0fc); color: #5e70b9; }
.today-insights__mark svg { height: 1.35rem; width: 1.35rem; }
.today-insights__title { color: var(--today-ink); font-size: .96rem; font-weight: 650; line-height: 1.35; overflow-wrap: anywhere; }
.today-insights__copy { color: #4c4268; font-size: .86rem; grid-column: 2; line-height: 1.52; overflow-wrap: anywhere; }
.today-insights__action { align-items: center; background: #ffffffa6; border: 1px solid #d7caef; border-radius: .6rem; color: #6342b3; display: inline-flex; font-size: .76rem; gap: .55rem; grid-column: 2; justify-self: start; margin-top: .25rem; min-height: 2.4rem; padding: .4rem .7rem; }
.today-insights__action svg { flex-shrink: 0; height: 1rem; width: 1rem; }
.today-insights-unavailable { color: var(--today-muted); font-size: .78rem; line-height: 1.5; margin: 0; }

.today-empty { align-items: center; background: linear-gradient(115deg, #ffffffed, #ffffffc7); border: 1px solid #fff; border-radius: 1.2rem; box-shadow: 0 6px 20px #59467d09; display: flex; flex-wrap: wrap; gap: .85rem; padding: 1.1rem 1.25rem; }
.today-empty__icon { align-items: center; background: #ebe5f7a6; border-radius: .85rem; color: #8063b4; display: flex; flex: 0 0 2.6rem; height: 2.6rem; justify-content: center; }
.today-empty__icon svg { height: 1.5rem; width: 1.5rem; }
.today-empty__copy { flex: 1; min-width: min(100%, 12rem); }
.today-empty h2 { color: #514469; font-size: 1rem; font-weight: 550; line-height: 1.4; margin: 0; }
.today-empty p { color: var(--today-muted); font-size: .81rem; line-height: 1.5; margin: .35rem 0 0; }
.today-empty .button { font-size: .8rem; min-height: 2.75rem; }
.today-loading { color: var(--today-muted); font-size: .85rem; }
.today-loading > p { margin: 0 0 1rem; }
.today-loading > div { background: var(--surface); border: 1px solid var(--line); border-radius: 1.2rem; padding: .5rem 1.1rem; }
.today-loading span { background: linear-gradient(90deg, var(--purple-soft) 0 12%, transparent 12% 17%, #efedf3 17% 65%, transparent 65%); border-radius: .4rem; display: block; height: 2.3rem; margin: 1.4rem 0; opacity: .65; }
.today-read-error { align-items: center; background: #fff9faf0; border: 1px solid #a13f4f33; border-radius: 1rem; display: flex; gap: 1rem; justify-content: space-between; padding: 1rem 1.15rem; }
.today-read-error strong { color: var(--danger); font-size: .82rem; font-weight: 600; }
.today-read-error p { color: var(--today-muted); font-size: .75rem; line-height: 1.5; margin: .35rem 0 0; }
.today-read-error button { flex-shrink: 0; font-size: .74rem; min-height: 2.75rem; }

@container (min-width: 68rem) {
  .today-layout--with-insights { grid-template-columns: minmax(0, 1.95fr) minmax(0, 1fr); }
  .today-section--insights { margin-top: 2.6rem; }
}
@container (min-width: 45rem) and (max-width: 67.999rem) {
  .today-insights { grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
  .today-insights__copy, .today-insights__action { grid-column: 1 / -1; }
}
@container (min-width: 68rem) and (max-width: 75rem) {
  .today-layout { gap: 1.25rem; }
  .today-attention__open { column-gap: .75rem; grid-template-columns: 2.7rem minmax(0, 1fr) auto; padding: .9rem; }
  .today-attention__avatar { height: 2.7rem; width: 2.7rem; }
  .today-appointment__open { gap: .5rem; }
  .today-appointment:not(:last-child) .today-appointment__open::before { left: 4.4rem; }
  .today-section--current .today-appointment__open { gap: .7rem; grid-template-columns: 2.8rem 4rem minmax(0, 1fr) auto; }
  .today-section--current .today-appointment__avatar { height: 2.8rem; width: 2.8rem; }
  .today-section--current .today-appointment__time { font-size: 1.45rem; }
  .today-section--current .today-appointment__copy { padding-left: .8rem; }
  .today-insights__copy, .today-insights__action { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .app-shell:has(.today-experience) { padding-bottom: 7.5rem; }
  .app-shell:has(.today-experience) > .app-shell__content { padding: 1.5rem 1rem 2rem; }
  .today-header { align-items: flex-start; flex-wrap: wrap; gap: 1rem; padding-bottom: 1.5rem; }
  .today-header h1 { font-size: 1.7rem; }
  .today-date { font-size: .85rem; }
  .today-create.button { border-radius: .85rem; font-size: .85rem; min-height: 2.75rem; padding: .5rem 1rem; }
  .today-create > span { font-size: 1.4rem; }
  .today-layout, .today-operation { gap: 1.4rem; }
  .today-attention-summary { gap: .75rem; padding: .8rem; }
  .today-attention-summary p { font-size: .92rem; }
  .today-attention-summary__icon { flex-basis: 2.75rem; height: 2.75rem; }
  .today-attention__open { align-items: start; gap: .8rem; grid-template-columns: 2.5rem minmax(0, 1fr); padding: 1rem .85rem; }
  .today-financial-attention__mark { height: 2.5rem; width: 2.5rem; }
  .today-attention__item--financial .today-attention__action { grid-column: 2; justify-self: start; }
  .today-attention__avatar { height: 2.5rem; width: 2.5rem; }
  .today-attention__identity { gap: .35rem .55rem; }
  .today-attention__identity strong { font-size: .94rem; }
  .today-attention__copy > span:not(.today-attention__identity) { font-size: .82rem; }
  .today-attention__tools { align-items: center; flex-direction: row; flex-wrap: wrap; grid-column: 2; justify-content: space-between; gap: .5rem; }
  .today-attention__action { font-size: .7rem; }
  .today-in-order { align-items: start; font-size: .78rem; }
  .today-section__heading { gap: .5rem; }
  .today-section__heading h2 { font-size: .78rem; }
  .today-agenda-button { font-size: .7rem; }
  .today-timeline { padding: 0 .75rem; }
  .today-appointment__open { gap: .55rem; grid-template-columns: 3rem .45rem minmax(0, 1fr) auto; padding: .9rem .15rem; }
  .today-appointment__time { align-self: start; font-size: .95rem; grid-column: 1; grid-row: 1 / span 2; padding-top: .15rem; }
  .today-appointment__marker { align-self: start; grid-column: 2; grid-row: 1; height: .45rem; margin-top: .4rem; width: .45rem; }
  .today-appointment:not(:last-child) .today-appointment__open::before { bottom: -.9rem; left: 3.9rem; top: 1.4rem; }
  .today-appointment__avatar { display: none; }
  .today-attention__avatar { display: flex; }
  .today-appointment__copy { grid-column: 3 / -1; grid-row: 1; }
  .today-appointment__copy strong { font-size: .9rem; }
  .today-appointment__status { grid-column: 3; grid-row: 2; justify-self: start; }
  .today-appointment__action { grid-column: 4; grid-row: 2; height: 2rem; width: 2rem; }
  .today-section--current .today-appointment__open { gap: .75rem; grid-template-columns: 3.6rem minmax(0, 1fr); min-height: 0; padding-block: 1.1rem; }
  .today-section--current .today-appointment__time { font-size: 1.3rem; grid-column: 1; grid-row: 1 / span 2; }
  .today-section--current .today-appointment__copy { grid-column: 2; grid-row: 1; padding: 0 0 0 .8rem; }
  .today-section--current .today-appointment__copy strong { font-size: 1rem; }
  .today-section--current .today-appointment__status { grid-column: 2; grid-row: 2; margin-left: .8rem; }
  .today-section--insights { border-radius: 1.4rem; padding: 1.1rem .75rem .75rem; }
  .today-insights__open { padding: 1rem; }
  .today-insights__copy, .today-insights__action { grid-column: 1 / -1; }
  .today-insights__copy { font-size: .88rem; }
  .today-read-error { align-items: flex-start; flex-direction: column; }
  .today-empty { padding: 1.15rem; }
  .today-agenda-link { justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .today-experience button { transition: none; }
}
