/* Theme tokens cover surfaces, forms, navigation and content, not just the page. */
body[data-design-theme]{--muted:#74616c;--surface:#fff8f4;--panel:#fffaf7;--page:#fbefed;--line:#e8d5d8;--soft:#f6e4e7;--accent:#bd526b;--accent-dark:#943b52;--pale:#f7dce3;--ink:#352832;background:radial-gradient(ellipse at 85% 0%,#e8dfed 0,transparent 45%),var(--page);color:var(--ink)}
body[data-design-theme=minimal]{--page:#f5f4f0;--surface:#fffefa;--panel:#fffefa;--soft:#edece7;--line:#dad8d0;--pale:#e8e6dd;--ink:#33342f;--muted:#64655e;--accent:#666d5d;--accent-dark:#4d5744;background:var(--page)}
body[data-design-theme=nature]{--page:#edf2e9;--surface:#f9fcf4;--panel:#f9fcf4;--soft:#e1ead9;--line:#ccd9c4;--pale:#dbe6d3;--ink:#263d30;--muted:#566b5c;--accent:#507858;--accent-dark:#365e41;background:radial-gradient(ellipse at 85% 0%,#d5e3cc 0,transparent 60%),var(--page)}
body[data-design-theme=evening]{--page:#232430;--surface:#30313f;--panel:#353645;--soft:#414150;--line:#5c5668;--pale:#504454;--ink:#f7eef1;--muted:#cdc0ca;--accent:#e4a0b4;--accent-dark:#f0b3c7;background:radial-gradient(ellipse at 85% 0%,#3c324a 0,transparent 60%),var(--page);color-scheme:dark}
body[data-design-theme=peach]{--page:#fcf0e5;--surface:#fff8ef;--panel:#fffaf3;--soft:#f6e4d5;--line:#e5cdbb;--pale:#f0d9c5;--ink:#49332b;--muted:#7a6253;--accent:#a96545;--accent-dark:#86492c;background:var(--page)}
body[data-design-theme=lilac]{--page:#f0ebf6;--surface:#fcf8ff;--panel:#fcf9ff;--soft:#e6ddef;--line:#d8cbe3;--pale:#e4d5ed;--ink:#3d3048;--muted:#73627e;--accent:#8a619e;--accent-dark:#6b437f;background:var(--page)}
body[data-design-theme] :is(.card,.memory,.note-item,.event-item,dialog,.wish-editor-row){background:var(--surface);border-color:var(--line);color:var(--ink)}
body[data-design-theme] :is(.sidebar,.bottom-nav){background:var(--panel);border-color:var(--line)}
body[data-design-theme] :is(.field input,.field textarea,.field select,.chat-form input,.language-settings select,.layout-controls select){background:var(--panel);border:1px solid var(--line);color:var(--ink)}
body[data-design-theme] :is(.guest-welcome p,.connection-notice p,.space-status,.space-status [data-pair-status],.modal-copy,.editor-help,.settings-note,.info-strip){color:var(--muted)}
body[data-design-theme] :is(.btn.secondary,.btn.outline,.btn.danger-outline,.quick-messages button,.bubble,.theme-option){background:var(--soft);color:var(--ink);border-color:var(--line)}
body[data-design-theme] .btn:not(.secondary):not(.outline):not(.danger-outline){background:var(--accent);color:#fff}
body[data-design-theme=evening] .btn:not(.secondary):not(.outline):not(.danger-outline){color:#29232e}
body[data-design-theme] :is(.ritual-card,.connection-notice){background:var(--soft);color:var(--ink)}
body[data-design-theme] :is(.together-pill,.module-icon,.mood.selected,.bubble.mine,.close,.switch){background:var(--pale);color:var(--accent-dark)}
body[data-design-theme] .nav-btn.active{background:var(--soft);color:var(--accent-dark)}
body[data-design-theme] :is(.brand,.mobile-brand,.day,.theme-option){color:var(--ink)}
body[data-design-theme] .day.today{background:var(--accent);color:var(--panel)}
body[data-design-theme] ::placeholder{color:var(--muted);opacity:1}
body[data-background-preset=linen]{background:repeating-linear-gradient(95deg,transparent 0 7px,#ac987b0a 7px 9px),var(--page)}
body[data-background-preset=blush]{background:radial-gradient(ellipse at top left,#c47d8a40,transparent 65%),var(--page)}
body[data-background-preset=leaves]{background:radial-gradient(ellipse at top right,#779b6c40,transparent 60%),var(--page)}
body.has-photo:before{background:var(--page);opacity:var(--veil)}
#custom-background{background-size:cover}
.design-editor{display:grid;grid-template-columns:minmax(300px,440px) minmax(0,1fr);gap:24px;align-items:start}.design-controls{padding:22px!important;min-width:0}.design-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px;border-radius:14px;background:var(--soft);margin-bottom:24px}.design-tabs button{min-height:44px;font-size:12px;border-radius:10px;padding:8px 4px;color:var(--muted)}.design-tabs [aria-selected=true]{background:var(--panel);color:var(--ink);box-shadow:0 2px 7px #0000000c}.design-themes{display:grid;grid-template-columns:1fr 1fr;gap:12px}.theme-tile{display:flex;flex-direction:column;gap:9px;text-align:left;padding:12px;border:2px solid var(--line);border-radius:16px;color:var(--ink);background:var(--panel)}.theme-tile.selected,.bg-swatch.selected{border-color:var(--accent-dark)}.theme-tile strong{font:18px 'Lora',serif}.theme-tile small{font-size:11px;line-height:1.6;color:var(--muted)}.theme-sample{width:100%;height:80px;border-radius:9px;display:flex;align-items:flex-end;gap:6px;padding:12px;background:#f6e5e7}.theme-sample i{width:26px;height:26px;border-radius:50%;background:#b95169}.theme-sample i:nth-child(2){background:#e4bac8}.theme-sample i:nth-child(3){background:#fff6ee}.theme-sample[data-palette=minimal]{background:#efeee8}.theme-sample[data-palette=minimal] i{background:#68715e}.theme-sample[data-palette=minimal] i:nth-child(2){background:#bdbfb2}.theme-sample[data-palette=minimal] i:nth-child(3){background:#fffef6}.theme-sample[data-palette=nature]{background:#e3ecdd}.theme-sample[data-palette=nature] i{background:#52795a}.theme-sample[data-palette=nature] i:nth-child(2){background:#9db896}.theme-sample[data-palette=nature] i:nth-child(3){background:#fff9e8}.theme-sample[data-palette=evening]{background:#292735}.theme-sample[data-palette=evening] i{background:#e4a0b4}.theme-sample[data-palette=evening] i:nth-child(2){background:#71657f}.theme-sample[data-palette=evening] i:nth-child(3){background:#f4e4ec}.design-fields .field{font-size:13px}.design-fields select{width:100%;font:inherit;padding:12px;border-radius:12px;min-height:44px}.background-swatches{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:18px 0}.bg-swatch{min-height:52px;border:2px solid var(--line);border-radius:12px;font-size:12px;color:var(--ink);background:var(--soft)}[data-preset=linen]{background-image:repeating-linear-gradient(95deg,transparent 0 7px,#ac987b15 7px 9px)}[data-preset=blush]{background-image:radial-gradient(ellipse at top left,#c47d8a40,transparent)}[data-preset=leaves]{background-image:radial-gradient(ellipse at top right,#779b6c40,transparent)}.design-photo-preview{height:180px;background-color:var(--soft);background-size:cover;border-radius:16px;display:flex;align-items:flex-end;padding:14px;margin-bottom:16px}.design-photo-preview span{font-size:12px;background:var(--panel);padding:7px 12px;border-radius:20px;color:var(--ink)}.design-fields .button-row{display:flex;flex-wrap:wrap}.design-fields .btn{font-size:12px;min-height:44px}.editor-help{font-size:12px!important;line-height:1.75!important;margin:12px 0 18px!important}.range-field output{font-size:12px}.design-fields input[type=range]{min-height:30px}.design-fields .range-field{margin:20px 0}.layout-list{display:grid;gap:10px;margin:14px 0 20px}.layout-row{padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.widget-toggle{display:flex;align-items:center;gap:10px;font-size:14px;min-height:44px}.widget-toggle>span{display:flex;align-items:center;gap:8px}.widget-toggle input{width:20px;height:20px;accent-color:var(--accent)}.widget-toggle svg{width:18px;height:18px}.layout-controls{display:flex;gap:7px;margin-top:8px}.layout-controls select{flex:1;min-width:0}.layout-controls button{width:44px;min-height:44px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:var(--soft);font-size:20px}.layout-controls button:disabled{opacity:.4}.reset-design{margin-top:26px;min-height:44px;font-size:12px!important;color:var(--accent-dark)}.design-preview{min-width:0;position:sticky;top:20px}.preview-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.preview-heading h2{font-size:22px}.preview-heading button{min-height:44px;font-size:12px}.preview-canvas{max-height:720px;overflow:auto;padding:14px;border:1px solid var(--line);border-radius:22px;background:var(--page);box-shadow:0 10px 36px #00000008}.preview-canvas .personalized-grid{grid-template-columns:1fr;gap:14px}.preview-canvas .widget-shell{grid-column:1!important}.preview-canvas .card{padding:18px!important}.preview-canvas .date-hero h2{font-size:27px!important}.preview-canvas .date-hero{min-height:275px!important}.preview-canvas .memory-strip{overflow:hidden}.design-savebar{position:sticky;bottom:12px;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;margin:28px 0 18px;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:0 4px 24px #00000016}.design-savebar>span{font-size:12px;color:var(--muted);line-height:1.5}.design-savebar>div{display:flex;gap:10px}.design-savebar .btn{min-height:44px;font-size:12px}.design-conflict,.design-error{border:1px solid var(--accent-dark);background:var(--soft);padding:20px;border-radius:16px;margin-bottom:22px}.design-conflict h2{font-size:22px}.design-conflict p{font-size:13px;line-height:1.7;margin:12px 0}.design-conflict .button-row{display:flex;flex-wrap:wrap}.design-error{font-size:13px;line-height:1.7}.design-full-preview .design-controls{display:none}.design-full-preview .design-editor{grid-template-columns:1fr}.design-full-preview .preview-canvas{max-height:none}.design-full-preview .preview-canvas .personalized-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.design-full-preview .preview-canvas .widget-shell.size-full{grid-column:1/-1!important}.design-full-preview .preview-canvas .widget-shell.size-compact{grid-column:auto!important}
.personalized-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.widget-shell{min-width:0}.widget-shell.size-full{grid-column:1/-1}.widget-shell.size-compact{grid-column:auto}.widget-shell>.card{height:100%;width:100%}.widget-shell .ritual-card{height:100%}.widget-shell .date-hero{height:100%}.widget-shell .date-hero>img{object-position:var(--photo-x,50%) var(--photo-y,50%)}.widget-date.widget-photo .date-hero>img{filter:brightness(calc(1 - var(--photo-dim,.45)))}.widget-shell.widget-notes.widget-photo .notes-shortcut{background-image:linear-gradient(rgb(0 0 0 / var(--photo-dim,.75)),rgb(0 0 0 / var(--photo-dim,.75))),var(--widget-photo);background-size:cover;background-position:var(--photo-x) var(--photo-y);color:white}.widget-notes.widget-photo .notes-shortcut-copy>span,.widget-notes.widget-photo .notes-shortcut>svg{color:white}.widget-notes[data-preset]:not([data-preset=theme]):not(.widget-photo) .notes-shortcut{background:transparent}.widget-date[data-preset]:not([data-preset=theme]):not(.widget-photo) .date-hero{background:transparent}.widget-date[data-preset]:not([data-preset=theme]):not(.widget-photo) .date-hero>img{display:none}.widget-date[data-preset]:not([data-preset=theme]):not(.widget-photo) .date-hero-copy{color:var(--ink)}.days-widget{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:180px}.days-widget>span{font-size:13px;color:var(--muted)}.days-widget>strong{font:54px 'Lora',serif;color:var(--accent-dark)}.days-widget>small{font-size:12px;color:var(--muted)}.empty-layout{grid-column:1/-1}.empty-layout .btn{margin-top:18px}.personalized-grid .memory-strip{max-width:100%;overflow-x:auto}.personalized-grid .card p{font-size:12px}.personalized-grid .wish-row{font-size:13px;min-height:44px}.personalized-grid .mood small{font-size:10px}.personalized-grid .mood{min-height:52px}.module-option>.btn{flex-shrink:0;font-size:12px;padding:10px 14px}.appearance .btn{margin-top:20px}.design-preview .ritual-card{flex-wrap:wrap}.size-compact .ritual-card{flex-wrap:wrap}.size-compact .date-hero .date-hero-copy{max-width:calc(100% - 36px);margin:22px 18px}
@media(max-width:1100px){.design-editor{grid-template-columns:minmax(290px,1fr) minmax(0,1fr);gap:16px}.design-controls{padding:16px!important}.design-tabs button{font-size:11px}}
@media(max-width:800px){.design-editor{grid-template-columns:1fr}.design-preview{position:static}.preview-canvas{max-height:520px}.design-savebar{bottom:88px;flex-wrap:wrap;padding:12px;gap:8px}.design-savebar>span{width:100%;font-size:11px}.design-savebar>div{width:100%}.design-savebar .btn{flex:1;padding:11px 9px}.design-controls{padding:20px!important}.design-tabs button{font-size:12px}.design-editor .design-preview h2{font-size:22px}.personalized-grid,.design-full-preview .preview-canvas .personalized-grid{grid-template-columns:1fr}.personalized-grid .widget-shell,.design-full-preview .preview-canvas .widget-shell.size-compact{grid-column:1/-1!important}.personalized-grid .card{padding:20px}.personalized-grid .card h2{font-size:22px}.personalized-grid .mood{width:calc(20% - 5px)}.personalized-grid .mood small{font-size:10px}.module-option{flex-wrap:wrap}.module-option>span:nth-child(2){min-width:150px}.design-conflict .btn{white-space:normal;line-height:1.5}.home-toolbar .btn{font-size:12px}.design-fields .text-link{font-size:12px;min-height:44px}}
@media(max-width:360px){.design-controls{padding:14px!important}.design-tabs button{font-size:11px}.theme-tile{padding:10px}.theme-tile strong{font-size:17px}.theme-tile small{font-size:11px}.theme-sample{padding:8px;gap:4px}.theme-sample i{width:22px;height:22px}.design-savebar .btn{font-size:11px}.personalized-grid .mood small{font-size:9px}}
body:not(.has-photo) #custom-background{display:none}body.has-photo #custom-background:after{background:var(--page);opacity:var(--veil)}.design-tabs button{background:transparent}.design-tabs [aria-selected=true]{background:var(--panel)}body[data-design-theme] .icon-button{background:var(--soft);color:var(--ink);border-color:var(--line)}body[data-design-theme] .couple-avatars span{background:var(--soft);border-color:var(--panel)}body[data-design-theme] .couple-avatars i{background:var(--panel)}
.module-toggle{display:flex;align-items:center;gap:8px;font-size:12px;min-height:44px;color:var(--muted)}.module-toggle input{position:static;opacity:1;width:20px;height:20px;accent-color:var(--accent)}.has-photo :is(.guest-welcome,.welcome,.home-toolbar,.space-status){background:var(--panel);padding:22px;border-radius:20px;margin-top:14px}.has-photo header,.has-photo footer{background:var(--panel);padding-left:16px;padding-right:16px;border-radius:16px}.widget-date.widget-photo .date-hero>img{filter:brightness(calc(1 - var(--photo-dim,.65)))}
