@tailwind base;@tailwind components;@tailwind utilities;@layer base{:root{--lantern-600: #F4B43A;--lantern-500: #F8C75A;--lantern-200: #FFE6B0;--petal-600: #E86A8D;--petal-500: #F08CAA;--petal-100: #FFE3EC;--ink-900: #1B1B22;--ink-700: #3A3A4A;--ink-500: #6B6B7B;--cream-50: #FFF9F1;--cream-100: #fffefd;--mist-200: #E9E3FF;--mist-500: #8A7CFF;--success: #2FBF71;--warning: #F4B43A;--error: #E24A4A;--info: #3B82F6;--ll-success-bg: #FFF4EC;--ll-success-border: #FFD6B8;--ll-success-text: #7A3E1D;--ll-success-icon: #E48A3A;--ll-success-ring: rgba(255, 180, 120, .35);--surface-bg-default: #F5F6F8;--surface-card-default: #FFF6ED;--surface-card-hover: #FFF3E8;--surface-card-active: #FFE8D6;--surface-inset-default: #FFFDFB;--surface-item-card: #FCE9DE;--surface-item-card-border: #E3C6B6;--surface-panel: #FFF8F2;--surface-card: #FFFFFF;--surface-callout: rgba(242,184,162,.15);--background: var(--surface-bg-default);--card: var(--surface-card-default);--popover: var(--surface-card-default);--foreground: var(--ink-900);--muted-foreground: var(--ink-500);--primary: var(--lantern-600);--primary-foreground: var(--ink-900);--secondary: var(--petal-100);--secondary-foreground: var(--ink-900);--accent: var(--petal-600);--accent-foreground: #FFFFFF;--border: rgba(0, 0, 0, .04);--input: rgba(27, 27, 34, .14);--ring: var(--lantern-500);--destructive: var(--error);--destructive-foreground: #FFFFFF}body{@apply bg-background text-foreground;font-feature-settings:"rlig" 1,"calt" 1}}.ll-cta-primary{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 22px;border-radius:999px;background:#ffd9a3;color:#1f1f1f;border:1px solid #A86B17;font-weight:600;font-size:15px;line-height:1;box-shadow:0 8px 18px #0000001a;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease}.ll-cta-primary:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,#ffe6be,#ffd28c 45%,#ffc36a);opacity:0;transition:opacity .18s ease;pointer-events:none;z-index:-1}.ll-cta-primary>*{position:relative;z-index:1}.ll-cta-primary:hover{background-image:linear-gradient(120deg,#ffe6becc,#ffd28ccc 45%,#ffc36acc),#FFD9A3;background-blend-mode:normal}.ll-cta-primary:hover{transform:translateY(-1px);box-shadow:0 12px 26px #00000024}.ll-cta-primary:hover:before{opacity:1}.ll-cta-primary:active{transform:translateY(0);box-shadow:0 6px 14px #0000001a}.ll-cta-primary:focus-visible{outline:3px solid rgba(168,107,23,.45);outline-offset:3px}.ll-cta-primary:disabled{opacity:.5;cursor:not-allowed}.ll-cta-secondary{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:12px 22px;border-radius:999px;background:#fffdfb;color:#1f1f1f;border:1px solid rgba(168,107,23,.35);font-weight:600;font-size:15px;line-height:1;box-shadow:none;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,transform .14s ease,box-shadow .14s ease}.ll-cta-secondary:hover{background:#fff3e8;border-color:#a86b178c;transform:translateY(-1px);box-shadow:0 8px 18px #00000014}.ll-cta-secondary:active{transform:translateY(0);background:#fff1e6;box-shadow:0 4px 10px #00000012}.ll-cta-secondary:focus-visible{outline:3px solid rgba(168,107,23,.35);outline-offset:3px}.ll-cta-secondary:disabled{opacity:.5;cursor:not-allowed}.ll-cta-tertiary-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;background:transparent;border:none;border-radius:.375rem;color:var(--ink-500);font-size:.95rem;font-weight:500;line-height:1.4;text-decoration:none;cursor:pointer;font-family:inherit;transition:color .14s ease,text-decoration-color .14s ease,opacity .14s ease}.ll-cta-tertiary-link:hover{color:var(--ink-700);text-decoration:underline;text-underline-offset:3px}.ll-cta-tertiary-link:focus-visible{outline:3px solid rgba(168,107,23,.45);outline-offset:2px;color:var(--ink-700);text-decoration:underline;text-underline-offset:3px}.ll-cta-tertiary-link:disabled{opacity:.5;cursor:not-allowed}.ll-cta-tertiary-link:disabled:hover{text-decoration:none}:root{--tf-color-pink: var(--petal-600);--tf-color-dark-brown: var(--ink-900);--tf-color-light-orange: var(--surface-bg-default);--tf-color-card-bg: var(--surface-card-default);--tf-color-page-bg: var(--surface-bg-default);--tf-color-text-main: var(--ink-900);--tf-color-text-muted: var(--ink-500);--tf-color-border-subtle: var(--border);--tf-color-pill-border: var(--border);--tf-shadow-soft: 0 8px 20px rgba(0, 0, 0, .06)}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:var(--tf-color-page-bg);color:var(--tf-color-text-main)}.app-layout{display:flex;min-height:100vh;background-color:var(--tf-color-page-bg)}.app-layout__main{flex:1;padding:32px 40px;display:flex;flex-direction:column;gap:24px}.sidebar{width:80px;background-color:var(--tf-color-light-orange);border-right:1px solid var(--tf-color-border-subtle);display:flex;flex-direction:column;align-items:center;padding:24px 0;gap:20px}.sidebar__icon-button{width:44px;height:44px;border-radius:999px;border:none;background:transparent;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:background-color .12s ease,box-shadow .12s ease,transform .12s ease;position:relative}.sidebar__icon-button:before{content:"";position:absolute;top:-2px;right:-2px;width:60%;height:60%;background:radial-gradient(circle at top right,rgba(248,199,90,.2),rgba(232,106,141,.15),transparent 70%);border-radius:0 12px 0 0;filter:blur(10px);opacity:0;pointer-events:none;z-index:1;transition:opacity .22s cubic-bezier(.2,.8,.2,1)}.sidebar__icon-button:hover{background-color:#ffffffb3;box-shadow:var(--tf-shadow-soft);transform:translateY(-1px)}.sidebar__icon-button:hover:before,.sidebar__icon-button:focus-visible:before{opacity:.18}.sidebar__icon-button:focus-visible:before{opacity:.24}@media (prefers-reduced-motion: reduce){.sidebar__icon-button:before{transition:opacity .16s cubic-bezier(.25,.46,.45,.94)}}.sidebar__icon-button--active{background-color:var(--tf-color-card-bg);box-shadow:var(--tf-shadow-soft)}.sidebar__icon{width:22px;height:22px;display:block}.sidebar__logo{padding:1rem 0;display:flex;justify-content:center}.sidebar__logo-icon{width:48px;height:48px}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.dashboard-header__logo{width:40px;height:40px;display:none;flex-shrink:0}.dashboard-header__text-main{font-family:Quicksand,system-ui,-apple-system,sans-serif;font-size:22px;font-weight:600}.dashboard-header__text-sub{margin-top:4px;font-size:14px;color:var(--tf-color-text-muted)}.dashboard-header__actions{display:flex;gap:12px}.btn{font-family:inherit;font-size:14px;border-radius:.75rem;padding:8px 20px;border:none;cursor:pointer;transition:background-color .12s ease,box-shadow .12s ease,transform .12s ease;white-space:nowrap}.btn-primary{background-color:var(--lantern-600);color:var(--ink-900);position:relative;isolation:isolate;overflow:hidden}.btn-primary:before,.btn-primary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transition:opacity .22s cubic-bezier(.2,.8,.2,1);z-index:-1;border-radius:inherit}.btn-primary:before{background:radial-gradient(circle at center,rgba(248,199,90,.3),transparent 70%)}.btn-primary:after{background:linear-gradient(135deg,var(--lantern-500) 0%,var(--petal-500) 50%,var(--lantern-500) 100%);background-size:200% 200%;filter:blur(18px);transform:scale(1.2)}.btn-primary:hover{background-color:var(--lantern-500);box-shadow:var(--tf-shadow-soft);transform:translateY(-1px)}.btn-primary:hover:before,.btn-primary:hover:after{opacity:.18}.btn-primary:hover:after{animation:ll-glow-drift .7s cubic-bezier(.2,.8,.2,1) infinite}.btn-primary:focus-visible:before,.btn-primary:focus-visible:after{opacity:.24}.btn-primary:focus-visible:after{animation:ll-glow-drift .7s cubic-bezier(.2,.8,.2,1) infinite}.btn-primary:active{opacity:.9}.btn-primary:active:before,.btn-primary:active:after{opacity:.126;transform:scale(1.05)}.btn-secondary{background-color:var(--surface-card-default);color:var(--ink-900);border:1px solid var(--border);position:relative;isolation:isolate;overflow:hidden}.btn-secondary:before,.btn-secondary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transition:opacity .22s cubic-bezier(.2,.8,.2,1);z-index:-1;border-radius:inherit}.btn-secondary:before{background:radial-gradient(circle at center,rgba(248,199,90,.2),transparent 70%)}.btn-secondary:after{background:linear-gradient(135deg,var(--lantern-500) 0%,var(--petal-500) 50%,var(--lantern-500) 100%);background-size:200% 200%;filter:blur(18px);transform:scale(1.2)}.btn-secondary:hover{background-color:var(--surface-card-hover);box-shadow:var(--tf-shadow-soft);transform:translateY(-1px)}.btn-secondary:hover:before,.btn-secondary:hover:after{opacity:.15}.btn-secondary:hover:after{animation:ll-glow-drift .7s cubic-bezier(.2,.8,.2,1) infinite}.btn-secondary:focus-visible:before,.btn-secondary:focus-visible:after{opacity:.22}.btn-secondary:focus-visible:after{animation:ll-glow-drift .7s cubic-bezier(.2,.8,.2,1) infinite}.btn-secondary:active{opacity:.9}.btn-secondary:active:before,.btn-secondary:active:after{opacity:.1;transform:scale(1.05)}@media (prefers-reduced-motion: reduce){.btn-primary:after,.btn-secondary:after{animation:none!important;background-position:50% 50%}.btn-primary:hover:after,.btn-primary:focus-visible:after,.btn-secondary:hover:after,.btn-secondary:focus-visible:after{animation:none!important}}.card{background-color:var(--surface-card-default);border-radius:1rem;border:1px solid var(--border);padding:32px 28px;box-shadow:var(--tf-shadow-soft);position:relative;transition:background-color .2s ease,box-shadow .42s cubic-bezier(.2,.8,.2,1)}.card--active{background-color:var(--surface-card-active)}.card:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:inherit;background:radial-gradient(ellipse at center,rgba(248,199,90,.15),rgba(232,106,141,.1),transparent 70%);filter:blur(28px);opacity:0;pointer-events:none;z-index:-1;transition:opacity .42s cubic-bezier(.2,.8,.2,1)}.card:focus-within{box-shadow:0 12px 32px #00000014,0 0 0 1px #f8c75a1a}.card:focus-within:before{opacity:.18}@media (prefers-reduced-motion: reduce){.card:before{transition:opacity .16s cubic-bezier(.25,.46,.45,.94)}}.card__title{font-family:Quicksand,system-ui,-apple-system,sans-serif;text-align:center;font-size:20px;font-weight:600;margin:0 0 4px}.card__subtext{text-align:center;font-size:14px;color:var(--tf-color-text-muted);margin:0 0 24px}.dashboard-main{margin-top:24px}.card--dashboard{max-width:960px;margin:0 auto 40px;border-radius:1rem;border:1px solid var(--border);box-shadow:var(--tf-shadow-soft);padding:32px 40px 40px;position:relative;background-color:var(--surface-card-default);transition:background-color .2s ease,box-shadow .42s cubic-bezier(.2,.8,.2,1)}.card--dashboard:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:inherit;background:radial-gradient(ellipse at center,rgba(248,199,90,.15),rgba(232,106,141,.1),transparent 70%);filter:blur(28px);opacity:0;pointer-events:none;z-index:-1;transition:opacity .42s cubic-bezier(.2,.8,.2,1)}.card--dashboard:focus-within{box-shadow:0 12px 32px #00000014,0 0 0 1px #f8c75a1a}.card--dashboard:focus-within:before{opacity:.18}@media (prefers-reduced-motion: reduce){.card--dashboard:before{transition:opacity .16s cubic-bezier(.25,.46,.45,.94)}}.dashboard-card__section-separator{height:1px;background-color:var(--tf-color-border-subtle);margin:32px 0}.dashboard-section{text-align:center}.dashboard-section__title{font-family:Quicksand,system-ui,-apple-system,sans-serif;font-size:20px;font-weight:600;margin:0 0 4px}.dashboard-section__subtext{font-size:14px;color:var(--tf-color-text-muted);margin:0 0 24px}.dashboard-section__body{text-align:left}@media (min-width: 840px){.dashboard-section--upcoming .md\:hidden{display:none!important}}.contact-row-root{transition:all .3s cubic-bezier(.2,.8,.2,1);overflow:hidden}.contact-row-drawer-wrap{max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.2,.8,.2,1),opacity .2s ease-in-out;opacity:0}.contact-row-drawer-wrap--expanded{max-height:200px;opacity:1}.contactRowDrawer{padding-top:1rem;display:flex;gap:.5rem;flex-wrap:wrap;opacity:0;transform:translateY(-8px);transition:opacity .3s cubic-bezier(.2,.8,.2,1) .1s,transform .3s cubic-bezier(.2,.8,.2,1) .1s}.contact-row-drawer-wrap--expanded .contactRowDrawer{opacity:1;transform:translateY(0)}.contact-row__cell{transition:padding .3s cubic-bezier(.2,.8,.2,1)}.contact-row--expanded .contact-row__cell{padding:1rem}.contactSurface{background:linear-gradient(155deg,#ffc39159,#ffd7b940 32%,#f0d7ff2e,#fff 80%);border-radius:.5rem;padding:1rem;transition:background .3s cubic-bezier(.2,.8,.2,1),padding .3s cubic-bezier(.2,.8,.2,1)}.contactRowTop{transition:padding .3s cubic-bezier(.2,.8,.2,1)}.contactSurface .contactRowTop{padding-bottom:.5rem}@media (max-width: 768px){.contacts-list-table-card{padding:16px!important}.contacts-list-table__head{display:none}.contact-row__cell{padding:12px 8px!important}.contact-row-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px 12px!important;align-items:start!important}.contact-row-col{min-width:0}.contact-row-col--name,.contact-row-col--events{grid-column:1 / -1}.contact-row-col--actions{display:none}.contactRowDrawer{padding-top:.75rem}.contact-drawer-cta{flex:1 1 calc(50% - .375rem)}}@media (max-width: 420px){.contact-row-grid{grid-template-columns:1fr!important}.contact-row-col--birthday,.contact-row-col--relationship{grid-column:1 / -1}.contact-drawer-cta{flex:1 1 100%}}.dashboard-section--today{padding-top:4px;padding-bottom:4px}.dashboard-section--today-empty .dashboard-section__title{margin:0;font-size:16px;line-height:1.4}.dashboard-section--today:not(.dashboard-section--today-empty) .dashboard-section__title{margin:0}.dashboard-section--today .dashboard-section__subtext{margin:4px 0 16px}.dashboard-section--today+.dashboard-card__section-separator{margin-top:16px}.birthday-list{list-style:none;margin:0;padding:0}.birthday-row{display:grid;grid-template-columns:minmax(90px,.85fr) minmax(200px,2fr) minmax(200px,1.9fr) auto;column-gap:24px;row-gap:4px;align-items:center;padding:10px 16px;border-top:1px solid var(--tf-color-border-subtle);font-size:14px;transition:background .3s cubic-bezier(.2,.8,.2,1)}.birthday-row:first-child{border-top:none}.birthday-row__left-area{grid-column:1 / 3;display:grid;grid-template-columns:minmax(90px,.85fr) minmax(200px,2fr);column-gap:24px;align-items:center;min-height:44px}.birthday-row__middle-area{background:transparent;border:none;padding:8px 0;margin:0;text-align:left;cursor:pointer;min-height:44px;border-radius:4px;transition:background .15s ease}.birthday-row__middle-area:disabled{cursor:default}.birthday-row__middle-area:focus-visible{outline:2px solid var(--lantern-500);outline-offset:2px;background-color:var(--cream-100);border-radius:4px}.birthday-row__middle-area:active:not(:disabled){background-color:var(--lantern-200);border-radius:4px;outline:2px solid var(--lantern-500);outline-offset:0}.birthday-row__col--name{font-weight:500}.birthday-row__col--description{color:var(--tf-color-text-muted)}.birthday-row__name-container{display:flex;flex-direction:column;align-items:flex-start}.birthday-row__name{font-family:Inter,system-ui,-apple-system,sans-serif;font-size:.9375rem;font-weight:600}.birthday-row__name-link{font-family:Inter,system-ui,-apple-system,sans-serif;font-size:.9375rem;font-weight:600;color:var(--ink-900);background:none;border:none;padding:0;margin:0;cursor:pointer;text-align:left;text-decoration:none;border-radius:4px;transition:color .15s ease,text-decoration .15s ease}.birthday-row__name-link:hover{color:var(--ink-700);text-decoration:underline;text-decoration-color:var(--lantern-600);text-decoration-thickness:2px;text-underline-offset:2px}.birthday-row__name-link:focus-visible{outline:2px solid var(--lantern-500);outline-offset:2px;color:var(--ink-900)}.birthday-row__name-link:active{color:var(--ink-900)}.birthday-row__birthday-info{font-size:.875rem;color:var(--ink-500);margin-top:.25rem;align-self:flex-start;padding-left:0;margin-left:0}.birthday-row__middle-wrapper{display:flex;align-items:center;gap:8px;justify-content:space-between}.birthday-row__middle{text-align:left;flex:1}.birthday-row__plan{font-size:.875rem;color:var(--ink-600);line-height:1.4;min-width:0}.birthday-row__drawer-chevron-wrap{display:flex;align-items:center;justify-content:flex-end}.birthday-row__drawer-chevron{color:var(--ink-500);font-size:1.25rem;line-height:1;transition:color .2s ease,transform .2s ease;display:inline-block;transform:rotate(90deg)}.birthday-row__drawer-chevron--open{transform:rotate(-90deg);color:var(--ink-700)}.birthday-row__drawer-wrap{grid-column:1 / -1;display:grid;grid-template-columns:minmax(90px,.85fr) minmax(200px,2fr) minmax(200px,1.9fr) auto;column-gap:24px;align-items:center;max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.2,.8,.2,1),opacity .2s ease-in-out;opacity:0}.birthday-row__drawer-wrap--expanded{max-height:200px;opacity:1}.birthday-row__drawer{grid-column:2 / -1;padding-top:1rem;padding-bottom:.5rem;display:flex;gap:1rem;flex-wrap:wrap;align-items:center;opacity:0;transform:translateY(-8px);transition:opacity .3s cubic-bezier(.2,.8,.2,1) .1s,transform .3s cubic-bezier(.2,.8,.2,1) .1s}.birthday-row__drawer-wrap--expanded .birthday-row__drawer{opacity:1;transform:translateY(0)}.birthday-row__drawer-actions{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}.birthday-row--drawer-open{background:linear-gradient(155deg,#ffc39159,#ffd7b940 32%,#f0d7ff2e,#fff 80%);border-radius:.5rem;margin:0 -16px;padding-left:24px;padding-right:24px}@media (hover: hover) and (pointer: fine){.birthday-row:hover{background:linear-gradient(155deg,#ffc39159,#ffd7b940 32%,#f0d7ff2e,#fff 80%);border-radius:.5rem;margin:0 -16px;padding-left:24px;padding-right:24px}}.birthday-row__col--cta{justify-self:flex-end;display:flex;align-items:center;gap:8px}.birthday-row .pill{font-size:12px;padding:5px 12px}.birthday-row .btn-primary--small{padding:6px 18px;font-size:13px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.birthday-list__group{margin-bottom:4px}.birthday-list__group:last-child{margin-bottom:0}.dashboard-event-type-group{margin-bottom:1.25rem}.dashboard-event-type-group:last-child{margin-bottom:0}.dashboard-event-type-heading{font-family:Quicksand,system-ui,-apple-system,sans-serif;font-size:1rem;font-weight:600;color:var(--ink-900);margin:0 0 .5rem;line-height:1.3}.dashboard-event-type-heading--inline{font-size:.9375rem;font-weight:600;color:var(--ink-800);margin:0}.birthday-row--group-first{border-top-left-radius:8px;border-top-right-radius:8px}.birthday-row--group-last{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.birthday-row--group-child .birthday-row__name-container{padding-left:14px;border-left:3px solid var(--lantern-200);margin-left:0}.dashboard-event-group--mobile{display:flex;flex-direction:column;gap:.5rem}.dashboard-event-group__header-mobile{font-size:16px;font-weight:600;color:var(--ink-900);font-family:Quicksand,system-ui,sans-serif;padding-left:0}.dashboard-event-group__cards{display:flex;flex-direction:column;gap:.75rem}.dashboard-section__empty{display:flex;flex-direction:column;align-items:center;gap:16px}.dashboard-section--upcoming .upcoming-empty-add-contact{gap:10px}.dashboard-section--upcoming .upcoming-empty-add-contact__icon{width:18px;height:18px;display:block}.dashboard-section__empty--compact{margin-top:16px}.dashboard-section__empty-text{font-size:14px;color:var(--tf-color-text-muted)}.dashboard-section__empty-icon{width:100px;max-width:50%;opacity:.5}.pill-with-edit{display:inline-flex;align-items:center;gap:8px}.pill{display:inline-flex;align-items:center;padding:6px 14px;border-radius:999px;border:1px solid var(--tf-color-pill-border);background-color:var(--petal-100);font-size:12px;font-weight:500;color:var(--ink-900)}.pill__icon{margin-right:6px}.pill-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.reminder-pill{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:999px;border:1px solid rgba(168,107,23,.35);background-color:var(--surface-card-default);font-size:14px;font-weight:500;color:var(--ink-900);cursor:pointer;transition:all .2s ease;outline:none}.reminder-pill:not(.reminder-pill--selected):not(:disabled):hover{background-color:var(--surface-card-hover);border-color:var(--ink-500)}.reminder-pill:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.reminder-pill--selected{background-color:var(--petal-100);border-color:var(--petal-600);color:var(--ink-900);font-weight:600;box-shadow:0 2px 4px #e86a8d26}.reminder-pill--selected:hover:not(:disabled){background-color:var(--petal-100);border-color:var(--petal-600);box-shadow:0 3px 6px #e86a8d33}.reminder-pill:disabled,.reminder-pill--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.reminder-pill--derived{cursor:default}.reminder-pill--derived:disabled{cursor:default;pointer-events:none}.reminder-pill--muted:not(.reminder-pill--selected){opacity:.6}.reminder-pill--muted:not(.reminder-pill--selected):hover{opacity:.8}.reminder-pill--off.reminder-pill--selected{background-color:var(--ink-500);border-color:var(--ink-700);color:#fff}.reminder-pill--off.reminder-pill--selected:hover:not(:disabled){background-color:var(--ink-700);border-color:var(--ink-900)}.event-plan-card{position:relative;padding:1rem;border-radius:.75rem;background:radial-gradient(120% 80% at 20% 0%,rgba(255,200,140,.22),transparent 60%),#fffaf4;box-shadow:0 14px 30px #190f0a14,0 2px 6px #190f0a0f}.event-plan-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:.25rem}.event-plan-card__header .event-plan-card__title{margin:0;font-size:16px;font-weight:600;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edit-plan-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;min-height:36px;border-radius:999px;background:#ffe1b4e6;border:1px solid rgba(255,180,120,.45);color:var(--ink-900);font-size:13px;font-weight:500;box-shadow:0 1px #fff9,0 3px 8px #190f0a14;cursor:pointer;transition:background .12s ease;flex-shrink:0}.edit-plan-btn:hover{background:#ffd7a5}.edit-plan-btn:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.edit-plan-btn:disabled,.edit-plan-btn.edit-plan-btn--editing{opacity:.7;cursor:default}.edit-plan-btn .edit-plan-btn__icon{width:14px;height:14px;flex-shrink:0;filter:brightness(0) saturate(100%);opacity:.9}.btn-primary--small{padding:6px 16px;font-size:13px}.icon-button{border:none;background:transparent;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.icon-button:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.icon-button--ghost img{width:18px;height:18px}.page{max-width:1200px;margin:0 auto;width:100%}.page-header{margin-bottom:32px}.page-header__title{font-family:Quicksand,system-ui,-apple-system,sans-serif;font-size:32px;font-weight:700;color:var(--ink-900);margin:0 0 8px}.page-header__subtitle{font-size:16px;color:var(--ink-500);margin:0}.page-card{background-color:var(--surface-card-default);border-radius:1rem;border:1px solid var(--border);padding:32px 28px;box-shadow:var(--tf-shadow-soft);position:relative;transition:background-color .2s ease}.page-card__divider{border:none;border-top:1px solid var(--tf-color-border-subtle);margin:24px 0}.page-card--settings{max-width:720px}.settings-section+.settings-section{margin-top:16px}.settings-section__title{font-size:16px;font-weight:600;margin:0 0 4px}.settings-section__description{margin:0 0 12px;font-size:14px;color:var(--tf-color-text-muted)}.settings-field{display:flex;flex-direction:column;gap:6px;max-width:260px}.settings-field__label{font-size:13px;font-weight:500}.settings-field__input{border-radius:.75rem;border:1px solid var(--input);background-color:var(--surface-inset-default);padding:8px 10px;font-family:inherit;font-size:14px}.settings-toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;margin-top:4px}.page-card--notes{max-width:820px}.notes-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.notes-list__item{border-radius:1rem;border:1px solid var(--border);padding:10px 14px;background-color:var(--surface-card-default);cursor:pointer;transition:background-color .2s ease,box-shadow .12s ease,transform .12s ease}.notes-list__item:hover{background-color:var(--surface-card-hover);box-shadow:var(--tf-shadow-soft);transform:translateY(-1px)}.notes-list__header-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.notes-list__contact-name{font-weight:600}.notes-list__date{font-size:12px;color:var(--tf-color-text-muted)}.notes-list__snippet{margin:4px 0 0;font-size:14px}.page-card--plan{max-width:960px}.plan-detail{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr);gap:24px}.plan-detail__main{display:flex;flex-direction:column;gap:16px}.plan-field{display:flex;flex-direction:column;gap:6px}.plan-field__label{font-size:13px;font-weight:500}.plan-field__input,.plan-field__textarea{border-radius:.75rem;border:1px solid var(--input);background-color:var(--surface-inset-default);padding:8px 10px;font-family:inherit;font-size:14px}.plan-field__textarea{resize:vertical}.plan-detail__aside{border-radius:1rem;border:1px solid var(--border);background-color:var(--surface-card-default);padding:14px 14px 16px}.plan-detail__aside-title{margin:0 0 6px;font-size:14px;font-weight:600}.plan-detail__aside-empty{margin:4px 0 0;font-size:13px;color:var(--tf-color-text-muted)}.plan-ideas{display:flex;flex-wrap:wrap;gap:8px}.plan-ideas__chip{border-radius:999px;padding:4px 10px;font-size:12px;background-color:var(--petal-100);border:1px solid var(--tf-color-pill-border);color:var(--ink-900)}.plan-detail__actions{margin-top:20px;display:flex;justify-content:flex-end;gap:12px}.settings-section__hint{margin-top:8px;font-size:13px;color:var(--tf-color-text-muted)}.settings-toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;margin-top:8px}.settings-toggle__input{position:absolute;opacity:0}.settings-toggle__pill{width:34px;height:18px;border-radius:999px;background-color:var(--ink-500);position:relative;flex-shrink:0}.settings-toggle__pill:before{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:999px;background-color:#fff;transition:transform .12s ease}.settings-toggle__input:checked+.settings-toggle__pill:before{transform:translate(16px)}.settings-toggle__input:checked+.settings-toggle__pill{background-color:var(--petal-500)}.settings-toggle__label{font-size:14px}.settings-toggle--indented{margin-left:0}@media (min-width: 841px){.settings-toggle--indented{margin-left:24px}}.contact-detail__section--reminders{margin-top:24px}.contact-detail__reminders-description{margin:4px 0 10px;font-size:13px;color:var(--tf-color-text-muted)}.reminders-options{display:flex;flex-direction:column;gap:8px}.reminders-option{display:flex;align-items:flex-start;gap:8px;font-size:13px;cursor:pointer}.reminders-option input[type=radio]{margin-top:4px}.reminders-option__body{display:flex;flex-direction:column;gap:2px}.reminders-option__label{font-weight:600}.reminders-option__description{color:var(--tf-color-text-muted)}.chip-toggle-group{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.chip-toggle{border-radius:999px;padding:.25rem .9rem;border:1px solid var(--border);background:var(--surface-card-default);font-size:.85rem;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease,transform .05s ease}.chip-toggle:hover{transform:translateY(-1px);background:var(--surface-card-hover)}.chip-toggle--active{background:var(--petal-600);color:#fff;border-color:var(--petal-600)}.chip-toggle__hint{margin-top:.75rem;font-size:.8rem;color:var(--ink-500)}.contact-detail{width:100%;max-width:960px;min-width:30rem;margin:2.5rem auto 4rem;padding:2.5rem 3rem 3rem;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;box-sizing:border-box}.contact-detail__back,.contact-detail__header{margin-bottom:1.5rem}.contact-detail__name{font-family:Quicksand,system-ui,-apple-system,sans-serif;font-size:1.8rem;font-weight:700;color:var(--ink-900);margin:0 0 .25rem}.contact-detail__birthday{margin:0;font-size:.95rem;color:var(--ink-500)}.contact-section{margin-top:2rem}.contact-section+.contact-section{padding-top:1.75rem;border-top:1px solid var(--border)}.contact-section__title{font-family:Quicksand,system-ui,-apple-system,sans-serif;font-size:1.1rem;font-weight:600;margin-bottom:.5rem;color:var(--ink-900)}.contact-section__body{margin:0 0 .75rem;font-size:.95rem;color:var(--ink-900)}.contact-section__hint{margin-top:.75rem;font-size:.85rem;color:var(--ink-500)}.chip-group{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.chip{border-radius:999px;padding:.3rem .9rem;font-size:.85rem;border:1px solid var(--border);background:var(--surface-card-default);color:var(--ink-900);cursor:pointer;transition:background-color .2s ease}.chip:hover{background:var(--surface-card-hover)}.chip--active{background:var(--petal-100);border-color:var(--petal-600);color:var(--ink-900);box-shadow:0 0 0 1px #e86a8d4d}.contact-notes__input{width:100%;min-height:80px;border-radius:.75rem;border:1px solid var(--input);background:var(--surface-inset-default);padding:.65rem .8rem;font-size:.95rem;resize:vertical;box-sizing:border-box}.contact-notes__input:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 2px #f8c75a33}.right-side-panel .contact-notes__input,.right-side-panel .contact-notes__textarea,.right-side-panel select.contact-notes__input{background:#fff;border:1px solid rgba(0,0,0,.14);min-height:44px;transition:border-color .15s ease,box-shadow .15s ease}select,.right-side-panel select.contact-notes__input{padding-right:2.5rem!important}.right-side-panel .contact-notes__input:hover,.right-side-panel .contact-notes__textarea:hover,.right-side-panel select.contact-notes__input:hover{border-color:#00000038}.right-side-panel .contact-notes__input:focus,.right-side-panel .contact-notes__textarea:focus,.right-side-panel select.contact-notes__input:focus{outline:none;border-color:#f2b8a2;box-shadow:0 0 0 3px #f2b8a240}.right-side-panel .contact-notes__input::placeholder,.right-side-panel .contact-notes__textarea::placeholder{color:#3e3a388c}.right-side-panel .contact-notes__textarea{min-height:100px}.contact-notes__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem}.btn.btn-secondary{background:var(--surface-card-default);color:var(--ink-900);border:1px solid var(--border);transition:background-color .2s ease}.btn.btn-secondary:hover{background:var(--surface-card-hover)}.contact-section--ideas p,.contact-section--suggestions p,.contact-section--history p{font-size:.95rem}.contact-detail__plans-notes{display:flex;align-items:flex-start;gap:1.75rem}.contact-detail__plans-notes>.contact-card{flex:1}.contact-detail__layout{display:flex;align-items:flex-start;gap:1.75rem}.contact-detail__primary{flex:1;display:flex;flex-direction:column;gap:1.25rem}.contact-detail__settings{flex:1;display:flex;flex-direction:column;gap:1rem}.contact-card{background:var(--surface-card-default);border-radius:1rem;box-shadow:0 8px 24px #00000008;border:1px solid var(--border);padding:1.25rem 1.5rem;position:relative;transition:background-color .2s ease,box-shadow .42s cubic-bezier(.2,.8,.2,1)}.contact-card--active{background-color:var(--surface-card-active)}.contact-card:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:inherit;background:radial-gradient(ellipse at center,rgba(248,199,90,.15),rgba(232,106,141,.1),transparent 70%);filter:blur(28px);opacity:0;pointer-events:none;z-index:-1;transition:opacity .42s cubic-bezier(.2,.8,.2,1)}.contact-card:focus-within{box-shadow:0 12px 32px #00000014,0 0 0 1px #f8c75a1a}.contact-card:focus-within:before{opacity:.18}.contact-card--act2,.contact-card--history{background-color:var(--surface-card-default);box-shadow:0 4px 16px #00000005}.contact-detail-act-divider{text-align:center;padding:1rem 0;margin:0;font-size:.875rem;color:var(--ink-500);font-family:Inter,system-ui,sans-serif;font-weight:500}@media (prefers-reduced-motion: reduce){.contact-card:before{transition:opacity .16s cubic-bezier(.25,.46,.45,.94)}}.contact-card h2{font-family:Quicksand,system-ui,-apple-system,sans-serif;font-size:1rem;font-weight:600;margin-bottom:.5rem}.contact-card__header-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.contact-card__columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem}.contact-card ul{margin:.75rem 0 0;padding-left:0;list-style:none}.contact-card li+li{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.contact-card--notes textarea{width:100%;min-height:120px;border-radius:.75rem;border:1px solid var(--input);background:var(--surface-inset-default);padding:.75rem .9rem;font-family:inherit;font-size:.95rem}.contact-card--notes .btn-row{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.5rem}.btn-ghost{border-radius:999px;border:1px solid var(--border);padding:.35rem .8rem;font-size:.8rem;background:var(--surface-card-default);transition:background-color .2s ease}.btn-ghost:hover{background:var(--surface-card-hover)}@media (max-width: 900px){.contact-detail__plans-notes,.contact-detail__layout{flex-direction:column}.contact-detail__settings{order:-1}.contact-card__columns{grid-template-columns:minmax(0,1fr)}}.saved-notes-inset-panel{background-color:var(--surface-inset-default);border:1px solid var(--border);border-radius:.75rem;padding:1rem 1.25rem;margin-bottom:1rem}.saved-notes-inset-panel:last-child{margin-bottom:0}.saved-notes-inset-panel__header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.saved-notes-inset-panel__title{font-family:Quicksand,system-ui,-apple-system,sans-serif;font-size:16px;font-weight:600;color:var(--ink-900);margin:0}.saved-notes-inset-panel__empty{font-size:14px;color:var(--ink-500);font-style:italic;margin:0}.contact-card--act2>.saved-notes-inset-panel{background-color:transparent;border:none;border-radius:0;padding:.5rem 0;margin-bottom:0}.saved-notes-item-card .saved-notes-inset-panel{background-color:transparent;border:none;border-radius:0;padding:.75rem 0;margin-bottom:0}.saved-notes-item-card .saved-notes-inset-panel.saved-notes-item-card__block--last{padding-bottom:0}.saved-notes-item-card__divider{height:0;border:none;border-top:1px solid var(--border);margin:.25rem 0}.saved-notes-item-card .gift-history-item-card:last-child,.saved-notes-item-card .gift-list>li:last-child{margin-bottom:0}.contact-card .gift-list__item,.contact-card .gift-history-item-card,.contact-card .saved-notes-item-card{background-color:var(--surface-item-card);border:1px solid var(--surface-item-card-border);box-shadow:0 2px 8px #00000008;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}.contact-card .gift-list__item:hover,.contact-card .gift-history-item-card:hover{border-color:var(--petal-500);box-shadow:var(--tf-shadow-soft)}.gift-history-item-card .icon-button:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.preference-chips{display:flex;flex-wrap:wrap;gap:.5rem}.preference-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .875rem;border-radius:9999px;border:1px solid var(--border);background-color:var(--surface-card-default);font-size:.875rem;font-weight:500;color:var(--ink-900);position:relative;transition:all .2s ease}.preference-chip--like{background-color:var(--lantern-200);border:1.5px solid var(--lantern-500)}.preference-chip--avoid{background-color:var(--petal-100);border:1.5px solid var(--petal-500)}.preference-chip:hover,.preference-chip:focus-within{box-shadow:0 2px 8px #00000014}.preference-chip:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.preference-chip__text{flex:1 1 auto;min-width:0;word-break:break-word;overflow-wrap:break-word}.preference-chip__delete{display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;min-height:28px;border-radius:50%;border:none;background:#0000000f;color:var(--ink-700);cursor:pointer;padding:0;font-size:1rem;line-height:1;transition:opacity .15s ease;flex-shrink:0;opacity:0;pointer-events:none}.preference-chip:hover .preference-chip__delete,.preference-chip:focus-within .preference-chip__delete{opacity:1;pointer-events:auto}.preference-chip__delete:hover{background:#e24a4a26;color:var(--error)}.preference-chip__delete:focus-visible{outline:2px solid var(--ring);outline-offset:2px}@media (max-width: 900px){.preference-chip__delete{opacity:1;pointer-events:auto}}.note-mini-cards{display:flex;flex-direction:column;gap:.75rem}.note-mini-card{background-color:#fef3ec;border:1px solid var(--surface-item-card-border);border-radius:.75rem;padding:.875rem 1rem;position:relative;transition:all .2s ease;cursor:pointer}.note-mini-card:hover,.note-mini-card:focus-within{border-color:var(--petal-500);box-shadow:var(--tf-shadow-soft)}.note-mini-card:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.note-mini-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;gap:.75rem}.note-mini-card__date{font-size:.8125rem;color:var(--ink-500);margin:0}.note-mini-card__content{font-size:14px;color:var(--ink-700);line-height:1.5;white-space:pre-wrap;word-break:break-word;overflow-wrap:break-word;margin:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000002e;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--surface-card-default);border-radius:1rem;border:1px solid var(--border);padding:32px 40px 28px;width:min(820px,calc(100% - 48px));box-shadow:0 24px 60px #0000001f;display:flex;flex-direction:column;gap:24px;opacity:1!important;z-index:1001;position:relative}body.modal-open{overflow:hidden}.modal__header{position:relative;margin-bottom:8px}.modal__header--centered{text-align:center}.modal__title{font-family:Quicksand,system-ui,-apple-system,sans-serif;font-size:24px;line-height:1.3;font-weight:700;color:var(--ink-900);margin:0 0 8px}.modal__subtitle{margin:0;font-size:15px;color:var(--ink-500)}.icon-button.icon-button--floating{position:absolute;top:0;right:0;border:none;background:var(--petal-100);color:var(--ink-900);border-radius:999px;width:32px;height:32px;font-size:18px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.icon-button.icon-button--floating:hover{background:var(--petal-500)}.modal__body{margin-top:4px}.modal__body--stacked{display:flex;flex-direction:column;gap:16px}.modal__placeholder-card{border-radius:1rem;background:var(--surface-inset-default);border:1px solid var(--border);padding:20px 24px;font-size:15px;color:var(--ink-500)}.modal__actions{margin-top:8px;display:flex;gap:12px}.modal__actions--right{justify-content:flex-end}.btn-primary{display:flex;align-items:center;background-color:var(--surface-card-default);border:2px solid var(--lantern-200);color:var(--ink-900);box-shadow:0 4px 10px #f4b43a4d}.btn-primary img{padding:0 4px}.btn-primary:hover{background-color:var(--lantern-200);box-shadow:0 6px 14px #f4b43a59}.btn-secondary{background-color:var(--surface-card-default);color:var(--ink-900);border-color:var(--border)}.btn-secondary:hover{background-color:var(--surface-card-hover);border-color:var(--border)}@media (max-width: 640px){.modal{width:calc(100% - 32px);padding:24px 20px 20px;border-radius:1rem}.modal__title{font-size:22px}.modal__subtitle{font-size:15px}}.mobile-tab-bar{position:fixed;bottom:0;left:0;right:0;display:none;align-items:center;justify-content:space-around;background-color:var(--tf-color-light-orange);border-top:1px solid var(--tf-color-border-subtle);padding:8px 0;padding-bottom:calc(8px + env(safe-area-inset-bottom));z-index:100;box-shadow:0 -2px 8px #0000000a}.mobile-tab-bar__item{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:none;background:transparent;padding:8px 16px;cursor:pointer;transition:background-color .12s ease,transform .12s ease;border-radius:12px;position:relative}.mobile-tab-bar__item:before{content:"";position:absolute;top:-2px;right:-2px;width:60%;height:60%;background:radial-gradient(circle at top right,rgba(248,199,90,.2),rgba(232,106,141,.15),transparent 70%);border-radius:0 12px 0 0;filter:blur(10px);opacity:0;pointer-events:none;z-index:1;transition:opacity .22s cubic-bezier(.2,.8,.2,1)}.mobile-tab-bar__item:hover:before,.mobile-tab-bar__item:focus-visible:before{opacity:.18}.mobile-tab-bar__item:focus-visible:before{opacity:.24}@media (prefers-reduced-motion: reduce){.mobile-tab-bar__item:before{transition:opacity .16s cubic-bezier(.25,.46,.45,.94)}}.mobile-tab-bar__item:hover{background-color:#ffffff80}.mobile-tab-bar__item--active:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:inherit;background:radial-gradient(circle at center,rgba(248,199,90,.25),rgba(232,106,141,.2),transparent 70%);filter:blur(12px);opacity:1;pointer-events:none;z-index:-1;transition:opacity .22s cubic-bezier(.2,.8,.2,1)}.mobile-tab-bar__item--primary{background-color:var(--petal-100);border:1px solid var(--petal-600);box-shadow:0 2px 4px #e86a8d26}.mobile-tab-bar__item--primary:hover{background-color:var(--petal-100);transform:translateY(-2px);box-shadow:0 4px 8px #e86a8d33}.mobile-tab-bar__icon{width:24px;height:24px;display:block}@media (max-width: 840px){.mobile-tab-bar{display:flex}.sidebar{display:none}.dashboard-header__logo{display:block;margin:10px 0}.app-layout__main{padding:20px 16px;padding-bottom:calc(80px + env(safe-area-inset-bottom))}.contact-detail{padding:0 0 20px!important;margin:0!important;min-width:0!important;max-width:100%!important;width:100%!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;box-sizing:border-box!important}.contact-detail__desktop>div{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.page-header{margin-bottom:24px}.page-header__title{font-size:28px}.page-header__subtitle{font-size:16px}.page-card{padding:20px 16px}.page-card__divider{margin:20px 0}.settings-section__title{font-size:18px}.settings-section__description,.settings-toggle__label{font-size:16px}.settings-section__hint{font-size:14px}}@media (min-width: 841px){.mobile-tab-bar{display:none}.sidebar{display:flex}.contact-detail{width:100%;max-width:960px}.contact-detail__mobile{display:none!important;background-color:#fff}.contact-detail__desktop{display:block!important}.contact-detail .contact-card{min-width:600px}}@media (max-width: 840px){.contact-detail{width:100%!important;max-width:100%!important}.contact-detail__mobile{display:block!important;background-color:transparent}.contact-detail__desktop{display:none!important}.contact-detail *{max-width:100%;box-sizing:border-box}.contact-detail input,.contact-detail textarea,.contact-detail select{max-width:100%;width:100%}.contact-detail__plans-notes,.contact-detail__layout,.contact-card__columns{max-width:100%;overflow-x:hidden}body{overflow-x:hidden}.app-layout,.app-layout__main{overflow-x:hidden;width:100%}.contact-detail__back{margin-bottom:12px!important}.contact-detail__header{margin-bottom:16px!important}.contact-detail__name{font-size:24px!important}.contact-detail__birthday{font-size:15px!important}.contact-section{margin-top:20px!important}.contact-section+.contact-section{padding-top:20px!important}.contact-section__title{font-size:18px!important;margin-bottom:8px!important}.contact-section__body{font-size:16px!important}.contact-section__hint{font-size:14px!important;margin-top:8px!important}.contact-card{padding:16px!important}.contact-card h2{font-size:18px!important}}.action-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:flex-end;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.action-sheet{background:var(--surface-card-default);border-radius:20px 20px 0 0;width:100%;max-width:600px;max-height:80vh;padding:0 0 calc(20px + env(safe-area-inset-bottom));box-shadow:0 -4px 24px #00000026;animation:slideUp .3s ease;display:flex;flex-direction:column;overflow:hidden}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.action-sheet__handle{width:40px;height:4px;background-color:var(--ink-500);border-radius:2px;margin:12px auto 16px;opacity:.3}.action-sheet__header{display:flex;align-items:center;justify-content:space-between;padding:0 24px 16px;border-bottom:1px solid var(--tf-color-border-subtle);position:relative}.action-sheet__title{font-family:Quicksand,system-ui,-apple-system,sans-serif;font-size:22px;font-weight:600;color:var(--ink-900);margin:0}.action-sheet__close{position:absolute;top:0;right:24px;width:32px;height:32px;border:none;background:var(--petal-100);color:var(--ink-900);border-radius:999px;font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .12s ease}.action-sheet__close:hover{background:var(--petal-500)}.action-sheet__body{padding:16px 24px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.action-sheet__action{display:flex;flex-direction:column;align-items:flex-start;padding:16px 20px;border:1px solid var(--border);background:var(--surface-card-default);border-radius:12px;cursor:pointer;transition:background-color .2s ease,transform .12s ease,box-shadow .12s ease;text-align:left;width:100%}.action-sheet__action:hover{background:var(--surface-card-hover);transform:translateY(-1px);box-shadow:var(--tf-shadow-soft)}.action-sheet__action:active{background:var(--surface-card-active)}.action-sheet__action:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.action-sheet__action-label{font-size:18px;font-weight:600;color:var(--ink-900);margin-bottom:4px}.action-sheet__action-description{font-size:16px;color:var(--ink-500)}.birthday-card-mobile{background-color:var(--surface-card-default);border-radius:1rem;border:1px solid var(--border);padding:16px;box-shadow:none;cursor:pointer;transition:background-color .2s ease,transform .12s ease;display:flex;flex-direction:column;gap:12px;margin-bottom:20px;position:relative}.birthday-card-mobile:active{background-color:var(--surface-card-active)}.birthday-card-mobile:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:inherit;background:radial-gradient(ellipse at center,rgba(248,199,90,.15),rgba(232,106,141,.1),transparent 70%);filter:blur(28px);opacity:0;pointer-events:none;z-index:-1;transition:opacity .42s cubic-bezier(.2,.8,.2,1)}@media (prefers-reduced-motion: reduce){.birthday-card-mobile:before{transition:opacity .16s cubic-bezier(.25,.46,.45,.94)}}.birthday-card-mobile:last-child{margin-bottom:0}.birthday-card-mobile__header{display:flex;flex-direction:column;gap:4px}.birthday-card-mobile__name-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.birthday-card-mobile__name{font-size:18px;font-weight:600;color:var(--ink-900);margin:0}.birthday-card-mobile__status{font-size:14px;color:var(--success);font-weight:500}.birthday-card-mobile__date{font-size:15px;color:var(--ink-500)}.birthday-card-mobile__helper{font-size:16px;color:var(--ink-500);margin:0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.birthday-card-mobile__action{margin-top:4px;display:flex;align-items:center}.birthday-card-mobile__button{margin-top:4px;min-height:44px;width:auto;display:inline-flex;align-items:center;justify-content:center}.birthday-card-mobile__actions{display:flex;gap:8px;flex-direction:column;max-height:0;opacity:0;overflow:hidden;transform:translateY(-6px);transition:max-height .26s ease,opacity .22s ease,transform .26s ease;pointer-events:none}.birthday-card-mobile__actions--open{max-height:180px;opacity:1;transform:translateY(0);pointer-events:auto}.birthday-card-mobile--expanded{background-color:var(--surface-card-hover)}.birthday-card-mobile--upcoming{padding:14px 16px}.birthday-card-mobile--upcoming .birthday-card-mobile__header{gap:6px}.upcoming-toggle{width:100%;text-align:center;background:transparent;border:none;padding:0;cursor:pointer;transition:opacity .12s ease}.upcoming-toggle:hover{opacity:.8}.upcoming-toggle__header{display:flex;justify-content:center;align-items:center;gap:8px;position:relative}.upcoming-toggle__chevron{font-size:18px;color:var(--ink-500);transition:transform .2s ease;position:absolute;right:0}@media (max-width: 840px){.card--dashboard{padding:0;margin:0;border:none;box-shadow:none;border-radius:0;background:transparent;max-width:none}.card--dashboard:focus-within{box-shadow:none}.card--dashboard:before{display:none}.dashboard-card__section-separator{margin:24px 0}.dashboard-section__title{font-size:20px}.dashboard-section__subtext{font-size:15px;margin:0 0 20px}.dashboard-section--today{padding-top:4px;padding-bottom:4px}.dashboard-section--today-empty .dashboard-section__title{font-size:16px;margin:0}.dashboard-section--today:not(.dashboard-section--today-empty) .dashboard-section__title{margin:0}.dashboard-header__text-main{font-size:24px}.dashboard-header__text-sub{font-size:15px}.birthday-list,.birthday-row,ul.birthday-list,li.birthday-row{display:none!important}.birthday-card-mobile{display:flex!important}.dashboard-section__body>ul.birthday-list{display:none!important}.dashboard-section>div.hidden.md\:block,.dashboard-section__header{display:none!important}}@media (min-width: 841px){.birthday-card-mobile,.upcoming-toggle{display:none!important}.dashboard-section--today>div.md\:hidden{display:none!important}}.floating-feedback-ctas{position:fixed;bottom:16px;left:16px;display:flex;flex-direction:column;gap:8px;z-index:1002;pointer-events:none}.floating-feedback-cta{width:48px;height:48px;border-radius:999px;border:1px solid var(--border);background-color:var(--surface-card-default);color:var(--ink-900);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--tf-shadow-soft);text-decoration:none;pointer-events:auto;transition:background-color .2s ease,box-shadow .12s ease,transform .12s ease;position:relative;isolation:isolate;overflow:hidden}.floating-feedback-cta:hover{background-color:var(--surface-card-hover)}.floating-feedback-cta:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transition:opacity .22s cubic-bezier(.2,.8,.2,1);z-index:-1;border-radius:inherit;background:radial-gradient(circle at center,rgba(248,199,90,.2),transparent 70%)}.floating-feedback-cta:hover{background-color:var(--lantern-200);box-shadow:0 6px 16px #0000001a;transform:translateY(-2px)}.floating-feedback-cta:hover:before{opacity:.18}.floating-feedback-cta:focus-visible{outline:2px solid var(--lantern-500);outline-offset:2px}.floating-feedback-cta:focus-visible:before{opacity:.24}.floating-feedback-cta:active{transform:translateY(0);opacity:.9}@media (max-width: 840px){.floating-feedback-ctas{bottom:calc(72px + env(safe-area-inset-bottom));left:16px}}@media (prefers-reduced-motion: reduce){.floating-feedback-cta{transition:background-color .16s cubic-bezier(.25,.46,.45,.94),box-shadow .16s cubic-bezier(.25,.46,.45,.94)}.floating-feedback-cta:hover{transform:none}}.ll-success-banner{padding:12px 16px;background-color:var(--ll-success-bg);color:var(--ll-success-text);border-radius:12px;font-size:14px;border:1px solid var(--ll-success-border);box-shadow:0 0 0 1px var(--ll-success-ring);display:flex;align-items:center;gap:8px;animation:fadeIn .2s ease-out}.ll-success-banner__icon{font-size:16px;color:var(--ll-success-icon);flex-shrink:0;line-height:1}.ll-success-banner__text{flex:1;min-width:0}.ll-success-banner__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;cursor:pointer;padding:4px;color:var(--ink-500);font-size:16px;line-height:1;flex-shrink:0;border-radius:4px}.ll-success-banner__close:hover{color:var(--ink-700)}.ll-success-banner__close:focus-visible{outline:2px solid var(--ring);outline-offset:2px}@media (min-width: 840px){.docked-panel-layout{display:grid;grid-template-columns:1fr 0px;column-gap:12px;transition:grid-template-columns .22s cubic-bezier(.25,.1,.25,1);min-height:0}.docked-panel-layout>*:not(.right-side-panel--docked){grid-column:1;min-width:0}.docked-panel-layout>header{grid-column:1 / -1}.docked-panel-layout>.contact-detail__back{justify-self:start;width:fit-content}.docked-panel-layout--open .card--dashboard{margin-left:0;margin-right:0;max-width:100%}.contacts-list.docked-panel-layout{max-width:1200px;margin:0 auto}.contacts-list .right-side-panel--docked{grid-row:3 / span 50;margin-top:0}.contacts-list.docked-panel-layout--open{max-width:100%;margin-left:0;margin-right:0;padding-right:16px;column-gap:24px}.contact-detail.docked-panel-layout{max-width:100%;width:100%;padding-right:16px}.contact-detail.docked-panel-layout>.contact-detail__desktop{max-width:960px;margin-left:auto;margin-right:auto;box-sizing:border-box}.contact-detail.docked-panel-layout>.contact-detail__back{max-width:960px}.contact-detail.docked-panel-layout>.ll-placeholder-layer{max-width:960px;margin-left:auto;margin-right:auto;box-sizing:border-box}.contact-detail.docked-panel-layout--open{margin-left:0;margin-right:0;column-gap:24px}.contact-detail.docked-panel-layout--open>.contact-detail__desktop,.contact-detail.docked-panel-layout--open>.ll-placeholder-layer{margin-left:0;margin-right:0}.contact-detail.docked-panel-layout--open .contact-card{min-width:0}}.right-side-panel--docked{grid-column:2;grid-row:2 / span 50;position:sticky;margin-top:24px;top:32px;height:calc(100vh - 48px);overflow:hidden;min-width:0;border:none;box-shadow:none;border-radius:1rem;will-change:contents}.right-side-panel--docked-open{border:1px solid var(--border, rgba(0, 0, 0, .04));box-shadow:0 4px 12px #0000000a}.right-side-panel__docked-inner{display:flex;flex-direction:column;height:100%;position:relative;background:var(--surface-panel, #FFF8F2);min-width:320px;border-radius:inherit;overflow:hidden}.right-side-panel__resize-handle{position:absolute;left:-4px;top:1rem;bottom:1rem;width:8px;cursor:col-resize;z-index:10;background:transparent;transition:background-color .15s ease;border-radius:4px}.right-side-panel__resize-handle:after{content:"";position:absolute;left:3px;top:50%;transform:translateY(-50%);width:2px;height:32px;border-radius:1px;background:#0000001f;opacity:0;transition:opacity .18s ease}.right-side-panel__resize-handle:hover:after,.right-side-panel__resize-handle--active:after{opacity:1}.right-side-panel__resize-handle:hover,.right-side-panel__resize-handle--active{background:#0000000a}.right-side-panel__resize-handle:focus-visible{outline:2px solid var(--ring, #F8C75A);outline-offset:-2px}.right-side-panel__header{padding:16px 24px 24px;border-bottom:1px solid rgba(0,0,0,.06);flex-shrink:0;background:var(--surface-panel, #FFF8F2)}.right-side-panel__header--docked{position:sticky;top:0;z-index:5;border-radius:1rem 1rem 0 0}.right-side-panel__title{font-size:20px;font-weight:600;font-family:Quicksand,system-ui,sans-serif;margin:0;color:var(--ink-900, #1B1B22)}.right-side-panel__subtitle{font-size:.9rem;color:#3e3a38cc;margin:.25rem 0 0}.right-side-panel__close-btn{background:transparent;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .12s ease;flex-shrink:0}.right-side-panel__close-btn:hover{background-color:#0000000d}.right-side-panel__close-btn:focus-visible{outline:2px solid var(--ring, #F8C75A);outline-offset:2px}.right-side-panel__content--docked{flex:1;overflow-y:auto;overflow-x:hidden;padding:24px;-webkit-overflow-scrolling:touch}.right-side-panel--mobile{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:90vw;background-color:var(--surface-panel, #FFF8F2);border-left:1px solid rgba(0,0,0,.06);box-shadow:0 12px 30px #00000014;z-index:1000;transform:translate(100%);transition:transform .3s ease-out;display:flex;flex-direction:column;overflow:hidden}.right-side-panel--mobile-open{transform:translate(0)}@media (max-width: 768px){.right-side-panel--mobile{top:auto;right:0;bottom:0;left:0;width:100%;max-width:100%;max-height:80vh;border-left:none;border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #0000001f;transform:translateY(100%);transition:transform .3s ease-out}.right-side-panel--mobile-open{transform:translateY(0)}.right-side-panel__drag-handle{display:block!important}.right-side-panel__content--mobile{padding-bottom:env(safe-area-inset-bottom,24px)}}.right-side-panel__drag-handle{width:40px;height:4px;border-radius:2px;background-color:#0003;margin:0 auto 12px;display:none}.right-side-panel__content--mobile{flex:1;overflow-y:auto;padding:24px;-webkit-overflow-scrolling:touch}.right-side-panel__backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0000004d;z-index:999;animation:rightSidePanelFadeIn .2s ease-out}@keyframes rightSidePanelFadeIn{0%{opacity:0}to{opacity:1}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:root{--dur-xs: .16s;--dur-sm: .22s;--dur-md: .42s;--dur-lg: .7s;--dur-xl: 1.2s;--ease-soft: cubic-bezier(.2, .8, .2, 1);--ease-standard: cubic-bezier(.16, 1, .3, 1);--ease-fade: cubic-bezier(.25, .46, .45, .94);--glow-ambient-opacity: .08;--glow-hover-opacity: .18;--glow-focus-opacity: .24;--glow-blur-sm: 10px;--glow-blur-md: 18px;--glow-blur-lg: 28px;--glow-spread: 8px;--glow-a: var(--lantern-500);--glow-b: var(--petal-500);--glow-c: var(--mist-500)}@media (prefers-reduced-motion: reduce){:root{--dur-xs: .16s;--dur-sm: .16s;--dur-md: .16s;--dur-lg: .16s;--dur-xl: .16s}}.ll-transition-soft{transition:opacity var(--dur-md) var(--ease-soft),transform var(--dur-md) var(--ease-soft)}@media (prefers-reduced-motion: reduce){.ll-transition-soft{transition:opacity var(--dur-xs) var(--ease-fade);transform:none!important}}.btn-primary.ll-glow-cta,.btn-secondary.ll-glow-cta,.ll-glow-cta{position:relative!important;overflow:visible!important;isolation:auto!important}.btn-primary.ll-glow-cta:before{content:""!important;position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;pointer-events:none!important;opacity:0!important;transition:opacity var(--dur-md) var(--ease-soft)!important;z-index:-1!important;border-radius:inherit!important;overflow:hidden!important}.btn-primary.ll-glow-cta:after{content:""!important;position:absolute!important;top:-12px!important;right:-12px!important;bottom:-12px!important;left:-12px!important;pointer-events:none!important;opacity:0!important;transition:opacity var(--dur-md) var(--ease-soft)!important;z-index:-1!important;border-radius:inherit!important}.btn-secondary.ll-glow-cta,.ll-glow-cta{overflow:visible}.btn-secondary.ll-glow-cta:before,.ll-glow-cta:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transition:opacity var(--dur-md) var(--ease-soft);z-index:-1;border-radius:inherit;overflow:hidden}.btn-secondary.ll-glow-cta:after,.ll-glow-cta:after{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px;pointer-events:none;opacity:0;transition:opacity var(--dur-md) var(--ease-soft);z-index:-1;border-radius:inherit}.btn-primary.ll-glow-cta:before{background:radial-gradient(circle at center,rgba(248,199,90,.3),transparent 70%)!important;border-radius:inherit!important}.btn-secondary.ll-glow-cta:before,.ll-glow-cta:before{background:radial-gradient(circle at center,rgba(248,199,90,.3),transparent 70%);border-radius:inherit}.btn-primary.ll-glow-cta:after{background:linear-gradient(135deg,var(--glow-a) 0%,var(--glow-b) 50%,var(--glow-a) 100%)!important;background-size:200% 200%!important;filter:blur(var(--glow-blur-md))!important;transform:none!important;border-radius:inherit!important;opacity:0!important}.btn-secondary.ll-glow-cta:after,.ll-glow-cta:after{background:linear-gradient(135deg,var(--glow-a) 0%,var(--glow-b) 50%,var(--glow-a) 100%);background-size:200% 200%;filter:blur(var(--glow-blur-md));transform:none;border-radius:inherit;opacity:0}.btn-primary.ll-glow-cta:hover:before,.btn-primary.ll-glow-cta:hover:after{opacity:var(--glow-hover-opacity)!important;transition:opacity var(--dur-md) var(--ease-soft)!important}.btn-primary.ll-glow-cta:hover:after{animation:ll-glow-drift .8s var(--ease-soft) infinite!important}.btn-secondary.ll-glow-cta:hover:before,.btn-secondary.ll-glow-cta:hover:after,.ll-glow-cta:hover:before,.ll-glow-cta:hover:after{opacity:var(--glow-hover-opacity);transition:opacity var(--dur-md) var(--ease-soft)}.btn-secondary.ll-glow-cta:hover:after,.ll-glow-cta:hover:after{animation:ll-glow-drift .8s var(--ease-soft) infinite}.btn-primary.ll-glow-cta:focus-visible:before,.btn-primary.ll-glow-cta:focus-visible:after{opacity:var(--glow-focus-opacity)!important;transition:opacity var(--dur-md) var(--ease-soft)!important}.btn-primary.ll-glow-cta:focus-visible:after{animation:ll-glow-drift .8s var(--ease-soft) infinite!important}.btn-secondary.ll-glow-cta:focus-visible:before,.btn-secondary.ll-glow-cta:focus-visible:after,.ll-glow-cta:focus-visible:before,.ll-glow-cta:focus-visible:after{opacity:var(--glow-focus-opacity);transition:opacity var(--dur-md) var(--ease-soft)}.btn-secondary.ll-glow-cta:focus-visible:after,.ll-glow-cta:focus-visible:after{animation:ll-glow-drift .8s var(--ease-soft) infinite}.btn-primary.ll-glow-cta:active{opacity:.9!important}.btn-primary.ll-glow-cta:active:before,.btn-primary.ll-glow-cta:active:after{opacity:calc(var(--glow-hover-opacity) * .7)!important;filter:blur(calc(var(--glow-blur-md) * .9))!important}.btn-secondary.ll-glow-cta:active,.ll-glow-cta:active{opacity:.9}.btn-secondary.ll-glow-cta:active:before,.btn-secondary.ll-glow-cta:active:after,.ll-glow-cta:active:before,.ll-glow-cta:active:after{opacity:calc(var(--glow-hover-opacity) * .7);filter:blur(calc(var(--glow-blur-md) * .9))}@keyframes ll-glow-drift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@media (prefers-reduced-motion: reduce){.btn-primary.ll-glow-cta:before,.btn-primary.ll-glow-cta:after,.btn-secondary.ll-glow-cta:before,.btn-secondary.ll-glow-cta:after,.ll-glow-cta:before,.ll-glow-cta:after{transition:opacity var(--dur-xs) var(--ease-fade)}.btn-primary.ll-glow-cta:after,.btn-secondary.ll-glow-cta:after,.ll-glow-cta:after{animation:none!important;background-position:50% 50%}.btn-primary.ll-glow-cta:hover:after,.btn-primary.ll-glow-cta:focus-visible:after,.btn-secondary.ll-glow-cta:hover:after,.btn-secondary.ll-glow-cta:focus-visible:after,.ll-glow-cta:hover:after,.ll-glow-cta:focus-visible:after{animation:none!important}}.contact-card.ll-glow-card,.birthday-card-mobile.ll-glow-card,.card.ll-glow-card,.ll-glow-card{position:relative;transition:box-shadow var(--dur-md) var(--ease-soft)}.contact-card.ll-glow-card:before,.birthday-card-mobile.ll-glow-card:before,.card.ll-glow-card:before,.ll-glow-card:before{content:"";position:absolute;inset:calc(-1 * var(--glow-spread));border-radius:inherit;background:radial-gradient(ellipse at center,rgba(248,199,90,.15),rgba(232,106,141,.1),transparent 70%);filter:blur(var(--glow-blur-lg));opacity:0;pointer-events:none;z-index:-1;transition:opacity var(--dur-md) var(--ease-soft),transform var(--dur-md) var(--ease-soft);transform:translate(0)}.contact-card.ll-glow-card:focus-within,.birthday-card-mobile.ll-glow-card:focus-within,.card.ll-glow-card:focus-within,.ll-glow-card:focus-within{box-shadow:0 12px 32px #00000014,0 0 0 1px #f8c75a1a}.contact-card.ll-glow-card:focus-within:before,.birthday-card-mobile.ll-glow-card:focus-within:before,.card.ll-glow-card:focus-within:before,.ll-glow-card:focus-within:before{opacity:var(--glow-hover-opacity);transform:translateY(2px)}@media (prefers-reduced-motion: reduce){.contact-card.ll-glow-card:before,.birthday-card-mobile.ll-glow-card:before,.card.ll-glow-card:before,.ll-glow-card:before{transition:opacity var(--dur-xs) var(--ease-fade)}}.ll-nav-corner-glow{position:relative}.ll-nav-corner-glow:before{content:"";position:absolute;top:-2px;right:-2px;width:60%;height:60%;background:radial-gradient(circle at top right,rgba(248,199,90,.2),rgba(232,106,141,.15),transparent 70%);border-radius:0 12px 0 0;filter:blur(var(--glow-blur-sm));opacity:0;pointer-events:none;z-index:1;transition:opacity var(--dur-sm) var(--ease-soft)}.ll-nav-corner-glow:hover:before,.ll-nav-corner-glow:focus-visible:before{opacity:var(--glow-hover-opacity)}.ll-nav-corner-glow:focus-visible:before{opacity:var(--glow-focus-opacity)}@media (prefers-reduced-motion: reduce){.ll-nav-corner-glow:before{transition:opacity var(--dur-xs) var(--ease-fade)}}.ll-loader-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff9f1;pointer-events:none;z-index:9999;display:flex;align-items:center;justify-content:center;opacity:0;animation:ll-loader-fade-in var(--dur-sm) var(--ease-fade) forwards}.ll-loader-overlay:not(.ll-loader-overlay--hidden){opacity:1!important}.ll-loader-card-wrap{width:100%;max-width:360px;padding:1rem}.ll-loader-overlay.ll-loader-overlay--hidden{animation:ll-loader-fade-out var(--dur-md) var(--ease-soft) forwards}@keyframes ll-loader-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ll-loader-fade-out{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.ll-loader-overlay{animation:ll-loader-fade-in var(--dur-xs) var(--ease-fade) forwards}.ll-loader-overlay.ll-loader-overlay--hidden{animation:ll-loader-fade-out var(--dur-xs) var(--ease-fade) forwards}}@keyframes ll-slide-in-left{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@keyframes ll-slide-in-right{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.birthday-row .birthday-row__name-container{animation:ll-slide-in-left var(--dur-md) var(--ease-soft) forwards;opacity:0}.birthday-row .birthday-row__right{animation:ll-slide-in-right var(--dur-md) var(--ease-soft) forwards;opacity:0}@keyframes ll-fade-in{0%{opacity:0}to{opacity:1}}.birthday-card-mobile{animation:ll-fade-in var(--dur-md) var(--ease-soft) forwards;opacity:0}@media (prefers-reduced-motion: reduce){.birthday-row .birthday-row__name-container,.birthday-row .birthday-row__right,.birthday-card-mobile{animation:none!important;opacity:1!important;transform:none!important}}@keyframes contact-drawer-fade-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes contact-drawer-cta-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.contact-drawer,.contact-drawer-cta,.contactRowDrawer{animation:none!important;opacity:1!important;transform:none!important}}@keyframes dashboard-card-fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.dashboard-loading-card{animation:dashboard-card-fade-in var(--dur-md) var(--ease-soft) forwards;opacity:0}.ll-placeholder-layer .dashboard-loading-card{animation:none;opacity:1}@media (prefers-reduced-motion: reduce){.dashboard-loading-card{animation:none!important;opacity:1!important;transform:none!important}}.dashboard-loading-skeleton,.ll-skeleton-line,.ll-skeleton-pill,.ll-skeleton-avatar{background:linear-gradient(100deg,#fff6edd9,#fff3e8eb 45%,#fff6edd9);background-size:180% 100%;animation:ll-skeleton-shimmer 2.2s ease-in-out infinite;border-radius:4px;filter:blur(.5px);opacity:.88}.dashboard-loading-skeleton--name,.ll-skeleton-line--name{height:22px;width:140px}.dashboard-loading-skeleton--status,.ll-skeleton-pill{height:18px;width:60px;border-radius:999px}.dashboard-loading-skeleton--text,.ll-skeleton-line{height:16px;margin-bottom:8px}.dashboard-loading-skeleton--button,.ll-skeleton-line--button{height:44px;width:100%;border-radius:8px}.ll-skeleton-avatar{width:40px;height:40px;border-radius:50%}@keyframes ll-skeleton-shimmer{0%,to{background-position:100% 0}50%{background-position:-80% 0}}@media (prefers-reduced-motion: reduce){.dashboard-loading-skeleton,.ll-skeleton-line,.ll-skeleton-pill,.ll-skeleton-avatar{animation:none!important;background:#fff6ede6}}.ll-placeholder-layer,.ll-content-layer{transition:opacity var(--dur-md) var(--ease-soft)}.ll-content-reveal{animation:ll-content-fade-in var(--dur-md) var(--ease-soft) forwards}@keyframes ll-content-fade-in{0%{opacity:0}to{opacity:1}}tr.contact-row:not(.contact-row--expanded):hover{background:radial-gradient(ellipse 180% 120% at 8% 50%,rgba(255,200,140,.25),rgba(255,200,140,.12) 40%,transparent 70%),linear-gradient(180deg,#fff3e466,#fffaf299);transition:background var(--dur-sm) var(--ease-soft)}.contact-row>td.contact-row__cell{padding:8px 0;border-bottom:0;vertical-align:top}.contact-row-root{border-radius:0;box-shadow:none;background:transparent;overflow:hidden;transition:border-radius var(--dur-md) var(--ease-soft),box-shadow var(--dur-md) var(--ease-soft)}.contact-row-root.contactSurface{--contact-surface-bg: radial-gradient( 120% 90% at 30% -25%, rgba(255, 200, 140, .32), transparent 60% ), linear-gradient( 180deg, rgba(255, 243, 228, .96), rgba(255, 250, 242, 1) );background:var(--contact-surface-bg);border-radius:18px;box-shadow:inset 0 0 0 1px #ffbe7838}.contact-row-drawer-wrap{max-height:0;overflow:hidden;transition:max-height var(--dur-md) var(--ease-soft)}.contact-row-drawer-wrap--expanded{max-height:140px}.contact-row-drawer-wrap--expanded .contactRowDrawer{opacity:0;transform:translateY(-8px);animation:contact-drawer-fade-in var(--dur-md) var(--ease-soft) forwards}.contact-row-drawer-wrap--expanded .contact-drawer-cta{opacity:0;transform:translateY(8px);animation:contact-drawer-cta-fade-in var(--dur-lg) var(--ease-soft) forwards}@media (prefers-reduced-motion: reduce){.contact-row-root,.contact-row-drawer-wrap{transition-duration:var(--dur-xs)}.contact-row-drawer-wrap--expanded{max-height:140px}}.contact-group-row>td.contact-group-row__cell{padding:8px 0;border-bottom:0}.contactSurface{--contact-surface-bg: radial-gradient( 120% 90% at 30% -25%, rgba(255, 200, 140, .32), transparent 60% ), linear-gradient( 180deg, rgba(255, 243, 228, .96), rgba(255, 250, 242, 1) );background:var(--contact-surface-bg);border-radius:18px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffbe7838}.contactRowTop{padding:16px 18px}.contactRowDrawer{padding:14px 18px 18px;display:flex;gap:12px;justify-content:flex-start;box-shadow:inset 0 1px #ffbe782e}
