@font-face{font-family:system;src:local("Segoe UI")}
body:has(dialog[open]){overflow:hidden}
:root{color-scheme:dark;--bg:#101010;--surface:#1a1a1a;--panel:#232323;--line:#3b3b3b;--text:#f6f6f6;--muted:#b8b8b8;--accent:#25b9ff;--ink:#071421;--danger:#ffb4a5;font-family:system,Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button,input,select{color:var(--text)}button{background:none;border:0}input,select{background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:11px 12px}input:focus-visible,button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button:hover,a.button:hover{filter:brightness(1.1)}h1,h2,p{margin:0}h2{font-size:1.2rem;font-weight:500}p{line-height:1.6}.muted{color:var(--muted)}.eyebrow{font-size:.75rem;letter-spacing:.13em;font-weight:600;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border:1px solid var(--line);border-radius:5px;white-space:nowrap;font-size:.875rem;font-weight:600;background:var(--panel)}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--ink)}.button.small{padding:10px 16px}.text-button{color:var(--accent);font-size:.875rem;padding:6px}.brand{font-size:1.5rem;letter-spacing:-.04em;font-weight:650;display:flex;align-items:center;gap:13px;line-height:1}.brand-mark{font-size:1.05rem;letter-spacing:0;background:var(--accent);color:var(--ink);width:26px;height:26px;display:grid;place-items:center;border-radius:4px;font-weight:800}.site-header{margin:0 5.5%;height:110px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:28px}.site-header .button{margin-left:auto}.release-label{color:var(--muted);font-size:.8rem}.landing-main{margin:70px 5.5% 76px;max-width:1250px}.landing h1{font-size:clamp(5rem,12vw,10.8rem);font-weight:450;letter-spacing:-.085em;line-height:.95;margin:28px 0 52px}.landing-bottom{display:flex;justify-content:space-between;gap:50px;align-items:start}.intro{font-size:1.25rem;line-height:1.6;color:#c4c4c4;margin-bottom:30px}.development-note{font-size:.8125rem;color:var(--muted);margin-top:16px}.landing-aside{border-left:1px solid var(--line);padding-left:32px;min-width:300px;margin-top:8px}.section-number{font-size:.75rem;letter-spacing:.1em;color:var(--muted)}.landing-aside p{font-size:1.375rem;line-height:1.65;margin:20px 0}.landing-aside .muted{font-size:.875rem;line-height:1.7}.site-footer{margin:0 5.5%;border-top:1px solid var(--line);padding:24px 0;display:flex;justify-content:space-between;font-size:.8125rem;color:var(--muted)}
.workspace{display:grid;grid-template-columns:225px minmax(0,1fr);min-height:100vh}.sidebar{background:#161616;border-right:1px solid var(--line);padding:34px 18px 24px;display:flex;flex-direction:column;gap:0}.sidebar .brand{margin:0 14px 54px}.workspace-label{font-size:.6875rem;letter-spacing:.15em;color:var(--muted);margin:0 14px 14px}.nav-item{display:flex;width:100%;align-items:center;gap:12px;text-align:left;padding:12px 14px;border-radius:5px;font-size:.875rem;color:var(--muted);margin-bottom:4px}.nav-item span{font-size:1.15rem}.nav-item.active{background:#323232;color:var(--accent)}.folder-tree{padding:20px 8px;display:flex;flex-direction:column;gap:5px}.folder-tree button{text-align:left;color:var(--muted);font-size:.8125rem;padding:7px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-tree button:hover{color:var(--text)}.sidebar-bottom{margin-top:auto;padding:40px 14px 0}.sidebar-bottom strong{display:block;font-size:1.45rem;font-weight:500;margin:10px 0}.sidebar-bottom p{font-size:.75rem;color:var(--muted);line-height:1.8}.local-badge{font-size:.75rem;display:inline-block;padding:6px 10px;background:#272727;border:1px solid #4a4a4a;border-radius:4px;margin:24px 0 9px;color:var(--accent)}.workspace-header{height:92px;display:flex;align-items:center;gap:25px;padding:0 40px;border-bottom:1px solid var(--line)}.workspace-title{font-size:.875rem;color:var(--muted)}.search{margin-left:auto;display:flex;gap:10px;align-items:center;color:var(--muted);width:310px}.search input{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;font-size:.875rem;padding:10px 3px}.search span{font-size:1.5rem}.home-link{font-size:.875rem;color:var(--muted)}.library{padding:42px 40px}.library-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.library h1{font-size:2.25rem;letter-spacing:-.045em;font-weight:450;margin:10px 0}.toolbar{display:flex;gap:10px}#breadcrumbs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-height:22px;color:var(--muted);font-size:.8125rem}#breadcrumbs button{font-size:inherit;color:inherit;padding:0}#breadcrumbs button:hover{color:var(--accent)}.library-controls{margin:34px 0 16px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:.8125rem;color:var(--muted)}.upload-options{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.upload-options select{font-size:.8125rem;padding:7px 10px;background:var(--surface)}.file-surface{border:1px solid var(--line);border-radius:6px;min-height:350px;background:var(--surface);position:relative;overflow:hidden}.file-table{width:100%;border-collapse:collapse;table-layout:fixed}.file-table th{text-align:left;padding:15px 18px;color:var(--muted);font-size:.75rem;font-weight:400;border-bottom:1px solid var(--line)}.file-table th:first-child{width:49%}.file-table th:nth-child(2){width:13%}.file-table th:nth-child(3){width:20%}.file-table th:last-child{width:18%}.column-button{font-size:inherit;padding:0;color:inherit;display:flex;gap:12px}.file-table td{padding:15px 18px;border-bottom:1px solid #313131;font-size:.875rem;color:var(--muted)}.file-table tr:last-child td{border-bottom:0}.file-table tbody tr:hover{background:#262626}.file-name{display:flex;gap:12px;align-items:center;text-align:left;color:var(--text);max-width:100%;padding:0;font-size:.875rem}.file-name .name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-icon{height:33px;width:29px;border:1px solid #4d4d4d;border-radius:3px;font-size:.625rem;letter-spacing:.03em;flex:none;display:grid;place-items:center;color:var(--accent)}.file-icon.folder{border:0;font-size:1.5rem;color:#84c4eb}.row-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center}.icon-button{font-size:1.2rem;width:30px;height:30px;color:var(--muted);border-radius:4px;display:grid;place-items:center}.icon-button:hover{background:var(--line);color:var(--text)}.row-menu{position:relative}.row-menu summary{list-style:none;cursor:pointer;font-size:1.1rem;color:var(--muted);padding:4px 9px}.row-menu summary::-webkit-details-marker{display:none}.row-menu[open] .menu-options{position:fixed;z-index:10;right:44px;background:#262626;border:1px solid #4d4d4d;border-radius:5px;padding:6px;box-shadow:0 15px 40px #0008;min-width:150px}.menu-options button{display:block;text-align:left;font-size:.875rem;padding:10px 14px;width:100%;color:var(--text)}.menu-options button:hover{background:#3c3c3c}.menu-options .danger{color:var(--danger)}.empty-state{text-align:center;padding:60px 20px 75px}.empty-icon{font-size:2.5rem;color:#858585;margin-bottom:20px}.empty-state h2{font-size:1.3rem;margin-bottom:10px}.empty-state p{font-size:.875rem;color:var(--muted)}[hidden]{display:none!important}.drop-overlay{position:absolute;inset:0;background:#102f48ee;border:2px dashed var(--accent);border-radius:6px;display:grid;place-items:center;font-size:1.5rem;pointer-events:none}.library-footnote{display:flex;justify-content:space-between;gap:20px;font-size:.75rem;color:var(--muted);margin-top:15px;line-height:1.7}.transfers{margin-top:35px;border-top:1px solid var(--line);padding-top:24px}.transfer-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.transfer-heading h2{font-size:1rem}.transfer-row{display:grid;grid-template-columns:minmax(100px,1fr) 180px;gap:18px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.8125rem}.transfer-row strong{font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transfer-row .transfer-status{text-align:right;color:var(--muted)}.transfer-row progress{width:100%;height:3px;accent-color:var(--accent);grid-column:1/-1}.transfer-row .failed{color:var(--danger)}
dialog{background:var(--panel);border:1px solid #4d4d4d;color:var(--text);border-radius:8px;padding:26px;width:min(480px,calc(100% - 32px));box-shadow:0 24px 100px #0009}dialog::backdrop{background:#030b16c9}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.dialog-heading h2{overflow-wrap:anywhere}.dialog-heading .eyebrow{margin-bottom:8px}dialog label{font-size:.875rem;display:block;margin:20px 0 9px}dialog input,dialog select{width:100%}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}.error{color:var(--danger);font-size:.875rem;margin-top:12px}.icon-button.close-dialog{font-size:1.5rem}.preview-dialog{width:min(880px,calc(100% - 32px))}.preview-content{min-height:150px;display:flex;align-items:center;justify-content:center;padding:24px 0}.preview-content img,.preview-content video{max-width:100%;max-height:55vh;border-radius:4px}.preview-content audio{width:100%}.preview-content pre{width:100%;white-space:pre-wrap;overflow-wrap:anywhere;max-height:50vh;overflow:auto;color:var(--text);font-size:.875rem;line-height:1.7}.preview-content p{color:var(--muted);text-align:center}.preview-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:18px;font-size:.8125rem;color:var(--muted)}.version-list{width:100%;display:flex;flex-direction:column;gap:10px}.version-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px;background:var(--bg);border:1px solid var(--line);border-radius:4px}.version-row .version-buttons{display:flex;gap:10px}.version-buttons .danger,.row-actions .danger{color:var(--danger)}.notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:13px 20px;border:1px solid #585858;border-radius:5px;background:#2e2e2e;color:var(--text);box-shadow:0 10px 30px #0008;max-width:calc(100% - 30px);font-size:.875rem;z-index:30}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1500px){.landing-main{margin-top:90px}.landing-bottom{max-width:1100px}.library{max-width:1600px;margin:auto}}@media(max-width:1050px){.workspace{grid-template-columns:190px minmax(0,1fr)}.workspace-header{padding:0 24px}.library{padding:30px 24px}.sidebar{padding-left:12px;padding-right:12px}.upload-options label{display:none}.file-table th:first-child{width:44%}.file-table th:nth-child(2){width:15%}.file-table th:nth-child(3){width:22%}.file-table th:last-child{width:19%}.file-table th,.file-table td{padding:14px 12px}.row-menu[open] .menu-options{right:28px}}
@media(max-width:720px){.site-header{height:84px;gap:15px}.site-header .release-label{display:none}.landing-main{margin-top:52px}.landing h1{font-size:clamp(5rem,20vw,8rem);margin-bottom:36px}.landing-bottom{flex-direction:column;gap:45px}.landing-aside{min-width:0;padding-left:22px}.intro{font-size:1.05rem}.site-footer{gap:20px}.workspace{display:block}.sidebar{padding:18px 20px;display:flex;flex-direction:row;align-items:center;gap:15px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{margin:0 auto 0 0;font-size:1.25rem}.sidebar nav{display:flex;gap:4px}.nav-item{padding:8px;font-size:.8125rem;margin:0}.nav-item span{display:none}.sidebar-bottom,.workspace-label,.folder-tree{display:none}.workspace-header{height:72px;padding:0 20px}.workspace-title{display:none}.search{width:100%;margin-left:0}.home-link{display:none}.library{padding:24px 16px}.library-heading{align-items:flex-start;gap:15px}.library h1{font-size:1.8rem}.toolbar{gap:7px;flex-direction:column}.toolbar .button{padding:9px 12px;font-size:.8125rem}.library-controls{align-items:flex-start;margin-top:24px}.upload-options{justify-content:flex-end;gap:5px;max-width:220px}.upload-options select{max-width:160px}.file-table th:nth-child(3),.file-table td:nth-child(3){display:none}.file-table th:first-child{width:60%}.file-table th:nth-child(2){width:20%}.file-table th:last-child{width:20%}.file-name{gap:8px}.file-table th,.file-table td{padding:13px 10px}.row-actions{gap:0}.row-actions>a{display:none}.row-menu[open] .menu-options{right:24px}.library-footnote{flex-direction:column;gap:7px}.transfer-row{grid-template-columns:minmax(100px,1fr) 135px}.empty-state{padding:60px 16px}.preview-footer{align-items:flex-start}.version-row{flex-wrap:wrap}.sidebar .brand-mark{display:none}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.brand-symbol{display:flex;align-items:center;justify-content:center;gap:3px;width:30px;height:30px;flex:none}.brand-symbol i{display:block;width:2px;border-radius:2px;background:var(--accent);height:9px}.brand-symbol i:nth-child(2){height:17px}.brand-symbol i:nth-child(3){height:25px}.brand-symbol i:nth-child(4){height:30px}.brand-symbol i:nth-child(5){height:17px}.brand-symbol i:nth-child(6){height:23px}.brand-symbol i:nth-child(7){height:12px}

.selection-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:#2d2d2d;border:1px solid #4d4d4d;border-radius:5px;padding:12px 16px;margin-bottom:12px;font-size:.875rem}.selection-bar strong{font-weight:500}.selection-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.selection-actions .danger{color:var(--danger)}.file-table th.select-cell,.file-table td.select-cell{width:44px;padding:12px;text-align:center}.select-cell input{width:17px;height:17px;padding:0;accent-color:var(--accent);cursor:pointer;vertical-align:middle}.file-table th:nth-child(2){width:auto}.file-table th:nth-child(3){width:13%}.file-table th:nth-child(4){width:21%}.file-table th:nth-child(5){width:17%}.file-table tr.selected{background:#2f2f2f}.file-table tbody tr.selected:hover{background:#3a3a3a}
.preview-dialog{position:fixed;inset:0 0 0 auto;margin:0;height:100dvh;max-height:100dvh;width:min(560px,100%);max-width:100%;border-radius:0;border-width:0 0 0 1px;padding:28px;overflow:auto}.preview-dialog .dialog-heading{align-items:flex-start;margin-bottom:10px}.preview-dialog h2{font-size:1.5rem;font-weight:500;line-height:1.3}.detail-path{font-size:.75rem;color:var(--muted);overflow-wrap:anywhere;line-height:1.7}.detail-tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:22px 0 0}.detail-tabs button{color:var(--muted);padding:12px 0;font-size:.875rem;border-bottom:2px solid transparent;border-radius:0}.detail-tabs button[aria-selected=true]{border-color:var(--accent);color:var(--text)}.preview-content{min-height:190px;padding:28px 0}.preview-content.metadata-content{display:block}.metadata-list{display:grid;grid-template-columns:120px minmax(0,1fr);gap:18px 20px;font-size:.875rem;line-height:1.5}.metadata-list dt{color:var(--muted)}.metadata-list dd{margin:0;overflow-wrap:anywhere}.metadata-list .checksum{font-family:ui-monospace,monospace;font-size:.75rem}.preview-content .detail-note{text-align:left;font-size:.8125rem;line-height:1.8;border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.version-row{align-items:flex-start;flex-wrap:wrap}.version-row p{margin-top:6px;text-align:left}.preview-dialog .preview-footer{margin-top:8px}.preview-content pre{max-height:65vh}.preview-content img,.preview-content video{max-height:65vh}
@media(max-width:1050px){.file-table th:nth-child(2){width:auto}.file-table th:nth-child(3){width:14%}.file-table th:nth-child(4){width:22%}.file-table th:nth-child(5){width:18%}}
@media(max-width:720px){.file-table th:nth-child(3),.file-table td:nth-child(3){display:table-cell}.file-table th:nth-child(4),.file-table td:nth-child(4){display:none}.file-table th:nth-child(2){width:auto}.file-table th:nth-child(3){width:21%}.file-table th:nth-child(5){width:40px}.file-table th.select-cell,.file-table td.select-cell{width:34px;padding:10px 6px}.file-table th,.file-table td{padding:13px 7px}.file-icon{display:none}.selection-bar{padding:12px;gap:12px}.selection-actions{gap:16px}.preview-dialog{padding:24px 20px}.metadata-list{grid-template-columns:105px minmax(0,1fr);gap:16px}.preview-dialog .preview-footer{align-items:flex-start;flex-direction:column}.detail-tabs{gap:22px}}

.view-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 14px}
.filter-chips,.layout-toggle{display:flex;gap:6px;flex-wrap:wrap}
.filter-chips button,.layout-toggle button{padding:7px 14px;border:1px solid var(--line);border-radius:999px;font-size:.8125rem;color:var(--muted)}
.layout-toggle button{border-radius:5px;padding:7px 11px}
.filter-chips button[aria-pressed=true],.layout-toggle button[aria-pressed=true]{background:var(--panel);color:var(--text);border-color:var(--muted)}
.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:18px;padding:18px}
.file-card{position:relative;border-radius:6px;padding:6px;border:1px solid transparent}
.file-card:hover,.file-card:focus-within{background:var(--panel)}
.file-card.selected{border-color:var(--accent)}
.card-check{position:absolute;top:14px;left:14px;z-index:1;opacity:0}
.file-card:hover .card-check,.file-card.selected .card-check,.card-check:focus-visible{opacity:1}
.card-open{display:block;width:100%;text-align:left;padding:0}
/* Neutral canvas behind media: tinted surroundings distort perceived colour. */
.card-thumb{display:grid;place-items:center;aspect-ratio:4/3;border-radius:4px;background:#121212;overflow:hidden}
.card-thumb img{width:100%;height:100%;object-fit:contain}
.card-type{font-size:.75rem;letter-spacing:.1em;font-weight:600;color:var(--muted)}
.kind-folder .card-type{font-size:2.4rem;letter-spacing:0}
.card-name{display:block;margin-top:8px;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-meta{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}
.card-meta .row-actions{gap:2px}
.card-thumb{position:relative}
.card-thumb>*{grid-area:1/1}
.card-thumb.has-image .card-type{visibility:hidden}
.waveform{width:90%;height:62%}
.waveform path{stroke:#bdbdbd;stroke-width:.7;fill:none}
.card-duration{position:absolute;right:8px;bottom:6px;font-size:.7rem;color:#e6e6e6;font-variant-numeric:tabular-nums}
/* Compact heading: the title names the location; breadcrumbs appear only inside folders. */
#location-label{display:none}
#page-title{font-size:1.75rem}
.library-heading{margin-bottom:6px}
.pinned{margin-top:14px}
.pinned .workspace-label{margin:0 0 6px 14px}
/* Transfers: a collapsible drawer in the corner instead of a long list under the files. */
.transfers{position:fixed;right:20px;bottom:20px;width:min(420px,calc(100% - 40px));max-height:45vh;overflow:auto;margin:0;padding:12px 16px;background:var(--surface);border:1px solid var(--line);border-radius:8px;z-index:15;box-shadow:0 10px 30px #0009}
.transfers h2{font-size:.9rem}
.transfers.collapsed #transfer-list{display:none}
.transfer-row{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:.8125rem}
.transfer-row strong{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.transfer-row progress{grid-column:1/-1;width:100%;height:3px}
/* Details panel sits beside the list on wide screens rather than covering it. */
.preview-dialog{z-index:20;box-shadow:-10px 0 30px #0007}
@media (min-width:1300px){.preview-dialog{width:440px}body.panel-open .file-main{margin-right:440px}}
.file-icon{position:relative;overflow:hidden}
.file-icon img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#121212}
/* Viewer: pure black, borderless. */
.viewer{position:fixed;inset:0;z-index:40;background:#000;color:#eee}
.viewer-stage{position:absolute;inset:0;display:grid;place-items:center;overflow:auto}
.viewer-stage img,.viewer-stage video{max-width:100vw;max-height:100vh;object-fit:contain;cursor:zoom-in}
.viewer-stage video{cursor:auto;width:100vw}
.viewer-stage.zoomed{place-items:start}
.viewer-stage.zoomed img{max-width:none;max-height:none;cursor:zoom-out}
.viewer-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:linear-gradient(#000b,#0000);font-size:.875rem}
.viewer-button{color:#eee;padding:8px 12px;border-radius:4px;font-size:.875rem}
.viewer-button:hover{background:#ffffff1f}
.viewer-nav{position:absolute;top:50%;transform:translateY(-50%);font-size:2.6rem;color:#ddd;padding:24px 16px}
.viewer-nav.prev{left:0}.viewer-nav.next{right:0}
.viewer-strip{position:absolute;bottom:0;left:0;right:0;display:flex;gap:6px;padding:10px 14px;overflow-x:auto;background:linear-gradient(#0000,#000b)}
.viewer-strip button{flex:0 0 auto;width:92px;height:62px;background:#121212;border:2px solid transparent;border-radius:3px;padding:0;overflow:hidden;color:#999;font-size:.7rem}
.viewer-strip button[aria-current=true]{border-color:var(--accent)}
.viewer-strip img{width:100%;height:100%;object-fit:cover}
.viewer-top,.viewer-nav,.viewer-strip{transition:opacity .3s}
.viewer.idle .viewer-top,.viewer.idle .viewer-nav,.viewer.idle .viewer-strip{opacity:0;pointer-events:none}
.viewer.idle{cursor:none}
.viewer-message{display:grid;gap:16px;justify-items:center;color:#ccc}
body.viewing{overflow:hidden}
/* Audio player bar. */
.player{position:fixed;left:0;right:0;bottom:0;z-index:16;display:flex;align-items:center;gap:14px;padding:10px 20px;background:var(--surface);border-top:1px solid var(--line)}
.player-button{flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:var(--panel);font-size:.9rem}
.player-info{display:flex;flex-direction:column;width:220px;font-size:.8125rem}
.player-info strong{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#player-time{color:var(--muted);font-variant-numeric:tabular-nums}
.player-wave{position:relative;flex:1;height:42px;cursor:pointer}
.player-wave svg{position:absolute;inset:0;width:100%;height:100%}
.wave-base path{stroke:#6a6a6a;stroke-width:.7}
.wave-played path{stroke:var(--accent);stroke-width:.7}
body.playing .file-main{padding-bottom:72px}
body.playing .transfers{bottom:84px}
.group-heading{display:flex;justify-content:space-between;align-items:center;margin:0 6px 4px 14px}
.group-heading .workspace-label{margin:0}
.group-heading .text-button{font-size:.75rem;padding:2px 6px}
#collections-nav .small-text{margin:0 14px;color:var(--muted);font-size:.75rem}
.tag-cloud{display:flex;flex-wrap:wrap;gap:6px;margin:4px 14px}
.tag-chip{display:inline-block;padding:2px 8px;border:1px solid var(--line);border-radius:999px;font-size:.7rem;color:var(--muted);white-space:nowrap}
button.tag-chip:hover,.tag-chip.active{color:var(--text);border-color:var(--muted)}
.card-tags{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 2px;overflow:hidden;max-height:22px}
.row-tags{margin-left:10px;font-size:.75rem;color:var(--muted)}
.viewer-stage{overflow:hidden;touch-action:none}
.viewer-stage img{position:absolute;left:0;top:0;max-width:none;max-height:none;transform-origin:0 0;cursor:zoom-in;user-select:none}
.viewer-stage.zoomed img{cursor:grab}
.viewer-stage.zoomed img:active{cursor:grabbing}
body.viewing .preview-dialog{z-index:50}
.detail-groups{display:grid;gap:14px;margin-top:18px}
.detail-group h3{font-size:.8rem;font-weight:600;letter-spacing:.06em;color:var(--muted);margin:0 0 6px}
.detail-group .tag-cloud{margin:0}
.detail-group .tag-chip{font-size:.8rem;padding:4px 10px}
.card-check{width:22px;height:22px;top:12px;left:12px;cursor:pointer}
body.selecting .card-check{opacity:1}
body.selecting .card-open{cursor:copy}
.file-card.selected .card-thumb{outline:2px solid var(--accent);outline-offset:-2px}
.selection-hint{margin-left:14px;font-size:.75rem;color:var(--muted)}
.tag-picker{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;max-height:160px;overflow:auto}
.tag-picker .tag-chip{font-size:.8rem;padding:4px 10px;cursor:pointer}
.tag-picker .tag-chip.applied{border-style:dashed}
.tag-picker .tag-chip.active{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.tag-picker .small-text{font-size:.75rem;color:var(--muted);align-self:center}
#share-form{display:grid;gap:12px;width:min(460px,86vw)}
#share-form label{display:grid;gap:6px;font-size:.875rem}
#share-form .toggle-row,.toggle-row{display:flex;align-items:center;gap:10px}
#share-form .toggle-row input{width:auto}
#shares-dialog{width:min(620px,92vw)}
.shares-list{display:grid;gap:2px;max-height:65vh;overflow:auto;margin-top:8px}
.share-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 4px;border-bottom:1px solid var(--line)}
.share-row strong{font-weight:500;overflow-wrap:anywhere}
.share-row .small-text{font-size:.75rem;color:var(--muted);margin-top:2px}
.share-row.inactive{opacity:.55}
.share-actions{display:flex;gap:6px;flex-shrink:0}
.mark-filter{padding:6px 10px;font-size:.8125rem;margin-left:auto}
.view-bar .layout-toggle{margin-left:8px}
.card-mark{position:absolute;left:8px;bottom:6px;font-size:.75rem;color:#ffd166;text-shadow:0 1px 3px #000c;letter-spacing:1px}
.file-card.rejected .card-thumb{opacity:.35}
.row-mark{margin-left:10px;font-size:.75rem;color:#ffd166}
.viewer-marks{position:absolute;left:14px;bottom:86px;display:flex;gap:2px;align-items:center;padding:4px 8px;border-radius:6px;background:#000a;transition:opacity .3s}
.viewer.idle .viewer-marks{opacity:0;pointer-events:none}
.mark-star{color:#777;font-size:1.25rem;padding:2px 3px}
.mark-star.on{color:#ffd166}
.mark-flag{color:#999;font-size:1rem;padding:2px 8px;margin-left:4px;border-radius:4px}
.mark-flag.pick.on{color:#0b0b0b;background:#7bd389}
.mark-flag.reject.on{color:#0b0b0b;background:#ff8a80}
/* Video zooms like photos: native controls hide while zoomed (Space plays/pauses). */
.viewer-stage video{position:absolute;left:0;top:0;width:auto;height:auto;max-width:none;max-height:none;transform-origin:0 0}
.viewer-stage.zoomed video{cursor:grab}
.viewer-video-bar{position:absolute;left:50%;transform:translateX(-50%);bottom:86px;display:flex;gap:8px;align-items:center;padding:6px 12px;border-radius:8px;background:#000c;color:#eee;font-size:.8rem;width:min(640px,92vw);transition:opacity .3s}
.viewer.idle .viewer-video-bar{opacity:0;pointer-events:none}
.viewer-video-bar button{color:#eee;padding:4px 8px;border-radius:4px}
.viewer-video-bar button:hover{background:#ffffff1f}
#vb-seek{flex:1;padding:0}
#vb-time{font-variant-numeric:tabular-nums;white-space:nowrap}
#vb-speed{padding:3px 6px;font-size:.75rem}
.feedback-title{font-size:1rem;font-weight:500;margin:8px 0}
.feedback-item{padding:10px 4px;border-bottom:1px solid var(--line);display:grid;gap:6px}
.feedback-head{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.feedback-comment{font-size:.85rem;overflow-wrap:anywhere}
.feedback-comment strong{font-weight:600;margin-right:4px}
.approval-badge{font-size:.75rem;padding:2px 8px;border-radius:999px;border:1px solid var(--line)}
.approval-badge.approved{color:#0b0b0b;background:#7bd389;border-color:#7bd389}
.approval-badge.changes{color:#0b0b0b;background:#ffcf70;border-color:#ffcf70}
.region{position:absolute;border:2px solid #fff;box-shadow:0 0 0 1px #000a;border-radius:3px}
.region.change{border-color:#ffcf70}
.region.resolved{border-style:dashed;opacity:.6}
.region.active{border-color:var(--accent);box-shadow:0 0 0 3px #25b9ff55}
.region.draft{border:2px dashed var(--accent)}
.region .pin-number{position:absolute;top:-11px;left:-11px;background:#000d;color:#fff;font-size:.7rem;border-radius:999px;padding:1px 6px}

#share-dialog{width:min(540px,94vw);max-width:94vw;overflow-x:hidden}
#share-form{width:100%}
#share-form input,#share-form select{width:100%;min-width:0}
.owner-preview{position:relative;display:inline-block;max-width:100%;margin:4px 0}
.owner-preview img{display:block;max-width:100%;max-height:320px}
.owner-thread{border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:grid;gap:6px}
.owner-thread.change{border-left:3px solid #ffcf70}
.owner-thread.resolved{opacity:.6}
.feedback-comment.reply{margin-left:18px}
.feedback-meta{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:.8rem}
.pin-tag{font-size:.7rem;color:var(--accent)}
.kind-tag{font-size:.65rem;padding:1px 6px;border-radius:999px;background:#ffcf70;color:#0b0b0b}
.kind-tag.done{background:#7bd389}
.approval-badge.none{color:var(--muted)}
.owner-reply{display:grid;gap:6px}
.owner-reply textarea{background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:8px;color:var(--text);font:inherit}
/* Areas show as numbered pins; the box appears on hover/selection or with "show all". */
.region{border-color:transparent;box-shadow:none}
.region .pin-number{background:#fff;color:#0b0b0b;font-weight:700;box-shadow:0 1px 4px #000a}
.region.change .pin-number{background:#ffcf70}
.region.active,.show-all .region{border-color:#fff;box-shadow:0 0 0 1px #000a}
.show-all .region.change,.region.change.active{border-color:#ffcf70}
.region.active{border-color:var(--accent);box-shadow:0 0 0 3px #25b9ff55}
.region.draft{border:2px dashed var(--accent)}
.thread-chips{display:flex;gap:6px}

.chat-message{display:flex;gap:8px;align-items:flex-start}
.chat-message.reply{margin-left:18px}
.chat-message.mine{flex-direction:row-reverse}
.chat-avatar{flex:0 0 26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.7rem;font-weight:600;background:#4a4a4a;color:#fff}
.chat-message.mine .chat-avatar{background:var(--accent);color:var(--ink)}
.chat-body{display:grid;gap:3px;max-width:85%}
.chat-message.mine .chat-body{justify-items:end}
.chat-meta{display:flex;gap:8px;align-items:baseline;font-size:.7rem;color:var(--muted)}
.chat-meta strong{color:var(--text);font-weight:600;font-size:.75rem}
.chat-bubble{background:#2e2e2e;border-radius:4px 12px 12px 12px;padding:8px 12px;font-size:.875rem;line-height:1.45;overflow-wrap:anywhere;white-space:pre-wrap}
.chat-message.mine .chat-bubble{background:#173a4f;border-radius:12px 4px 12px 12px}
.owner-preview+.text-button{justify-self:start;font-size:.75rem}
.hide-pins .region:not(.active){display:none}
.compare{position:fixed;inset:0;z-index:60;background:#000;color:#eee;display:flex;flex-direction:column}
.compare-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:.875rem}
.compare-modes{display:flex;gap:6px}
.compare-modes button{color:#ccc;padding:6px 12px;border:1px solid #444;border-radius:999px;font-size:.8rem}
.compare-modes button[aria-pressed=true]{color:#0b0b0b;background:#eee;border-color:#eee}
.compare-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 8px 8px}
.compare-stage[data-mode=diff]{flex-direction:column}
.compare-stage>img{max-width:100%;max-height:100%;object-fit:contain}
.compare-pane{flex:1;min-width:0;height:100%;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.compare-pane img{max-width:100%;max-height:calc(100% - 28px);object-fit:contain}
.compare-pane figcaption{font-size:.8rem;color:#aaa;margin-top:6px}
.compare-slider{position:relative;cursor:ew-resize;touch-action:none;user-select:none}
.compare-slider img{display:block;max-width:calc(100vw - 16px);max-height:calc(100vh - 70px)}
.compare-slider .compare-over{position:absolute;inset:0;width:100%;height:100%}
.compare-handle{position:absolute;top:0;bottom:0;width:2px;background:#fff;box-shadow:0 0 0 1px #000a;transform:translateX(-1px);pointer-events:none}
.compare-label{position:absolute;top:8px;font-size:.75rem;background:#000a;padding:2px 8px;border-radius:999px;pointer-events:none}
.compare-label.left{left:8px}.compare-label.right{right:8px}
.compare-diff{max-width:100%;max-height:calc(100vh - 110px)}
.compare-note{font-size:.8rem;color:#aaa}
.version-picker{padding:4px 8px;font-size:.8rem;margin-left:auto}
.feedback-head .approval-badge{margin-left:8px}
.version-row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.version-row.current{border-color:var(--accent)}
.version-info{display:grid;gap:3px;min-width:0}
.version-title{display:flex;gap:8px;align-items:center}
.version-title strong{font-weight:600}
.version-current{font-size:.7rem;padding:1px 8px;border-radius:999px;background:var(--accent);color:var(--ink)}
.version-buttons{display:flex;align-items:center;gap:6px;flex-shrink:0;margin-left:auto}
.button.small{padding:6px 10px;font-size:.8rem}
.compare-slider img{-webkit-user-drag:none;user-select:none}
.compare-grip{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;background:#fff;color:#0b0b0b;display:grid;place-items:center;font-size:1rem;box-shadow:0 2px 8px #000a}
.version-notes{justify-self:start;padding:0;font-size:.8rem}
.version-notes-list{display:grid;gap:8px;margin:-4px 0 6px 12px}
.viewer-feedback{position:absolute;top:52px;right:0;bottom:0;width:360px;background:var(--surface);border-left:1px solid var(--line);padding:14px;overflow:auto;display:flex;flex-direction:column;gap:10px;color:var(--text);z-index:2}
.viewer-feedback h2{font-size:1rem;font-weight:500}
.viewer.with-feedback .viewer-stage{right:360px}
.viewer.with-feedback .viewer-strip,.viewer.with-feedback .viewer-nav.next{right:360px}
.viewer.with-feedback .viewer-video-bar{left:calc(50% - 180px)}
#viewer-feedback-btn[aria-pressed=true]{background:#ffffff26}
.owner-region-layer{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none}
.owner-region-layer .region{pointer-events:auto;cursor:pointer;border-width:calc(2px / var(--zoom, 1))}
.owner-thread.active{border-color:var(--accent)}
.filter-tabs{display:flex;gap:4px;flex-wrap:wrap}
.tab{padding:4px 10px;border-radius:999px;border:1px solid var(--line);font-size:.75rem;color:var(--muted)}
.tab.on{color:var(--text);border-color:var(--muted);background:var(--panel)}
/* Keep borders and pin labels the same on-screen size at any zoom level. */
.owner-region-layer .pin-number{transform:scale(calc(1 / var(--zoom, 1)));transform-origin:0 0;top:0;left:0}
.owner-region-layer .region.active,.owner-region-layer.show-all .region{box-shadow:0 0 0 calc(1px / var(--zoom, 1)) #000a}
.library-footnote .closing{color:#ecd9a8}
.cull-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border:1px solid #4d4d4d;border-radius:5px;padding:10px 16px;margin-bottom:12px;font-size:.875rem}.cull-bar .danger{color:var(--danger)}
.viewer-camera{position:absolute;right:14px;bottom:86px;max-width:48%;padding:5px 9px;border-radius:6px;background:#000a;font-size:.8125rem;line-height:1.45;text-align:right;color:#ddd;transition:opacity .3s}.viewer.idle .viewer-camera{opacity:0;pointer-events:none}
@media (max-width:600px){.viewer-camera{bottom:126px;left:14px;right:14px;max-width:none;text-align:left}}
.pick-names{font-size:.8125rem;color:var(--muted);overflow-wrap:anywhere;max-height:120px;overflow:auto;line-height:1.6}
/* Compare photos: panes in a grid, all zoomed and panned together. */
.survey-stage{flex:1;min-height:0;display:grid;grid-template-columns:repeat(var(--columns,2),minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:6px;padding:0 6px 6px}
.survey-hint{color:#999;font-size:.8rem;margin-right:auto;margin-left:16px}
.survey-pane{margin:0;min-height:0;display:flex;flex-direction:column;border:2px solid transparent;border-radius:4px;background:#0a0a0a;cursor:pointer}
.survey-pane.focused{border-color:var(--accent)}
.survey-pane.rejected .survey-frame img{opacity:.45}
.survey-frame{flex:1;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center}
.survey-frame img{max-width:100%;max-height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;transform-origin:center center}
.survey-stage.zoomed .survey-pane{cursor:grab}
.survey-caption{display:flex;align-items:center;gap:8px;padding:4px 6px;font-size:.8rem;color:#ccc}
.survey-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:auto;min-width:0}
.survey-marks{display:flex;align-items:center;flex-shrink:0}
.survey-marks .mark-star{font-size:1rem;padding:2px}
.survey-marks .mark-flag{padding:1px 6px;margin-left:2px}
.survey-remove{color:#999;padding:2px 6px;flex-shrink:0;font-size:.75rem;border:1px solid #333;border-radius:4px;margin-left:4px}
.survey-remove:hover{color:#fff}
@media (max-width:800px){.survey-hint{display:none}.survey-marks .mark-star{padding:2px 1px}}
/* Compare photos: panes in a grid, all zoomed and panned together. */
.survey-stage{flex:1;min-height:0;display:grid;grid-template-columns:repeat(var(--columns,2),minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:6px;padding:0 6px 6px}
.survey-hint{color:#999;font-size:.8rem;margin-right:auto;margin-left:16px}
.survey-pane{margin:0;min-height:0;display:flex;flex-direction:column;border:2px solid transparent;border-radius:4px;background:#0a0a0a;cursor:pointer}
.survey-pane.focused{border-color:var(--accent)}
.survey-pane.rejected .survey-frame img{opacity:.45}
.survey-frame{flex:1;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center}
.survey-frame img{max-width:100%;max-height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;transform-origin:center center}
.survey-stage.zoomed .survey-pane{cursor:grab}
.survey-caption{display:flex;align-items:center;gap:8px;padding:4px 6px;font-size:.8rem;color:#ccc}
.survey-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:auto;min-width:0}
.survey-marks{display:flex;align-items:center;flex-shrink:0}
.survey-marks .mark-star{font-size:1rem;padding:2px}
.survey-marks .mark-flag{padding:1px 6px;margin-left:2px}
.survey-remove{color:#999;padding:2px 6px;flex-shrink:0;font-size:.75rem;border:1px solid #333;border-radius:4px;margin-left:4px}
.survey-remove:hover{color:#fff}
@media (max-width:800px){.survey-hint{display:none}.survey-marks .mark-star{padding:2px 1px}}
/* Colour labels */
.label-dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle;margin-right:5px;box-shadow:0 0 0 1px #0008}
.label-dot.red{background:#e5534b}.label-dot.yellow{background:#e2c541}.label-dot.green{background:#57ab5a}.label-dot.blue{background:#539bf5}.label-dot.purple{background:#986ee2}
.label-buttons{display:inline-flex;align-items:center;gap:2px;margin-left:8px}
.label-buttons .label-dot{width:14px;height:14px;margin:0 2px;padding:0;opacity:.35}
.label-buttons .label-dot.on{opacity:1;box-shadow:0 0 0 2px #fff}
.label-buttons .label-dot:hover{opacity:.8}
.survey-marks .label-buttons{margin-left:4px}
.survey-marks .label-buttons .label-dot{width:11px;height:11px}
.dialog-tabs{display:flex;gap:18px;border-bottom:1px solid var(--line);margin:-6px 0 12px}.dialog-tabs button{color:var(--muted);padding:8px 0;font-size:.875rem;border-bottom:2px solid transparent}.dialog-tabs button[aria-selected=true]{color:var(--text);border-color:var(--accent)}
.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}dialog textarea{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:11px 12px;color:var(--text);font:inherit;resize:vertical}.request-sender{display:flex;align-items:center;gap:2px;flex-wrap:wrap}.request-sender .text-button{padding:2px 0}
/* Video tools */
.video-tools{position:fixed;inset:0;z-index:60;background:#000;color:#eee;display:flex;flex-direction:column}
.vt-top{display:flex;align-items:center;gap:14px;padding:10px 14px;font-size:.875rem}.vt-top #vt-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vt-hint{color:#888;font-size:.8rem;margin-right:auto}
.vt-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 12px}
.vt-frame{position:relative;display:inline-block;line-height:0;max-width:100%;overflow:hidden}
.vt-frame video{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - 290px)}
.vt-crop{position:absolute;z-index:2;outline:2px solid #fff;cursor:grab;touch-action:none}.vt-dim{position:absolute;z-index:2;background:#000b;pointer-events:none}.vt-frame video{position:relative;z-index:1}
.vt-safe{position:absolute;top:12%;bottom:22%;left:5%;right:15%;border:1px dashed #ffd166;pointer-events:none}
.vt-controls{padding:10px 16px 14px;background:#0d0d0d;border-top:1px solid #222;display:grid;gap:10px}
.vt-transport{display:flex;align-items:center;gap:12px}.vt-play{color:#eee;font-size:1rem;width:34px;height:34px;border:1px solid #444;border-radius:50%}
.vt-time{font-variant-numeric:tabular-nums;font-size:.8rem;color:#bbb;white-space:nowrap}
.vt-timeline{position:relative;flex:1;height:34px;background:#1d1d1d;border-radius:4px;cursor:pointer;touch-action:none}
.vt-range{position:absolute;top:0;bottom:0;background:#25b9ff33;border-top:2px solid var(--accent);border-bottom:2px solid var(--accent)}
.vt-head{position:absolute;top:-3px;bottom:-3px;width:2px;background:#fff;transform:translateX(-1px);pointer-events:none}
.vt-handle{position:absolute;top:-2px;bottom:-2px;width:12px;transform:translateX(-6px);background:var(--accent);border-radius:3px;cursor:ew-resize;touch-action:none}
.vt-row{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap}.vt-gap{flex:1}.vt-label{font-size:.8rem;color:#999}.vt-chips{display:flex;gap:4px;flex-wrap:wrap}
.vt-check{display:flex;align-items:center;gap:6px;font-size:.8rem;color:#bbb}.vt-check input{width:auto}
.vt-jobs{display:grid;gap:4px;font-size:.8rem;max-height:64px;overflow:auto}.vt-jobs:empty{display:none}.vt-job{display:flex;align-items:center;gap:10px;color:#ccc}.vt-error{color:var(--danger)}
@media (max-width:700px){.vt-hint{display:none}.vt-gap{display:none}.vt-frame video{max-height:calc(100vh - 380px)}}
