:root{--ink:#1c1917;--ink-secondary:#44403c;--ink-muted:#78716c;--ink-faint:#a8a29e;--canvas:#faf8f5;--canvas-raised:#fff;--canvas-sunken:#f5f0eb;--border:#e7e0d8;--border-strong:#d6cdc3;--accent:#c2410c;--accent-hover:#9a3412;--accent-subtle:#fff7ed;--accent-muted:#fed7aa;--panel-bg:#f5f0eb;--surface-warm:#fefcf9;--overlay:#1c1917b8;--shadow-sm:0 1px 2px #1c19170f;--shadow-md:0 4px 12px #1c191714;--shadow-lg:0 20px 40px #1c19171f;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--font-display:"Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;--font-body:"Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;font-family:var(--font-body);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}*{box-sizing:border-box}body{background:var(--canvas);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px;margin:0}#root{width:min(1260px,100%);margin:0 auto;padding:1.5rem 2rem}@media (width<=640px){#root{padding:1rem}}h1,h2,h3{font-family:var(--font-body);letter-spacing:-.02em;font-weight:700;line-height:1.2}h1{font-size:1.75rem}h2{color:var(--ink);font-size:1.2rem}h3{font-size:1.05rem}p{margin-top:0}::selection{background:var(--accent-muted);color:var(--ink)}.app{gap:1.25rem;display:grid}.app--sticky-context{--sticky-context-offset:4rem;--sticky-context-filter-gap:1.75rem}.page-context-sticky{z-index:30;min-height:var(--sticky-context-offset);box-sizing:border-box;padding:.6rem max(2rem, env(safe-area-inset-right)) .55rem max(2rem, env(safe-area-inset-left));background:var(--canvas-raised);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;gap:.75rem 1rem;display:flex;position:fixed;left:0;right:0}.page-context-sticky-lead{flex-direction:column;flex:1;justify-content:center;gap:.15rem;min-width:0;display:flex}.page-context-sticky-title{letter-spacing:-.02em;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;font-weight:800;line-height:1.2;overflow:hidden}.page-context-sticky-powered{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap;text-overflow:ellipsis;font-size:.65rem;font-weight:600;line-height:1.2;overflow:hidden}.page-context-sticky-user{flex-shrink:0;min-width:0;padding:0}@media (width<=640px){.page-context-sticky{padding-inline:max(1rem, env(safe-area-inset-left))}}.app-top-nav{background:var(--canvas-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;padding:.75rem 1rem;display:flex}.app-top-nav-brand{align-items:center;gap:.75rem;min-width:0;display:flex}.app-top-nav-logo{border-radius:var(--radius-sm);object-fit:contain;flex-shrink:0;width:2rem;height:2rem;display:block}.app-top-nav-titles{flex-direction:column;gap:.05rem;min-width:0;display:flex}.app-top-nav-app-name{letter-spacing:-.02em;color:var(--ink);font-size:1.1rem;font-weight:800;line-height:1.2}.app-top-nav-tagline{color:var(--ink-muted);letter-spacing:.01em;font-size:.72rem;line-height:1.3}@media (width<=520px){.app-top-nav-tagline{display:none}}.app-top-nav-user{align-items:center;gap:.6rem;padding:.2rem 0;display:flex}.app-top-nav-avatar{object-fit:cover;object-position:center 20%;border:2px solid var(--border);border-radius:999px;flex-shrink:0;width:2rem;height:2rem;display:block}.app-top-nav-user-meta{text-align:left;flex-direction:column;gap:0;line-height:1.2;display:flex}.app-top-nav-user-label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);font-size:.6rem;font-weight:700}.app-top-nav-user-name{color:var(--ink);font-size:.88rem;font-weight:700}.app-top-nav-org{color:var(--ink-muted);margin-top:.1rem;font-size:.72rem;font-weight:500}.page-header-bar{grid-template-columns:1fr auto 1fr;align-items:center;gap:1.25rem;padding:1.5rem 0 .5rem;display:grid}@media (width<=900px){.page-header-bar{grid-template-columns:1fr;justify-items:start;padding:1rem 0 .25rem}}.page-header-text{min-width:0}.page-header-title-row{align-items:center;gap:.75rem;min-width:0;display:flex}.page-header-title-row--org-context{align-items:flex-start}.page-header-org-mark{border-radius:var(--radius-md);background:var(--accent);color:#fff;width:2.75rem;height:2.75rem;box-shadow:var(--shadow-sm);flex-shrink:0;justify-content:center;align-items:center;display:flex}.page-header-title-main{flex:1;min-width:0}.page-header-title-main h1{color:var(--ink);letter-spacing:-.02em;margin:0;font-size:2.25rem;font-weight:400;line-height:1.1}.page-header-viewing-as{color:var(--ink-muted);align-items:center;gap:.4rem;margin:.35rem 0 0;font-size:.82rem;font-weight:500;display:flex}.page-header-viewing-as-avatar{object-fit:cover;object-position:center 20%;border:1px solid var(--border);border-radius:999px;flex-shrink:0;width:1.1rem;height:1.1rem;display:block}.header-description{box-sizing:border-box;max-width:44rem;min-height:4.5rem;padding-top:.25rem}.header-description p{color:var(--ink-secondary);margin:0;font-size:.92rem;line-height:1.55}.header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.tab-selector{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--canvas-sunken);display:inline-flex;overflow:hidden}.tab-btn{font:inherit;cursor:pointer;color:var(--ink-muted);background:0 0;border:none;border-radius:0;padding:.5rem 1.15rem;font-size:.88rem;font-weight:500;transition:background .15s,color .15s;position:relative}.tab-btn:not(:last-child){border-right:1px solid var(--border)}.tab-btn:hover:not(.tab-active){background:var(--border);color:var(--ink)}.tab-active{background:var(--ink);color:#faf8f5;font-weight:600}.tab-active:hover{background:var(--ink-secondary)}@media (width<=720px){.tab-btn{padding:.45rem .6rem;font-size:.78rem}}input,select,textarea,button{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--canvas-raised);color:var(--ink);font:inherit;padding:.5rem .7rem}button{cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s,transform .1s}button:hover:not(:disabled){transform:translateY(-.5px)}button:active:not(:disabled){transform:translateY(0)}button:disabled{cursor:not-allowed;opacity:.5}.btn-create{background:var(--accent);color:#fff;border:1px solid var(--accent-hover);border-radius:var(--radius-sm);font-weight:700;font:inherit;cursor:pointer;letter-spacing:.01em;padding:.5rem 1rem;font-size:.88rem;box-shadow:0 2px 8px #c2410c40}.btn-create:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 4px 12px #c2410c4d}.btn-secondary{background:var(--canvas-sunken);border-color:var(--border);color:var(--ink-secondary);padding:.4rem .65rem;font-size:.85rem}.btn-secondary:hover:not(:disabled){background:var(--border);border-color:var(--border-strong)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent-hover);font-weight:700}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-wide{justify-content:center;width:100%}.btn-reset{background:var(--canvas-raised);color:var(--ink-secondary);font-size:.88rem}.btn-reset:hover:not(:disabled){background:var(--canvas-sunken);border-color:var(--border-strong)}.filter-reset-top{text-transform:uppercase;letter-spacing:.06em;border-color:var(--border-strong);background:var(--canvas-raised);width:100%;color:var(--ink-muted);justify-content:center;margin-bottom:.5rem;font-size:.82rem;font-weight:700}.filter-reset-top:hover:not(:disabled){background:var(--canvas-sunken);border-color:var(--ink-faint);color:var(--ink)}.btn-action{background:var(--canvas-sunken);cursor:pointer;color:var(--ink-secondary);border-color:var(--border);font-size:.85rem;font-weight:600}.btn-action:hover:not(:disabled){background:var(--border);border-color:var(--border-strong)}.btn-danger-solid{color:#fff;background:#b91c1c;border-color:#991b1b;font-weight:700}.btn-danger-solid:hover:not(:disabled){background:#991b1b}.layout{grid-template-columns:minmax(250px,280px) 1fr;align-items:start;gap:1.75rem;display:grid}@media (width<=900px){.layout{grid-template-columns:1fr}}.sidebar{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;min-width:0;max-height:calc(100vh - 2rem);position:sticky;top:1rem;overflow:hidden auto}.app--sticky-context .sidebar{top:calc(var(--sticky-bar-top,0px) + var(--sticky-context-offset,0px) + var(--sticky-context-filter-gap,1.75rem));max-height:calc(100vh - var(--sticky-bar-top,0px) - var(--sticky-context-offset,0px) - var(--sticky-context-filter-gap,1.75rem) - 1rem)}@media (width<=900px){.sidebar{max-height:none;position:static;overflow-y:visible}.app--sticky-context .sidebar{max-height:none;top:auto}}.main-column{min-width:0}.filter-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--canvas-raised);box-shadow:var(--shadow-sm);align-content:start;gap:.65rem;width:100%;min-width:0;max-width:100%;padding:.85rem;display:grid;overflow-x:hidden}.filter-row{gap:.5rem;width:100%;min-width:0;display:flex}.filter-inline{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;flex:1;gap:.15rem;min-width:0;font-size:.78rem;font-weight:600;display:grid}.filter-inline select{text-transform:none;letter-spacing:0;width:100%;padding:.35rem .5rem;font-size:.85rem;font-weight:500}.date-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;width:100%;min-width:0;display:grid}.date-field{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;gap:.15rem;min-width:0;font-size:.72rem;font-weight:600;display:grid}.date-field input{width:100%;min-width:0;max-width:100%;padding:.3rem .4rem;font-size:.82rem}.search-row,.action-row{flex-wrap:wrap;align-items:center;gap:.6rem;width:100%;min-width:0;display:flex}.search-input-full{background:var(--canvas-sunken);border-color:var(--border);width:100%;min-width:0;max-width:100%;padding:.45rem .65rem;font-size:.88rem;transition:border-color .15s,box-shadow .15s}.search-input-full:focus,input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #c2410c1a}.filter-pending-note{color:var(--ink-muted);margin:0;font-size:.82rem;line-height:1.4}textarea{resize:vertical;width:100%;min-height:92px}.tag{background:var(--accent-subtle);border-color:var(--accent-muted);color:var(--accent);padding:.3rem .55rem;font-size:.82rem;font-weight:500}.tag.active{background:var(--accent);color:#fff;border-color:var(--accent-hover)}.all-tags-grid .tag:not(.active):hover:not(:disabled){background:var(--accent-muted);border-color:var(--accent)}.all-tags-grid .tag.active:hover:not(:disabled){background:var(--accent-hover)}.active-tags-panel{border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface-warm);gap:.5rem;padding:.7rem .8rem;display:grid}.panel-hint{color:var(--ink-muted);margin:0;font-size:.78rem;line-height:1.4}.panel-empty{color:var(--ink-faint);margin:0;font-size:.85rem;font-style:italic}.active-tag-chips{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.active-tag-chips li{background:var(--accent-muted);color:var(--accent-hover);border-radius:999px;align-items:center;gap:.25rem;padding:.2rem .35rem .2rem .6rem;font-size:.82rem;font-weight:500;display:inline-flex}.chip-remove{cursor:pointer;color:var(--accent);background:0 0;border:none;padding:0 .25rem;line-height:1}.chip-remove:hover:not(:disabled){color:var(--accent-hover);background:#c2410c1a;border-radius:4px}.suggestion-list{flex-direction:column;gap:.2rem;max-height:160px;display:flex;overflow-y:auto}.suggestion{text-align:left;background:var(--canvas-sunken);cursor:pointer;border-color:#0000;font-size:.85rem;font-weight:500}.suggestion:hover{background:var(--border);border-color:var(--border-strong)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.event-section{margin-bottom:2rem}.event-section h2{color:var(--ink);border-bottom:2px solid var(--border);align-items:center;gap:.65rem;margin-bottom:.85rem;padding-bottom:.5rem;font-size:1.45rem;font-weight:400;display:flex;position:relative}.section-count{background:var(--accent);color:#fff;min-width:1.5rem;height:1.5rem;font-family:var(--font-body);border-radius:999px;justify-content:center;align-items:center;padding:0 .4rem;font-size:.72rem;font-weight:700;display:inline-flex}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1.25rem;padding-bottom:.5rem;display:grid}.photo-card{border-radius:var(--radius-md);text-align:left;cursor:pointer;background:0 0;border:none;padding:0;transition:transform .2s,box-shadow .2s;display:grid;position:relative;overflow:hidden}.photo-card:after{content:"";border-radius:var(--radius-md);pointer-events:none;transition:box-shadow .2s;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #1c19170f}.photo-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.photo-card:hover:after{box-shadow:inset 0 0 0 2px var(--accent)}.photo-card img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-md) var(--radius-md) 0 0;width:100%;display:block}.photo-card .card-body{background:var(--canvas-raised);border-radius:0 0 var(--radius-md) var(--radius-md);border:1px solid var(--border);border-top:none;gap:.1rem;padding:.55rem .5rem .45rem;display:grid}.photo-card .card-body h3{color:var(--ink);margin:0;font-size:.88rem;font-weight:400;line-height:1.3}.photo-card .card-body .card-date{color:var(--ink-faint);font-variant-numeric:tabular-nums;margin:.1rem 0 0;font-size:.68rem}.photo-card .card-body .card-datetime{color:var(--ink-faint);font-variant-numeric:tabular-nums;margin:.08rem 0 0;font-size:.68rem}.photo-card .card-body .card-tags-line{color:var(--ink-muted);margin:.15rem 0 0;font-size:.7rem;line-height:1.3}.card-owner-wrap{cursor:pointer;border-radius:4px;outline:none;max-width:100%;margin:.15rem 0 0;display:inline-block}.card-owner-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card-owner-line{flex-wrap:nowrap;align-items:baseline;gap:.15rem;min-width:0;display:flex}.card-owner-arrow{color:var(--accent);opacity:.85;-webkit-user-select:none;user-select:none;flex:none;order:0;font-size:.95rem;font-weight:700;line-height:1;transition:transform .28s,color .15s,opacity .15s;display:inline-block;transform:translateY(-.05em)}.card-owner-wrap:hover .card-owner-arrow,.card-owner-wrap:focus-visible .card-owner-arrow{color:var(--accent-hover);opacity:1;order:2;transform:translateY(-.05em)translate(1px)}.card-owner-prefix{opacity:0;white-space:nowrap;max-width:0;color:var(--accent);text-transform:uppercase;letter-spacing:.04em;flex:none;order:0;font-size:.68rem;font-weight:700;transition:max-width .28s,opacity .22s,transform .28s;display:inline-block;overflow:hidden;transform:translate(-.35rem)}.card-owner-wrap:hover .card-owner-prefix,.card-owner-wrap:focus-visible .card-owner-prefix{opacity:1;box-sizing:content-box;max-width:8rem;padding-right:.35rem;transform:translate(0)}.card-owner-name{min-width:0;color:var(--ink-muted);flex:0 auto;order:0;font-size:.72rem;font-weight:500;transition:color .15s,text-decoration-color .15s}.card-owner-wrap:hover .card-owner-name,.card-owner-wrap:focus-visible .card-owner-name{color:var(--accent);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.album-card{border:2px solid var(--border-strong);border-radius:var(--radius-lg);text-align:left;cursor:pointer;background:var(--canvas-raised);margin-bottom:10px;margin-right:10px;padding:0;transition:transform .15s,box-shadow .15s;display:grid;position:relative;overflow:visible}.album-card:before,.album-card:after{content:"";border-radius:var(--radius-lg);border:2px solid var(--border-strong);background:var(--canvas-raised);z-index:-1;transition:border-color .15s;position:absolute}.album-card:before{inset:4px -4px -4px 4px}.album-card:after{background:var(--canvas-sunken);inset:8px -8px -8px 8px}.album-card>*{border-radius:calc(var(--radius-lg) - 2px)}.album-card>:first-child{border-radius:calc(var(--radius-lg) - 2px) calc(var(--radius-lg) - 2px) 0 0;overflow:hidden}.album-card>:last-child{border-radius:0 0 calc(var(--radius-lg) - 2px) calc(var(--radius-lg) - 2px)}.album-card:hover{transform:translateY(-3px)}.album-card:hover,.album-card:hover:before,.album-card:hover:after{border-color:var(--accent)}.album-cover-wrap{position:relative}.album-cover{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.album-cover-empty{aspect-ratio:4/3;background:var(--canvas-sunken);color:var(--ink-faint);justify-content:center;align-items:center;font-size:.85rem;font-style:italic;display:flex}.album-count-badge{color:#faf8f5;font-variant-numeric:tabular-nums;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1c1917c7;border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:700;position:absolute;bottom:.5rem;right:.5rem}.album-card .card-body{padding:.65rem .85rem}.album-meta-badge{background:var(--canvas-sunken);border:1px solid var(--border);color:var(--ink-muted);vertical-align:middle;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:.12rem .5rem;font-size:.72rem;font-weight:700;display:inline-block}.card-body h3{margin:0 0 .3rem}.card-body p{color:var(--ink-secondary);margin:.2rem 0;font-size:.88rem}.empty-state{color:var(--ink-muted);margin:.6rem 0;font-style:italic}.empty-state-card{text-align:center;border:2px dashed var(--border);border-radius:var(--radius-lg);background:var(--surface-warm);flex-direction:column;grid-column:1/-1;align-items:center;gap:.5rem;padding:3rem 2rem;display:flex}.empty-state-icon{color:var(--ink-faint);opacity:.6}.empty-state-title{color:var(--ink);margin:0;font-size:1.25rem}.empty-state-detail{color:var(--ink-muted);max-width:28rem;margin:0;font-size:.88rem;line-height:1.5}.empty-state-action{margin-top:.35rem}.breadcrumb{background:var(--accent-subtle);border:1px solid var(--accent-muted);border-radius:var(--radius-md);align-items:center;gap:.45rem;padding:.5rem .85rem;font-size:.85rem;display:flex}.breadcrumb-link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.breadcrumb-link:hover{color:var(--accent-hover);text-decoration:underline}.breadcrumb-sep{color:var(--ink-faint)}.breadcrumb-current{color:var(--ink);font-weight:700}.album-add-toolbar{border:1px solid var(--accent-muted);border-radius:var(--radius-lg);background:var(--accent-subtle);gap:.5rem;margin-bottom:.75rem;padding:.85rem;display:grid}.toolbar-label{color:var(--accent-hover);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:.78rem;font-weight:700}.album-add-buttons{gap:.4rem;display:grid}.sidebar-action-stack{flex-direction:column;gap:.5rem;display:flex}.overlay{background:var(--overlay);z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.overlay-narrow{z-index:30}.lightbox-overlay{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1c1917f2;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.lb-close{z-index:22;color:#faf8f5;cursor:pointer;background:#faf8f51a;border:1px solid #faf8f51a;border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.5rem;transition:background .15s;display:flex;position:fixed;top:1rem;right:1rem}.lb-close:hover{background:#faf8f533}.lb-counter{z-index:22;color:#faf8f580;font-variant-numeric:tabular-nums;letter-spacing:.05em;font-size:.78rem;font-weight:600;position:fixed;top:1.15rem;left:50%;transform:translate(-50%)}.lb-arrow{z-index:22;color:#faf8f5;cursor:pointer;background:#faf8f514;border:1px solid #faf8f514;border-radius:50%;justify-content:center;align-items:center;width:3rem;height:3rem;font-size:2rem;transition:background .15s;display:flex;position:fixed;top:50%;transform:translateY(-50%)}.lb-arrow:hover{background:#faf8f52e}.lb-prev{left:1rem}.lb-next{right:1rem}.lb-content{flex-direction:column;align-items:center;max-width:min(800px,100%);max-height:92vh;display:flex;overflow-y:auto}.lb-image{object-fit:contain;border-radius:var(--radius-sm);max-width:100%;max-height:65vh;box-shadow:0 16px 48px #0006}.lb-info{color:#faf8f5;width:100%;max-width:600px;padding:1rem 0 0}.lb-info-main{margin-bottom:.65rem}.lb-title{color:#faf8f5;margin:0 0 .3rem;font-size:1.25rem;font-weight:400}.lb-description{color:#faf8f599;margin:0 0 .5rem;font-size:.88rem;line-height:1.5}.lb-meta{gap:.75rem;font-size:.82rem;display:flex}.lb-owner{color:#faf8f5cc;font-weight:600}.lb-date{color:#faf8f566;font-variant-numeric:tabular-nums}.lb-tags{flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem;display:flex}.lb-tags .tag-chip{color:#faf8f5d9;background:#faf8f51a;border:1px solid #faf8f514}.lb-tags .tag-chip-remove{color:#faf8f5;background:#faf8f526}.lb-tags .tag-chip-remove:hover:not(:disabled){background:#faf8f54d}.lb-toolbar{border-top:1px solid #faf8f514;justify-content:space-between;align-items:center;padding-top:.65rem;display:flex}.lb-toolbar-left{flex-wrap:wrap;gap:.5rem;display:flex}.lb-toolbar .btn-action{color:#faf8f5d9;background:#faf8f514;border-color:#faf8f51a;font-size:.82rem}.lb-toolbar .btn-action:hover{background:#faf8f526}.lb-toolbar .kebab-btn{color:#faf8f5;cursor:pointer;background:#faf8f514;border:1px solid #faf8f514}.lb-toolbar .kebab-btn:hover:not(:disabled){background:#faf8f526}.comment-modal,.add-tag-popup{background:var(--canvas-raised);border-radius:var(--radius-lg);width:min(760px,100%);max-height:92vh;box-shadow:var(--shadow-lg);border:1px solid var(--border);padding:1.25rem;overflow:auto}.add-tag-popup{width:min(420px,100%)}.all-tags-modal{background:var(--canvas-raised);border-radius:var(--radius-lg);width:min(520px,100%);max-height:92vh;box-shadow:var(--shadow-lg);border:1px solid var(--border);padding:1.25rem;overflow:auto}.delete-confirm-card{background:var(--canvas-raised);border-radius:var(--radius-lg);width:min(400px,100%);box-shadow:var(--shadow-lg);border:1px solid var(--border);padding:1.5rem}.delete-confirm-title{color:var(--ink);margin:0 0 .65rem;font-size:1.25rem;font-weight:400}.delete-confirm-lead{color:var(--ink-secondary);margin:0 0 1.25rem;font-size:.92rem;line-height:1.5}.delete-confirm-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.all-tags-grid{flex-wrap:wrap;align-content:flex-start;gap:.4rem;max-height:min(52vh,360px);margin-top:.65rem;padding:.15rem 0;display:flex;overflow-y:auto}.add-tag-header{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.add-tag-header h3{margin:0;font-size:1.2rem}.add-tag-footer{flex-wrap:wrap;gap:.5rem;margin-top:.85rem;display:flex}.add-tag-footer>button[type=button]:not(.btn-secondary){background:var(--accent);color:#fff;border-color:var(--accent-hover);font-weight:700}.add-tag-footer>button[type=button]:not(.btn-secondary):hover:not(:disabled){background:var(--accent-hover)}.add-tag-footer>button[type=button]:not(.btn-secondary):disabled{opacity:.5}.lightbox-close{background:var(--canvas-sunken);cursor:pointer;border-radius:var(--radius-sm);color:var(--ink-muted);border:none;padding:.35rem .6rem;font-size:1.35rem;line-height:1}.lightbox-close:hover:not(:disabled){background:var(--border);color:var(--ink)}.kebab-wrap{position:relative}.kebab-btn{background:var(--canvas-sunken);cursor:pointer;border-radius:var(--radius-sm);color:var(--ink-muted);border:none;padding:.35rem .65rem;font-size:1.1rem;line-height:1}.kebab-menu{background:var(--canvas-raised);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:5;min-width:200px;margin:0;padding:.35rem 0;list-style:none;position:absolute;top:calc(100% + 4px);right:0}.kebab-menu button{text-align:left;cursor:pointer;width:100%;color:var(--ink-secondary);background:0 0;border:none;border-radius:0;padding:.5rem .85rem;font-weight:500}.kebab-menu button:hover{background:var(--canvas-sunken);color:var(--ink)}.meta{color:var(--ink-secondary);margin:.35rem 0}.tag-list{flex-wrap:wrap;gap:.4rem;margin:.5rem 0 .8rem;display:flex}.tag-chip{background:var(--canvas-sunken);color:var(--ink-secondary);border-radius:999px;align-items:center;gap:.25rem;padding:.25rem .5rem .25rem .65rem;font-size:.78rem;font-weight:500;display:inline-flex}.tag-chip-remove{opacity:0;background:var(--border);width:1.3rem;height:1.3rem;color:var(--ink-secondary);cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:.9rem;line-height:1;transition:opacity .12s;display:inline-flex}.tag-chip-remove:hover:not(:disabled){background:var(--border-strong);color:var(--ink)}.tag-chip:hover .tag-chip-remove,.tag-chip:focus-within .tag-chip-remove{opacity:1}.comments-list{margin-bottom:.65rem}.upload-overlay{z-index:40}.upload-modal{background:var(--canvas-raised);border-radius:var(--radius-lg);border:1px solid var(--border);width:min(520px,100%);max-height:92vh;box-shadow:var(--shadow-lg);padding:0;overflow:auto}.upload-modal-hero{background:linear-gradient(160deg, var(--accent-subtle) 0%, var(--canvas-sunken) 50%, var(--canvas-raised) 100%);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:1px solid var(--border);padding:1.25rem 1.25rem 1rem}.upload-modal-hero-top{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem;display:flex}.upload-modal-hero-brand{align-items:center;gap:.75rem;min-width:0;display:flex}.upload-modal-hero-icon{border-radius:var(--radius-md);object-fit:contain;width:2.25rem;height:2.25rem;box-shadow:var(--shadow-sm);flex-shrink:0}.upload-modal-title{color:var(--ink);margin:0;font-size:1.25rem;font-weight:400}.upload-modal-subtitle{color:var(--ink-muted);margin:.2rem 0 0;font-size:.82rem;line-height:1.4}.upload-modal-steps{justify-content:space-between;align-items:center;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.upload-modal-step{text-align:center;flex-direction:column;flex:1;align-items:center;gap:.2rem;min-width:0;display:flex}.upload-modal-step-num{background:var(--canvas-sunken);width:1.75rem;height:1.75rem;color:var(--ink-faint);border:2px solid #0000;border-radius:999px;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;transition:background .15s,color .15s,border-color .15s;display:flex}.upload-modal-step-label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);font-size:.62rem;font-weight:700}.upload-modal-step--active .upload-modal-step-num{background:var(--accent);color:#fff;box-shadow:0 2px 8px #c2410c4d}.upload-modal-step--active .upload-modal-step-label{color:var(--accent)}.upload-modal-step--complete .upload-modal-step-num{background:var(--accent);color:#fff;font-size:0}.upload-modal-step--complete .upload-modal-step-num:after{content:"✓";font-size:.85rem;line-height:1}.upload-modal-step--complete .upload-modal-step-label{color:var(--ink-muted)}.upload-modal-step--muted .upload-modal-step-num{background:var(--canvas-sunken);color:var(--border)}.upload-modal-step--muted .upload-modal-step-label{color:var(--border)}.upload-modal-step--next .upload-modal-step-num{background:var(--canvas-raised);border-color:var(--accent-muted);color:var(--accent)}.upload-modal-step-connector{background:linear-gradient(90deg, var(--accent-muted), var(--border));border-radius:1px;flex:0 0 1.25rem;align-self:center;height:2px;margin-bottom:1.35rem}.upload-modal-uploader{border-bottom:1px solid var(--border);background:var(--surface-warm);align-items:flex-start;gap:.75rem;margin:0;padding:1rem 1.25rem;display:flex}.upload-modal-who{flex-direction:column;gap:.15rem;min-width:0;display:flex}.upload-modal-who-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.upload-modal-name{color:var(--ink);font-weight:700}.upload-modal-badge{text-transform:uppercase;letter-spacing:.06em;background:var(--accent-muted);color:var(--accent-hover);border-radius:999px;padding:.1rem .45rem;font-size:.6rem;font-weight:800}.upload-modal-org{color:var(--ink-muted);font-size:.78rem;font-weight:500}.upload-modal-hint{color:var(--ink-secondary);margin:.35rem 0 0;font-size:.85rem;line-height:1.5}.upload-modal-facts{background:var(--canvas-raised);border-bottom:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:.5rem;padding:.75rem 1.25rem;display:grid}@media (width<=480px){.upload-modal-facts{grid-template-columns:1fr}}.upload-modal-fact{border-radius:var(--radius-md);background:var(--canvas-sunken);border:1px solid var(--border);flex-direction:column;gap:.15rem;padding:.5rem .6rem;display:flex}.upload-modal-fact-k{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-size:.6rem;font-weight:800}.upload-modal-fact-v{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:600;overflow:hidden}.upload-modal-file-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.upload-modal-dropzone{border:2px dashed var(--border-strong);background:linear-gradient(180deg, var(--canvas-sunken) 0%, var(--canvas-raised) 100%);border-radius:0;justify-items:center;gap:.5rem;margin:0;padding:1.5rem 1.25rem 1.75rem;transition:border-color .15s,background .15s,box-shadow .15s;display:grid}.upload-modal-dropzone--active{border-color:var(--accent);background:var(--accent-subtle);box-shadow:inset 0 0 0 1px #c2410c26}.upload-modal-dropzone-icon{color:var(--accent);opacity:.8}.upload-modal-dropzone-title{color:var(--ink);margin:0;font-size:1.05rem;font-weight:400}.upload-modal-dropzone-text{color:var(--ink-muted);text-align:center;max-width:22rem;margin:0;font-size:.88rem;line-height:1.5}.upload-modal-formats{color:var(--ink-muted);text-align:center;margin:.25rem 0 0;padding:0;font-size:.75rem;line-height:1.6;list-style:none}.upload-modal-formats li:before{content:"· ";color:var(--ink-faint)}.upload-modal-browse-btn{margin-top:.35rem;padding-left:1.25rem;padding-right:1.25rem}.upload-modal-editor{padding:0 1.25rem .5rem}.upload-modal-file-strip{border-radius:var(--radius-md);background:var(--canvas-sunken);border:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;margin:1rem 0 .65rem;padding:.5rem .65rem;display:flex}.upload-modal-file-meta{flex-direction:column;gap:.1rem;min-width:0;display:flex}.upload-modal-file-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:600;overflow:hidden}.upload-modal-file-size{color:var(--ink-muted);font-variant-numeric:tabular-nums;font-size:.72rem}.upload-modal-replace-btn{flex-shrink:0;padding:.35rem .65rem;font-size:.85rem}.upload-modal-preview{border-radius:var(--radius-md);border:1px solid var(--border);background:linear-gradient(145deg, var(--canvas-sunken), var(--border));max-height:220px;margin-bottom:.75rem;overflow:hidden}.upload-modal-preview img{object-fit:contain;width:100%;height:auto;max-height:220px;display:block}.upload-modal-fields{gap:.65rem;display:grid}.upload-modal-optional{color:var(--ink-faint);font-size:.78rem;font-weight:400}.upload-modal .form-field textarea{width:100%;font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);resize:vertical;padding:.45rem .55rem;font-size:.92rem}.upload-modal-progress{border-radius:var(--radius-md);background:var(--accent-subtle);border:1px solid var(--accent-muted);margin:.75rem 0 0;padding:.85rem}.upload-modal-progress-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.45rem;display:flex}.upload-modal-progress-label{color:var(--accent-hover);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:700}.upload-modal-progress-pct{font-variant-numeric:tabular-nums;color:var(--accent);font-size:.82rem;font-weight:800}.upload-modal-progress-bar{background:#c2410c1a;border:1px solid #c2410c26;border-radius:999px;height:.5rem;overflow:hidden}.upload-modal-progress-fill{background:linear-gradient(90deg, var(--accent), var(--accent-hover));border-radius:999px;height:100%;transition:width 80ms linear}.upload-modal-progress-hint{color:var(--accent);margin:.45rem 0 0;font-size:.72rem;font-style:italic}.upload-modal-demo-strip{color:var(--ink-muted);background:var(--accent-subtle);border-top:1px solid var(--accent-muted);border-bottom:1px solid #c2410c1f;margin:0;padding:.65rem 1.25rem;font-size:.78rem;line-height:1.5}.upload-modal-demo-strip strong{color:var(--accent-hover)}.upload-modal-footer{background:var(--surface-warm);border-radius:0 0 var(--radius-lg) var(--radius-lg);border-top:1px solid var(--border);flex-wrap:nowrap;justify-content:space-between;align-items:center;margin:0;padding:1rem 1.25rem 1.15rem}.upload-modal-footer-left,.upload-modal-footer-right{align-items:center;gap:.5rem;display:flex}.upload-modal-primary-btn{align-items:center;gap:.45rem;padding-left:1.25rem;padding-right:1.25rem;display:inline-flex}.upload-modal-btn-spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:.9rem;height:.9rem;animation:.65s linear infinite upload-modal-spin;display:inline-block}@keyframes upload-modal-spin{to{transform:rotate(360deg)}}.create-album-modal{background:var(--canvas-raised);border-radius:var(--radius-lg);width:min(480px,100%);max-height:92vh;box-shadow:var(--shadow-lg);border:1px solid var(--border);padding:1.25rem;overflow:auto}.add-photos-overlay{z-index:35}.add-photos-modal{background:var(--canvas-raised);border-radius:var(--radius-lg);width:min(900px,100%);max-height:92vh;box-shadow:var(--shadow-lg);border:1px solid var(--border);padding:1.25rem;overflow:auto}.modal-photo-grid{max-height:min(60vh,520px);margin-top:.75rem;overflow-y:auto}.form-field{gap:.35rem;font-size:.88rem;display:grid}.form-field input[type=text],.form-field input:not([type]){width:100%}.visibility-fieldset{border:1px solid var(--border);border-radius:var(--radius-md);margin:0;padding:.65rem .85rem}.visibility-fieldset legend{color:var(--ink-secondary);padding:0 .35rem;font-size:.85rem;font-weight:600}.radio-line{cursor:pointer;align-items:center;gap:.45rem;margin:.35rem 0;font-size:.92rem;display:flex}.upload-toolbar{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--canvas-raised);flex-direction:column;gap:.5rem;margin-bottom:.65rem;padding:.75rem .85rem;display:flex}.upload-toolbar-split{flex-flow:wrap}.upload-toolbar-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--canvas-sunken);min-width:0;font:inherit;cursor:pointer;text-align:center;flex:auto;padding:.45rem .6rem}.upload-toolbar-btn:hover{background:var(--border)}.toast-stack{z-index:40;gap:.5rem;display:grid;position:fixed;bottom:1.25rem;right:1.25rem}.toast{background:var(--ink);color:#faf8f5;border-radius:var(--radius-md);min-width:200px;box-shadow:var(--shadow-lg);border:1px solid #faf8f514;padding:.6rem .85rem;font-size:.88rem;font-weight:500;animation:.25s ease-out toast-enter}@keyframes toast-enter{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}
