:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#111;--surface:#1c1c1c;--surface-raised:#262626;--surface-hover:#333;--border:#2e2e2e;--text:#ececec;--text-muted:#9a9a9a;--accent:#f2f2f2;--accent-text:#111;--positive:#7fd18b;--danger:#ff8a80;--radius:8px;--header-height:4.5rem;background:var(--background);color:var(--text);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.4}*,:before,:after{box-sizing:border-box}body{min-height:100vh;margin:0}a{color:inherit}h1{letter-spacing:-.01em;margin:0;font-size:1.5rem;font-weight:500}h2{margin:0 0 .5rem;font-size:1.1rem;font-weight:500}code{font-family:ui-monospace,Cascadia Mono,Menlo,Consolas,monospace;font-size:.9em}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--text-muted)}.error{color:var(--danger);margin:0}.icon{flex:none}.button{border-radius:var(--radius);background:var(--surface-raised);min-height:2.5rem;color:var(--text);font:inherit;white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.45em;padding:.5rem .9rem;line-height:1;text-decoration:none;transition:background-color .12s;display:inline-flex}.button:hover{background:var(--surface-hover)}.button:disabled{opacity:.5;cursor:default}.button-quiet{background:0 0}.button-quiet:hover{background:var(--surface-raised)}.button-on,.button-on:hover{border-color:var(--text-muted);background:var(--surface-raised)}.button-primary{background:var(--accent);color:var(--accent-text);font-weight:500}.button-primary:hover{background:#fff}.button-danger{color:var(--danger)}.menu{display:inline-block;position:relative}.menu-list{z-index:30;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);flex-direction:column;min-width:15rem;padding:.35rem;display:flex;position:absolute;right:0;box-shadow:0 8px 32px #00000080}.menu-list-down{top:calc(100% + .35rem)}.menu-list-up{bottom:calc(100% + .35rem)}.menu-item{border-radius:calc(var(--radius) - 2px);color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;gap:.15rem;padding:.6rem .75rem;text-decoration:none;display:flex}.menu-item:hover,.menu-item:focus-visible{background:var(--surface-hover);outline:none}.menu-detail{color:var(--text-muted);font-size:.85rem}.message{text-align:center;place-content:center;justify-items:center;gap:.5rem;min-height:100vh;padding:0 1.5rem;display:grid}.message p{max-width:32rem;margin:0}.spinner{border:2px solid var(--surface-hover);border-top-color:var(--text-muted);border-radius:50%;width:1.75rem;height:1.75rem;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.page{padding:0 1.5rem 1.5rem}.page-selecting{padding-bottom:6rem}.gallery-header{z-index:5;min-height:var(--header-height);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#111111e0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin:0 -1.5rem .5rem;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}.gallery-heading{min-width:0}.gallery-heading h1{overflow-wrap:anywhere}.gallery-heading p{margin:.2rem 0 0;font-size:.9rem}.gallery-actions{gap:.5rem;display:flex}@media (width<=600px){.page{padding:0 .5rem .5rem}.gallery-header{margin:0 -.5rem .25rem;padding:.75rem}h1{font-size:1.25rem}.hide-narrow{display:none}}.grid-row{margin-bottom:4px;display:flex}.tile{background:var(--surface);flex:none;position:relative;overflow:hidden}.tile img{object-fit:cover;opacity:0;-webkit-user-select:none;user-select:none;width:100%;height:100%;transition:opacity .25s,transform .15s;display:block}.tile img.loaded{opacity:1}.tile-open{cursor:zoom-in;background:0 0;border:none;width:100%;height:100%;padding:0;display:block}.tile-open:focus-visible{outline-offset:-2px}.grid-selecting .tile-open{cursor:pointer}.tile-check{color:#0000;cursor:pointer;opacity:0;background:#00000059;border:1.5px solid #ffffffd9;border-radius:50%;place-items:center;width:1.75rem;height:1.75rem;padding:0;transition:opacity .12s;display:grid;position:absolute;top:.4rem;left:.4rem}.tile-check .icon{width:1rem;height:1rem}.tile:hover .tile-check,.tile-check:focus-visible,.grid-selecting .tile-check{opacity:1}.tile-selected .tile-check{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.tile-selected img{transform:scale(.92)}.tile-selected{background:var(--surface-hover)}@media (hover:none){.tile:hover .tile-check{opacity:0}.grid-selecting .tile .tile-check{opacity:1}}.selection-bar,.notice{z-index:8;border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);background:var(--surface-raised);align-items:center;gap:.75rem;width:max-content;max-width:calc(100% - 1rem);padding:.5rem .5rem .5rem 1rem;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #00000080}.selection-count{white-space:nowrap}.selection-actions{gap:.25rem;display:flex}.notice{z-index:9;max-width:min(36rem,100% - 1rem);bottom:5rem}@media (width<=600px){.selection-bar{flex-wrap:wrap;justify-content:space-between;width:calc(100% - 1rem);bottom:.5rem}}.lightbox{z-index:10;background:#000;flex-direction:column;display:flex;position:fixed;inset:0}.lightbox-stage{flex:1;place-items:center;min-height:0;padding:1rem;display:grid;container-type:size}.lightbox-frame{width:min(100cqw, 100cqh * var(--aspect), var(--max-width));aspect-ratio:var(--aspect);display:grid}.lightbox-frame>img{object-fit:contain;grid-area:1/1;width:100%;height:100%}.lightbox-placeholder{filter:blur(8px)}.lightbox-image{opacity:0;transition:opacity .2s}.lightbox-image.loaded{opacity:1}.lightbox-bar{background:var(--background);align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.lightbox-position{white-space:nowrap;font-variant-numeric:tabular-nums;padding:0 .25rem}.lightbox-filename{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.lightbox-nav{border-radius:var(--radius);width:3rem;height:4.5rem;color:var(--text);cursor:pointer;opacity:.7;background:#00000059;border:none;place-items:center;transition:opacity .12s,background-color .12s;display:grid;position:absolute;top:calc(50% - 1.5rem);transform:translateY(-50%)}.lightbox-nav:hover{opacity:1;background:#000000a6}.lightbox-previous{left:.5rem}.lightbox-next{right:.5rem}@media (hover:none){.lightbox-nav{display:none}}.admin-bar{border-bottom:1px solid var(--border);align-items:center;gap:1.5rem;padding:.75rem 1.5rem;display:flex}.admin-brand{font-weight:600;text-decoration:none}.admin-nav{flex:1;gap:1rem;display:flex}.admin-nav a{color:var(--text-muted);text-decoration:none}.admin-nav a:hover,.admin-nav a[aria-current=page]{color:var(--text)}.admin-page{max-width:72rem;margin:0 auto;padding:1.5rem}.admin-page>p{max-width:48rem}.admin-page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.admin-page-header p{margin:.25rem 0 0}.admin-section{margin-top:2.5rem}.admin-section>p{max-width:48rem;margin:0 0 1rem}.back-link{color:var(--text-muted);align-items:center;gap:.35rem;margin-bottom:1rem;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--text)}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:1rem}.badge{background:var(--surface-raised);color:var(--text-muted);border-radius:999px;padding:.15rem .5rem;font-size:.8rem;display:inline-block}.badge-active{color:var(--positive)}.badge-revoked{color:var(--danger)}.form{flex-direction:column;gap:.9rem;margin-bottom:1rem;display:flex}.form>p{margin:0}.form-inline{flex-flow:wrap;align-items:flex-end}.form-inline .field{flex:12rem}.form-inline .error{flex-basis:100%}.form-actions{gap:.5rem;display:flex}.field{flex-direction:column;gap:.3rem;font-size:.9rem;display:flex}.field>span{color:var(--text-muted)}.field input{border:1px solid var(--border);border-radius:var(--radius);background:var(--background);min-height:2.5rem;color:var(--text);font:inherit;padding:.45rem .65rem;font-size:1rem}.field input:focus{border-color:var(--text-muted);outline:none}.login{text-align:left;flex-direction:column;gap:1rem;width:min(22rem,100%);display:flex}.login .muted{margin:0}.command{border-radius:var(--radius);background:var(--background);color:var(--text);overflow-wrap:anywhere;margin:.75rem 0;padding:.6rem .75rem;display:block}.gallery-cards{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.gallery-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;height:100%;text-decoration:none;transition:border-color .12s;display:flex;overflow:hidden}.gallery-card:hover{border-color:var(--text-muted)}.gallery-card-cover{aspect-ratio:3/2;background:var(--surface-raised)}.gallery-card-cover img{object-fit:cover;width:100%;height:100%;display:block}.gallery-card-text{flex-direction:column;align-items:flex-start;gap:.35rem;padding:.75rem .9rem .9rem;display:flex}.gallery-card-text .muted{font-size:.85rem}.link-list{flex-direction:column;gap:.5rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.link-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding:.85rem 1rem;display:flex}.link-row-new{border-color:var(--positive)}.link-row-revoked{opacity:.6}.link-row-main{flex-direction:column;flex:20rem;gap:.3rem;min-width:0;display:flex}.link-row-main .muted{font-size:.85rem}.link-row-title{align-items:center;gap:.5rem;display:flex}.link-url{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.link-row-actions{gap:.25rem;display:flex}.link-row .form,.link-row .error{flex-basis:100%;margin:0}.import-status{flex-direction:column;align-items:flex-start;gap:.5rem;margin-bottom:1.5rem;display:flex}.import-status progress{width:100%;height:.5rem;accent-color:var(--accent)}.import-status .error,.import-status p{margin:0}.import-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.import-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.import-row>div{flex-direction:column;gap:.2rem;min-width:0;display:flex}.import-row .muted{font-size:.85rem}@media (width<=600px){.admin-bar,.admin-page{padding-left:1rem;padding-right:1rem}.admin-bar{gap:1rem}}
