.icon-button {
  display: inline-grid;
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid transparent;
  border-radius: 14px;
  background: transparent;
  color: var(--color-text-muted);
}

.auth-screen { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 1.5rem; background: radial-gradient(circle at 20% 10%, var(--color-accent-pale), transparent 36%), var(--color-background); }
.auth-screen[hidden], .auth-screen form[hidden] { display: none; }
.auth-card { width: min(100%, 430px); padding: clamp(1.5rem, 5vw, 2.5rem); border: 1px solid var(--color-border); border-radius: 28px; background: var(--color-surface); box-shadow: 0 24px 70px rgb(72 48 56 / .12); }
.auth-card > img { display: block; width: 180px; max-width: 70%; margin: 0 auto 1.5rem; }
.auth-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: .3rem; margin-bottom: 1.4rem; padding: .3rem; border-radius: 14px; background: var(--color-background); }
.auth-tabs button, .auth-link { border: 0; background: transparent; color: var(--color-text-muted); }
.auth-tabs button { padding: .7rem; border-radius: 11px; font-weight: 700; }
.auth-tabs button.is-active { background: var(--color-surface); color: var(--color-text); box-shadow: 0 2px 10px rgb(40 30 30 / .08); }
.auth-card form { display: grid; gap: 1rem; }
.auth-card form h1 { font-size: 1.35rem; }
.auth-card label { display: grid; gap: .4rem; color: var(--color-text-muted); font-size: .82rem; font-weight: 700; }
.auth-card input { min-height: 46px; padding: .7rem .85rem; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-background); color: var(--color-text); }
.auth-link { justify-self: center; padding: .4rem; text-decoration: underline; cursor: pointer; }
.auth-message { min-height: 1.4em; margin-top: 1rem; color: var(--color-text-muted); text-align: center; font-size: .86rem; }
.activation-content { display: grid; gap: 1rem; text-align: center; }
.activation-content h1 { margin: 0; font-size: clamp(1.45rem, 5vw, 2rem); }
.activation-content > p { margin: 0; color: var(--color-text-muted); line-height: 1.6; }
.access-step { color: var(--color-accent); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.personal-plan { display: grid; gap: .35rem; padding: 1.25rem; border: 1px solid color-mix(in srgb, var(--color-accent) 30%, var(--color-border)); border-radius: 20px; background: var(--color-accent-pale); text-align: left; }
.personal-plan small { color: var(--color-accent); font-weight: 800; letter-spacing: .08em; }
.personal-plan strong { color: var(--color-text); font-size: 2rem; }
.personal-plan span { color: var(--color-text-muted); font-size: .82rem; }
.personal-plan ul { display: grid; gap: .45rem; margin: .75rem 0 0; padding-left: 1.15rem; color: var(--color-text); font-size: .88rem; }
.access-notice { padding: .8rem; border-radius: 12px; background: var(--color-background); font-size: .8rem; }
.access-success { display: grid; width: 58px; height: 58px; place-items: center; margin: 0 auto; border-radius: 50%; background: var(--color-accent-pale); color: var(--color-accent); font-size: 1.8rem; font-weight: 800; }
.access-button-link { display: grid; place-items: center; text-decoration: none; }

/* Aniversários */
.birthdays-page { display: grid; gap: 2rem; }
.birthdays-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; }
.birthdays-header h1 { max-width: none; font-size: clamp(2.1rem, 4vw, 3rem); letter-spacing: -.04em; }
.birthdays-header p { margin-top: .35rem; color: var(--color-text-muted); font-style: italic; }
.birthdays-tools { display: grid; width: 100%; gap: 1.1rem; }
.birthdays-tools > label { display: flex; min-height: 50px; align-items: center; gap: .7rem; padding: 0 1rem; border: 1px solid #efdfd0; border-radius: 15px; background: rgb(255 255 255 / .5); }
.birthdays-tools > label:focus-within { border-color: var(--color-accent); box-shadow: 0 0 0 3px rgb(215 125 171 / .12); }
.birthdays-tools > label .icon { width: 20px; height: 20px; color: var(--color-text-muted); }
.birthdays-tools input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--color-text); font-size: .95rem; }
.birthday-list-card { overflow: hidden; padding: 1.5rem 1.7rem .4rem; border: 1px solid #eee1d4; border-radius: 24px; background: rgb(255 255 255 / .82); box-shadow: var(--shadow-card); }
.birthday-list-card > h2 { margin-bottom: .8rem; color: var(--color-text-muted); font-size: .73rem; letter-spacing: .1em; }
.birthday-person { display: grid; width: 100%; min-height: 88px; grid-template-columns: 54px minmax(0, 1fr) auto 20px; align-items: center; gap: 1rem; border-top: 1px solid #eee5dc; background: transparent; color: var(--color-text); text-align: left; }
.birthday-person:first-child { border-top: 0; }
.birthday-person:hover { background: #fdf8f4; }
.birthday-avatar { display: grid; width: 54px; height: 54px; place-items: center; border-radius: 50%; background: var(--person-color); color: var(--person-text); font-weight: 600; }
.birthday-person__copy { min-width: 0; }
.birthday-person__copy > strong { display: block; overflow: hidden; font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.birthday-person__copy > strong i { margin-left: .45rem; color: #f4bb32; font-style: normal; }
.birthday-person__copy small { display: flex; align-items: center; gap: .55rem; margin-top: .32rem; overflow: hidden; color: var(--color-text-faint); white-space: nowrap; }
.birthday-person__copy small b { font-size: .6rem; }
.birthday-person__copy small em { overflow: hidden; font-style: italic; text-overflow: ellipsis; }
.birthday-person__date { display: flex; align-items: flex-start; gap: .6rem; min-width: 165px; }
.birthday-person__date > .icon { width: 17px; height: 17px; margin-top: .1rem; color: var(--color-text-muted); }
.birthday-person__date span { display: grid; gap: .2rem; }
.birthday-person__date strong { font-size: .88rem; font-weight: 500; }
.birthday-person__date small { color: var(--color-text-faint); }
.birthday-person__arrow { color: var(--color-text-faint); font-size: 1.6rem; font-weight: 300; }
.birthdays-empty { padding: 3rem 1rem; color: var(--color-text-faint); text-align: center; }
.birthday-dialog { width: min(780px, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); padding: 0; overflow: auto; border: 1px solid var(--color-border); border-radius: 24px; background: #fffdfa; color: var(--color-text); box-shadow: var(--shadow-overlay); }
.birthday-dialog::backdrop { background: rgb(52 44 38 / .35); backdrop-filter: blur(3px); }
.birthday-form-dialog form > header { display: flex; align-items: flex-start; justify-content: space-between; padding: 1.6rem 1.7rem 1rem; }
.birthday-form-dialog form > header > div { display: flex; align-items: flex-start; gap: .9rem; }
.birthday-form-dialog form > header > div > span { color: var(--color-accent); font-size: 2rem; line-height: 1; transform: rotate(-10deg); }
.birthday-form-dialog h2 { font-size: 1.25rem; }
.birthday-form-dialog header p { margin-top: .3rem; color: var(--color-text-faint); font-size: .78rem; }
.birthday-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; padding: 1.2rem 1.7rem; }
.birthday-field { display: grid; gap: .42rem; min-width: 0; }
.birthday-field--full { grid-column: 1 / -1; }
.birthday-field > span { font-size: .78rem; font-weight: 650; }
.birthday-field > span small { color: var(--color-text-faint); font-weight: 400; }
.birthday-field > input, .birthday-field > textarea { width: 100%; min-height: 48px; padding: .75rem .9rem; border: 1px solid #efdfd0; border-radius: 14px; background: white; color: var(--color-text); }
.birthday-field > textarea { resize: vertical; }
.birthday-field > input:focus, .birthday-field > textarea:focus { border-color: var(--color-accent); outline: 3px solid rgb(215 125 171 / .12); }
.birthday-field > small { color: var(--color-text-faint); font-size: .7rem; }
.birthday-gifts { padding: 1rem; border: 1px solid #efe4da; border-radius: 14px; }
.birthday-gifts > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.birthday-gifts > header > div { display: flex; align-items: flex-start; gap: .7rem; }
.birthday-gifts .icon { width: 18px; height: 18px; }
.birthday-gifts header span { display: grid; gap: .2rem; }
.birthday-gifts header strong { font-size: .78rem; }
.birthday-gifts header small { color: var(--color-text-faint); font-size: .7rem; font-style: italic; }
.birthday-gifts header button { padding: .55rem .8rem; border-radius: 999px; background: #fff2f6; color: var(--color-accent); font-size: .73rem; font-weight: 650; }
.birthday-gift-row { display: grid; grid-template-columns: minmax(0, 1fr) 36px; gap: .5rem; margin-top: .7rem; }
.birthday-gift-row input { min-height: 40px; padding: .6rem .75rem; border: 1px solid var(--color-border); border-radius: 10px; }
.birthday-gift-row button { background: transparent; color: var(--color-danger-soft); }
.birthday-gift-row .icon { width: 17px; height: 17px; }
.birthday-favorite { display: grid; min-height: 58px; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .7rem; padding: .8rem 1rem; border: 1px solid #efe4da; border-radius: 14px; cursor: pointer; }
.birthday-favorite > .icon { width: 21px; height: 21px; }
.birthday-favorite input { position: absolute; opacity: 0; }
.birthday-favorite i { position: relative; width: 48px; height: 28px; border-radius: 999px; background: #cbc5bf; }
.birthday-favorite i::after { position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: white; box-shadow: 0 2px 6px rgb(52 44 38 / .18); content: ''; transition: transform 160ms ease; }
.birthday-favorite input:checked + i { background: var(--color-accent); }
.birthday-favorite input:checked + i::after { transform: translateX(20px); }
.birthday-form-dialog form > footer { display: flex; justify-content: flex-end; gap: .75rem; padding: 1rem 1.7rem 1.5rem; }
.birthday-form-dialog form > footer button { min-width: 140px; border-radius: 999px; }
.birthday-detail-dialog { width: min(520px, calc(100vw - 1rem)); }
.birthday-detail-dialog > div { position: relative; padding: 2.4rem 1.8rem 1.7rem; }
.birthday-detail__close { position: absolute; z-index: 2; top: .8rem; right: .8rem; }
.birthday-detail__hero { display: flex; align-items: center; flex-direction: column; text-align: center; }
.birthday-detail__avatar { display: grid; width: 132px; height: 132px; place-items: center; border-radius: 50%; background: var(--person-color); color: var(--person-text); font-size: 2.1rem; font-weight: 700; }
.birthday-detail__hero h2 { margin-top: 1.2rem; font-size: 1.8rem; text-transform: uppercase; }
.birthday-detail__hero button { margin-top: 1rem; background: transparent; color: #948075; font-size: 1.02rem; }
.birthday-detail__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; margin: 1.7rem 0; }
.birthday-detail__stats > span { display: grid; min-height: 92px; place-items: center; align-content: center; gap: .4rem; border-radius: 17px; background: #fdfbf8; }
.birthday-detail__stats small { color: #9b8579; font-size: .72rem; font-weight: 700; letter-spacing: .15em; }
.birthday-detail__stats strong { color: #523d34; font-size: 1.65rem; font-weight: 500; }
.birthday-detail__stats strong i { color: #8d796e; font-size: .8rem; font-style: normal; }
.birthday-detail__facts { display: grid; gap: .8rem; }
.birthday-detail__facts p { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: .65rem; align-items: center; color: #7e6c62; }
.birthday-detail__facts .icon { width: 20px; height: 20px; color: #a48979; }
.birthday-detail__fact-icon { color: #a48979; font-size: 1.1rem; font-style: normal; text-align: center; }
.birthday-detail__gifts { margin-top: 1.8rem; }
.birthday-detail__gifts header { display: flex; align-items: center; gap: .65rem; }
.birthday-detail__gifts header .icon { color: #cda476; }
.birthday-detail__gifts h3 { font-size: 1.15rem; }
.birthday-detail__gifts header button { margin-left: auto; background: transparent; color: #cda476; font-weight: 600; }
.birthday-detail__gifts > p { margin-top: 1rem; color: #9c8679; font-style: italic; }
.birthday-detail__gifts ul { display: grid; gap: .45rem; margin-top: .9rem; padding-left: 1.2rem; color: #7e6c62; }
.birthday-detail-dialog footer { display: grid; gap: .65rem; margin-top: 2rem; }
.birthday-detail-dialog footer button { display: flex; min-height: 50px; align-items: center; justify-content: center; gap: .65rem; border-radius: 999px; font-weight: 650; }
.birthday-detail-dialog footer .icon { width: 19px; height: 19px; }
.birthday-edit { background: var(--color-accent); color: white; }
.birthday-delete { border: 1px solid #eadfd6; background: transparent; color: #df8588; }

/* Metas */
.goals-page { display: grid; gap: clamp(1.5rem, 3vw, 2.25rem); }
.goals-header { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.goals-header h2 { max-width: none; font-size: clamp(2rem, 3.5vw, 2.65rem); }
.goals-header > div > p:last-child { margin-top: .55rem; color: var(--color-text-muted); }
.goals-new { display: inline-flex; min-height: 48px; align-items: center; gap: .55rem; padding: .75rem 1.15rem; border-radius: 14px; background: var(--color-accent); color: white; font-weight: 700; box-shadow: 0 8px 20px rgb(215 125 171 / .2); }
.goals-new:hover { background: #ca699a; }
.goals-new span { font-size: 1.35rem; font-weight: 400; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.section-heading p { margin-bottom: .2rem; color: var(--color-accent); font-size: .69rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.section-heading h1, .section-heading h2 { max-width: none; font-size: clamp(1.35rem, 2.3vw, 1.75rem); }
.section-heading > span { color: var(--color-text-faint); font-size: .78rem; }
.vision-section { display: grid; gap: .85rem; }
.vision-board { position: relative; min-height: clamp(330px, 36vw, 470px); overflow: hidden; border: 1px solid #eadfd7; border-radius: 22px; background: radial-gradient(circle at 12% 15%, rgb(252 226 239 / .82), transparent 28%), radial-gradient(circle at 88% 75%, rgb(242 229 215 / .9), transparent 32%), #fffdfa; box-shadow: var(--shadow-card); touch-action: none; }
.vision-board::before { position: absolute; inset: 0; background-image: radial-gradient(#e4d8cf 1px, transparent 1px); background-size: 22px 22px; content: ''; opacity: .42; }
.vision-board__empty { position: absolute; z-index: 1; inset: 0; display: flex; align-items: center; justify-content: center; flex-direction: column; color: var(--color-text-muted); cursor: pointer; }
.vision-board__empty[hidden] { display: none; }
.vision-board__empty .icon { width: 34px; height: 34px; margin-bottom: .7rem; color: var(--color-accent); }
.vision-board__empty strong { color: var(--color-text); font-size: 1.05rem; }
.vision-board__empty span { margin-top: .25rem; font-size: .85rem; }
.vision-board__add { position: absolute; z-index: 4; right: 1rem; bottom: 1rem; display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; background: var(--color-accent); color: white; font-size: 1.7rem; box-shadow: 0 8px 22px rgb(112 68 89 / .24); }
.vision-board__add[hidden] { display: none; }
.vision-board__hint { position: absolute; z-index: 3; bottom: 1.05rem; left: 50%; padding: .5rem .8rem; border: 1px solid rgb(233 224 214 / .8); border-radius: 999px; background: rgb(255 255 255 / .8); color: var(--color-text-faint); font-size: .7rem; transform: translateX(-50%); backdrop-filter: blur(8px); white-space: nowrap; }
.vision-item { position: absolute; z-index: 2; width: clamp(110px, 16vw, 210px); height: clamp(105px, 14vw, 180px); overflow: visible; border: 4px solid white; border-radius: 10px; background: white; box-shadow: 0 12px 28px rgb(70 54 42 / .16); cursor: grab; user-select: none; transition: opacity 160ms ease, box-shadow 160ms ease, transform 160ms ease; }
.vision-item:nth-of-type(even) { transform: rotate(2deg); }
.vision-item:nth-of-type(odd) { transform: rotate(-1.5deg); }
.vision-item img { width: 100%; height: 100%; border-radius: 6px; object-fit: cover; pointer-events: none; }
.vision-item.is-selected { z-index: 3; opacity: .58; box-shadow: 0 0 0 3px var(--color-accent), 0 18px 34px rgb(70 54 42 / .2); cursor: grabbing; transform: rotate(0) scale(1.02); }
.vision-item [data-delete-image] { position: absolute; z-index: 3; top: -15px; right: -15px; display: none; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: #fff; color: var(--color-danger-soft); box-shadow: 0 4px 14px rgb(70 54 42 / .2); }
.vision-item.is-selected [data-delete-image] { display: grid; }
.vision-item [data-delete-image] .icon { width: 15px; height: 15px; }
.vision-resize { position: absolute; z-index: 2; display: none; width: 12px; height: 12px; border: 2px solid white; border-radius: 50%; background: var(--color-accent); box-shadow: 0 1px 4px rgb(70 54 42 / .25); }
.vision-item.is-selected .vision-resize { display: block; }
.vision-resize--nw { top: -8px; left: -8px; cursor: nwse-resize; }.vision-resize--n { top: -8px; left: 50%; cursor: ns-resize; transform: translateX(-50%); }.vision-resize--ne { top: -8px; right: -8px; cursor: nesw-resize; }.vision-resize--e { top: 50%; right: -8px; cursor: ew-resize; transform: translateY(-50%); }.vision-resize--se { right: -8px; bottom: -8px; cursor: nwse-resize; }.vision-resize--s { bottom: -8px; left: 50%; cursor: ns-resize; transform: translateX(-50%); }.vision-resize--sw { bottom: -8px; left: -8px; cursor: nesw-resize; }.vision-resize--w { top: 50%; left: -8px; cursor: ew-resize; transform: translateY(-50%); }
.goal-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.goal-list-card__header { grid-template-columns: 58px minmax(0, 1fr); grid-template-areas: "avatar title" "avatar meta"; cursor: default; }
.goal-list-card__context { display: flex; align-items: center; justify-content: space-between; gap: .7rem; margin-top: .8rem; color: var(--color-text-faint); font-size: .78rem; }
.goal-list-card__context > span:first-child { display: inline-flex; align-items: center; gap: .4rem; }
.goal-list-card__context > span:first-child .icon { width: 16px; height: 16px; }
.goal-list-card .goal-progress { margin: .85rem 0 .3rem; }
.goal-list-card .custom-list-card__information a, .goal-list-card .custom-list-card__checklist a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 2px; }
.goal-stat { position: relative; display: grid; min-height: 116px; grid-template-columns: 52px minmax(0, 1fr); align-items: center; gap: .85rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: 18px; background: var(--color-surface); box-shadow: var(--shadow-card); }
.goal-stat__icon { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; background: var(--color-accent-pale); color: var(--color-accent); }
.goal-stat__icon .icon { width: 23px; height: 23px; }
.goal-stat p { font-size: .8rem; font-weight: 700; }
.goal-stat strong { display: block; margin: .05rem 0; font-size: 1.55rem; line-height: 1.15; }
.goal-stat small { display: block; overflow: hidden; color: var(--color-text-muted); font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.goal-stat b { position: absolute; right: .85rem; bottom: .9rem; color: var(--color-accent); font-size: .68rem; }
.section-heading--goals { margin-bottom: -1.25rem; }
.goals-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.goal-card { display: flex; min-height: 410px; flex-direction: column; padding: 1.25rem; border: 1px solid var(--color-border); border-radius: 20px; background: var(--color-surface); box-shadow: var(--shadow-card); }
.goal-card__header { display: grid; grid-template-columns: 48px minmax(0, 1fr) 28px; align-items: center; gap: .8rem; }
.goal-card__icon { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--goal-color) 18%, white); color: var(--goal-color); }
.goal-card__header h3 { font-size: .98rem; line-height: 1.25; }
.goal-card__header p { display: flex; align-items: center; gap: .35rem; margin-top: .25rem; color: var(--color-text-faint); font-size: .72rem; }
.goal-card__header p .icon { width: 14px; height: 14px; }
.goal-menu-wrap { position: relative; align-self: start; }.goal-card__more { background: transparent; font-weight: 800; letter-spacing: .08em; }
.goal-card__menu { position: absolute; z-index: 5; top: 2rem; right: 0; width: 125px; padding: .35rem; border: 1px solid var(--color-border); border-radius: 12px; background: white; box-shadow: var(--shadow-overlay); }
.goal-card__menu[hidden] { display: none; }.goal-card__menu button { display: flex; width: 100%; align-items: center; gap: .45rem; padding: .5rem; border-radius: 8px; background: transparent; font-size: .75rem; text-align: left; }.goal-card__menu button:hover { background: var(--color-soft); }.goal-card__menu button:last-child { color: var(--color-danger-soft); }.goal-card__menu .icon { width: 14px; height: 14px; }
.goal-card__description { min-height: 50px; margin: 1.15rem 0; overflow-wrap: anywhere; color: var(--color-text-muted); font-size: .83rem; }.goal-card__description a, .goal-tasks a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 2px; }
.goal-progress { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .8rem; }
.goal-progress > span { height: 6px; overflow: hidden; border-radius: 99px; background: #f4e9e3; }
.goal-progress > span::before { display: block; width: var(--progress); height: 100%; border-radius: inherit; background: var(--color-accent); content: ''; }
.goal-progress strong { font-size: .8rem; }
.goal-tasks { display: grid; gap: .52rem; margin: 1.15rem 0; color: var(--color-text-muted); font-size: .78rem; }
.goal-tasks label { display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: center; gap: .6rem; cursor: pointer; }.goal-tasks input { position: absolute; opacity: 0; pointer-events: none; }.goal-tasks label > span:first-of-type { display: grid; width: 18px; height: 18px; place-items: center; border: 1px solid #aaa39d; border-radius: 5px; font-size: .66rem; }.goal-tasks li.is-done label > span:first-of-type { border-color: var(--goal-color); background: var(--goal-color); color: white; }.goal-tasks li.is-done label > span:last-child { text-decoration: line-through; opacity: .7; }
.goal-card footer { display: flex; gap: .55rem; margin-top: auto; }
.goal-card footer .pending-priority, .goal-card footer .pending-category { min-height: 30px; padding: .35rem .6rem; font-size: .69rem; }
.goals-tip { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .8rem; padding: 1rem 1.25rem; border: 1px solid var(--color-border); border-radius: 17px; background: rgb(255 255 255 / .66); color: var(--color-text-muted); font-size: .8rem; }
.goals-tip > .icon { color: var(--color-accent); }
.goals-tip button { background: transparent; color: var(--color-text-faint); font-size: 1.35rem; }
.goal-dialog { width: min(720px, calc(100vw - 2rem)); max-height: min(850px, calc(100vh - 2rem)); padding: 0; overflow: auto; border: 1px solid var(--color-border); border-radius: 22px; background: white; color: var(--color-text); box-shadow: var(--shadow-overlay); }.goal-dialog::backdrop { background: rgb(52 44 38 / .38); backdrop-filter: blur(3px); }.goal-dialog form > header { position: sticky; z-index: 2; top: 0; display: flex; align-items: center; justify-content: space-between; padding: 1.3rem 1.5rem; border-bottom: 1px solid var(--color-border); background: white; }.goal-dialog header p { color: var(--color-accent); font-size: .68rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }.goal-dialog header h2 { margin-top: .2rem; font-size: 1.45rem; }.goal-dialog header button { background: transparent; color: var(--color-text-faint); font-size: 1.6rem; }
.goal-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding: 1.4rem 1.5rem; }.goal-form-grid .form-field { display: grid; gap: .4rem; }.goal-form-grid .form-field--full { grid-column: 1 / -1; }.goal-form-grid label > span, .goal-form-grid legend { color: var(--color-text-muted); font-size: .75rem; font-weight: 700; }.goal-form-grid label small { color: var(--color-text-faint); font-weight: 400; }.goal-form-grid input[type="text"], .goal-form-grid input[type="date"], .goal-form-grid textarea, .goal-form-grid select { width: 100%; min-height: 44px; padding: .7rem .8rem; border: 1px solid var(--color-border); border-radius: 11px; background: #fffdfa; color: var(--color-text); }.goal-form-grid textarea { resize: vertical; }.goal-form-grid input:focus, .goal-form-grid textarea:focus, .goal-form-grid select:focus { border-color: var(--color-accent); outline: 2px solid rgb(215 125 171 / .16); }
.goal-choice { min-width: 0; }.goal-choice > div { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .4rem; }.goal-choice label input { position: absolute; opacity: 0; }.goal-choice label > span { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid var(--color-border); border-radius: 10px; background: white; color: var(--color-text-muted); cursor: pointer; }.goal-choice input:checked + span { border-color: var(--color-accent); background: var(--color-accent-pale); color: var(--color-accent); box-shadow: 0 0 0 2px rgb(215 125 171 / .2); }.goal-choice--colors label > span { width: 30px; height: 30px; border: 5px solid white; border-radius: 50%; background: var(--choice-color); box-shadow: 0 0 0 1px var(--color-border); }.goal-choice--colors input:checked + span { background: var(--choice-color); box-shadow: 0 0 0 2px var(--color-accent); }
.goal-checklist-field { min-width: 0; }.goal-checklist-field > button { margin-top: .55rem; background: transparent; color: var(--color-accent); font-size: .76rem; font-weight: 700; }.goal-checklist-row { display: grid; grid-template-columns: 22px minmax(0, 1fr) 30px; align-items: center; gap: .5rem; margin-top: .5rem; }.goal-checklist-row input[type="checkbox"] { accent-color: var(--color-accent); }.goal-checklist-row input[type="text"] { min-height: 39px; }.goal-checklist-row button { background: transparent; color: var(--color-danger-soft); font-size: 1.15rem; }.goal-dialog form > footer { position: sticky; bottom: 0; display: flex; justify-content: flex-end; gap: .7rem; padding: 1rem 1.5rem; border-top: 1px solid var(--color-border); background: white; }.goal-dialog form > footer > button:first-child { padding: .7rem 1rem; background: transparent; color: var(--color-text-muted); }.goal-dialog form > footer .goals-new { min-height: 44px; padding-block: .6rem; }

.icon-button:hover {
  border-color: var(--color-border);
  background: var(--color-surface);
  color: var(--color-accent);
}

/* Configurações */
.settings-page { display: grid; gap: 1.25rem; padding-bottom: 4rem; }
.settings-header { margin-bottom: .35rem; }
.settings-header h1 { max-width: none; font-size: clamp(2.1rem, 4vw, 3rem); }
.settings-header p { margin-top: .35rem; color: var(--color-text-muted); font-style: italic; }
.settings-card, .settings-footer { padding: clamp(1.2rem, 3vw, 1.8rem); border: 1px solid var(--color-border); border-radius: 22px; background: rgb(255 255 255 / .82); box-shadow: var(--shadow-card); }
.settings-card > h2 { display: flex; align-items: center; gap: .6rem; margin-bottom: 1.15rem; color: var(--color-title); font-size: 1.25rem; }
.settings-card > h2 .icon { color: var(--color-accent); }
.settings-card__intro { margin: -.7rem 0 1rem; color: var(--color-text-muted); font-size: .9rem; }
.settings-card__note { display: block; margin-top: .8rem; color: var(--color-text-muted); font-size: .78rem; }
.settings-profile-form, .settings-password-form, .settings-feedback-form, .settings-review-form { display: grid; gap: 1rem; }
.settings-profile-form > label, .settings-password-form > label { display: grid; gap: .38rem; color: var(--color-text); font-size: .8rem; font-weight: 700; }
.settings-profile-form input, .settings-password-form input, .settings-feedback-form select, .settings-feedback-form textarea, .settings-review-form textarea { width: 100%; min-height: 48px; padding: .72rem .85rem; border: 1px solid var(--color-border); border-radius: 13px; background: #fffdfa; color: var(--color-text); font: inherit; }
.settings-profile-form input:focus, .settings-password-form input:focus, .settings-feedback-form select:focus, .settings-feedback-form textarea:focus, .settings-review-form textarea:focus { border-color: var(--color-accent); outline: 3px solid color-mix(in srgb, var(--color-accent) 15%, transparent); }
.settings-profile-form input[readonly] { background: var(--color-soft); color: var(--color-text-muted); }
.settings-profile-form label small { color: var(--color-text-faint); font-size: .7rem; font-weight: 400; }
.settings-profile-form > button, .settings-password-form > button, .settings-feedback-form .primary-button, .settings-review-form > button { justify-self: start; }
.settings-photo { display: grid; grid-template-columns: 76px max-content minmax(0, 1fr); align-items: center; gap: .9rem; }
.settings-photo > div { display: grid; width: 76px; height: 76px; place-items: center; overflow: hidden; border: 3px solid var(--color-accent-pale); border-radius: 50%; background: var(--color-accent); color: var(--color-on-accent); font-weight: 800; }
.settings-photo img { width: 100%; height: 100%; object-fit: cover; }
.profile-crop-dialog { width:min(460px, calc(100% - 2rem)); padding:0; border:0; border-radius:22px; background:var(--color-surface); color:var(--color-text); box-shadow:var(--shadow-card); }
.profile-crop-dialog::backdrop { background:rgb(34 28 24 / .58); }
.profile-crop-dialog form { display:grid; gap:1rem; padding:1.4rem; }
.profile-crop-dialog header h2 { margin:0; font-family:var(--font-editorial); }
.profile-crop-dialog header p { margin:.3rem 0 0; color:var(--color-text-muted); font-size:.82rem; }
.profile-crop-area { position:relative; width:min(360px, 100%); aspect-ratio:1; justify-self:center; overflow:hidden; border-radius:14px; background:#ded8d2; cursor:grab; touch-action:none; }
.profile-crop-area:active { cursor:grabbing; }
.profile-crop-area img { position:absolute; max-width:none; pointer-events:none; user-select:none; }
.profile-crop-dialog label { display:grid; gap:.4rem; font-size:.78rem; font-weight:700; }
.profile-crop-dialog footer { display:flex; justify-content:flex-end; gap:.65rem; }
.settings-photo .secondary-button { display: inline-flex; align-items: center; gap: .45rem; cursor: pointer; }
.settings-photo .secondary-button .icon { width: 20px; height: 20px; }
.settings-photo small { color: var(--color-text-faint); font-size: .72rem; }
.settings-birthday-field input::-webkit-calendar-picker-indicator { width: 22px; height: 22px; cursor: pointer; }
.settings-password-form label > span { position: relative; }
.settings-password-form label > span input { padding-right: 3rem; }
.settings-password-form label > span button { position: absolute; top: 50%; right: .65rem; width: 34px; height: 34px; border-radius: 10px; background: transparent; color: var(--color-text-muted); transform: translateY(-50%); }
.settings-password-form label > span button .icon { width: 24px; height: 24px; }
.settings-secret.is-masked { -webkit-text-security: disc; }
.settings-members-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.settings-members-heading > div { display: grid; gap: .2rem; }
.settings-members-heading p { color: var(--color-text-muted); font-size: .82rem; line-height: 1.55; }
.settings-members-heading small { color: var(--color-text-faint); font-size: .7rem; }
.settings-members-heading > button { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .35rem; }
.settings-members-list { display: grid; gap: .65rem; margin-top: 1rem; }
.settings-members-empty { padding: 1.1rem; border: 1px dashed var(--color-border); border-radius: 14px; color: var(--color-text-muted); font-size: .78rem; text-align: center; }
.settings-member { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto auto; align-items: center; gap: .75rem; padding: .85rem; border: 1px solid var(--color-border); border-radius: 15px; background: var(--color-surface); }
.settings-member > span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 13px; background: var(--color-accent-pale); color: var(--color-accent); font-weight: 800; }
.settings-member > div { display: grid; min-width: 0; gap: .15rem; }
.settings-member > div small { overflow: hidden; color: var(--color-text-muted); font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.settings-member > div p { display: flex; flex-wrap: wrap; gap: .25rem; margin-top: .25rem; }
.settings-member > div i { padding: .2rem .38rem; border-radius: 999px; background: var(--color-soft); color: var(--color-text-muted); font-size: .6rem; font-style: normal; }
.settings-member > button { padding: .5rem .65rem; border-radius: 10px; background: transparent; color: var(--color-accent); font-size: .72rem; font-weight: 750; }
.settings-member > button:hover { background: var(--color-soft); }
.settings-member > button.is-danger { color: var(--color-danger); }
.settings-member-dialog { width: min(720px, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); padding: 0; overflow: auto; border: 0; border-radius: 22px; background: var(--color-surface); color: var(--color-text); box-shadow: var(--shadow-overlay); }
.settings-member-dialog::backdrop { background: rgb(34 28 24 / .58); backdrop-filter: blur(3px); }
.settings-member-dialog form { display: grid; gap: 1rem; padding: 1.4rem; }
.settings-member-dialog header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.settings-member-dialog header small { color: var(--color-accent); font-size: .65rem; font-weight: 800; letter-spacing: .1em; }
.settings-member-dialog header h2 { margin-top: .2rem; font-family: var(--font-editorial); }
.settings-member-dialog header p { margin-top: .25rem; color: var(--color-text-muted); font-size: .78rem; }
.settings-member-dialog header > button { display: grid; width: 36px; height: 36px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: transparent; color: var(--color-text-muted); }
.settings-member-dialog form > label { display: grid; gap: .35rem; color: var(--color-text-muted); font-size: .74rem; font-weight: 750; }
.settings-member-dialog form > label input { min-height: 46px; padding: .7rem .8rem; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-canvas); color: var(--color-text); }
.settings-member-dialog form > label small { color: var(--color-text-faint); font-size: .66rem; font-weight: 400; }
.settings-member-sections { min-width: 0; padding: 1rem; border: 1px solid var(--color-border); border-radius: 15px; }
.settings-member-sections legend { padding: 0 .3rem; font-size: .8rem; font-weight: 800; }
.settings-member-sections > p { color: var(--color-text-muted); font-size: .7rem; }
.settings-member-sections > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; margin-top: .75rem; }
.settings-member-sections label { display: flex; min-width: 0; align-items: center; gap: .5rem; padding: .55rem .65rem; border: 1px solid var(--color-border); border-radius: 10px; cursor: pointer; }
.settings-member-sections input { width: 16px; height: 16px; flex: 0 0 auto; accent-color: var(--color-accent); }
.settings-member-sections span { overflow: hidden; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.settings-member-dialog footer { display: flex; justify-content: flex-end; gap: .65rem; }
.member-readonly-badge { padding: .35rem .6rem; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-accent-pale); color: var(--color-accent); font-size: .65rem; font-weight: 800; white-space: nowrap; }
.settings-appearance-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .92fr); align-items: start; gap: 1.25rem; }
.settings-palettes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; padding: 0; margin: 0; border: 0; min-inline-size: 0; }
.settings-palette { min-width: 0; cursor: pointer; }
.settings-palette--custom { grid-column: 1; width: 100%; }
.settings-palette > input { position: absolute; opacity: 0; }
.settings-palette__card { position: relative; display: grid; min-height: 132px; align-content: start; padding: 1rem; border: 1px solid var(--color-border); border-radius: 17px; background: #fffdfa; transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease; }
.settings-palette:hover .settings-palette__card { transform: translateY(-2px); }
.settings-palette > input:focus-visible + .settings-palette__card { outline: 3px solid var(--color-focus); outline-offset: 3px; }
.settings-palette > input:checked + .settings-palette__card { border-color: var(--color-accent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-accent) 24%, transparent); }
.settings-palette > input:checked + .settings-palette__card::after { position: absolute; top: .65rem; right: .65rem; display: grid; width: 23px; height: 23px; place-items: center; border-radius: 50%; background: var(--color-accent); color: white; content: '✓'; font-size: .72rem; }
.settings-palette__card b { overflow: hidden; padding-right: 1.2rem; font-size: .9rem; text-overflow: ellipsis; white-space: nowrap; }
.settings-palette__card small { overflow: hidden; margin-top: .12rem; color: var(--color-text-muted); font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.settings-palette__card > i { display: flex; gap: .34rem; margin-top: auto; padding-top: 1rem; }
.settings-palette__card em { position: relative; width: 25px; height: 25px; overflow: hidden; border: 1px solid rgb(52 44 38 / .08); border-radius: 50%; background: var(--swatch); }
.settings-palette__card em input { position: absolute; inset: -8px; width: 42px; height: 42px; cursor: pointer; opacity: 0; }
.settings-color-guide { margin-top: 1rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: 15px; background: color-mix(in srgb, var(--color-soft) 55%, white); }
.settings-color-guide > strong { font-size: .8rem; }
.settings-color-guide ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .48rem .8rem; margin-top: .7rem; }
.settings-color-guide li { display: flex; min-width: 0; align-items: center; gap: .5rem; color: var(--color-text-muted); font-size: .68rem; }
.settings-color-guide li i { width: 18px; height: 18px; flex: 0 0 auto; border: 1px solid rgb(52 44 38 / .1); border-radius: 50%; }
.settings-color-guide li:nth-child(1) i { background: var(--color-accent); }.settings-color-guide li:nth-child(2) i { background: var(--color-accent-pale); }.settings-color-guide li:nth-child(3) i { background: var(--color-soft); }.settings-color-guide li:nth-child(4) i { background: var(--color-text); }.settings-color-guide li:nth-child(5) i { background: var(--color-canvas); }
.settings-color-guide li b { color: var(--color-text); }.settings-color-guide > small { display: block; margin-top: .75rem; color: var(--color-text-faint); font-size: .66rem; line-height: 1.45; }
.settings-appearance-preview { position: sticky; top: 1rem; overflow: hidden; border: 1px solid var(--color-border); border-radius: 18px; background: var(--color-canvas); box-shadow: 0 14px 32px rgb(52 44 38 / .08); }
.settings-appearance-preview > header { display: flex; height: 32px; align-items: center; gap: 5px; padding: 0 11px; border-bottom: 1px solid var(--color-border); background: var(--color-surface); }
.settings-appearance-preview > header span { width: 6px; height: 6px; border-radius: 50%; background: var(--color-accent-soft); }.settings-appearance-preview > header span:nth-child(2) { background: var(--color-accent-pale); }.settings-appearance-preview > header span:nth-child(3) { background: var(--color-text-faint); }
.settings-appearance-preview > div { display: grid; min-height: 330px; grid-template-columns: 56px minmax(0, 1fr); }
.settings-appearance-preview aside { display: grid; align-content: start; gap: .55rem; padding: 1rem .75rem; border-right: 1px solid var(--color-border); background: var(--color-surface); }
.settings-appearance-preview aside i { height: 27px; border-radius: 8px; background: var(--color-soft); }.settings-appearance-preview aside i:first-child { background: var(--color-accent-pale); box-shadow: inset 3px 0 var(--color-accent); }
.settings-appearance-preview main { display: block; padding: 1.25rem; }
.settings-appearance-preview main > small { color: var(--color-accent); font-size: .56rem; font-weight: 800; letter-spacing: .1em; }.settings-appearance-preview h3 { margin-top: .35rem; color: var(--color-text); font-size: 1.05rem; line-height: 1.2; }.settings-appearance-preview p { margin-top: .45rem; color: var(--color-text-muted); font-size: .65rem; line-height: 1.5; }
.settings-appearance-preview article { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: .6rem; margin-top: 1rem; padding: .75rem; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-surface); box-shadow: var(--shadow-card); }.settings-appearance-preview article > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 9px; background: var(--color-accent-pale); color: var(--color-accent); font-weight: 800; }.settings-appearance-preview article div { display: grid; }.settings-appearance-preview article strong { color: var(--color-text); font-size: .7rem; }.settings-appearance-preview article small { color: var(--color-text-muted); font-size: .58rem; }
.settings-appearance-preview button { min-height: 36px; margin-top: 1rem; padding: .55rem .8rem; border-radius: 10px; background: var(--color-accent); color: var(--color-on-accent); font-size: .68rem; font-weight: 700; pointer-events: none; }
.settings-custom-editor { padding: clamp(1rem, 2.5vw, 1.5rem); border: 1px solid var(--color-border); border-radius: 20px; background: color-mix(in srgb, var(--color-canvas) 62%, white); }
.settings-custom-editor[hidden] { display: none; }
.settings-custom-editor > header h3 { color: var(--color-text); font-size: 1.05rem; }.settings-custom-editor > header p { margin-top: .2rem; color: var(--color-text-muted); font-size: .8rem; }
.settings-preset-section { margin-top: 1.25rem; }.settings-preset-section > header { margin-bottom: .7rem; }.settings-preset-section h4 { color: var(--color-text); font-size: .85rem; }.settings-preset-section > header p { margin-top: .15rem; color: var(--color-text-muted); font-size: .72rem; }
.settings-custom-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(310px, .75fr); align-items: start; gap: 1.5rem; margin-top: 1.25rem; }
.settings-custom-layout > div:last-child > h3 { margin-bottom: .55rem; color: var(--color-text-muted); font-size: .78rem; }
.settings-custom-fields { display: grid; gap: .9rem; }
.settings-color-safety { padding: .9rem 1rem; border-left: 3px solid var(--color-highlight); border-radius: 0 13px 13px 0; background: var(--color-highlight-pale); color: var(--color-text-muted); font-size: .73rem; line-height: 1.55; }.settings-color-safety strong { display: block; margin-bottom: .18rem; color: var(--color-text); font-size: .78rem; }
.settings-custom-color { display: grid; gap: .38rem; }.settings-custom-color > span { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }.settings-custom-color > span strong { font-size: .82rem; }.settings-custom-color > span small { color: var(--color-text-muted); font-size: .68rem; text-align: right; }
.settings-custom-color > div { display: grid; grid-template-columns: 50px minmax(0, 1fr); gap: .55rem; }.settings-custom-color input[type="color"] { width: 50px; height: 48px; padding: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: 13px; background: transparent; cursor: pointer; }.settings-custom-color input[type="color"]::-webkit-color-swatch-wrapper { padding: 0; }.settings-custom-color input[type="color"]::-webkit-color-swatch { border: 0; }.settings-custom-color input[type="text"] { width: 100%; min-height: 48px; padding: .7rem .85rem; border: 1px solid var(--color-border); border-radius: 13px; background: color-mix(in srgb, var(--color-canvas) 78%, white); color: var(--color-text); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.settings-custom-color input:focus { border-color: var(--color-accent); outline: 3px solid color-mix(in srgb, var(--color-accent) 15%, transparent); }
.settings-custom-actions { display: flex; align-items: center; gap: .75rem; margin-top: .35rem; }.settings-custom-actions .primary-button { display: inline-flex; align-items: center; gap: .45rem; }.settings-custom-actions > button:last-child { min-height: 44px; padding: .65rem .8rem; border-radius: 11px; background: transparent; color: var(--color-text); font-size: .76rem; font-weight: 700; }.settings-custom-actions > button:last-child:hover { background: var(--color-soft); }
.settings-custom-editor .settings-appearance-preview { position: sticky; top: 1rem; }
.settings-custom-editor .settings-appearance-preview > div { min-height: 390px; grid-template-columns: 58px minmax(0, 1fr); }
.settings-custom-editor .settings-appearance-preview aside { gap: .48rem; padding: .8rem .65rem; }.settings-custom-editor .settings-appearance-preview aside b { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 10px; background: var(--color-accent); color: var(--color-on-accent); font-size: .72rem; }.settings-custom-editor .settings-appearance-preview aside i { height: 25px; }.settings-custom-editor .settings-appearance-preview aside i.is-active { background: var(--color-accent-pale); box-shadow: inset 3px 0 var(--color-accent); }
.settings-custom-editor .settings-appearance-preview main { padding: 1rem; }.settings-custom-editor .settings-appearance-preview main > small { color: var(--color-accent); }.settings-custom-editor .settings-appearance-preview h3 { font-size: 1rem; }
.settings-preview-tabs { display: flex; gap: .35rem; margin-top: .75rem; }.settings-preview-tabs span { padding: .32rem .5rem; border-radius: 999px; background: var(--color-soft); color: var(--color-text-muted); font-size: .56rem; }.settings-preview-tabs span:first-child { background: var(--color-accent-pale); color: var(--color-accent); font-weight: 800; }
.settings-preview-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; margin-top: .7rem; }.settings-custom-editor .settings-preview-stats article { display: grid; min-height: 58px; grid-template-columns: 25px minmax(0, 1fr); gap: .4rem; margin: 0; padding: .5rem; border: 1px solid var(--color-border); border-radius: 10px; background: var(--color-surface); }.settings-preview-stats article > i { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 8px; background: var(--color-accent-pale); color: var(--color-accent); font-size: .65rem; font-style: normal; }.settings-preview-stats article:nth-child(2) > i { background: var(--color-soft); color: var(--color-text); }.settings-preview-stats article span { display: grid; }.settings-preview-stats article small { color: var(--color-text-muted); font-size: .45rem; }.settings-preview-stats article strong { color: var(--color-text); font-size: .58rem; }
.settings-custom-editor .settings-appearance-preview main > section { margin-top: .7rem; padding: .7rem; border: 1px solid var(--color-border); border-radius: 11px; background: var(--color-surface); }.settings-custom-editor .settings-appearance-preview main > section > strong { color: var(--color-text); font-size: .68rem; }.settings-custom-editor .settings-appearance-preview main > section > p { margin-top: .2rem; }.settings-custom-editor .settings-appearance-preview main > section > div { display: flex; gap: .35rem; margin-top: .55rem; }.settings-custom-editor .settings-appearance-preview main > section span, .settings-custom-editor .settings-appearance-preview main > section em { padding: .28rem .45rem; border-radius: 999px; background: var(--color-accent-pale); color: var(--color-accent); font-size: .5rem; font-style: normal; font-weight: 700; }.settings-custom-editor .settings-appearance-preview main > section em { background: var(--color-soft); color: var(--color-text-muted); }
.settings-preview-pending .settings-preview-pending__heading { display: flex; align-items: end; justify-content: space-between; gap: .5rem; }.settings-preview-pending__heading > span { display: grid; }.settings-preview-pending__heading small { color: var(--color-accent); font-size: .46rem; font-weight: 800; letter-spacing: .09em; }.settings-preview-pending__heading h3 { margin-top: .12rem; font-size: .98rem; }.settings-preview-pending__heading button { min-height: 28px; margin: 0; padding: .35rem .52rem; border-radius: 8px; font-size: .54rem; }
.settings-preview-pending main > p { margin-top: .25rem; font-size: .56rem; }
.settings-preview-search { display: flex; min-height: 30px; align-items: center; gap: .4rem; margin-top: .65rem; padding: 0 .55rem; border: 1px solid var(--color-border); border-radius: 9px; background: var(--color-surface); color: var(--color-text-faint); }.settings-preview-search span { color: var(--color-accent); font-size: .75rem; }.settings-preview-search i { font-size: .52rem; font-style: normal; }
.settings-preview-filters { display: flex; gap: .3rem; margin-top: .55rem; }.settings-preview-filters span { padding: .28rem .45rem; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); color: var(--color-text-muted); font-size: .48rem; }.settings-preview-filters span:first-child { border-color: transparent; background: var(--color-accent-pale); color: var(--color-accent); font-weight: 800; }
.settings-preview-cost { display: flex; align-items: center; justify-content: space-between; margin-top: .55rem; padding: .38rem .5rem; border: 1px solid color-mix(in srgb, var(--color-accent) 20%, var(--color-border)); border-radius: 8px; background: var(--color-accent-pale); color: var(--color-text-muted); font-size: .49rem; }.settings-preview-cost strong { color: var(--color-accent); font-size: .56rem; }
.settings-custom-editor .settings-appearance-preview main > .settings-preview-list { margin-top: .55rem; padding: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: 10px; background: var(--color-surface); }
.settings-preview-list > header { display: grid; grid-template-columns: minmax(0, 1fr) 48px; padding: .42rem .48rem .42rem 1.65rem; border-bottom: 1px solid var(--color-border); color: var(--color-text-muted); font-size: .4rem; font-weight: 800; letter-spacing: .05em; }
.settings-custom-editor .settings-preview-list article { display: grid; min-height: 48px; grid-template-columns: 18px minmax(0, 1fr) 48px; align-items: center; gap: .38rem; margin: 0; padding: .45rem .48rem; border: 0; border-bottom: 1px solid var(--color-border); border-radius: 0; background: var(--color-surface); }.settings-custom-editor .settings-preview-list article:last-child { border-bottom: 0; }.settings-preview-list article > i { display: grid; width: 18px; height: 18px; place-items: center; border: 1.5px solid var(--color-accent); border-radius: 50%; color: white; font-size: .43rem; font-style: normal; }.settings-preview-list article.is-completed > i { background: var(--color-accent); }.settings-preview-list article > div { display: grid; }.settings-preview-list article strong { overflow: hidden; color: var(--color-text); font-size: .54rem; text-overflow: ellipsis; white-space: nowrap; }.settings-preview-list article small { color: var(--color-text-muted); font-size: .43rem; }.settings-preview-list article time { color: var(--color-text-muted); font-size: .45rem; text-align: right; }.settings-preview-list article.is-completed strong { color: var(--color-text-faint); text-decoration: line-through; }
.settings-plan { margin-bottom: 1rem; color: var(--color-text-muted); }.settings-plan strong { color: var(--color-text); }.settings-plan span { margin: 0 .35rem; }
.settings-link-row { display: flex; width: 100%; min-height: 50px; align-items: center; justify-content: space-between; padding: .75rem 1rem; border: 1px solid var(--color-border); border-radius: 13px; background: color-mix(in srgb, var(--color-soft) 55%, white); text-align: left; }
.settings-link-row:hover { border-color: var(--color-accent); color: var(--color-accent); }.settings-link-row span { font-size: 1.6rem; line-height: 1; }
.settings-switches { display: grid; gap: .45rem; }
.settings-switch-row { display: grid; min-height: 52px; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: .75rem; padding: .65rem .85rem; border: 1px solid var(--color-border); border-radius: 13px; cursor: pointer; }
.settings-switch-row > span { display: grid; }.settings-switch-row strong { font-size: .85rem; }.settings-switch-row small { color: var(--color-text-muted); font-size: .7rem; font-weight: 400; }
.settings-switch-row input, .settings-inline-switch input { position: absolute; opacity: 0; }
.settings-switch-row i, .settings-inline-switch i { position: relative; width: 44px; height: 25px; border-radius: 999px; background: #ded8d1; transition: background 150ms ease; }
.settings-switch-row i::after, .settings-inline-switch i::after { position: absolute; top: 3px; left: 3px; width: 19px; height: 19px; border-radius: 50%; background: white; box-shadow: 0 2px 5px rgb(52 44 38 / .18); content: ''; transition: transform 150ms ease; }
.settings-switch-row input:checked + i, .settings-inline-switch input:checked + i { background: var(--color-accent); }.settings-switch-row input:checked + i::after, .settings-inline-switch input:checked + i::after { transform: translateX(19px); }
.settings-switch-row input:focus-visible + i, .settings-inline-switch input:focus-visible + i { outline: 3px solid var(--color-focus); outline-offset: 3px; }
.settings-reminder-heading { display: grid; margin: 1.5rem 0 .7rem; color: var(--color-text-muted); font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; }.settings-reminder-heading small { margin-top: .1rem; font-size: .7rem; font-weight: 400; letter-spacing: 0; text-transform: none; }
.settings-reminder-modules { display: grid; gap: .55rem; }
.settings-reminder-module { padding: .9rem 1rem; border: 1px solid var(--color-border); border-radius: 15px; }
.settings-reminder-module header { display: flex; align-items: start; justify-content: space-between; gap: .75rem; }.settings-reminder-module header > span { display: grid; }.settings-reminder-module header strong { font-size: .9rem; }.settings-reminder-module header small { color: var(--color-text-muted); font-size: .7rem; }
.settings-inline-switch { display: grid; cursor: pointer; }.settings-reminder-module > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-top: .8rem; }.settings-reminder-module > div[aria-disabled="true"] { opacity: .52; }
.settings-reminder-module > div label { display: grid; gap: .3rem; color: var(--color-text-muted); font-size: .7rem; font-weight: 700; }.settings-reminder-module select { min-height: 42px; padding: .55rem .7rem; border: 1px solid var(--color-border); border-radius: 11px; background: #fffdfa; color: var(--color-text); }
.settings-feedback-form textarea, .settings-review-form textarea { min-height: 120px; resize: vertical; }
.settings-feedback-form > div { display: flex; align-items: center; gap: .65rem; }.settings-feedback-form > div .secondary-button { display: inline-flex; align-items: center; gap: .45rem; cursor: pointer; }.settings-feedback-form > div > span { min-width: 0; overflow: hidden; color: var(--color-text-faint); font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }.settings-feedback-form > div .primary-button { margin-left: auto; }
.settings-review-form fieldset { display: flex; flex-direction: row-reverse; justify-content: flex-end; }.settings-review-form fieldset input { position: absolute; opacity: 0; }.settings-review-form fieldset label { cursor: pointer; }.settings-review-form fieldset label span[aria-hidden] { color: #d8d1c9; font-size: 2rem; line-height: 1; }.settings-review-form fieldset label:hover span[aria-hidden], .settings-review-form fieldset label:hover ~ label span[aria-hidden], .settings-review-form fieldset input:checked ~ span[aria-hidden], .settings-review-form fieldset label:has(input:checked) ~ label span[aria-hidden] { color: #dbb858; }
.settings-footer { display: flex; }.settings-live { position: fixed; z-index: 20; right: 1.25rem; bottom: 1.25rem; max-width: min(420px, calc(100vw - 2.5rem)); min-height: 0; padding: 0; border-radius: 13px; background: var(--color-text); color: white; box-shadow: var(--shadow-overlay); font-size: .78rem; }.settings-live:not(:empty) { padding: .75rem 1rem; }
:root[data-theme="dark"] .settings-live:not(:empty) { border: 1px solid var(--color-border); border-left: 3px solid var(--color-accent); background: var(--color-soft); color: var(--color-text); }
@media (max-width: 1050px) { .settings-palettes { grid-template-columns: repeat(2, minmax(0, 1fr)); }.settings-palette--custom { grid-column: 1; }.settings-custom-layout { grid-template-columns: 1fr; }.settings-custom-editor .settings-appearance-preview { position: static; }.settings-appearance-layout { grid-template-columns: 1fr; }.settings-appearance-preview { position: static; }.settings-appearance-preview > div { min-height: 280px; } }
@media (max-width: 620px) { .settings-card, .settings-footer { padding: 1rem; border-radius: 18px; }.settings-photo { grid-template-columns: 64px minmax(0, 1fr); }.settings-photo > div { width: 64px; height: 64px; }.settings-photo small { grid-column: 2; }.settings-color-guide ol { grid-template-columns: 1fr; }.settings-reminder-module > div { grid-template-columns: 1fr; }.settings-feedback-form > div { align-items: stretch; flex-wrap: wrap; }.settings-feedback-form > div .primary-button { width: 100%; justify-content: center; margin-left: 0; }.settings-profile-form > button, .settings-password-form > button, .settings-review-form > button { width: 100%; justify-content: center; }.settings-members-heading { align-items: stretch; flex-direction: column; }.settings-member { grid-template-columns: 38px minmax(0, 1fr); }.settings-member > button { grid-column: auto; }.settings-member-sections > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }.member-readonly-badge { display: none; } }
@media (max-width: 620px) { .settings-palettes { grid-template-columns: 1fr; }.settings-palette--custom { grid-column: auto; }.settings-custom-color > span { align-items: start; flex-direction: column; gap: .05rem; }.settings-custom-color > span small { text-align: left; }.settings-custom-actions { align-items: stretch; flex-direction: column; }.settings-custom-actions button { width: 100%; justify-content: center; } }
@media (max-width: 390px) { .settings-appearance-preview > div { grid-template-columns: 44px minmax(0, 1fr); }.settings-appearance-preview main { padding: 1rem; }.settings-preview-stats { grid-template-columns: 1fr; } }

/* Tema escuro: componentes antigos ainda tinham superfícies claras fixas. */
:root[data-theme="dark"] :is(
  .birthday-list-card, .birthday-dialog, .birthday-field > input, .birthday-field > textarea,
  .vision-board__hint, .goal-card__menu, .goals-tip, .goal-dialog, .goal-dialog form > header,
  .goal-form-grid input, .goal-form-grid textarea, .goal-form-grid select, .goal-choice label > span,
  .goal-dialog form > footer, .settings-card, .settings-footer, .settings-profile-form input,
  .settings-password-form input, .settings-feedback-form select, .settings-feedback-form textarea,
  .settings-review-form textarea, .settings-custom-editor, .settings-reminder-module select,
  .home-stats article, .home-period button, .home-week-day, .home-demand, .home-calendar,
  .home-overview > section, .home-overview > aside, .home-room-card, .home-room-actions button,
  .home-dialog, .home-field input, .home-field select, .home-field textarea,
  .home-field .pending-category-picker__trigger, .home-managed-picker .pending-category-option > div button,
  .home-search-results, .home-room-icon-options span, .finance-transaction__menu > div,
  .finance-dialog:not(.finance-entity-dialog) .work-category-trigger, .work-task-panel,
  .work-company-filter .work-category-trigger, .work-company-filter__menu, .work-dialog,
  .work-field input, .work-field textarea, .work-field select, .work-category-trigger,
  .work-category-menu, .work-dialog form > footer, .work-details-dialog,
  .habit-date-navigation > div > button, .habit-date-navigation > div > button:disabled:hover,
  .habit-date-navigation time, .habit-stats article, .habits-board, .habit-days-field label span,
  .habit-icon-picker label, .habit-importance label > span, .journey-card, .diary-card,
  .diary-writing-card, .diary-field input, .diary-field textarea, .diary-password-input input,
  .diary-moods label > span, .diary-change-dialog, .diary-search, .diary-entry-card,
  .diary-entry-menu > div, .password-card, .study-workspace, .study-schedule input,
  .study-editor, .study-editor__toolbar, .study-highlight-menu, .study-managed-picker .pending-category-picker__trigger,
  .study-material
) { background: var(--color-surface); }

:root[data-theme="dark"] :is(.home-week-day, .home-demand, .home-room-card, .work-task-panel) { border-color: var(--color-border); }
:root[data-theme="dark"] :is(.birthday-gifts header button, .home-week-day > header > span, .home-rooms-intro > span, .home-room-card > div > button b) { background: var(--color-accent-pale); }
:root[data-theme="dark"] :is(.overview-metrics article > i.is-yellow, .home-stat-icon--orange, .habit-stats article:nth-child(3) > span) { background: #493b20; color: #f2c76d; }
:root[data-theme="dark"] :is(.pending-category--home, .pending-priority--alta, .pending-priority--media, .study-schedule p) { background: var(--color-soft); }
:root[data-theme="dark"] :is(
  .home-room-mini, .birthday-detail__stats > span, .finance-transaction--credit,
  .finance-calendar__day.is-empty, .calendar-day.is-outside, .journey-summary-grid article,
  .journey-patterns article, .journey-records article, .journey-ranking article,
  .journey-badges article, .journey-badges article.is-unlocked, .journey-retro article,
  .diary-how footer, .diary-how--inline
) { background: var(--color-soft); }
:root[data-theme="dark"] .home-room-mini > span { background: color-mix(in srgb, var(--room-color) 28%, var(--color-soft)); }
:root[data-theme="dark"] :is(
  .home-stat-icon--pink, .finance-transaction__icon--expense, .finance-calendar__day div > span.is-expense,
  .pending-category--subscriptions, .diary-lock-art, .diary-how li b
) { background: #4a2936; color: #f09abb; }
:root[data-theme="dark"] :is(
  .home-stat-icon--violet, .overview-metrics article > i.is-purple,
  .finance-transaction__icon--card, .finance-calendar__day div > span.is-credit,
  .pending-category--documents, .habit-stats article:nth-child(4) > span
) { background: #342b4a; color: #bda8f4; }
:root[data-theme="dark"] :is(
  .overview-metrics article > i.is-green, .finance-transaction__icon--income,
  .finance-calendar__day div > span:not(.is-expense, .is-credit), .pending-priority--baixa,
  .habit-stats article:nth-child(2) > span, .habit-check input:checked + span
) { background: #233d30; color: #8fd2aa; }
:root[data-theme="dark"] :is(.pending-category--finance, .symptom-record h3 span) { background: #203b3e; color: #86ced2; }
:root[data-theme="dark"] :is(.goal-progress > span, .journey-heatmap__grid i, .journey-legend i) { background: var(--color-border); }
:root[data-theme="dark"] :is(
  .birthday-detail__hero button, .birthday-detail__stats small, .birthday-detail__stats strong,
  .birthday-detail__stats strong i, .birthday-detail__facts p, .birthday-detail__facts .icon,
  .birthday-detail__fact-icon, .birthday-detail__gifts > p, .birthday-detail__gifts ul,
  .pending-form-field, .pending-form-field > small, .pending-appearance legend,
  .pending-category-picker__trigger, .pending-category-option > button,
  .finance-dialog:not(.finance-entity-dialog) .finance-segmented legend, .calendar-notification,
  .habit-date-navigation footer em, .habit-importance label > span > small,
  .habit-importance > p, .journey-hero p, .journey-card > p, .journey-retro > p,
  .journey-months, .journey-legend, .journey-month-chart small, .journey-summary-grid small,
  .journey-patterns small, .journey-records small, .journey-summary-grid span,
  .journey-patterns span, .journey-week-chart small, .journey-retro article small,
  .diary-unlock-hero > p:first-of-type, .diary-forgot-button
) { color: var(--color-text-muted); }
:root[data-theme="dark"] .birthdays-tools > div button.is-active { border-color: var(--color-border); background: var(--color-soft); }
:root[data-theme="dark"] .birthday-avatar { background: color-mix(in srgb, var(--person-color) 28%, var(--color-soft)); color: var(--color-text); }
:root[data-theme="dark"] .finance-summary--income { --finance-soft: #233d30; --finance-color: #8fd2aa; }
:root[data-theme="dark"] .finance-summary--expense { --finance-soft: #4a2936; --finance-color: #f09abb; }
:root[data-theme="dark"] .finance-summary--card { --finance-soft: #342b4a; --finance-color: #bda8f4; }
:root[data-theme="dark"] .finance-summary--balance { --finance-soft: #24384a; --finance-color: #91bfe5; }

/* Segunda passada: pequenos acentos que ainda misturavam a cor com branco. */
:root[data-theme="dark"] .overview-list li { background: color-mix(in srgb, var(--overview-item-color) 14%, var(--color-soft)); }
:root[data-theme="dark"] .overview-list li > em { background: color-mix(in srgb, var(--overview-item-color) 20%, var(--color-soft)); color: var(--color-text-muted); }
:root[data-theme="dark"] .activity-source-link { background: color-mix(in srgb, var(--activity-color) 24%, var(--color-soft)); color: var(--color-text-muted); }
:root[data-theme="dark"] .activity-source-link:hover { background: color-mix(in srgb, var(--activity-color) 34%, var(--color-soft)); color: var(--color-text); }
:root[data-theme="dark"] .home-room-color-options label > span { border-color: var(--color-surface); }
:root[data-theme="dark"] .vision-board { border-color: var(--color-border); background: radial-gradient(circle at 12% 15%, color-mix(in srgb, var(--color-accent) 13%, transparent), transparent 30%), radial-gradient(circle at 88% 75%, color-mix(in srgb, var(--color-highlight) 10%, transparent), transparent 34%), var(--color-surface); }
:root[data-theme="dark"] .vision-board::before { background-image: radial-gradient(var(--color-border) 1px, transparent 1px); opacity: .5; }
:root[data-theme="dark"] .vision-board__add { color: var(--color-on-accent); }
:root[data-theme="dark"] .home-month-day button { background: color-mix(in srgb, var(--demand-color) 22%, var(--color-soft)); color: var(--color-text); }
:root[data-theme="dark"] :is(.custom-list-card::before, .study-folder::before, .password-card::before) { background: color-mix(in srgb, var(--list-color, var(--password-card-color)) 62%, var(--color-surface)); }
:root[data-theme="dark"] :is(.custom-list-card__avatar, .study-folder__avatar) { background: color-mix(in srgb, var(--list-color) 28%, var(--color-soft)); }
:root[data-theme="dark"] .habit-row__icon { background: color-mix(in srgb, var(--habit-color) 30%, var(--color-soft)); color: color-mix(in srgb, var(--habit-color) 62%, var(--color-text)); }
:root[data-theme="dark"] .agenda-event { background: color-mix(in srgb, var(--activity-color, var(--category-event-background)) 28%, var(--color-soft)); color: var(--color-text); }
:root[data-theme="dark"] .agenda-event.category-tag--trabalho { background: color-mix(in srgb, var(--category-work-text) 24%, var(--color-soft)); color: var(--color-text); }
:root[data-theme="dark"] .agenda-event.category-tag--estudos { background: color-mix(in srgb, var(--category-study-text) 24%, var(--color-soft)); color: var(--color-text); }
:root[data-theme="dark"] .agenda-event.category-tag--casa { background: color-mix(in srgb, var(--category-home-text) 24%, var(--color-soft)); color: var(--color-text); }
:root[data-theme="dark"] .recommendation-row { background: var(--color-surface); color: var(--color-text-muted); }
:root[data-theme="dark"] .recommendation-row__title > span { background: color-mix(in srgb, var(--recommendation-color) 30%, var(--color-soft)); }
:root[data-theme="dark"] .recommendation-category { background: color-mix(in srgb, var(--recommendation-color) 24%, var(--color-soft)); color: var(--color-text); }
:root[data-theme="dark"] .settings-color-safety { border-left-color: color-mix(in srgb, var(--color-highlight) 72%, var(--color-border)); background: color-mix(in srgb, var(--color-highlight) 12%, var(--color-soft)); }
:root[data-theme="dark"] .home-upcoming > button:hover { background: var(--color-soft); }

/* Seletores de cor precisam parecer recortados da superfície atual, não de uma tela branca. */
:root[data-theme="dark"] :is(
  .work-color-picker label > span,
  .goal-choice--colors label > span,
  .home-room-color-options label > span,
  .activity-color-options span,
  .study-editor__toolbar .study-highlight-menu button
) { border-color: var(--color-surface); box-shadow: 0 0 0 1px var(--color-border); }
:root[data-theme="dark"] :is(
  .work-color-picker label > input:checked + span,
  .goal-choice--colors input:checked + span,
  .home-room-color-options input:checked + span,
  .activity-color-options input:checked + span
) { box-shadow: 0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-accent); }
:root[data-theme="dark"] :is(
  .work-color-picker label > input:focus-visible + span,
  .goal-choice--colors input:focus-visible + span,
  .home-room-color-options input:focus-visible + span,
  .activity-color-options input:focus-visible + span,
  .study-editor__toolbar .study-highlight-menu button:focus-visible
) { outline: 2px solid var(--color-focus); outline-offset: 4px; }
:root[data-theme="dark"] .work-color-picker .work-color-custom { border-color: var(--color-text-muted); background: var(--custom-work-color, var(--color-soft)); color: var(--color-text); box-shadow: 0 0 0 1px var(--color-border); }
:root[data-theme="dark"] .home-room-custom-color span { background: var(--color-soft); color: var(--color-text); }

.brand {
  display: flex;
  min-height: 44px;
  min-width: 0;
  align-items: center;
  gap: 0.7rem;
  border-radius: var(--radius-medium);
}

.brand__logo {
  display: block;
  width: 174px;
  height: auto;
  flex: 0 0 174px;
}

.brand__mark {
  display: grid;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  place-items: center;
  border: 0;
  border-radius: 15px;
  background: var(--color-accent-pale);
  color: var(--color-accent);
  color: var(--color-white);
  font-family: var(--font-editorial);
  font-size: 1.2rem;
  font-weight: 700;
  box-shadow: none;
}

.brand__copy {
  display: grid;
  min-width: 0;
  line-height: 1.15;
  white-space: nowrap;
}

.brand__copy strong {
  font-family: var(--font-ui);
  color: var(--color-accent);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.025em;
}

.brand__copy small {
  margin-top: 0.2rem;
  color: var(--color-text-muted);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
}

.sidebar__section-title {
  margin: 1.55rem 0.75rem 0.55rem;
  overflow: hidden;
  color: var(--color-text-faint);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
}

.nav-list {
  display: grid;
  gap: 0.32rem;
  padding: 0.25rem;
}
.nav-list > li { position: relative; }
.sidebar-customize { display: flex; align-items: center; justify-content: flex-end; gap: .35rem; margin: 0 .25rem .35rem; }
.sidebar-customize > button, .sidebar-customize > div button { display: inline-flex; align-items: center; gap: .4rem; min-height: 32px; padding: .3rem .45rem; color: var(--color-text-muted); font-size: .7rem; font-weight: 700; }
.sidebar-customize > button, .sidebar-customize > div button { border: 0; background: transparent; box-shadow: none; }
.sidebar-customize > button:hover, .sidebar-customize > div button:hover { color: var(--color-accent); }
.sidebar-customize .icon { width: 15px; height: 15px; }
.sidebar-customize > div { display: flex; align-items: center; gap: .15rem; }
.sidebar-customize > div[hidden] { display: none; }
.sidebar__collapse { position: fixed; z-index: 32; top: 1.9rem; left: calc(var(--current-sidebar-width) - 15px); width: 30px; height: 30px; flex: 0 0 30px; border: 1px solid var(--color-border); border-radius: 10px; background: var(--color-surface); color: var(--color-text-muted); box-shadow: 0 4px 12px color-mix(in srgb, var(--color-text) 7%, transparent); }
.sidebar__collapse:hover { border-color: color-mix(in srgb, var(--color-accent) 45%, var(--color-border)); background: var(--color-accent-pale); color: var(--color-accent); }
.sidebar__collapse-arrow { display: block; font-size: 1.45rem; font-weight: 400; line-height: .7; transform: translateY(-1px); }
.sidebar__close { display: none !important; }
.trash-list { display: grid; gap: .7rem; margin-top: 1.5rem; }
.trash-item { display: grid; grid-template-columns: 24px 42px minmax(0, 1fr) auto auto; align-items: center; gap: .8rem; padding: .9rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-large); background: var(--color-surface); }
.trash-select input { width: 17px; height: 17px; accent-color: var(--color-accent); }
.trash-item__icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 12px; background: var(--color-soft); color: var(--color-text-muted); }
.trash-item__icon .icon { width: 18px; height: 18px; }
.trash-item > div { display: grid; gap: .18rem; min-width: 0; }
.trash-item small { color: var(--color-text-muted); font-size: .74rem; }
.trash-item button { padding: .55rem .8rem; border: 1px solid var(--color-border); border-radius: var(--radius-pill); font-size: .74rem; font-weight: 750; }
.trash-item button.is-danger { color: var(--color-danger); }
.trash-bulk { position: sticky; bottom: .5rem; display: flex; align-items: center; justify-content: flex-end; gap: 1rem; padding: .8rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-large); background: color-mix(in srgb, var(--color-surface) 94%, transparent); box-shadow: var(--shadow-card); backdrop-filter: blur(12px); }
.trash-bulk label { margin-right: auto; font-size: .78rem; font-weight: 700; }
.trash-bulk input { accent-color: var(--color-accent); }
.trash-bulk button:disabled { opacity: .45; cursor: not-allowed; }
.nav-list > li[draggable="true"] { padding-right: 54px; outline: 1px solid color-mix(in srgb, var(--color-accent) 25%, transparent); border-radius: 15px; cursor: grab; }
.nav-list > li[draggable="true"]:active { cursor: grabbing; }
.nav-list > li.is-dragging { opacity: .45; }
.nav-list > li[data-nav-drop="before"]::before, .nav-list > li[data-nav-drop="after"]::after { position: absolute; z-index: 2; right: .4rem; left: .4rem; height: 3px; border-radius: 999px; background: var(--color-accent); content: ''; }
.nav-list > li[data-nav-drop="before"]::before { top: -.18rem; }
.nav-list > li[data-nav-drop="after"]::after { bottom: -.18rem; }
.nav-item__editing { position: absolute; right: .25rem; top: 50%; display: flex; align-items: center; gap: .1rem; transform: translateY(-50%); }
.nav-item__editing button { width: 20px; height: 28px; border: 0; background: transparent; box-shadow: none; color: var(--color-accent); font-size: .78rem; font-weight: 800; }
.nav-item__editing button:hover { color: var(--color-text); }
.nav-item__drag-handle { display: grid; width: 24px; height: 28px; place-items: center; color: var(--color-text-faint); }
.nav-item__drag-handle .icon { width: 18px; height: 18px; }
.sidebar-hidden { display: grid; gap: .25rem; margin: .45rem .25rem; padding: .55rem; border: 1px dashed var(--color-border); border-radius: 12px; }
.sidebar-hidden[hidden] { display: none; }
.sidebar-hidden strong { color: var(--color-text-muted); font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }
.sidebar-hidden button { justify-self: start; color: var(--color-accent); font-size: .7rem; font-weight: 700; }

.nav-item {
  position: relative;
  display: flex;
  min-height: 48px;
  min-width: 0;
  align-items: center;
  gap: 0.8rem;
  padding: 0.6rem 0.78rem;
  border: 1px solid transparent;
  border-radius: 15px;
  color: #6f665e;
  font-size: 0.92rem;
  font-weight: 500;
}

.nav-item::before {
  display: none;
}

.nav-item:hover {
  background: color-mix(in srgb, var(--color-surface) 76%, transparent);
  color: var(--color-text);
}

.nav-item[aria-current="page"] {
  border-color: transparent;
  background: var(--color-active);
  color: var(--color-accent);
  font-weight: 600;
}

.nav-item__icon {
  display: grid;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  place-items: center;
}

.nav-item__icon .icon {
  display: block;
  width: 21px;
  height: 21px;
}

.nav-item__label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sidebar__footer {
  margin: 0.8rem 0.7rem 0;
  overflow: hidden;
  color: var(--color-text-faint);
  font-family: var(--font-ui);
  font-size: 0.82rem;
  font-style: normal;
  white-space: nowrap;
}

.app-shell[data-sidebar="collapsed"] .brand__copy,
.app-shell[data-sidebar="collapsed"] .nav-item__label,
.app-shell[data-sidebar="collapsed"] .sidebar__section-title,
.app-shell[data-sidebar="collapsed"] .sidebar__footer {
  width: 0;
  margin-inline: 0;
  opacity: 0;
}

.app-shell[data-sidebar="collapsed"] .sidebar__header {
  flex-direction: column;
}

.app-shell[data-sidebar="collapsed"] .nav-item {
  gap: 0;
  justify-content: center;
  padding-inline: 0.5rem;
}

.app-shell[data-sidebar="collapsed"] .brand {
  width: 40px;
  overflow: hidden;
  gap: 0;
}

.app-shell[data-sidebar="collapsed"] .brand__logo { width: 207px; max-width: none; flex-basis: 207px; }
.app-shell[data-sidebar="collapsed"] .sidebar__collapse-arrow {
  transform: rotate(180deg);
}

.topbar__context {
  display: grid;
  min-width: 0;
  line-height: 1.25;
}

.topbar__context span {
  color: var(--color-text-faint);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.topbar__context strong {
  overflow: hidden;
  font-size: 0.91rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-trigger {
  display: flex;
  min-height: 52px;
  align-items: center;
  gap: 0.7rem;
  padding: 0.35rem 0.55rem 0.35rem 0.4rem;
  border: 1px solid transparent;
  border-radius: 18px;
  background: color-mix(in srgb, var(--color-surface) 55%, transparent);
  text-align: left;
}

.profile-trigger:hover,
.profile-trigger:focus-visible {
  border-color: var(--color-border);
  background: var(--color-surface);
}

.profile-avatar {
  display: grid;
  width: 40px;
  height: 40px;
  aspect-ratio: 1;
  overflow: hidden;
  box-sizing: border-box;
  flex: 0 0 40px;
  place-items: center;
  border: 2px solid var(--color-white);
  border-radius: 50%;
  background: var(--color-surface);
  color: var(--color-text);
  font-family: var(--font-editorial);
  font-size: 1rem;
  font-weight: 700;
  box-shadow: 0 0 0 1px var(--color-border);
}

.profile-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }

.global-search { position: relative; display: flex; width: min(100%, 720px); min-width: 180px; align-items: center; gap: .75rem; padding: 0 1rem; border: 1px solid var(--color-border); border-radius: 22px; background: var(--color-surface); box-shadow: var(--shadow-card); }
.global-search > .icon { width: 18px; height: 18px; flex: 0 0 auto; color: var(--color-text-muted); }
.global-search input { width: 100%; min-height: 52px; padding: 0; border: 0; outline: 0; background: transparent; color: var(--color-text); font-size: clamp(.85rem, 1.25vw, 1rem); }
.global-search input::placeholder { color: var(--color-text-faint); }
.global-search:focus-within { border-color: var(--color-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 16%, transparent); }
.global-search__results { position: absolute; z-index: 40; top: calc(100% + .55rem); left: 0; display: grid; width: min(620px, calc(100vw - 2rem)); gap: .15rem; padding: .55rem; border: 1px solid var(--color-border); border-radius: 18px; background: var(--color-surface); box-shadow: var(--shadow-overlay); }
.global-search__results[hidden] { display: none; }
.global-search__results a { display: grid; min-width: 0; gap: .12rem; padding: .7rem .8rem; border-radius: 12px; }
.global-search__results a:hover { background: var(--color-accent-pale); }
.global-search__results strong, .global-search__results small { overflow-wrap: anywhere; }
.global-search__results small { color: var(--color-text-muted); font-size: .72rem; }
.global-search__results p { padding: .8rem; color: var(--color-text-muted); }
.topbar-action, .theme-toggle { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: .55rem; padding: .65rem .9rem; border: 1px solid var(--color-border); border-radius: 18px; background: var(--color-surface); color: var(--color-text); font-weight: 750; box-shadow: var(--shadow-card); white-space: nowrap; }
.topbar-action .icon { width: 18px; height: 18px; }
.topbar-action { position: relative; width: 52px; padding: .25rem; }
.notification-count { position: absolute; top: -6px; right: -6px; display: grid; min-width: 21px; height: 21px; place-items: center; padding: 0 5px; border: 2px solid var(--color-canvas); border-radius: 999px; background: var(--color-accent); color: white; font-size: .62rem; line-height: 1; }
.notification-count[hidden] { display: none; }
.notification-center { position: fixed; z-index: 100; inset: 76px 1.25rem auto auto; width: min(390px, calc(100vw - 2rem)); max-height: min(620px, calc(100vh - 96px)); margin: 0; padding: 0; overflow: hidden auto; border: 1px solid var(--color-border); border-radius: 22px; background: var(--color-surface); color: var(--color-text); box-shadow: var(--shadow-overlay); }
.notification-center::backdrop { background: transparent; }
.notification-center > header { position: sticky; z-index: 1; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; border-bottom: 1px solid var(--color-border); background: color-mix(in srgb, var(--color-surface) 94%, transparent); backdrop-filter: blur(12px); }
.notification-center > header span { display: grid; gap: .12rem; }
.notification-center > header small { color: var(--color-accent); font-size: .6rem; font-weight: 850; letter-spacing: .13em; }
.notification-center > header strong { font-family: var(--font-editorial); font-size: 1.25rem; }
.notification-center > header button { background: transparent; color: var(--color-accent); font-size: .72rem; font-weight: 800; }
.notification-center__list { display: grid; padding: .45rem; }
.notification-center__list[hidden] { display: none; }
.notification-center__list button { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; align-items: start; gap: .7rem; width: 100%; padding: .75rem; border-radius: 15px; background: transparent; text-align: left; }
.notification-center__list button:hover { background: var(--color-soft); }
.notification-center__list button > i { width: 8px; height: 8px; margin-top: .3rem; border-radius: 50%; background: var(--color-border); }
.notification-center__list button.is-unread > i { background: var(--color-accent); box-shadow: 0 0 0 4px var(--color-accent-pale); }
.notification-center__list button > span { display: grid; min-width: 0; gap: .18rem; }
.notification-center__list strong { overflow-wrap: anywhere; font-size: .82rem; }
.notification-center__list small, .notification-center__list time { color: var(--color-text-muted); font-size: .68rem; line-height: 1.35; }
.notification-center__list time { white-space: nowrap; }
.notification-center__empty { padding: 2.5rem 1.25rem; color: var(--color-text-muted); font-size: .8rem; text-align: center; }
.notification-center > footer { display: grid; gap: .45rem; padding: .75rem 1rem; border-top: 1px solid var(--color-border); color: var(--color-text-faint); font-size: .64rem; text-align: center; }
.notification-center > footer button { justify-self: center; color: var(--color-accent); font-size: .7rem; font-weight: 800; }
.notification-center > footer button:disabled { color: var(--color-text-faint); cursor: not-allowed; }
.theme-toggle { gap: .1rem; padding: .3rem; }
.theme-toggle span { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 13px; color: var(--color-text-muted); }
.theme-toggle span:first-child, .theme-toggle[aria-pressed="true"] span:last-child { background: var(--color-soft); color: var(--color-text); box-shadow: var(--shadow-card); }
.theme-toggle[aria-pressed="true"] span:first-child { background: transparent; color: var(--color-text-muted); box-shadow: none; }

.profile-summary {
  display: grid;
  line-height: 1.2;
}

.profile-summary strong {
  font-size: 0.84rem;
}

.profile-summary small {
  margin-top: 0.16rem;
  color: var(--color-text-faint);
  font-size: 0.69rem;
}

.profile-trigger__chevron {
  width: 1rem;
  height: 1rem;
  color: var(--color-text-faint);
}

.profile-menu {
  position: fixed;
  inset: calc(var(--topbar-height) - 0.2rem) clamp(0.75rem, 3vw, 2.5rem) auto auto;
  width: min(245px, calc(100vw - 1.5rem));
  margin: 0;
  padding: 0.55rem;
  border: 1px solid var(--color-border);
  border-radius: 20px;
  background: var(--color-surface);
  color: var(--color-text);
  box-shadow: var(--shadow-overlay);
}

.profile-menu::backdrop {
  background: transparent;
}

.profile-menu__title {
  padding: 0.5rem 0.7rem 0.35rem;
  color: var(--color-text-faint);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.profile-menu button {
  display: flex;
  width: 100%;
  min-height: 44px;
  align-items: center;
  gap: 0.7rem;
  padding: 0.62rem 0.7rem;
  border-radius: 11px;
  background: transparent;
  color: var(--color-text-muted);
  text-align: left;
}

.profile-menu button:hover,
.profile-menu button:focus-visible {
  background: var(--color-soft);
  color: var(--color-text);
}

.profile-menu__separator {
  height: 1px;
  margin: 0.35rem 0.55rem;
  background: var(--color-border);
}

.profile-menu .profile-menu__logout {
  color: var(--color-danger-soft);
}

.logout-screen { min-height: 100vh; place-items: center; padding: 1.5rem; background: var(--color-canvas); }
.logout-screen:not([hidden]) { display: grid; }
.logout-screen > div { display: grid; width: min(420px, 100%); justify-items: center; gap: 1rem; padding: 2.5rem; border: 1px solid var(--color-border); border-radius: 26px; background: var(--color-surface); box-shadow: var(--shadow-card); text-align: center; }
.logout-screen .brand__mark { width: 58px; height: 58px; flex-basis: 58px; font-size: 1.35rem; }
.logout-screen h1 { font-family: var(--font-editorial); font-size: 2rem; }
.logout-screen p { color: var(--color-text-muted); font-size: .9rem; }
.logout-screen .primary-button { min-width: 190px; justify-content: center; margin-top: .5rem; }

.page {
  display: grid;
  gap: clamp(1.75rem, 3vw, 2.65rem);
}

.page__header {
  max-width: 740px;
}

.page__eyebrow {
  margin-bottom: 0.65rem;
  color: var(--color-accent);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.page h1 {
  max-width: 14ch;
  font-size: clamp(1.95rem, 3.5vw, 2.65rem);
}

.page__description {
  max-width: 600px;
  margin-top: 1rem;
  color: var(--color-text-muted);
  font-size: clamp(0.95rem, 1.4vw, 1.04rem);
}

.overview-hero {
  position: relative;
  display: flex;
  max-width: none;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
}

.overview-hero__date {
  margin-top: 0.55rem;
  color: var(--color-text-muted);
  font-family: var(--font-ui);
  font-size: 0.96rem;
}

.overview-hero__date time::first-letter {
  text-transform: uppercase;
}

.overview-hero__icon {
  display: grid;
  width: clamp(74px, 9vw, 104px);
  height: clamp(74px, 9vw, 104px);
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--color-accent) 10%, transparent);
  border-radius: 50%;
  background: var(--color-accent-pale);
  color: var(--color-accent);
  transform: none;
}

.overview-hero__icon .icon {
  width: 34%;
  height: 34%;
  transform: none;
}

.overview-panel {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(270px, 0.65fr);
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-large);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
}

.overview-panel::before {
  position: absolute;
  top: -95px;
  left: -70px;
  width: 190px;
  height: 190px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--color-accent-pale) 60%, transparent);
  content: "";
  pointer-events: none;
}

.overview-panel__welcome {
  position: relative;
  display: flex;
  min-height: 310px;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(2rem, 5vw, 4.2rem);
}

.overview-panel__badge,
.empty-state__badge {
  align-self: flex-start;
  padding: 0.34rem 0.65rem;
  border-radius: var(--radius-pill);
  background: var(--color-accent-pale);
  color: var(--color-accent);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.overview-panel h2 {
  max-width: 12ch;
  margin-top: 1.15rem;
  font-size: clamp(1.9rem, 4vw, 3rem);
}

.overview-panel__welcome p:last-child {
  max-width: 520px;
  margin-top: 1rem;
  color: var(--color-text-muted);
}

.overview-panel__shortcuts {
  padding: clamp(1.5rem, 3vw, 2.1rem);
  border-left: 1px solid var(--color-border);
  background: color-mix(in srgb, var(--color-soft) 66%, transparent);
}

.overview-panel__label {
  margin: 0.25rem 0.4rem 0.9rem;
  color: var(--color-text-faint);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.shortcut-list {
  display: grid;
  gap: 0.4rem;
}

.shortcut-link {
  display: grid;
  min-height: 56px;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  padding: 0.52rem 0.65rem;
  border: 1px solid transparent;
  border-radius: 13px;
  color: var(--color-text-muted);
}

.shortcut-link:hover,
.shortcut-link:focus-visible {
  border-color: var(--color-border);
  background: var(--color-surface);
  color: var(--color-text);
}

.shortcut-link__icon {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 12px;
  background: var(--color-accent-pale);
  color: var(--color-accent);
}

.shortcut-link__icon .icon {
  width: 18px;
  height: 18px;
}

.shortcut-link__label {
  overflow: hidden;
  font-size: 0.89rem;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.shortcut-link__arrow {
  color: var(--color-accent-soft);
}

/* Visão geral */
.page--overview { display: grid; gap: 1rem; container-name: overview; container-type: inline-size; font-size: .88rem; }
.page--overview .overview-hero { align-items: flex-start; }
.page--overview .overview-hero h1 { max-width: none; margin-top: .3rem; font-size: clamp(2rem, 3.7vw, 3.5rem); letter-spacing: -.055em; }
.page--overview .overview-hero h1 span { color: var(--color-accent); font-size: .72em; }
.page--overview .overview-hero > div > p:last-child { margin-top: .35rem; color: var(--color-text-muted); font-size: .88rem; }
.overview-hero__aside { display: grid; width: min(31vw, 360px); flex: 0 0 auto; justify-items: end; gap: 1.1rem; }
.overview-hero__aside aside { display: grid; width: 100%; min-height: 118px; align-content: center; gap: .75rem; padding: 1.1rem 1.25rem; border: 1px solid var(--color-border); border-radius: calc(var(--radius-large) + 8px); background: color-mix(in srgb, var(--color-surface) 78%, transparent); box-shadow: var(--shadow-card); }
.overview-hero__aside aside small { color: var(--color-text-faint); font-size: .67rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.overview-hero__aside aside strong { max-width: 24ch; font-size: 1.05rem; line-height: 1.5; }
.overview-hero__aside aside > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.overview-hero__aside aside > header button { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; color: var(--color-text-muted); }
.overview-hero__aside aside > header button:hover { background: var(--color-accent-pale); color: var(--color-accent); }
.overview-hero__aside aside > header .icon { width: 15px; height: 15px; }
.overview-hero__aside [data-reminder-form] { display: grid; gap: .65rem; }
.overview-hero__aside [data-reminder-form][hidden] { display: none; }
.overview-hero__aside [data-reminder-form] textarea { width: 100%; min-height: 76px; resize: vertical; padding: .65rem; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-surface); line-height: 1.4; }
.overview-hero__aside [data-reminder-form] > div { display: flex; justify-content: flex-end; gap: .5rem; }
.overview-hero__aside [data-reminder-form] button { min-height: 34px; padding: .4rem .75rem; font-size: .74rem; }
.overview-customize { display: inline-flex; align-items: center; gap: .55rem; padding: .75rem .9rem; color: var(--color-text-muted); font-weight: 750; }
.overview-customize { border: 0; background: transparent; box-shadow: none; }
.overview-customize:hover { color: var(--color-accent); }
.overview-customize .icon { width: 19px; height: 19px; }
.overview-editbar { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.15rem; border: 1px solid color-mix(in srgb, var(--color-accent) 27%, var(--color-border)); border-radius: var(--radius-large); background: color-mix(in srgb, var(--color-accent-pale) 34%, var(--color-surface)); box-shadow: var(--shadow-card); }
.overview-editbar[hidden] { display: none; }
.overview-editbar > div { display: grid; flex: 1; gap: .12rem; }
.overview-editbar small { color: var(--color-text-muted); }
.overview-editbar > button:not(.primary-button) { color: var(--color-text-muted); font-weight: 700; }
.overview-editbar .primary-button { min-height: 44px; padding-inline: 1.25rem; }
.overview-hidden { display: grid; gap: .4rem; padding: 1rem; border: 1px dashed var(--color-border); border-radius: var(--radius-medium); color: var(--color-text-muted); }
.overview-hidden strong { color: var(--color-text); }
.overview-hidden small { font-size: .75rem; }
.overview-hidden > div { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .35rem; }
.overview-hidden button { padding: .45rem .7rem; border-radius: var(--radius-pill); background: var(--color-accent-pale); color: var(--color-accent); font-weight: 700; }
.overview-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; }
.overview-metrics article { display: grid; min-width: 0; min-height: 84px; grid-template-columns: minmax(0, 1fr) 32px; align-items: start; gap: .4rem; padding: .75rem .9rem; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); box-shadow: var(--shadow-card); }
.overview-metrics article > span { align-self: center; color: var(--color-text-muted); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.overview-metrics article > i { display: grid; width: 32px; height: 32px; grid-row: span 2; place-items: center; border-radius: 50%; background: var(--color-accent-pale); color: var(--color-accent); }
.overview-metrics article > i.is-green { background: #e1f0e7; color: #568a6b; }
.overview-metrics article > i.is-yellow { background: #fff2cf; color: #a87722; }
.overview-metrics article > i.is-purple { background: #eee8fa; color: #8c6cc3; }
.overview-metrics .icon { width: 18px; height: 18px; }
.overview-metrics article > strong { align-self: end; font-size: 1.35rem; line-height: 1; }
.overview-metrics article > strong small { color: var(--color-text-muted); font-size: .78rem; font-weight: 500; }
.overview-birthday-metric > strong { min-width: 0; overflow-wrap: anywhere; font-size: clamp(.76rem, 1.25vw, 1rem) !important; line-height: 1.35 !important; }
.overview-metrics .overview-birthday-metric { grid-template-columns: 32px minmax(0, 1fr); align-items: center; }
.overview-metrics .overview-birthday-metric > i { grid-row: auto; }
.overview-metrics .overview-birthday-metric > strong { align-self: center; }
.overview-birthday-metric.has-birthday { border-color: color-mix(in srgb, var(--color-accent) 32%, var(--color-border)); background: color-mix(in srgb, var(--color-accent-pale) 34%, var(--color-surface)); }
.overview-birthday-metric.has-birthday > strong { color: var(--color-accent); }
.overview-birthday-metric.is-quiet { filter: grayscale(.88); background: color-mix(in srgb, var(--color-soft) 48%, var(--color-surface)); }
.overview-attention { display: flex; min-height: 105px; align-items: center; gap: 1rem; padding: 1rem 1.35rem; border: 1px solid var(--color-border); border-radius: calc(var(--radius-large) + 8px); background: var(--color-surface); box-shadow: var(--shadow-card); }
.overview-attention[hidden] { display: none; }
.overview-attention > span { display: grid; width: 48px; height: 48px; flex: 0 0 auto; place-items: center; border-radius: 14px; background: var(--color-accent-pale); color: var(--color-accent); }
.overview-attention > span .icon { width: 23px; height: 23px; }
.overview-attention p { display: grid; flex: 1; gap: .25rem; }
.overview-attention p strong { font-size: 1.1rem; }
.overview-attention p small { color: var(--color-text-muted); }
.overview-attention a { display: inline-flex; align-items: center; gap: .65rem; padding: .7rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-pill); color: var(--color-text); font-size: .82rem; font-weight: 720; }
.overview-attention a:hover { border-color: var(--color-accent); color: var(--color-accent); }
.overview-dashboard { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: 44px; grid-auto-flow: dense; gap: .8rem; align-items: stretch; }
.overview-card { position: relative; display: flex; min-width: 0; min-height: 0; grid-column: span var(--overview-columns, 4); grid-row: span var(--overview-rows, 6); flex-direction: column; padding: clamp(.9rem, 1.5vw, 1.25rem); overflow: hidden; overflow-wrap: anywhere; border: 1px solid var(--color-border); border-radius: calc(var(--radius-large) + 4px); background: var(--color-surface); box-shadow: var(--shadow-card); transition: grid-column .12s ease, grid-row .12s ease, opacity .12s ease; }
.overview-card[draggable="true"] { padding-top: 3.4rem; outline: 2px solid color-mix(in srgb, var(--color-accent) 34%, transparent); outline-offset: -2px; cursor: grab; }
.overview-card[draggable="true"]:active { cursor: grabbing; }
.overview-card.is-dragging { opacity: .48; }
.overview-resize-hint { position: absolute; right: .15rem; bottom: .05rem; z-index: 4; width: 28px; height: 28px; color: var(--color-accent); font-size: 1rem; cursor: nwse-resize; touch-action: none; }
.overview-card__body { min-width: 0; min-height: 0; flex: 1; padding-right: .2rem; overflow: hidden auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.overview-card__body::-webkit-scrollbar { width: 7px; }
.overview-card__body::-webkit-scrollbar-track { background: transparent; }
.overview-card__body::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 999px; background: transparent; background-clip: padding-box; }
.overview-card__body:hover::-webkit-scrollbar-thumb,
.overview-card__body:focus-within::-webkit-scrollbar-thumb { background: color-mix(in srgb, var(--color-accent) 42%, transparent); background-clip: padding-box; }
.overview-card__body [data-source-section] { cursor: pointer; }
.overview-card__body [data-source-section]:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.overview-card--wide { grid-column: span 2; }
.overview-card--full { min-height: 0; grid-column: 1 / -1; }
.overview-card--full .overview-invitation { min-height: 92px; }
.overview-card__header { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; margin-bottom: .8rem; }
.overview-card__header h2 { font-size: clamp(1.05rem, 1.6vw, 1.4rem); letter-spacing: -.03em; }
.overview-card__header a { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .45rem; color: var(--color-text-muted); font-size: .74rem; font-weight: 720; }
.overview-card__header a:hover { color: var(--color-accent); }
.overview-card__editing { position: absolute; top: 0; left: 0; display: flex; width: 100%; min-height: 38px; align-items: center; gap: .25rem; padding: .25rem .65rem; border-bottom: 1px solid color-mix(in srgb, var(--color-accent) 20%, var(--color-border)); color: var(--color-text-muted); }
.overview-card__editing button { display: inline-flex; min-height: 30px; align-items: center; gap: .3rem; padding: .25rem .35rem; border-radius: 0; background: transparent; color: var(--color-accent); font-size: .9rem; font-weight: 800; }
.overview-card__editing button:last-child { margin-left: auto; }
.overview-card__editing button:hover { background: transparent; color: var(--color-text); }
.overview-card__editing .icon { width: 15px; height: 15px; }
.overview-drag { color: var(--color-accent); font-size: 1.25rem; cursor: grab; touch-action: none; }
.overview-required { margin-left: auto; font-size: .72rem; font-weight: 700; }
.overview-list, .overview-agenda, .overview-habits, .overview-health { display: grid; gap: .6rem; }
.overview-list li { display: flex; min-width: 0; align-items: center; gap: .6rem; padding: .58rem .68rem; border-radius: var(--radius-medium); background: color-mix(in srgb, var(--overview-item-color) 17%, var(--color-surface)); }
.overview-list li > span { display: grid; min-width: 0; flex: 1; gap: .12rem; }
.overview-list strong, .overview-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.overview-list small, .overview-agenda small { color: var(--color-text-muted); font-size: .72rem; }
.overview-list li > em { margin-left: auto; padding: .25rem .45rem; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--overview-item-color) 32%, white); color: var(--color-text-muted); font-size: .65rem; font-style: normal; font-weight: 700; }
.overview-dismiss-reminder { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .25rem; padding: .25rem .4rem; border: 0; border-radius: var(--radius-pill); background: transparent; color: var(--color-text-muted); font-size: .68rem; font-weight: 700; }
.overview-dismiss-reminder > span { font-size: 1rem; line-height: 1; }
.overview-dismiss-reminder > small { color: inherit; font-size: inherit; }
.overview-dismiss-reminder:hover { background: color-mix(in srgb, var(--color-danger) 10%, transparent); color: var(--color-danger); }
.overview-check { display: grid; width: 25px; height: 25px; flex: 0 0 auto; place-items: center; border: 2px solid var(--color-border); border-radius: 50%; color: white; font-size: .72rem; }
.overview-check:hover, .overview-check.is-complete { border-color: var(--color-accent); background: var(--color-accent); }
.overview-more, .overview-muted, .overview-next { margin-top: 1rem; color: var(--color-text-muted); font-size: .84rem; }
.overview-card__summary { color: var(--color-text-muted); }
.overview-card__summary strong { color: var(--color-text); font-size: 1.55rem; }
.overview-progress { height: 7px; margin: .8rem 0 1.15rem; overflow: hidden; border-radius: var(--radius-pill); background: var(--color-soft); }
.overview-progress i { display: block; height: 100%; border-radius: inherit; background: var(--color-accent); }
.overview-habits li { display: flex; align-items: center; gap: .65rem; padding-block: .35rem; }
.overview-habits li > i, .overview-habits li > button { display: grid; width: 22px; height: 22px; flex: 0 0 auto; place-items: center; border: 2px solid var(--habit-color, var(--color-accent)); border-radius: 50%; color: white; font-size: .68rem; }
.overview-habits li > button:hover, .overview-habits li.is-complete > button { background: var(--habit-color, var(--color-accent)); }
.overview-habits li span { flex: 1; }
.overview-habits li.is-complete span { color: var(--color-text-muted); text-decoration: line-through; }
.overview-habits li b { color: var(--color-accent); }
.overview-agenda li { display: grid; grid-template-columns: 58px minmax(0, 1fr); align-items: center; gap: .8rem; padding-block: .5rem; border-bottom: 1px solid var(--color-border); }
.overview-agenda time { color: var(--color-accent); font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.overview-agenda span { display: grid; gap: .12rem; }
.overview-diary, .overview-empty { display: flex; align-items: center; gap: 1rem; min-height: 110px; padding: 1rem; border-radius: var(--radius-medium); background: color-mix(in srgb, var(--color-accent-pale) 42%, transparent); }
.overview-diary > span, .overview-empty > span { display: grid; width: 46px; height: 46px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: var(--color-surface); color: var(--color-accent); font-size: 1.25rem; }
.overview-diary p, .overview-empty p { display: grid; min-width: 0; gap: .3rem; }
.overview-diary small, .overview-empty small { color: var(--color-text-muted); line-height: 1.45; }
.overview-finance { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.overview-finance > div { display: grid; gap: .4rem; padding: 1rem; border-radius: var(--radius-medium); background: var(--color-soft); }
.overview-finance small { color: var(--color-text-muted); }
.overview-finance strong { font-size: 1.55rem; }
.overview-health li { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: .65rem; padding: .6rem 0; border-bottom: 1px solid var(--color-border); }
.overview-health li > span { font-size: 1.1rem; }
.overview-health time { color: var(--color-text-muted); font-size: .78rem; }
.overview-birthday, .overview-invitation { display: flex; min-height: 135px; align-items: center; gap: 1rem; padding: 1.1rem; border-radius: var(--radius-medium); background: color-mix(in srgb, var(--color-accent-pale) 38%, transparent); }
.overview-birthday > span, .overview-invitation > span { display: grid; width: 48px; height: 48px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: var(--color-surface); color: var(--color-accent); font-size: 1.25rem; }
.overview-birthday p, .overview-invitation p { display: grid; gap: .35rem; }
.overview-birthday small, .overview-invitation small { color: var(--color-text-muted); line-height: 1.5; }
.overview-birthday small b { color: var(--color-text); }
.overview-birthday-list { display: grid; gap: .55rem; }
.overview-birthday-list li { display: flex; align-items: center; gap: .75rem; padding: .7rem .8rem; border-bottom: 1px solid var(--color-border); }
.overview-birthday-list li:last-child { border-bottom: 0; }
.overview-birthday-list li.is-today { border-radius: 14px; background: color-mix(in srgb, var(--color-accent-pale) 45%, transparent); }
.overview-birthday-list li > span { font-size: 1.2rem; }
.overview-birthday-list p { display: grid; gap: .15rem; }
.overview-birthday-list small { color: var(--color-text-muted); font-size: .74rem; }
.overview-finance-today { display: grid; gap: .55rem; }
.overview-finance-item { display: flex; align-items: center; gap: .75rem; padding: .75rem; border-radius: 14px; background: var(--color-soft); }
.overview-finance-item > button { display: grid; width: 25px; height: 25px; flex: 0 0 auto; place-items: center; border: 2px solid var(--color-border); border-radius: 50%; color: white; }
.overview-finance-item > button:hover, .overview-finance-item.is-complete > button { border-color: var(--color-accent); background: var(--color-accent); }
.overview-finance-item.is-complete p { opacity: .58; text-decoration: line-through; }
.overview-finance-item p { display: grid; gap: .2rem; }
.overview-finance-item small { color: var(--color-text-muted); font-size: .72rem; }
.overview-finance-empty { padding: .9rem 1rem; border-radius: 14px; background: var(--color-soft); color: var(--color-text-muted); }
.overview-card-prompt { display: flex; align-items: center; gap: .75rem; margin-top: .8rem; padding: .85rem; border: 1px dashed var(--color-border); border-radius: 14px; }
.overview-card-prompt > span { display: grid; width: 30px; height: 30px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: var(--color-accent-pale); color: var(--color-accent); }
.overview-card-prompt p { display: grid; gap: .15rem; }
.overview-card-prompt small { color: var(--color-text-muted); font-size: .72rem; line-height: 1.35; }
.overview-card-prompt:hover { border-color: var(--color-accent); color: var(--color-text); }
.overview-kicker { margin-bottom: .9rem; color: var(--color-text-muted); font-size: .82rem; font-weight: 700; }
.overview-section-note { display: block; margin-top: .9rem; color: var(--color-text-muted); line-height: 1.45; }
.overview-finance-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; padding-block: .25rem .65rem; border-bottom: 1px solid var(--color-border); }
.overview-finance-summary p { display: grid; gap: .3rem; min-width: 0; }
.overview-finance-summary span { color: var(--color-text-muted); font-size: .72rem; }
.overview-finance-summary strong { overflow: hidden; font-size: clamp(.9rem, 1.4vw, 1.25rem); text-overflow: ellipsis; white-space: nowrap; }
.overview-compact-stats { display: flex; flex-wrap: wrap; gap: .8rem; }
.overview-compact-stats p { display: grid; min-width: 120px; flex: 1; gap: .15rem; padding: .85rem 1rem; border-radius: 16px; background: var(--color-soft); }
.overview-compact-stats strong { font-size: 1.7rem; }
.overview-compact-stats span { color: var(--color-text-muted); font-size: .75rem; }
.overview-card--health .overview-card__header,
.overview-card--lists .overview-card__header,
.overview-card--diary .overview-card__header,
.overview-card--recommendations .overview-card__header { margin-bottom: .3rem; }
.overview-widget-copy { color: var(--color-text-muted); }
.overview-health-line { display: flex; align-items: center; gap: .55rem; margin-top: .85rem; color: var(--color-text-muted); }
.overview-health-line > span { color: var(--color-accent); font-size: 1.1rem; }
.overview-health-line strong { color: var(--color-text); }
.overview-quick-widget { display: flex; min-height: 48px; align-items: center; gap: .8rem; }
.overview-quick-widget > span { color: var(--color-accent); font-size: 1.15rem; }
.overview-quick-widget > p { flex: 1; color: var(--color-text-muted); }
.overview-quick-widget > a { flex: 0 0 auto; padding: .58rem 1rem; border-radius: var(--radius-pill); background: var(--color-text-muted); color: white; font-size: .78rem; font-weight: 750; }
.overview-quick-widget > a:hover { background: var(--color-text); }
.overview-section-records { display: grid; gap: .15rem; margin-top: .7rem; border-top: 1px solid var(--color-border); }
.overview-section-records li { display: grid; min-width: 0; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: .55rem; padding: .65rem .15rem; border-bottom: 1px solid var(--color-border); }
.overview-section-records li > span { color: var(--color-accent); text-align: center; }
.overview-section-records li > p { display: grid; min-width: 0; gap: .1rem; }
.overview-section-records li strong,
.overview-section-records li small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.overview-section-records li small { color: var(--color-text-muted); font-size: .7rem; }
.overview-section-records li em { color: var(--color-text-muted); font-size: .68rem; font-style: normal; text-align: right; white-space: nowrap; }
.app-shell[data-sidebar="collapsed"] .sidebar-customize,
.app-shell[data-sidebar="collapsed"] .nav-item__editing,
.app-shell[data-sidebar="collapsed"] .sidebar-hidden { display: none; }

@container overview (max-width: 780px) {
  .overview-hero { align-items: flex-start; flex-direction: column; }
  .page--overview .overview-hero h1 { font-size: clamp(1.9rem, 7vw, 2.6rem); }
  .overview-hero__aside { width: 100%; align-items: start; grid-template-columns: auto minmax(0, 1fr); justify-items: start; }
  .overview-hero__aside aside { min-height: 0; }
  .overview-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .overview-dashboard { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; }
  .overview-card { grid-column: 1 !important; grid-row: auto !important; min-height: 260px; }
  .overview-card--wide { grid-column: auto; }
}

.empty-state {
  display: flex;
  min-height: min(46vh, 440px);
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: clamp(2rem, 6vw, 4rem);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-large);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  text-align: center;
}

.empty-state__icon {
  display: grid;
  width: 74px;
  height: 74px;
  place-items: center;
  margin-bottom: 1.25rem;
  border: 1px solid color-mix(in srgb, var(--color-accent) 8%, transparent);
  border-radius: 50%;
  background: var(--color-accent-pale);
  color: var(--color-accent);
}

.empty-state__icon .icon {
  width: 28px;
  height: 28px;
}

.empty-state__badge {
  align-self: center;
}

.empty-state h2 {
  margin-top: 1rem;
  font-size: clamp(1.7rem, 3vw, 2.35rem);
}

.empty-state__message {
  max-width: 500px;
  margin-top: 0.8rem;
  color: var(--color-text-muted);
}

.primary-button,
.secondary-button,
.text-button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 0.68rem 1rem;
  border-radius: 14px;
  font-size: 0.9rem;
  font-weight: 700;
}

.primary-button {
  background: var(--color-accent);
  color: var(--color-on-accent);
  box-shadow: none;
}

.primary-button:hover {
  background: color-mix(in srgb, var(--color-accent) 88%, var(--color-text));
}

.secondary-button {
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-text);
}

.secondary-button:hover {
  border-color: color-mix(in srgb, var(--color-accent) 28%, var(--color-border));
  background: var(--color-accent-pale);
}

.text-button {
  padding: 0.45rem 0.65rem;
  background: transparent;
  color: var(--color-accent);
  font-size: 0.78rem;
}

.text-button:hover {
  background: var(--color-accent-pale);
}

.text-button--danger {
  color: var(--color-danger-soft);
}

/* Pendências */
.pending-page { gap: 1.35rem; }
.pending-page__header { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.pending-page__header h1 { max-width: none; font-size: clamp(2rem, 3.5vw, 2.75rem); }
.pending-page__header .page__description { margin-top: .45rem; }
.pending-new { min-width: 174px; padding-inline: 1.25rem; border-radius: 14px; }
.pending-new span { font-size: 1.25rem; font-weight: 400; }
.pending-search { display: flex; min-height: 50px; align-items: center; gap: .7rem; padding: 0 1rem; border: 1px solid var(--color-border); border-radius: 15px; background: var(--color-surface); color: var(--color-text-faint); }
.pending-search:focus-within { border-color: var(--color-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 12%, transparent); }
.pending-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--color-text); font-size: .95rem; }
.pending-search input::placeholder { color: var(--color-text-faint); }
.pending-search kbd { padding: .25rem .4rem; border-radius: 6px; background: var(--color-soft); color: var(--color-text-faint); font: 600 .72rem var(--font-ui); }
.pending-filters { display: flex; flex-wrap: wrap; gap: .75rem; }
.pending-filters button { display: inline-flex; min-height: 44px; align-items: center; gap: .5rem; padding: .6rem 1rem; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); color: var(--color-text-muted); font-size: .88rem; font-weight: 650; }
.pending-filters button[aria-selected="true"], .pending-filters button[aria-pressed="true"] { border-color: transparent; background: var(--color-accent-pale); color: var(--color-accent); }
.pending-filters .icon { width: 19px; height: 19px; }
.pending-cost-total { display: flex; align-items: center; align-self: end; gap: .55rem; margin-top: -.25rem; padding: .45rem .55rem .45rem .75rem; border: 1px solid color-mix(in srgb, var(--color-accent) 20%, var(--color-border)); border-radius: 12px; background: var(--color-accent-pale); color: var(--color-text-muted); font-size: .76rem; }
.pending-cost-total .icon { width: 18px; height: 18px; color: var(--color-accent); }
.pending-cost-total strong { min-width: 72px; margin-left: .15rem; color: var(--color-accent); font-size: .9rem; }
.pending-cost-total button { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 8px; background: color-mix(in srgb, var(--color-surface) 65%, transparent); color: var(--color-accent); }
.pending-cost-total button:hover { background: var(--color-surface); }
.pending-cost-total button .icon { width: 17px; height: 17px; }
.pending-list { overflow: hidden; border: 1px solid var(--color-border); border-radius: 18px; background: var(--color-surface); box-shadow: var(--shadow-card); }
.pending-list__head, .pending-item__summary { display: grid; grid-template-columns: minmax(260px, 2fr) minmax(160px, 1.1fr) minmax(145px, .85fr) minmax(120px, .75fr) 34px; align-items: center; gap: 1rem; }
.pending-list__head { padding: 1rem 1.1rem 1rem 4rem; border-bottom: 1px solid var(--color-border); color: var(--color-text-muted); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.pending-item { border-bottom: 1px solid var(--color-border); }
.pending-item__summary { min-height: 78px; padding: .85rem 1.1rem; }
.pending-item__summary { grid-template-columns: 34px minmax(205px, 2fr) minmax(160px, 1.1fr) minmax(145px, .85fr) minmax(120px, .75fr) 34px; }
.pending-check { display: grid; width: 27px; height: 27px; place-items: center; border: 2px solid var(--color-accent); border-radius: 50%; background: transparent; color: var(--color-white); font-size: .75rem; font-weight: 800; }
.is-completed .pending-check { background: var(--color-accent); }
.pending-item__title { min-width: 0; font-size: .95rem; }
.is-completed .pending-item__title { color: var(--color-text-faint); text-decoration: line-through; }
.pending-category, .pending-priority { display: inline-flex; min-height: 34px; align-items: center; gap: .45rem; padding: .42rem .7rem; border-radius: 10px; font-size: .78rem; font-weight: 700; white-space: nowrap; }
.pending-category .icon { width: 17px; height: 17px; }
.pending-category--documents { background: #f2edff; color: #8160df; }
.pending-category--finance { background: #e8f7f7; color: #27999d; }
.pending-category--home { background: #fff0e8; color: #df7145; }
.pending-category--subscriptions { background: #ffedf4; color: #dc5c92; }
.pending-category--custom { background: var(--color-soft); color: var(--color-text-muted); }
.pending-category.has-custom-color { background: var(--pending-category-color); color: color-mix(in srgb, var(--pending-category-color) 25%, #493c36); }
.pending-date { display: flex; align-items: flex-start; gap: .45rem; font-size: .81rem; font-weight: 650; }
.pending-date .icon { width: 17px; height: 17px; }
.pending-date span { display: grid; gap: .15rem; }
.pending-date small { color: var(--color-text-faint); font-size: .72rem; font-weight: 500; }
.pending-date.is-overdue, .pending-date.is-overdue small { color: #e65386; }
.pending-priority b { font-size: 1.2rem; line-height: 1; }
.pending-priority--alta { background: #fff1eb; color: #e56c3e; }
.pending-priority--media { background: #fff7e8; color: #d9911f; }
.pending-priority--baixa { background: #edf7ed; color: #4da85d; }
.pending-expand { width: 34px; height: 34px; border-radius: 9px; background: transparent; color: var(--color-text-muted); font-size: 1.25rem; transition: transform 160ms ease; }
.pending-item.is-expanded .pending-expand { transform: rotate(180deg); }
.pending-details { display: grid; grid-template-columns: 1.4fr .6fr; margin: 0 1.45rem .65rem; padding: .65rem .8rem .45rem; border: 1px solid var(--color-border); border-radius: 12px; background: color-mix(in srgb, var(--color-soft) 28%, var(--color-surface)); }
.pending-details__notes { padding-right: 1rem; border-right: 1px solid var(--color-border); }
.pending-details__cost { padding-left: 1rem; }
.pending-details h4 { display: flex; align-items: center; gap: .4rem; color: var(--color-text-muted); font-size: .76rem; }
.pending-details h4 .icon { width: 15px; height: 15px; }
.pending-details p { max-width: 70ch; margin-top: .25rem; color: var(--color-text-muted); font-size: .75rem; line-height: 1.35; }
.pending-details__checklist { display: grid; grid-template-columns: minmax(0, 1fr); gap: .3rem; margin-top: .45rem; }
.pending-details__checklist h4 { grid-column: 1 / -1; }
.pending-details__checklist h4 { margin-bottom: .15rem; }
.pending-details__checklist label { display: flex; align-items: center; gap: .45rem; color: var(--color-text-muted); font-size: .72rem; cursor: pointer; }
.pending-details__checklist input { width: 15px; height: 15px; accent-color: var(--color-accent); }
.pending-details__checklist input:checked + span { color: var(--color-text-faint); text-decoration: line-through; }
.pending-details__cost strong { display: table; margin-top: .35rem; padding: .35rem .6rem; border-radius: 8px; background: var(--color-accent-pale); color: #df4f89; font-size: .86rem; }
.pending-details__cost small { display: block; margin-top: .35rem; color: var(--color-text-faint); font-size: .64rem; }
.pending-details__actions { display: flex; grid-column: 1 / -1; justify-content: flex-end; gap: .3rem; margin-top: .4rem; padding-top: .35rem; border-top: 1px solid var(--color-border); }
.pending-details__actions button { display: inline-flex; min-height: 30px; align-items: center; gap: .35rem; padding: .3rem .55rem; border-radius: 8px; background: var(--color-surface); color: var(--color-text-muted); font-size: .7rem; font-weight: 700; }
.pending-details__actions button:hover { background: var(--color-accent-pale); color: var(--color-accent); }
.pending-details__actions button.is-danger { color: var(--color-danger-soft); }
.pending-details__actions .icon { width: 16px; height: 16px; }
.pending-list > footer { display: flex; min-height: 58px; align-items: center; justify-content: space-between; padding: .65rem 1rem; color: var(--color-text-faint); font-size: .76rem; }
.pending-list > footer div { display: flex; gap: .4rem; }
.pending-list > footer button { width: 34px; height: 34px; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface); color: var(--color-text-faint); }
.pending-list > footer button.is-current { border-color: var(--color-accent); color: var(--color-accent); }
.pending-empty { padding: 3.5rem 1rem; color: var(--color-text-faint); text-align: center; }
.pending-dialog { width: min(680px, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); padding: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: 22px; background: var(--color-surface); color: var(--color-text); box-shadow: var(--shadow-overlay); }
.pending-dialog::backdrop { background: var(--color-overlay); backdrop-filter: blur(3px); }
.pending-dialog form { max-height: calc(100dvh - 2rem); overflow-y: auto; }
.pending-dialog form > header { display: flex; align-items: center; justify-content: space-between; padding: 1.15rem 1.7rem .65rem; }
.pending-dialog h2 { font-size: 1.55rem; letter-spacing: -.035em; }
.pending-dialog .page__eyebrow { margin-bottom: .35rem; }
.pending-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem 1rem; padding: .8rem 1.7rem 1.1rem; }
.pending-form-field { display: grid; min-width: 0; gap: .35rem; color: #503b35; font-size: .84rem; font-weight: 700; }
.pending-form-field--full { grid-column: 1 / -1; }
.pending-form-field input, .pending-form-field select, .pending-form-field textarea { width: 100%; min-height: 50px; padding: .7rem .85rem; border: 1px solid var(--color-border); border-radius: 15px; outline: 0; background: var(--color-surface); color: var(--color-text); font: 400 .88rem var(--font-ui); }
.pending-form-field textarea { min-height: 82px; resize: vertical; }
.pending-form-field input::placeholder, .pending-form-field textarea::placeholder { color: #b5a79f; }
.pending-form-field input:focus, .pending-form-field select:focus, .pending-form-field textarea:focus { border-color: var(--color-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 11%, transparent); }
.pending-form-field > small { margin-top: -.1rem; color: #9b887d; font-size: .68rem; font-weight: 450; line-height: 1.3; }
.pending-dialog form > footer { display: flex; justify-content: flex-end; gap: .65rem; padding: .1rem 1.7rem 1.25rem; }
.pending-form-checklist { display: grid; gap: .35rem; }
.pending-checklist-row { display: grid; grid-template-columns: 28px minmax(0, 1fr) 42px 42px; align-items: center; gap: .5rem; }
.pending-checklist-row > input[type="checkbox"] { width: 20px; height: 20px; min-height: 0; padding: 0; border-radius: 5px; accent-color: var(--color-accent); }
.pending-checklist-row > input[type="text"] { min-height: 46px; }
.pending-checklist-row > button { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--color-border); border-radius: 13px; background: var(--color-surface); color: var(--color-text-muted); }
.pending-checklist-row > button.is-danger { border-color: #f7d8da; background: #fff0f1; color: var(--color-danger-soft); }
.pending-checklist-row .icon { width: 18px; height: 18px; }
.pending-checklist-add { display: inline-flex; min-height: 40px; width: fit-content; align-items: center; gap: .4rem; padding: .5rem .75rem; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-surface); color: var(--color-accent); font-size: .78rem; font-weight: 700; }
.pending-checklist-add span { font-size: 1.15rem; line-height: 1; }
.pending-appearance { min-width: 0; padding: 0; border: 0; }
.pending-appearance legend { margin-bottom: .45rem; color: #503b35; font-size: .84rem; font-weight: 700; }
.pending-appearance .activity-icon-options { gap: .42rem; }
.pending-appearance .activity-icon-options span { min-height: 50px; border-radius: 14px; }
.pending-appearance .activity-color-options span { width: 38px; height: 38px; }
.pending-category-picker { position: relative; }
.pending-category-picker__trigger { display: grid; width: 100%; min-height: 50px; grid-template-columns: 20px minmax(0, 1fr) 18px; align-items: center; gap: .65rem; padding: .65rem .85rem; border: 1px solid var(--color-border); border-radius: 15px; background: var(--color-surface); color: #8f7d73; font-size: .88rem; font-weight: 400; text-align: left; }
.pending-category-picker__trigger .icon { width: 19px; height: 19px; color: var(--color-text-faint); }
.pending-simple-picker .pending-category-picker__trigger { grid-template-columns: minmax(0, 1fr) 20px; color: var(--color-text); }
.pending-category-picker__menu { position: absolute; z-index: 20; top: calc(100% + .45rem); left: 0; width: 100%; max-height: 430px; padding: .65rem .65rem .55rem; overflow-y: auto; border: 1px solid var(--color-border); border-radius: 20px; background: var(--color-surface); box-shadow: 0 20px 45px rgb(65 43 34 / .18); }
.pending-category-picker__menu[hidden] { display: none; }
.pending-category-option { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; margin-bottom: .05rem; border-radius: 14px; }
.pending-category-option { background: transparent; }
.pending-category-option:hover, .pending-category-option:focus-within, .pending-category-option.is-selected { background: var(--color-accent-pale); }
.pending-category-option > button { display: grid; min-height: 43px; grid-template-columns: 28px minmax(0, 1fr); align-items: center; padding: .5rem 5rem .5rem .75rem; background: transparent; color: #503b35; font-size: .95rem; font-weight: 450; text-align: left; }
.pending-category-option > button span { overflow: visible; text-overflow: clip; white-space: nowrap; }
.pending-category-option > button i { font-style: normal; }
.pending-category-option > div { position: absolute; right: .25rem; display: flex; opacity: 1; }
.pending-category-option:hover > div, .pending-category-option:focus-within > div { opacity: 1; }
.pending-category-option > div button { display: grid; width: 36px; height: 36px; place-items: center; background: transparent; color: var(--color-text-muted); }
.pending-category-option > div .icon { width: 17px; height: 17px; }
.pending-category-option:has(.pending-category-edit) { grid-template-columns: minmax(0, 1fr) auto; gap: .35rem; padding: .3rem; }
.pending-category-edit { width: 100%; min-height: 38px; padding: .5rem .65rem; border: 1px solid var(--color-accent); border-radius: 9px; background: var(--color-surface); color: var(--color-text); font: inherit; }
.pending-category-option > .pending-category-save { display: block; min-height: 38px; padding: .4rem .6rem; border-radius: 8px; color: var(--color-accent); font-size: .72rem; font-weight: 750; }
.pending-category-picker__add { position: sticky; bottom: -.55rem; display: grid; grid-template-columns: minmax(0, 1fr) 42px; align-items: center; gap: .35rem; margin-top: .45rem; padding: .7rem .3rem .55rem; border-top: 1px solid var(--color-border); background: var(--color-surface); }
.pending-category-picker__add input { min-height: 46px; border-radius: 14px; font-weight: 400; }
.pending-category-picker__add button { display: grid; height: 38px; place-items: center; color: var(--color-accent); font-size: 1.4rem; }

/* Listas */
.lists-page { gap: 1.35rem; }
.lists-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) 230px; gap: .8rem; }
.lists-toolbar .pending-search { grid-template-columns: 24px minmax(0, 1fr); }
.lists-category-filter .pending-category-picker__trigger { min-height: 58px; border-radius: 17px; color: var(--color-text-muted); font-size: .82rem; font-weight: 500; }
.lists-category-filter .pending-category-picker__menu { right: 0; left: auto; }
.custom-lists { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 1rem; }
.custom-list-card { position: relative; overflow: hidden; border: 1px solid var(--color-border); border-radius: 22px; background: var(--color-surface); box-shadow: var(--shadow-card); transition: opacity .12s ease; }
.custom-list-card__drag-handle { position: absolute; z-index: 3; top: 14px; left: 13px; display: grid; width: 28px; height: 28px; place-items: center; border-radius: 9px; cursor: grab; touch-action: none; }
.custom-list-card__drag-handle:hover { background: var(--color-soft); color: var(--color-accent); }
.custom-list-card__drag-handle:active { cursor: grabbing; }
.custom-list-card.is-dragging { opacity: .48; }
.custom-list-card::before { position: absolute; z-index: 1; top: 0; right: 0; left: 0; height: 9px; background: var(--list-color); content: ''; }
.custom-list-card__toggle { display: grid; width: 100%; min-height: 142px; grid-template-columns: 58px minmax(0, 1fr) 28px; grid-template-areas: "avatar title chevron" "avatar meta chevron"; align-content: center; align-items: center; gap: .4rem .85rem; padding: 1.5rem 1.35rem 1.25rem; background: transparent; color: var(--color-text); text-align: left; }
.custom-list-card__toggle:hover { background: color-mix(in srgb, var(--list-color) 20%, transparent); }
.custom-list-card__avatar { display: grid; grid-area: avatar; width: 58px; height: 58px; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--list-color) 35%, white); font-size: 1.75rem; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--list-color) 65%, transparent); }
.custom-list-card__toggle > strong { grid-area: title; overflow: hidden; font-size: 1.28rem; line-height: 1.25; text-overflow: ellipsis; }
.custom-list-card__meta { display: grid; grid-area: meta; gap: .25rem; justify-items: start; }
.custom-list-card__meta > .pending-category { width: fit-content; max-width: 100%; min-width: 0; min-height: 0; padding: 0; border-radius: 0; background: transparent; color: color-mix(in srgb, var(--list-color) 38%, #6a5348); font-size: .8rem; font-weight: 750; letter-spacing: .12em; overflow-wrap: anywhere; text-transform: uppercase; white-space: normal; }
.custom-list-card__meta > small { color: var(--color-text-muted); font-size: .78rem; font-weight: 700; }
.custom-list-card__toggle > .pending-category .icon { display: none; }
.custom-list-card__chevron { display: grid; grid-area: chevron; width: 24px; height: 24px; place-items: center; color: var(--color-text-faint); transition: transform 160ms ease; }
.custom-list-card.is-expanded .custom-list-card__chevron { transform: rotate(180deg); }
.custom-list-card__details { margin: 0 1.15rem 1.15rem; padding: 1rem 0 0; border-top: 1px solid var(--color-border); background: transparent; }
.custom-list-card__information > span, .custom-list-card__checklist header > span { color: var(--color-text-muted); font-size: .75rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.custom-list-card__information p { color: var(--color-text-muted); font-size: .96rem; line-height: 1.55; white-space: pre-wrap; }
.custom-list-card__checklist { display: grid; gap: .45rem; margin-top: 1rem; padding-top: .9rem; border-top: 1px solid var(--color-border); }
.custom-list-card__checklist header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .15rem; }
.custom-list-card__checklist header > span { font-size: .82rem; }
.custom-list-card__checklist header small { color: var(--color-text-faint); font-size: .78rem; }
.custom-list-card__checklist label { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: .7rem; min-height: 40px; color: var(--color-text-muted); font-size: .94rem; cursor: pointer; }
.custom-list-card__checklist label input { position: absolute; opacity: 0; }
.custom-list-card__checklist label > span:first-of-type { display: grid; width: 21px; height: 21px; place-items: center; border: 1.5px solid #aaa39d; border-radius: 50%; color: white; font-size: .65rem; }
.custom-list-card__checklist label.is-done > span:first-of-type { border-color: var(--color-accent); background: var(--color-accent); }
.custom-list-card__checklist label.is-done > span:last-child { color: var(--color-text-faint); text-decoration: line-through; }
.custom-list-card__checklist label > strong { color: var(--color-text); font-size: .82rem; white-space: nowrap; }
.custom-list-card__quick-add { display: grid; grid-template-columns: minmax(0, 1fr) 88px 34px; gap: .4rem; margin-top: .35rem; }
.custom-list-card__quick-add input { min-width: 0; min-height: 36px; padding: .45rem .6rem; border: 1px dashed var(--color-border); border-radius: 9px; outline: 0; background: var(--color-surface); color: var(--color-text); font: 400 .76rem var(--font-ui); }
.custom-list-card__quick-add input:focus { border-style: solid; border-color: var(--color-accent); }
.custom-list-card__quick-add button { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; background: var(--color-accent-pale); color: var(--color-accent); font-size: 1.15rem; }
.list-icon-picker .activity-icon-options { display: grid; grid-template-columns: repeat(11, 42px); }
.list-icon-picker .activity-icon-options span { width: 42px; min-height: 42px; border-radius: 50%; font-size: 1.35rem; }

/* Indicações */
.recommendations-page { gap: 2rem; }
.recommendation-filters button { border-radius: 999px; }
.recommendation-list__head,
.recommendation-row {
  display: grid;
  grid-template-columns: minmax(210px, 1.45fr) minmax(105px, .75fr) minmax(105px, .75fr) 78px minmax(230px, 1.65fr) 150px 64px;
  align-items: center;
  gap: 1rem;
}
.recommendation-list__head { padding: 0 .9rem .7rem 1.35rem; color: var(--color-text-muted); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.recommendation-list > div:last-child { display: grid; gap: .55rem; }
.recommendation-row { min-height: 82px; padding: .75rem .9rem .75rem 1.15rem; border: 1px solid var(--color-border); border-radius: 18px; background: var(--color-surface); box-shadow: var(--shadow-card); color: var(--color-text-muted); font-size: .88rem; }
.recommendation-row__title { display: flex; min-width: 0; align-items: center; gap: .8rem; color: var(--color-text); }
.recommendation-row__title > span { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--recommendation-color) 56%, white); font-size: 1.25rem; }
.recommendation-row__title strong { overflow: hidden; font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.recommendation-category { width: fit-content; padding: .35rem .7rem; border-radius: 999px; background: var(--recommendation-color); color: color-mix(in srgb, var(--recommendation-color) 25%, #493c36); font-size: .75rem; font-weight: 750; }
.recommendation-check { display: grid; width: 30px; height: 30px; place-items: center; justify-self: center; border: 2px solid var(--color-border); border-radius: 50%; background: var(--color-surface); color: white; font-weight: 800; }
.recommendation-row.is-completed .recommendation-check { border-color: var(--color-accent); background: var(--color-accent); }
.recommendation-note { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recommendation-stars { display: flex; gap: .12rem; }
.recommendation-stars button { padding: .05rem; background: transparent; color: #d8d4d1; font-size: 1.35rem; line-height: 1; }
.recommendation-stars button:hover,
.recommendation-stars button:focus-visible,
.recommendation-stars button.is-filled { color: #ffbb2e; }
.recommendation-row__actions { display: flex; justify-content: flex-end; opacity: 0; }
.recommendation-row:hover .recommendation-row__actions,
.recommendation-row:focus-within .recommendation-row__actions { opacity: 1; }
.recommendation-row__actions button { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 8px; background: transparent; color: var(--color-text-faint); }
.recommendation-row__actions button:hover { background: var(--color-accent-pale); color: var(--color-accent); }
.recommendation-row__actions .icon { width: 16px; height: 16px; }
.recommendation-completed { display: flex; align-items: center; gap: .6rem; cursor: pointer; }
.recommendation-completed input { width: 20px; min-height: 20px; accent-color: var(--color-accent); }
.recommendation-rating-field .recommendation-stars button { font-size: 1.75rem; }
.recommendation-dialog form > footer .primary-button--new { min-width: 150px; justify-content: center; }
.list-dialog .pending-checklist-row { grid-template-columns: 28px minmax(0, 1fr) 105px 42px 42px; }
.custom-list-card__details > footer { display: flex; justify-content: flex-end; gap: .4rem; margin-top: .85rem; padding-top: .65rem; border-top: 1px solid var(--color-border); }
.custom-list-card__details > footer button { display: inline-flex; min-height: 34px; align-items: center; gap: .35rem; padding: .35rem .65rem; border-radius: 9px; background: var(--color-surface); color: var(--color-text-muted); font-size: .72rem; font-weight: 700; }
.custom-list-card__details > footer button.is-danger { color: var(--color-danger-soft); }
.custom-list-card__details > footer .icon { width: 16px; height: 16px; }
.custom-lists__empty { display: grid; min-height: 270px; grid-column: 1 / -1; place-items: center; align-content: center; gap: .4rem; border: 1px dashed var(--color-border); border-radius: 20px; color: var(--color-text-faint); text-align: center; }
.custom-lists__empty > span { display: grid; width: 50px; height: 50px; margin-bottom: .4rem; place-items: center; border-radius: 50%; background: var(--color-accent-pale); color: var(--color-accent); font-size: 1.5rem; }
.custom-lists__empty strong { color: var(--color-text); }
.custom-lists__empty p { font-size: .8rem; }

.routine-page {
  gap: clamp(1.8rem, 3vw, 2.5rem);
}

.routine-page__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

.routine-page h1 {
  font-size: clamp(2rem, 3.5vw, 2.75rem);
}

.routine-page__header > div {
  min-width: 0;
}

.routine-page__header-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 1rem;
}

.primary-button--new {
  min-width: 136px;
  flex: 0 0 auto;
  border-radius: 999px;
}

.primary-button--new > span {
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1;
}

.routine-card {
  overflow: visible;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-large);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
}

.routine-feedback {
  padding: 0.72rem 0.9rem;
  border: 1px solid color-mix(in srgb, var(--color-accent) 18%, var(--color-border));
  border-radius: 14px;
  background: var(--color-accent-pale);
  color: var(--color-accent);
  font-size: 0.82rem;
  font-weight: 650;
}

.routine-feedback:empty {
  display: none;
}

.routine-toolbar {
  display: grid;
  width: 100%;
  grid-template-columns: minmax(280px, 1fr) 200px 170px;
  align-items: center;
  gap: 0.8rem;
}

.routine-search {
  display: flex;
  min-width: 240px;
  min-height: 58px;
  align-items: center;
  gap: 0.7rem;
  padding: 0 1rem;
  border: 1px solid var(--color-border);
  border-radius: 17px;
  background: var(--color-surface);
}

.routine-search .icon { width: 20px; height: 20px; color: var(--color-text-muted); }

.routine-search input {
  width: 100%;
  min-height: 56px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--color-text);
  font: inherit;
}

.routine-search input::placeholder {
  color: var(--color-text-faint);
}

.routine-search:focus-within {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 13%, transparent);
}

.routine-search input:focus { outline: 0; }

.routine-tabs {
  display: flex;
  width: fit-content;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.routine-tabs button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1rem;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  background: var(--color-surface);
  color: var(--color-text-muted);
  font-size: 0.88rem;
  font-weight: 650;
}

.routine-tabs button[aria-selected="true"] {
  border-color: transparent;
  background: var(--color-accent-pale);
  color: var(--color-accent);
  box-shadow: none;
}

.routine-tabs .icon {
  width: 19px;
  height: 19px;
}

.routine-filters {
  display: contents;
}

.routine-filter {
  width: 100%;
}

.routine-filter[data-routine-filter="category"] {
  width: 100%;
}

.routine-filter .pending-category-picker__trigger span {
  white-space: nowrap;
}

.routine-week-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
}

.routine-week-nav[hidden] {
  display: none;
}

.routine-week-nav button {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 1px solid var(--color-border);
  border-radius: 50%;
  background: var(--color-surface);
  color: var(--color-text);
  font-size: 1.5rem;
}

.routine-week-nav strong {
  min-width: 150px;
  font-size: 0.86rem;
  text-align: center;
}

.routine-selection-bar {
  display: flex;
  min-height: 58px;
  align-items: center;
  gap: 1.2rem;
  padding: 0.45rem 0.8rem;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  background: var(--color-surface);
}

.routine-selection-bar[hidden] {
  display: none;
}

.routine-page:not(.has-selection) .routine-card {
  margin-top: -0.65rem;
}

@media (prefers-reduced-motion: no-preference) {
  .routine-page.has-selection .routine-selection-bar {
    animation: selection-bar-in 180ms ease-out;
  }

  .routine-page.has-selection .routine-card {
    animation: routine-card-shift 180ms ease-out;
  }

  @keyframes selection-bar-in {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
  }

  @keyframes routine-card-shift {
    from { transform: translateY(-10px); }
    to { transform: translateY(0); }
  }
}

/* Leituras */
.readings-page { max-width: 1180px; }
.readings-header { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:2rem; }
.readings-header h1 { margin:.25rem 0 .35rem; font-size:clamp(2rem,4vw,3.25rem); letter-spacing:-.055em; }
.reading-current { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.4rem; padding:1.2rem 1.4rem; border:1px solid var(--color-border); border-radius:var(--radius-large); background:linear-gradient(120deg,var(--color-accent-pale),var(--color-surface)); }
.reading-current > div { display:flex; align-items:center; gap:1rem; }.reading-current small,.reading-stats small,.reading-shelf header small,.reading-detail header small { color:var(--color-title); font-size:.7rem; font-weight:800; letter-spacing:.16em; }
.reading-current h2 { margin:.15rem 0; }.reading-cover { display:block; width:150px; aspect-ratio:2/3; object-fit:cover; border-radius:10px; background:var(--color-soft); box-shadow:0 8px 20px rgb(52 44 38/.12); }
.reading-cover--current { width:72px; }.reading-cover--detail { width:105px; }.reading-cover--empty { display:grid; place-items:center; align-content:center; gap:.5rem; padding:.7rem; border:1px solid var(--color-border); color:var(--color-text-faint); text-align:center; box-shadow:none; }.reading-cover--empty span { font-size:2rem; }.reading-cover--empty small { overflow:hidden; max-width:100%; color:inherit; font-size:.7rem; letter-spacing:0; }
.reading-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-bottom:1rem; }.reading-stats article { display:flex; min-height:155px; flex-direction:column; align-items:flex-start; padding:1.35rem; border:1px solid var(--color-border); border-radius:var(--radius-large); background:var(--color-surface); box-shadow:var(--shadow-card); }.reading-stats strong { margin:.75rem 0 .2rem; font-size:2rem; }.reading-stats strong i { color:var(--color-text-muted); font-size:1rem; font-style:normal; }.reading-stats span { color:var(--color-text-muted); }.reading-stats progress { width:100%; height:6px; margin:.35rem 0; accent-color:var(--color-accent); }.reading-stats button { margin-top:auto; color:var(--color-accent); font-size:.8rem; font-weight:750; }
.reading-goal { display:flex; align-items:end; gap:.7rem; margin-bottom:1rem; padding:1.2rem; border:1px solid var(--color-border); border-radius:var(--radius-large); background:var(--color-surface); }.reading-goal label { display:grid; flex:1; gap:.45rem; font-weight:700; }.reading-goal input { max-width:180px; }
.reading-shelf { margin-top:2.1rem; }.reading-shelf > header { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1.2rem; }.reading-shelf h2 { margin:.2rem 0 0; }.reading-shelf input { min-width:300px; }.reading-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(155px,1fr)); gap:1.6rem; align-items:start; }.reading-book > button { width:100%; text-align:left; }.reading-book .reading-cover { width:100%; transition:transform 180ms ease; }.reading-book button:hover .reading-cover { transform:translateY(-4px); }.reading-book strong,.reading-book small,.reading-book em { display:block; }.reading-book strong { margin-top:.7rem; }.reading-book small { margin:.15rem 0; color:var(--color-text-muted); }.reading-book em { width:max-content; padding:.2rem .55rem; border-radius:999px; background:var(--color-accent-pale); color:var(--color-title); font-size:.7rem; font-style:normal; }.reading-stars { display:flex; gap:.1rem; color:#d9a323; }.reading-stars button { padding:.1rem; color:inherit; font-size:1.6rem; }.reading-book .reading-stars { margin-top:.3rem; font-size:.8rem; }
.reading-empty { grid-column:1/-1; display:grid; min-height:300px; place-items:center; align-content:center; padding:2rem; border:1px dashed var(--color-border); border-radius:var(--radius-large); text-align:center; }.reading-empty > span { font-size:3rem; color:var(--color-accent); }.reading-empty h2 { margin:.8rem 0 .4rem; }.reading-empty p { max-width:520px; margin-bottom:1rem; color:var(--color-text-muted); }
.reading-dialog { width:min(850px,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); padding:0; border:0; border-radius:24px; background:var(--color-canvas); color:var(--color-text); box-shadow:var(--shadow-overlay); }.reading-dialog::backdrop { background:rgb(20 17 15/.7); }.reading-dialog form > header { display:flex; justify-content:space-between; padding:1.6rem 1.7rem 1rem; }.reading-dialog h2 { margin:.2rem 0; font-size:1.75rem; }.reading-dialog header p { color:var(--color-text-muted); }.reading-dialog header > button,.reading-detail__close { align-self:start; padding:.3rem; font-size:1.5rem; }.reading-form { display:grid; grid-template-columns:165px 1fr; gap:1.4rem; padding:0 1.7rem 1rem; }.reading-cover-field { display:flex; flex-direction:column; align-items:center; gap:.6rem; }.reading-cover-field .reading-cover { width:150px; }.reading-cover-field label { width:100%; text-align:center; cursor:pointer; }.reading-fields { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }.reading-field { display:grid; gap:.4rem; }.reading-field > span { font-size:.82rem; font-weight:750; }.reading-field--full { grid-column:1/-1; }.reading-field textarea { resize:vertical; }.reading-dialog footer { display:grid; grid-template-columns:auto 1fr auto auto; gap:.7rem; align-items:center; padding:1rem 1.7rem 1.5rem; border-top:1px solid var(--color-border); }.reading-delete { color:var(--color-danger-soft); }
.reading-detail { position:fixed; z-index:50; inset:0; }.reading-detail__backdrop { position:absolute; inset:0; width:100%; background:rgb(20 17 15/.7); }.reading-detail aside { position:absolute; top:0; right:0; width:min(560px,100%); height:100%; overflow:auto; padding:1.8rem; background:var(--color-canvas); box-shadow:-18px 0 45px rgb(0 0 0/.15); }.reading-detail__close { position:absolute; top:.8rem; right:1rem; }.reading-detail [data-detail-content] > header { display:flex; min-height:165px; align-items:center; justify-content:space-between; gap:1rem; padding-right:2rem; }.reading-detail h2 { margin:.35rem 0; font-size:2rem; }.reading-detail dl { display:flex; gap:2rem; margin:1rem 0; padding:1rem 0; border-block:1px solid var(--color-border); }.reading-detail dt { color:var(--color-text-muted); font-size:.72rem; }.reading-detail dd { margin-top:.2rem; font-weight:700; }.reading-detail section { margin:1.5rem 0; }.reading-detail section > p { margin-top:.5rem; white-space:pre-wrap; color:var(--color-text-muted); }.reading-journal form { display:grid; gap:.7rem; margin:1rem 0; padding:1rem; border-radius:var(--radius-medium); background:var(--color-surface); }.reading-journal label { display:grid; gap:.35rem; font-size:.8rem; font-weight:700; }.reading-journal article { position:relative; margin:.7rem 0; padding:1rem 2.5rem 1rem 1rem; border-left:3px solid var(--color-accent); border-radius:0 var(--radius-small) var(--radius-small) 0; background:var(--color-surface); }.reading-journal article time { color:var(--color-title); font-size:.72rem; font-weight:750; }.reading-journal article p { margin-top:.35rem; white-space:pre-wrap; }.reading-journal article button { position:absolute; top:.6rem; right:.7rem; color:var(--color-text-faint); }.reading-journal__empty { color:var(--color-text-muted); }

@media(max-width:760px){.readings-header{align-items:flex-start;flex-direction:column}.reading-stats{grid-template-columns:1fr}.reading-shelf>header{align-items:stretch;flex-direction:column}.reading-shelf input{min-width:0;width:100%}.reading-form{grid-template-columns:1fr}.reading-cover-field{display:grid;grid-template-columns:auto 1fr;justify-content:start}.reading-cover-field [data-cover-preview]{grid-row:1/3}.reading-fields{grid-template-columns:1fr}.reading-field--full{grid-column:auto}.reading-dialog footer{grid-template-columns:1fr 1fr}.reading-dialog footer .reading-delete,.reading-dialog footer span{display:none}.reading-goal{align-items:stretch;flex-direction:column}.reading-current{align-items:flex-start;flex-direction:column}}

/* Refinamento da seção Leituras com os padrões de Casa, Pendências, Aniversários e Estudos. */
.reading-tabs { margin-bottom: 1.8rem; }
.reading-toolbar { display: grid; grid-template-columns: minmax(280px, 1fr) 210px 210px; gap: .8rem; align-items: start; margin: 1.4rem 0 2rem; }
.reading-search { display: grid; min-height: 50px; grid-template-columns: 20px minmax(0, 1fr); align-items: center; gap: .65rem; padding: 0 .9rem; border: 1px solid var(--color-border); border-radius: 15px; background: var(--color-surface); color: var(--color-text-faint); }
.reading-search .icon { width: 19px; height: 19px; }.reading-search input { min-height: 48px; padding: 0; border: 0; background: transparent; }.reading-search input:focus { outline: 0; }
.reading-toolbar .reading-picker .pending-category-picker__trigger { grid-template-columns: 20px minmax(0, 1fr) 18px; }.reading-toolbar .reading-picker .pending-category-picker__menu { min-width: 220px; right: 0; left: auto; }
.reading-shelf > header > span { color: var(--color-text-muted); font-size: .8rem; }.reading-wishlist { margin-top: .4rem; }
.reading-detail-dialog { width: min(560px, calc(100vw - 1rem)); }.reading-detail__hero .reading-cover { width: 125px; border-radius: 9px; }.reading-detail__hero h2 { text-transform: none; }.reading-detail__hero p { margin-top: .25rem; color: var(--color-text-muted); }.reading-detail__hero em { margin-top: .8rem; padding: .3rem .7rem; border-radius: 999px; background: var(--color-accent-pale); color: var(--color-title); font-size: .75rem; font-style: normal; }.reading-detail__actions { grid-template-columns: 1fr 1fr; }.reading-detail__actions .primary-button,.reading-detail__actions .reading-delete { grid-column: 1/-1; }.reading-detail__actions .reading-delete { color: var(--color-danger-soft); }.reading-detail__actions button { gap: .45rem; }.reading-detail__actions .icon { width: 18px; height: 18px; }
.reading-goal-dialog,.reading-finish-dialog { width: min(520px, calc(100vw - 1rem)); padding: 1.6rem; border: 0; border-radius: 22px; background: var(--color-canvas); color: var(--color-text); box-shadow: var(--shadow-overlay); }.reading-goal-dialog::backdrop,.reading-finish-dialog::backdrop { background: rgb(20 17 15/.7); }.reading-goal-dialog header,.reading-finish-dialog header { display:flex; align-items:center; justify-content:space-between; margin-bottom:.6rem; }.reading-goal-dialog header button,.reading-finish-dialog header button { font-size:1.5rem; }.reading-goal-dialog form > p { margin-bottom:1.2rem; color:var(--color-text-muted); }.reading-goal-dialog label,.reading-finish-dialog label,.reading-finish-dialog form > div { display:grid; gap:.45rem; margin-top:1rem; font-size:.82rem; font-weight:750; }.reading-goal-dialog footer,.reading-finish-dialog footer { display:flex; justify-content:flex-end; gap:.7rem; margin-top:1.4rem; padding-top:1rem; border-top:1px solid var(--color-border); }
.reading-statistics { display:grid; gap:1.4rem; }.reading-stats--statistics { margin-bottom:0; }.reading-chart,.reading-duration { padding:1.5rem; border:1px solid var(--color-border); border-radius:var(--radius-large); background:var(--color-surface); }.reading-chart > div { display:grid; height:230px; grid-template-columns:repeat(12,1fr); gap:.5rem; align-items:end; margin-top:1rem; }.reading-chart > div > span { display:grid; height:100%; grid-template-rows:1fr auto; gap:.5rem; align-items:end; text-align:center; }.reading-chart i { position:relative; display:block; min-height:3px; height:max(3px,var(--bar)); border-radius:8px 8px 2px 2px; background:color-mix(in srgb,var(--color-accent) 75%,var(--color-soft)); }.reading-chart b { position:absolute; right:0; bottom:calc(100% + .3rem); left:0; color:var(--color-title); font-size:.72rem; }.reading-chart small { color:var(--color-text-muted); font-size:.7rem; }.reading-duration article { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--color-border); }.reading-duration article:last-child { border-bottom:0; }.reading-duration article span { display:grid; gap:.2rem; }.reading-duration small { color:var(--color-text-muted); }.reading-duration article > b { color:var(--color-title); }
.reading-summary-page { width:100%; }.reading-summary-page > header { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1.3rem; margin-bottom:1.5rem; }.reading-summary-page > header > div small { color:var(--color-title); font-size:.7rem; font-weight:800; letter-spacing:.14em; }.reading-summary-page > header h2 { margin:.15rem 0; font-size:2rem; }.reading-summary-page > header p,.reading-summary-page > header > span { color:var(--color-text-muted); font-size:.78rem; }.reading-summary-editor .study-editor__content { min-height:560px; padding:2rem clamp(1rem,5vw,4rem); font-size:1.05rem; }.reading-summary-editor { border-radius:var(--radius-large); }
:root[data-theme="dark"] .reading-goal-dialog,:root[data-theme="dark"] .reading-finish-dialog,:root[data-theme="dark"] .reading-dialog { background:var(--color-canvas); }.reading-cover--empty .icon { width:30px;height:30px; }
@media(max-width:800px){.reading-toolbar{grid-template-columns:1fr 1fr}.reading-search{grid-column:1/-1}.reading-chart>div{gap:.25rem}.reading-chart small{font-size:.6rem}.reading-summary-page>header{grid-template-columns:1fr}.reading-summary-page>header>span{display:none}.reading-detail__actions{grid-template-columns:1fr}.reading-detail__actions .primary-button,.reading-detail__actions .reading-delete{grid-column:auto}}

.reading-dialog.birthday-form-dialog { width:min(780px,calc(100vw - 2rem)); border:1px solid var(--color-border); background:#fffdfa; }
.reading-dialog.birthday-form-dialog form > header { padding:1.6rem 1.7rem 1rem; }.reading-dialog.birthday-form-dialog form > header > div { display:flex; align-items:flex-start; gap:.9rem; }.reading-dialog.birthday-form-dialog form > header > div > span { color:var(--color-accent); font-size:2rem; line-height:1; transform:rotate(-8deg); }.reading-dialog.birthday-form-dialog h2 { margin:0; font-size:1.25rem; }.reading-dialog.birthday-form-dialog header p { margin-top:.3rem; font-size:.78rem; }.reading-dialog.birthday-form-dialog header .icon-button { display:grid; width:40px; height:40px; place-items:center; padding:0; border-radius:50%; }.reading-dialog.birthday-form-dialog header .icon { width:19px; height:19px; }
.reading-dialog .reading-form.birthday-form-grid { grid-template-columns:165px minmax(0,1fr); gap:1.4rem; padding:1.2rem 1.7rem; }.reading-dialog .birthday-field { gap:.42rem; }.reading-dialog .birthday-field > span { font-size:.78rem; font-weight:650; }.reading-dialog .birthday-field > input { min-height:48px; padding:.75rem .9rem; border:1px solid #efdfd0; border-radius:14px; background:white; }.reading-dialog .birthday-field .pending-category-picker__trigger { min-height:48px; border-color:#efdfd0; border-radius:14px; background:white; }.reading-dialog.birthday-form-dialog form > footer { display:flex; justify-content:flex-end; gap:.75rem; padding:1rem 1.7rem 1.5rem; }.reading-dialog.birthday-form-dialog form > footer button { min-width:140px; border-radius:999px; }
.reading-summary-actions { display:flex; justify-content:flex-end; gap:.6rem; }.reading-summary-actions button { gap:.45rem; }.reading-summary-actions .icon { width:18px; height:18px; }.reading-summary-feedback { min-height:1.3rem; margin-top:.55rem; color:var(--color-accent); font-size:.78rem; text-align:right; }.reading-summary-print-heading { display:none; }
@media(max-width:700px){.reading-dialog .reading-form.birthday-form-grid{grid-template-columns:1fr}.reading-summary-actions{justify-content:flex-start;flex-wrap:wrap}}
@media print {
  body.is-printing-reading { background:white; }
  body.is-printing-reading .sidebar,body.is-printing-reading .topbar,body.is-printing-reading .drawer-backdrop,body.is-printing-reading .readings-header,body.is-printing-reading .reading-tabs,body.is-printing-reading .reading-summary-page > header,body.is-printing-reading .study-editor__toolbar,body.is-printing-reading .reading-summary-feedback,body.is-printing-reading dialog { display:none !important; }
  body.is-printing-reading .app-main { margin:0; } body.is-printing-reading .content { padding:0; } body.is-printing-reading .content__inner { width:100%; } body.is-printing-reading .reading-summary-print-heading { display:block; margin-bottom:1.5rem; border-bottom:1px solid #ddd; } body.is-printing-reading .reading-summary-print-heading h1 { font-size:1.8rem; } body.is-printing-reading .reading-summary-print-heading p { margin:.25rem 0 1rem; color:#666; } body.is-printing-reading .study-editor { overflow:visible; border:0; background:white; } body.is-printing-reading .study-editor__content { min-height:0; padding:0; color:#222; }
}

.reading-stats.goal-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }.reading-stat.goal-stat { min-height:116px; display:grid; grid-template-columns:52px minmax(0,1fr); align-items:center; padding:1rem; border-radius:18px; }.reading-stat.goal-stat strong { margin:.05rem 0; font-size:1.55rem; }.reading-stat.goal-stat small { letter-spacing:0; }.reading-stat .goal-progress { width:100%; min-width:120px; margin-top:.45rem; overflow:visible; white-space:normal; }.reading-stat .goal-progress > span { display:block; }.reading-stat > div { min-width:0; }.reading-stat button[data-action="edit-goal"] { margin-top:.45rem; padding:0; border:0; border-radius:0; background:transparent; color:var(--color-accent); text-decoration:underline; text-underline-offset:3px; box-shadow:none; }
.reading-grid { grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:2rem 1.7rem; }.reading-book { max-width:220px; }.reading-book > button { padding:0; border:0; background:transparent; box-shadow:none; }.reading-book .reading-cover { border:0; background:transparent; box-shadow:none; }.reading-book .reading-cover--empty { border:1px solid var(--color-border); background:var(--color-soft); }.reading-book > button:focus-visible { border-radius:10px; outline:3px solid color-mix(in srgb,var(--color-accent) 35%,transparent); outline-offset:5px; }
.reading-summary-feedback--top { min-height:1.15rem; margin:0 0 .35rem; }.reading-summary-page > header > div:last-child { justify-self:end; }.reading-summary-editor .study-highlight-picker { position:relative; }.reading-summary-editor .study-highlight-menu { z-index:5; }.reading-print-frame { position:fixed; width:1px; height:1px; border:0; opacity:0; pointer-events:none; }
@media(max-width:760px){.reading-stats.goal-stats{grid-template-columns:1fr}.reading-grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr))}.reading-summary-page>header>div:last-child{justify-self:start}}

/* Leituras usa o mesmo componente de resumo visual de Metas, sem sobrescritas antigas. */
.reading-stats.goal-stats { margin-bottom:1rem; }
.reading-stats.goal-stats .goal-stat { display:grid; min-height:116px; grid-template-columns:52px minmax(0,1fr); align-items:center; gap:.85rem; padding:1rem; border:1px solid var(--color-border); border-radius:18px; background:var(--color-surface); box-shadow:var(--shadow-card); }
.reading-stats.goal-stats .goal-stat p { color:var(--color-text); font-size:.8rem; font-weight:700; letter-spacing:0; text-transform:none; }
.reading-stats.goal-stats .goal-stat > div > strong { display:block; margin:.05rem 0; color:var(--color-text); font-size:1.55rem; font-weight:700; line-height:1.15; }
.reading-stats.goal-stats .goal-stat > div > small { display:block; overflow:hidden; color:var(--color-text-muted); font-size:.7rem; font-weight:400; letter-spacing:0; text-overflow:ellipsis; white-space:nowrap; }
.reading-stats.goal-stats .goal-stat__icon { background:var(--color-accent-pale); color:var(--color-accent); }
.reading-stats.goal-stats .goal-progress strong { margin:0; color:var(--color-text); font-size:.8rem; font-weight:700; }
.reading-goal-dialog.reading-dialog { width:min(780px,calc(100vw - 2rem)); padding:0; }.reading-goal-grid { padding-top:1.2rem; }.reading-goal-intro { grid-column:1/-1; color:var(--color-text-faint); font-size:.78rem; line-height:1.5; }.reading-goal-dialog form > footer { display:flex; justify-content:flex-end; gap:.75rem; padding:1rem 1.7rem 1.5rem; border-top:0; }.reading-goal-dialog form > footer button { min-width:140px; border-radius:999px; }
.reading-summary-editor .study-highlight-picker > button svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.reading-finish-dialog.reading-dialog { width:min(780px,calc(100vw - 2rem)); padding:0; }.reading-finish-grid { padding-top:1.2rem; }.reading-finish-rating { grid-column:1/-1; }.reading-finish-rating .recommendation-stars { min-height:48px; align-items:center; }.reading-finish-rating .recommendation-stars button { font-size:1.75rem; }.reading-finish-dialog form > footer { display:flex; justify-content:flex-end; gap:.75rem; padding:1rem 1.7rem 1.5rem; border-top:0; }.reading-finish-dialog form > footer button { min-width:140px; border-radius:999px; }

/* Casa */
.home-page { display: grid; min-width: 0; gap: 1.35rem; }
.home-page > [data-home-content] { display: grid; min-width: 0; gap: 1.35rem; }
.home-header { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.home-header h1 { max-width: none; margin-top: .12rem; font-family: var(--font-editorial); font-size: clamp(2.25rem, 4vw, 3rem); letter-spacing: -.045em; }
.home-header > div > p:last-child { margin-top: .35rem; color: var(--color-text-muted); }
.home-eyebrow { color: var(--color-accent); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.home-new { min-height: 48px; padding-inline: 1.15rem; border-radius: 999px; box-shadow: 0 8px 22px rgb(215 125 171 / .22); }
.home-new span { font-size: 1.25rem; font-weight: 400; }
.home-tabs { display: flex; width: 100%; max-width: 100%; min-width: 0; border-bottom: 1px solid var(--color-border); }
.home-tabs button { position: relative; display: inline-flex; min-width: 132px; min-height: 55px; align-items: center; justify-content: center; gap: .55rem; background: transparent; color: var(--color-text-muted); font-weight: 650; }
.home-tabs button::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: var(--color-accent); content: ''; opacity: 0; transform: scaleX(.35); }
.home-tabs button.is-active { color: var(--color-accent); }
.home-tabs button.is-active::after { opacity: 1; transform: scaleX(1); }
.home-tabs .icon { width: 19px; height: 19px; }
.home-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; }
.home-stats article { display: flex; min-height: 94px; align-items: center; gap: 1rem; padding: 1rem 1.2rem; border: 1px solid var(--color-border); border-radius: 18px; background: rgb(255 255 255 / .72); box-shadow: var(--shadow-card); }
.home-stat-icon { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; border-radius: 15px; font-size: 1.25rem; font-weight: 600; }
.home-stat-icon--pink { background: #fde8f0; color: #ec5288; }
.home-stat-icon--violet { background: #eee8ff; color: #855bea; }
.home-stat-icon--orange { background: #fff0dc; color: #f09a39; }
.home-stat-icon .icon { width: 22px; height: 22px; }
.home-stats strong { display: block; font-size: 1.3rem; font-weight: 650; }
.home-stats small { display: block; margin-top: .15rem; color: var(--color-text-muted); font-size: .74rem; }
.home-toolbar { display: flex; align-items: center; gap: .7rem; margin-top: 1rem; }
.home-toolbar .home-filter { width: 220px; min-width: 0; }
.home-filter .pending-category-picker__trigger { min-height: 45px; border-radius: 12px; }
.home-finance-toolbar .home-filter { width: auto; }
.home-quick-filters { margin-top: -1.55rem; }
.home-chevron { display: grid; width: 18px; height: 18px; place-items: center; color: var(--color-text-muted); font-size: 1.05rem; font-weight: 700; line-height: 1; }
.home-toolbar > button { margin-left: auto; padding: .7rem; background: transparent; color: var(--color-accent); font-size: .78rem; font-weight: 650; }
.home-period { display: flex; min-width: 310px; align-items: center; justify-content: space-between; gap: .5rem; }
.home-period button { width: 40px; height: 40px; border: 1px solid var(--color-border); border-radius: 11px; background: white; color: var(--color-text-muted); font-size: 1.35rem; }
.home-period strong { min-width: 190px; font-size: .83rem; text-align: center; text-transform: capitalize; }
.home-period--top { width: min(100%, 460px); margin: -.5rem auto 0; }
.home-week-board { display: grid; width: 100%; max-width: 100%; min-width: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin-top: 1rem; }
.home-week-day { display: flex; min-height: 310px; overflow: hidden; flex-direction: column; border: 1px solid var(--color-border); border-radius: 16px; background: rgb(255 255 255 / .6); }
.home-week-day.is-drag-over { border-color: var(--color-accent); background: var(--color-accent-pale); box-shadow: inset 0 0 0 2px rgb(215 125 171 / .12); }
.home-week-day > header { display: flex; min-height: 68px; align-items: center; justify-content: space-between; padding: .85rem; border-bottom: 1px solid var(--color-border); }
.home-week-day > header strong { display: block; font-size: .78rem; text-transform: capitalize; }
.home-week-day > header small { display: block; margin-top: .2rem; color: var(--color-text-faint); font-size: .7rem; }
.home-week-day > header > span { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 8px; background: #fff0f5; color: var(--color-accent); font-size: .7rem; font-weight: 700; }
.home-week-day > div { flex: 1; padding: .45rem; }
.home-week-day > button { min-height: 45px; border-top: 1px solid var(--color-border); background: transparent; color: var(--color-accent); font-size: .72rem; font-weight: 700; }
.home-day-empty { padding: 1.2rem .5rem; color: var(--color-text-faint); font-size: .7rem; text-align: center; }
.home-demand { margin-bottom: .45rem; overflow: hidden; border: 1px solid #efe6de; border-radius: 11px; background: white; }
.home-demand[draggable="true"] { cursor: grab; }
.home-demand.is-dragging { opacity: .38; cursor: grabbing; }
.home-demand.is-done { opacity: .6; }
.home-demand.is-done strong { text-decoration: line-through; }
.home-demand__row { display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: center; padding-left: .45rem; }
.home-demand__check { display: grid; width: 22px; height: 22px; flex: 0 0 22px; place-items: center; border: 1.5px solid var(--color-border); border-radius: 50%; background: var(--color-surface); color: white; }
.home-demand__check span { font-size: .7rem; font-weight: 850; line-height: 1; }
.is-done .home-demand__check, .home-demand__check[aria-pressed="true"] { border-color: var(--color-accent); background: var(--color-accent); }
.home-demand__summary { display: grid; width: 100%; min-height: 43px; grid-template-columns: 8px minmax(0, 1fr) auto; align-items: center; gap: .5rem; padding: .5rem .55rem; background: transparent; color: var(--color-text); text-align: left; }
.home-demand__summary i, .home-upcoming i { width: 8px; height: 8px; border-radius: 50%; background: var(--demand-color); }
.home-demand__summary strong { overflow: hidden; font-size: .69rem; text-overflow: ellipsis; }
.home-demand__summary span { color: var(--color-text-faint); }
.home-demand__details { padding: .15rem .7rem .7rem; border-top: 1px solid #f4ece6; }
.home-demand__details dl { display: grid; gap: .42rem; padding-top: .55rem; }
.home-demand__details dl div { display: flex; justify-content: space-between; gap: .5rem; font-size: .63rem; }
.home-demand__details dt { color: var(--color-text-faint); }
.home-demand__details dd { text-align: right; }
.home-demand__details p { margin-top: .6rem; color: var(--color-text-muted); font-size: .63rem; line-height: 1.45; }
.home-demand__details footer { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; margin-top: .65rem; }
.home-demand__details footer > span { margin-right: auto; }
.home-demand__details footer button { padding: .3rem 0; background: transparent; color: var(--color-accent); font-size: .63rem; font-weight: 700; }
.home-demand__details footer .home-demand__delete { color: var(--color-danger-soft); }
.home-calendar { width: 100%; max-width: 100%; min-width: 0; margin-top: 1rem; overflow: hidden; border: 1px solid var(--color-border); border-radius: 17px; background: rgb(255 255 255 / .62); }
.home-calendar > header, .home-calendar > div { display: grid; grid-template-columns: repeat(7, minmax(110px, 1fr)); }
.home-calendar > header span { padding: .65rem; border-right: 1px solid var(--color-border); color: var(--color-text-muted); font-size: .72rem; font-weight: 650; text-align: center; }
.home-month-day { min-height: 112px; padding: .55rem; border-top: 1px solid var(--color-border); border-right: 1px solid var(--color-border); }
.home-month-day b { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; font-size: .72rem; }
.home-month-day.is-today b { background: var(--color-accent); color: white; }
.home-month-day.is-outside { color: #bcb4ad; background: rgb(247 243 238 / .55); }
.home-month-demand { display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: center; gap: .2rem; margin-top: .3rem; }
.home-month-demand > .home-demand__check { width: 17px; height: 17px; }
.home-month-demand > button:last-child { display: block; width: 100%; overflow: hidden; padding: .25rem .4rem; border-radius: 7px; background: color-mix(in srgb, var(--demand-color) 13%, white); color: color-mix(in srgb, var(--demand-color) 75%, #342c26); font-size: .61rem; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.home-month-demand.is-done > button:last-child { opacity: .6; text-decoration: line-through; }
.home-month-day > small { display: block; margin-top: .3rem; color: var(--color-text-faint); font-size: .58rem; }
.home-overview { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .8fr); gap: 1rem; margin-top: 1rem; }
.home-overview > section, .home-overview > aside { padding: 1.25rem; border: 1px solid var(--color-border); border-radius: 19px; background: rgb(255 255 255 / .65); }
.home-overview header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.home-overview header small, .home-rooms-intro small { color: var(--color-accent); font-size: .67rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.home-overview h2, .home-rooms-intro h2 { margin-top: .2rem; font-size: 1.25rem; }
.home-overview header button { background: transparent; color: var(--color-accent); font-size: .72rem; font-weight: 650; }
.home-upcoming { display: grid; margin-top: .8rem; }
.home-upcoming > div { display: grid; min-height: 59px; grid-template-columns: 32px minmax(0, 1fr); align-items: center; border-top: 1px solid var(--color-border); }
.home-upcoming > div:first-child { border-top: 0; }
.home-upcoming > div > button:last-child { display: grid; min-height: 59px; grid-template-columns: 10px minmax(0, 1fr) auto; align-items: center; gap: .7rem; background: transparent; color: var(--color-text); text-align: left; }
.home-upcoming span strong { display: block; font-size: .78rem; }
.home-upcoming span small { display: block; margin-top: .2rem; color: var(--color-text-faint); font-size: .65rem; text-transform: capitalize; }
.home-upcoming em { color: var(--color-text-muted); font-size: .7rem; font-style: normal; }
.home-overview aside > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin-top: .9rem; }
.home-room-mini { display: flex; min-width: 0; align-items: center; gap: .55rem; padding: .65rem; border-radius: 12px; background: #fdfaf7; }
.home-room-mini > span { display: grid; width: 37px; height: 37px; flex: 0 0 37px; place-items: center; border-radius: 12px; background: var(--room-color); }
.home-room-mini strong { display: block; overflow: hidden; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.home-room-mini small { display: block; margin-top: .15rem; color: var(--color-text-faint); font-size: .6rem; }
.home-rooms-intro { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.home-rooms-intro p { margin-top: .35rem; color: var(--color-text-muted); font-size: .82rem; }
.home-rooms-intro > span { padding: .55rem .8rem; border-radius: 99px; background: #fff0f5; color: var(--color-accent); font-size: .7rem; font-weight: 700; }
.home-rooms { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; margin-top: 1rem; }
.home-room-card { display: flex; min-height: 335px; overflow: hidden; flex-direction: column; border: 1px solid var(--color-border); border-radius: 18px; background: rgb(255 255 255 / .7); }
.home-room-card > header { display: flex; align-items: center; gap: .75rem; padding: 1rem; border-bottom: 1px solid var(--color-border); }
.home-room-card > header > span { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 15px; background: var(--room-color); font-size: 1.25rem; }
.home-room-card h2 { font-size: 1rem; }
.home-room-card header small { color: var(--color-text-faint); font-size: .65rem; }
.home-room-actions { display: flex; margin-left: auto; opacity: 1; }
.home-room-actions button { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid var(--color-border); border-radius: 10px; background: white; color: var(--color-text-muted); }
.home-room-actions button:last-child { color: var(--color-danger-soft); }
.home-room-actions button:hover { background: var(--color-accent-pale); color: var(--color-accent); }
.home-room-actions .icon { display: block; width: 17px; height: 17px; }
.home-room-card > div { flex: 1; padding: .35rem 1rem; }
.home-room-demand { display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: center; border-bottom: 1px solid var(--color-border); }
.home-room-demand.is-done { opacity: .62; }
.home-room-demand.is-done strong { text-decoration: line-through; }
.home-room-demand > button:last-child { display: flex; width: 100%; min-height: 56px; align-items: center; justify-content: space-between; gap: .6rem; background: transparent; color: var(--color-text); text-align: left; }
.home-room-demand > button:last-child strong, .home-room-demand > button:last-child small { display: block; }
.home-room-demand > button:last-child strong { font-size: .75rem; }
.home-room-demand > button:last-child small { margin-top: .15rem; color: var(--color-text-faint); font-size: .63rem; }
.home-room-demand > button:last-child b { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 10px; background: #fff1f6; color: var(--color-accent); }
.home-room-card > div > p { padding: 2rem .5rem; color: var(--color-text-faint); font-size: .72rem; text-align: center; }
.home-room-card > footer { border-top: 1px solid var(--color-border); }
.home-room-card > footer button { width: 100%; min-height: 46px; background: transparent; color: var(--color-accent); font-size: .7rem; font-weight: 700; }
.home-dialog { width: min(700px, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); padding: 0; overflow: auto; border: 1px solid var(--color-border); border-radius: 22px; background: #fffdfa; color: var(--color-text); box-shadow: var(--shadow-overlay); }
.home-dialog::backdrop { background: rgb(52 44 38 / .35); backdrop-filter: blur(3px); }
.home-dialog form > header { display: flex; align-items: flex-start; justify-content: space-between; padding: 1.4rem 1.5rem 1rem; border-bottom: 1px solid var(--color-border); }
.home-dialog header small { color: var(--color-accent); font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.home-dialog h2 { margin-top: .2rem; font-size: 1.35rem; }
.home-dialog header p { margin-top: .3rem; color: var(--color-text-faint); font-size: .73rem; }
.home-dialog header button { background: transparent; color: var(--color-text-faint); font-size: 1.6rem; }
.home-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .95rem; padding: 1.25rem 1.5rem; }
.home-field { display: grid; gap: .4rem; }
.home-field--full { grid-column: 1 / -1; }
.home-field > span { font-size: .74rem; font-weight: 700; }
.home-field > span small { color: var(--color-text-faint); font-weight: 400; }
.home-field input, .home-field select, .home-field textarea { width: 100%; min-height: 45px; padding: .7rem .8rem; border: 1px solid var(--color-border); border-radius: 11px; background: white; color: var(--color-text); }
.home-field .pending-category-picker__trigger { min-height: 45px; border-radius: 11px; background: white; color: var(--color-text); }
.home-managed-picker .pending-category-picker__menu { min-width: 250px; }
.home-managed-picker .pending-category-picker__menu { padding-inline: .35rem; }
.home-managed-picker .pending-category-option > button { grid-template-columns: minmax(0, 1fr); padding-left: .5rem; }
.home-managed-picker .pending-category-option > button i { display: none; }
.home-managed-picker .pending-category-option > div { opacity: 1; }
.home-managed-picker .pending-category-option > div button { border-radius: 9px; background: rgb(255 255 255 / .72); }
.home-managed-picker .pending-category-option > div button:hover { background: white; color: var(--color-accent); }
.home-managed-picker .pending-category-option > div button:last-child { color: var(--color-danger-soft); }
.home-field textarea { resize: vertical; }
.home-field input:focus, .home-field select:focus, .home-field textarea:focus { border-color: var(--color-accent); outline: 3px solid rgb(215 125 171 / .13); }
.home-dialog form > footer { display: grid; grid-template-columns: auto 1fr auto auto; gap: .7rem; padding: 1rem 1.5rem 1.4rem; border-top: 1px solid var(--color-border); }
.home-dialog form > footer .primary-button, .home-dialog form > footer .secondary-button { min-width: 140px; min-height: 46px; justify-content: center; }
.home-delete { background: transparent; color: var(--color-danger-soft); font-weight: 650; }
.home-search { width: 100%; }
.home-search-results { overflow: hidden; border: 1px solid var(--color-border); border-radius: 18px; background: rgb(255 255 255 / .72); }
.home-search-results > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.25rem; border-bottom: 1px solid var(--color-border); }
.home-search-results header small { color: var(--color-accent); font-size: .67rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.home-search-results h2 { margin-top: .2rem; font-size: 1.1rem; }
.home-search-results header button { background: transparent; color: var(--color-accent); font-size: .74rem; font-weight: 700; }
.home-search-results > div { padding: 0 1.25rem; }
.home-search-results > div > button { display: grid; width: 100%; min-height: 66px; grid-template-columns: 10px minmax(0, 1fr) auto; align-items: center; gap: .75rem; border-top: 1px solid var(--color-border); background: transparent; color: var(--color-text); text-align: left; }
.home-search-results > div > button:first-child { border-top: 0; }
.home-search-results > div > button i { width: 9px; height: 9px; border-radius: 50%; background: var(--demand-color); }
.home-search-results > div > button strong, .home-search-results > div > button small { display: block; }
.home-search-results > div > button strong { font-size: .82rem; }
.home-search-results > div > button small { margin-top: .2rem; color: var(--color-text-faint); font-size: .68rem; }
.home-search-results > div > button em { color: var(--color-text-muted); font-size: .7rem; font-style: normal; }
.home-search-results > div > p { padding: 2.5rem 1rem; color: var(--color-text-faint); text-align: center; }
.home-room-form { display: grid; gap: 1.2rem; padding: 1.3rem 1.5rem; }
.home-room-form fieldset { min-width: 0; padding: 0; border: 0; }
.home-room-form legend { margin-bottom: .5rem; font-size: .74rem; font-weight: 700; }
.home-room-icon-options, .home-room-color-options { display: flex; flex-wrap: wrap; gap: .5rem; }
.home-room-icon-options input, .home-room-color-options input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.home-room-icon-options span { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid var(--color-border); border-radius: 12px; background: white; cursor: pointer; }
.home-room-icon-options input:checked + span { border-color: var(--color-accent); background: var(--color-accent-pale); box-shadow: 0 0 0 2px rgb(215 125 171 / .14); }
.home-room-color-options label > span { display: grid; width: 36px; height: 36px; place-items: center; border: 5px solid white; border-radius: 50%; background: var(--room-choice); box-shadow: 0 0 0 1px var(--color-border); cursor: pointer; }
.home-room-color-options input:checked + span { box-shadow: 0 0 0 2px var(--color-accent); }
.home-room-custom-color { position: relative; }
.home-room-custom-color input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.home-room-custom-color span { color: var(--color-accent); font-size: 1.1rem; }

@media (prefers-reduced-motion: no-preference) {
  .home-tabs button::after, .home-room-card, .home-upcoming > button { transition: transform 160ms ease, opacity 160ms ease, background-color 160ms ease; }
  .home-room-card:hover { transform: translateY(-2px); }
  .home-upcoming > button:hover { background: #fdf8f4; }
}

/* Financeiro */
.finance-page { gap: clamp(1.8rem, 3vw, 2.5rem); }
.finance-month-nav { display: flex; align-items: center; justify-content: center; gap: .8rem; margin-top: -.7rem; }
.finance-month-nav button { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid var(--color-border); border-radius: 50%; background: var(--color-surface); color: var(--color-text); font-size: 1.35rem; }
.finance-month-nav strong { min-width: 180px; font-size: .9rem; text-align: center; text-transform: capitalize; }
.finance-overview { display: grid; gap: clamp(1.8rem, 3vw, 2.5rem); }
.finance-export-actions { display: flex; justify-content: flex-end; margin-bottom: -1.5rem; }
.finance-export-actions button, .finance-report-actions, .finance-report-actions button { display: flex; align-items: center; gap: .45rem; }
.finance-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 1rem; }
.finance-summary { position: relative; display: grid; min-height: 112px; grid-template-columns: 46px minmax(0, 1fr); align-items: center; gap: .55rem; padding: .75rem .8rem; border: 1px solid var(--color-border); border-radius: 18px; background: var(--color-surface); box-shadow: var(--shadow-card); }
.finance-summary__icon { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 50%; background: var(--finance-soft); color: var(--finance-color); }
.finance-summary__icon { font-size: 1.35rem; }
.finance-summary p { color: var(--color-text-muted); font-size: .76rem; font-weight: 700; }
.finance-summary > div > strong { display: block; margin: .12rem 0 .32rem; color: var(--finance-color); font-size: clamp(1.2rem, 2vw, 1.6rem); letter-spacing: -.035em; }
.finance-summary small { color: var(--color-text-faint); font-size: .7rem; }
.finance-summary--income { --finance-color: #258656; --finance-soft: #e7f5ec; }
.finance-summary--income-pending { --finance-color: #56896d; --finance-soft: #edf6f0; }
.finance-summary--expense { --finance-color: #c95e82; --finance-soft: #fdebf1; }
.finance-summary--expense-pending { --finance-color: #a75b72; --finance-soft: #f9edf1; }
.finance-summary--card { --finance-color: #755ac1; --finance-soft: #f0ecff; }
.finance-summary--balance { --finance-color: #3c78a8; --finance-soft: #e8f2fa; }
.finance-summary--forecast { --finance-color: #806629; --finance-soft: #faf3dc; }
.finance-summary:has(.finance-balance-breakdown) { align-items: start; }
.finance-summary:has(.finance-balance-breakdown) > .finance-summary__icon { margin-top: .2rem; }
.finance-balance-breakdown { margin-top: .55rem; }
.finance-balance-breakdown > summary { display: flex; width: fit-content; align-items: center; gap: .35rem; color: var(--finance-color); cursor: pointer; font-size: .7rem; font-weight: 750; list-style: none; }
.finance-balance-breakdown > summary::-webkit-details-marker { display: none; }
.finance-balance-breakdown > summary span { transition: transform .2s ease; }
.finance-balance-breakdown[open] > summary span { transform: rotate(180deg); }
.finance-balance-breakdown > div { position: absolute; z-index: 20; top: calc(100% - .45rem); right: .75rem; display: grid; width: min(360px, calc(100vw - 2rem)); gap: .55rem; padding: .85rem; border: 1px solid var(--color-border); border-radius: 14px; background: var(--color-surface); box-shadow: var(--shadow-overlay); }
.finance-balance-breakdown article { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: .45rem; }
.finance-balance-breakdown article > i { font-style: normal; text-align: center; }
.finance-balance-breakdown article > span { display: grid; min-width: 0; }
.finance-balance-breakdown article b { overflow: hidden; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.finance-balance-breakdown article > strong { color: var(--finance-color); font-size: .74rem; }
.finance-balance-breakdown > div > p { color: var(--color-text-faint); font-size: .7rem; }
.finance-launches { display: grid; gap: .9rem; }
.finance-launches__header { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.finance-launches__header h2 { margin-top: .15rem; font-size: 1.22rem; }
.finance-filter { min-width: 112px; }
.finance-filter .icon { width: 16px; height: 16px; }
.finance-launches__list { padding-block: .4rem; overflow: visible; }
.finance-transaction { display: grid; min-height: 72px; grid-template-columns: 44px 40px minmax(150px, 1.2fr) minmax(105px, .75fr) minmax(150px, 1.3fr) 60px 38px; align-items: center; gap: .7rem; padding: .45rem .55rem; border-radius: 14px; }
.finance-transaction + .finance-transaction { border-top: 1px solid color-mix(in srgb, var(--color-border) 70%, transparent); }
.finance-transaction:hover { background: color-mix(in srgb, var(--color-accent-pale) 35%, transparent); }
.finance-transaction__icon { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; }
.finance-transaction__icon { font-size: 1.1rem; font-weight: 850; }
.finance-transaction__icon .icon { width: 17px; height: 17px; }
.finance-transaction__icon--income { background: #e7f5ec; color: #258656; }
.finance-transaction__icon--expense { background: #fdebf1; color: #c95e82; }
.finance-transaction__icon--card { background: #f0ecff; color: #755ac1; }
.finance-transaction--credit { background: #f4f3f5; }
.finance-transaction--credit:hover { background: #eeecef; }
.finance-transaction__main { display: grid; min-width: 0; }
.finance-transaction__main strong { overflow: hidden; font-size: .84rem; text-overflow: ellipsis; white-space: nowrap; }
.finance-transaction small, .finance-transaction time, .finance-transaction__meta > span { color: var(--color-text-muted); font-size: .7rem; }
.finance-transaction__value { display: grid; justify-items: start; gap: .12rem; font-size: .82rem; }
.finance-transaction__value small { color: var(--color-text-muted); font-size: .67rem; font-weight: 750; text-align: left; }
.finance-transaction__value--income { color: #258656; }
.finance-transaction__value--expense { color: #c95e82; }
.finance-transaction__meta { display: grid; min-width: 0; gap: .15rem; }
.finance-transaction__meta > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.finance-transaction__meta small { width: fit-content; color: var(--color-text-muted); }
.finance-transaction--completed:not(.finance-transaction--credit) .finance-transaction__meta span,
.finance-transaction--completed:not(.finance-transaction--credit) .finance-transaction__destination { color: inherit; }
.finance-transaction:has(.finance-transaction__value--income) .finance-transaction__meta span,
.finance-transaction:has(.finance-transaction__value--income) .finance-transaction__destination { color: #258656; }
.finance-transaction:has(.finance-transaction__value--expense) .finance-transaction__meta span,
.finance-transaction:has(.finance-transaction__value--expense) .finance-transaction__destination { color: #c95e82; }
.finance-transaction--credit .finance-transaction__value,
.finance-transaction--credit .finance-transaction__meta span,
.finance-transaction--credit .finance-transaction__destination { color: #755ac1; }
.finance-transaction__more { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 10px; background: transparent; color: var(--color-text-faint); letter-spacing: .05em; transform: rotate(90deg); }
.finance-transaction__more:hover { background: var(--color-soft); color: var(--color-accent); }
.finance-transaction__menu { position: relative; }
.finance-transaction__menu > div { position: absolute; z-index: 50; top: 38px; right: 0; width: 140px; padding: .35rem; border: 1px solid var(--color-border); border-radius: 12px; background: white; box-shadow: var(--shadow-overlay); }
.finance-transaction:last-child .finance-transaction__menu > div { top: auto; bottom: 38px; }
.finance-transaction__menu > div[hidden] { display: none; }
.finance-transaction__menu > div button { display: flex; width: 100%; align-items: center; gap: .45rem; padding: .55rem .6rem; border-radius: 8px; background: transparent; color: var(--color-text); font-size: .76rem; text-align: left; }
.finance-transaction__menu > div button:hover { background: var(--color-soft); }
.finance-transaction__menu > div button:last-child { color: var(--color-danger-soft); }
.finance-transaction__menu .icon { width: 15px; height: 15px; }
.finance-launches__count { color: var(--color-accent); font-size: .76rem; font-weight: 700; text-align: center; }
.finance-toolbar { grid-template-columns: minmax(0, 1fr) minmax(390px, 460px); }
.finance-toolbar__filters { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(190px, .9fr); gap: .6rem; }
.finance-category-filter .pending-category-picker__trigger { grid-template-columns: minmax(0, 1fr) 18px; }
.finance-type-filter .pending-category-picker__trigger > b { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; background: var(--color-accent-pale); color: var(--color-accent); font-size: 1rem; line-height: 1; }
.finance-type-filter .pending-category-option span { display: inline-flex; align-items: center; gap: .45rem; }
.finance-type-filter .pending-category-option span b { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; background: var(--color-accent-pale); color: var(--color-accent); font-size: .85rem; line-height: 1; }
.finance-status-filters { margin-top: -.2rem; }
.finance-empty { padding: 2.5rem 1rem; color: var(--color-text-faint); text-align: center; }
.finance-tab-panel { display: grid; min-height: 320px; place-items: center; align-content: center; gap: .55rem; padding: 2rem; border: 1px dashed var(--color-border); border-radius: 20px; color: var(--color-text-muted); text-align: center; }
.finance-tab-panel > span { display: grid; width: 58px; height: 58px; place-items: center; margin-bottom: .35rem; border-radius: 50%; background: var(--color-accent-pale); color: var(--color-accent); }
.finance-tab-panel > span .icon { width: 24px; height: 24px; }
.finance-tab-panel h2 { color: var(--color-text); font-size: 1.2rem; }
.finance-tab-panel p { max-width: 440px; font-size: .84rem; }
.finance-dialog { width: min(760px, calc(100vw - 2rem)); }
.finance-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.finance-dialog:not(.finance-entity-dialog) .activity-form { padding: 2rem 2.15rem; }
.finance-dialog__header { position: relative; display: grid; justify-content: stretch; margin-bottom: 1.8rem; text-align: center; }
.finance-dialog__header h2 { font-size: 1.8rem; }
.finance-dialog__header .icon-button { position: absolute; top: -.45rem; right: -.5rem; }
.finance-dialog:not(.finance-entity-dialog) .finance-form__grid { gap: 1.25rem 1rem; }
.finance-dialog:not(.finance-entity-dialog) .form-field > span,
.finance-dialog:not(.finance-entity-dialog) .finance-segmented legend { color: #503b35; font-size: .9rem; font-weight: 700; }
.finance-dialog:not(.finance-entity-dialog) .form-field input,
.finance-dialog:not(.finance-entity-dialog) .form-field select,
.finance-dialog:not(.finance-entity-dialog) .form-field textarea,
.finance-dialog:not(.finance-entity-dialog) .work-category-trigger { min-height: 56px; padding-inline: 1rem; border-color: #eadfd7; border-radius: 20px; background: #fffdfa; font-size: .96rem; }
.finance-dialog:not(.finance-entity-dialog) .form-field textarea { min-height: 128px; padding-block: .9rem; }
.finance-dialog:not(.finance-entity-dialog) .finance-segmented > div { min-height: 58px; border-radius: 22px; }
.finance-dialog:not(.finance-entity-dialog) .finance-segmented label > span { min-height: 48px; border-radius: 18px; }
:root[data-theme="dark"] .finance-dialog:not(.finance-entity-dialog) :is(.form-field input, .form-field select, .form-field textarea, .work-category-trigger) { border-color: var(--color-border); background: var(--color-surface); color: var(--color-text); }
:root[data-theme="dark"] .finance-dialog:not(.finance-entity-dialog) :is(.form-field > span, .finance-segmented legend) { color: var(--color-text-muted); }
.finance-segmented { min-width: 0; padding: 0; border: 0; }
.finance-segmented legend { margin-bottom: .42rem; color: var(--color-text); font-size: .8rem; font-weight: 750; }
.finance-segmented > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 4px; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-soft); }
.finance-segmented input { position: absolute; opacity: 0; pointer-events: none; }
.finance-segmented label > span { display: flex; min-height: 42px; align-items: center; justify-content: center; border-radius: 999px; color: var(--color-text-muted); font-size: .82rem; font-weight: 750; cursor: pointer; }
.finance-segmented input:checked + span { background: var(--color-surface); color: var(--color-accent); box-shadow: 0 2px 8px rgb(70 54 42 / .08); }
.finance-segmented input:focus-visible + span { outline: 2px solid var(--color-focus); outline-offset: 1px; }
.finance-recurring-fields, .finance-installment-fields, .finance-reimbursement-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding: 1rem; border: 1px dashed var(--color-border); border-radius: 16px; background: color-mix(in srgb, var(--color-soft) 45%, transparent); }
.finance-recurring-fields[hidden], .finance-installment-fields[hidden], .finance-reimbursement-fields[hidden] { display: none; }
.finance-recurrence-calendar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; }
.finance-recurrence-calendar button { min-height: 42px; padding: .45rem; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-surface); color: var(--color-text-muted); font-size: .78rem; text-transform: capitalize; }
.finance-recurrence-calendar button[aria-pressed="true"] { border-color: var(--color-accent); background: var(--color-accent-pale); color: var(--color-accent); font-weight: 750; }
.finance-installment-toggle { display: flex; min-height: 60px; align-items: center; gap: .7rem; padding: .8rem 1rem; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); cursor: pointer; }
.finance-installment-toggle[hidden] { display: none; }
.finance-installment-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.finance-installment-toggle > span { display: grid; width: 25px; height: 25px; flex: 0 0 25px; place-items: center; border: 2px solid #efb9c9; border-radius: 50%; }
.finance-installment-toggle input:checked + span { border-color: #e4a3b7; background: #efbdca; }
.finance-installment-toggle input:checked + span::after { color: #714c57; content: '✓'; font-size: .78rem; font-weight: 900; }
.finance-installment-toggle strong { font-size: .88rem; font-weight: 600; }
.finance-installment-fields output { display: flex; min-height: 48px; align-items: center; padding: .72rem .85rem; border: 1px solid var(--color-border); border-radius: 14px; background: var(--color-surface); color: var(--color-text); font-weight: 750; }
.finance-installment-hint { margin-top: -.25rem; color: var(--color-text-faint); font-size: .75rem; font-style: italic; }
.finance-managed-picker { position: relative; }
.finance-managed-picker .work-category-menu { z-index: 30; }
.finance-managed-picker[data-managed-picker] .work-category-trigger,
.finance-managed-picker[data-finance-picker="payment"] .work-category-trigger,
.finance-managed-picker[data-finance-picker="destination"] .work-category-trigger { grid-template-columns: minmax(0, 1fr) 18px; }
.finance-payment-field { min-width: 0; }
.finance-dialog:not(.finance-entity-dialog) .finance-payment-field > span { overflow: hidden; font-size: clamp(.72rem, 1.25vw, .9rem); text-overflow: clip; white-space: nowrap; }
.finance-entity-section { display: grid; gap: 1.25rem; }
.finance-entity-section > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.finance-entity-section h2 { font-size: 1.35rem; }
.finance-entity-grid .study-folder__avatar .icon, .finance-card-title .custom-list-card__avatar .icon { width: 24px; height: 24px; }
.finance-entity-grid .finance-entity-emoji { font-size: 1.55rem; }
.finance-entity-grid .study-folder__meta time { color: var(--color-text); font-size: 1rem; }
.finance-card-title { cursor: default; }
.finance-card-title > button { display: grid; width: 32px; height: 32px; grid-area: chevron; place-items: center; border-radius: 9px; background: transparent; color: var(--color-text-faint); }
.finance-card-title > button:hover { background: color-mix(in srgb, var(--list-color) 25%, transparent); }
.finance-card-title > button .icon { width: 16px; height: 16px; }
.finance-card-empty { padding: .7rem 0; color: var(--color-text-faint); font-size: .78rem; }
.finance-card-grid .custom-list-card__details footer { display: flex; justify-content: flex-end; margin-top: .75rem; }
.finance-card-grid .custom-list-card__details footer button { padding: .5rem .7rem; border-radius: 10px; background: var(--color-accent-pale); color: var(--color-accent); font-size: .75rem; font-weight: 700; }
.finance-card-purchase { display: grid; min-height: 38px; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .7rem; border-bottom: 1px solid color-mix(in srgb, var(--color-border) 65%, transparent); color: var(--color-text-muted); font-size: .82rem; }
.finance-card-purchase strong { color: var(--color-text); font-size: .78rem; }
.finance-entity-dialog .activity-dialog__footer { align-items: center; }
.finance-investment-icons { border: 0; }
.finance-investment-icons legend { margin-bottom: .65rem; font-size: .82rem; font-weight: 750; }
.finance-investment-icons > div { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .55rem; }
.finance-investment-icons label { display: grid; min-height: 76px; place-items: center; align-content: center; gap: .28rem; padding: .45rem .3rem; border: 1px solid var(--color-border); border-radius: 14px; cursor: pointer; text-align: center; }
.finance-investment-icons input { position: absolute; opacity: 0; }
.finance-investment-icons label:has(input:checked) { border-color: var(--color-accent); background: var(--color-accent-pale); }
.finance-investment-icons label > span { font-size: 1.3rem; }
.finance-investment-icons small { color: var(--color-text-muted); font-size: .74rem; }
.finance-detail__avatar { font-size: 3.5rem; }
.finance-detail__history ul { display: grid; gap: 0; padding: 0; list-style: none; }
.finance-detail__history li { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--color-border); }
.finance-detail__history li span { display: grid; gap: .18rem; }
.finance-detail__history li small { color: var(--color-text-faint); }
.finance-detail__history li b { flex: 0 0 auto; font-size: .82rem; }
.finance-detail__movement-value { display: grid; justify-items: end; gap: .3rem; }
.finance-detail__movement-value button { display: flex; align-items: center; gap: .25rem; padding: .25rem .4rem; border-radius: 8px; background: transparent; color: var(--color-danger, #b94a58); font-size: .7rem; font-weight: 750; }
.finance-detail__movement-value button:hover { background: color-mix(in srgb, currentColor 10%, transparent); }
.finance-detail__movement-value button .icon { width: 13px; height: 13px; }
.finance-detail__history li.is-invoice-payment { margin-inline: -.45rem; padding-inline: .45rem; border-radius: 10px; background: #edf8f1; }
.finance-invoice-payment-value { color: #218453; font-weight: 850; }
.finance-detail-dialog .birthday-detail__hero > p { margin-top: .35rem; color: var(--color-text-muted); }
.finance-detail-dialog .birthday-detail__stats strong { font-size: 1rem; }
.finance-invoice-balance { display: grid; gap: .3rem; padding: 1rem; border-radius: 16px; background: var(--color-soft); }
.finance-invoice-balance > span, .finance-invoice-balance small { color: var(--color-text-muted); font-size: .78rem; }
.finance-invoice-balance > strong { color: var(--color-text); font-size: 1.45rem; }
.finance-invoice-balance small b { color: var(--color-accent); }
.finance-dialog-spacer { flex: 1; }
.finance-report-actions { flex-wrap: wrap; justify-content: flex-end; }
.finance-report-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.finance-report-card { padding: 1rem; border: 1px solid var(--color-border); border-radius: 18px; background: var(--color-surface); box-shadow: var(--shadow-card); }
.finance-report-card > header { display: flex; align-items: center; justify-content: space-between; padding-bottom: .7rem; border-bottom: 1px solid var(--color-border); }
.finance-report-card h3 { font-size: .95rem; text-transform: capitalize; }
.finance-report-card header button { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 8px; background: transparent; color: var(--color-text-faint); }
.finance-report-card header .icon { width: 15px; height: 15px; }
.finance-report-card dl { display: grid; gap: .55rem; margin-top: .8rem; }
.finance-report-card dl div { display: flex; align-items: center; justify-content: space-between; gap: .5rem; font-size: .76rem; }
.finance-report-card dt { color: var(--color-text-muted); }
.finance-report-card dd { font-weight: 800; }
.finance-report-card dd.is-income { color: #258656; }
.finance-report-card dd.is-expense { color: #c95e82; }
.finance-report-card { overflow: hidden; transition: border-color .2s ease, box-shadow .2s ease; }
.finance-report-card[open] { grid-column: 1 / -1; border-color: color-mix(in srgb, var(--color-accent) 38%, var(--color-border)); }
.finance-report-card > summary { display: grid; min-height: 76px; grid-template-columns: minmax(150px, 1fr) minmax(260px, 1.2fr) 24px; align-items: center; gap: 1rem; cursor: pointer; list-style: none; }
.finance-report-card > summary::-webkit-details-marker { display: none; }
.finance-report-card > summary > span { display: grid; gap: .2rem; }
.finance-report-card > summary > span small { color: var(--color-text-muted); font-size: .75rem; font-weight: 750; text-transform: capitalize; }
.finance-report-card > summary > span strong { font-size: 1.2rem; }
.finance-report-card > summary dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; margin: 0; }
.finance-report-card > summary dl div { display: grid; justify-content: start; gap: .15rem; padding: .55rem .7rem; border-radius: 12px; background: color-mix(in srgb, var(--color-soft) 72%, transparent); }
.finance-report-card > summary > b { color: var(--color-accent); font-size: 1.35rem; transition: transform .2s ease; }
.finance-report-card[open] > summary > b { transform: rotate(180deg); }
.finance-month-dashboard { display: grid; gap: 1rem; padding-top: 1rem; border-top: 1px solid var(--color-border); }
.finance-flow-card { padding: 1rem 1.15rem; border-radius: 18px; background: linear-gradient(135deg, var(--color-accent), color-mix(in srgb, var(--color-accent) 72%, var(--color-highlight))); color: var(--color-on-accent); }
.finance-flow-card > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.finance-flow-card header > div { display: grid; gap: .2rem; }
.finance-flow-card header small { color: color-mix(in srgb, var(--color-on-accent) 72%, transparent); }
.finance-flow-card header strong { font-size: 1.3rem; }
.finance-flow-card header button { display: flex; flex: 0 0 auto; align-items: center; gap: .35rem; padding: .5rem .7rem; border-radius: 10px; background: color-mix(in srgb, var(--color-on-accent) 12%, transparent); color: var(--color-on-accent); font-size: .72rem; }
.finance-flow-card header .icon { width: 14px; height: 14px; }
.finance-flow-card > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin-top: 1rem; }
.finance-flow-card span { display: grid; grid-template-columns: auto minmax(40px, 1fr) auto; align-items: center; gap: .6rem; }
.finance-flow-card span small { color: color-mix(in srgb, var(--color-on-accent) 82%, transparent); }
.finance-flow-card span i { height: 9px; border-radius: 999px; background: linear-gradient(90deg, var(--color-accent-pale) var(--flow), color-mix(in srgb, var(--color-on-accent) 14%, transparent) var(--flow)); }
.finance-flow-card span i.is-expense { background: linear-gradient(90deg, var(--color-highlight-pale) var(--flow), color-mix(in srgb, var(--color-on-accent) 14%, transparent) var(--flow)); }
.finance-flow-card span strong { font-size: .78rem; }
.finance-month-donuts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.finance-donut-card { padding: 1.1rem; border: 1px solid var(--color-border); border-radius: 18px; background: color-mix(in srgb, var(--color-surface) 94%, var(--color-accent-pale)); }
.finance-donut-card h4 { margin-bottom: .9rem; font-size: .88rem; }
.finance-donut { display: grid; width: 154px; aspect-ratio: 1; place-items: center; margin: 0 auto 1rem; border-radius: 50%; background: var(--donut); }
.finance-donut::before { grid-area: 1 / 1; width: 58%; aspect-ratio: 1; border-radius: 50%; background: var(--color-surface); content: ''; }
.finance-donut > span { z-index: 1; display: grid; grid-area: 1 / 1; justify-items: center; gap: .1rem; }
.finance-donut strong { font-size: .85rem; }
.finance-donut small { color: var(--color-text-muted); font-size: .62rem; }
.finance-donut-card ul { display: grid; gap: .45rem; padding: 0; list-style: none; }
.finance-donut-card li { display: grid; grid-template-columns: 9px minmax(0, 1fr) auto auto; align-items: center; gap: .45rem; font-size: .67rem; }
.finance-donut-card li > i { width: 8px; height: 8px; border-radius: 50%; background: var(--legend); }
.finance-donut-card li small { color: var(--color-text-muted); }
.finance-donut-card > p { color: var(--color-text-faint); font-size: .72rem; text-align: center; }
.finance-chart-empty { margin-top: 1rem; padding-top: .8rem; border-top: 1px solid var(--color-border); color: var(--color-text-faint); font-size: .7rem; }

@media print {
  body.is-printing-finance { background: white; }
  body.is-printing-finance .sidebar, body.is-printing-finance .topbar, body.is-printing-finance .drawer-backdrop, body.is-printing-finance .finance-page__header, body.is-printing-finance .finance-month-nav, body.is-printing-finance .home-tabs, body.is-printing-finance .finance-export-actions, body.is-printing-finance .finance-report-actions, body.is-printing-finance dialog { display: none !important; }
  body.is-printing-finance .app-main { margin: 0; }
  body.is-printing-finance .content { padding: 0; }
  body.is-printing-finance .content__inner { width: 100%; max-width: none; }
  body.is-printing-finance .finance-summary, body.is-printing-finance .finance-report-card { break-inside: avoid; box-shadow: none; }
  body.is-printing-finance[data-finance-print-view="overview"] .finance-overview { gap: 1rem; }
  body.is-printing-finance[data-finance-print-view="reports"] .finance-report-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.finance-calendar { overflow: hidden; border: 1px solid var(--color-border); border-radius: 18px; background: var(--color-surface); }
.finance-calendar__weekdays, .finance-calendar__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.finance-calendar__weekdays { border-bottom: 1px solid var(--color-border); background: var(--color-soft); }
.finance-calendar__weekdays span { padding: .65rem .35rem; color: var(--color-text-muted); font-size: .72rem; font-weight: 750; text-align: center; }
.finance-calendar__day { min-width: 0; min-height: 116px; padding: .55rem; border-right: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); }
.finance-calendar__day:nth-child(7n) { border-right: 0; }
.finance-calendar__day.is-empty { background: #fbfaf8; }
.finance-calendar__day > strong { color: var(--color-text-muted); font-size: .76rem; }
.finance-calendar__day > div { display: grid; gap: .3rem; margin-top: .4rem; }
.finance-calendar__day div > span { display: grid; gap: .1rem; padding: .32rem .4rem; border-radius: 8px; background: #e7f5ec; color: #258656; }
.finance-calendar__day div > span.is-expense { background: #fdebf1; color: #c95e82; }
.finance-calendar__day div > span.is-credit { background: #f0ecff; color: #755ac1; }
.finance-calendar__day small { overflow: hidden; font-size: .67rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.finance-calendar__day b { font-size: .65rem; }

/* Calendário consolidado */
.calendar-page { display: grid; gap: 1.35rem; }
.calendar-header { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.calendar-header h1 { max-width: none; font-size: clamp(2rem, 3.5vw, 2.75rem); }
.calendar-header .page__description { margin-top: .45rem; }
.calendar-notification { position: relative; display: grid; min-width: 0; grid-template-columns: 38px minmax(0, 1fr) 42px; align-items: center; gap: .75rem; padding: .85rem .9rem; border: 1px solid var(--color-border); border-radius: 15px; background: var(--color-soft); color: #503b35; cursor: pointer; }
.calendar-notification__icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 12px; background: var(--color-accent-pale); color: var(--color-accent); }
.calendar-notification__icon .icon { width: 21px; height: 21px; }
.calendar-notification__copy { display: grid; min-width: 0; gap: .15rem; }
.calendar-notification__copy strong { font-size: .84rem; }
.calendar-notification small { color: var(--color-text-muted); font-size: .7rem; font-weight: 450; line-height: 1.35; }
.calendar-notification input { position: absolute; width: 1px; height: 1px; min-height: 0; margin: 0; padding: 0; overflow: hidden; border: 0; opacity: 0; }
.calendar-notification > i { display: block; width: 42px; height: 24px; padding: 4px; border-radius: 999px; background: var(--color-border); transition: background .2s ease; }
.calendar-notification > i::after { display: block; width: 16px; height: 16px; border-radius: 50%; background: white; box-shadow: 0 1px 4px rgba(80, 59, 53, .2); content: ''; transition: transform .2s ease; }
.calendar-notification input:checked + i { background: var(--color-accent); }
.calendar-notification input:checked + i::after { transform: translateX(18px); }
.calendar-notification:has(input:focus-visible) { outline: 3px solid color-mix(in srgb, var(--color-accent) 20%, transparent); outline-offset: 2px; }
.calendar-detail__hero { display: flex; align-items: center; gap: 1rem; padding-right: 2rem; }
.calendar-detail__hero > i { width: 54px; height: 54px; flex: 0 0 54px; border-radius: 18px; background: var(--event-detail-color); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--event-detail-color) 70%, var(--color-border)); }
.calendar-detail__hero small { color: var(--color-accent); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.calendar-detail__hero h2 { margin-top: .2rem; font-size: 1.55rem; overflow-wrap: anywhere; }
.calendar-detail__facts { display: grid; gap: .8rem; margin-top: 1.5rem; }
.calendar-detail__facts p { display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: start; gap: .65rem; color: var(--color-text-muted); line-height: 1.5; white-space: pre-line; }
.calendar-detail__facts .icon { width: 20px; height: 20px; color: var(--color-accent); }
.calendar-detail__actions { grid-template-columns: 1fr 1fr; }
.calendar-detail__actions .calendar-detail__delete { border: 1px solid color-mix(in srgb, var(--color-danger-soft) 35%, var(--color-border)); background: transparent; color: var(--color-danger-soft); }
.calendar-month-toolbar { display: grid; gap: .85rem; }
.calendar-month-nav { margin-top: -.25rem; }
.calendar-section-filter { width: min(270px, 100%); justify-self: end; }
.calendar-section-filter .pending-category-picker__trigger { min-height: 46px; border-radius: 14px; }
.calendar-section-filter .pending-category-picker__menu { right: 0; left: auto; width: max(100%, 270px); }
.calendar-section-filter .pending-category-option > button { padding-right: .75rem; }
.calendar-event > i { width: .48rem; height: .48rem; flex: 0 0 auto; border-radius: 50%; background: var(--event-color); }
.calendar-board { overflow: hidden; border: 1px solid var(--color-border); border-radius: 20px; background: var(--color-surface); box-shadow: 0 18px 50px rgba(84, 61, 72, .06); }
.calendar-weekdays, .calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.calendar-weekdays { border-bottom: 1px solid var(--color-border); background: var(--color-soft); }
.calendar-weekdays span { padding: .8rem .35rem; color: var(--color-text-muted); font-size: .7rem; font-weight: 800; text-align: center; text-transform: uppercase; letter-spacing: .06em; }
.calendar-day { min-width: 0; min-height: 142px; padding: .55rem; border-right: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); background: var(--color-surface); }
.calendar-day:nth-child(7n) { border-right: 0; }
.calendar-day.is-outside { background: #fbfaf8; }
.calendar-day > header { display: flex; align-items: center; justify-content: space-between; min-height: 1.75rem; }
.calendar-day > header strong { display: grid; width: 1.7rem; height: 1.7rem; place-items: center; border-radius: 50%; color: var(--color-text-muted); font-size: .78rem; }
.calendar-day.is-today > header strong { background: var(--color-accent); color: var(--color-on-accent); }
.calendar-day > header span { color: var(--color-accent); font-size: .62rem; font-weight: 800; }
.calendar-day > div { display: grid; gap: .3rem; margin-top: .35rem; }
.calendar-event { display: flex; min-width: 0; align-items: flex-start; gap: .38rem; padding: .38rem .42rem; border: 0; border-left: 3px solid var(--event-color); border-radius: 7px; background: color-mix(in srgb, var(--event-color) 10%, white); color: var(--color-text); text-align: left; }
.calendar-event:hover { background: color-mix(in srgb, var(--event-color) 18%, white); }
.calendar-event > i { width: .38rem; height: .38rem; margin-top: .18rem; }
.calendar-event span { min-width: 0; }
.calendar-event b, .calendar-event small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event b { font-size: .67rem; font-weight: 760; }
.calendar-event small { margin-top: .08rem; color: var(--color-text-muted); font-size: .59rem; }

:root[data-theme="dark"] .calendar-board { box-shadow: var(--shadow-card); }
:root[data-theme="dark"] .calendar-day.is-outside { background: var(--color-soft); }
:root[data-theme="dark"] .calendar-event { background: color-mix(in srgb, var(--event-color) 22%, var(--color-soft)); color: var(--color-text); }
:root[data-theme="dark"] .calendar-event:hover { background: color-mix(in srgb, var(--event-color) 32%, var(--color-soft)); }
:root[data-theme="dark"] .calendar-event small { color: var(--color-text-muted); }

@media (max-width: 700px) {
  .calendar-header { align-items: stretch; flex-direction: column; }
  .calendar-section-filter { width: 100%; }
  .calendar-board { overflow-x: auto; }
  .calendar-weekdays, .calendar-grid { min-width: 760px; }
  .calendar-day { min-height: 128px; }
}

/* Trabalho */
.work-page { display: grid; gap: 2.35rem; }
.work-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; }
.work-header h1 { font-size: clamp(2rem, 4vw, 2.6rem); letter-spacing: -.04em; }
.work-header .page__description { margin-top: .55rem; }
.work-header__actions { display: grid; width: min(340px, 100%); gap: .7rem; }
.work-header__actions > * { display: flex; min-height: 47px; align-items: center; justify-content: center; gap: .55rem; text-decoration: none; }
.work-companies { display: block; }
.work-companies > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.work-company { position: relative; display: block; min-height: 0; min-width: 0; padding: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: 22px; background: var(--color-surface); box-shadow: var(--shadow-card); }
.work-company.is-selected { border-color: var(--color-accent-soft); box-shadow: 0 0 0 3px rgb(215 125 171 / .1); }
.work-company header { display: grid; grid-template-columns: 46px minmax(0, 1fr) 30px; align-items: center; gap: .75rem; }
.work-company header h3 { font-size: .93rem; line-height: 1.35; overflow-wrap: anywhere; }
.work-company header h3 span { display: inline-block; padding: .35rem .6rem; border-radius: 8px; background: var(--name-color); color: var(--name-text); }
.work-company header p { margin-top: .2rem; color: var(--color-text-muted); font-size: .8rem; line-height: 1.45; overflow-wrap: anywhere; }
.work-company header button { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 9px; background: transparent; color: var(--color-text-faint); }
.work-company header button:hover { background: var(--color-soft); color: var(--color-accent); }
.work-company__header { grid-template-columns: 58px minmax(0, 1fr) 30px; grid-template-areas: "avatar title edit" "avatar meta edit"; }
.work-company__header > strong { grid-area: title; }
.work-company__header > button { display: grid; width: 30px; height: 30px; grid-area: edit; place-items: center; border-radius: 9px; background: transparent; color: var(--color-text-faint); }
.work-company__header > button:hover { background: color-mix(in srgb, var(--list-color) 25%, transparent); color: var(--color-text); }
.work-company__photo, .work-company__photo-placeholder { width: 58px; height: 58px; border: 0; border-radius: 50%; object-fit: cover; }
.work-company__photo-placeholder { background: color-mix(in srgb, var(--list-color) 35%, white); }
.work-company__body { display: block; }
.work-company__description { margin-top: 1rem; color: var(--color-text-muted); font-size: .78rem; line-height: 1.55; overflow-wrap: anywhere; white-space: pre-line; }
.work-company__description a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 2px; }
.work-company__contacts { display: grid; gap: .45rem; margin-top: 0; }
.work-company__contacts a { display: flex; min-width: 0; align-items: flex-start; gap: .5rem; color: var(--color-text-muted); font-size: .78rem; line-height: 1.4; }
.work-company__contacts a span { min-width: 0; overflow-wrap: anywhere; }
.work-company__contacts .icon { width: 16px; height: 16px; flex: 0 0 16px; }
.work-company__contacts svg { width: 16px; height: 16px; flex: 0 0 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.work-company__contacts i { width: 16px; flex: 0 0 16px; color: var(--color-text-faint); font-style: normal; text-align: center; }
.work-company__contact { display: flex; align-items: center; gap: .5rem; color: var(--color-text-muted); font-size: .74rem; }
.work-company__contact .icon { width: 16px; height: 16px; }
.work-company__contact-row { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) 28px; align-items: center; gap: .35rem; }
.work-company__contact-row > button { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 8px; background: transparent; color: var(--color-text-faint); }
.work-company__contact-row > button:hover { background: var(--color-soft); color: var(--color-accent); }
.work-company__contact-row > button svg { width: 15px; height: 15px; }
.work-company__actions { margin-top: .8rem; }
.work-company[tabindex] { cursor: pointer; }
.work-company[tabindex]:focus-visible { outline: 3px solid rgb(215 125 171 / .3); outline-offset: 3px; }
.work-company__tasks { display: flex; width: 100%; align-items: center; justify-content: space-between; margin-top: .85rem; padding-top: .8rem; border-top: 1px solid var(--color-border); background: transparent; color: color-mix(in srgb, var(--list-color) 45%, #6a5348); font-size: .78rem; font-weight: 750; text-align: left; }
.work-company__tasks b { font-size: 1.5rem; font-weight: 400; }
.work-company__information { margin-top: .7rem; border-top: 1px solid var(--color-border); }
.work-company__information summary { display: flex; align-items: center; justify-content: space-between; padding-top: .8rem; color: var(--color-text-muted); cursor: pointer; font-size: .75rem; font-weight: 700; list-style: none; }
.work-company__information summary::-webkit-details-marker { display: none; }
.work-company__information[open] summary span { transform: rotate(180deg); }
.work-company__information p { margin-top: .65rem; color: var(--color-text-muted); font-size: .76rem; line-height: 1.55; overflow-wrap: anywhere; white-space: pre-line; }
.work-company__information a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 2px; }
.work-tasks { display: grid; gap: .9rem; }
.work-tasks__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.work-tasks__heading h2 { font-size: 1.45rem; letter-spacing: -.025em; }
.work-tasks__heading p { color: var(--color-text-faint); font-size: .75rem; }
.work-task-panel { overflow: hidden; border: 1px solid var(--color-border); border-radius: 20px; background: rgb(255 255 255 / .75); }
.work-task-panel > header { display: flex; min-height: 70px; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 1rem; border-bottom: 1px solid var(--color-border); }
.work-task-tabs { display: flex; gap: .75rem; }
.work-task-tabs button { min-height: 44px; padding: .6rem 1rem; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); color: var(--color-text-muted); font-size: .88rem; font-weight: 650; }
.work-task-tabs button[aria-selected="true"] { border-color: transparent; background: var(--color-accent-pale); color: var(--color-accent); }
.work-task-tools { display: flex; align-items: center; gap: .75rem; }
.work-company-filter { position: relative; width: 210px; }
.work-company-filter .work-category-trigger { min-height: 43px; background: white; color: var(--color-text-muted); }
.work-company-filter__menu { position: absolute; z-index: 6; top: calc(100% + .35rem); right: 0; width: 100%; padding: .45rem; border: 1px solid var(--color-border); border-radius: 14px; background: white; box-shadow: var(--shadow-overlay); }
.work-company-filter__menu > button { display: grid; width: 100%; min-height: 42px; grid-template-columns: 20px minmax(0, 1fr); align-items: center; gap: .4rem; padding: .6rem .7rem; border-radius: 10px; background: transparent; color: var(--color-text); font-size: .82rem; text-align: left; }
.work-company-filter__menu > button.is-selected { background: var(--color-accent-pale); }
.work-company-filter__menu > button:hover { background: var(--color-soft); }
.work-company-filter__menu i { font-style: normal; }
.work-task-tools .primary-button { min-height: 43px; }
.work-task { display: grid; min-height: 78px; grid-template-columns: 32px minmax(220px, 1fr) minmax(130px, .42fr) 95px 34px; align-items: center; gap: .75rem; padding: .75rem 1rem; border-bottom: 1px solid var(--color-border); }
.work-task:last-child { border-bottom: 0; }
.work-task__check input { position: absolute; opacity: 0; }
.work-task__check > span:not(.visually-hidden) { display: grid; width: 21px; height: 21px; place-items: center; border: 1.5px solid #aaa39d; border-radius: 50%; background: white; color: transparent; cursor: pointer; font-size: .65rem; }
.work-task__check input:checked + span { border-color: var(--color-accent); background: var(--color-accent); color: white; }
.work-task__copy { min-width: 0; }
.work-task__copy strong { display: block; overflow: hidden; font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.work-task__copy p { margin-top: .3rem; overflow: hidden; color: var(--color-text-muted); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.work-task__company { justify-self: start; max-width: 100%; padding: .4rem .7rem; overflow: hidden; border-radius: 8px; background: var(--company-color); color: var(--company-text); font-size: .69rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.work-task time { display: flex; align-items: center; gap: .4rem; color: var(--color-text-muted); font-size: .72rem; white-space: nowrap; }
.work-task time .icon { width: 16px; height: 16px; }
.work-task__edit { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 9px; background: transparent; color: var(--color-text-faint); }
.work-task__edit:hover { background: var(--color-soft); color: var(--color-accent); }
.work-task.is-completed .work-task__copy { text-decoration: line-through; opacity: .55; }
.work-empty { grid-column: 1 / -1; padding: 2rem; color: var(--color-text-faint); text-align: center; }
.work-dialog { width: min(650px, calc(100vw - 2rem)); padding: 0; border: 1px solid var(--color-border); border-radius: 22px; background: white; color: var(--color-text); box-shadow: var(--shadow-overlay); }
.work-dialog::backdrop { background: rgb(52 44 38 / .38); backdrop-filter: blur(3px); }
.work-dialog form > header { display: flex; align-items: center; justify-content: space-between; padding: 1.3rem 1.5rem; border-bottom: 1px solid var(--color-border); }
.work-dialog header p { color: var(--color-accent); font-size: .67rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.work-dialog header h2 { margin-top: .2rem; font-size: 1.4rem; }
.work-dialog header button { background: transparent; color: var(--color-text-faint); font-size: 1.5rem; }
.work-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding: 1.4rem 1.5rem; }
.work-photo-field { display: flex; align-items: center; gap: 1rem; padding-bottom: .3rem; }
.work-photo-field > div { display: grid; justify-items: start; gap: .45rem; }
.work-photo-field label { display: inline-flex; min-height: 42px; align-items: center; cursor: pointer; }
.work-photo-field small { color: var(--color-text-faint); font-size: .68rem; }
.work-photo-field button { background: transparent; color: var(--color-danger-soft); font-size: .7rem; font-weight: 700; }
.work-photo-preview { display: grid; width: 86px; height: 86px; flex: 0 0 86px; place-items: center; overflow: hidden; border-radius: 50%; background: var(--color-accent-pale); color: var(--color-accent); }
.work-photo-preview > svg { width: 31px; height: 31px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.work-photo-preview img { width: 100%; height: 100%; object-fit: cover; }
.work-field { display: grid; align-content: start; gap: .4rem; }
.work-field--full { grid-column: 1 / -1; }
.work-field > span { color: var(--color-text-muted); font-size: .88rem; font-weight: 700; }
.work-field > small { color: var(--color-text-faint); font-size: .76rem; line-height: 1.4; }
.work-field input, .work-field textarea, .work-field select { width: 100%; min-height: 48px; padding: .75rem .85rem; border: 1px solid var(--color-border); border-radius: 12px; background: #fffdfa; color: var(--color-text); font: inherit; font-size: .92rem; }
.work-field input[type="color"] { padding: .3rem; cursor: pointer; }
.work-field--category { position: relative; grid-column: span 1; }
.work-category-trigger { display: grid; width: 100%; min-height: 48px; grid-template-columns: 20px minmax(0, 1fr) 18px; align-items: center; gap: .55rem; padding: .7rem .8rem; border: 1px solid var(--color-border); border-radius: 12px; background: #fffdfa; color: var(--color-text); font-size: .9rem; text-align: left; }
.work-category-trigger .icon { width: 18px; height: 18px; color: var(--color-text-faint); }
.work-category-menu { position: absolute; z-index: 4; top: calc(100% + .35rem); width: 100%; max-height: 285px; padding: .5rem; overflow-y: auto; border: 1px solid var(--color-border); border-radius: 14px; background: white; box-shadow: var(--shadow-overlay); }
.work-category-option { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; border-radius: 10px; }
.work-category-option.is-selected { background: var(--color-accent-pale); }
.work-category-option > button { display: grid; min-height: 42px; grid-template-columns: 20px minmax(0, 1fr); align-items: center; gap: .4rem; padding: .55rem; background: transparent; color: var(--color-text); text-align: left; }
.work-category-option > button i { font-style: normal; }
.work-category-option > div { display: flex; }
.work-category-option > div button { display: grid; width: 30px; height: 30px; place-items: center; background: transparent; color: var(--color-text-faint); }
.work-category-option > div .icon { width: 15px; height: 15px; }
.work-category-add { display: grid; grid-template-columns: minmax(0, 1fr) 36px; gap: .4rem; margin-top: .4rem; padding-top: .55rem; border-top: 1px solid var(--color-border); }
.work-category-add input { min-height: 39px; font-size: .8rem; }
.work-category-add button { border-radius: 9px; background: var(--color-accent-pale); color: var(--color-accent); font-size: 1.15rem; }
.work-category-option:has(.pending-category-edit) { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .35rem; padding: .3rem; }
.work-category-option > .pending-category-save { display: block; min-height: 38px; padding: .4rem .65rem; border-radius: 8px; background: var(--color-accent-pale); color: var(--color-accent); font-size: .72rem; font-weight: 750; }
.work-color-picker { min-width: 0; border: 0; }
.work-color-picker legend { margin-bottom: .55rem; color: var(--color-text-muted); font-size: .88rem; font-weight: 700; }
.work-color-picker > div { display: flex; align-items: center; gap: .42rem; min-height: 48px; }
.work-color-picker label { flex: 0 0 auto; cursor: pointer; }
.work-color-picker label > input[type="radio"] { position: absolute; opacity: 0; }
.work-color-picker label > span { display: block; width: 34px; height: 34px; border: 5px solid white; border-radius: 50%; background: var(--work-color); box-shadow: 0 0 0 1px var(--color-border); }
.work-color-picker label > input:checked + span { box-shadow: 0 0 0 3px var(--color-text-faint); }
.work-color-picker .work-color-custom { position: relative; display: grid; width: 34px; height: 34px; place-items: center; border: 1px dashed var(--color-text-faint); border-radius: 50%; background: var(--custom-work-color, white); color: var(--color-text-muted); font-size: 1.15rem; }
.work-color-custom input { position: absolute; inset: 0; min-height: 0; padding: 0; opacity: 0; cursor: pointer; }
.work-color-picker .work-color-custom span { position: absolute; inset: 0; display: grid; width: auto; height: auto; place-items: center; border: 0; background: transparent; box-shadow: none; line-height: 1; pointer-events: none; }
.work-field textarea { resize: vertical; }
.work-field input:focus, .work-field textarea:focus, .work-field select:focus { border-color: var(--color-accent); outline: 2px solid rgb(215 125 171 / .15); }
.work-dialog form > footer { display: flex; align-items: center; justify-content: flex-end; gap: .7rem; padding: 1rem 1.5rem; border-top: 1px solid var(--color-border); background: white; }
.work-dialog form > footer .secondary-button { padding: .7rem 1rem; border: 0; background: transparent; color: var(--color-text-muted); box-shadow: none; }
.work-dialog form > footer > button:first-child:not(.work-delete-button) { padding: .7rem 1rem; border: 0; background: transparent; color: var(--color-text-muted); box-shadow: none; }
.work-dialog form > footer > span { flex: 1; }
.work-dialog form > footer .primary-button { min-height: 44px; }
.work-delete-button { background: transparent; color: var(--color-danger-soft); font-size: .75rem; font-weight: 700; }
.work-details-dialog { width: min(620px, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); padding: 0; overflow: auto; border: 1px solid var(--color-border); border-radius: 32px; background: #fffdfa; color: var(--color-text); box-shadow: var(--shadow-overlay); }
.work-details-dialog::backdrop { background: rgb(52 44 38 / .42); backdrop-filter: blur(4px); }
.work-details-dialog > div { position: relative; padding: 2.3rem clamp(1.3rem, 5vw, 3rem) 2rem; }
.work-details__close { position: absolute; z-index: 2; top: 1rem; right: 1.1rem; display: grid; width: 40px; height: 40px; place-items: center; border-radius: 50%; background: transparent; color: var(--color-text-muted); font-size: 1.75rem; }
.work-details__close:hover { background: var(--color-soft); }
.work-details__hero { display: grid; justify-items: center; text-align: center; }
.work-details__hero > img, .work-details__hero > span { display: grid; width: 116px; height: 116px; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--details-color) 48%, white); color: #604d5a; font-size: 2rem; font-weight: 750; object-fit: cover; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--details-color) 65%, transparent); }
.work-details__hero h2 { margin-top: 1.15rem; font-size: clamp(1.55rem, 4vw, 2rem); letter-spacing: -.035em; }
.work-details__hero p { margin-top: .35rem; color: color-mix(in srgb, var(--details-color) 38%, #6a5348); font-size: .78rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.work-details__data { display: grid; gap: .2rem; margin-top: 1.7rem; }
.work-details__data > div { display: grid; grid-template-columns: 180px minmax(0, 1fr); align-items: start; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid var(--color-border); }
.work-details__data dt { display: flex; align-items: center; gap: .55rem; color: var(--color-text-faint); font-size: .76rem; font-weight: 750; }
.work-details__data dt svg { width: 18px; height: 18px; flex: 0 0 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.work-details__data dd { display: flex; min-width: 0; align-items: flex-start; justify-content: space-between; gap: .5rem; color: var(--color-text-muted); font-size: .83rem; line-height: 1.5; overflow-wrap: anywhere; }
.work-details__data dd a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 2px; }
.work-details__data dd button { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; border-radius: 8px; background: transparent; color: var(--color-text-faint); }
.work-details__data dd button:hover { background: var(--color-soft); color: var(--color-accent); }
.work-details__data dd button svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.work-details__information { grid-template-columns: 1fr !important; }
.work-details__information dd { display: block; padding: .2rem .2rem .4rem; white-space: pre-line; }
.work-details-dialog footer { display: grid; gap: .7rem; margin-top: 1.5rem; }
.work-details-dialog footer button { width: 100%; min-height: 50px; border-radius: 999px; }
.work-details-dialog footer button.is-danger { border-color: #f0d6d3; background: transparent; color: #d76f72; }
.work-details-dialog footer .icon { width: 18px; height: 18px; }

/* Hábitos */
.habits-page { gap: 1.8rem; }
.habits-header { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.habits-header h1 { font-size: clamp(2rem, 3.5vw, 2.75rem); }
.habit-view-tabs { width: fit-content; }
.habit-date-navigation { display: grid; gap: .7rem; }
.habit-date-navigation > div { display: grid; grid-template-columns: 50px minmax(0, 1fr) 50px; align-items: center; gap: .7rem; }
.habit-date-navigation > div > button { display: grid; width: 50px; height: 50px; place-items: center; border: 1px solid var(--color-border); border-radius: 50%; background: rgb(255 255 255 / .68); color: var(--color-text); font-size: 1.7rem; }
.habit-date-navigation > div > button:hover { border-color: var(--color-accent-soft); background: var(--color-accent-pale); color: var(--color-accent); }
.habit-date-navigation > div > button:disabled { cursor: default; opacity: .35; }
.habit-date-navigation > div > button:disabled:hover { border-color: var(--color-border); background: rgb(255 255 255 / .68); color: var(--color-text); }
.habit-date-navigation time { display: flex; min-height: 50px; align-items: center; justify-content: center; gap: .65rem; border: 1px solid var(--color-border); border-radius: 999px; background: rgb(255 255 255 / .68); font-size: .95rem; font-weight: 750; }
.habit-date-navigation time .icon { width: 20px; height: 20px; }
.habit-date-navigation footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-inline: .45rem; }
.habit-date-navigation footer em { color: #987f73; font-size: .8rem; }
.habit-date-navigation footer button { background: transparent; color: var(--color-text); font-size: .78rem; font-weight: 800; }
.habit-date-navigation footer button:hover { color: var(--color-accent); }
.habits-page [data-habit-view="today"] { display: grid; gap: 1.5rem; }
.habits-page [data-habit-view][hidden] { display: none; }
.habit-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.habit-stats article { display: flex; min-height: 112px; align-items: center; gap: 1rem; padding: 1.2rem 1.35rem; border: 1px solid var(--color-border); border-radius: 20px; background: rgb(255 255 255 / .72); box-shadow: var(--shadow-card); }
.habit-stats article > span { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; border-radius: 50%; background: var(--color-accent-pale); color: var(--color-accent); }
.habit-stats article:nth-child(2) > span { background: #e3f4e6; color: #4b9b5a; }
.habit-stats article:nth-child(3) > span { background: #fff0d7; color: #d89727; }
.habit-stats article:nth-child(4) > span { background: #eee5fa; color: #8860b5; }
.habit-stats .icon { width: 23px; height: 23px; }
.habit-stats article > div { display: grid; gap: .18rem; }
.habit-stats strong { color: var(--color-text); font-size: 1.65rem; line-height: 1; }
.habit-stats small { color: var(--color-text-muted); font-size: .78rem; }
.habits-board { overflow: hidden; border: 1px solid var(--color-border); border-radius: 22px; background: rgb(255 255 255 / .76); box-shadow: var(--shadow-card); }
.habits-board > header, .habit-row { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(350px, 1.35fr) 76px; align-items: center; }
.habits-board > header { min-height: 68px; padding: 0 1rem 0 1.35rem; border-bottom: 1px solid var(--color-border); }
.habits-board h2 { font-size: 1.08rem; }
.habit-week-head, .habit-row__days { display: grid; grid-template-columns: repeat(7, minmax(32px, 1fr)); gap: clamp(.2rem, .6vw, .5rem); }
.habit-week-head span { display: grid; min-height: 52px; place-items: center; align-content: center; gap: .15rem; border-radius: 14px; color: var(--color-text-faint); }
.habit-week-head span.is-today { background: var(--color-accent-pale); color: var(--color-accent); }
.habit-week-head small { font-size: .67rem; font-weight: 800; }
.habit-week-head b { font-size: .82rem; }
.habit-row { min-height: 92px; padding: .75rem 1rem .75rem 1.35rem; border-bottom: 1px solid var(--color-border); }
.habit-row:last-child { border-bottom: 0; }
.habit-row__identity { display: flex; min-width: 0; align-items: center; gap: 1rem; padding-right: 1rem; }
.habit-row__icon { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--habit-color) 72%, white); color: color-mix(in srgb, var(--habit-color) 45%, #4c3d43); }
.habit-row__icon .icon { width: 23px; height: 23px; }
.habit-row__identity > div { display: grid; min-width: 0; gap: .15rem; }
.habit-row__identity strong { overflow: hidden; font-size: .91rem; text-overflow: ellipsis; white-space: nowrap; }
.habit-row__identity small { overflow: hidden; color: var(--color-text-muted); font-size: .73rem; text-overflow: ellipsis; white-space: nowrap; }
.habit-row__identity div > span { display: inline-flex; width: fit-content; align-items: center; gap: .25rem; margin-top: .12rem; padding: .12rem .45rem; border-radius: 999px; background: var(--color-soft); color: var(--color-text-faint); font-size: .65rem; font-weight: 750; }
.habit-row__identity div > span .icon { width: 12px; height: 12px; }
.habit-check { position: relative; display: grid; width: 34px; height: 34px; place-self: center; place-items: center; cursor: pointer; }
.habit-check input { position: absolute; opacity: 0; }
.habit-check > span:first-of-type { display: grid; width: 34px; height: 34px; place-items: center; border: 1.5px solid #ddd8d2; border-radius: 50%; color: transparent; font-size: .85rem; }
.habit-check input:checked + span { border-color: #b9dfbf; background: #e8f5e9; color: #469c55; }
.habit-check input:focus-visible + span { outline: 3px solid rgb(215 125 171 / .24); outline-offset: 2px; }
.habit-check.is-inactive { cursor: default; opacity: .3; }
.habit-row__actions { display: flex; justify-content: flex-end; gap: .25rem; }
.habit-row__actions button { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 10px; background: transparent; color: var(--color-text-faint); }
.habit-row__actions button:hover { background: var(--color-soft); color: var(--color-accent); }
.habit-row__actions .icon { width: 17px; height: 17px; }
.habit-empty { display: grid; min-height: 260px; place-items: center; align-content: center; gap: .4rem; color: var(--color-text-faint); text-align: center; }
.habit-empty > span { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; background: var(--color-accent-pale); color: var(--color-accent); font-size: 1.4rem; }
.habit-empty strong { color: var(--color-text); }
.habit-empty p { font-size: .8rem; }
.work-form-grid > .work-field--category.work-field--full { grid-column: 1 / -1; }
.habit-category-picker { position: relative; }
.habit-days-field { min-width: 0; border: 0; }
.habit-days-field legend { margin-bottom: .55rem; color: var(--color-text-muted); font-size: .88rem; font-weight: 700; }
.habit-days-field > div { display: grid; grid-template-columns: repeat(7, minmax(32px, 1fr)); gap: .3rem; }
.habit-days-field label { position: relative; cursor: pointer; }
.habit-days-field input { position: absolute; opacity: 0; }
.habit-days-field label span { display: grid; min-height: 42px; place-items: center; border: 1px solid var(--color-border); border-radius: 12px; background: #fffdfa; color: var(--color-text-faint); font-size: .75rem; font-weight: 800; }
.habit-days-field input:checked + span { border-color: var(--color-accent-soft); background: var(--color-accent-pale); color: var(--color-accent); }
.habit-days-field input:focus-visible + span { outline: 3px solid rgb(215 125 171 / .2); outline-offset: 2px; }
.habit-days-field > small { display: block; margin-top: .4rem; color: var(--color-text-faint); font-size: .68rem; }
.habit-icon-picker { min-width: 0; border: 0; }
.habit-icon-picker legend { margin-bottom: .6rem; color: var(--color-text-muted); font-size: .88rem; font-weight: 700; }
.habit-icon-picker > div { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .55rem; }
.habit-icon-picker label { position: relative; display: grid; min-width: 0; min-height: 52px; place-items: center; padding: .65rem .25rem; border: 1px solid var(--color-border); border-radius: 14px; background: #fffdfa; color: var(--color-text-faint); cursor: pointer; }
.habit-icon-picker input { position: absolute; opacity: 0; }
.habit-icon-picker label:has(input:checked) { border-color: var(--color-accent); background: var(--color-accent-pale); color: var(--color-accent); box-shadow: 0 0 0 2px rgb(215 125 171 / .1); }
.habit-icon-picker label:has(input:focus-visible) { outline: 3px solid rgb(215 125 171 / .2); }
.habit-icon-picker .icon { width: 22px; height: 22px; }
.habit-inline-emoji { font-size: 1.4rem; line-height: 1; }
.habit-inline-icon { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.habit-importance { min-width: 0; border: 0; }
.habit-importance legend { margin-bottom: .6rem; color: var(--color-text-muted); font-size: .88rem; font-weight: 700; }
.habit-importance > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.habit-importance label { position: relative; cursor: pointer; }
.habit-importance input { position: absolute; opacity: 0; }
.habit-importance label > span { display: grid; min-height: 116px; grid-template-columns: 34px minmax(0, 1fr) auto; grid-template-rows: auto 1fr; gap: .35rem .65rem; align-items: start; padding: 1rem; border: 1px solid var(--color-border); border-radius: 22px; background: #fffdfa; color: var(--color-text); }
.habit-importance label > span > b { grid-row: 1 / 3; font-size: 1.5rem; font-weight: 400; }
.habit-importance label > span > strong { font-size: .9rem; line-height: 1.3; }
.habit-importance label > span > em { color: #c89570; font-size: .75rem; font-style: normal; font-weight: 800; white-space: nowrap; }
.habit-importance label > span > small { grid-column: 2 / 4; color: #987f73; font-size: .72rem; line-height: 1.4; }
.habit-importance input:checked + span { border-color: #e9b2c3; background: #fdf5f6; box-shadow: 0 2px 0 rgb(215 125 171 / .12), 0 0 0 2px rgb(215 125 171 / .08); }
.habit-importance input:focus-visible + span { outline: 3px solid rgb(215 125 171 / .2); outline-offset: 2px; }
.habit-importance > p { margin-top: .7rem; color: #987f73; font-size: .72rem; font-style: italic; line-height: 1.45; }

/* Jornada dos hábitos */
.habit-journey { display: grid; gap: 1.5rem; }
.journey-hero { display: grid; justify-items: center; gap: .3rem; padding: 1.8rem 1rem; text-align: center; }
.journey-hero > span, .journey-eyebrow { color: #c89570; font-size: .7rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.journey-hero > b { font-size: 2rem; }
.journey-hero h2 { font-size: 1.9rem; }
.journey-hero p, .journey-card > p, .journey-retro > p { color: #987f73; }
.journey-card { padding: clamp(1.3rem, 2.5vw, 2rem); border: 1px solid var(--color-border); border-radius: 26px; background: rgb(255 255 255 / .76); box-shadow: var(--shadow-card); }
.journey-card h3 { margin-top: .45rem; font-size: clamp(1.2rem, 2vw, 1.55rem); }
.journey-card > p { margin-top: .3rem; font-size: .86rem; }
.journey-months { display: grid; grid-template-columns: repeat(12, 1fr); max-width: 900px; margin: 1.6rem 0 .45rem 35px; color: #987f73; font-size: .65rem; }
.journey-heatmap__grid { display: grid; width: fit-content; grid-auto-flow: column; grid-template-rows: repeat(7, 10px); grid-auto-columns: 10px; gap: 3px; }
.journey-heatmap__grid i, .journey-legend i { width: 10px; height: 10px; border-radius: 3px; background: #f1eeeb; }
.journey-heatmap__grid .level-1, .journey-legend i:nth-of-type(1) { background: #fae8eb; }
.journey-heatmap__grid .level-2, .journey-legend i:nth-of-type(2) { background: #f4d2d8; }
.journey-heatmap__grid .level-3, .journey-legend i:nth-of-type(3) { background: #e9b7c0; }
.journey-heatmap__grid .level-4, .journey-legend i:nth-of-type(4) { background: #d98fa0; }
.journey-legend { display: flex; align-items: center; justify-content: flex-end; gap: .35rem; margin-top: 1rem; color: #987f73; font-size: .7rem; }
.journey-month-chart { display: grid; height: 210px; grid-template-columns: repeat(12, 1fr); align-items: end; gap: 1rem; margin-top: 1.5rem; }
.journey-month-chart > div { display: grid; height: 100%; grid-template-rows: 1fr auto auto; justify-items: center; align-items: end; gap: .3rem; }
.journey-month-chart span { width: min(40px, 65%); min-height: 3px; border-radius: 8px 8px 3px 3px; background: #eab8c1; }
.journey-month-chart small { color: #987f73; font-size: .68rem; }
.journey-month-chart b { color: #c89570; font-size: .62rem; }
.journey-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; margin-top: 1.25rem; }
.journey-summary-grid article, .journey-patterns article, .journey-records article { display: grid; gap: .25rem; padding: 1rem 1.15rem; border-radius: 22px; background: #fcf5f6; }
.journey-summary-grid small, .journey-patterns small, .journey-records small { color: #987f73; }
.journey-summary-grid strong { font-size: 1.35rem; }
.journey-summary-grid span, .journey-patterns span { color: #987f73; font-size: .76rem; }
.journey-ranking { display: grid; gap: .7rem; margin-top: 1.3rem; }
.journey-ranking article { display: grid; grid-template-columns: 34px minmax(0, 1fr) 45px; align-items: center; gap: .7rem; padding: .7rem 1rem; border-radius: 999px; background: #fcf5f6; }
.journey-ranking article > span { display: grid; gap: .4rem; }
.journey-ranking article i { display: block; height: 6px; border-radius: 999px; background: #eab8c1; }
.journey-ranking em { color: #c89570; font-style: normal; font-weight: 800; text-align: right; }
.journey-week-chart { display: grid; height: 150px; grid-template-columns: repeat(7, 1fr); align-items: end; gap: 1rem; margin-top: 1.3rem; }
.journey-week-chart div { display: grid; height: 100%; grid-template-rows: 1fr auto; justify-items: center; align-items: end; gap: .55rem; }
.journey-week-chart span { width: 16px; min-height: 6px; border-radius: 999px; background: #efcbd1; }
.journey-week-chart small { color: #987f73; }
.journey-patterns, .journey-records { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin-top: 1.2rem; }
.journey-records article { grid-template-columns: 40px 1fr; align-items: center; font-size: 1.45rem; }
.journey-records article span { display: grid; font-size: .82rem; }
.journey-badge-head { display: flex; justify-content: space-between; gap: 1rem; }
.journey-badge-head > b { height: fit-content; padding: .4rem .7rem; border-radius: 999px; background: #fcf0f2; color: #c89570; }
.journey-badges { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; margin-top: 1.3rem; }
.journey-badges article { display: grid; min-height: 130px; place-items: center; align-content: center; gap: .2rem; padding: 1rem; border-radius: 22px; background: #faf8f6; color: #a7978f; text-align: center; filter: grayscale(1); opacity: .62; }
.journey-badges article.is-unlocked { background: #fcf2f3; color: var(--color-text); filter: none; opacity: 1; }
.journey-badges article > b { font-size: 1.65rem; }
.journey-badges small { font-size: .7rem; }
.journey-retro { display: grid; justify-items: center; gap: .35rem; padding-top: 1rem; text-align: center; }
.journey-retro > h2 { font-size: 2rem; }
.journey-retro > div { display: grid; width: 100%; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-top: 1.2rem; }
.journey-retro article { display: grid; min-height: 150px; place-items: center; align-content: center; gap: .35rem; padding: 1.5rem; border-radius: 24px; background: #fcf5f4; }
.journey-retro article:first-child, .journey-retro article:last-child { grid-column: 1 / -1; }
.journey-retro article > span { color: #c89570; font-size: .7rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.journey-retro article strong { font-size: 1.8rem; }
.journey-retro article small { color: #987f73; }

@media (max-width: 1050px) {
  .habit-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .habits-board > header, .habit-row { grid-template-columns: minmax(190px, .9fr) minmax(300px, 1.4fr) 66px; }
  .habit-row { padding-left: .85rem; padding-right: .65rem; }
  .habit-row__identity { gap: .65rem; }
  .habit-row__icon { width: 42px; height: 42px; flex-basis: 42px; }
  .habit-check, .habit-check > span:first-of-type { width: 30px; height: 30px; }
  .journey-heatmap { overflow-x: auto; }
  .journey-badges { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 590px) {
  .habits-header { align-items: stretch; flex-direction: column; gap: 1rem; }
  .habits-header .primary-button { width: 100%; justify-content: center; }
  .habit-stats { grid-template-columns: 1fr; }
  .habit-stats article { min-height: 94px; }
  .habit-icon-picker > div { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .habit-days-field > div { gap: .2rem; }
  .habit-importance > div { grid-template-columns: 1fr; }
  .habit-view-tabs { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .habit-view-tabs button:first-child { grid-column: auto; }
  .habit-date-navigation > div { grid-template-columns: 42px minmax(0, 1fr) 42px; gap: .4rem; }
  .habit-date-navigation > div > button { width: 42px; height: 42px; }
  .habit-date-navigation time { min-height: 42px; font-size: .8rem; }
  .habit-date-navigation footer { align-items: flex-start; flex-direction: column; }
  .habits-board { overflow-x: auto; }
  .habits-board > header, .habit-row { min-width: 720px; }
  .journey-summary-grid, .journey-patterns, .journey-records { grid-template-columns: 1fr; }
  .journey-badges { grid-template-columns: repeat(2, 1fr); }
  .journey-retro > div { grid-template-columns: 1fr; }
  .journey-retro article { grid-column: auto !important; }
  .journey-month-chart { gap: .35rem; }
}

@media (max-width: 880px) {
  .work-header { flex-direction: column; }
  .work-header__actions { width: 100%; }
  .work-companies > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .work-task-panel > header { align-items: stretch; flex-direction: column; }
  .work-task-tools { justify-content: space-between; }
  .work-task { grid-template-columns: 32px minmax(0, 1fr) 90px 34px; }
  .work-task__company { grid-row: 2; grid-column: 2; }
  .work-task time { grid-column: 3; grid-row: 1 / 3; }
  .work-task__edit { grid-column: 4; grid-row: 1 / 3; }
}

@media (max-width: 590px) {
  .work-companies > div { display: flex; margin-inline: -1.25rem; padding-inline: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; }
  .work-company { min-width: min(82vw, 310px); scroll-snap-align: start; }
  .work-task-tabs button { padding-inline: .7rem; }
  .work-task-tools { display: grid; grid-template-columns: 1fr; }
  .work-company-filter { width: 100%; }
  .work-task { grid-template-columns: 28px minmax(0, 1fr) 34px; padding-block: 1rem; }
  .work-task__company { grid-column: 2; }
  .work-task time { grid-column: 2; grid-row: 3; }
  .work-task__edit { grid-column: 3; grid-row: 1 / 4; }
  .work-form-grid { grid-template-columns: 1fr; }
  .work-field--full { grid-column: auto; }
  .work-dialog form > footer { flex-wrap: wrap; }
  .work-details-dialog { width: calc(100vw - 1rem); max-height: calc(100dvh - 1rem); border-radius: 24px; }
  .work-details__data > div { grid-template-columns: 1fr; gap: .35rem; }
}

/* Estudos */
.studies-page { display: grid; gap: 2rem; font-size: 1.08rem; }

/* Diário */
.diary-page { display: grid; gap: 1.35rem; max-width: none; }
.diary-page h1 { font-size: clamp(2rem, 3vw, 2.8rem); }
.diary-page .page__description { margin-top: .35rem; font-size: 1.05rem; font-style: italic; }
.diary-card, .diary-writing-card { border: 1px solid var(--color-border); border-radius: 20px; background: rgb(255 255 255 / .76); box-shadow: var(--shadow-card); }
.diary-protection__tabs, .diary-mode { display: grid; width: min(510px, 100%); grid-template-columns: repeat(2, 1fr); overflow: hidden; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-soft); }
.diary-protection__tabs button, .diary-mode button { display: flex; min-height: 48px; align-items: center; justify-content: center; gap: .55rem; border-radius: inherit; background: transparent; color: var(--color-text-muted); font-weight: 700; }
.diary-protection__tabs button[aria-selected="true"], .diary-mode button[aria-selected="true"] { background: linear-gradient(135deg, #f9d8da, #f6c5ca); color: #9f354c; }
.diary-protection__tabs .icon { width: 18px; height: 18px; }
.diary-protection__grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(330px, .95fr); gap: 1.5rem; align-items: start; }
.diary-password-card { display: grid; gap: 1rem; padding: 2rem clamp(1.25rem, 4vw, 4.5rem); text-align: center; }
.diary-password-card > p { color: var(--color-text-muted); }
.diary-lock-art { display: grid; width: 74px; height: 74px; margin: 0 auto; place-items: center; border-radius: 50%; background: #fdf0ec; color: var(--color-accent); }
.diary-lock-art .icon { width: 38px; height: 38px; }
.diary-field { display: grid; gap: .45rem; text-align: left; }
.diary-field > span { color: var(--color-text); font-size: .88rem; font-weight: 700; }
.diary-field small { color: var(--color-text-faint); font-weight: 500; }
.diary-field input, .diary-field textarea, .diary-password-input input { width: 100%; min-height: 46px; padding: .75rem 1rem; border: 1px solid var(--color-border); border-radius: 12px; background: rgb(255 255 255 / .8); color: var(--color-text); }
.diary-field textarea { resize: vertical; line-height: 1.6; }
.diary-field input:focus, .diary-field textarea:focus, .diary-password-input input:focus { border-color: var(--color-accent); outline: 3px solid rgb(215 125 171 / .13); }
.diary-password-input { position: relative; display: block; }
.diary-password-input input { padding-right: 3.2rem; }
.diary-password-input button { position: absolute; top: 50%; right: .8rem; display: grid; place-items: center; background: transparent; color: var(--color-text-faint); transform: translateY(-50%); }
.diary-password-input .icon { width: 18px; height: 18px; }
.diary-switch { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: .75rem; text-align: left; cursor: pointer; }
.diary-switch input { position: absolute; opacity: 0; }
.diary-switch > span { position: relative; width: 48px; height: 27px; border-radius: 99px; background: #ddd; transition: background 160ms ease; }
.diary-switch > span::after { position: absolute; top: 3px; left: 3px; width: 21px; height: 21px; border-radius: 50%; background: white; box-shadow: 0 2px 5px rgb(0 0 0 / .16); content: ''; transition: transform 160ms ease; }
.diary-switch input:checked + span { background: var(--color-accent); }
.diary-switch input:checked + span::after { transform: translateX(21px); }
.diary-switch b { font-size: .87rem; }.diary-switch small { display: block; margin-top: .18rem; color: var(--color-text-faint); font-weight: 400; }
.diary-agreement { margin-top: .25rem; color: var(--color-text-muted); font-size: .82rem; text-align: left; }.diary-agreement input { margin-right: .4rem; accent-color: var(--color-accent); }
.diary-password-card > footer, .diary-writing-card > footer { display: flex; justify-content: flex-end; gap: 1rem; padding-top: .9rem; border-top: 1px solid var(--color-border); }
.diary-password-card > footer .primary-button, .diary-password-card > footer .secondary-button { min-width: 165px; }
.diary-password-card > footer .icon { width: 17px; height: 17px; }
.diary-protection__side { display: grid; gap: 1.5rem; }
.diary-how { overflow: hidden; padding: 1.65rem 1.8rem 0; }.diary-how h2 { font-size: 1.15rem; }
.diary-how ol { display: grid; margin-top: 1.2rem; list-style: none; }
.diary-how li { display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: .75rem; padding: 1rem 0; border-bottom: 1px dashed var(--color-border); color: var(--color-text-muted); font-size: .84rem; line-height: 1.45; }
.diary-how li:last-child { border: 0; }.diary-how li b { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: #fbe6e5; color: #a23f50; }
.diary-how footer { margin: 1rem -1.8rem 0; padding: 1.1rem 1.8rem; background: #fdf8f3; color: var(--color-text-muted); font-size: .78rem; }.diary-how footer .icon { width: 17px; height: 17px; margin-right: .45rem; vertical-align: middle; }
.diary-unlock-card { display: grid; gap: .9rem; padding: 1.65rem 1.8rem; }.diary-unlock-card h2 { display: flex; align-items: center; gap: .65rem; font-size: 1.15rem; }.diary-unlock-card h2 .icon { width: 24px; height: 24px; }.diary-unlock-card > p { color: var(--color-text-muted); font-size: .82rem; }.diary-unlock-card .primary-button { justify-self: center; min-width: 190px; }
.diary-form-error { min-height: 1em; color: #ad3049 !important; font-size: .78rem !important; }.diary-hint { color: var(--color-accent) !important; }
.diary-editor__header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }.diary-editor__header > div:last-child { display: flex; gap: .65rem; }.diary-editor__header .secondary-button { display: flex; align-items: center; gap: .45rem; }.diary-editor__header .icon { width: 17px; height: 17px; }
.diary-protected-note { display: flex; align-items: center; gap: .55rem; color: var(--color-text-muted); font-size: .86rem; }.diary-protected-note .icon { color: var(--color-accent); }.diary-protected-note b { color: var(--color-accent); }.diary-protected-note span { margin-left: .25rem; }
.diary-mode-hint { margin-top: -.8rem; color: var(--color-text-faint); font-size: .8rem; }
.diary-writing-card { display: grid; gap: 1.4rem; width: 100%; padding: clamp(1rem, 3vw, 2rem); }
.diary-writing-card > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }.diary-writing-card > header h2 { display: flex; align-items: center; gap: .65rem; font-size: 1.05rem; }.diary-writing-card > header .icon { width: 20px; height: 20px; }
.diary-date-button { position: relative; display: flex; align-items: center; gap: .45rem; cursor: pointer; }.diary-date-button input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.diary-moods { min-width: 0; padding: 1.2rem; border: 1px solid var(--color-border); border-radius: 16px; }.diary-moods legend { padding-inline: .25rem; font-weight: 750; }.diary-moods > p { margin-bottom: .8rem; color: var(--color-text-muted); font-size: .8rem; }.diary-moods > div { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .65rem; }
.diary-moods input { position: absolute; opacity: 0; }.diary-moods label > span { display: flex; min-height: 43px; align-items: center; justify-content: center; gap: .45rem; padding: .55rem .65rem; border: 1px solid var(--color-border); border-radius: 999px; background: white; color: var(--color-text-muted); font-size: .78rem; font-weight: 650; cursor: pointer; transition: 150ms ease; }.diary-moods label > span i { font-style: normal; }
.diary-moods input:checked + span { border-color: #f4c8cb; background: #fbe0e1; color: #a8344d; box-shadow: 0 3px 10px rgb(158 72 87 / .08); }
.diary-guided-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }.diary-guided-fields[hidden] { display: none; }
.diary-main-writing textarea { min-height: 340px; }.diary-main-writing > small { justify-self: end; color: var(--color-text-faint); }
.diary-save-status { min-height: 1.2em; color: var(--color-accent); font-size: .82rem; text-align: right; }
.diary-writing-card > footer .primary-button, .diary-writing-card > footer .secondary-button { min-width: 190px; }
.diary-change-dialog { width: min(560px, calc(100vw - 2rem)); padding: 0; border: 1px solid var(--color-border); border-radius: 20px; background: white; color: var(--color-text); box-shadow: var(--shadow-overlay); }.diary-change-dialog::backdrop { background: rgb(52 44 38 / .38); backdrop-filter: blur(3px); }.diary-change-dialog form > header { display: flex; align-items: center; justify-content: space-between; padding: 1.3rem 1.5rem; border-bottom: 1px solid var(--color-border); }.diary-change-dialog header p { color: var(--color-accent); font-size: .7rem; font-weight: 800; text-transform: uppercase; }.diary-change-dialog header h2 { margin-top: .2rem; }.diary-change-dialog header button { background: transparent; color: var(--color-text-faint); font-size: 1.6rem; }.diary-change-dialog form > div { display: grid; gap: 1rem; padding: 1.4rem 1.5rem; }.diary-change-dialog form > footer { display: flex; justify-content: flex-end; gap: .7rem; padding: 1rem 1.5rem; border-top: 1px solid var(--color-border); }

/* Ajustes finais do fluxo do Diário */
.diary-page { gap: 1.6rem; font-size: 1rem; }
.diary-page h1 { font-size: clamp(2.1rem, 4vw, 3rem); letter-spacing: -.04em; }
.diary-protection__grid { grid-template-columns: minmax(0, 1fr); }
.diary-field > span { font-size: 1rem; }
.diary-how { text-align: left; }.diary-how h3 { font-size: 1.15rem; }
.diary-how--inline { margin-top: .5rem; padding: 1.25rem; border: 1px solid var(--color-border); border-radius: 16px; background: #fdf8f3; }
.diary-how--inline ol { margin-top: .65rem; }.diary-how--inline li { padding: .7rem 0; font-size: .9rem; }
.diary-how--inline > p { display: flex; align-items: center; gap: .5rem; margin-top: .75rem; color: var(--color-text-muted); font-size: .85rem; }.diary-how--inline > p .icon { width: 18px; height: 18px; }
.diary-editor__header .secondary-button { min-height: 48px; gap: .55rem; padding-inline: 1.25rem; }.diary-editor__header .icon { width: 18px; height: 18px; }
.diary-mode { display: flex; width: auto; gap: .75rem; overflow: visible; border: 0; border-radius: 0; background: transparent; }
.diary-mode button { min-width: 180px; min-height: 48px; border-radius: 999px; font-size: .95rem; }
.diary-mode button[aria-selected="true"] { background: var(--color-accent); color: white; }
.diary-mode button[aria-selected="false"] { border: 1px solid var(--color-border); background: var(--color-surface); color: var(--color-text); }
.diary-mode-hint { font-size: .9rem; }
.diary-writing-card > header { position: relative; }.diary-writing-card > header h2 { font-size: 1.15rem; }
.diary-date-button { min-height: 48px; padding-inline: 1.25rem; }.diary-date-input { position: absolute; right: 0; bottom: 0; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.diary-moods > p { font-size: .9rem; }.diary-moods label > span { min-height: 45px; font-size: .9rem; }
.diary-guided-fields { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; }.diary-guided-fields textarea { min-height: 130px; }
.diary-unlock-page { min-height: calc(100dvh - 150px); place-items: center; }
.diary-unlock-hero { display: grid; width: min(760px, 100%); gap: 1.5rem; padding: clamp(2rem, 6vw, 5rem); text-align: center; }
.diary-unlock-hero .diary-lock-art { width: 88px; height: 88px; }.diary-unlock-hero .diary-lock-art .icon { width: 42px; height: 42px; }
.diary-unlock-hero h1 { font-size: clamp(2.7rem, 6vw, 4rem); }.diary-unlock-hero > p:first-of-type { color: #9a8275; font-size: clamp(1.2rem, 2.4vw, 1.65rem); }
.diary-unlock-hero .diary-field { margin-top: .5rem; }.diary-unlock-hero .diary-field > span:first-child { font-size: 1.2rem; }
.diary-unlock-hero .diary-password-input input { min-height: 68px; border: 4px solid #f3d9dd; border-radius: 24px; font-size: 1.15rem; }
.diary-unlock-hero > .primary-button { width: 100%; min-height: 64px; border-radius: 999px; background: #edbdc5; color: #593934; font-size: 1.2rem; }
.diary-forgot-button { justify-self: center; background: transparent; color: #9a8275; font-size: 1.1rem; }
.diary-change-heading { flex: 1; text-align: center; }.diary-change-heading .diary-lock-art { width: 68px; height: 68px; margin: 0 auto .75rem; }.diary-change-heading .diary-lock-art .icon { width: 32px; height: 32px; }.diary-change-dialog form > header { position: relative; align-items: flex-start; }.diary-change-dialog form > header > button { position: absolute; right: 1.5rem; }
.diary-password-card { width: min(780px, 100%); justify-self: center; }
.diary-unlock-hero { width: min(460px, 100%); gap: 1rem; padding: 2rem; }
.diary-unlock-hero .diary-lock-art { width: 64px; height: 64px; }.diary-unlock-hero .diary-lock-art .icon { width: 30px; height: 30px; }
.diary-unlock-hero h1 { font-size: clamp(2.1rem, 5vw, 2.7rem); }.diary-unlock-hero > p:first-of-type { font-size: 1rem; }
.diary-unlock-hero .diary-field { margin-top: 0; }.diary-unlock-hero .diary-field > span:first-child { font-size: 1rem; }
.diary-unlock-hero .diary-password-input input { min-height: 52px; border: 2px solid var(--color-accent); border-radius: 15px; font-size: 1rem; }
.diary-unlock-hero > .primary-button { min-height: 50px; border: 2px solid var(--color-accent); background: var(--color-accent); color: var(--color-white); font-size: 1rem; }
.diary-unlock-hero > .primary-button:hover { border-color: var(--color-accent-bright); background: var(--color-accent-bright); }
.diary-unlock-hero .diary-forgot-button { font-size: .9rem; }
.diary-change-dialog { width: min(780px, calc(100vw - 2rem)); }
.diary-archive { display: grid; gap: 1.25rem; margin-top: 1rem; }.diary-archive > header h2 { font-size: 1.55rem; }.diary-archive > header p { margin-top: .3rem; color: var(--color-text-muted); }
.diary-archive > header { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; }
.diary-writing-panel { display: grid; gap: 1.4rem; }.diary-writing-panel[hidden] { display: none; }
.diary-archive-tools { display: grid; grid-template-columns: minmax(260px, 1fr) 190px 230px; align-items: start; gap: .75rem; }
.diary-search { display: flex; min-height: 50px; align-items: center; gap: .7rem; padding: 0 1rem; border: 1px solid #efdfd0; border-radius: 15px; background: rgb(255 255 255 / .62); }.diary-search:focus-within { border-color: var(--color-accent); box-shadow: 0 0 0 3px rgb(215 125 171 / .12); }.diary-search .icon { width: 20px; height: 20px; color: var(--color-text-muted); }.diary-search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--color-text); font-size: .95rem; }
.diary-sort-button { min-height: 50px; padding-inline: 1.1rem; }.diary-sort-button > span { font-size: 1.25rem; }
.diary-mood-filter { min-width: 210px; }.diary-mood-filter .pending-category-picker__trigger { min-height: 50px; background: var(--color-surface); }
.diary-sort-filter, .diary-mood-filter { width: 100%; min-width: 0; }.diary-sort-filter .pending-category-picker__trigger, .diary-mood-filter .pending-category-picker__trigger { width: 100%; min-width: 0; }.diary-sort-filter .pending-category-picker__trigger > span:not(:first-child), .diary-mood-filter .pending-category-picker__trigger > span { min-width: 0; overflow: hidden; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }.diary-sort-filter .pending-category-picker__menu, .diary-mood-filter .pending-category-picker__menu { right: 0; left: auto; width: max(100%, 220px); }
.diary-entry-tabs { margin-top: -.25rem; }
.diary-entry-list { display: grid; gap: .7rem; }
.diary-entry-card { overflow: hidden; border: 1px solid var(--color-border); border-radius: 16px; background: rgb(255 255 255 / .76); box-shadow: var(--shadow-card); }
.diary-entry-card > button { display: grid; width: 100%; min-height: 76px; grid-template-columns: minmax(210px, .9fr) minmax(180px, 1fr) auto; align-items: center; gap: .12rem 1rem; padding: .75rem 1.15rem; background: transparent; color: var(--color-text); text-align: left; transition: background 160ms ease, transform 160ms ease; }
.diary-entry-card > button:hover { background: var(--color-soft); }.diary-entry-card > button:active { transform: scale(.995); }
.diary-entry-day { grid-column: 1; grid-row: 1; font-size: .96rem; font-weight: 750; text-transform: capitalize; }.diary-entry-card time { grid-column: 1; grid-row: 2; color: var(--color-text-muted); font-size: .76rem; text-transform: capitalize; }
.diary-entry-moods { display: flex; grid-column: 2; grid-row: 1 / span 2; flex-wrap: wrap; gap: .35rem; }.diary-entry-moods i { padding: .3rem .58rem; border-radius: 999px; background: var(--color-accent-pale); color: var(--color-accent); font-size: .7rem; font-style: normal; font-weight: 650; }
.diary-entry-arrow { grid-column: 3; grid-row: 1 / span 2; color: var(--color-text-faint); font-size: 1.65rem; font-weight: 300; }
.diary-writing-label { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }.diary-writing-label > label { font-weight: 700; }.diary-writing-label > button { display: flex; align-items: center; gap: .45rem; padding: .5rem .8rem; border-radius: 999px; background: var(--color-accent-pale); color: var(--color-accent); font-size: .82rem; font-weight: 700; }.diary-writing-label .icon { width: 17px; height: 17px; }
.diary-detail-dialog { width: min(650px, calc(100vw - 1rem)); max-height: calc(100dvh - 1rem); }.diary-detail-dialog > div { position: relative; padding: 2.2rem 1.8rem 1.6rem; }.diary-detail__close { position: absolute; top: .8rem; right: .8rem; background: transparent; color: var(--color-text-faint); }
.diary-detail__header { display: flex; align-items: center; gap: 1rem; padding-right: 2rem; }.diary-detail__header > span { display: grid; width: 58px; height: 58px; flex: 0 0 auto; place-items: center; border-radius: 18px; background: var(--color-accent-pale); color: var(--color-accent); }.diary-detail__header .icon { width: 28px; height: 28px; }.diary-detail__header p { color: var(--color-text-muted); font-size: .9rem; text-transform: capitalize; }.diary-detail__header h2 { margin-top: .15rem; font-size: 1.55rem; }
.diary-detail__moods { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.4rem; padding: 1rem; border-radius: 15px; background: var(--color-soft); }.diary-detail__moods > span { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .4rem; }.diary-detail__moods i { padding: .35rem .65rem; border-radius: 999px; background: var(--color-accent-pale); color: var(--color-accent); font-size: .8rem; font-style: normal; }
.diary-detail__text { display: grid; gap: 1.2rem; margin-top: 1.4rem; }.diary-detail__text section { display: grid; gap: .45rem; }.diary-detail__text h3 { font-size: .95rem; }.diary-detail__text p { color: var(--color-text-muted); line-height: 1.7; white-space: pre-wrap; }.diary-detail__empty { padding: 2rem 1rem; text-align: center; }
.diary-detail-dialog footer { display: grid; gap: .65rem; margin-top: 1.7rem; }.diary-detail-dialog footer button { display: flex; min-height: 50px; align-items: center; justify-content: center; gap: .65rem; border-radius: 999px; font-weight: 650; }.diary-detail-dialog footer .icon { width: 19px; height: 19px; }
.diary-scanner-dialog { width: min(560px, calc(100vw - 1rem)); }.diary-scanner-dialog > div > header { position: relative; padding: 1.35rem 1.5rem; border-bottom: 1px solid var(--color-border); text-align: center; }.diary-scanner-dialog > div > header p { color: var(--color-accent); font-size: .7rem; font-weight: 800; text-transform: uppercase; }.diary-scanner-dialog > div > header button { position: absolute; top: 1rem; right: 1.2rem; background: transparent; color: var(--color-text-faint); font-size: 1.6rem; }
.diary-scanner-content { display: grid; justify-items: center; gap: 1rem; padding: 1.5rem; text-align: center; }.diary-scanner-content > p { max-width: 440px; color: var(--color-text-muted); line-height: 1.5; }.diary-scanner-art { display: grid; width: 70px; height: 70px; place-items: center; border-radius: 22px; background: var(--color-accent-pale); color: var(--color-accent); }.diary-scanner-art .icon { width: 34px; height: 34px; }.diary-scanner-actions { display: grid; width: 100%; grid-template-columns: repeat(2, 1fr); gap: .7rem; }.diary-scanner-actions button { display: flex; align-items: center; justify-content: center; gap: .45rem; }.diary-scanner-actions .icon { width: 18px; height: 18px; }.diary-scanner-actions button:disabled { opacity: .55; cursor: wait; }.diary-scanner-content img { width: 100%; max-height: 250px; object-fit: contain; border: 1px solid var(--color-border); border-radius: 14px; background: var(--color-soft); }.diary-scanner-status { min-height: 1.3em; color: var(--color-accent) !important; font-weight: 650; }.diary-scanner-content > small { display: flex; align-items: center; gap: .4rem; color: var(--color-text-faint); }.diary-scanner-content > small .icon { width: 16px; height: 16px; }
.diary-archive-empty { padding: 3rem 1rem; border: 1px dashed var(--color-border); border-radius: 20px; color: var(--color-text-faint); text-align: center; }

@media (max-width: 1050px) {
  .diary-protection__grid { grid-template-columns: 1fr; }
  .diary-moods > div { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .diary-protection__tabs, .diary-mode { width: 100%; }
  .diary-password-card { padding: 1.25rem; }
  .diary-password-card > footer, .diary-writing-card > footer, .diary-editor__header { align-items: stretch; flex-direction: column; }
  .diary-editor__header > div:last-child { flex-direction: column; }
  .diary-password-card > footer .primary-button, .diary-password-card > footer .secondary-button, .diary-writing-card > footer .primary-button, .diary-writing-card > footer .secondary-button { width: 100%; min-width: 0; }
  .diary-moods > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .diary-guided-fields { grid-template-columns: minmax(0, 1fr); }
  .diary-writing-card > header { align-items: stretch; flex-direction: column; }.diary-date-button { justify-content: center; }
  .diary-protected-note { align-items: flex-start; flex-wrap: wrap; }.diary-protected-note span { width: 100%; margin-left: 1.55rem; }
  .diary-archive-tools { grid-template-columns: minmax(0, 1fr); }.diary-sort-button, .diary-mood-filter { width: 100%; }.diary-entry-card > button { min-height: 70px; grid-template-columns: minmax(0, 1fr) auto; gap: .1rem .5rem; padding: .6rem .8rem; }.diary-entry-card time { grid-column: 1; grid-row: 2; }.diary-entry-moods { grid-column: 2; grid-row: 1 / span 2; max-width: 125px; justify-content: flex-end; }.diary-entry-arrow { display: none; }.diary-writing-label { align-items: flex-start; flex-direction: column; }.diary-scanner-actions { grid-template-columns: 1fr; }.diary-detail-dialog > div { padding-inline: 1.1rem; }
}

/* Senhas */
.passwords-page { gap: 1.5rem; }
.passwords-toolbar { display: grid; grid-template-columns: minmax(260px, 1fr) auto; gap: .8rem; }
.passwords-toolbar .primary-button { min-width: 150px; }
.passwords-category-filters { margin-top: -.45rem; }
.passwords-status { min-height: 1.2em; color: var(--color-accent); font-size: .85rem; text-align: right; }
.passwords-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.password-card { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .65rem; min-width: 0; overflow: hidden; padding: 1.05rem 5rem .8rem 1rem; border: 1px solid var(--color-border); border-radius: 20px; background: rgb(255 255 255 / .76); box-shadow: var(--shadow-card); }
.password-card::before { position: absolute; top: 0; right: 0; left: 0; height: 7px; background: var(--password-card-color); content: ''; }
.password-card__content { display: grid; min-width: 0; justify-items: start; gap: .12rem; }
.password-card__title-line { display: flex; max-width: 100%; align-items: baseline; gap: .42rem; overflow: hidden; }
.password-card h3 { margin: 0; overflow: hidden; flex: 0 1 auto; font-size: 1.02rem; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.password-card p, .password-card a { display: block; margin: 0; overflow: hidden; color: var(--color-text-muted); font-size: .78rem; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.password-card a { color: var(--color-accent); }
.password-card__title-line > span[aria-hidden] { color: var(--color-text-faint); font-size: .8rem; }
.password-card__category { overflow: hidden; flex: 0 1 auto; color: var(--color-text-muted); font-size: .78rem; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.password-card__secret { display: flex; align-items: center; gap: .35rem; }
.password-card__secret span { max-width: 150px; overflow: hidden; font-family: ui-monospace, monospace; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.password-card__secret button, .password-card__edit, .password-card__delete { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: transparent; color: var(--color-text-muted); }
.password-card__secret button:hover, .password-card__edit:hover, .password-card__delete:hover { background: var(--color-soft); }
.password-card__secret .icon, .password-card__edit .icon, .password-card__delete .icon { width: 17px; height: 17px; }
.password-card__edit, .password-card__delete { position: absolute; top: 50%; transform: translateY(-50%); }
.password-card__edit { right: 2.9rem; }.password-card__delete { right: .65rem; color: var(--color-danger-soft); }
.password-record-dialog form > header > div { text-align: left; }
.password-record-heading { display: grid; justify-items: center; gap: .45rem; margin: -.25rem 0 .35rem; text-align: center; }
.password-record-heading .diary-lock-art { width: 54px; height: 54px; }
.password-record-heading .diary-lock-art .icon { width: 26px; height: 26px; }
.password-record-heading p { display: flex; align-items: center; gap: .4rem; color: var(--color-accent); font-size: .8rem; font-weight: 700; }
.password-record-heading p .icon { width: 16px; height: 16px; }
.password-record-dialog .work-category-picker { position: relative; }
.password-color-picker { min-width: 0; }
.password-color-picker legend { margin-bottom: .55rem; color: var(--color-text); font-weight: 700; }
.password-secret-input.is-masked { -webkit-text-security: disc; }

@media (max-width: 1050px) {
  .passwords-list { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 680px) {
  .passwords-toolbar { grid-template-columns: minmax(0, 1fr); }
  .password-card { grid-template-columns: minmax(0, 1fr); padding: 1.1rem 4.8rem 1rem 1rem; }
  .password-card__secret { grid-column: 1 / -1; }
}
.studies-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; }
.studies-header h1 { font-size: clamp(2.25rem, 4vw, 2.85rem); letter-spacing: -.04em; }
.studies-header .page__description { margin-top: .55rem; font-size: 1.14rem; }
.studies-header .primary-button { display: inline-flex; min-width: 190px; min-height: 50px; align-items: center; justify-content: center; gap: .55rem; font-size: 1.02rem; }
.study-folders { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 1rem; }
.study-folder { position: relative; min-width: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: 22px; background: var(--color-surface); box-shadow: var(--shadow-card); }
.study-folder::before { position: absolute; z-index: 1; top: 0; right: 0; left: 0; height: 9px; background: var(--list-color); content: ''; }
.study-folder.is-selected { border-color: color-mix(in srgb, var(--list-color) 72%, var(--color-border)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--list-color) 32%, transparent); }
.study-folder__select { display: grid; width: 100%; min-height: 142px; grid-template-columns: 58px minmax(0, 1fr); grid-template-areas: "avatar title" "avatar meta"; align-content: center; align-items: center; gap: .4rem .85rem; padding: 1.5rem 3.8rem 1.25rem 1.35rem; background: transparent; color: var(--color-text); text-align: left; }
.study-folder__select:hover { background: color-mix(in srgb, var(--list-color) 20%, transparent); }
.study-folder__avatar { display: grid; width: 58px; height: 58px; grid-area: avatar; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--list-color) 35%, white); font-size: 1.75rem; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--list-color) 65%, transparent); }
.study-folder__select > strong { grid-area: title; overflow: hidden; font-size: 1.28rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.study-folder__meta { display: grid; min-width: 0; grid-area: meta; gap: .25rem; justify-items: start; }
.study-folder__meta small { color: color-mix(in srgb, var(--list-color) 38%, #6a5348); font-size: .8rem; font-weight: 750; letter-spacing: .12em; overflow-wrap: anywhere; text-transform: uppercase; }
.study-folder__meta time { color: var(--color-text-muted); font-size: .78rem; font-weight: 700; }
.study-folder__edit { position: absolute; z-index: 2; top: 50%; right: 1.15rem; display: grid; width: 30px; height: 30px; place-items: center; border-radius: 9px; background: transparent; color: var(--color-text-faint); transform: translateY(-50%); }
.study-folder__edit:hover { background: color-mix(in srgb, var(--list-color) 25%, transparent); color: var(--color-text); }
.study-folder__edit .icon { width: 15px; height: 15px; }
.study-workspace { overflow: hidden; border: 1px solid var(--color-border); border-radius: 20px; background: rgb(255 255 255 / .72); box-shadow: var(--shadow-card); }
.study-workspace__header { position: relative; display: grid; grid-template-columns: minmax(180px, 1fr) minmax(430px, 1.15fr); align-items: center; gap: 1rem; padding: 1.35rem 3.6rem 1.35rem 1.35rem; border-bottom: 1px solid var(--color-border); }
.study-workspace__header h2 { font-size: 1.72rem; }
.study-workspace__header p { margin-top: .2rem; color: var(--color-accent); font-size: 1rem; font-weight: 650; }
.study-workspace__objective { display: block; max-width: 46ch; margin-top: .45rem; color: var(--color-text-muted); font-size: .9rem; line-height: 1.45; }
.study-workspace__header small { display: block; margin-top: .45rem; color: var(--color-text-faint); font-size: .86rem; }
.study-workspace__close { position: absolute; top: .9rem; right: .9rem; display: grid; width: 36px; height: 36px; place-items: center; border-radius: 10px; background: transparent; color: var(--color-text-muted); font-size: 1.55rem; line-height: 1; }
.study-workspace__close:hover { background: var(--color-soft); color: var(--color-accent); }
.study-schedule { display: grid; grid-template-columns: auto minmax(130px, 1fr) minmax(110px, .7fr); align-items: center; gap: .65rem; }
.study-schedule > strong { font-size: .96rem; }
.study-schedule input { width: 100%; min-height: 46px; padding: .65rem .75rem; border: 1px solid var(--color-border); border-radius: 11px; background: #fffdfa; color: var(--color-text); font: inherit; font-size: .98rem; }
.study-schedule p { display: flex; grid-column: 1 / -1; align-items: center; gap: .45rem; padding: .6rem .75rem; border: 1px solid #f2c7dc; border-radius: 10px; background: #fff7fb; color: #a94f7c; font-size: .87rem; }
.study-schedule p .icon { width: 15px; height: 15px; }
.study-content { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.65rem; padding: 1.35rem; }
.study-notes, .study-library { min-width: 0; }
.study-section-heading { display: flex; min-height: 48px; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.study-section-heading > div > span { color: var(--color-accent); font-size: .84rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.study-section-heading h3 { font-size: 1.28rem; }
.study-section-heading small { color: var(--color-text-faint); font-size: .86rem; }
.study-section-heading .secondary-button { display: inline-flex; min-height: 42px; align-items: center; gap: .4rem; padding: .55rem .8rem; font-size: .92rem; }
.study-section-heading .secondary-button .icon { width: 17px; height: 17px; }
.study-section-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; }
.study-notes-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .75rem; }
.study-print-heading { display: none; }
.study-editor { overflow: hidden; border: 1px solid var(--color-border); border-radius: 14px; background: #fffdfa; }
.study-editor:focus-within { border-color: var(--color-accent); outline: 2px solid rgb(215 125 171 / .15); }
.study-editor__toolbar { display: flex; min-height: 50px; flex-wrap: wrap; align-items: center; gap: .15rem; padding: .35rem .45rem; border-bottom: 1px solid var(--color-border); background: white; }
.study-editor__toolbar button { display: grid; min-width: 37px; height: 37px; place-items: center; border-radius: 8px; background: transparent; font-size: 1.08rem; white-space: nowrap; }
.study-editor__toolbar button:hover { background: var(--color-accent-pale); color: var(--color-accent); }
.study-editor__toolbar button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.study-editor__toolbar select { min-width: 122px; height: 37px; padding: 0 .55rem; border: 0; border-radius: 8px; background: transparent; color: var(--color-text); font: inherit; font-size: .94rem; }
.study-editor__content { min-height: 300px; padding: 1rem; overflow-wrap: anywhere; outline: 0; font-size: 1.1rem; line-height: 1.75; }
.study-editor__content:empty::before { color: var(--color-text-faint); content: attr(data-placeholder); pointer-events: none; }
.study-editor__content a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 2px; }
.study-editor__content ul, .study-editor__content ol { padding-left: 1.5rem; }
.study-editor__content ul { list-style: disc; }
.study-editor__content ol { list-style: decimal; }
.study-editor__content blockquote { padding-left: 1rem; border-left: 3px solid var(--color-accent-soft); color: var(--color-text-muted); }
.study-editor__content table { width: 100%; border-collapse: collapse; }
.study-editor__content td, .study-editor__content th { min-width: 80px; padding: .45rem; border: 1px solid var(--color-border); }
.study-editor__content img { display: block; max-width: 100%; height: auto; margin-block: .75rem; border-radius: 10px; }
.study-highlight-picker { display: flex; flex: 0 0 auto; align-items: center; }
.study-highlight-menu { display: flex; gap: .35rem; margin-left: .25rem; padding: .3rem; border: 1px solid var(--color-border); border-radius: 999px; background: white; }
.study-highlight-menu[hidden] { display: none; }
.study-editor__toolbar .study-highlight-menu button { width: 27px; min-width: 27px; height: 27px; border: 4px solid white; border-radius: 50%; background: var(--highlight-color, white); box-shadow: 0 0 0 1px var(--color-border); font-size: .8rem; }
.study-managed-picker { width: 100%; }
.study-managed-picker .pending-category-picker__trigger { background: #fffdfa; color: var(--color-text); }
.study-managed-picker .pending-category-picker__trigger, .study-managed-picker .pending-category-option { font-size: 1rem; }
.study-dialog { font-size: 1.05rem; }
.study-dialog header h2 { font-size: 1.55rem; }
.study-dialog .work-field > span { font-size: 1rem; }
.study-dialog .work-field input, .study-dialog .work-field textarea { font-size: 1rem; }
.study-dialog form > footer .secondary-button, .study-dialog form > footer .primary-button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; }
.study-dialog form > footer .primary-button { min-width: 136px; }
.study-dialog[data-folder-dialog] form > footer > span { grid-column: 2; }
.study-dialog[data-folder-dialog] form > footer .secondary-button { min-width: 0; grid-column: 3; padding-inline: .85rem; }
.study-dialog[data-folder-dialog] form > footer .primary-button { grid-column: 4; }
.study-dialog[data-material-dialog] form > footer .secondary-button { width: 82px; min-width: 0; justify-self: end; padding-inline: .45rem; }
.study-schedule input:focus { border-color: var(--color-accent); outline: 2px solid rgb(215 125 171 / .15); }
.study-materials { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.study-material { display: grid; min-width: 0; min-height: 64px; grid-template-columns: minmax(0, 1fr) 32px; align-items: center; gap: .5rem; padding: .7rem .4rem .7rem .8rem; border: 1px solid var(--color-border); border-radius: 13px; background: white; }
.study-material > div { min-width: 0; }
.study-material strong, .study-material small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.study-material strong { font-size: 1rem; }
.study-material small { margin-top: .2rem; color: var(--color-text-muted); font-size: .86rem; }
.study-material > button { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 9px; background: transparent; color: var(--color-text-faint); }
.study-material > button:hover { background: var(--color-soft); color: var(--color-accent); }
.study-material > button .icon { width: 15px; height: 15px; }
.study-library__empty { padding: 2.25rem 1rem; border: 1px dashed var(--color-border); border-radius: 13px; color: var(--color-text-faint); font-size: .86rem; text-align: center; }
.study-empty { display: grid; min-height: 280px; place-content: center; gap: .3rem; padding: 2rem; text-align: center; }
.study-empty span { color: var(--color-text-muted); font-size: .8rem; }

@media (max-width: 1100px) {
  .study-folders { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .study-workspace__header { grid-template-columns: minmax(0, 1fr); }
  .study-schedule { grid-column: 1 / -1; }
  .study-materials { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .studies-header { flex-direction: column; }
  .studies-header .primary-button { width: 100%; }
  .study-materials { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 520px) {
  .study-folders { display: flex; margin-inline: -1rem; padding-inline: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; }
  .study-folder { min-width: min(82vw, 300px); scroll-snap-align: start; }
  .study-workspace__header { grid-template-columns: minmax(0, 1fr); padding: 1rem 3.25rem 1rem 1rem; }
  .study-schedule { grid-template-columns: 1fr 1fr; }
  .study-schedule > strong { grid-column: 1 / -1; }
  .study-content { padding: 1rem; }
  .study-section-heading { align-items: flex-start; flex-direction: column; }
  .study-section-actions { width: 100%; justify-content: stretch; }
  .study-section-actions .secondary-button { flex: 1; justify-content: center; }
}

@media print {
  body.is-printing-study { background: white; }
  body.is-printing-study .sidebar, body.is-printing-study .topbar, body.is-printing-study .drawer-backdrop, body.is-printing-study .studies-header, body.is-printing-study .study-folders, body.is-printing-study .study-workspace__header, body.is-printing-study .study-library, body.is-printing-study .study-section-heading, body.is-printing-study dialog { display: none !important; }
  body.is-printing-study .app-main { margin: 0; }
  body.is-printing-study .content { padding: 0; }
  body.is-printing-study .content__inner { width: 100%; }
  body.is-printing-study .study-workspace { display: block !important; overflow: visible; border: 0; box-shadow: none; }
  body.is-printing-study .study-content { display: block; padding: 0; }
  body.is-printing-study .study-print-heading { display: block; margin-bottom: 1.5rem; border-bottom: 1px solid var(--color-border); }
  body.is-printing-study .study-print-heading h1 { font-size: 1.8rem; }
  body.is-printing-study .study-print-heading p { margin: .25rem 0 1rem; color: var(--color-text-muted); }
  body.is-printing-study .study-editor { overflow: visible; border: 0; background: white; }
  body.is-printing-study .study-editor__toolbar { display: none; }
  body.is-printing-study .study-editor__content { min-height: 0; padding: 0; }
}

.routine-selection-bar label {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  gap: 0.65rem;
  cursor: pointer;
}

.routine-selection-bar input,
.activity-select {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  accent-color: var(--color-accent);
  cursor: pointer;
}

.routine-selection-bar strong {
  font-size: 0.9rem;
}

.routine-selection-bar > span {
  color: var(--color-text-muted);
  font-size: 0.87rem;
}

.bulk-delete-button {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
  padding: 0.65rem 0.9rem;
  border-radius: 14px;
  background: #fee8e7;
  color: var(--color-danger-soft);
  font-size: 0.84rem;
  font-weight: 700;
}

.bulk-delete-button:disabled {
  background: var(--color-soft);
  color: var(--color-text-faint);
  cursor: not-allowed;
  opacity: 0.7;
}

.bulk-delete-button .icon {
  width: 18px;
  height: 18px;
}

.routine-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.5rem 1.65rem;
  border-bottom: 1px solid var(--color-border);
}

.routine-card__header h2 {
  font-size: 1.12rem;
  letter-spacing: -0.02em;
}

.routine-card__header p {
  margin-top: 0.25rem;
  color: var(--color-text-muted);
  font-size: 0.84rem;
}

.routine-card__count {
  flex: 0 0 auto;
  padding: 0.35rem 0.7rem;
  border-radius: var(--radius-pill);
  background: var(--color-accent-pale);
  color: var(--color-accent);
  font-size: 0.75rem;
  font-weight: 800;
}

.week-board {
  display: grid;
  width: 100%;
  min-width: 0;
  grid-template-columns: repeat(7, minmax(150px, 1fr));
  gap: 0.65rem;
  padding: 1rem;
  overflow-x: auto;
}

.week-column {
  min-width: 0;
  min-height: 360px;
  padding: 0.65rem;
  border: 1px solid var(--color-border);
  border-radius: 16px;
  background: var(--color-soft);
}

.week-column__header {
  display: flex;
  min-height: 54px;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.4rem;
  padding: 0.25rem 0.25rem 0.7rem;
}

.week-column__header h3 {
  overflow: hidden;
  font-size: 0.78rem;
  font-weight: 750;
  text-overflow: ellipsis;
  text-transform: capitalize;
  white-space: nowrap;
}

.week-column__header time {
  display: block;
  margin-top: 0.12rem;
  color: var(--color-text-muted);
  font-size: 0.68rem;
  text-transform: capitalize;
}

.week-column__header > span {
  display: grid;
  min-width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 50%;
  background: var(--color-surface);
  color: var(--color-text-muted);
  font-size: 0.66rem;
  font-weight: 700;
}

.week-column__cards {
  display: grid;
  align-content: start;
  gap: 0.55rem;
}

.week-card {
  padding: 0.65rem;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  background: var(--color-surface);
  box-shadow: 0 5px 14px rgb(70 54 42 / 0.025);
}

.week-card--selected {
  border-color: color-mix(in srgb, var(--color-accent) 35%, var(--color-border));
  background: var(--color-accent-pale);
}

.week-card__header {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.week-card__header > time {
  color: var(--color-text-muted);
  font-size: 0.7rem;
  font-variant-numeric: tabular-nums;
}

.week-card__actions {
  display: flex;
  gap: 0.2rem;
  margin-left: auto;
}

.week-card .activity-action {
  width: 30px;
  height: 30px;
  border-radius: 9px;
}

.week-card .activity-action + .activity-action {
  margin-left: 0;
}

.week-card .activity-action .icon {
  width: 14px;
  height: 14px;
}

.week-card__body {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 0.35rem;
  margin: 0.5rem 0;
}

.week-card__body .activity-check {
  width: 34px;
  height: 34px;
  flex-basis: 34px;
}

.week-card__body .activity-check > span {
  width: 22px;
  height: 22px;
}

.week-card__body strong {
  min-width: 0;
  overflow: hidden;
  font-size: 0.78rem;
  line-height: 1.35;
  text-overflow: ellipsis;
}

.week-card--completed .week-card__body strong {
  color: var(--color-text-muted);
  text-decoration: line-through;
}

.week-card .category-tag {
  min-height: 25px;
  padding: 0.22rem 0.55rem;
  font-size: 0.66rem;
}

.week-column__empty {
  padding: 1.2rem 0.3rem;
  color: var(--color-text-faint);
  font-size: 0.72rem;
  text-align: center;
}

.daily-groups {
  display: grid;
  gap: 0.75rem;
  padding: 0.9rem;
  background: var(--color-canvas);
}

.daily-period {
  padding: 0.75rem 0.8rem;
  border: 1px solid var(--color-border);
  border-radius: 18px;
  background: var(--color-surface);
}

.daily-period__header {
  display: flex;
  min-height: 38px;
  align-items: center;
  gap: 0.55rem;
  padding: 0 0.2rem 0.4rem;
}

.daily-period__header > span {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  background: var(--color-accent-pale);
  color: var(--color-accent);
}

.daily-period__header > span .icon {
  width: 16px;
  height: 16px;
}

.daily-period__header h3 {
  font-size: 0.9rem;
}

.daily-period__items {
  display: grid;
}

.daily-activity {
  position: relative;
  display: grid;
  min-height: 58px;
  grid-template-columns: 44px 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.45rem;
  padding: 0.35rem 0.3rem;
  border-radius: 14px;
}

.daily-activity + .daily-activity {
  border-top: 1px solid color-mix(in srgb, var(--color-border) 70%, transparent);
}

.daily-activity:hover,
.daily-activity--selected {
  background: color-mix(in srgb, var(--color-accent-pale) 35%, transparent);
}

.daily-activity__category {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 50%;
  background: color-mix(in srgb, var(--activity-color) 72%, var(--color-surface));
  color: color-mix(in srgb, var(--color-text) 68%, var(--activity-color));
}

.daily-activity__category .icon {
  width: 17px;
  height: 17px;
}

.daily-activity__content {
  display: grid;
  min-width: 0;
}

.daily-activity__content strong {
  overflow: hidden;
  font-size: 0.84rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.daily-activity__title {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 0.5rem;
}

.activity-source-link {
  display: inline-flex;
  min-height: 22px;
  flex: 0 0 auto;
  align-items: center;
  gap: 0.2rem;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--activity-color) 48%, white);
  color: var(--color-text-muted);
  font-size: 0.62rem;
  font-weight: 750;
  text-decoration: none;
}

.activity-source-link:hover {
  color: var(--color-accent);
}

.source-target-highlight {
  outline: 3px solid color-mix(in srgb, var(--color-accent) 58%, transparent);
  outline-offset: 4px;
  animation: source-target-pulse 800ms ease-in-out 2;
}

@keyframes source-target-pulse {
  50% { outline-color: color-mix(in srgb, var(--color-accent) 18%, transparent); }
}

.activity-icon-options--emoji span {
  font-size: 1.25rem;
}

.daily-activity__content time,
.daily-activity__time {
  color: var(--color-text-muted);
  font-size: 0.72rem;
  text-transform: capitalize;
}

.activity-date-group__header > span .icon {
  width: 15px;
  height: 15px;
}

.activity-controls {
  display: inline-flex;
  align-items: center;
  justify-self: end;
  gap: 0.2rem;
}

.activity-controls label,
.activity-controls button {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  background: var(--color-surface);
  color: var(--color-text-muted);
  cursor: pointer;
}

.activity-controls label:hover,
.activity-controls button:hover {
  border-color: color-mix(in srgb, var(--color-accent) 28%, var(--color-border));
  color: var(--color-accent);
}

.activity-controls label span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.activity-controls input {
  width: 17px;
  height: 17px;
}

.activity-controls .icon {
  width: 15px;
  height: 15px;
}

.activity-controls .activity-controls__danger {
  border-color: transparent;
  background: #fee8e7;
  color: var(--color-danger-soft);
}

.daily-activity--completed .daily-activity__content strong {
  color: var(--color-text-muted);
  text-decoration: line-through;
}

.activity-check--readonly {
  cursor: default;
}

.activity-overflow {
  position: relative;
  justify-self: end;
}

.activity-overflow__trigger {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 12px;
  color: var(--color-text-muted);
  font-size: 1.3rem;
  line-height: 1;
}

.activity-overflow__trigger:hover,
.activity-overflow__trigger[aria-expanded="true"] {
  background: var(--color-soft);
  color: var(--color-text);
}

.activity-overflow__menu {
  position: absolute;
  z-index: 8;
  top: calc(100% + 0.25rem);
  right: 0;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.35rem;
  border: 1px solid var(--color-border);
  border-radius: 13px;
  background: var(--color-surface);
  box-shadow: var(--shadow-overlay);
}

.activity-overflow__menu[hidden] {
  display: none;
}

.activity-overflow__menu label {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  cursor: pointer;
}

.activity-overflow__menu label span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.activity-overflow__menu button {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 10px;
  color: var(--color-text-muted);
}

.activity-overflow__menu button:hover {
  background: var(--color-soft);
  color: var(--color-accent);
}

.activity-overflow__menu .activity-overflow__danger {
  background: #fee8e7;
  color: var(--color-danger-soft);
}

.activity-overflow__menu .icon {
  width: 17px;
  height: 17px;
}

.routine-empty {
  padding: 4rem 1rem;
  color: var(--color-text-muted);
  text-align: center;
}

.agenda-scroll {
  width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

.week-agenda {
  display: grid;
  width: 100%;
  min-width: 1050px;
  grid-template-columns: repeat(7, minmax(140px, 1fr));
  grid-template-rows: 62px auto minmax(320px, auto);
  background: var(--color-surface);
}

.agenda-day-group { display: contents; }
.agenda-day-group > .agenda-day { grid-row: 1; grid-column: var(--agenda-column); }
.agenda-day-group > .agenda-all-day { grid-row: 2; grid-column: var(--agenda-column); }
.agenda-day-group > .agenda-day-column { grid-row: 3; grid-column: var(--agenda-column); }

.agenda-day,
.agenda-all-day,
.agenda-day-column {
  border-right: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}

.agenda-day {
  display: grid;
  place-content: center;
  gap: 0.15rem;
  text-align: center;
}

.agenda-day strong {
  font-size: 0.68rem;
  text-transform: uppercase;
}

.agenda-day time {
  color: var(--color-text-muted);
  font-size: 0.78rem;
}

.agenda-day--today {
  background: var(--color-accent-pale);
  color: var(--color-accent);
}

.agenda-day--today time {
  color: var(--color-accent);
  font-weight: 750;
}

.agenda-all-day {
  min-height: 48px;
  padding: 0.3rem;
  border-bottom: 0;
}

.agenda-all-day .agenda-event {
  display: flex;
  align-items: flex-start;
  gap: 0.2rem;
}

.agenda-day-column {
  display: flex;
  min-height: 320px;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.4rem;
}

.agenda-day-column--today {
  background-color: color-mix(in srgb, var(--color-accent-pale) 25%, transparent);
}

.agenda-event {
  position: relative;
  min-height: 36px;
  padding: 0.35rem 0.3rem 0.35rem 0.45rem;
  overflow: visible;
  border-radius: 9px;
  background: var(--activity-color, var(--category-event-background));
  color: var(--color-text);
  font-size: 0.66rem;
}

.agenda-day-column > .agenda-event {
  display: flex;
  width: 100%;
  min-height: 46px;
  align-items: flex-start;
  gap: 0.2rem;
}

.agenda-event.category-tag--trabalho {
  background: var(--category-work-background);
  color: var(--category-work-text);
}

.agenda-event.category-tag--estudos {
  background: var(--category-study-background);
  color: var(--category-study-text);
}

.agenda-event.category-tag--casa {
  background: var(--category-home-background);
  color: var(--category-home-text);
}

.agenda-event > div:not(.activity-controls) {
  display: grid;
  min-width: 0;
}

.agenda-event strong {
  overflow: hidden;
  line-height: 1.25;
  text-overflow: ellipsis;
}

.agenda-event time {
  font-size: 0.6rem;
  font-weight: 750;
}

.agenda-event .activity-check {
  width: 24px;
  height: 28px;
  flex-basis: 24px;
}

.agenda-event .activity-check > span {
  width: 18px;
  height: 18px;
}

.agenda-event__icon {
  display: grid;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  place-items: center;
  font-size: 0.9rem;
}

.agenda-event__icon .icon {
  width: 15px;
  height: 15px;
}

.agenda-event .activity-source-link {
  width: fit-content;
  min-height: 18px;
  margin-top: 0.2rem;
  padding: 0.08rem 0.3rem;
  font-size: 0.52rem;
}

.agenda-event .activity-controls {
  gap: 1px;
  margin-left: auto;
}

.agenda-event .activity-controls label,
.agenda-event .activity-controls button {
  width: 21px;
  height: 21px;
  border-radius: 6px;
}

.agenda-event .activity-controls input {
  width: 13px;
  height: 13px;
}

.agenda-event .activity-controls .icon {
  width: 11px;
  height: 11px;
}

.agenda-event--completed strong {
  text-decoration: line-through;
  opacity: 0.72;
}

.agenda-event--selected {
  outline: 2px solid var(--color-accent);
}

.agenda-event[draggable="true"] { cursor: grab; }
.agenda-event[draggable="true"]:active { cursor: grabbing; }
.agenda-event.is-dragging { opacity: .42; }
.agenda-day-group.is-drag-over > :is(.agenda-day, .agenda-all-day, .agenda-day-column) { background: color-mix(in srgb, var(--color-accent-pale) 72%, var(--color-surface)); }
.agenda-day-group.is-drag-over > .agenda-day { box-shadow: inset 0 3px var(--color-accent); }

.routine-table-wrap {
  width: 100%;
  overflow-x: auto;
}

.routine-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.routine-table th {
  height: 50px;
  padding: 0.65rem 1rem;
  color: var(--color-text-muted);
  font-size: 0.73rem;
  font-weight: 700;
  letter-spacing: 0.045em;
  text-align: left;
  text-transform: uppercase;
}

.routine-table th:first-child,
.activity-cell--select {
  width: 58px;
  text-align: center;
}

.routine-table th:nth-child(3),
.activity-cell--time {
  width: 150px;
}

.routine-table th:nth-child(4),
.activity-cell--category {
  width: 190px;
}

.routine-table th:last-child,
.activity-cell--actions {
  width: 118px;
}

.activity-row {
  border-top: 1px solid var(--color-border);
  background: var(--color-surface);
}

.activity-row--selected {
  background: color-mix(in srgb, var(--color-accent-pale) 45%, var(--color-surface));
}

.activity-cell {
  height: 70px;
  padding: 0.8rem 1rem;
  color: var(--color-text);
  font-size: 0.92rem;
  vertical-align: middle;
}

.activity-cell--name {
  overflow: hidden;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.activity-name-layout {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.activity-cell__content {
  display: block;
  min-width: 0;
  overflow: hidden;
}

.activity-cell--name > span,
.activity-cell__date {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
}

.activity-cell__date {
  margin-top: 0.18rem;
  color: var(--color-text-muted);
  font-size: 0.72rem;
  font-weight: 500;
  text-transform: capitalize;
}

.activity-cell--time {
  color: var(--color-text-muted);
  font-variant-numeric: tabular-nums;
}

.activity-check {
  display: inline-grid;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  font-size: 0.76rem;
  font-weight: 800;
}

.activity-cell--actions {
  white-space: nowrap;
}

.activity-action {
  display: inline-grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: var(--color-surface);
  color: var(--color-text-muted);
}

.activity-action + .activity-action {
  margin-left: 0.3rem;
}

.activity-action:hover {
  border-color: color-mix(in srgb, var(--color-accent) 30%, var(--color-border));
  color: var(--color-accent);
}

.activity-action--danger {
  border-color: transparent;
  background: #fee8e7;
  color: var(--color-danger-soft);
}

.activity-action .icon {
  width: 17px;
  height: 17px;
}

.activity-check > span {
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border: 1.5px solid color-mix(in srgb, var(--color-text-muted) 38%, transparent);
  border-radius: 50%;
  background: var(--color-surface);
  color: var(--color-white);
}

.activity-check:hover > span {
  border-color: var(--color-accent);
  background: var(--color-accent-pale);
  color: var(--color-accent);
}

.activity-check[aria-pressed="true"] > span {
  border-color: var(--color-accent);
  background: var(--color-accent);
  color: var(--color-white);
}

.activity-row--completed .activity-cell--name {
  color: var(--color-text-muted);
  text-decoration: line-through;
  text-decoration-color: color-mix(in srgb, var(--color-text-muted) 50%, transparent);
}

.category-tag {
  display: inline-flex;
  max-width: 100%;
  min-height: 30px;
  align-items: center;
  padding: 0.32rem 0.72rem;
  overflow: hidden;
  border-radius: var(--radius-pill);
  background: var(--color-accent-pale);
  color: var(--color-accent);
  font-size: 0.78rem;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.category-tag--trabalho {
  background: var(--category-work-background);
  color: var(--category-work-text);
}

.category-tag--estudos {
  background: var(--category-study-background);
  color: var(--category-study-text);
}

.category-tag--casa {
  background: var(--category-home-background);
  color: var(--category-home-text);
}

.category-tag--eventos {
  background: var(--category-event-background);
  color: var(--category-event-text);
}

.routine-table__empty td {
  height: 180px;
  padding: 2rem;
  color: var(--color-text-muted);
  text-align: center;
}

.activity-dialog {
  width: min(640px, calc(100vw - 2rem));
  max-height: min(88vh, 820px);
  margin: auto;
  padding: 0;
  overflow: auto;
  border: 1px solid var(--color-border);
  border-radius: 24px;
  background: var(--color-surface);
  color: var(--color-text);
  box-shadow: var(--shadow-overlay);
}

.activity-dialog::backdrop {
  background: var(--color-overlay);
  backdrop-filter: blur(3px);
}

.activity-form {
  padding: clamp(1.25rem, 4vw, 2rem);
}

.activity-dialog__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.6rem;
}

.activity-dialog__header h2 {
  font-size: clamp(1.55rem, 4vw, 2rem);
}

.activity-dialog__header .page__eyebrow {
  margin-bottom: 0.35rem;
}

.activity-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.form-field {
  display: grid;
  min-width: 0;
  gap: 0.42rem;
}

.form-field--full {
  grid-column: 1 / -1;
}

.form-field > span,
.category-editor__add > label {
  color: var(--color-text);
  font-size: 0.8rem;
  font-weight: 750;
}

.form-field input,
.form-field textarea,
.form-field select,
.category-editor input {
  width: 100%;
  min-height: 48px;
  padding: 0.72rem 0.85rem;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  background: var(--color-surface);
  color: var(--color-text);
  outline: 0;
}

.form-field textarea {
  min-height: 96px;
  resize: vertical;
}

.form-field input:focus,
.form-field textarea:focus,
.form-field select:focus,
.category-editor input:focus {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 16%, transparent);
}

.form-field input::placeholder,
.form-field textarea::placeholder,
.category-editor input::placeholder {
  color: color-mix(in srgb, var(--color-text-muted) 72%, transparent);
}

.category-picker {
  position: relative;
}

.category-picker__trigger {
  display: flex;
  width: 100%;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  padding: 0.72rem 0.9rem;
  border: 1px solid var(--color-border);
  border-radius: 18px;
  background: var(--color-surface);
  color: var(--color-text);
  font-size: 0.92rem;
  text-align: left;
}

.category-picker__trigger:focus-visible {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 16%, transparent);
}

.category-picker__menu {
  position: absolute;
  z-index: 3;
  top: calc(100% + 0.4rem);
  right: 0;
  left: 0;
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: 16px;
  background: var(--color-surface);
  box-shadow: var(--shadow-overlay);
}

.category-picker__menu[hidden] {
  display: none;
}

.category-picker__list {
  max-height: 230px;
  padding: 0.45rem;
  overflow-y: auto;
}

.category-picker__row {
  display: grid;
  min-height: 44px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  border-radius: 9px;
}

.category-picker__row:hover,
.category-picker__row.is-selected {
  background: var(--color-accent-pale);
}

.category-picker__option {
  min-width: 0;
  min-height: 44px;
  padding: 0.55rem 0.7rem;
  overflow: hidden;
  color: var(--color-text);
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.category-picker__actions {
  display: flex;
  padding-right: 0.25rem;
  opacity: 1;
}

.category-picker__row:hover .category-picker__actions,
.category-picker__row:focus-within .category-picker__actions {
  opacity: 1;
}

.category-picker__actions button,
.category-picker__add button {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  color: var(--color-text-muted);
  font-size: 1rem;
}

.category-picker__actions .icon {
  width: 17px;
  height: 17px;
}

.category-picker__add {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px;
  align-items: center;
  gap: 0.3rem;
  margin: 0 0.75rem;
  padding: 0.65rem 0 0.75rem;
  border-top: 1px solid var(--color-border);
}

.category-picker__add input,
.category-picker__edit-input {
  width: 100%;
  min-height: 40px;
  padding: 0.5rem 0.7rem;
  border: 1px solid var(--color-border);
  border-radius: 9px;
  background: var(--color-soft);
  color: var(--color-text);
}

.category-picker__add button {
  color: var(--color-accent);
  font-size: 1.5rem;
}

.category-picker__row:has(.category-picker__edit-input) {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.4rem;
  padding: 0.25rem;
}

.category-picker__save {
  min-height: 40px;
  padding: 0.4rem 0.6rem;
  color: var(--color-accent);
  font-size: 0.75rem;
  font-weight: 750;
}

.activity-form .category-picker.pending-category-picker .category-picker__trigger { display: grid; grid-template-columns: 20px minmax(0, 1fr) 18px; gap: .65rem; padding: .65rem .85rem; border-radius: 15px; color: #8f7d73; }
.activity-form .category-picker.pending-category-picker .category-picker__menu { z-index: 20; max-height: 430px; padding: .65rem .65rem .55rem; overflow-y: auto; border-radius: 20px; box-shadow: 0 20px 45px rgb(65 43 34 / .18); }
.activity-form .category-picker .category-picker__list { max-height: none; padding: 0; }
.activity-form .category-picker .pending-category-option { position: relative; display: grid; min-height: auto; grid-template-columns: minmax(0, 1fr); margin-bottom: .05rem; border-radius: 14px; }
.activity-form .category-picker .pending-category-option > .category-picker__option { display: block; min-height: 43px; padding: .65rem 5rem .65rem .75rem; overflow: visible; line-height: 1.35; overflow-wrap: anywhere; text-overflow: clip; white-space: normal; }
.activity-form .category-picker .pending-category-option > .category-picker__actions { position: absolute; right: .25rem; padding: 0; }
.activity-form .category-picker .pending-category-picker__add { position: sticky; bottom: -.55rem; margin: .45rem 0 0; padding: .7rem .3rem .55rem; }
.routine-custom-recurrence { grid-template-columns: 1fr 1.4fr 1.5fr; gap: 1rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: 15px; background: var(--color-soft); }
.routine-custom-recurrence[hidden] { display: none; }
.routine-custom-recurrence label { display: grid; gap: .42rem; }
.routine-custom-recurrence label > span { color: var(--color-text); font-size: .8rem; font-weight: 750; }

.activity-choice {
  min-width: 0;
  padding: 0;
  border: 0;
}

.activity-choice legend {
  margin-bottom: 0.55rem;
  font-size: 0.8rem;
  font-weight: 750;
}

.activity-icon-options {
  display: grid;
  grid-template-columns: repeat(8, minmax(42px, 1fr));
  gap: 0.55rem;
}

.activity-icon-options label,
.activity-color-options label {
  position: relative;
  cursor: pointer;
}

.activity-icon-options input,
.activity-color-options input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.activity-icon-options span {
  display: grid;
  min-height: 50px;
  place-items: center;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  background: var(--color-surface);
  color: var(--color-text-muted);
}

.activity-icon-options input:checked + span {
  border-color: var(--color-accent);
  background: var(--color-accent-pale);
  color: var(--color-accent);
  box-shadow: inset 0 0 0 1px var(--color-accent);
}

.activity-icon-options .icon {
  width: 21px;
  height: 21px;
}

.activity-color-options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}

.activity-color-options span {
  display: block;
  width: 42px;
  height: 42px;
  border: 3px solid var(--color-surface);
  border-radius: 50%;
  background: var(--option-color);
  box-shadow: 0 0 0 1px var(--color-border);
}

.activity-color-options input:checked + span {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-text-muted) 70%, transparent);
}

.category-manager-toggle {
  display: flex;
  width: 100%;
  min-height: 46px;
  align-items: center;
  justify-content: space-between;
  margin-top: 1rem;
  padding: 0.65rem 0.85rem;
  border: 1px dashed color-mix(in srgb, var(--color-accent) 38%, var(--color-border));
  border-radius: 10px;
  background: var(--color-accent-pale);
  color: var(--color-accent);
  font-size: 0.82rem;
  font-weight: 750;
  text-align: left;
}

.category-manager-toggle > span {
  font-size: 1.2rem;
}

.category-editor {
  margin-top: 0.85rem;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: var(--color-soft);
}

.category-editor__heading h3 {
  margin: 0;
  font-size: 0.95rem;
}

.category-editor__heading p {
  margin-top: 0.18rem;
  color: var(--color-text-muted);
  font-size: 0.78rem;
}

.category-editor__list {
  display: grid;
  gap: 0.55rem;
  margin-top: 0.9rem;
}

.category-editor__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 0.35rem;
}

.category-editor__row input {
  min-height: 40px;
  padding-block: 0.5rem;
  background: var(--color-surface);
}

.category-editor__add {
  display: grid;
  gap: 0.42rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border);
}

.category-editor__add > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.55rem;
}

.activity-dialog__footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.65rem;
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--color-border);
}

@media (prefers-reduced-motion: no-preference) {
  .icon-button,
  .nav-item,
  .profile-trigger,
  .profile-menu button,
  .shortcut-link,
  .sidebar__collapse .icon,
  .profile-trigger__chevron,
  .primary-button,
  .secondary-button,
  .text-button,
  .activity-check,
  .category-manager-toggle {
    transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, transform 180ms ease;
  }
}
