:root{--brand-orange:#db5500;--brand-blue:#91c9f6;--brand-sage:#cdd6bc;--brand-green:#73762a;--color-canvas:#fff8ee;--color-canvas-deep:#f7ecd9;--color-cream:oklch(98% .018 85);--color-page-bg:var(--brand-orange);--color-paper:#fffdf8;--color-paper-soft:#f7f0e2;--color-paper-2:#edf3e4;--color-paper-3:#dde5d1;--color-rule:oklch(84% .03 100);--color-rule-deep:oklch(74% .035 100);--color-border:oklch(58% .048 115);--color-neutral:oklch(46% .055 112);--color-muted:oklch(40% .05 108);--color-ink:oklch(20% .045 55);--color-accent:var(--brand-orange);--color-accent-hover:color-mix(in oklch, var(--brand-orange) 84%, black 16%);--color-accent-ink:var(--color-ink);--color-accent-2:var(--brand-blue);--color-accent-2-ink:var(--color-ink);--color-link:#005d9a;--color-link-hover:#00497f;--color-success:oklch(47% .095 111);--color-focus:var(--color-link);--color-danger:oklch(48% .19 27);--ring-inset:inset 0 0 0 1px oklch(20% .045 55/.22);--font-display:"Playpen Sans Thai", "Chonburi", ui-rounded, sans-serif;--font-display-serif:"Noto Serif Thai", "Trirong", ui-serif, serif;--font-body:"IBM Plex Sans Thai", "Noto Sans Thai", ui-sans-serif, sans-serif;--text-xs:.72rem;--text-sm:.85rem;--text-base:1rem;--text-md:1.2rem;--text-lg:1.5rem;--text-xl:1.95rem;--text-2xl:2.4rem;--text-display:clamp(2rem, 4vw + 1rem, 3.4rem);--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.25rem;--space-2xl:3.5rem;--radius-sm:.65rem;--radius-md:1.1rem;--radius-lg:1.5rem;--radius-full:999px;--tracking-eyebrow:.07em;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.13s;--dur-base:.2s;--shadow-card:0 1px 2px oklch(20% .045 55/.06), 0 8px 18px oklch(20% .045 55/.09);--shadow-card-lift:0 4px 10px oklch(20% .045 55/.1), 0 16px 30px oklch(20% .045 55/.13);--shadow-panel:0 2px 4px oklch(20% .045 55/.06), 0 20px 40px oklch(20% .045 55/.1);--tabbar-height:4rem;--tabbar-height-safe:calc(var(--tabbar-height) + env(safe-area-inset-bottom,0px));--fab-size:3.5rem}*{box-sizing:border-box}html,body{overflow-x:clip}html{background:var(--color-page-bg)}body{font-family:var(--font-body);background:var(--color-page-bg);color:var(--color-ink);font-size:var(--text-base);margin:0;line-height:1.55}h1,h2,h3{font-family:var(--font-display);margin:0;font-style:normal;font-weight:700;line-height:1.15}a{color:var(--color-link)}button,input,textarea,select{font-family:inherit;font-size:var(--text-base);color:inherit}:focus-visible{outline:2.5px solid var(--color-focus);outline-offset:2px;transition:none}button,.btn{cursor:pointer;border:1.5px solid var(--color-border);background:var(--color-paper-2);color:var(--color-ink);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-md);transition:transform var(--dur-fast) var(--ease-out), background-color var(--dur-base) var(--ease-out);text-align:center;text-decoration:none;display:inline-block}button:hover,.btn:hover{background:var(--color-paper-3)}button:active,.btn:active{transform:scale(.97)}button:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn--accent{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent);font-weight:600}.btn--accent:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn--danger-text{color:var(--color-danger);border-color:var(--color-danger);background:0 0}.btn--danger-text:hover{background:oklch(48% .19 27/.08)}.link-btn{color:var(--color-link);padding:var(--space-2xs) 0;text-underline-offset:3px;background:0 0;border:none;text-decoration:underline}.link-btn:hover{background:0 0}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.center-page{justify-content:center;align-items:center;gap:var(--space-md);text-align:center;min-height:100vh;padding:var(--space-lg);color:var(--color-ink);flex-direction:column;display:flex}.center-page h1{color:var(--color-cream);font-family:var(--font-display-serif)}.login-page h1{font-size:var(--text-2xl)}.login-page__mascot{object-fit:contain;width:140px;height:auto;margin:0 auto}.line-login-button{color:#fff;padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-full);box-shadow:var(--shadow-card);transition:transform var(--dur-fast) var(--ease-out);background:#06c755;font-weight:700;text-decoration:none}.line-login-button:hover{transform:translateY(-1px)}.calendar-links{gap:var(--space-sm);margin-top:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}.duplicate-notice{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);background:#0000000f;font-size:.85rem}.data-page{padding:var(--space-md);gap:var(--space-lg);flex-direction:column;display:flex}.data-section{padding:var(--space-md);border-radius:var(--radius-md);gap:var(--space-sm);background:#0000000a;flex-direction:column;display:flex}.data-section--danger{background:#b4282814}.data-section__note{opacity:.8;font-size:.9rem}.data-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.data-field{flex-direction:column;gap:4px;font-size:.9rem;display:flex}.data-toggle{align-items:center;gap:var(--space-xs);display:flex}.data-status{text-align:center}.bulk-category-select{border-radius:var(--radius-full);padding:4px 10px;font-size:.85rem}.rsvp-row{align-items:center;gap:clamp(3px, 2cqw, var(--space-xs));width:100%;margin-top:var(--space-xs);flex-wrap:nowrap;display:flex;container-type:inline-size}.rsvp-row__label{text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0;overflow:hidden}.rsvp-pill{text-overflow:ellipsis;flex-shrink:1;min-width:0;overflow:hidden}.rsvp-row__label{opacity:.75;font-size:clamp(.7rem,3.2cqw,.85rem)}.rsvp-pill{border-radius:var(--radius-full);cursor:pointer;background:0 0;border:1px solid #0003;padding:clamp(1px,.8cqw,2px) clamp(5px,2.6cqw,10px);font-size:clamp(.68rem,3cqw,.8rem)}.rsvp-pill--active{background:var(--color-accent);color:var(--color-accent-ink);border-color:#0000}.avatar--declined{opacity:.4;filter:grayscale()}.item-card__pin{margin-inline-end:4px}.subscribe-closed{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);text-align:center;background:#0000000f;font-weight:600}.login-error{max-width:320px;margin:0 auto var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-md);background:#00000014;font-size:.9rem}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{z-index:20;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-lg);background:var(--color-canvas);border-bottom:1px solid var(--color-rule);flex-direction:column;display:flex;position:sticky;top:0}.app-header__top{justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;width:min(1000px,100%);margin:0 auto;display:flex}.app-header .brand{align-items:center;gap:var(--space-2xs);font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);color:var(--brand-orange);line-height:1.1;display:flex}.brand__mark{color:var(--brand-orange);flex-shrink:0}.app-header__nav{display:none}@media (width>=768px){.app-header__nav{justify-content:center;gap:var(--space-xs);flex-wrap:wrap;width:min(1000px,100%);margin:0 auto;display:flex}}.app-header__nav a{color:var(--color-ink);padding:var(--space-2xs) var(--space-md);border-radius:var(--radius-full);border:1.5px solid #0000;font-weight:700;text-decoration:none}.app-header__nav a:hover{border-color:var(--color-ink)}.app-header__nav a.active{background:var(--color-paper-2);color:var(--color-ink);border-color:var(--brand-orange)}.user-menu{align-items:center;gap:var(--space-xs);font-size:var(--text-sm);color:var(--color-ink);font-weight:600;display:flex}.user-menu .avatar{border:2px solid var(--brand-orange);border-radius:50%;width:30px;height:30px}.user-menu__identity{align-items:center;gap:var(--space-xs);color:inherit;text-decoration:none;display:flex}.user-menu__identity:hover{text-decoration:underline}.plan-badge{color:var(--color-ink);background:var(--brand-orange);padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-full);font-weight:700;font-size:var(--text-xs);text-decoration:none}.plan-badge--subscriber{background:var(--brand-sage)}.app-content{width:min(1000px, 100% - 2 * var(--space-lg));margin:var(--space-lg) auto var(--space-xl);padding:var(--space-lg);background:var(--color-paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel)}@media (width>=768px){.app-content{padding:var(--space-xl)}}@media (width<=767px){.app-content{margin-bottom:calc(var(--tabbar-height-safe) + var(--space-lg))}}.empty-state{color:var(--color-muted);text-align:center;padding:var(--space-2xl) 0}.bottom-nav{z-index:30;height:var(--tabbar-height-safe);padding-bottom:env(safe-area-inset-bottom,0px);background:var(--color-paper);border-top:1px solid var(--color-rule);align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 16px oklch(20% .045 55/.08)}@media (width>=768px){.bottom-nav{display:none}}.bottom-nav__item{min-height:44px;height:var(--tabbar-height);color:var(--color-muted);transition:color var(--dur-base) var(--ease-out);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.64rem;font-weight:700;text-decoration:none;display:flex}.bottom-nav__icon{display:flex}.bottom-nav__item.active{color:var(--color-accent-hover)}.bottom-nav__fab-wrap{display:contents}.bottom-nav__fab{left:50%;bottom:calc(var(--tabbar-height-safe) - var(--fab-size) / 2 - 2px);width:var(--fab-size);height:var(--fab-size);background:var(--color-accent);color:var(--color-accent-ink);box-shadow:var(--shadow-card-lift);border:3px solid var(--color-paper);transition:transform var(--dur-fast) var(--ease-out), background-color var(--dur-base) var(--ease-out);border-radius:50%;justify-content:center;align-items:center;text-decoration:none;display:flex;position:absolute;transform:translate(-50%)}.bottom-nav__fab:hover{background:var(--color-accent-hover)}.bottom-nav__fab:active{transform:translate(-50%)scale(.94)}.add-menu{left:50%;bottom:calc(var(--tabbar-height-safe) + var(--fab-size) / 2 + var(--space-sm));align-items:center;gap:var(--space-2xs);padding:var(--space-sm);flex-direction:column;width:max-content;display:flex;position:absolute;transform:translate(-50%)}.add-menu__item.type-tile{width:auto;padding:var(--space-sm) var(--space-md);transition:background-color var(--dur-base) var(--ease-out);flex-direction:row;justify-content:center;text-decoration:none}.add-menu__item.type-tile:hover{background:var(--color-paper-3)}@starting-style{.add-menu{opacity:0;transform:translate(-50%)translateY(6px)}}.add-menu{opacity:1;transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out)}.page-hero{align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);display:flex}.page-hero__mascot{flex-shrink:0;width:64px;height:auto}.page-hero__copy{min-width:0}.page-hero__hello{font-family:var(--font-display-serif);font-weight:600;font-size:var(--text-lg);color:var(--color-ink);margin:0 0 var(--space-2xs)}.mascot-callout{object-fit:contain;display:block}.remember-page__intro{color:var(--color-muted);max-width:60ch;margin:0}.remember-page__search{align-items:stretch;gap:var(--space-sm);margin-bottom:var(--space-lg);flex-direction:column;display:flex}.hashtag-search-suggestions{justify-content:center;gap:var(--space-2xs);flex-wrap:wrap;max-width:46ch;margin:0 auto;display:flex}.search-bar-wrap{align-items:center;display:flex;position:relative}.search-bar-icon{left:var(--space-md);color:var(--color-muted);pointer-events:none;position:absolute}.search-bar{padding:var(--space-sm) var(--space-lg) var(--space-sm) calc(var(--space-lg) + 1.4rem);border:1.5px solid var(--color-rule);border-radius:var(--radius-full);background:var(--color-paper-2);text-align:left;width:100%;transition:border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out)}.search-bar:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px oklch(56% .19 43/.14)}.ai-chat-panel{margin-bottom:var(--space-lg);padding:var(--space-md) var(--space-lg);background:var(--color-paper-2);border:1px solid var(--color-rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);position:relative}.ai-chat-panel__eyebrow{font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);color:var(--brand-orange);margin-bottom:var(--space-xs);display:block}.ai-chat-panel--upsell{justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.ai-chat-panel--upsell .ai-chat-panel__eyebrow{flex-basis:100%}.ai-chat-panel--upsell p{color:var(--color-muted);margin:0}.ai-chat-history{margin-bottom:var(--space-sm);max-height:40vh;overflow-y:auto}.ai-chat-turn{margin-bottom:var(--space-sm)}.ai-chat-query{color:var(--color-muted);margin:0 0 var(--space-xs)}.ai-chat-answer{margin:0}.ai-chat-refs{gap:var(--space-xs);margin-top:var(--space-xs);flex-wrap:wrap;display:flex}.ai-chat-ref-chip{padding:2px var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--text-sm)}.ai-chat-form{gap:var(--space-sm);display:flex}.ai-chat-form textarea{padding:var(--space-sm) var(--space-md);border:1.5px solid var(--color-rule);border-radius:var(--radius-full);background:var(--color-paper);resize:none;font:inherit;font-size:var(--text-sm);white-space:nowrap;flex:1;overflow:hidden}.ai-chat-form textarea:focus{border-color:var(--color-accent)}.ai-chat-error{margin:var(--space-sm) 0 0;color:var(--color-danger)}.filter-group{margin-bottom:var(--space-md)}.filter-group__label{font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--color-muted);margin-bottom:var(--space-sm);display:block}.filter-group__header{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.filter-group__header .filter-group__label{margin-bottom:0}.filter-group__manage-btn{color:var(--color-link);font-family:var(--font-display);font-size:var(--text-sm);text-underline-offset:3px;padding:0 0 var(--space-xs);background:0 0;border:none;text-decoration:underline}.filter-group__manage-btn:hover{background:0 0}.type-tabs{gap:var(--space-2xs);flex-wrap:wrap;display:flex}.tab{padding:var(--space-2xs) var(--space-md);border-radius:var(--radius-full);border:1.5px solid var(--color-border);background:var(--color-paper-2);font-size:var(--text-sm)}.tab--active{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent);font-weight:600}.tab--active:hover{background:var(--color-accent-hover)}.type-tiles{gap:var(--space-sm);margin-bottom:var(--space-sm);grid-template-columns:repeat(4,1fr);display:grid}.type-tile{justify-content:center;align-items:center;gap:var(--space-2xs);padding:var(--space-sm) var(--space-2xs);border-radius:var(--radius-md);border:1.5px solid var(--color-rule);background:var(--color-paper-2);color:var(--color-ink);font-size:var(--text-xs);flex-direction:column;font-weight:600;display:flex}.type-tile__icon{color:inherit}.type-tile--active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}.archive-tab{justify-content:center;align-items:center;gap:var(--space-xs);width:100%;padding:var(--space-sm);border-radius:var(--radius-full);border:1.5px solid var(--color-rule);background:var(--color-paper-2);color:var(--color-ink);font-size:var(--text-sm);font-weight:600;display:flex}.archive-tab__icon{color:inherit}.archive-tab--active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}.filter-bar{gap:var(--space-2xs);flex-wrap:wrap;display:flex}.chip--toggle{color:var(--color-muted);background:0 0;border-style:dashed}.chip--toggle:hover{background:var(--color-paper-3)}.chip{padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-full);border:1.5px solid var(--color-border);box-shadow:var(--ring-inset);background:var(--color-paper-2);font-size:var(--text-sm)}.chip--active{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent)}.chip--active:hover{background:var(--color-accent-hover)}.remember-page__manager{background:var(--color-paper-2);border:1px solid var(--color-rule);border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-lg)}.remember-page__status{color:var(--color-muted)}.remember-page__toolbar{justify-content:flex-end;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.bulk-tray{background:var(--color-paper-soft);border:1px solid var(--color-rule);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);justify-content:flex-start}.remember-page__selected-count{color:var(--color-muted);font-size:var(--text-sm)}.remember-page__share-status{color:var(--color-success);font-size:var(--text-sm);font-weight:600}.remember-page__archive-note{color:var(--color-muted);font-size:var(--text-sm);margin-top:calc(-1 * var(--space-sm));margin-bottom:var(--space-md)}.item-card-checkbox{margin-right:var(--space-xs);vertical-align:middle;accent-color:var(--color-accent)}.item-card--selected{outline:2.5px solid var(--color-accent);outline-offset:2px;cursor:pointer}.item-card-share{color:var(--color-link);font-size:var(--text-sm);background:0 0;border:none;margin-left:auto;padding:0;font-weight:600}.item-card-share:hover{background:0 0;text-decoration:underline}.item-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));display:grid}.item-card{background:var(--color-paper);border-radius:var(--radius-md);padding:var(--space-md);color:inherit;border:1px solid var(--color-rule-deep);box-shadow:var(--shadow-card);transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);text-decoration:none;display:block}.item-card:hover{border-color:var(--brand-orange);box-shadow:var(--shadow-card-lift);transform:translateY(-2px)}.item-card:active{transform:translateY(-1px)scale(.99)}.item-card-type{font-size:var(--text-xs);color:var(--color-muted);margin-bottom:var(--space-xs)}.item-card-thumb{object-fit:cover;border-radius:var(--radius-sm);width:100%;height:140px;margin-bottom:var(--space-xs)}.item-card-body{font-size:var(--text-sm);margin-bottom:var(--space-sm);word-break:break-word;overflow-wrap:anywhere}.item-card-body--clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.item-card-footer{font-size:var(--text-xs);color:var(--color-muted);justify-content:space-between;align-items:center;gap:var(--space-xs);flex-wrap:wrap;display:flex}.category-chip{padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-full);color:var(--color-accent-2-ink);background:var(--color-accent-2);box-shadow:var(--ring-inset);font-size:var(--text-xs);font-weight:600}.category-chip--none{background:var(--color-paper-3);color:var(--color-muted)}.item-card-hashtags{gap:var(--space-2xs);margin-bottom:var(--space-xs);flex-wrap:wrap;display:flex}.hashtag-chip{padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-full);background:var(--color-paper-3);color:var(--color-link);font-size:var(--text-xs);border:none;font-weight:600}.hashtag-chip--clickable{cursor:pointer}.hashtag-chip--clickable:hover{background:var(--color-accent-2)}.hashtag-page__heading{margin:var(--space-md) 0 var(--space-lg)}.hashtag-editor{align-items:center;gap:var(--space-xs);margin:var(--space-sm) 0;flex-wrap:wrap;display:flex}.hashtag-chip--removable{align-items:center;gap:var(--space-2xs);display:inline-flex}.hashtag-chip__remove{color:inherit;cursor:pointer;font-size:var(--text-sm);background:0 0;border:none;padding:0;line-height:1}.hashtag-editor__input{padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-sm);border:1.5px solid var(--color-border);background:var(--color-paper);font-size:var(--text-sm)}.hashtag-editor__add-row{align-items:center;gap:clamp(3px, 2cqw, var(--space-xs));margin:var(--space-sm) 0;flex-wrap:nowrap;display:flex;container-type:inline-size}.hashtag-editor__add-row .hashtag-editor__input{flex:auto;min-width:0}.hashtag-editor__add-row .btn--small{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:clamp(2px, 1cqw, var(--space-2xs)) clamp(4px, 2cqw, var(--space-sm));font-size:clamp(.62rem, 2.6cqw, var(--text-xs));flex-shrink:1;overflow:hidden}.hashtag-editor-block{margin:var(--space-md) 0}.hashtag-suggest{margin-top:var(--space-xs);gap:var(--space-xs);flex-direction:column;align-items:flex-start;display:flex}.hashtag-suggest__result{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.btn--small{padding:var(--space-2xs) var(--space-sm);font-size:var(--text-xs)}.category-manager__form{gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap;align-items:center;display:flex}.category-manager__input{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);border:1.5px solid var(--color-border);background:var(--color-paper)}.category-manager__swatches{gap:var(--space-2xs);display:flex}.swatch{width:26px;height:26px;box-shadow:var(--ring-inset);border:2px solid #0000;border-radius:50%;padding:0}.swatch--active{border-color:var(--color-ink)}.category-manager__empty{color:var(--color-muted)}.category-manager__error{margin:var(--space-sm) 0 0;color:var(--color-danger)}.category-manager__list{margin:0;padding:0;list-style:none}.category-row{align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid var(--color-rule);display:flex}.category-row__reorder{flex-direction:column;gap:.1rem;display:flex}.category-row__reorder button{line-height:1;font-size:var(--text-xs);border-radius:var(--radius-sm);padding:.1rem .4rem}.category-row__dot{width:12px;height:12px;box-shadow:var(--ring-inset);border-radius:50%;flex-shrink:0}.category-row__name{text-align:left;background:0 0;border:none;flex:1;padding:0}.category-row__name:hover{background:0 0;text-decoration:underline}.category-row__rename{padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius-sm);border:1.5px solid var(--color-accent);background:var(--color-paper);flex:1}.category-row__delete{font-size:var(--text-xs);color:var(--color-danger);background:0 0;border-color:#0000}.category-row__delete:hover{background:0 0;text-decoration:underline}.add-page{justify-content:center;display:flex}.letter{background:var(--color-paper);border:1px solid var(--color-rule);border-top:5px solid var(--brand-orange);border-radius:var(--radius-lg);width:100%;max-width:60ch;padding:var(--space-xl) var(--space-lg);box-shadow:var(--shadow-card)}@media (width>=480px){.letter{padding:var(--space-2xl) var(--space-xl)}}.letter__header{align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-lg);display:flex}.letter__mascot{flex-shrink:0;width:56px;height:auto}.letter__salutation{font-family:var(--font-display-serif);font-weight:600;font-size:var(--text-lg);color:var(--color-ink);margin:0 0 var(--space-xs)}.letter__heading{font-size:var(--text-display);color:var(--color-ink);margin-bottom:var(--space-sm)}.letter__intro{color:var(--color-muted);max-width:55ch;margin:0}.letter__form{gap:var(--space-lg);flex-direction:column;display:flex}.letter__type-toggle{gap:clamp(3px, 2cqw, var(--space-xs));flex-wrap:nowrap;width:100%;display:flex;container-type:inline-size}.type-pill{text-align:center;text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:clamp(4px, 2.2cqw, var(--space-xs)) clamp(6px, 3.5cqw, var(--space-md));font-size:clamp(.72rem, 3.6cqw, var(--text-base));border-radius:var(--radius-full);border:1.5px solid var(--color-rule);background:var(--color-paper-2);flex:auto;overflow:hidden}.type-pill--active{background:var(--brand-orange);border-color:var(--brand-orange);color:var(--color-ink);font-weight:700}.type-pill--active:hover{background:var(--brand-orange)}.letter__field{gap:var(--space-xs);font-size:var(--text-sm);color:var(--color-muted);flex-direction:column;min-width:0;display:flex}.letter__field input,.letter__field textarea,.letter__field select{box-sizing:border-box;width:100%;max-width:100%;padding:var(--space-sm);border-radius:var(--radius-sm);border:1.5px solid var(--color-rule);background:var(--color-paper-2);color:var(--color-ink);font-size:var(--text-base);resize:vertical;transition:border-color var(--dur-base) var(--ease-out)}.letter__field input:focus,.letter__field textarea:focus,.letter__field select:focus{border-color:var(--color-accent)}.letter__field input:disabled,.letter__field textarea:disabled{background:var(--color-paper-3);color:var(--color-muted);cursor:not-allowed}.alert-offset-option input[type=checkbox]:disabled{cursor:not-allowed}.alert-offset-row:has(input:disabled) .alert-offset-option{color:var(--color-muted)}.letter__field input[type=datetime-local],.letter__field input[type=file]{max-width:100%}.letter__field .datetime-field-wrap{width:100%;min-width:0;max-width:100%;overflow-x:auto}.letter__image-preview{border-radius:var(--radius-md);border:1.5px solid var(--color-rule);object-fit:contain;max-width:100%;max-height:320px;margin-top:var(--space-xs)}.alert-offset-row{align-items:center;gap:var(--space-xs);font-size:var(--text-sm);flex-flow:wrap;display:flex}.alert-offset-row .alert-offset-option{align-items:center;gap:var(--space-2xs);font-size:var(--text-sm);color:var(--color-ink);flex-direction:row;display:flex}.alert-offset-option input[type=checkbox]{width:auto;font-size:var(--text-sm);accent-color:var(--color-accent);background:0 0;border:none;padding:0}.letter__submit{margin-top:var(--space-xs);padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-full);font-size:var(--text-base);align-self:stretch}@media (width>=480px){.letter__submit{align-self:center;min-width:14rem}}.letter__confirm{color:var(--color-success);margin:0;font-weight:600}.item-detail-page{max-width:640px;margin:0 auto}.back-link{align-items:center;gap:var(--space-2xs);color:var(--color-link);margin-bottom:var(--space-md);background:0 0;border:none;padding:0;font-weight:600;display:inline-flex}.back-link:hover{background:0 0;text-decoration:underline}.item-detail-type-badge{align-items:center;gap:var(--space-xs);font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-md);font-weight:700;display:flex}.item-detail-type-badge__icon{color:var(--brand-orange)}.item-detail-type-badge__pin{font-size:var(--text-xs);padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-full);background:var(--color-paper-3);color:var(--color-ink);margin-left:auto}.item-detail-image{border-radius:var(--radius-md);border:1px solid var(--color-rule);max-width:100%;box-shadow:var(--shadow-card)}.item-detail-text{white-space:pre-wrap;overflow-wrap:anywhere}.item-detail-title{text-align:center;font-family:var(--font-display-serif)}.item-detail-link-title{font-family:var(--font-display-serif);font-weight:600;font-size:var(--text-lg);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.reminder-box,.category-select{margin:var(--space-lg) 0}.reminder-box{gap:var(--space-md);padding:var(--space-lg);background:var(--color-paper-2);border:1px solid var(--color-rule);border-radius:var(--radius-md);flex-direction:column;display:flex}.reminder-box label{gap:var(--space-xs);font-size:var(--text-sm);color:var(--color-muted);flex-direction:column;min-width:0;font-weight:600;display:flex}.reminder-box label input,.reminder-box label textarea{width:100%;min-width:0;padding:var(--space-sm);border-radius:var(--radius-sm);border:1.5px solid var(--color-rule);background:var(--color-paper);color:var(--color-ink);font-size:var(--text-base);resize:vertical;box-sizing:border-box;transition:border-color var(--dur-base) var(--ease-out);font-weight:400}.reminder-box label input:focus,.reminder-box label textarea:focus{border-color:var(--color-accent)}.reminder-box .datetime-field-wrap{width:100%;min-width:0;max-width:100%;overflow-x:auto}.reminder-box label input[type=datetime-local]{font-size:var(--text-sm)}.category-select{gap:var(--space-xs);flex-direction:column;display:flex}.category-select label{font-size:var(--text-sm);color:var(--color-muted);font-weight:700}.category-select select{padding:var(--space-sm);border-radius:var(--radius-sm);border:1.5px solid var(--color-rule);background:var(--color-paper-2);color:var(--color-ink);font-size:var(--text-base)}.item-detail-actions{gap:var(--space-sm);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.item-detail-actions .danger{color:var(--color-danger);border-color:var(--color-danger);background:0 0}.item-detail-actions .danger:hover{background:oklch(48% .19 27/.08)}.item-detail-actions--center{justify-content:center}.item-detail-actions--fit{gap:clamp(3px, 2cqw, var(--space-sm));flex-wrap:nowrap;container-type:inline-size}.item-detail-actions--fit button{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:clamp(4px, 2cqw, var(--space-xs)) clamp(6px, 3cqw, var(--space-md));font-size:clamp(.68rem, 3cqw, var(--text-base));flex-shrink:1;overflow:hidden}.reminder-list{gap:var(--space-sm);padding:0;list-style:none;display:grid}.reminder-list-item{background:var(--color-paper);padding:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-rule-deep);box-shadow:var(--shadow-card);align-items:stretch;column-gap:var(--space-md);transition:box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);grid-template-columns:84px 1fr;display:grid}.reminder-list-item:hover{box-shadow:var(--shadow-card-lift)}.reminder-date-badge{padding:var(--space-sm) var(--space-2xs);border-radius:var(--radius-sm);background:var(--color-paper-2);border-right:1px solid var(--color-rule);flex-direction:column;grid-area:1/1/-1;justify-content:center;align-items:center;gap:1px;line-height:1.1;display:flex}.reminder-date-badge__weekday{font-size:var(--text-xs);color:var(--brand-orange);font-weight:700}.reminder-date-badge__day{font-family:var(--font-display-serif);color:var(--brand-orange);font-size:1.3rem;font-weight:700}.reminder-date-badge__month{font-size:var(--text-xs);color:var(--color-muted)}.reminder-date-badge__rule{background:var(--color-rule);width:70%;height:1px;margin:var(--space-xs) 0}.reminder-date-badge__time{font-size:var(--text-xs);color:var(--color-ink);white-space:nowrap;font-weight:600}.reminder-content{grid-column:2;min-width:0}.reminder-list-actions{gap:var(--space-xs);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-rule);flex-direction:column;grid-column:2;display:flex}.reminder-list-actions__row{gap:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}.reminder-list-actions__row--buttons{justify-content:flex-end}.reminder-cleanup-warning{font-size:calc(var(--text-base) - 2px);color:var(--color-danger)}.reminder-location{align-items:center;gap:var(--space-2xs);display:flex}.reminder-location__icon{color:var(--color-muted);flex-shrink:0}.reminder-title-row{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.reminder-date-badge__repeat{color:var(--color-muted);margin-top:var(--space-2xs);text-align:center;font-size:.65rem}.role-badge{padding:.05rem var(--space-xs);border-radius:var(--radius-full);background:var(--color-accent-2);color:var(--color-accent-2-ink);box-shadow:var(--ring-inset);font-size:var(--text-xs);white-space:nowrap;flex-shrink:0;font-weight:600;display:inline-block}.participant-avatars{margin-top:var(--space-xs);display:flex}.participant-avatars .avatar{border:2px solid var(--color-paper-2);object-fit:cover;border-radius:50%;width:24px;height:24px;margin-left:-8px}.participant-avatars .avatar:first-child{margin-left:0}.participant-avatars .avatar-fallback{background:var(--color-accent-2);color:var(--color-accent-2-ink);font-size:var(--text-xs);justify-content:center;align-items:center;font-weight:700;display:flex}.invite-status{color:var(--color-success);font-size:var(--text-xs);margin:var(--space-2xs) 0 0;font-weight:600}.invite-link-box{gap:var(--space-xs);margin-top:var(--space-xs);max-width:100%;display:flex}.invite-link-box input{min-width:0;padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius-sm);border:1.5px solid var(--color-border);font-size:var(--text-xs);background:var(--color-paper);flex:1}.feature-compare{margin:var(--space-lg) 0;border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow-x:auto}.feature-compare table{border-collapse:collapse;background:var(--color-paper);width:100%;min-width:480px}.feature-compare th,.feature-compare td{padding:var(--space-xs) var(--space-md);text-align:left;border-bottom:1px solid var(--color-rule);font-size:var(--text-sm)}.feature-compare thead th{font-family:var(--font-display);background:var(--color-paper-2);font-weight:700}.feature-compare th:not(:first-child),.feature-compare td:not(:first-child){text-align:center;white-space:nowrap}.feature-compare tbody tr:last-child td{border-bottom:none}.feature-compare__subscriber-cell{color:var(--color-success);font-weight:600}.terms-page{width:min(720px, 100% - 2 * var(--space-lg));margin:var(--space-lg) auto;padding:var(--space-xl) var(--space-lg);background:var(--color-paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);line-height:1.7}.terms-page h1{font-size:var(--text-xl);font-family:var(--font-display)}.terms-page h2{font-size:var(--text-md);margin-top:var(--space-xl);font-family:var(--font-display)}.terms-updated{color:var(--color-muted);font-size:var(--text-sm)}@media (width<=480px){.app-header{gap:var(--space-md)}.app-header .brand{font-size:var(--text-lg)}.app-content{width:min(1000px, 100% - 2 * var(--space-sm));padding:var(--space-md);margin-bottom:calc(var(--tabbar-height-safe) + var(--space-lg))}.terms-page{width:min(720px, 100% - 2 * var(--space-sm));padding:var(--space-lg) var(--space-md)}.letter{padding:var(--space-xl) var(--space-md)}}.archived-appointments{margin-top:var(--space-lg)}.archived-appointments__heading{font-family:var(--font-display-serif);font-size:var(--text-lg);margin-bottom:var(--space-2xs)}.archived-appointments__note{color:var(--color-muted,#797e5d);font-size:var(--text-xs);margin-bottom:var(--space-md)}.archived-appointments__list{gap:var(--space-sm);margin:0;padding:0;list-style:none;display:grid}.archived-appointment-card{gap:var(--space-2xs);padding:var(--space-md);background:var(--color-paper-2);border:1px solid var(--color-rule);border-radius:var(--radius-md);flex-direction:column;display:flex}.archived-appointment-card .btn--danger{color:var(--color-danger);border-color:var(--color-danger);background:0 0;align-self:flex-start}.archived-appointment-card .btn--danger:disabled{opacity:.6;cursor:progress}.form-error{color:var(--color-danger);font-size:var(--text-xs);margin:var(--space-2xs) 0}
