:root{--bg: #0f1115;--panel: #171a21;--panel-2: #1e222b;--line: #2a2f3a;--text: #e6e8ec;--muted: #9aa1ad;--accent: #4c8dff;--danger: #ff6b6b;--warn: #ffb454;--ok: #4bd08b;font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.6}.pad{padding:24px}.muted{color:var(--muted)}.small{font-size:13px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all}.error{color:var(--danger)}.warn{color:var(--warn)}.success{color:var(--ok)}.notice{color:var(--muted)}button,.primary,a.primary{font:inherit;cursor:pointer;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);padding:8px 14px}button:disabled{opacity:.5;cursor:not-allowed}.primary,a.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;text-decoration:none;display:inline-block;margin-top:12px}button.link{background:none;border:none;color:var(--accent);padding:4px 0}input,select{font:inherit;width:100%;padding:9px 12px;margin:6px 0 14px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--text)}label{font-size:13px;color:var(--muted)}.login{display:grid;place-items:center;min-height:100vh;padding:24px}.login-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px}.login-card h1{margin:0 0 4px;font-size:22px}header{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;padding:12px 24px;border-bottom:1px solid var(--line);background:var(--panel);position:sticky;top:0;z-index:10}.brand{font-weight:700;white-space:nowrap}header nav{display:flex;gap:6px;flex-wrap:wrap}.tab{border:none;background:none;color:var(--muted);white-space:nowrap;flex:0 0 auto}.tab.active{color:var(--text);background:var(--panel-2)}.account{margin-left:auto;display:flex;align-items:center;gap:12px;white-space:nowrap}.role{margin-left:8px;font-size:11px;padding:2px 6px;border-radius:4px;background:var(--panel-2);color:var(--muted)}.role-platform_admin{background:#2b3a55;color:#9cc4ff}.toolbar{padding:16px 24px 0;display:flex;align-items:center;gap:12px 14px;flex-wrap:wrap}.toolbar input[type=search]{max-width:420px;flex:1 1 220px;margin:0}.toolbar-tools{margin-left:auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.chip{font-size:13px;padding:5px 12px;border-radius:999px}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.view-switch{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.view-switch button{border:0;border-radius:0;background:none;color:var(--muted);padding:7px 12px;display:inline-flex;align-items:center;gap:6px;font-size:13px}.view-switch button+button{border-left:1px solid var(--line)}.view-switch button:hover{color:var(--text)}.view-switch button.active{background:var(--panel-2);color:var(--text)}.view-switch svg{width:15px;height:15px;fill:currentColor;flex:none}@media(max-width:900px){.view-switch .vs-label{display:none}}.tile-size{display:inline-flex;align-items:center;gap:8px;color:var(--muted)}.tile-size svg{width:12px;height:12px;fill:currentColor;flex:none}.tile-size svg+input+svg{width:16px;height:16px}.tile-size input[type=range]{width:140px;margin:0;padding:0;border:0;background:none;accent-color:var(--accent)}.grid{list-style:none;margin:0;padding:8px 24px 40px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(var(--tile-min, 240px),100%),1fr))}.card{width:100%;padding:0;overflow:hidden;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:12px}.card:hover{border-color:var(--accent)}.thumb{position:relative;aspect-ratio:16 / 9;background:#0b0d11;display:grid;place-items:center;overflow:hidden}.thumb .thumb-img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover}.thumb.fit-contain .thumb-img{object-fit:contain}.thumb-bg{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;filter:blur(18px) brightness(.5) saturate(1.2);transform:scale(1.3)}.thumb-placeholder{color:#555c6a;font-size:12px}.badge{position:absolute;top:8px;left:8px;z-index:2;font-size:11px;padding:2px 8px;border-radius:4px;background:#000000b3;color:var(--warn)}.kind-badge{position:absolute;right:6px;bottom:6px;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:#0000009e;color:#fff;pointer-events:none}.kind-badge svg{width:13px;height:13px;fill:currentColor;opacity:.95}.card-body{padding:10px 12px 12px}.card-body h3{margin:0 0 4px;font-size:14px;font-weight:600}.card-body .card-name{font-size:clamp(11px,calc(var(--tile-min, 240px) * .058),14.5px);margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-sub{font-size:clamp(10px,calc(var(--tile-min, 240px) * .05),13px);margin:0}.rows{list-style:none;margin:0;padding:8px 24px 40px;display:flex;flex-direction:column;gap:10px}.lrow{display:flex;gap:16px;align-items:flex-start;width:100%;padding:10px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:12px}.lrow:hover{border-color:var(--accent)}.lrow .thumb{flex:0 0 176px;width:176px;border-radius:8px}.lrow-main{flex:1 1 auto;min-width:0}.lrow-main h3{margin:0 0 6px;font-size:15px;font-weight:600}.lrow-fields{margin:0;display:flex;flex-wrap:wrap;gap:6px 26px}.lfield{min-width:0;max-width:100%}.lfield dt{font-size:11px;color:var(--muted)}.lfield dd{margin:0;font-size:13px;overflow-wrap:anywhere}@media(max-width:560px){.lrow{flex-direction:column}.lrow .thumb{flex:none;width:100%}}.fields-pop-wrap{position:relative}.fields-pop-button{display:inline-flex;align-items:center;gap:7px;font-size:13px}.fields-pop-button svg{width:14px;height:14px;fill:currentColor}.pop-backdrop{position:fixed;inset:0;z-index:29}.fields-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:30;width:220px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;box-shadow:0 10px 30px #00000073}.fields-pop p{margin:0 0 8px;font-size:12px;color:var(--muted)}.fields-pop label{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:13px;color:var(--text);cursor:pointer}.fields-pop input[type=checkbox]{width:auto;margin:0;accent-color:var(--accent)}.fields-pop .link{margin-top:8px}.slideshow{padding:8px 24px 24px;display:flex;flex-direction:column;gap:12px}.slide-stage{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#05070a;height:clamp(300px,calc(100dvh - 320px),900px)}.slide-track{display:flex;height:100%;transition:transform .35s cubic-bezier(.22,.61,.36,1)}.slide{flex:0 0 100%;min-width:0;height:100%;position:relative;margin:0}.slide-open{width:100%;height:100%;padding:0;border:0;border-radius:0;background:none;cursor:zoom-in;display:flex;align-items:center;justify-content:center}.slide-open img{max-width:100%;max-height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.slide-play{position:absolute;inset:0;z-index:1;margin:auto;width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#0000008c;color:#fff;pointer-events:none}.slide-play svg{width:30px;height:30px;fill:currentColor;margin-left:3px}.slide-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:baseline;gap:10px;padding:30px 18px 12px;pointer-events:none;color:#fff;background:linear-gradient(transparent,#000000c7)}.slide-cap-kind{align-self:center;display:inline-flex;flex:none;opacity:.85}.slide-cap-kind svg{width:14px;height:14px;fill:currentColor}.slide-cap-title{font-weight:600;font-size:15px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slide-cap-size{font-size:12px;opacity:.8;flex:none}.slide-counter{position:absolute;top:10px;right:12px;z-index:3;font-size:12px;padding:3px 9px;border-radius:999px;background:#0000008c;color:#ffffffe6}.slide-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:44px;height:44px;border-radius:50%;border:0;background:#00000073;color:#fff;font-size:24px;line-height:1}.slide-nav:hover:not(:disabled){background:#000000b8}.slide-nav:disabled{opacity:.25}.slide-nav.prev{left:12px}.slide-nav.next{right:12px}.slide-stage .thumb-placeholder{font-size:14px}.filmstrip{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:thin}.fs-item{flex:0 0 auto;width:108px;padding:0;position:relative;border:2px solid transparent;border-radius:8px;overflow:hidden;background:#0b0d11}.fs-item img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover}.fs-empty{display:block;width:100%;aspect-ratio:16 / 9}.fs-item:hover{border-color:var(--line)}.fs-item.active{border-color:var(--accent)}.fs-kind{position:absolute;right:3px;bottom:3px;display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:4px;background:#0009;color:#fff;pointer-events:none}.fs-kind svg{width:9px;height:9px;fill:currentColor}.modal-backdrop{position:fixed;inset:0;background:#000000a6;display:grid;place-items:center;padding:24px;z-index:20}.modal{position:relative;width:100%;max-width:620px;max-height:88vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px}.modal h2{margin-top:0;font-size:18px}.close{position:absolute;top:12px;right:12px;border:none;background:none;font-size:20px;color:var(--muted)}.player{aspect-ratio:16/9;margin-bottom:16px}.player iframe{width:100%;height:100%;border:0;border-radius:10px}.meta{display:grid;grid-template-columns:130px 1fr;gap:6px 12px;margin:16px 0;font-size:14px}.meta dt{color:var(--muted)}.meta dd{margin:0}.download-ready{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.upload{max-width:640px}.selected{display:flex;gap:16px;align-items:flex-start;margin:12px 0}.selected>div{flex:1}.thumb-preview{width:160px;aspect-ratio:16/9;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.thumb-preview.empty{display:grid;place-items:center;color:var(--muted);font-size:12px;background:var(--panel)}.progress{margin-top:16px}.bar{height:8px;background:var(--panel-2);border-radius:999px;overflow:hidden}.fill{height:100%;background:var(--accent);transition:width .2s}.staff-controls{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.staff-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0}.staff-actions .primary{margin-top:0}.regen{margin-top:12px;border-top:1px dashed var(--line);padding-top:10px}.regen summary{cursor:pointer;color:var(--accent);font-size:13px}.regen input[type=file]{margin-top:8px}.importer{border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:28px;background:var(--panel)}.importer h2{margin-top:0;font-size:16px}.import-result ul{margin:6px 0 0;padding-left:20px}.player video{width:100%;height:100%;border-radius:10px;background:#000}.player-placeholder{aspect-ratio:16/9;display:grid;place-items:center;gap:8px;background:#0b0d11;border:1px solid var(--line);border-radius:10px;margin-bottom:16px}.admin{max-width:900px}.invite-form .row{display:flex;gap:14px;flex-wrap:wrap}.invite-form .row>div{flex:1;min-width:200px}.invites{width:100%;border-collapse:collapse;margin-top:20px;font-size:14px}.invites th{text-align:left;color:var(--muted);font-weight:500;font-size:12px;padding:8px 10px;border-bottom:1px solid var(--line)}.invites td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}.invites button.small{font-size:12px;padding:4px 10px}.issued{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.issued .otp{display:flex;align-items:center;gap:8px}.issued .otp code{font-size:18px;letter-spacing:3px;font-weight:600;background:var(--surface, #f4f4f5);padding:2px 8px;border-radius:4px}.player .unmute{display:block;margin-top:8px;font-size:13px}.categories{margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}.tstatus{margin-top:8px;display:flex;flex-direction:column;gap:5px}.tstatus.compact{margin-top:6px}.tstatus-label{font-size:12px;line-height:1.4}.tstatus.tone-waiting .tstatus-label{color:var(--muted)}.tstatus.tone-active .tstatus-label{color:var(--accent, #4c8dff)}.tstatus.tone-error .tstatus-label{color:var(--error, #e5484d)}.tstatus.tone-done .tstatus-label{color:var(--success, #30a46c)}.tbar{height:4px;border-radius:2px;background:var(--line);overflow:hidden}.tbar-fill{height:100%;background:var(--accent, #4c8dff);border-radius:2px;transition:width .4s ease}.tstatus.tone-waiting .tbar-fill{background:var(--muted)}.tbar.indeterminate .tbar-fill{width:35%;animation:tbar-slide 1.4s ease-in-out infinite}@keyframes tbar-slide{0%{transform:translate(-100%)}to{transform:translate(300%)}}.catalog-layout{display:flex;align-items:flex-start;gap:0;min-height:0}.sidebar{flex:0 0 232px;position:sticky;top:0;align-self:stretch;border-right:1px solid var(--line);padding:16px 8px 32px}.catalog-layout>.catalog{flex:1 1 auto;min-width:0}.side-section{margin-bottom:4px}.side-section h2{margin:0;font-size:inherit;font-weight:inherit}.side-head{display:flex;align-items:center;gap:8px;width:100%;background:none;border:0;padding:8px 10px;cursor:pointer;color:inherit;font-size:13px;font-weight:600;text-align:left;border-radius:6px}.side-head:hover{background:color-mix(in srgb,currentColor 8%,transparent)}.side-title{flex:1 1 auto}.side-badge{color:var(--muted);font-weight:400;font-size:12px}.chev{display:inline-block;transition:transform .15s ease;color:var(--muted);font-size:10px}.chev.open{transform:rotate(90deg)}.side-body{padding:2px 0 8px}.side-item{display:flex;align-items:center;gap:8px;width:100%;background:none;border:0;padding:6px 10px 6px 28px;cursor:pointer;color:inherit;font-size:13px;text-align:left;border-radius:6px}.side-item:hover{background:color-mix(in srgb,currentColor 6%,transparent)}.side-item.active{background:color-mix(in srgb,var(--accent, #4c8dff) 18%,transparent);font-weight:600}.side-item-label{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-count{color:var(--muted);font-size:12px}@media(max-width:720px){.catalog-layout{flex-direction:column}.sidebar{flex:none;width:100%;border-right:0;border-bottom:1px solid var(--line);position:static}}.dropzone{border:2px dashed var(--line);border-radius:10px;padding:28px 20px;text-align:center;margin:16px 0;transition:border-color .15s ease,background .15s ease}.dropzone.over{border-color:var(--accent, #4c8dff);background:color-mix(in srgb,var(--accent, #4c8dff) 8%,transparent)}.dropzone.disabled{opacity:.5}.dropzone-lead{margin:0 0 12px;font-size:15px}.dropzone-inner>.muted{margin-top:10px}.queue{margin-top:20px}.queue-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.queue-actions{display:flex;gap:10px;align-items:center}.queue-list{list-style:none;padding:0;margin:12px 0 0}.qitem{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px;border-bottom:1px solid var(--line)}.qitem-main{min-width:0;display:flex;flex-direction:column;gap:2px}.qitem-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.qitem-state{display:flex;align-items:center;gap:10px;flex:0 0 auto}.qitem-progress{display:flex;align-items:center;gap:8px;min-width:140px}.qitem-progress .tbar{width:90px}.qitem.q-rejected{opacity:.7}.warnings{margin-top:20px;padding:12px;border-left:3px solid var(--accent, #4c8dff)}.warnings ul{margin:6px 0 0;padding-left:18px}.asset-move{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0}.metadata-panel{margin:12px 0}.metadata-panel .meta{display:grid;grid-template-columns:84px 1fr;gap:4px 12px;margin:10px 0;font-size:13px}.metadata-panel .meta dt{color:var(--muted)}.metadata-panel .meta dd{margin:0}button.danger{border-color:var(--error, #e5484d);color:var(--error, #e5484d)}button.danger:hover:not(:disabled){background:color-mix(in srgb,var(--error, #e5484d) 12%,transparent)}.delete-confirm{border:1px solid var(--error, #e5484d);border-radius:8px;padding:12px;margin-top:12px}.delete-confirm input{max-width:160px}.log-filters{display:flex;gap:8px;margin:14px 0}.log-scroll{overflow-x:auto}.logtable{width:100%;border-collapse:collapse}.logtable th{text-align:left;color:var(--muted);font-weight:500;font-size:12px;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.logtable td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}.logtable tr.denied{background:color-mix(in srgb,var(--error, #e5484d) 7%,transparent)}.nowrap{white-space:nowrap}.image-viewer{margin-bottom:16px}.image-viewer img{display:block;width:100%;height:auto;max-height:65vh;object-fit:contain;background:#000;border-radius:8px;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.image-viewer .staff-actions{margin-top:10px}.image-open{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;position:relative}.image-open-hint{position:absolute;right:10px;bottom:10px;font-size:12px;background:#0000008c;color:#fff;padding:3px 8px;border-radius:4px;opacity:0;transition:opacity .15s ease;pointer-events:none}.image-open:hover .image-open-hint,.image-open:focus-visible .image-open-hint{opacity:1}.lightbox{position:fixed;inset:0;z-index:100;background:#000000eb;display:flex;align-items:center;justify-content:center;overflow:hidden}.lightbox img{max-width:96vw;max-height:92vh;object-fit:contain;cursor:zoom-in;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;transition:transform .15s ease}.lightbox img.zoomed{max-width:none;max-height:none;width:auto;height:auto;cursor:grab;transition:none}.lightbox img.zoomed:active{cursor:grabbing}.lightbox-close{position:absolute;top:12px;right:16px;z-index:1;background:#ffffff1f;color:#fff;border:0;width:40px;height:40px;border-radius:50%;font-size:24px;line-height:1;cursor:pointer}.lightbox-close:hover{background:#ffffff3d}.lightbox-hint{position:absolute;bottom:14px;left:50%;transform:translate(-50%);color:#ffffffb3;font-size:12px;margin:0;pointer-events:none}.watermark{margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}.wm-layout{display:flex;gap:28px;flex-wrap:wrap;align-items:flex-start}.wm-fields{flex:1 1 320px;min-width:300px;display:flex;flex-direction:column;gap:6px}.wm-fields input[type=range]{width:100%}.wm-fields label.checkbox{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:13px}.wm-fields label.checkbox input{width:auto}.wm-preview{flex:1 1 320px;min-width:280px}.wm-canvas{position:relative;aspect-ratio:16 / 9;border-radius:8px;overflow:hidden;background-color:gray;background-image:linear-gradient(45deg,#5a5a5a 25%,transparent 25%,transparent 75%,#5a5a5a 75%),linear-gradient(45deg,#5a5a5a 25%,transparent 25%,transparent 75%,#5a5a5a 75%);background-size:48px 48px;background-position:0 0,24px 24px;container-type:size}.wm-canvas span{font-weight:700;border-radius:3px}.settings{max-width:980px}.tabbed-bar{display:flex;gap:2px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:16px 0 0}.tabbed-tab{border:0;background:none;color:var(--muted);padding:10px 16px;cursor:pointer;font-size:14px;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;border-radius:6px 6px 0 0}.tabbed-tab:hover{color:var(--text);background:color-mix(in srgb,currentColor 6%,transparent)}.tabbed-tab.active{color:var(--text);border-bottom-color:var(--accent, #4c8dff);font-weight:600}.tabbed-tab:focus-visible{outline:2px solid var(--accent, #4c8dff);outline-offset:-2px}.tabbed-badge{margin-left:6px;font-size:11px;color:var(--muted)}.tabbed-panel{padding-top:20px}.tabbed-panel:focus{outline:none}.settings .categories,.settings .watermark{margin-top:0;padding-top:0;border-top:0}.provider-choice{border:0;padding:0;margin:16px 0;display:flex;flex-direction:column;gap:8px}.provider-choice legend{color:var(--muted);padding:0}.provider{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:8px;cursor:pointer}.provider:hover{background:color-mix(in srgb,currentColor 4%,transparent)}.provider.active{border-color:var(--accent, #4c8dff);background:color-mix(in srgb,var(--accent, #4c8dff) 8%,transparent)}.provider input{width:auto;margin-top:3px}.block{display:block;margin-top:2px}.setup-steps{margin:0 0 16px;padding-left:20px;color:var(--muted)}.setup-steps li{margin:3px 0}.email-fields{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.email-fields input{max-width:460px}.test-row{margin-top:12px;display:flex;flex-direction:column;gap:4px}.test-row input{max-width:320px}.note-block{margin-top:24px;padding:12px 14px;border-left:3px solid var(--line)}.note-block code{font-size:12px}
