@import "https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-sans:"Geist", system-ui, sans-serif;--white:#fff;--black:#000;--neutral-03:#fdfdfd;--neutral-50:#f9f9f8;--neutral-75:#f6f6f5;--neutral-100:#f3f3f2;--neutral-150:#eeeceb;--neutral-200:#e8e6e5;--neutral-250:#e2e0de;--neutral-300:#dcdad7;--neutral-400:#d0cdca;--neutral-500:#c5c1bd;--neutral-600:#9e9a97;--neutral-700:#5a5957;--neutral-800:#424140;--neutral-825:#454442;--neutral-850:#3b3a39;--neutral-875:#31302f;--neutral-900:#272726;--neutral-925:#1e1d1c;--neutral-950:#141313;--neutral-975:#0a0a09;--neutral-997:#060606;--neutralB-03:#fbfbfb;--neutralB-50:#f1f1f2;--neutralB-75:#eaeaec;--neutralB-100:#e3e3e5;--neutralB-150:#d4d5d8;--neutralB-200:#c6c7cc;--neutralB-300:#aaabb2;--neutralB-400:#8d8f98;--neutralB-500:#71737f;--neutralB-600:#5a5c65;--neutralB-700:#44454c;--neutralB-800:#2d2e33;--neutralB-825:#252529;--neutralB-850:#28282c;--neutralB-875:#2a2b30;--neutralB-900:#2d2e33;--neutralB-925:#1b1b1e;--neutralB-950:#2d2e33;--neutralB-997:#171719;--brand-primary:#51a0ea;--brand-secondary:#76b3ef;--red-10:#ffeaea;--red-300:#fed3d3;--red-400:#f97a74;--red-500:#f75951;--red-600:#c64741;--red-700:#573940;--red-800:#3b272c;--surface-base:var(--neutral-50);--surface-primary:var(--neutral-03);--surface-elevated:var(--white);--surface-inset:var(--neutral-75);--text-primary:var(--neutral-900);--text-secondary:var(--neutral-800);--text-tertiary:var(--neutral-700);--text-muted:var(--neutral-600);--text-placeholder:var(--neutral-500);--text-on-action:var(--white);--text-disabled:var(--neutral-300);--text-error:var(--red-500);--state-hover-subtle:#00000003;--state-hover:#00000008;--state-border-hover:#00000008;--state-active:#00000012;--state-selected:#0000000d;--hover-error:var(--red-300);--hover-text-error:var(--red-600);--border-subtle:var(--neutral-200);--border-default:var(--neutral-200);--border-strong:var(--neutral-250);--add-row-gap:4px;--add-row-btn-height:24px;--add-row-hover-extension:64px;--album-grid-gap:16px;--album-card-padding:8px;--photo-grid-padding:0 16px 16px 16px;--detail-padding-x:240px;--chrome-fade:45px;--grid-enter-y:12px;--grid-enter-dur:.25s;--grid-enter-ease:cubic-bezier(.33, 1, .68, 1);--grid-enter-gap:50ms;--grid-enter-cap:.2s;--cover-fade:.25s;--press-scale:.96;--press-scale-content:.98;--press-dur:.1s;--press-ease:cubic-bezier(.215, .61, .355, 1);--dropdown-radius-xs:8px;--dropdown-item-radius-xs:4px;--dropdown-radius-sm:12px;--dropdown-item-radius-sm:8px;--dropdown-radius-md:14px;--dropdown-item-radius-md:10px;--dropdown-radius-lg:16px;--dropdown-item-radius-lg:12px;--grid-cols:4;--letter-spacing-none:0em;--letter-spacing-normal:-.01em;--letter-spacing-tight:-.02em;--shadow-subtle:0px 1px 5px #0000000d;--shadow-pronounced:0px 1px 5px #0000001a;--nav-pill-bg:var(--neutral-100);--nav-pill-border:var(--neutral-200);--nav-pill-active-bg:var(--white);--topbar-btn-bg:var(--white);--topbar-btn-border:var(--neutral-300);--color-button:#88d4c8;--color-button-text:#174941;--color-button-error:var(--red-10);--color-pill:var(--neutral-50);--card-lift:1.016;--card-lift-in:.299s;--card-lift-out:.269s;--card-lift-ease:linear(0, .0759, .2287, .3925, .5391, .6594, .7531, .8237, .8756, .913, .9397, .9585, .9716, .9806, .9869, .9911, 1);--card-hover-fade:.1s}[data-theme=light]{--surface-base:var(--neutral-50);--surface-primary:var(--neutral-03);--surface-elevated:var(--white);--surface-inset:var(--neutral-75);--text-primary:var(--neutral-900);--text-secondary:var(--neutral-800);--text-tertiary:var(--neutral-700);--text-muted:var(--neutral-600);--text-placeholder:var(--neutral-500);--text-on-action:var(--white);--text-disabled:var(--neutral-300);--text-error:var(--red-500);--state-hover:#00000008;--state-border-hover:#00000008;--state-active:#00000012;--state-selected:#0000000d;--hover-account-dropdown:var(--neutral-150);--hover-error:var(--red-300);--hover-text-error:var(--red-600);--border-subtle:var(--neutral-200);--border-default:var(--neutral-200);--border-strong:var(--neutral-300);--shadow-subtle:0px 1px 5px #0000000d;--shadow-pronounced:0px 1px 5px #0000001a;--nav-pill-bg:var(--neutral-100);--nav-pill-border:var(--neutral-200);--nav-pill-active-bg:var(--white);--topbar-btn-bg:var(--white);--topbar-btn-border:var(--neutral-300);--color-button:#88d4c8;--color-button-text:#174941;--shadow-block:0px 0px 1px 0px #615f5e12;--color-button-error:var(--red-10);--color-pill:var(--neutral-50)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface-base:var(--neutral-975);--surface-primary:var(--neutral-950);--surface-elevated:var(--neutral-925);--surface-inset:var(--neutral-975);--text-primary:var(--neutral-50);--text-secondary:var(--neutral-200);--text-tertiary:var(--neutral-400);--text-muted:var(--neutral-500);--text-placeholder:var(--neutral-600);--text-on-action:var(--white);--text-disabled:var(--neutral-500);--text-error:var(--red-500);--state-hover-subtle:#ffffff05;--state-hover:#ffffff0f;--state-border-hover:#ffffff0f;--state-active:#ffffff12;--state-selected:#ffffff14;--hover-account-dropdown:var(--neutral-800);--hover-error:var(--red-700);--hover-text-error:var(--red-400);--border-subtle:var(--neutral-900);--border-default:var(--neutral-875);--border-strong:var(--neutral-850);--shadow-subtle:0px 1px 5px #0000;--shadow-pronounced:0px 1px 5px #0000;--nav-pill-bg:#232221;--nav-pill-border:#2e2d2c;--nav-pill-active-bg:#383736;--topbar-btn-bg:#383736;--topbar-btn-border:var(--neutral-700);--color-button:#88d4c8;--color-button-text:#174941;--color-button-error:var(--red-800);--shadow-block:0px 0px 1px 0px #615f5e12;--color-pill:var(--neutral-900)}@media (prefers-color-scheme:dark){:root:not([data-theme]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface-base:var(--neutral-975);--surface-primary:var(--neutral-950);--surface-elevated:var(--neutral-925);--surface-inset:var(--neutral-975);--text-primary:var(--neutral-50);--text-secondary:var(--neutral-200);--text-tertiary:var(--neutral-400);--text-muted:var(--neutral-500);--text-placeholder:var(--neutral-600);--text-on-action:var(--white);--text-disabled:var(--neutral-500);--text-error:var(--red-500);--state-hover-subtle:#ffffff05;--state-hover:#ffffff0f;--state-border-hover:#ffffff0f;--state-active:#ffffff12;--state-selected:#ffffff14;--hover-account-dropdown:var(--neutral-800);--hover-error:var(--red-700);--hover-text-error:var(--red-400);--border-subtle:var(--neutral-900);--border-default:var(--neutral-875);--border-strong:var(--neutral-850);--shadow-subtle:0px 1px 5px #0000;--shadow-pronounced:0px 1px 5px #0000;--nav-pill-bg:#232221;--nav-pill-border:#2e2d2c;--nav-pill-active-bg:#383736;--topbar-btn-bg:#383736;--topbar-btn-border:var(--neutral-700);--color-button:#88d4c8;--color-button-text:#174941;--color-button-error:var(--red-800);--shadow-block:0px 0px 1px 0px #615f5e12;--color-pill:var(--neutral-900)}}@media (prefers-reduced-motion:no-preference){:root[data-scheme-hold=light]{--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-scheme-hold=dark]{--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme-transitioning],[data-theme-transitioning] *{transition:color .3s ease-out,background-color .3s ease-out,border-color .3s ease-out,outline-color .3s ease-out,box-shadow .3s ease-out,caret-color .3s ease-out,opacity .3s ease-out!important}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);color:var(--text-primary);background:var(--surface-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:13px;font-weight:500}input,button,select,textarea{font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);font-size:13px;font-weight:500}@keyframes dropdown-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes dropdown-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}.dropdown{background:var(--surface-elevated);border:.5px solid var(--border-strong);border-radius:var(--dropdown-radius-md);z-index:100;transform-origin:0 0;padding:4px;animation:.15s cubic-bezier(.215,.61,.355,1) both dropdown-in;position:absolute;box-shadow:0 1px 1px #00000005,0 1px 4px #0000000a}.dropdown--closing{animation:.15s cubic-bezier(.215,.61,.355,1) both dropdown-out}.dropdown--sm{border-radius:var(--dropdown-radius-sm)}.dropdown--sm .dropdown-item{border-radius:var(--dropdown-item-radius-sm)}@media (prefers-reduced-motion:reduce){.dropdown,.dropdown--closing{animation:none}}.dropdown-item{border-radius:var(--dropdown-item-radius-md);cursor:pointer;width:100%;color:var(--text-secondary);text-align:left;white-space:nowrap;-webkit-user-select:none;user-select:none;background:0 0;border:none;align-items:center;padding:8px 10px;transition:background .1s;display:flex}.dropdown-item__content{transition:transform var(--press-dur) var(--press-ease);align-items:center;gap:8px;display:flex}.dropdown-item__content:has(.check-icon){width:100%}.dropdown-item:active .dropdown-item__content{transform:scale(var(--press-scale-content))}@media (prefers-reduced-motion:reduce){.dropdown-item:active .dropdown-item__content{transform:none}}.dropdown-item svg{width:16px;height:16px;color:var(--text-secondary);flex-shrink:0}.dropdown-item:hover{background:var(--state-hover);color:var(--text-primary)}.dropdown-item:hover svg{color:var(--text-primary)}.dropdown-item .check-icon{width:12px;height:12px;margin-left:auto}.dropdown-item--danger:hover,.dropdown-item--danger:hover svg{color:var(--text-error)}.dropdown-item--disabled{color:var(--text-muted);cursor:default;pointer-events:none}.dropdown-item--disabled:hover{background:0 0}.dropdown-divider{background:#00000012;height:1px;margin:4px 0}.main-area{background:var(--surface-primary);flex-direction:column;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.app-scroll{min-height:0;padding-top:var(--app-chrome-h,0px);flex-direction:column;flex:1;display:flex;overflow-y:auto}.app-chrome{background:var(--surface-primary);z-index:20;position:absolute;top:0;left:0;right:0}.app-chrome:after{content:"";height:var(--chrome-fade);pointer-events:none;background:linear-gradient(to bottom, color-mix(in srgb, var(--surface-primary) 50%, transparent) 0%, color-mix(in srgb, var(--surface-primary) 46.3%, transparent) 16.67%, color-mix(in srgb, var(--surface-primary) 37%, transparent) 33.33%, color-mix(in srgb, var(--surface-primary) 25%, transparent) 50%, color-mix(in srgb, var(--surface-primary) 13%, transparent) 66.67%, color-mix(in srgb, var(--surface-primary) 3.7%, transparent) 83.33%,  color-mix(in srgb, var(--surface-primary) 0%, transparent) 100%);position:absolute;top:100%;left:0;right:0}@keyframes grid-card-enter{0%{opacity:0;translate:0 var(--grid-enter-y)}to{opacity:1;translate:none}}.grid-enter>*{animation:grid-card-enter var(--grid-enter-dur) var(--grid-enter-ease) backwards;animation-delay:min(calc(var(--card-i,0) * var(--grid-enter-gap)), var(--grid-enter-cap))}.cover-img{transition:opacity var(--cover-fade) linear}.cover-img.cover-pending{opacity:0}.main-area[data-board-anim] .grid-enter>*{animation:none}.main-area[data-board-anim] .cover-pending,.bo-card .cover-pending,.bo-view .cover-pending{opacity:1}@media (prefers-reduced-motion:reduce){@keyframes grid-card-enter{0%{opacity:0;translate:none}to{opacity:1;translate:none}}}.topbar{flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px 12px;display:flex}.topbar-left{align-items:center;gap:4px;display:flex}.topbar-logo{background:var(--nav-pill-bg);border:.5px solid var(--nav-pill-border);width:37px;height:37px;box-shadow:var(--shadow-subtle);color:var(--text-primary);cursor:pointer;transition:background .1s, transform var(--press-dur) var(--press-ease);border-radius:100px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.logo-mark{width:21px;height:21px;margin-bottom:.875px;display:block;position:relative}.logo-mark svg{width:100%;height:100%;position:absolute;inset:0}.logo-mark-dark,[data-theme=dark] .logo-mark-light{opacity:0}[data-theme=dark] .logo-mark-dark{opacity:1}@media (prefers-color-scheme:dark){:root:not([data-theme]) .logo-mark-light{opacity:0}:root:not([data-theme]) .logo-mark-dark{opacity:1}}.topbar-logo:hover{background:var(--nav-pill-active-bg)}.topbar-nav-pill{background:var(--nav-pill-bg);border:.5px solid var(--nav-pill-border);box-shadow:var(--shadow-subtle);border-radius:100px;align-items:center;gap:2px;padding:2px;display:flex;position:relative}.topbar-nav-pill-item{cursor:pointer;letter-spacing:var(--letter-spacing-normal);color:var(--text-muted);background:0 0;border:none;border-radius:100px;align-items:center;padding:6px 10px;font-size:16px;font-weight:500;line-height:20px;transition:color .1s;display:flex}.topbar-nav-pill-item__content{transition:transform var(--press-dur) var(--press-ease);align-items:center;gap:6px;display:flex}.topbar-nav-pill-item:active .topbar-nav-pill-item__content{transform:scale(var(--press-scale))}@media (prefers-reduced-motion:reduce){.topbar-nav-pill-item:active .topbar-nav-pill-item__content{transform:none}}.topbar-nav-pill-item svg{flex-shrink:0;width:20px;height:20px}.topbar-nav-pill-item:not([aria-current]):hover{color:var(--text-secondary)}@property --nav-fill-left{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --nav-fill-right{syntax:"<length-percentage>";inherits:false;initial-value:100%}.topbar-nav-pill-fill{background:var(--nav-pill-active-bg);clip-path:inset(0 var(--nav-fill-right) 0 var(--nav-fill-left) round 100px);pointer-events:none;--nav-fill-settle:linear(0, .0033, .0127, .0273, .0465, .0694, .0955, .1242, .1551, .1875, .2212, .2558, .2909, .3262, .3615, .3965, .4311, .465, .4982, .5305, .5618, .5921, .6212, .6492, .6759, .7015, .7257, .7488, .7705, .7911, .8104, .8286, .8456, .8615, .8763, .8901, .9028, .9146, .9255, .9355, .9447, .9531, .9607, .9677, .9739, .9796, .9847, .9893, .9933, .9969, 1.0001, 1.0029, 1.0053, 1.0074, 1.0091, 1.0106, 1.0119, 1.0129, 1.0136, 1.0142, 1.0147, 1.015, 1.0151, 1.0152, 1.0151, 1.0149, 1.0147, 1.0144, 1.014, 1.0136, 1.0132, 1.0127, 1.0122, 1.0117, 1.0112, 1.0107, 1.0101, 1.0096, 1.0091, 1.0085, 1.008, 1.0075, 1.007, 1.0066, 1.0061, 1.0057, 1.0053, 1.0048, 1.0045, 1.0041, 1);border-radius:100px;align-items:center;gap:2px;display:flex;position:absolute;inset:2px}.topbar-nav-pill-fill .topbar-nav-pill-item{color:var(--text-primary)}.topbar-nav-pill-fill[data-animated=true][data-direction=forward]{transition:--nav-fill-right .19s cubic-bezier(.165, .84, .44, 1), --nav-fill-left .19s var(--nav-fill-settle) 48ms}.topbar-nav-pill-fill[data-animated=true][data-direction=backward]{transition:--nav-fill-left .19s cubic-bezier(.165, .84, .44, 1), --nav-fill-right .19s var(--nav-fill-settle) 48ms}@media (prefers-reduced-motion:reduce){.topbar-nav-pill-fill[data-animated=true][data-direction=forward],.topbar-nav-pill-fill[data-animated=true][data-direction=backward]{transition:none}}.topbar-right{background:var(--nav-pill-bg);border:.5px solid var(--nav-pill-border);box-shadow:var(--shadow-subtle);border-radius:100px;align-items:center;gap:4px;padding:2px;display:flex}.topbar-create-menu-wrapper{flex-shrink:0;position:relative}.topbar-create-btn{background:var(--topbar-btn-bg);border:.5px solid var(--topbar-btn-border);cursor:pointer;color:var(--text-primary);letter-spacing:var(--letter-spacing-tight);transition:background .1s, transform var(--press-dur) var(--press-ease);border-radius:100px;justify-content:center;align-items:center;gap:4px;padding:5.5px 10px;font-size:16px;font-weight:500;line-height:20px;display:flex}.topbar-create-btn svg{flex-shrink:0;width:20px;height:20px;display:block}.topbar-create-btn:hover{background:linear-gradient(var(--state-hover), var(--state-hover)), var(--topbar-btn-bg)}.topbar-profile{flex-shrink:0;display:flex;position:relative}.topbar-avatar-btn{border:.5px solid var(--nav-pill-border);background:var(--surface-inset);cursor:pointer;width:32px;height:32px;transition:transform var(--press-dur) var(--press-ease);border-radius:100px;padding:0;overflow:hidden}.topbar-avatar-btn img{object-fit:cover;width:100%;height:100%;display:block}.topbar-profile .account-dropdown-wrapper{width:250px;top:calc(100% + 6px);left:auto;right:0}.topbar-profile .account-dropdown{transform-origin:100% 0}.page-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:0 24px 10px;display:flex}.page-header-left{align-items:center;gap:10px;min-width:0;display:flex}.breadcrumbs{letter-spacing:var(--letter-spacing-normal);color:var(--text-muted);white-space:nowrap;align-items:center;gap:8px;min-width:0;font-size:20px;font-weight:500;line-height:24px;display:flex}.breadcrumbs-link{cursor:pointer;color:var(--text-muted);transition:color .1s}.breadcrumbs-link:hover{color:var(--text-primary)}.breadcrumbs-sep{color:var(--text-placeholder)}.breadcrumbs-current{color:var(--text-primary);text-overflow:ellipsis;overflow:hidden}.page-header-controls{flex-shrink:0;align-items:center;gap:4px;min-height:32px;display:flex}.year-switcher{position:relative}.year-switcher-trigger{border:.5px solid var(--border-strong);background:var(--surface-elevated);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-tertiary);border-radius:100px;align-items:center;gap:2px;padding:6px 8px 6.5px 10px;font-size:14px;transition:opacity .1s;display:flex}.year-switcher-trigger:hover{background:var(--state-hover);color:var(--text-primary)}.board-filter{position:relative}.board-filter-trigger{border:.5px solid var(--border-strong);background:var(--surface-elevated);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-tertiary);transition:opacity .1s, transform var(--press-dur) var(--press-ease);border-radius:100px;align-items:center;gap:2px;padding:6px 8px 6.5px 10px;font-size:14px;display:flex}.board-filter-trigger:hover{background:var(--state-hover);color:var(--text-primary)}.grid-density{border:.5px solid var(--border-strong);background:var(--surface-elevated);border-radius:100px;align-items:center;gap:1px;padding:3px;display:inline-flex}.grid-density-seg{color:var(--text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s, color .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:100px;place-items:center;padding:6.9px;display:grid}.grid-density-seg svg{width:11px;height:11px;display:block}.grid-density-seg:not([aria-pressed=true]):hover{background:var(--state-hover);color:var(--text-primary)}.grid-density-seg[aria-pressed=true]{background:var(--state-selected);color:var(--text-primary)}.grid-density-seg:focus-visible{outline:2px solid var(--brand-primary);outline-offset:1px}.icon-btn{width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;transition:background .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.icon-btn:hover{color:var(--text-primary);background:#0000000d}.timeline-grid-content{flex:1 0 auto;padding:4px 12px 24px}.month-grid{grid-template-columns:repeat(var(--grid-cols,4), 1fr);gap:12px;display:grid}.month-card{cursor:pointer;background:var(--surface-elevated);box-shadow:var(--shadow-block);border:.5px solid var(--border-default);transition:background var(--card-hover-fade) var(--card-lift-ease), border-color var(--card-hover-fade) var(--card-lift-ease), transform var(--card-lift-out) var(--card-lift-ease);border-radius:12px;padding:4px 4px 12px;box-shadow:0 0 1px #615f5e0d}.month-card:hover{background:var(--state-hover);border:.5px solid var(--border-strong)}.month-card.menu-open:hover{background:var(--surface-elevated);border-color:var(--border-default)}.month-card-image-area{aspect-ratio:1;background:var(--surface-inset);border:.5px solid var(--border-default);border-radius:8px;position:relative;overflow:hidden}.month-card-image-area img{object-fit:cover;width:100%;height:100%;display:block}.month-card-footer{justify-content:space-between;align-items:center;padding:8px 8px 0;display:flex}.month-card-name-row{align-items:center;gap:6px;font-size:16px;line-height:20px;display:flex}.month-card-name{color:var(--text-primary);font-size:16px;line-height:20px}.month-card-name--has-content{color:var(--text-primary)}.month-card-name--empty{color:var(--text-muted)}.month-card-menu-wrapper{position:relative}.month-card-menu{color:var(--text-muted);cursor:pointer;transition:background .1s, opacity var(--card-hover-fade) var(--card-lift-ease);-webkit-user-select:none;user-select:none;opacity:0;border-radius:6px;padding:3px;line-height:1;display:block}.month-card:hover .month-card-menu{opacity:1}.month-card-menu:hover{background:var(--state-hover);color:var(--text-primary)}.year-grid{grid-template-columns:repeat(var(--grid-cols,4), 1fr);gap:12px;display:grid}.year-card{cursor:pointer;background:var(--surface-elevated);box-shadow:var(--shadow-block);border:.5px solid var(--border-default);transition:background var(--card-hover-fade) var(--card-lift-ease), border-color var(--card-hover-fade) var(--card-lift-ease), transform var(--card-lift-out) var(--card-lift-ease);border-radius:12px;padding:4px 4px 12px;box-shadow:0 0 1px #615f5e0d}.year-card:hover{background:var(--state-hover);border:.5px solid var(--border-strong)}.year-card.menu-open:hover{background:var(--surface-elevated);border-color:var(--border-default)}.year-card-image-area{aspect-ratio:1;background:var(--surface-inset);border:.5px solid var(--border-default);border-radius:8px;position:relative;overflow:hidden}.year-card-image-area img{object-fit:cover;width:100%;height:100%;display:block}.year-card-footer{justify-content:space-between;align-items:center;padding:8px 8px 0;display:flex}.year-card-name-row{align-items:center;gap:6px;font-size:16px;line-height:20px;display:flex}.year-card-name{color:var(--text-primary);font-size:16px;line-height:20px}.year-card-menu-wrapper{position:relative}.year-card-menu{color:var(--text-muted);cursor:pointer;transition:background .1s, opacity var(--card-hover-fade) var(--card-lift-ease);-webkit-user-select:none;user-select:none;opacity:0;border-radius:6px;padding:3px;line-height:1;display:block}.year-card:hover .year-card-menu{opacity:1}.year-card-menu:hover{background:var(--state-hover);color:var(--text-primary)}.month-detail-content{padding:80px var(--detail-padding-x) 80px var(--detail-padding-x);flex-direction:column;flex:1 0 auto;gap:16px;display:flex}.month-detail-header{justify-content:space-between;align-items:flex-start;padding:0 20px 8px;display:flex}.month-detail-title-group{flex-direction:column;flex:auto;gap:32px;min-width:0;display:flex}.month-header-top{flex-direction:column;align-self:stretch;gap:16px;display:flex}.month-detail-title{letter-spacing:var(--letter-spacing-tight);color:var(--text-primary);font-size:30px;font-weight:600;line-height:1.25}.month-detail-sub{color:var(--text-tertiary)}.month-detail-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.month-description{flex-direction:column;align-self:stretch;gap:4px;width:100%;min-width:0;display:flex}.month-description-textarea{resize:none;width:100%;min-width:0;max-width:100%;font-family:var(--font-sans);color:var(--text-primary);caret-color:var(--text-primary);background:0 0;border:none;outline:none;min-height:20px;padding:0;font-size:13px;font-weight:400;line-height:20px;display:block;overflow:hidden}.month-description-textarea::placeholder{color:var(--text-muted);opacity:1}.places-container{--place-line-height:16px;flex-wrap:wrap;align-self:stretch;align-items:start;gap:6px 12px;display:flex}.places-label{font-family:var(--font-sans);font-size:14px;font-weight:500;line-height:var(--place-line-height);letter-spacing:var(--letter-spacing-normal);color:var(--text-tertiary);border-block:.5px solid #0000;padding-block:4px}.places-list{flex-wrap:wrap;flex:1;align-content:start;align-items:start;gap:6px;display:flex}.place-pill{background:var(--surface-elevated);border:.5px solid var(--border-strong);font-family:var(--font-sans);font-size:12px;font-weight:500;line-height:var(--place-line-height);letter-spacing:var(--letter-spacing-normal);color:var(--text-primary);cursor:default;border-radius:12px;align-items:center;padding:4px 8px;transition:background .1s;display:inline-flex;position:relative;box-shadow:0 1px 4px #0000000d}.place-pill:hover{background:var(--state-hover)}.place-pill-text,.place-pill-field,.place-pill-field>input{font:inherit;letter-spacing:inherit;color:inherit}.place-pill-text{transition:-webkit-mask-image .1s,mask-image .1s;display:block}.place-pill:hover .place-pill-text{-webkit-mask-image:linear-gradient(90deg,#000 70%,#0000 95%);mask-image:linear-gradient(90deg,#000 70%,#0000 95%)}.place-pill-settings{cursor:pointer;opacity:0;width:20px;height:20px;transition:opacity .1s, background .1s, transform var(--press-dur) var(--press-ease);color:var(--text-tertiary);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;right:2px}.place-pill:hover .place-pill-settings{opacity:1}.place-pill-settings:hover{background:var(--state-hover);color:var(--text-secondary)}.place-pill--adding{cursor:text}.place-pill-field{min-width:8px;display:block;position:relative}.place-pill-field:after{content:attr(data-value);white-space:pre;visibility:hidden;display:block}.place-pill-field>input{appearance:none;width:calc(100% + 2px);caret-color:var(--text-primary);background:0 0;border:none;outline:none;padding:0;position:absolute;top:0;bottom:0;left:0}.place-pill-field>input::placeholder{color:var(--text-placeholder)}.place-add-btn{cursor:pointer;font-family:var(--font-sans);font-size:12px;font-weight:500;line-height:var(--place-line-height);letter-spacing:var(--letter-spacing-normal);color:var(--text-muted);transition:color .1s, background-color .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:.5px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:4px;padding:4px 8px;display:flex}.place-add-btn svg{flex-shrink:0}.place-add-btn--icon-only{gap:0;padding:7px}.place-add-btn:hover{color:var(--text-tertiary);background-color:var(--state-hover)}.btn{background:var(--color-button);color:var(--color-button-text);cursor:pointer;font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);transition:opacity .1s, transform var(--press-dur) var(--press-ease);white-space:nowrap;border:none;border-radius:4px;align-items:center;gap:4px;padding:7px 16px;font-size:12px;font-weight:500;display:inline-flex}.btn:hover{opacity:.88}.btn-red{background:var(--color-button-error)}.text-btn-sm{color:var(--text-tertiary);cursor:pointer;font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);transition:background .1s, color .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:6px;align-items:center;gap:4px;padding:6px 10px;font-size:12px;font-weight:500;display:inline-flex}.text-btn-sm:hover{color:var(--text-primary);background:#0000000d}.text-btn-md{color:var(--text-tertiary);cursor:pointer;font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);transition:background .1s, color .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:6px;align-items:center;gap:4px;padding:6px 14px;font-size:14px;font-weight:500;display:inline-flex}.text-btn-md:hover{color:var(--text-primary);background:#0000000d}.month-empty-state{justify-content:flex-start;align-items:flex-start;padding:0;display:flex}.add-content-outer{width:fit-content;padding:16px 0 0 12px;position:relative}.add-content-btn{cursor:pointer;color:var(--text-muted);transition:background .1s, color .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:12px;align-items:center;gap:6px;padding:4px 8px;font-family:inherit;font-size:12px;font-weight:500;line-height:15px;display:flex}.add-content-btn:hover{background:var(--state-hover);color:var(--text-tertiary)}.add-content-btn svg{flex-shrink:0}.month-blocks{flex-direction:column;gap:32px;display:flex}.month-block-wrapper{position:relative}.month-block-wrapper.block-dragging{opacity:.4}.month-block-wrapper.block-drop-before:before,.month-block-wrapper.block-drop-after:after{content:"";background:var(--color-button);pointer-events:none;border-radius:1px;height:2px;display:block;position:absolute;left:0;right:0}.month-block-wrapper.block-drop-before:before{top:0}.month-block-wrapper.block-drop-after:after{bottom:0}.month-add-content-row{align-items:flex-start;display:flex}.media-block{box-shadow:var(--shadow-block);border:.5px solid var(--border-default);background-color:var(--surface-elevated);border-radius:12px;flex-direction:column;gap:10px;display:flex;box-shadow:0 1px 3px #00000008}.media-block-label-row{align-items:center;gap:6px;padding:10px 20px 0;display:flex}.media-block-title{letter-spacing:var(--letter-spacing-normal);color:var(--text-tertiary);font-size:14px;font-weight:500}.media-block-header-controls{border-radius:20px;align-items:center;display:flex}.media-block-header-controls:hover{background:var(--state-hover);color:var(--text-primary)}.media-block-header-controls .text-btn-sm:hover,.media-block-header-controls .text-btn-md:hover{color:var(--text-tertiary);background:0 0}.media-block-title-group{flex:1;align-items:center;gap:5px;min-width:0;display:flex}.block-drag-handle{color:var(--text-tertiary);opacity:0;cursor:grab;border-radius:3px;flex-shrink:0;align-items:center;padding:2px 1px;transition:opacity .1s;display:inline-flex}.block-drag-handle:active{cursor:grabbing}.media-block-title[contenteditable=true]{cursor:text;outline:none}.add-content-wrapper{position:relative}.add-content-dropdown{min-width:140px}.add-content-item{align-items:center;gap:8px;display:flex}.add-content-item.disabled{opacity:.4;cursor:default}.albums-grid{gap:var(--album-grid-gap);flex-wrap:wrap;align-items:flex-start;padding:0 16px 16px;display:flex;overflow:visible}.album-card-wrapper{flex:1 1 calc(25% - 3 * var(--album-grid-gap) / 4);max-width:calc(25% - 3 * var(--album-grid-gap) / 4);align-items:flex-start;display:flex;position:relative}.album-card{border:.5px solid var(--border-strong);width:100%;padding:var(--album-card-padding);background:0 0;border-radius:8px;flex-direction:column;transition:background .1s;display:flex;position:relative;overflow:visible;box-shadow:0 0 1px #615f5e0d}.album-card:hover{background-color:var(--state-hover)}.album-card-image{aspect-ratio:1;background:var(--surface-inset);border:.5px solid var(--border-strong);border-radius:6px;width:100%;overflow:hidden}.album-card-cover{object-fit:cover;width:100%;height:100%;display:block}.album-card-footer{align-items:start;gap:4px;display:flex}.album-card-fields{flex-direction:column;flex:1;gap:2px;min-width:0;max-width:100%;padding:6px 2px 0;display:flex}.album-card-text{font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;display:block;overflow:hidden}.album-card-input{width:100%;min-width:0;caret-color:var(--text-primary);background:0 0;border:none;outline:none;margin:0;padding:0}.album-card-input::placeholder{color:var(--text-muted)}.album-card-text.album-name-text{color:var(--text-tertiary)}.album-card-text.artist-name-text,.album-card-text.muted{color:var(--text-muted)}.media-block.media-block--notes{box-shadow:none;background-color:var(--surface-default);border:none;padding:6px 0 0}.notes-textarea{resize:none;width:100%;box-shadow:none;font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);color:var(--text-primary);background:0 0;border:none;border-radius:5px;outline:none;padding:16px 20px;font-size:12px;font-weight:500;line-height:1.5;display:block;overflow:hidden}.notes-textarea::placeholder{color:var(--text-muted)}.photos-grid{padding:var(--photo-grid-padding);align-items:start;gap:8px;display:grid}.photos-grid[data-columns="2"]{grid-template-columns:repeat(2,1fr)}.photos-grid[data-columns="3"]{grid-template-columns:repeat(3,1fr)}.photos-grid[data-columns="4"]{grid-template-columns:repeat(4,1fr)}.photo-item{cursor:default;position:relative}.photo-img{object-fit:cover;border-radius:4px;width:100%;height:auto;display:block}.column-count-controls{background:var(--surface-primary);border:.5px solid var(--border-default);border-radius:9999px;align-items:center;gap:1px;padding:2px;display:flex;box-shadow:0 1px 4px #0000000f}.column-count-btn{cursor:pointer;width:26px;height:26px;font-size:12px;font-family:var(--font-sans);color:var(--text-muted);transition:background .1s, color .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;font-weight:500;display:flex}.column-count-btn.active{background:var(--state-active);color:var(--text-tertiary)}.column-count-btn:hover:not(.active){background:var(--state-hover);color:var(--text-tertiary)}.photos-large-warning{color:var(--text-muted);margin-top:6px;font-size:11px;font-style:italic}.song-table{flex-direction:column;gap:4px;width:100%;padding:10px 16px 16px 10px;display:flex}.song-table-header{color:var(--text-muted);border-bottom:.5px solid var(--border-default);grid-template-columns:32px 50px 1fr 1fr 1fr 24px;align-items:center;gap:10px;margin-bottom:4px;padding:0 10px 8px;display:grid}.song-table-rows{flex-direction:column;gap:10px;display:flex}.song-row{cursor:default;background:0 0;border-radius:10px;grid-template-columns:32px 50px 1fr 1fr 1fr 24px;align-items:center;gap:10px;padding:6px 10px;transition:background .1s;display:grid;position:relative}.song-row:hover{background-color:var(--state-hover)}.song-row.selected{background:#88d4c81a}.song-num-cell{align-items:center;display:flex}.song-row-num{color:var(--text-muted)}.song-row-menu{justify-content:center;align-items:center;display:flex;position:relative}.song-row-menu-btn{cursor:pointer;color:var(--text-muted);opacity:0;transition:opacity .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;align-items:center;padding:0;display:flex}.song-table.view-mode .song-row:hover .song-row-menu-btn{opacity:1}.header-menu-dots{color:var(--text-muted);justify-content:center;align-items:center;display:flex;position:relative}.song-row-art{background:var(--surface-inset);border-radius:6px;flex-shrink:0;width:50px;height:50px;overflow:hidden}.song-row-art img{object-fit:cover;width:100%;height:100%;display:block}.song-track-cell{position:relative}.song-input{color:var(--text-primary);width:100%;caret-color:var(--text-primary);text-overflow:ellipsis;background:0 0;border:none;outline:none;padding:0}.song-input::placeholder{color:var(--text-muted)}.song-static-text{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.song-static-text.muted{color:var(--text-tertiary)}.song-table-wrapper{grid-template-columns:1fr;display:grid;position:relative}.month-list{flex-direction:column;gap:2px;display:flex}.month-list-row{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;transition:background .1s;display:flex}.month-list-row:hover{background-color:var(--state-hover)}.month-list-image{background:var(--surface-inset);border-radius:8px;flex-shrink:0;width:50px;height:50px;overflow:hidden}.month-list-image img{object-fit:cover;width:100%;height:100%;display:block}.month-list-name-row{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.month-list-name{color:var(--text-primary)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-cancel{color:var(--text-tertiary);cursor:pointer;font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);transition:background .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:4px;align-items:center;padding:7px 16px;font-size:12px;font-weight:500;display:inline-flex}.btn-cancel:hover{background:#0000000a}.create-menu-wrapper{position:relative}.boards-view-content{flex:1 0 auto;padding:4px 12px 24px}.boards-grid{grid-template-columns:repeat(var(--grid-cols,4), 1fr);gap:12px;display:grid}:root[data-density=s]{--grid-cols:6}:root[data-density=m]{--grid-cols:4}:root[data-density=l]{--grid-cols:3}@media (width<=1199px){:root[data-density=s]{--grid-cols:4}:root[data-density=m]{--grid-cols:3}:root[data-density=l]{--grid-cols:2}:root:not([data-density]){--grid-cols:3}}@media (width<=699px){:root[data-density=s]{--grid-cols:3}:root[data-density=m]{--grid-cols:2}:root[data-density=l]{--grid-cols:1}:root:not([data-density]){--grid-cols:2}}.boards-empty-state{color:var(--text-muted);padding:10px 0 0}.board-card{cursor:pointer;background:var(--surface-elevated);border:.5px solid var(--border-default);transition:background var(--card-hover-fade) var(--card-lift-ease), border-color var(--card-hover-fade) var(--card-lift-ease), transform var(--card-lift-out) var(--card-lift-ease);border-radius:12px;padding:4px 4px 12px;box-shadow:0 0 1px #615f5e0d}.board-card:hover{background:var(--state-hover);border:.5px solid var(--border-strong)}.board-card-image-area{aspect-ratio:1;background:var(--surface-inset);border:.5px solid var(--border-default);border-radius:8px;position:relative;overflow:hidden}.board-card-image-area img{object-fit:cover;width:100%;height:100%;display:block}.board-card-footer{justify-content:space-between;align-items:center;padding:8px 8px 0;display:flex}.board-card-name-row{align-items:center;gap:6px;font-size:16px;line-height:20px;display:flex}.board-card-name{color:var(--text-primary);font-size:16px;line-height:20px}.board-card-name--has-content{color:var(--text-primary)}.board-card-name--empty,.board-card-meta{color:var(--text-muted)}.board-card.menu-open:hover{background:var(--surface-elevated);border-color:var(--border-default)}.board-card-menu-wrapper{position:relative}.board-card-menu{color:var(--text-muted);cursor:pointer;transition:background .1s, opacity var(--card-hover-fade) var(--card-lift-ease);-webkit-user-select:none;user-select:none;opacity:0;border-radius:6px;padding:3px;line-height:1;display:block}.board-card:hover .board-card-menu,.board-card.menu-open .board-card-menu{opacity:1}.board-card-menu:hover{background:var(--state-hover);color:var(--text-primary)}.boards-list{flex-direction:column;gap:2px;display:flex}.board-list-row{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;transition:background .1s;display:flex}.board-list-row:hover{background-color:var(--state-hover)}.board-list-image{background:var(--surface-inset);border-radius:8px;flex-shrink:0;width:50px;height:50px;overflow:hidden}.board-list-image img{object-fit:cover;width:100%;height:100%;display:block}.board-list-name-row{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.board-list-menu-wrapper{margin-left:auto}.board-list-row:hover .board-card-menu,.board-list-row.menu-open .board-card-menu{opacity:1}.board-folder-card{background:var(--surface-elevated);border-radius:12px;padding:4px}.board-folder-icon{aspect-ratio:1;background:var(--surface-inset);color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;display:flex}.board-folder-footer{flex-direction:column;gap:2px;padding:8px 4px 4px;display:flex}.board-detail-content{flex:1;padding:32px;overflow-y:auto}.overlay-scrim{z-index:200;background:#0006;justify-content:center;align-items:center;animation:.16s cubic-bezier(.215,.61,.355,1) both modal-backdrop-in;display:flex;position:fixed;inset:0}.overlay-scrim--closing{animation:.13s cubic-bezier(.215,.61,.355,1) both modal-backdrop-out}@keyframes modal-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes modal-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.94)}}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-backdrop-out{0%{opacity:1}to{opacity:0}}.overlay-modal{background:var(--surface-elevated);border-radius:12px;width:400px;padding:24px;animation:.16s cubic-bezier(.215,.61,.355,1) both modal-in;overflow:hidden}.overlay-modal--closing{animation:.13s cubic-bezier(.215,.61,.355,1) both modal-out}.overlay-title{color:var(--text-primary);text-align:center;margin-bottom:20px;font-size:14px;font-weight:500}.overlay-cover-picker{background:var(--surface-inset);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:120px;height:120px;margin:0 auto 20px;display:flex;overflow:hidden}.overlay-cover-picker img{object-fit:cover;width:100%;height:100%;display:block}.overlay-cover-plus{color:var(--text-muted);display:flex}.overlay-label{color:var(--text-muted);margin-bottom:4px}.overlay-input{background:var(--surface-elevated);width:100%;color:var(--text-primary);border:none;border-radius:8px;outline:none;padding:8px 12px}.overlay-input:focus{box-shadow:0 0 0 2px #88d4c859}.overlay-actions{justify-content:flex-end;align-items:center;gap:8px;margin-top:20px;display:flex}.overlay-modal-year{background:var(--surface-primary);border:.5px solid var(--border-strong);border-radius:20px;flex-direction:column;align-items:center;gap:16px;width:400px;padding:24px;animation:.16s cubic-bezier(.215,.61,.355,1) both modal-in;display:flex;overflow:hidden}.overlay-modal-year--closing{animation:.13s cubic-bezier(.215,.61,.355,1) both modal-out}.overlay-modal-year .overlay-title{color:var(--text-primary);text-align:center;align-self:stretch;margin:0;font-size:18px;font-weight:500;line-height:22px}.overlay-year-input-wrapper{text-align:left;flex-direction:column;align-items:center;gap:0;margin:0;display:flex}.overlay-year-input{width:250px;font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);color:var(--text-primary);caret-color:var(--text-primary);text-align:left;background:0 0;border:none;outline:none;padding:0;font-size:100px;font-weight:500;line-height:100%}.overlay-year-input::placeholder{color:var(--text-disabled)}.overlay-year-input:placeholder-shown{text-align:center}.overlay-error{color:var(--text-error);margin-top:8px;font-size:12px}.overlay-modal-year .overlay-actions{justify-content:flex-end;align-self:stretch;align-items:center;gap:4px;margin:0;display:flex}.overlay-modal-year .btn-cancel{color:var(--text-tertiary);background:0 0;border-radius:9999px;padding:7px 20px;font-size:12px;font-weight:500;line-height:16px}.overlay-modal-year .btn-cancel:hover{background:var(--state-hover)}.overlay-modal-year .btn{background:var(--brand-primary);color:var(--white);border-radius:9999px;padding:7px 20px;font-size:12px;font-weight:500;line-height:16px}.overlay-modal-month{background:var(--surface-primary);border:.5px solid var(--border-strong);border-radius:20px;flex-direction:column;align-items:center;gap:16px;width:fit-content;padding:24px;animation:.16s cubic-bezier(.215,.61,.355,1) both modal-in;display:flex;overflow:hidden}.overlay-modal-month--closing{animation:.13s cubic-bezier(.215,.61,.355,1) both modal-out}.overlay-modal-month .overlay-month-header{justify-content:center;align-self:stretch;display:flex}.overlay-modal-month .overlay-title{color:var(--text-primary);text-align:center;flex:1;margin:0;font-size:18px;font-weight:500;line-height:22px}.overlay-month-grid{grid-template-columns:repeat(4,80px);gap:5px;display:grid}.overlay-month-item{background:var(--surface-elevated);border:.5px solid var(--border-default);cursor:pointer;width:80px;height:80px;font-family:var(--font-sans);transition:transform var(--press-dur) var(--press-ease);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:0;padding:0;display:flex;box-shadow:0 1px 4px #0000000a}.overlay-month-item:hover:not(:disabled):not(.overlay-month-item--existing):not(.overlay-month-item--selected){background:var(--state-hover)}.overlay-month-item__num{color:var(--text-tertiary);text-align:center;font-size:36px;font-weight:500;line-height:45px}.overlay-month-item:not(.overlay-month-item--existing):not(.overlay-month-item--selected) .overlay-month-item__num:hover{color:var(--text-secondary)}.overlay-month-item__name{color:var(--text-tertiary);font-size:12px;font-weight:500;line-height:15px}.overlay-month-item:not(.overlay-month-item--existing):not(.overlay-month-item--selected) .overlay-month-item__name:hover{color:var(--text-secondary)}.overlay-month-item--existing .overlay-month-item__num,.overlay-month-item--existing .overlay-month-item__name{color:var(--text-disabled)}.overlay-month-item--selected{background:var(--brand-secondary);border:.5px solid var(--brand-secondary)}.overlay-month-item--selected .overlay-month-item__num,.overlay-month-item--selected .overlay-month-item__name{color:var(--text-on-action)}.overlay-month-footer{justify-content:space-between;align-self:stretch;align-items:center;display:flex}.overlay-month-actions{gap:4px;display:flex}.overlay-modal-month .btn-cancel{color:var(--text-tertiary);background:0 0;border-radius:9999px;padding:7px 20px;font-size:12px;font-weight:500;line-height:16px}.overlay-modal-month .btn-cancel:hover{background:var(--state-hover)}.overlay-modal-month .btn{background:var(--brand-primary);color:var(--white);border-radius:9999px;padding:7px 20px;font-size:12px;font-weight:500;line-height:16px}.back-btn{width:30px;height:30px;color:var(--text-tertiary);cursor:pointer;transition:transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:9999px;justify-content:center;align-items:center;padding:4px;display:inline-flex;position:relative}.back-btn:hover{background:var(--state-hover)}.back-btn--hidden{opacity:0;pointer-events:none}.back-btn-tooltip{transform-origin:50% calc(100% + 19px);background:var(--text-primary);color:var(--surface-elevated);font-size:11px;font-weight:500;font-family:var(--font-sans);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .1s, transform var(--press-dur) var(--press-ease);z-index:10;letter-spacing:var(--letter-spacing-normal);border-radius:4px;padding:4px 8px;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.back-btn:hover .back-btn-tooltip{opacity:1}.back-btn:active .back-btn-tooltip{transform:translateX(-50%) scale(calc(1 / var(--press-scale)))}@media (prefers-reduced-motion:reduce){.back-btn:active .back-btn-tooltip{transform:translate(-50%)}}.back-btn--hidden .back-btn-tooltip{display:none}.settings-overlay-page{-webkit-backdrop-filter:blur(6px);z-index:1000;letter-spacing:var(--letter-spacing-normal);background:#3f3f3e66;flex-direction:column;justify-content:center;align-items:center;animation:.18s cubic-bezier(.22,1,.36,1) both modal-backdrop-in;display:flex;position:fixed;inset:0}.settings-overlay-page--closing{animation:.18s cubic-bezier(.215,.61,.355,1) both modal-backdrop-out}.settings-modal{background:var(--surface-primary);border:.5px solid var(--border-strong);border-radius:24px;flex-direction:column;width:100%;min-width:800px;max-width:1160px;max-height:90vh;animation:.18s cubic-bezier(.22,1,.36,1) both settings-modal-in;display:flex;overflow:hidden}.settings-modal--closing{animation:.18s cubic-bezier(.215,.61,.355,1) both settings-modal-out}@keyframes settings-modal-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes settings-modal-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}@media (prefers-reduced-motion:reduce){.settings-overlay-page,.settings-overlay-page--closing,.settings-modal,.settings-modal--closing{animation:none}}.settings-overlay-header{flex-shrink:0;align-items:center;gap:6px;padding:10px 16px 10px 12px;display:flex}.settings-back-btn{cursor:pointer;color:var(--text-muted);font-size:10px;font-weight:500;font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);transition:transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:20px;align-items:center;gap:5px;padding:6px 8px 6px 6px;display:flex}.settings-back-btn:hover{color:var(--text-tertiary);background-color:var(--state-hover)}.settings-esc-badge{background:var(--surface-elevated);border:.5px solid var(--border-default);font-size:8px;font-weight:500;font-family:var(--font-sans);color:var(--text-muted);letter-spacing:var(--letter-spacing-normal);opacity:0;border-radius:4px;justify-content:center;align-items:center;padding:3px 5px;display:flex}.settings-overlay-content{flex-direction:column;gap:32px;padding:22px 144px 64px;display:flex;overflow-y:auto}.settings-overlay-title{font-size:20px;font-weight:500;font-family:var(--font-sans);color:var(--text-primary);letter-spacing:var(--letter-spacing-normal);padding:0 16px}.settings-section-group{flex-direction:column;gap:10px;display:flex}.settings-section-title{font-size:12px;font-weight:500;font-family:var(--font-sans);color:var(--text-tertiary);letter-spacing:var(--letter-spacing-normal);padding:0 16px}.settings-account-body{align-items:flex-start;gap:24px;padding:0 16px;display:flex}.settings-avatar-wrap{flex-shrink:0;position:relative}.settings-avatar-img{object-fit:cover;border-radius:10px;width:80px;height:80px;display:block}.settings-avatar-placeholder{background:var(--surface-inset);border-radius:10px;flex-shrink:0;width:80px;height:80px}.settings-avatar-edit-icon{cursor:pointer;justify-content:center;align-items:center;width:16px;height:16px;display:flex;position:absolute;top:69px;left:69px;transform:translate(-50%,-50%)}.settings-display-name-field{flex-direction:column;gap:5px;display:flex}.settings-display-name-label{font-size:12px;font-weight:500;font-family:var(--font-sans);color:var(--text-tertiary);letter-spacing:var(--letter-spacing-normal)}.settings-display-name-value{background:var(--surface-elevated);border:.5px solid var(--border-default);width:200px;font-size:12px;font-weight:500;font-family:var(--font-sans);color:var(--text-primary);letter-spacing:var(--letter-spacing-normal);border-radius:6px;padding:8px 10px;line-height:12px}.settings-security-body{background:var(--surface-elevated);border:.5px solid var(--border-default);border-radius:10px;flex-direction:column;gap:10px;padding:10px 16px;display:flex}.settings-security-row{border-bottom:.5px solid var(--border-default);justify-content:space-between;align-items:center;padding-bottom:10px;display:flex}.settings-security-row--last{border-bottom:none;padding-bottom:0}.settings-security-label-group{flex-direction:column;width:420px;display:flex}.settings-security-label{font-size:12px;font-weight:500;font-family:var(--font-sans);color:var(--text-primary);letter-spacing:var(--letter-spacing-normal);line-height:18px}.settings-security-sublabel{font-size:12px;font-weight:500;font-family:var(--font-sans);color:var(--text-tertiary);letter-spacing:var(--letter-spacing-normal);line-height:18px}.settings-action-btn{background:var(--surface-elevated);border:.5px solid var(--border-strong);font-size:12px;font-weight:500;font-family:var(--font-sans);color:var(--text-primary);cursor:pointer;white-space:nowrap;letter-spacing:var(--letter-spacing-normal);transition:background .1s, transform var(--press-dur) var(--press-ease);border-radius:6px;padding:8px 10px;line-height:12px}.settings-action-btn:hover{background:var(--state-hover)}.settings-appearance-body{background:var(--surface-elevated);border:.5px solid var(--border-default);border-radius:10px;padding:10px 16px}.settings-appearance-row{justify-content:space-between;align-items:center;display:flex}.settings-theme-dropdown-wrapper{position:relative}.settings-theme-toggle{border:.5px solid var(--border-strong);cursor:pointer;font-family:var(--font-sans);transition:transform var(--press-dur) var(--press-ease);background:0 0;border-radius:6px;align-items:center;gap:5px;padding:4px 8px 4px 4px;display:flex}.settings-theme-toggle:hover{background-color:var(--state-hover)}.settings-theme-indicator{background:var(--surface-elevated);border:.5px solid var(--border-strong);border-radius:4px;align-items:center;gap:5px;padding:4px 6px;display:flex}.settings-theme-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px}.settings-theme-aa{font-size:10px;font-weight:500;font-family:var(--font-sans);color:var(--text-primary);letter-spacing:var(--letter-spacing-normal)}.settings-theme-name{font-size:12px;font-weight:500;font-family:var(--font-sans);color:var(--text-primary);letter-spacing:var(--letter-spacing-normal)}.settings-theme-chevron{color:var(--text-primary)}.settings-theme-menu{background:var(--surface-elevated);border:.5px solid var(--border-strong);border-radius:var(--dropdown-radius-xs);z-index:10;min-width:100px;padding:4px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 2px 8px #3f3f3e1a}.settings-theme-menu-item{font-size:12px;font-weight:500;font-family:var(--font-sans);color:var(--text-secondary);cursor:pointer;border-radius:var(--dropdown-item-radius-xs);letter-spacing:var(--letter-spacing-normal);justify-content:space-between;align-items:center;padding:6px 12px;display:flex}.settings-theme-menu-item:hover{background:var(--state-hover);color:var(--text-primary)}.settings-danger-body{background:var(--surface-elevated);border:.5px solid var(--border-default);border-radius:10px;padding:16px}.settings-delete-account-btn{background:var(--color-button-error);font-size:12px;font-weight:500;font-family:var(--font-sans);color:var(--text-error);cursor:pointer;white-space:nowrap;letter-spacing:var(--letter-spacing-normal);transition:background .1s, transform var(--press-dur) var(--press-ease);border:none;border-radius:6px;padding:8px 10px;line-height:12px}.settings-delete-account-btn:hover{background:var(--hover-error)}.account-dropdown-wrapper{z-index:100;padding-left:0;position:absolute;top:calc(100% + 4px);left:0;right:0}.account-dropdown{background:var(--surface-elevated);border:.5px solid var(--border-strong);border-radius:var(--dropdown-radius-lg);transform-origin:0 0;padding:8px 0 4px;animation:.15s cubic-bezier(.215,.61,.355,1) both account-dropdown-in;overflow:hidden;box-shadow:0 1px 4px #0000000d}@keyframes account-dropdown-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes account-dropdown-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}.account-dropdown--closing{animation:.12s cubic-bezier(.215,.61,.355,1) both account-dropdown-out}@media (prefers-reduced-motion:reduce){.account-dropdown,.account-dropdown--closing{animation:none}}.account-dropdown-profile{border-bottom:.5px solid var(--border-default);align-items:center;gap:8px;padding:2px 14px 8px;display:flex}.account-dropdown-profile-info{flex-direction:column;gap:1px;display:flex}.account-dropdown-avatar{background:var(--surface-inset);border-radius:50%;flex-shrink:0;width:30px;height:30px;overflow:hidden}.account-dropdown-avatar img{object-fit:cover;width:100%;height:100%;display:block}.account-dropdown-avatar-sm{background:var(--surface-inset);border-radius:50%;flex-shrink:0;width:18px;height:18px;overflow:hidden}.account-dropdown-avatar-sm img{object-fit:cover;width:100%;height:100%;display:block}.account-dropdown-name{font-size:13px;font-weight:600;line-height:1.5em;font-family:var(--font-sans);color:var(--text-primary);letter-spacing:var(--letter-spacing-normal);line-height:14px}.account-dropdown-email{font-size:11px;font-weight:500;font-family:var(--font-sans);color:var(--text-tertiary);letter-spacing:var(--letter-spacing-normal);line-height:12px}.account-dropdown-accounts{border-bottom:.5px solid var(--border-default);flex-direction:column;padding:4px;display:flex}.account-dropdown-account-item{border-radius:var(--dropdown-item-radius-lg);cursor:pointer;align-items:center;gap:6px;padding:8px 10px;display:flex}.account-dropdown-account-item:hover{background:var(--state-hover);color:var(--text-primary)}.account-dropdown-account-item:hover .account-dropdown-account-name,.account-dropdown-account-item:hover .account-dropdown-add-text,.account-dropdown-account-item:hover .account-dropdown-add-icon{color:var(--text-primary)}.account-dropdown-account-name{font-size:13px;font-weight:500;font-family:var(--font-sans);color:var(--text-secondary);letter-spacing:var(--letter-spacing-normal)}.account-dropdown-add-icon{width:18px;height:18px;color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.account-dropdown-add-icon-svg{width:8px;height:8px}.account-dropdown-add-text{font-size:13px;font-weight:500;font-family:var(--font-sans);color:var(--text-secondary);letter-spacing:var(--letter-spacing-normal)}.account-dropdown-bottom{flex-direction:column;padding:4px 4px 0;display:flex}.account-dropdown-item{border-radius:var(--dropdown-item-radius-lg);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-sans);color:var(--text-secondary);text-align:left;width:100%;letter-spacing:var(--letter-spacing-normal);background:0 0;border:none;align-items:center;padding:8px 10px;display:flex;position:relative}.account-dropdown-item:hover{background:var(--state-hover);color:var(--text-primary)}.account-dropdown-item__content{transition:transform var(--press-dur) var(--press-ease);align-items:center;display:flex}.account-dropdown-item:active .account-dropdown-item__content{transform:scale(var(--press-scale-content))}@media (prefers-reduced-motion:reduce){.account-dropdown-item:active .account-dropdown-item__content{transform:none}}.account-dropdown-tooltip{background:var(--text-primary);color:var(--surface-elevated);font-size:11px;font-weight:500;font-family:var(--font-sans);white-space:nowrap;pointer-events:none;z-index:10;letter-spacing:var(--letter-spacing-normal);border-radius:4px;padding:4px 8px;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.toast-container{z-index:500;border:.5px solid var(--border-subtle);border-radius:8px;position:fixed;bottom:32px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 0 3px #3f3f3e1a}.toast{background:var(--surface-elevated);align-items:center;gap:8px;padding:10px 16px;display:flex}.toast-divider{background:var(--text-muted);align-self:stretch;width:1px}.toast-text{color:var(--text-primary);white-space:nowrap;font-size:12px;font-weight:500}.toast-restore-btn{font-size:12px;font-weight:700;font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);color:var(--text-primary);cursor:pointer;white-space:nowrap;transition:transform var(--press-dur) var(--press-ease);background:0 0;border:none;padding:0}.toast-restore-btn:hover{color:var(--text-tertiary)}.block-controls{opacity:0;z-index:10;flex-direction:row;align-items:center;gap:2px;padding-top:1px;padding-bottom:1px;padding-right:8px;transition:opacity .1s;display:flex;position:absolute;top:12px;right:100%}.month-block-wrapper:hover .block-controls,.block-controls:hover{opacity:1}.block-controls-drag{cursor:grab;color:var(--text-muted);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px 2px;line-height:1;transition:background .1s;display:flex}.block-controls-drag:hover{background-color:var(--state-hover)}.block-controls-drag:active{cursor:grabbing}.block-controls-drag svg,.block-insert-btn svg{width:12px;height:12px}.block-insert-btn-wrapper{justify-content:start;position:relative}.block-insert-btn{cursor:pointer;color:var(--text-muted);transition:background .1s, color .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;line-height:1;display:flex}.block-insert-btn:hover{background-color:var(--state-hover);color:var(--text-tertiary)}.block-move-btn-wrapper{position:relative}.kbd-badge{background:var(--surface-inset);border:.5px solid var(--border-subtle);color:var(--text-muted);letter-spacing:var(--letter-spacing-normal);border-radius:4px;padding:1px 5px;font-family:monospace;font-size:11px}.add-row-btn{background:var(--surface-elevated);border:.5px solid var(--border-strong);cursor:pointer;color:var(--text-muted);transition:background .1s, transform var(--press-dur) var(--press-ease);border-radius:6px;justify-content:center;align-items:center;padding:6px 0;display:flex}.add-row-btn:hover{background:var(--state-hover)}.add-row-btn svg{width:10px;height:10px}.song-table-hover-zone{left:0;right:0;bottom:calc(-1 * (var(--add-row-gap) + var(--add-row-btn-height)));height:calc(var(--add-row-hover-extension) + var(--add-row-gap) + var(--add-row-btn-height));pointer-events:all;z-index:2;background:0 0;position:absolute}.add-row-btn-song{bottom:calc(-1 * (var(--add-row-gap) + var(--add-row-btn-height)));height:var(--add-row-btn-height);opacity:0;pointer-events:none;z-index:3;transition:opacity .15s;position:absolute;left:0;right:0}.song-table-hover-zone:hover~.add-row-btn-song,.add-row-btn-song:hover{opacity:1;pointer-events:all}.add-row-btn-song:hover{background:var(--surface-primary)}.album-grid-wrapper,.photo-grid-wrapper{position:relative}.song-table .song-row:hover .song-row-menu-btn{opacity:1}.search-dropdown{z-index:100;background:var(--surface-primary);border:.5px solid var(--border-strong);border-radius:var(--dropdown-radius-lg);flex-direction:column;width:400px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0}.search-dropdown-item{border-radius:var(--dropdown-item-radius-lg);cursor:pointer;background:0 0;align-items:center;gap:10px;padding:8px 10px;display:flex}.search-dropdown-item.active{background:var(--surface-inset)}.search-dropdown-thumb{background:var(--surface-inset);border-radius:3px;flex-shrink:0;width:32px;height:32px}.search-dropdown-info{flex-direction:column;min-width:0;display:flex}.search-dropdown-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.search-dropdown-artist{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.song-edit-modal-backdrop{z-index:1000;background:#3f3f3e66;justify-content:center;align-items:center;animation:.16s cubic-bezier(.215,.61,.355,1) both modal-backdrop-in;display:flex;position:fixed;inset:0}.song-edit-modal-backdrop--closing{animation:.13s cubic-bezier(.215,.61,.355,1) both modal-backdrop-out}.song-edit-modal{background:var(--surface-primary);border:.5px solid var(--border-strong);border-radius:20px;flex-direction:column;width:750px;min-height:650px;max-height:90vh;animation:.16s cubic-bezier(.215,.61,.355,1) both modal-in;display:flex;overflow:hidden}.song-edit-modal--closing{animation:.13s cubic-bezier(.215,.61,.355,1) both modal-out}.song-edit-modal-top{flex-direction:column;flex:auto;gap:0;min-height:0;display:flex}.song-edit-modal-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 20px;display:flex}.song-edit-modal-title{color:var(--text-tertiary);font-size:14px;font-weight:500}.song-edit-modal-title[contenteditable=true]{cursor:text;outline:none}.song-edit-modal-list{flex-direction:column;gap:8px;max-height:496px;padding:0 10px;display:flex;overflow-y:auto}.song-edit-modal-row{background:var(--surface-primary);cursor:default;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;transition:background .1s,transform .15s,box-shadow .1s;display:flex}.song-edit-modal-row:hover{background:var(--state-hover)}.song-edit-modal-row.dragging{background:var(--surface-primary);box-shadow:0 1px 4px #0000001a}.song-edit-row-art{background:var(--surface-inset);border-radius:6px;flex-shrink:0;width:50px;height:50px;overflow:hidden}.song-edit-row-art img{object-fit:cover;width:100%;height:100%;display:block}.song-edit-row-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.song-edit-row-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}.song-edit-row-sub{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.song-edit-row-controls{flex-shrink:0;align-items:center;gap:2px;display:flex}.song-edit-modal-icon-btn{cursor:pointer;width:28px;height:28px;color:var(--text-muted);transition:background .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.song-edit-modal-icon-btn:hover{background:var(--state-hover);color:var(--text-secondary)}.song-edit-modal-header-icon-btn{cursor:pointer;width:28px;height:28px;color:var(--text-tertiary);transition:background .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.song-edit-modal-header-icon-btn svg,.album-edit-modal-header-icon-btn svg,.photo-edit-modal-header-icon-btn svg{width:11px;height:11px}.song-edit-modal-header-icon-btn:hover{background:var(--state-hover);color:var(--text-secondary)}.song-edit-drag-handle{cursor:grab;touch-action:none}.song-edit-drag-handle:active{cursor:grabbing}.song-edit-modal-search{flex-shrink:0;padding:2px 20px 8px}.song-edit-search-bar-wrapper{position:relative}.song-edit-search-bar{background:var(--color-pill);border:.5px solid var(--border-default);border-radius:8px;align-items:center;gap:12px;padding:12px 16px;display:flex;box-shadow:0 1px 3px #00000008}.song-edit-search-icon{color:var(--text-muted);flex-shrink:0}.song-edit-search-input{color:var(--text-primary);caret-color:var(--text-primary);font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);background:0 0;border:none;outline:none;flex:1;font-size:12px;font-weight:500}.song-edit-search-input::placeholder{color:var(--text-placeholder)}.song-edit-search-results{background:var(--surface-elevated);border:.5px solid var(--border-strong);border-radius:var(--dropdown-radius-lg);z-index:10;flex-direction:column;padding:4px;display:flex;position:absolute;bottom:calc(100% + 4px);left:0;right:0;overflow:auto hidden;box-shadow:0 -4px 16px #0000001a,0 -1px 4px #0000000f}.song-edit-result-row{border-radius:var(--dropdown-item-radius-lg);cursor:pointer;align-items:center;gap:10px;padding:8px 10px;transition:background .1s;display:flex}.song-edit-result-row.active,.song-edit-result-row:hover{background:var(--surface-inset)}.song-edit-result-thumb{object-fit:cover;border-radius:4px;flex-shrink:0;width:32px;height:32px}.song-edit-result-thumb--empty{background:var(--surface-inset)}.song-edit-result-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.song-edit-result-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.song-edit-result-artist{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.song-edit-result-add-btn{cursor:pointer;width:24px;height:24px;color:var(--text-muted);transition:color .1s, background .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.song-edit-result-add-btn:hover{color:var(--brand-primary);background:var(--state-hover)}.song-edit-result-add-btn svg{width:10px;height:10px}.song-edit-modal-footer{border-top:.5px solid var(--border-default);flex-shrink:0;justify-content:flex-end;padding:10px 20px;display:flex}.song-edit-modal-update-btn{background:var(--brand-primary);color:#fff;font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);cursor:pointer;transition:opacity .1s, transform var(--press-dur) var(--press-ease);white-space:nowrap;border:none;border-radius:9999px;padding:10px 20px;font-size:12px;font-weight:500}.song-edit-modal-update-btn:hover{opacity:.88}.album-edit-modal-backdrop{z-index:1000;background:#3f3f3e66;justify-content:center;align-items:center;animation:.16s cubic-bezier(.215,.61,.355,1) both modal-backdrop-in;display:flex;position:fixed;inset:0}.album-edit-modal-backdrop--closing{animation:.13s cubic-bezier(.215,.61,.355,1) both modal-backdrop-out}.album-edit-modal{background:var(--surface-primary);border:.5px solid var(--border-strong);border-radius:20px;flex-direction:column;width:750px;min-height:650px;max-height:90vh;animation:.16s cubic-bezier(.215,.61,.355,1) both modal-in;display:flex;overflow:hidden}.album-edit-modal--closing{animation:.13s cubic-bezier(.215,.61,.355,1) both modal-out}.album-edit-modal-top{flex-direction:column;flex:auto;gap:0;min-height:0;display:flex}.album-edit-modal-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 20px;display:flex}.album-edit-modal-title{color:var(--text-tertiary);font-size:14px;font-weight:500}.album-edit-modal-title[contenteditable=true]{cursor:text;outline:none}.album-edit-modal-list{flex-direction:column;gap:8px;max-height:496px;padding:0 10px;display:flex;overflow-y:auto}.album-edit-modal-row{background:var(--surface-primary);cursor:default;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;transition:background .1s,transform .15s,box-shadow .1s;display:flex}.album-edit-modal-row:hover{background:var(--state-hover)}.album-edit-modal-row.dragging{background:var(--surface-primary);box-shadow:0 1px 4px #0000001a}.album-edit-row-art{background:var(--surface-inset);border-radius:6px;flex-shrink:0;width:50px;height:50px;overflow:hidden}.album-edit-row-art img{object-fit:cover;width:100%;height:100%;display:block}.album-edit-row-art--editable{cursor:pointer}.album-edit-row-art--editable:hover{opacity:.85}.album-edit-row-art-hint{width:100%;height:100%;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.album-edit-row-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.album-edit-row-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}.album-edit-row-sub{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.album-edit-row-controls{flex-shrink:0;align-items:center;gap:2px;display:flex}.album-edit-modal-icon-btn{cursor:pointer;width:28px;height:28px;color:var(--text-muted);transition:background .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.album-edit-modal-icon-btn:hover{background:var(--state-hover);color:var(--text-secondary)}.album-edit-modal-header-icon-btn{cursor:pointer;width:28px;height:28px;color:var(--text-tertiary);transition:background .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.album-edit-modal-header-icon-btn:hover{background:var(--state-hover);color:var(--text-secondary)}.album-edit-drag-handle{cursor:grab;touch-action:none}.album-edit-drag-handle:active{cursor:grabbing}.album-edit-modal-search{flex-shrink:0;padding:2px 20px 8px}.album-edit-search-bar-wrapper{position:relative}.album-edit-search-bar{background:var(--color-pill);border:.5px solid var(--border-default);border-radius:8px;align-items:center;gap:12px;padding:12px 16px;display:flex;box-shadow:0 1px 3px #00000008}.album-edit-search-icon{color:var(--text-muted);flex-shrink:0}.album-edit-search-input{color:var(--text-primary);caret-color:var(--text-primary);font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);background:0 0;border:none;outline:none;flex:1;font-size:12px;font-weight:500}.album-edit-search-input::placeholder{color:var(--text-placeholder)}.album-edit-search-results{background:var(--surface-elevated);border:.5px solid var(--border-subtle);border-radius:var(--dropdown-radius-lg);z-index:10;flex-direction:column;padding:4px;display:flex;position:absolute;bottom:calc(100% + 4px);left:0;right:0;overflow:auto hidden;box-shadow:0 -4px 16px #0000001a,0 -1px 4px #0000000f}.album-edit-result-row{border-radius:var(--dropdown-item-radius-lg);cursor:pointer;align-items:center;gap:10px;padding:8px 10px;transition:background .1s;display:flex}.album-edit-result-row.active,.album-edit-result-row:hover{background:var(--surface-inset)}.album-edit-result-thumb{object-fit:cover;border-radius:4px;flex-shrink:0;width:32px;height:32px}.album-edit-result-thumb--empty{background:var(--surface-inset)}.album-edit-result-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.album-edit-result-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.album-edit-result-artist{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.album-edit-result-add-btn{cursor:pointer;width:24px;height:24px;color:var(--text-muted);transition:color .1s, background .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.album-edit-result-add-btn:hover{color:var(--brand-primary);background:var(--state-hover)}.album-edit-result-add-btn svg{width:10px;height:10px}.album-edit-modal-footer{border-top:.5px solid var(--border-default);flex-shrink:0;justify-content:flex-end;padding:10px 20px;display:flex}.album-edit-modal-update-btn{background:var(--brand-primary);color:#fff;font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);cursor:pointer;transition:opacity .1s, transform var(--press-dur) var(--press-ease);white-space:nowrap;border:none;border-radius:9999px;padding:7px 20px;font-size:12px;font-weight:500}.album-edit-modal-update-btn:hover{opacity:.88}.photo-edit-modal-backdrop{z-index:1000;background:#3f3f3e66;justify-content:center;align-items:center;animation:.16s cubic-bezier(.215,.61,.355,1) both modal-backdrop-in;display:flex;position:fixed;inset:0}.photo-edit-modal-backdrop--closing{animation:.13s cubic-bezier(.215,.61,.355,1) both modal-backdrop-out}.photo-edit-modal{background:var(--surface-primary);border:.5px solid var(--border-strong);border-radius:20px;flex-direction:column;width:750px;min-height:650px;max-height:90vh;animation:.16s cubic-bezier(.215,.61,.355,1) both modal-in;display:flex;overflow:hidden}.photo-edit-modal--closing{animation:.13s cubic-bezier(.215,.61,.355,1) both modal-out}.photo-edit-modal-top{flex-direction:column;flex:auto;gap:0;min-height:0;display:flex}.photo-edit-modal-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 20px;display:flex}.photo-edit-modal-title{color:var(--text-tertiary);font-size:14px;font-weight:500}.photo-edit-modal-title[contenteditable=true]{cursor:text;outline:none}.photo-edit-modal-header-icon-btn{cursor:pointer;width:28px;height:28px;color:var(--text-tertiary);transition:background .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.photo-edit-modal-header-icon-btn:hover{background:var(--state-hover);color:var(--text-secondary)}.photo-edit-modal-grid{flex:auto;grid-template-columns:repeat(3,1fr);align-items:start;gap:5px;min-height:0;padding:0 10px 10px;display:grid;overflow-y:auto}.photo-edit-modal-grid[data-columns="2"]{grid-template-columns:repeat(2,1fr)}.photo-edit-modal-grid[data-columns="3"]{grid-template-columns:repeat(3,1fr)}.photo-edit-modal-grid[data-columns="4"]{grid-template-columns:repeat(4,1fr)}.photo-edit-modal-item{cursor:move;border-radius:5px;position:relative;overflow:hidden}.photo-edit-modal-item.dragging{box-shadow:0 4px 12px #0000001f}.photo-edit-modal-img{border-radius:4px;width:100%;height:auto;display:block}.photo-edit-modal-remove-btn{cursor:pointer;opacity:0;width:18px;height:18px;transition:opacity .1s, transform var(--press-dur) var(--press-ease);color:#fff;background:#f75951;border:.5px solid #c64741;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:4px;right:4px;box-shadow:0 1px 4px #0003}.photo-edit-modal-remove-btn svg{width:6px;height:6px}.photo-edit-modal-item:hover .photo-edit-modal-remove-btn{opacity:1}.photo-edit-modal-footer{border-top:.5px solid var(--border-default);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 20px;display:flex}.photo-edit-modal-footer-left{align-items:center;gap:4px;display:flex}.photo-edit-modal-add-btn{background:var(--surface-primary);border:.5px solid var(--border-default);font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);color:var(--text-muted);cursor:pointer;transition:background .1s, transform var(--press-dur) var(--press-ease);border-radius:9999px;align-items:center;gap:8px;padding:7px 10px;font-size:12px;font-weight:500;display:flex;box-shadow:0 1px 4px #0000000f}.photo-edit-modal-add-btn:hover{background:var(--surface-elevated)}.photo-edit-modal-add-btn svg{width:8px;height:8px}.photo-edit-modal-update-btn{background:var(--brand-primary);color:#fff;font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);cursor:pointer;transition:opacity .1s, transform var(--press-dur) var(--press-ease);white-space:nowrap;border:none;border-radius:9999px;padding:7px 20px;font-size:12px;font-weight:500}.photo-edit-modal-update-btn:hover{opacity:.88}.media-block-header-controls-group{align-items:center;gap:8px;display:flex}.delete-year-modal-backdrop{z-index:1000;background:#3f3f3e66;justify-content:center;align-items:center;animation:.16s cubic-bezier(.215,.61,.355,1) both modal-backdrop-in;display:flex;position:fixed;inset:0}.delete-year-modal-backdrop--closing{animation:.13s cubic-bezier(.215,.61,.355,1) both modal-backdrop-out}.delete-year-modal{background:var(--surface-primary);border:.5px solid var(--border-strong);border-radius:16px;flex-direction:column;width:360px;animation:.16s cubic-bezier(.215,.61,.355,1) both modal-in;display:flex;overflow:hidden}.delete-year-modal--closing{animation:.13s cubic-bezier(.215,.61,.355,1) both modal-out}.delete-year-modal-header{justify-content:space-between;align-items:center;padding:12px 16px 8px 20px;display:flex}.delete-year-modal-title{color:var(--text-primary);font-size:13px;font-weight:500}.delete-year-modal-header-icon-btn{cursor:pointer;width:28px;height:28px;color:var(--text-tertiary);transition:background .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.delete-year-modal-header-icon-btn:hover{background:var(--state-hover);color:var(--text-secondary)}.delete-year-modal-body{color:var(--text-secondary);padding:4px 20px 20px;font-size:12px;line-height:1.5}.delete-year-modal-footer{justify-content:flex-end;align-items:center;gap:8px;padding:12px 16px 16px;display:flex}.delete-year-modal-delete-btn{background:var(--color-button-error);font-size:12px;font-weight:500;font-family:var(--font-sans);color:var(--text-error);cursor:pointer;white-space:nowrap;letter-spacing:var(--letter-spacing-normal);transition:background .1s, transform var(--press-dur) var(--press-ease);border:none;border-radius:6px;padding:8px 14px;line-height:12px}.delete-year-modal-delete-btn:hover{background:var(--hover-error)}@media (prefers-reduced-motion:reduce){.overlay-scrim,.overlay-scrim--closing,.overlay-modal,.overlay-modal--closing,.overlay-modal-year,.overlay-modal-year--closing,.overlay-modal-month,.overlay-modal-month--closing,.song-edit-modal-backdrop,.song-edit-modal-backdrop--closing,.song-edit-modal,.song-edit-modal--closing,.album-edit-modal-backdrop,.album-edit-modal-backdrop--closing,.album-edit-modal,.album-edit-modal--closing,.photo-edit-modal-backdrop,.photo-edit-modal-backdrop--closing,.photo-edit-modal,.photo-edit-modal--closing,.delete-year-modal-backdrop,.delete-year-modal-backdrop--closing,.delete-year-modal,.delete-year-modal--closing{animation:none}}.rename-board-modal-backdrop{z-index:1000;background:#3f3f3e66;justify-content:center;align-items:center;animation:.16s cubic-bezier(.215,.61,.355,1) both modal-backdrop-in;display:flex;position:fixed;inset:0}.rename-board-modal-backdrop--closing{animation:.13s cubic-bezier(.215,.61,.355,1) both modal-backdrop-out}.rename-board-modal{background:var(--surface-primary);border:.5px solid var(--border-strong);border-radius:16px;flex-direction:column;width:360px;animation:.16s cubic-bezier(.215,.61,.355,1) both modal-in;display:flex;overflow:hidden}.rename-board-modal--closing{animation:.13s cubic-bezier(.215,.61,.355,1) both modal-out}.rename-board-modal-header{justify-content:space-between;align-items:center;padding:12px 16px 8px 20px;display:flex}.rename-board-modal-title{color:var(--text-primary);padding-left:12px;font-size:14px;font-weight:500}.rename-board-modal-header-icon-btn{cursor:pointer;width:28px;height:28px;color:var(--text-tertiary);transition:background .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.rename-board-modal-header-icon-btn:hover{background:var(--state-hover);color:var(--text-secondary)}.rename-board-modal-header-icon-btn svg{width:11px;height:11px}.rename-board-modal-body{padding:4px 20px}.rename-board-modal-input{box-sizing:border-box;background:var(--surface-elevated);border:.5px solid var(--border-default);width:100%;font-family:var(--font-sans);color:var(--text-primary);border-radius:8px;outline:none;padding:8px 12px;font-size:13px;transition:box-shadow .1s}.rename-board-modal-input:focus{box-shadow:0 0 0 1px #51a0ea59}.rename-board-modal-footer{justify-content:flex-end;align-items:center;gap:8px;padding:12px 16px 16px;display:flex}.rename-board-modal-cancel-btn{color:var(--text-tertiary);cursor:pointer;font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);transition:background .1s, color .1s, transform var(--press-dur) var(--press-ease);background:0 0;border:none;border-radius:9999px;align-items:center;padding:7px 16px;font-size:12px;font-weight:500;display:inline-flex}.rename-board-modal-cancel-btn:hover{color:var(--text-primary);background:#0000000d}.rename-board-modal-update-btn{background:var(--brand-primary);color:#fff;font-family:var(--font-sans);letter-spacing:var(--letter-spacing-normal);cursor:pointer;transition:opacity .1s, transform var(--press-dur) var(--press-ease);white-space:nowrap;border:none;border-radius:9999px;padding:7px 20px;font-size:12px;font-weight:500}.rename-board-modal-update-btn:hover{opacity:.88}.rename-board-modal-update-btn:disabled{opacity:.4;cursor:default}@media (prefers-reduced-motion:reduce){.rename-board-modal-backdrop,.rename-board-modal-backdrop--closing,.rename-board-modal,.rename-board-modal--closing{animation:none}}.photo-item{aspect-ratio:var(--photo-aspect,1.3333);background:var(--surface-inset);border-radius:4px;overflow:hidden}.photo-edit-modal-item{aspect-ratio:var(--photo-aspect,1.3333);background:var(--surface-inset)}.photo-item .photo-img,.photo-edit-modal-item .photo-edit-modal-img{object-fit:cover;width:100%;height:100%;display:block}.month-card.menu-open,.year-card.menu-open,.board-card.menu-open{z-index:5}@media (hover:hover) and (pointer:fine){.month-card:hover,.year-card:hover,.board-card:hover{transform:scale(var(--card-lift));transition:background var(--card-hover-fade) var(--card-lift-ease), border-color var(--card-hover-fade) var(--card-lift-ease), transform var(--card-lift-in) var(--card-lift-ease)}.month-card.menu-open:hover,.year-card.menu-open:hover,.board-card.menu-open:hover{transform:none}}@media (prefers-reduced-motion:reduce){.month-card,.year-card,.board-card,.month-card:hover,.year-card:hover,.board-card:hover{transition:none}}.bo-layer{z-index:15;pointer-events:none;position:absolute;top:0;left:0}.bo-view{flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.bo-box{left:var(--bo-l,0px);top:var(--bo-t,0px);width:var(--bo-w,100px);height:var(--bo-h,100px);background-color:var(--surface-elevated);box-shadow:inset 0 0 0 .5px var(--border-default);will-change:translate, scale;transition:translate var(--bo-box-ms,0s) var(--bo-box-ease,linear), scale var(--bo-box-ms,0s) var(--bo-box-ease,linear), box-shadow var(--bo-cross-ms,0s) var(--bo-cross-ease,linear), background-color var(--bo-cross-ms,0s) var(--bo-cross-ease,linear), opacity var(--bo-handover-ms,0s) linear;border-radius:12px;position:absolute;overflow:hidden;translate:0;scale:1}.main-area[data-board-anim=out] .bo-box{translate:var(--bo-tx,0px) var(--bo-ty,0px);scale:var(--bo-k,1);background-color:var(--surface-primary);box-shadow:inset 0 0 0 .5px #0000}.bo-layer.is-handing-over .bo-box{opacity:0}.bo-page{transform-origin:50%;animation:bo-page-in var(--bo-page-ms,0s) linear var(--bo-page-delay,0s) backwards;position:absolute}@keyframes bo-page-in{0%{opacity:0}to{opacity:1}}.bo-card{z-index:1;opacity:1;transition:opacity var(--bo-cross-ms,0s) var(--bo-cross-ease,linear);position:absolute;inset:0}.bo-card>*{transition:none;position:absolute;inset:0}.bo-card .board-card,.bo-card .month-card{border-color:#0000}.main-area[data-board-anim=out] .bo-card{opacity:0}.main-area[data-board-anim] .app-scroll .board-card,.main-area[data-board-anim] .app-scroll .month-card,.main-area[data-board-anim] .bo-view .board-card,.main-area[data-board-anim] .bo-view .month-card{transition:translate var(--bo-field-ms,0s) var(--bo-field-ease,linear), opacity var(--bo-fade-ms,0s) var(--card-lift-ease) var(--bo-fade-lag,0s), transform var(--card-lift-out) var(--card-lift-ease);translate:0}.main-area[data-board-anim=out] .app-scroll .board-card,.main-area[data-board-anim=out] .app-scroll .month-card,.main-area[data-board-anim=out] .bo-view .board-card,.main-area[data-board-anim=out] .bo-view .month-card{translate:var(--bo-tx,0px) var(--bo-ty,0px);opacity:0}.main-area[data-board-anim] .app-scroll .board-card.is-board-hero,.main-area[data-board-anim] .app-scroll .month-card.is-board-hero,.main-area[data-board-anim] .bo-view .board-card.is-board-hero,.main-area[data-board-anim] .bo-view .month-card.is-board-hero{opacity:0;transition:opacity,transform;transform:none}@media (hover:hover) and (pointer:fine){:is(.main-area[data-board-anim=in]:has(.board-card.is-board-hero:hover) .bo-card .board-card,.main-area[data-board-anim=in]:has(.month-card.is-board-hero:hover) .bo-card .month-card){background-color:var(--surface-primary);background-image:linear-gradient(var(--state-hover), var(--state-hover))}:is(.main-area[data-board-anim=in]:has(.board-card.is-board-hero:hover) .bo-box,.main-area[data-board-anim=in]:has(.month-card.is-board-hero:hover) .bo-box){box-shadow:inset 0 0 0 .5px var(--border-strong)}}.back-btn:active,.board-filter-trigger:active,.grid-density-seg:active,.settings-back-btn:active,.topbar-avatar-btn:active,.topbar-create-btn:active,.topbar-logo:active,.btn:active,.btn-cancel:active,.icon-btn:active,.text-btn-md:active,.text-btn-sm:active,.add-content-btn:active,.add-row-btn:active,.block-insert-btn:active,.column-count-btn:active,.place-add-btn:active,.place-pill-settings:active,.song-row-menu-btn:active,.album-edit-modal-header-icon-btn:active,.album-edit-modal-icon-btn:active,.album-edit-modal-update-btn:active,.album-edit-result-add-btn:active,.delete-year-modal-delete-btn:active,.delete-year-modal-header-icon-btn:active,.overlay-month-item:active,.photo-edit-modal-add-btn:active,.photo-edit-modal-header-icon-btn:active,.photo-edit-modal-remove-btn:active,.photo-edit-modal-update-btn:active,.rename-board-modal-cancel-btn:active,.rename-board-modal-header-icon-btn:active,.rename-board-modal-update-btn:active,.song-edit-modal-header-icon-btn:active,.song-edit-modal-icon-btn:active,.song-edit-modal-update-btn:active,.song-edit-result-add-btn:active,.settings-action-btn:active,.settings-delete-account-btn:active,.settings-theme-toggle:active,.toast-restore-btn:active{transform:scale(var(--press-scale))}.album-edit-modal-icon-btn.album-edit-drag-handle:active,.song-edit-modal-icon-btn.song-edit-drag-handle:active,.btn:disabled:active,.overlay-month-item:disabled:active,.rename-board-modal-update-btn:disabled:active,.dropdown-item--disabled:active .dropdown-item__content{transform:none}@media (prefers-reduced-motion:reduce){.add-content-btn:active,.add-row-btn:active,.album-edit-modal-header-icon-btn:active,.album-edit-modal-icon-btn:active,.album-edit-modal-update-btn:active,.album-edit-result-add-btn:active,.back-btn:active,.block-insert-btn:active,.btn:active,.btn-cancel:active,.column-count-btn:active,.delete-year-modal-delete-btn:active,.delete-year-modal-header-icon-btn:active,.grid-density-seg:active,.icon-btn:active,.overlay-month-item:active,.photo-edit-modal-add-btn:active,.photo-edit-modal-header-icon-btn:active,.photo-edit-modal-remove-btn:active,.photo-edit-modal-update-btn:active,.place-add-btn:active,.place-pill-settings:active,.rename-board-modal-cancel-btn:active,.rename-board-modal-header-icon-btn:active,.rename-board-modal-update-btn:active,.settings-action-btn:active,.settings-back-btn:active,.settings-delete-account-btn:active,.settings-theme-toggle:active,.song-edit-modal-header-icon-btn:active,.song-edit-modal-icon-btn:active,.song-edit-modal-update-btn:active,.song-edit-result-add-btn:active,.song-row-menu-btn:active,.text-btn-md:active,.text-btn-sm:active,.toast-restore-btn:active,.topbar-avatar-btn:active,.topbar-create-btn:active,.topbar-logo:active{transform:none}}
