:root{color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,sans-serif;--bg: #fafafa;--fg: #1d1d1f;--muted: #6b6b73;--border: #d2d2d7;--accent: #0a84ff;--error: #d92027}@media(prefers-color-scheme:dark){:root{--bg: #131316;--fg: #f1f1f3;--muted: #8a8a92;--border: #2d2d33;--accent: #409cff;--error: #ff6b6b}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg)}button,input{font:inherit}a{color:var(--accent)}.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:min(100%,22rem);padding:2rem;border:1px solid var(--border);border-radius:.75rem;background:var(--bg)}.login-card h1{margin:0 0 1.5rem;font-size:1.5rem;text-align:center}.login-card label{display:block;font-size:.875rem;margin:.75rem 0 .25rem;color:var(--muted)}.login-card input[type=email],.login-card input[type=password]{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:.375rem;background:transparent;color:var(--fg)}.login-card input:focus{outline:2px solid var(--accent);outline-offset:-1px}.login-card button[type=submit]{width:100%;margin-top:1.25rem;padding:.625rem;border:none;border-radius:.375rem;background:var(--accent);color:#fff;cursor:pointer}.login-card button[type=submit]:disabled{opacity:.6;cursor:progress}.login-error{margin-top:1rem;padding:.5rem .75rem;border:1px solid var(--error);border-radius:.375rem;color:var(--error);font-size:.875rem}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);background:var(--bg)}.app-header h1{margin:0;font-size:1.125rem}.app-header .user-info{display:flex;align-items:center;gap:.75rem;font-size:.875rem}.app-header .user-info span{color:var(--muted)}.app-header button.logout{padding:.375rem .75rem;border:1px solid var(--border);border-radius:.375rem;background:transparent;color:var(--fg);cursor:pointer}.app-header-brand{display:flex;align-items:baseline;gap:1.25rem}.app-nav{display:flex;align-items:center;gap:.5rem}.app-nav-link{padding:.25rem .625rem;border-radius:.375rem;color:var(--muted);text-decoration:none;font-size:.9375rem}.app-nav-link:hover{color:var(--fg);background:color-mix(in srgb,var(--fg) 6%,transparent)}.app-nav-link-active{color:var(--fg);background:color-mix(in srgb,var(--accent) 14%,transparent)}.app-main{padding:1.5rem;max-width:64rem;margin:0 auto}.placeholder{padding:2rem;border:1px dashed var(--border);border-radius:.75rem;color:var(--muted);text-align:center}.loading-screen{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.folder-browser{display:flex;flex-direction:column;gap:1rem}.folder-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.storage-usage{margin:0 0 .75rem;font-size:.8125rem;color:var(--muted, #6b7280)}.storage-usage-remaining{opacity:.85}.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;font-size:.9375rem}.breadcrumb-item{display:inline-flex;align-items:center;gap:.25rem}.breadcrumb-link{background:none;border:none;color:var(--accent);padding:0;cursor:pointer;font:inherit}.breadcrumb-link:disabled{color:var(--muted);cursor:progress}.breadcrumb-sep{color:var(--muted)}.refresh-button,.retry-button{padding:.375rem .75rem;border:1px solid var(--border);border-radius:.375rem;background:transparent;color:var(--fg);cursor:pointer}.refresh-button:disabled{cursor:progress;opacity:.6}.muted{color:var(--muted)}.folder-error{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border:1px solid var(--error);border-radius:.5rem;color:var(--error);flex-wrap:wrap}.folder-empty{margin:1rem 0}.folder-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.folder-row,.file-row{display:grid;align-items:center;gap:.75rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:.375rem;background:var(--bg)}.folder-row{grid-template-columns:1fr auto auto;padding:0}.folder-row .folder-link{display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:center;padding:.5rem .75rem;background:none;border:none;font:inherit;color:inherit;cursor:pointer;text-align:left}.folder-row .folder-link:hover{color:var(--accent)}.folder-row .folder-link:disabled{cursor:progress}.folder-row>.row-meta{padding-right:0}.folder-row>.row-actions{padding-right:.5rem}.file-row{grid-template-columns:auto 1fr auto auto auto auto}.folder-row-editing,.file-row-editing{grid-template-columns:auto 1fr auto;padding:.5rem .75rem}.folder-row-editing .row-inline-error,.file-row-editing .row-inline-error{grid-column:1 / -1}.row-icon{font-size:1.125rem}.row-icon-poster{width:2.5rem;height:1.5rem;object-fit:cover;border-radius:.2rem;flex-shrink:0}.row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-meta{color:var(--muted);font-size:.8125rem;white-space:nowrap}.row-mime{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;max-width:12rem;overflow:hidden;text-overflow:ellipsis}.download-link{padding:.25rem .625rem;border:1px solid var(--border);border-radius:.375rem;color:var(--fg);text-decoration:none;font-size:.8125rem}.download-link:hover{color:var(--accent);border-color:var(--accent)}.create-folder-form{display:flex;flex-direction:column;gap:.5rem}.create-folder-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.625rem}.create-folder-label{font-size:.875rem;color:var(--muted)}.create-folder-input{padding:.4rem .625rem;border:1px solid var(--border);border-radius:.375rem;background:transparent;color:var(--fg);min-width:0}.create-folder-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.create-folder-input:disabled{opacity:.6}.create-folder-button{padding:.4rem .875rem;border:1px solid var(--accent);border-radius:.375rem;background:var(--accent);color:#fff;cursor:pointer;font:inherit;white-space:nowrap}.create-folder-button:disabled{cursor:progress;opacity:.6}.create-folder-error{margin:0;padding:.375rem .625rem;border:1px solid var(--error);border-radius:.375rem;color:var(--error);font-size:.875rem}@media(max-width:540px){.create-folder-row{grid-template-columns:1fr}.create-folder-label{display:none}}.upload-panel{display:flex;flex-direction:column;gap:.75rem}.upload-zone{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem 1rem;border:1px dashed var(--border);border-radius:.5rem;background:transparent;text-align:center;transition:border-color .12s,background .12s}.upload-zone-dragging{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.upload-zone-disabled{opacity:.6}.upload-zone-hint{margin:0;color:var(--muted);font-size:.875rem}.upload-button{padding:.375rem .875rem;border:1px solid var(--accent);border-radius:.375rem;background:var(--accent);color:#fff;cursor:pointer;font:inherit}.upload-button:disabled{cursor:progress;opacity:.6}.upload-button-row{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.upload-button-folder{background:transparent;color:var(--accent)}.upload-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.upload-results{border:1px solid var(--border);border-radius:.5rem;padding:.625rem .75rem;display:flex;flex-direction:column;gap:.5rem}.upload-results-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.875rem;color:var(--muted)}.upload-clear{background:none;border:none;color:var(--accent);cursor:pointer;font:inherit;padding:0}.upload-result-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.upload-result-item{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:.75rem;padding:.375rem 0;border-top:1px dashed var(--border);font-size:.875rem}.upload-result-item:first-child{border-top:none}.upload-result-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-result-size{color:var(--muted);font-size:.8125rem;white-space:nowrap}.upload-result-error{grid-column:1 / -1;color:var(--error);font-size:.8125rem}.upload-pill{display:inline-block;padding:.125rem .5rem;border-radius:999px;font-size:.75rem;border:1px solid var(--border);color:var(--muted);white-space:nowrap}.upload-pill-uploading{border-color:var(--accent);color:var(--accent)}.upload-pill-uploaded{border-color:color-mix(in srgb,var(--accent) 60%,transparent);color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.upload-pill-duplicate{border-color:color-mix(in srgb,var(--error) 50%,transparent);color:var(--error)}.upload-pill-failed{border-color:var(--error);color:var(--error);background:color-mix(in srgb,var(--error) 10%,transparent)}.row-actions{display:flex;align-items:center;gap:.375rem;flex-wrap:wrap}.row-action,.row-action-primary{padding:.25rem .625rem;border:1px solid var(--border);border-radius:.375rem;background:transparent;color:var(--fg);cursor:pointer;font:inherit;font-size:.8125rem;white-space:nowrap}.row-action:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.row-action:disabled,.row-action-primary:disabled{opacity:.5;cursor:progress}.row-action-primary{border-color:var(--accent);background:var(--accent);color:#fff}.row-action-destructive{color:var(--error)}.row-action-destructive:hover:not(:disabled){background:color-mix(in srgb,var(--error) 12%,transparent);border-color:var(--error);color:var(--error)}.row-edit-input{width:100%;padding:.3rem .5rem;border:1px solid var(--accent);border-radius:.375rem;background:transparent;color:var(--fg);font:inherit;min-width:0}.row-edit-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.row-edit-input:disabled{opacity:.6}.row-inline-error{margin:.375rem 0 0;padding:.3rem .5rem;border:1px solid var(--error);border-radius:.375rem;color:var(--error);font-size:.8125rem}.folder-banner{margin:0;padding:.5rem .75rem;border-radius:.375rem;border:1px solid var(--border);font-size:.875rem}.folder-banner-info{border-color:color-mix(in srgb,var(--accent) 50%,transparent);color:var(--fg);background:color-mix(in srgb,var(--accent) 8%,transparent)}.folder-banner-error{border-color:var(--error);color:var(--error);background:color-mix(in srgb,var(--error) 8%,transparent)}@media(max-width:720px){.file-row{grid-template-columns:auto 1fr auto}.file-row .row-mime,.file-row .row-date{display:none}.file-row .row-actions{grid-column:1 / -1;justify-content:flex-end}.folder-row{grid-template-columns:1fr auto}.folder-row>.row-meta{display:none}}.trash-page{display:flex;flex-direction:column;gap:1rem}.trash-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.trash-header h2{margin:0;font-size:1.25rem}.trash-header-actions{display:flex;gap:.5rem}.trash-banner{margin:0;padding:.5rem .75rem;border-radius:.375rem;border:1px solid var(--border);font-size:.875rem}.trash-banner-info{border-color:color-mix(in srgb,var(--accent) 50%,transparent);color:var(--fg);background:color-mix(in srgb,var(--accent) 8%,transparent)}.trash-banner-error{border-color:var(--error);color:var(--error);background:color-mix(in srgb,var(--error) 8%,transparent)}.trash-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.trash-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:.375rem;background:var(--bg)}.trash-row-main{display:flex;flex-direction:column;gap:.125rem;min-width:0}.trash-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trash-row-meta{color:var(--muted);font-size:.8125rem}.trash-row-parent{font-style:italic}.trash-row-actions{display:flex;gap:.375rem;flex-shrink:0}.restore-button{padding:.3rem .625rem;border:1px solid var(--accent);border-radius:.375rem;background:transparent;color:var(--accent);cursor:pointer;font:inherit;font-size:.8125rem}.restore-button:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 12%,transparent)}.restore-button:disabled{opacity:.5;cursor:progress}.destructive-button{padding:.3rem .625rem;border:1px solid var(--error);border-radius:.375rem;background:transparent;color:var(--error);cursor:pointer;font:inherit;font-size:.8125rem}.destructive-button:hover:not(:disabled){background:color-mix(in srgb,var(--error) 12%,transparent)}.destructive-button:disabled{opacity:.5;cursor:progress}@media(max-width:540px){.trash-row{grid-template-columns:auto 1fr}.trash-row-actions{grid-column:1 / -1;justify-content:flex-end}}.gallery-page{display:flex;flex-direction:column;gap:1rem}.gallery-header{display:flex;flex-direction:column;gap:.75rem}.gallery-header h2{margin:0;font-size:1.25rem}.gallery-controls{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between}.gallery-search{display:flex;gap:.375rem;flex:1 1 16rem;align-items:center}.gallery-search-input{flex:1 1 auto;min-width:0;padding:.375rem .625rem;border:1px solid var(--border);border-radius:.375rem;background:transparent;color:var(--fg);font:inherit}.gallery-search-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.gallery-sort{display:flex;align-items:center;gap:.375rem}.gallery-sort-label{font-size:.875rem;color:var(--muted)}.gallery-filters{display:flex;flex-wrap:wrap;gap:.625rem .875rem;align-items:end;padding-top:.5rem}.gallery-filter{display:flex;flex-direction:column;gap:.25rem;font-size:.8125rem}.gallery-filter-label{color:var(--muted);font-size:.75rem}.gallery-select{padding:.35rem .5rem;border:1px solid var(--border);border-radius:.375rem;background:transparent;color:var(--fg);font:inherit;font-size:.875rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.gallery-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem}.gallery-card{display:flex;flex-direction:column;gap:.4rem;padding:.5rem;border:1px solid var(--border);border-radius:.5rem;background:var(--bg);min-width:0}.gallery-thumb-wrap{position:relative;width:100%;aspect-ratio:1 / 1;background:color-mix(in srgb,var(--fg) 6%,transparent);border-radius:.375rem;overflow:hidden;display:flex;align-items:center;justify-content:center}.gallery-thumb{width:100%;height:100%;object-fit:cover;display:block}.gallery-thumb-placeholder{font-size:2rem;color:var(--muted)}.gallery-meta{display:flex;flex-direction:column;gap:.125rem;min-width:0}.gallery-name{font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:.3rem}.gallery-dup-badge{display:inline-block;flex-shrink:0;padding:0 .35rem;border-radius:999px;font-size:.7rem;font-weight:700;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);cursor:default}.gallery-sub{font-size:.75rem;color:var(--muted)}.gallery-pagination{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-top:.5rem;border-top:1px solid var(--border)}.gallery-page-info{font-size:.8125rem}@media(max-width:540px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.gallery-thumb-button{display:block;width:100%;padding:0;border:none;background:none;cursor:pointer;border-radius:.375rem}.gallery-thumb-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lightbox-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem;background:color-mix(in srgb,#000 78%,transparent)}.lightbox-content{display:flex;flex-direction:column;gap:.5rem;max-width:min(96vw,1100px);max-height:92vh;background:var(--bg);border:1px solid var(--border);border-radius:.5rem;padding:.75rem}.lightbox-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.lightbox-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lightbox-close{flex-shrink:0;border:1px solid var(--border);border-radius:.375rem;background:transparent;color:var(--fg);cursor:pointer;font-size:1.25rem;line-height:1;padding:.1rem .55rem}.lightbox-close:hover{background:color-mix(in srgb,var(--fg) 8%,transparent)}.lightbox-stage{display:flex;align-items:center;gap:.5rem;min-height:0}.lightbox-image{flex:1 1 auto;min-width:0;max-width:100%;max-height:75vh;object-fit:contain;display:block;margin:0 auto}.lightbox-error{flex:1 1 auto;text-align:center;color:var(--error);padding:3rem 1rem}.lightbox-nav{flex-shrink:0;border:1px solid var(--border);border-radius:.375rem;background:transparent;color:var(--fg);cursor:pointer;font-size:1.5rem;line-height:1;padding:.25rem .6rem}.lightbox-nav:hover:not(:disabled){background:color-mix(in srgb,var(--fg) 8%,transparent)}.lightbox-nav:disabled{opacity:.4;cursor:not-allowed}.lightbox-meta{font-size:.8125rem;text-align:center}.lightbox-metadata{border-top:1px solid var(--border);padding-top:.5rem;max-height:30vh;overflow-y:auto}.metadata-list{display:grid;grid-template-columns:auto 1fr;gap:.15rem .75rem;margin:0;font-size:.8125rem}.metadata-row{display:contents}.metadata-row dt{color:var(--muted);white-space:nowrap}.metadata-row dd{margin:0;overflow-wrap:anywhere}.metadata-actions{margin-top:.5rem;display:flex;justify-content:flex-end}.metadata-edit-form{display:grid;grid-template-columns:1fr;gap:.3rem}.metadata-edit-form label{font-size:.8125rem;color:var(--muted);margin-top:.25rem}.metadata-edit-form input[type=text],.metadata-edit-form input[type=number],.metadata-edit-form input[type=datetime-local],.metadata-edit-form textarea{width:100%;padding:.3rem .45rem;border:1px solid var(--border);border-radius:.3rem;background:var(--bg);color:var(--fg);font:inherit}.metadata-edit-form textarea{resize:vertical;min-height:3rem}.metadata-edit-note{margin:0 0 .25rem;font-size:.75rem}.metadata-edit-error{margin:.25rem 0 0;padding:.3rem .5rem;border:1px solid var(--error);background:color-mix(in srgb,var(--error) 8%,transparent);color:var(--error);border-radius:.3rem;font-size:.8125rem}.metadata-edit-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}.row-share-slot{grid-column:1 / -1;border-top:1px dashed var(--border);padding-top:.5rem;margin-top:.25rem}.share-panel{display:flex;flex-direction:column;gap:.375rem}.share-panel-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.share-panel-hint{font-size:.8125rem;flex:1 1 14rem;min-width:0}.share-panel-hint em{font-style:normal;font-weight:600;color:var(--fg)}.share-panel-url{flex:1 1 16rem;min-width:0;padding:.35rem .5rem;border:1px solid var(--accent);border-radius:.375rem;background:transparent;color:var(--fg);font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125rem}.share-panel-url:focus{outline:2px solid var(--accent);outline-offset:-1px}.share-panel-status{flex-basis:100%;font-size:.75rem}.share-panel-warning{flex-basis:100%;margin:0;padding:.5rem .625rem;border:1px solid var(--accent);border-radius:.375rem;font-size:.75rem;line-height:1.4}.share-panel-options{display:flex;flex-wrap:wrap;gap:.625rem .875rem}.share-panel-field{display:flex;flex-direction:column;gap:.2rem;min-width:12rem;flex:1 1 12rem}.share-panel-field-label{font-size:.75rem;color:var(--muted)}.share-panel-field-input{padding:.35rem .5rem;border:1px solid var(--border);border-radius:.375rem;background:transparent;color:var(--fg);font:inherit;font-size:.875rem;min-width:0}.share-panel-field-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.share-panel-field-input-number{max-width:9rem}.share-panel-divider{height:1px;background:var(--border);margin:.25rem 0}.share-existing-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.375rem}.share-existing-row{display:grid;grid-template-columns:1fr auto;gap:.375rem .75rem;align-items:center;padding:.5rem .625rem;border:1px solid var(--border);border-radius:.375rem;background:color-mix(in srgb,var(--fg) 2%,transparent)}.share-existing-main{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;min-width:0}.share-existing-name{font-size:.875rem;overflow:hidden;text-overflow:ellipsis}.share-existing-meta{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.25rem .75rem;font-size:.75rem;color:var(--muted)}.share-existing-actions{display:flex;align-items:center;gap:.375rem}.share-existing-row-revoked,.share-existing-row-expired,.share-existing-row-exhausted{opacity:.85}.share-status-badge{display:inline-block;padding:.05rem .45rem;border-radius:999px;font-size:.7rem;border:1px solid var(--border);color:var(--muted);white-space:nowrap}.share-status-active{border-color:color-mix(in srgb,var(--accent) 60%,transparent);color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.share-status-revoked{border-color:var(--error);color:var(--error);background:color-mix(in srgb,var(--error) 10%,transparent)}.share-status-expired,.share-status-exhausted{border-color:var(--border);color:var(--muted);background:color-mix(in srgb,var(--fg) 6%,transparent)}.shares-page{display:flex;flex-direction:column;gap:1rem}.shares-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.shares-header h2{margin:0;font-size:1.25rem}.shares-controls{display:flex;align-items:center;gap:.5rem}.shares-filter-label{color:var(--muted);font-size:.875rem}.shares-select{padding:.3rem .5rem;border:1px solid var(--border);border-radius:.375rem;background:var(--bg);color:var(--fg);font:inherit}.shares-banner{margin:0;padding:.5rem .75rem;border-radius:.375rem;border:1px solid var(--border);font-size:.875rem}.shares-banner-info{border-color:color-mix(in srgb,var(--accent) 50%,transparent);color:var(--fg);background:color-mix(in srgb,var(--accent) 8%,transparent)}.shares-banner-error{border-color:var(--error);color:var(--error);background:color-mix(in srgb,var(--error) 8%,transparent)}.shares-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.shares-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.75rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:.375rem;background:var(--bg)}.shares-row-main{display:flex;flex-direction:column;gap:.125rem;min-width:0}.shares-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.shares-row-path{font-size:.8125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shares-row-meta{color:var(--muted);font-size:.8125rem}.shares-row-side{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.shares-pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem}.shares-page-info{font-size:.8125rem}@media(max-width:600px){.shares-row{grid-template-columns:1fr}.shares-row-side{justify-content:flex-end}}.row-move-slot{grid-column:1 / -1;border-top:1px dashed var(--border);padding-top:.5rem;margin-top:.25rem}.move-panel{display:flex;flex-direction:column;gap:.5rem;padding:.5rem .75rem}.move-panel-title{margin:0;font-size:.875rem;color:var(--muted)}.move-panel-title strong{color:var(--fg);font-weight:600}.move-panel-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;font-size:.875rem}.move-breadcrumb-item{display:inline-flex;align-items:center;gap:.25rem}.move-breadcrumb-link{background:none;border:none;color:var(--accent);padding:0;cursor:pointer;font:inherit}.move-breadcrumb-link:disabled{color:var(--muted);cursor:progress}.move-breadcrumb-current{color:var(--fg);font-weight:500}.move-breadcrumb-sep{color:var(--muted)}.move-panel-list-wrap{min-height:2.5rem;max-height:14rem;overflow-y:auto;border:1px solid var(--border);border-radius:.375rem;padding:.375rem;background:color-mix(in srgb,var(--fg) 3%,transparent)}.move-folder-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.125rem}.move-folder-link{display:grid;grid-template-columns:auto 1fr;gap:.5rem;align-items:center;width:100%;padding:.3rem .5rem;background:none;border:1px solid transparent;border-radius:.25rem;font:inherit;color:inherit;cursor:pointer;text-align:left}.move-folder-link:hover:not(:disabled){border-color:var(--border);color:var(--accent)}.move-folder-link:disabled{cursor:progress;opacity:.6}.move-panel-error{display:flex;align-items:center;justify-content:space-between;gap:.75rem;color:var(--error);font-size:.875rem}.move-panel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.move-panel-hint{font-size:.8125rem}.admin-page{display:flex;flex-direction:column;gap:1rem}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.admin-header h2{margin:0;font-size:1.25rem}.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:.75rem}.admin-card{border:1px solid var(--border);border-radius:.5rem;padding:.875rem 1rem;background:var(--bg);display:flex;flex-direction:column;gap:.5rem}.admin-card h3{margin:0;font-size:.9375rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.admin-card-list{margin:0;display:grid;grid-template-columns:1fr auto;gap:.25rem .75rem;font-size:.875rem}.admin-card-list dt{color:var(--muted)}.admin-card-list dd{margin:0;font-variant-numeric:tabular-nums;text-align:right}.admin-sweeper{font-size:.875rem;padding:.25rem 0}.admin-sweeper-detail{font-size:.75rem}.sweeper-pill{display:inline-block;padding:.05rem .5rem;border-radius:999px;font-size:.7rem;border:1px solid var(--border);color:var(--muted);margin-left:.25rem}.sweeper-pill-on{border-color:color-mix(in srgb,var(--accent) 60%,transparent);color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.sweeper-pill-off{border-color:var(--border);color:var(--muted);background:color-mix(in srgb,var(--fg) 6%,transparent)}.admin-warning{margin:.25rem 0 0;padding:.375rem .625rem;border:1px solid var(--error);border-radius:.375rem;color:var(--error);background:color-mix(in srgb,var(--error) 8%,transparent);font-size:.8125rem}html,body{max-width:100%;overflow-x:hidden}.page-container{display:flex;flex-direction:column;gap:1rem;padding:0}.page-container h2{margin:0;font-size:1.25rem}.create-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-start}.create-form input[type=text],.create-form input[type=email],.create-form input[type=password]{flex:1 1 12rem;min-width:0;padding:.5rem .625rem;border:1px solid var(--border);border-radius:.375rem;background:transparent;color:var(--fg);font:inherit}.create-form input:focus{outline:2px solid var(--accent);outline-offset:-1px}.create-form button{min-height:44px;padding:.5rem .875rem;border:1px solid var(--accent);border-radius:.375rem;background:var(--accent);color:#fff;cursor:pointer;font:inherit;white-space:nowrap}.create-form button:disabled{opacity:.6;cursor:progress}.inline-error{flex-basis:100%;margin:0;padding:.3rem .5rem;border:1px solid var(--error);border-radius:.375rem;color:var(--error);background:color-mix(in srgb,var(--error) 8%,transparent);font-size:.875rem}.page-error{padding:.75rem 1rem;border:1px solid var(--error);border-radius:.5rem;color:var(--error);background:color-mix(in srgb,var(--error) 8%,transparent)}.empty-state{color:var(--muted);padding:2rem 1rem;text-align:center}.btn-danger{min-height:44px;padding:.375rem .75rem;border:1px solid var(--error);border-radius:.375rem;background:transparent;color:var(--error);cursor:pointer;font:inherit;white-space:nowrap}.btn-danger:hover{background:color-mix(in srgb,var(--error) 8%,transparent)}.back-link{display:inline-block;font-size:.875rem;color:var(--accent);text-decoration:none;margin-bottom:.25rem}.back-link:hover{text-decoration:underline}.album-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.375rem}.album-row{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .75rem;padding:.625rem .875rem;border:1px solid var(--border);border-radius:.5rem;background:var(--bg)}.album-name{font-weight:600;color:var(--fg);text-decoration:none;flex:1 1 8rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-name:hover{text-decoration:underline}.album-meta{font-size:.8125rem;color:var(--muted);flex:1 1 12rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-detail-header{display:flex;flex-direction:column;gap:.375rem}.album-description{margin:0;font-size:.9375rem;color:var(--muted)}.album-edit-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-start}.album-edit-form input[type=text]{flex:1 1 10rem;min-width:0;padding:.45rem .625rem;border:1px solid var(--border);border-radius:.375rem;background:transparent;color:var(--fg);font:inherit}.album-edit-form input:focus{outline:2px solid var(--accent);outline-offset:-1px}.album-edit-form button{min-height:44px;padding:.375rem .75rem;border:1px solid var(--border);border-radius:.375rem;background:transparent;color:var(--fg);cursor:pointer;font:inherit}.album-items-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.375rem}.album-item-row{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .75rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--bg)}.album-item-thumb{width:3rem;height:3rem;object-fit:cover;border-radius:.25rem;flex-shrink:0}.album-item-name{flex:1 1 8rem;min-width:0;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-item-meta{font-size:.8125rem;color:var(--muted);white-space:nowrap}.album-add-section{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;border-top:1px solid var(--border);padding-top:.5rem;margin-top:.25rem}.album-add-section select{flex:1 1 8rem;min-width:0;padding:.35rem .5rem;border:1px solid var(--border);border-radius:.375rem;background:transparent;color:var(--fg);font:inherit;font-size:.875rem}@media(max-width:600px){.app-header{flex-direction:column;align-items:flex-start;gap:.5rem;padding:.625rem 1rem}.app-header-brand{flex-wrap:wrap;gap:.75rem;width:100%}.app-nav{flex-wrap:wrap;gap:.25rem}.app-nav-link{padding:.375rem .5rem;font-size:.875rem;min-height:36px;display:inline-flex;align-items:center}.app-header .user-info{gap:.5rem;font-size:.8125rem;width:100%;justify-content:flex-end}.app-header .user-info span:first-child{display:none}}.row-action{min-height:44px;padding:.375rem .75rem;display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:.375rem;background:transparent;color:var(--fg);cursor:pointer;font:inherit;text-decoration:none;white-space:nowrap}.row-action:hover{background:color-mix(in srgb,var(--fg) 6%,transparent);color:var(--accent)}.row-action-destructive{border-color:var(--error);color:var(--error)}.row-action-destructive:hover{background:color-mix(in srgb,var(--error) 8%,transparent);color:var(--error)}.row-action:disabled{opacity:.6;cursor:progress}.lightbox-close,.lightbox-nav{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}.metadata-actions{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}video.lightbox-image{width:100%;height:auto;max-height:60vh}@media(max-width:480px){.lightbox-content{padding:.5rem;max-height:96vh}.lightbox-metadata{max-height:35vh}.lightbox-image{max-height:45vh}video.lightbox-image{max-height:45vh}.lightbox-nav{font-size:1.125rem;padding:.25rem .4rem;min-width:36px}.lightbox-close{font-size:1rem;min-width:36px;min-height:36px}.metadata-actions{justify-content:flex-start}.album-row{flex-direction:column;align-items:flex-start}.album-row .btn-danger{align-self:flex-end}.album-item-row{flex-direction:column;align-items:flex-start}.album-item-row .btn-danger{align-self:flex-end}}@media(max-width:480px){.admin-grid{grid-template-columns:1fr}.app-main{padding:1rem}}@media(max-width:600px){.lightbox-overlay{padding:1rem .5rem .5rem;align-items:flex-start}.lightbox-content{width:100%}.gallery-pagination{flex-direction:column;align-items:stretch;gap:.5rem}.gallery-pagination button{min-height:44px;width:100%}}@media(max-width:480px){.shares-pagination{flex-direction:column;align-items:stretch}}
