/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--color-bg:#fafaf9;--color-surface:#fff;--color-elevated:#fff;--color-border:#eceae6;--color-text:#171717;--color-muted:#6f6c68;--color-faint:#a8a49e;--color-primary:#171717;--color-primary-text:#fff;--color-primary-hover:#2a2a2a;--color-accent:#171717;--color-hover-surface:#f1f0ed;--focus-ring:0 0 0 2px var(--color-bg), 0 0 0 4px var(--color-text);--flag-red:#e5484d;--flag-yellow:#f2b600;--flag-green:#2ea043;--flag-final:#111;--flag-none:transparent;--color-select:#2563eb;--color-select-hover:#1d4fd7;--color-danger:#e5484d;--color-success:#2ea043;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px;--space-2xs:2px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--grid-columns:4;--grid-gap:16px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 16px #00000014;--shadow-lightbox:0 24px 64px #00000073;--ease:cubic-bezier(.4, 0, .2, 1);--dur-fast:.12s;--dur:.2s;--dur-slow:.36s}:root[data-theme=dark]{--color-bg:#0c0c0d;--color-surface:#161618;--color-elevated:#1e1e21;--color-border:#2a2a2e;--color-text:#f5f5f4;--color-muted:#a8a49e;--color-faint:#6f6c68;--color-primary:#f5f5f4;--color-primary-text:#0c0c0d;--color-primary-hover:#e4e4e2;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 16px #00000080}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg:#0c0c0d;--color-surface:#161618;--color-elevated:#1e1e21;--color-border:#2a2a2e;--color-text:#f5f5f4;--color-muted:#a8a49e;--color-faint:#6f6c68;--color-primary:#f5f5f4;--color-primary-text:#0c0c0d;--color-primary-hover:#e4e4e2}}.heading-xl{font-family:var(--font-sans);letter-spacing:-.03em;color:var(--color-text);font-size:2.25rem;font-weight:700;line-height:1.1}.heading-lg{font-family:var(--font-sans);letter-spacing:-.025em;color:var(--color-text);font-size:1.6rem;font-weight:700;line-height:1.18}.heading-md{font-family:var(--font-sans);letter-spacing:-.015em;color:var(--color-text);font-size:1.15rem;font-weight:600;line-height:1.3}.body-text{font-family:var(--font-sans);color:var(--color-text);font-size:1rem;font-weight:400;line-height:1.6}.body-small{font-family:var(--font-sans);color:var(--color-muted);font-size:.875rem;font-weight:400;line-height:1.5}.hint-text{font-family:var(--font-sans);color:var(--color-faint);font-size:.8125rem;font-weight:400;line-height:1.4}.label-text{font-family:var(--font-sans);letter-spacing:.02em;text-transform:uppercase;color:var(--color-muted);font-size:.75rem;font-weight:500;line-height:1.3}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}.masonry-cols{align-items:flex-start;display:flex}.masonry-col{flex-direction:column;flex:1 1 0;min-width:0;display:flex}.masonry-item{border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);width:100%;display:block;position:relative;overflow:hidden}.masonry-item img{cursor:zoom-in;width:100%;height:auto;display:block}.gallery-hero{background:var(--color-bg);width:100%;height:100vh;min-height:420px;position:relative;overflow:hidden}.gallery-hero img{object-fit:cover;width:100%;height:100%;display:block}.gallery-hero:after{content:"";pointer-events:none;background:radial-gradient(#00000052,#0000001f 55%,#0000 80%);position:absolute;top:0;right:0;bottom:0;left:0}.hero-name{z-index:1;text-align:center;padding:var(--space-lg);justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}.hero-name .heading-xl{color:#fff;text-shadow:0 2px 24px #00000080;font-size:clamp(2rem,5vw,3.4rem)}@media(max-width:600px){.gallery-hero{min-height:360px}}.gallery-titlebar{text-align:center;min-height:25vh;padding:var(--space-xl) var(--space-lg);justify-content:center;align-items:center;display:flex}.sel-check{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#0000;cursor:pointer;width:28px;height:28px;transition:background var(--dur-fast) var(--ease);background:#00000059;border:2px solid #fff;border-radius:8px;justify-content:center;align-items:center;display:flex;position:absolute;top:8px;left:8px;box-shadow:0 0 0 1px #00000040}.sel-check:hover{background:#0000008c}.sel-check.on{background:var(--color-select);color:#fff;box-shadow:0 0 0 1px var(--color-select-hover);border-color:#fff}.cb-left .folder-tabs{border:none;margin:0;padding:0}.gallery-footer{padding:var(--space-2xl) var(--space-md) calc(var(--space-2xl) + env(safe-area-inset-bottom));flex-direction:column;align-items:center;gap:12px;display:flex}.footer-logo img{opacity:.9;border-radius:8px;width:auto;height:34px;display:block}.footer-logo:hover img{opacity:1}.footer-links{align-items:center;gap:10px;display:flex}.gallery-footer a{text-decoration:none}.gallery-footer a:hover{color:var(--color-text)}.gallery-page{padding-bottom:104px}.ctrl-bar{padding:12px var(--space-lg);border-bottom:1px solid var(--color-border);background:var(--color-bg);align-items:center;gap:12px;display:flex}.cb-left{flex:1 1 0;align-items:center;min-width:0;display:flex}.cb-center{flex-wrap:wrap;flex:0 auto;justify-content:center;align-items:center;gap:8px;display:flex}.cb-right{flex:1 1 0;justify-content:flex-end;align-items:center;gap:8px;display:flex}@media(max-width:820px){.ctrl-bar{flex-wrap:wrap;justify-content:center}.cb-left,.cb-center,.cb-right{flex:100%;justify-content:center}}.dock{left:50%;bottom:max(16px,env(safe-area-inset-bottom));z-index:40;scrollbar-width:none;background:var(--color-surface);border-radius:18px;flex-wrap:nowrap;justify-content:center;align-items:center;gap:8px;max-width:calc(100vw - 16px);padding:10px 14px;display:flex;position:fixed;overflow-x:auto;transform:translate(-50%)}@supports (color:color-mix(in lab,red,red)){.dock{background:color-mix(in srgb,var(--color-surface) 72%,transparent)}}.dock{-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%);border:1px solid var(--color-border);box-shadow:0 14px 44px #0003}.dock-count{color:var(--color-muted);white-space:nowrap;padding:0 4px;font-size:.8rem;font-weight:600}.dock .vsep,.cb-center .vsep{min-height:22px}.dock::-webkit-scrollbar{display:none}.dock .tb-flags{flex-wrap:nowrap}.dock .btn{white-space:nowrap;flex:none}.lightbox{z-index:50;cursor:zoom-out;background:#000000eb;justify-content:center;align-items:center;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.lb-stage{justify-content:center;align-items:center;max-width:96vw;max-height:94vh;margin:0;display:flex}.lb-stage img{border-radius:var(--radius-sm);max-width:96vw;max-height:94vh;box-shadow:var(--shadow-lightbox);cursor:default}.lightbox .lb-top,.lightbox .lb-nav,.lightbox .lb-controls,.lightbox .lb-dl{transition:opacity var(--dur) var(--ease)}.lb-immersive{cursor:none}.lb-immersive .lb-top,.lb-immersive .lb-nav,.lb-immersive .lb-controls,.lb-immersive .lb-dl{opacity:0;pointer-events:none}.lb-glass{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;cursor:pointer;transition:background var(--dur-fast) var(--ease);background:#14141480;border:1px solid #ffffff2e}.lb-glass:hover{background:#373737b8}.lb-top{z-index:60;background:linear-gradient(#0000008c,#0000);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex;position:fixed;top:0;left:0;right:0}.lb-counter{color:#ffffffd9;font-variant-numeric:tabular-nums;font-size:.85rem}.lb-top-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.lb-close{border-radius:var(--radius-md);justify-content:center;align-items:center;width:38px;height:38px;display:flex}.lb-dl,.lb-action{border-radius:var(--radius-sm);align-items:center;gap:6px;padding:8px 13px;font-size:.82rem;font-weight:600;text-decoration:none;display:inline-flex}.lb-action.on{color:#111;background:#fff;border-color:#fff}.lb-action.danger{color:#ff8a8a;border-color:#ff8a8a66}.lb-action.danger:hover{background:#e5484d47}.lb-nav{z-index:60;border-radius:var(--radius-md);justify-content:center;align-items:center;width:46px;height:56px;display:flex;position:fixed;top:50%;transform:translateY(-50%)}.lb-prev{left:16px}.lb-next{right:16px}.lb-controls{left:50%;bottom:max(20px,env(safe-area-inset-bottom));z-index:60;-webkit-backdrop-filter:blur(16px)saturate(160%);backdrop-filter:blur(16px)saturate(160%);background:#14141480;border:1px solid #ffffff29;border-radius:16px;align-items:center;gap:22px;padding:8px 14px;display:flex;position:fixed;transform:translate(-50%)}.lb-sel{color:#fff;cursor:pointer;width:32px;height:32px;transition:background var(--dur-fast) var(--ease);background:#ffffff1f;border:2px solid #ffffffd9;border-radius:8px;justify-content:center;align-items:center;display:flex}.lb-sel:hover{background:#ffffff38}.lb-sel.on{background:var(--color-select);border-color:#fff}.lb-marks{align-items:center;gap:7px;display:flex}.lb-sq{cursor:pointer;opacity:.5;color:#fff;width:32px;height:32px;transition:opacity var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease);border:2px solid #ffffffd9;border-radius:8px;justify-content:center;align-items:center;padding:0;display:flex;box-shadow:0 0 0 1px #0000004d}.lb-sq:hover{opacity:.9}.lb-sq.on{opacity:1;transform:scale(1.06);box-shadow:0 0 0 2px #fff,0 0 0 4px #00000080}.lb-clear{opacity:.6;background:#00000080}.lb-keys{color:#ffffff80;white-space:nowrap;font-size:.72rem}@media(hover:none){.lb-keys{display:none}}@media(max-width:560px){.lb-nav{width:42px;height:42px}.lb-prev{left:8px}.lb-next{right:8px}}.btn{font-family:var(--font-sans);border-radius:var(--radius-sm);border:1px solid var(--color-primary);background:var(--color-primary);color:var(--color-primary-text);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease);justify-content:center;align-items:center;gap:7px;padding:9px 16px;font-size:.875rem;font-weight:600;display:inline-flex}.btn:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.btn svg{flex:none;width:16px;height:16px}.btn-ghost{color:var(--color-text);border-color:var(--color-border);background:0 0}.btn-ghost:hover{background:var(--color-hover-surface);border-color:var(--color-border);color:var(--color-text)}.btn-sm{padding:7px 12px;font-size:.82rem}.btn-sm svg{width:15px;height:15px}.btn-icon{width:40px;height:40px;padding:0}.btn-icon.btn-sm{width:34px;height:34px}.btn-stack{border-radius:var(--radius-sm);min-width:66px;color:var(--color-text);cursor:pointer;font-family:var(--font-sans);white-space:nowrap;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease);background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:5px;padding:8px 12px;font-size:.72rem;font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.btn-stack:hover{background:var(--color-hover-surface)}.btn-stack:focus-visible{box-shadow:var(--focus-ring);outline:none}.btn-stack svg{opacity:.85;width:20px;height:20px}.btn-stack:disabled{opacity:.45;cursor:not-allowed}.btn-stack.danger{color:var(--color-danger)}.btn-stack.danger:hover{background:var(--color-danger)}@supports (color:color-mix(in lab,red,red)){.btn-stack.danger:hover{background:color-mix(in srgb,var(--color-danger) 12%,transparent)}}.admin-actions{flex-wrap:wrap;align-items:flex-start;gap:4px;display:flex}.admin-subbar{margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border);flex-wrap:nowrap;align-items:center;gap:10px;display:flex}.admin-subbar .folder-tabs{border:none;flex:auto;min-width:0;margin:0;padding:0}.admin-subbar .tb-actions{flex:none}.admin-subbar .spacer{margin-left:auto}@media(max-width:760px){.admin-subbar{flex-wrap:wrap}.admin-subbar .folder-tabs{flex:100%}.admin-subbar .vsep{display:none}}.ft-title{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.dropzone{border-radius:var(--radius-md);transition:outline-color var(--dur-fast) var(--ease);outline-offset:6px;outline:2px dashed #0000;position:relative}.dropzone.drag{outline-color:var(--color-text)}.dropzone-hint{z-index:5;background:var(--color-bg);justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}@supports (color:color-mix(in lab,red,red)){.dropzone-hint{background:color-mix(in srgb,var(--color-bg) 80%,transparent)}}.dropzone-hint{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:var(--radius-md);pointer-events:none;font-weight:600}.dropzone-hint svg{width:22px;height:22px}.sidebar-search{position:relative}.sidebar-search svg{width:15px;height:15px;color:var(--color-faint);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.sidebar-search input{padding-left:32px}.switch{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius-full);background:var(--color-border);cursor:pointer;width:40px;height:22px;transition:background var(--dur) var(--ease);border:none;flex:none;position:relative}.switch:after{content:"";width:18px;height:18px;box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.switch:checked{background:var(--color-primary)}.switch:checked:after{transform:translate(18px)}.switch:focus-visible{box-shadow:var(--focus-ring);outline:none}.field{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);width:100%;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);padding:9px 12px;font-size:.9rem}.field:focus-visible,.field:focus{border-color:var(--color-text);box-shadow:0 0 0 3px var(--color-hover-surface);outline:none}.admin{grid-template-columns:280px 1fr;min-height:100vh;display:grid}.admin-sidebar{border-right:1px solid var(--color-border);background:var(--color-surface);gap:var(--space-md);padding:var(--space-lg) var(--space-md);flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.admin-brand{align-items:center;gap:10px;padding:0 4px 4px;font-size:1.1rem;font-weight:600;display:flex}.admin-brand img{border-radius:6px;width:auto;height:28px}.admin-nav{flex-direction:column;flex:1;gap:2px;display:flex}.nav-item{text-align:left;color:var(--color-text);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;font-size:.9rem;display:flex}.nav-item:hover{background:var(--color-hover-surface)}.nav-item.active{background:var(--color-primary);color:var(--color-primary-text)}.nav-item:focus-visible{box-shadow:var(--focus-ring);outline:none}.nav-item .count{opacity:.6;font-variant-numeric:tabular-nums;align-items:center;gap:3px;font-size:.75rem;display:inline-flex}.nav-item .count svg{opacity:1;width:12px;height:12px}.nav-item svg{opacity:.7;flex:none;width:16px;height:16px}.nav-item.active svg{opacity:1}.nav-item.nav-action{color:var(--color-muted);justify-content:flex-start;gap:11px}.nav-item.nav-action:hover{color:var(--color-text)}.admin-foot{margin-top:var(--space-sm);flex-direction:column;gap:2px;display:flex}.admin-main{padding:var(--space-xl)}.admin-head{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.admin-actions{flex-wrap:wrap;gap:8px;display:flex}.head-left{align-items:center;gap:14px;min-width:0;display:flex}.head-cover{border-radius:var(--radius-md);object-fit:cover;width:48px;height:48px;box-shadow:var(--shadow-sm);flex:none}.tiles{gap:var(--grid-gap);grid-template-columns:repeat(auto-fill,minmax(190px,1fr));display:grid}.tile{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;text-align:left;transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease);padding:0;overflow:hidden}.tile:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.tile-cover{aspect-ratio:4/3;background:var(--color-bg);justify-content:center;align-items:center;display:flex;overflow:hidden}.tile-cover img{object-fit:cover;width:100%;height:100%;display:block}.tile-cover.empty{color:var(--color-faint);font-size:.8rem}.tile-meta{padding:10px 12px}.tile-title{font-size:.9rem;font-weight:500}.tile-sub{color:var(--color-muted);margin-top:2px;font-size:.75rem}.cover-badge{border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-primary-text);letter-spacing:.02em;padding:2px 8px;font-size:.68rem;font-weight:600;position:absolute;bottom:8px;left:8px}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{text-align:center;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:320px;display:flex}.login-logo{border-radius:10px;width:auto;height:48px}.login-input{border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);border-radius:8px;padding:10px 14px;font-size:1rem}@media(max-width:760px){.admin{grid-template-columns:1fr}.admin-sidebar{height:auto;position:static}.admin-main{padding:var(--space-md)}.admin-actions{gap:2px}.btn-stack{gap:3px;min-width:0;padding:6px 7px;font-size:.66rem}.btn-stack svg{width:18px;height:18px}.admin-head{gap:var(--space-sm)}.head-cover{width:40px;height:40px}.ft-title{max-width:42vw}}.collapse-head{cursor:pointer;color:var(--color-text);font-family:var(--font-sans);background:0 0;border:none;align-items:center;gap:6px;margin-bottom:10px;padding:4px 0;font-size:.9rem;font-weight:600;display:inline-flex}.collapse-head svg{opacity:.7}.flag-badge{border:2px solid #fff;border-radius:5px;width:18px;height:18px;position:absolute;top:8px;right:8px;box-shadow:0 0 0 1px #00000040}.flag-control{flex-direction:column;gap:5px;padding:0;display:flex;position:absolute;top:8px;right:8px}.flag-control button{cursor:pointer;opacity:.4;width:24px;height:24px;transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),opacity var(--dur-fast) var(--ease);border:2px solid #ffffffd9;border-radius:7px;padding:0;box-shadow:0 0 0 1px #0000004d}.flag-control button:hover{opacity:.85;transform:scale(1.08)}.flag-control button.on{opacity:1;transform:scale(1.06);box-shadow:0 0 0 2px #fff,0 0 0 4px #00000080}.flag-control .flag-clear{color:#fff;cursor:pointer;opacity:.55;background:#00000080;border:2px solid #ffffffd9;border-radius:7px;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.flag-control .flag-clear:hover{opacity:1}@media(hover:hover){.flag-control.hover{opacity:0;transition:opacity var(--dur-fast) var(--ease)}.masonry-item:hover .flag-control.hover,.flag-control.hover:focus-within{opacity:1}.masonry-item:hover .flag-badge{opacity:0}.gallery-page .masonry-item .sel-check:not(.on){opacity:0;transition:opacity var(--dur-fast) var(--ease)}.gallery-page .masonry-item:hover .sel-check{opacity:1}}@media(hover:none){.flag-control.hover{opacity:1}.gallery-page .masonry-item .flag-badge{display:none}}.modal-backdrop{z-index:80;background:#00000080;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.modal{background:var(--color-surface);border-radius:var(--radius-lg);width:100%;max-width:560px;max-height:80vh;box-shadow:var(--shadow-md);flex-direction:column;display:flex;overflow:hidden}.modal-head{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.modal-body{flex-direction:column;gap:14px;padding:16px 20px;display:flex;overflow-y:auto}.modal-names{white-space:pre-wrap;word-break:break-all;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;max-height:42vh;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;line-height:1.7;overflow:auto}.chip{border-radius:var(--radius-sm);border:1px solid var(--color-border);cursor:pointer;background:var(--color-surface);color:var(--color-text);align-items:center;gap:6px;padding:5px 12px;font-size:.82rem;display:inline-flex}.chip.active{background:var(--color-primary);color:var(--color-primary-text);border-color:var(--color-primary)}.chip .dot{border-radius:50%;width:9px;height:9px}.feed{flex-direction:column;max-width:720px;display:flex}.feed-row{border-bottom:1px solid var(--color-border);align-items:baseline;gap:14px;padding:9px 2px;display:flex}.feed-when{flex:none;width:92px}.tile-name{word-break:break-all;padding:6px 8px}.setting{flex-direction:column;gap:5px;display:flex}textarea.field{resize:vertical}.field.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;line-height:1.5}.check{cursor:pointer;align-items:center;gap:8px;font-size:.88rem;display:flex}.modal.modal-wide{max-width:680px}.overlay-backdrop{z-index:90;background:#0006;justify-content:flex-end;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.activity-overlay{background:var(--color-surface);width:min(440px,92vw);height:100%;box-shadow:var(--shadow-md);border-left:1px solid var(--color-border);flex-direction:column;display:flex}.overlay-body{padding:12px 20px;overflow-y:auto}a.admin-brand{color:inherit;text-decoration:none}.crumbs{margin-bottom:var(--space-sm);align-items:center;gap:8px;font-size:.85rem;display:flex}.crumb{color:var(--color-muted);text-decoration:none}.crumb:hover{color:var(--color-text)}.crumb.current{color:var(--color-text);font-weight:500}.crumb-sep{color:var(--color-faint)}.folder-tabs{margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border);scrollbar-width:none;flex-wrap:nowrap;gap:8px;min-width:0;display:flex;overflow-x:auto}.folder-tabs::-webkit-scrollbar{display:none}.folder-tab{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease);flex:none;align-items:center;gap:7px;padding:7px 14px;font-size:.85rem;font-weight:500;text-decoration:none;display:inline-flex}.folder-tab:hover{background:var(--color-bg)}.folder-tab.active{background:var(--color-primary);color:var(--color-primary-text);border-color:var(--color-primary)}.folder-tab .ft-count{opacity:.6;font-size:.72rem}.folder-tab.active .ft-count{opacity:.8}.folder-tab svg{flex:none;width:15px;height:15px}.folder-tab:focus-visible{box-shadow:var(--focus-ring);outline:none}.folder-tab.add{color:var(--color-muted);border-style:dashed}.folder-tab.add:hover{color:var(--color-text)}.folder-tabs.gallery-folders{padding:var(--space-md) var(--grid-gap) 0;border-bottom:none;margin-bottom:0}.btn-danger{color:var(--color-danger);border-color:var(--color-border);background:0 0}.btn-danger:hover{background:var(--color-danger)}@supports (color:color-mix(in lab,red,red)){.btn-danger:hover{background:color-mix(in srgb,var(--color-danger) 12%,transparent)}}.btn-danger:hover{border-color:var(--color-danger)}@supports (color:color-mix(in lab,red,red)){.btn-danger:hover{border-color:color-mix(in srgb,var(--color-danger) 40%,transparent)}}.gallery-toolbar{margin-bottom:var(--space-lg);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.gallery-toolbar .spacer{margin-left:auto}.tb-flags,.tb-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tb-flags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.fchip{font-variant-numeric:tabular-nums;cursor:pointer;min-width:34px;height:32px;transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);border:2px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:0 8px;font-size:.82rem;font-weight:700;line-height:1;display:inline-flex;box-shadow:0 0 0 1px #0000001f}.fchip:hover{transform:translateY(-1px)}.fchip:focus-visible{box-shadow:var(--focus-ring);outline:none}.fchip.active{box-shadow:0 0 0 1px #0000001f,inset 0 0 0 2px #fff,inset 0 0 0 4px #00000073}.vsep{background:var(--color-border);flex:none;align-self:stretch;width:1px;min-height:24px;margin:0 4px}.segmented{border:1px solid var(--color-border);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.segmented button{background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:.85rem;font-weight:600;font-family:var(--font-sans);transition:background var(--dur-fast) var(--ease);border:none;padding:8px 16px}.segmented button+button{border-left:1px solid var(--color-border)}.segmented button:hover:not(.on){background:var(--color-hover-surface)}.segmented button.on{background:var(--color-primary);color:var(--color-primary-text)}.toggle-row{justify-content:space-between;align-items:center;gap:14px;padding:6px 0;display:flex}.tr-text{flex-direction:column;gap:2px;min-width:0;display:flex}.tr-text .label-text{text-transform:none;letter-spacing:0;color:var(--color-text);font-size:.9rem;font-weight:600}.reveal{flex-direction:column;gap:6px;margin:2px 0 10px;display:flex}.reveal.cols{flex-direction:row;gap:10px}.reveal.cols>*{flex:1}.pw-field{position:relative}.pw-field .field{padding-right:42px}.pw-eye{width:34px;height:34px;color:var(--color-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.pw-eye:hover{color:var(--color-text);background:var(--color-hover-surface)}.pw-eye svg{width:17px;height:17px}.sep{background:var(--color-border);flex:none;width:1px;height:22px;margin:0 2px}.pin-inline{align-items:center;gap:6px;display:flex}.pin-inline .field{width:130px}.done-hint{color:var(--color-success);align-items:center;gap:6px;font-size:.82rem;font-weight:600;display:inline-flex}.legal-page{max-width:760px;padding:var(--space-xl) var(--space-lg) var(--space-2xl);margin:0 auto}.legal-head{margin-bottom:var(--space-lg);align-items:center;gap:14px;display:flex}.legal-back{flex:none;margin-left:auto}.legal-brand img{border-radius:8px;width:auto;height:36px;display:block}.legal-body h2{margin:var(--space-lg) 0 var(--space-xs)}.legal-body p{margin:0 0 var(--space-md);max-width:66ch}.login-foot{margin-top:var(--space-md);justify-content:center;gap:10px;display:flex}.login-foot a{text-decoration:none}@media(prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.masonry-item{opacity:1}}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
