.qowin-login{--ql-brand: #2563eb;--ql-brand-ink: #ffffff;--ql-ink: #111827;--ql-muted: #6b7280;--ql-page: #f7f8fa;--ql-surface: #ffffff;--ql-border: #e5e7eb;--ql-danger: #b91c1c;--ql-radius: 12px;--ql-space: 16px;--ql-card-min-h: 280px;min-height:100vh;display:grid;place-items:center;padding:24px 16px;box-sizing:border-box;color:var(--ql-ink);background:radial-gradient(900px 480px at 12% -8%,color-mix(in srgb,var(--ql-brand) 16%,transparent),transparent 55%),radial-gradient(700px 400px at 100% 0%,color-mix(in srgb,var(--ql-brand) 8%,transparent),transparent 50%),var(--ql-page);font-family:Inter,Segoe UI,system-ui,sans-serif}.qowin-login *,.qowin-login *:before,.qowin-login *:after{box-sizing:border-box}.qowin-login__stage{width:min(400px,100%);display:grid;gap:20px}.qowin-login__brand{display:flex;align-items:center;gap:12px}.qowin-login__mark{width:44px;height:44px;border-radius:10px;background:var(--ql-brand);color:var(--ql-brand-ink);display:grid;place-items:center;font-weight:500;font-size:1.15rem;flex:0 0 44px;overflow:hidden}.qowin-login__mark img,.qowin-login__mark svg{width:24px;height:24px;display:block}.qowin-login__brand-text{display:grid;gap:2px;min-width:0}.qowin-login__brand-text strong{font-size:1.15rem;font-weight:500;letter-spacing:-.02em;line-height:1.2}.qowin-login__brand-text span{font-size:.8rem;color:var(--ql-muted);line-height:1.35}.qowin-login__card{background:var(--ql-surface);border:1px solid var(--ql-border);border-radius:var(--ql-radius);padding:24px;min-height:var(--ql-card-min-h);display:grid;grid-template-rows:auto auto 1fr auto;gap:12px;box-shadow:0 8px 24px #1118270f}.qowin-login__toolbar{display:flex;justify-content:flex-end;align-items:center;gap:8px;min-height:32px}.qowin-login__toolbar .lang-toggle,.qowin-login__toolbar [role=group]{display:inline-flex;border:1px solid var(--ql-border);border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--ql-ink) 4%,transparent)}.qowin-login__toolbar .lang-toggle button,.qowin-login__toolbar [role=group]>button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--ql-muted);font:inherit;font-size:.75rem;font-weight:500;height:28px;min-width:36px;padding:0 10px;cursor:pointer}.qowin-login__toolbar .lang-toggle button.active,.qowin-login__toolbar [role=group]>button.active{background:color-mix(in srgb,var(--ql-brand) 22%,transparent);color:var(--ql-ink)}.qowin-login__toolbar .icon-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:32px;height:32px;border-radius:8px;border:1px solid var(--ql-border);background:transparent;color:var(--ql-muted);display:grid;place-items:center;cursor:pointer}.qowin-login__title{margin:0;font-size:1.5rem;font-weight:500;letter-spacing:-.02em;line-height:1.2}.qowin-login__subtitle{margin:0;color:var(--ql-muted);font-size:.92rem;line-height:1.45}.qowin-login__body{display:grid;align-content:start;gap:12px}.qowin-login__error{margin:0;color:var(--ql-danger);font-size:.9rem;font-weight:500}.qowin-login__session{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;border:1px solid var(--ql-border);background:color-mix(in srgb,var(--ql-ink) 4%,transparent)}.qowin-login__avatar{width:40px;height:40px;border-radius:10px;flex:0 0 40px;display:grid;place-items:center;font-size:.85rem;font-weight:600;letter-spacing:.02em;background:color-mix(in srgb,var(--ql-brand) 22%,transparent);color:var(--ql-ink)}.qowin-login__session-text{display:grid;gap:2px;min-width:0}.qowin-login__session-name{font-size:.95rem;font-weight:500;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qowin-login__session-email{font-size:.8rem;color:var(--ql-muted);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qowin-login__cta{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:44px;border:0;border-radius:10px;background:var(--ql-brand);color:var(--ql-brand-ink);font:inherit;font-size:.95rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.qowin-login__cta:hover:not(:disabled){filter:brightness(.94)}.qowin-login__cta:disabled{opacity:.55;cursor:not-allowed}.qowin-login__cta:focus-visible{outline:2px solid var(--ql-brand);outline-offset:2px}.qowin-login__secondary{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:40px;margin-top:8px;border:1px solid var(--ql-border);border-radius:10px;background:transparent;color:var(--ql-muted);font:inherit;font-size:.88rem;font-weight:500;cursor:pointer}.qowin-login__secondary:hover:not(:disabled){color:var(--ql-ink);border-color:color-mix(in srgb,var(--ql-ink) 28%,var(--ql-border))}.qowin-login__secondary:disabled{opacity:.55;cursor:not-allowed}.qowin-login__secondary:focus-visible{outline:2px solid var(--ql-brand);outline-offset:2px}.qowin-login__hint{margin:0;font-size:.8rem;color:var(--ql-muted)}.qowin-login__hint a{color:var(--ql-brand)}.qowin-login[data-theme=dark]{--ql-ink: #f3f4f6;--ql-muted: #9ca3af;--ql-page: #0b0d10;--ql-surface: #151922;--ql-border: rgba(255, 255, 255, .1);--ql-danger: #f87171}@media (prefers-reduced-motion: reduce){.qowin-login__cta{transition:none}}:root{--bg: #0b1f3a;--surface: #11294a;--surface-2: #16365f;--border: #1f4880;--text: #e7eef8;--text-muted: #97a8c4;--accent: #6cd2ff;--accent-2: #5fffc1;--danger: #ff7a7a;--warn: #ffcf6c;--radius: 10px}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-2)}button{font:inherit;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .9rem;cursor:pointer;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:var(--border);border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:600}button.primary:hover:not(:disabled){background:var(--accent-2);border-color:var(--accent-2)}button.danger{background:transparent;color:var(--danger);border-color:var(--danger)}button.ghost{background:transparent;color:var(--text-muted);border-color:transparent}button.ghost:hover:not(:disabled){color:var(--text);background:var(--surface-2);border-color:var(--border)}input,textarea,select{font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .7rem;width:100%}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.app{display:flex;height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--surface);padding:1.5rem 1rem;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:1.5rem}.sidebar .brand{margin:0;font-size:1.5rem;letter-spacing:.5px}.sidebar nav{display:flex;flex-direction:column;gap:.25rem;flex:1}.sidebar nav a{padding:.5rem .75rem;border-radius:var(--radius);color:var(--text)}.sidebar nav a:hover{background:var(--surface-2)}.sidebar nav a.active,.sidebar nav a[aria-current=page]{background:var(--surface-2);color:var(--accent)}.lang-toggle{display:inline-flex;align-items:center;height:36px;padding:3px;gap:2px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);flex-shrink:0;width:100%}.lang-toggle button{flex:1;border:0;background:transparent;color:var(--text-muted);min-width:36px;height:28px;padding:0 10px;border-radius:calc(var(--radius) - 2px);font-size:12px;font-weight:600;letter-spacing:.04em;line-height:1}.lang-toggle button:hover:not(.active){color:var(--text);background:var(--surface-2)}.lang-toggle button.active{background:var(--surface-2);color:var(--accent);border-color:transparent}.lang-toggle.auth-lang{width:auto}.sidebar-user{display:flex;flex-direction:column;gap:.5rem;padding-top:1rem;border-top:1px solid var(--border)}.sidebar-user-name{font-size:.8rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem;text-align:center}.auth-loading h1{margin:0}.content{flex:1;overflow:auto;padding:1.75rem 2rem}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem}.page-header h2{margin:0;font-size:1.4rem}.toolbar{display:flex;gap:.5rem;align-items:center}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--border)}th{color:var(--text-muted);font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}tbody tr:hover{background:var(--surface-2);cursor:pointer}.drop-zone{margin-top:1rem;padding:1.75rem 1.5rem;border:1.5px dashed var(--border);border-radius:calc(var(--radius) + 4px);text-align:center;color:var(--text-muted);transition:border-color .2s,background .2s,transform .2s;background:radial-gradient(ellipse at 50% 0%,rgba(108,210,255,.08),transparent 55%),var(--surface)}.drop-zone.dragging{border-color:var(--accent);background:var(--surface-2);color:var(--text);transform:translateY(-1px)}.drop-zone-inner{max-width:36rem;margin:0 auto}.drop-zone-icon{width:2.5rem;height:2.5rem;margin:0 auto .75rem;border-radius:999px;display:grid;place-items:center;background:#6cd2ff1f;color:var(--accent);font-size:1.1rem;font-weight:700}.drop-zone-title{margin:0;color:var(--text);font-size:1rem;font-weight:600}.drop-zone-sub{margin:.45rem 0 0;font-size:.88rem;line-height:1.5}.drop-zone-live{margin:.85rem 0 0;color:var(--accent-2);font-size:.85rem}.crumbs{display:flex;gap:.4rem;align-items:center;color:var(--text-muted);margin-bottom:.75rem}.crumbs a{color:var(--text-muted)}.crumbs a:hover{color:var(--accent)}.crumbs .sep{opacity:.4}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border)}.badge.success{color:var(--accent-2);border-color:var(--accent-2)}.badge.danger{color:var(--danger);border-color:var(--danger)}.badge.warn{color:var(--warn);border-color:var(--warn)}.muted{color:var(--text-muted)}.empty-state{padding:3rem;text-align:center;color:var(--text-muted)}.grid{display:grid;gap:1rem}.grid.cols-2{grid-template-columns:1fr 1fr}.upload-progress{margin-top:.5rem;height:4px;background:var(--bg);border-radius:999px;overflow:hidden}.upload-progress>div{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .2s}.upload-progress--lg{height:8px;margin-top:.75rem;background:#00000047}.ui-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.5rem}.ui-overlay--busy{background:#050c18b8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:all;cursor:wait;z-index:1000}.ui-overlay--dialog{background:#040a168c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1100;opacity:0;transition:opacity .18s ease}.ui-overlay--dialog.is-open{opacity:1}.ui-loader-card,.ui-dialog{background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:0 22px 60px #0000006b}.ui-loader-card{min-width:220px;padding:1.5rem 1.75rem;text-align:center}.ui-loader-card p{margin:.85rem 0 0;color:var(--text-muted)}.ui-spinner{width:2rem;height:2rem;margin:0 auto;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:ui-spin .75s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-dialog{position:relative;width:min(100%,480px);padding:1.35rem 1.4rem 1.2rem;overflow:hidden;transform:translateY(10px) scale(.98);opacity:0;transition:transform .2s ease,opacity .2s ease}.ui-dialog.is-open{transform:translateY(0) scale(1);opacity:1}.ui-dialog-glow{position:absolute;inset:-40% auto auto -20%;width:70%;height:70%;background:radial-gradient(circle,rgba(108,210,255,.18),transparent 70%);pointer-events:none}.ui-dialog--warn .ui-dialog-glow{background:radial-gradient(circle,rgba(255,207,108,.16),transparent 70%)}.ui-dialog--danger .ui-dialog-glow{background:radial-gradient(circle,rgba(255,122,122,.16),transparent 70%)}.ui-dialog--success .ui-dialog-glow{background:radial-gradient(circle,rgba(95,255,193,.14),transparent 70%)}.ui-dialog-head{position:relative;display:flex;gap:.9rem;align-items:flex-start;margin-bottom:.95rem}.ui-dialog-icon{width:2.4rem;height:2.4rem;border-radius:.85rem;display:grid;place-items:center;flex-shrink:0;font-weight:700;border:1px solid var(--border);background:var(--surface-2);color:var(--accent)}.ui-dialog-icon--warn{color:var(--warn);border-color:#ffcf6c59}.ui-dialog-icon--danger{color:var(--danger);border-color:#ff7a7a59}.ui-dialog-icon--success{color:var(--accent-2);border-color:#5fffc159}.ui-dialog-icon--info,.ui-dialog-icon--accent{color:var(--accent)}.ui-dialog-eyebrow{margin:0 0 .15rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.ui-dialog h3{margin:0;font-size:1.15rem;letter-spacing:-.01em}.ui-dialog-message{margin:0 0 1rem;color:var(--text-muted);line-height:1.55}.ui-dialog-submessage{margin:-.4rem 0 1rem;color:var(--text-muted);opacity:.85;font-size:.9rem;line-height:1.5}.ui-dialog-details{list-style:none;margin:0 0 1.1rem;padding:.65rem .8rem;border-radius:var(--radius);background:#00000038;border:1px solid var(--border);display:flex;flex-direction:column;gap:.45rem}.ui-dialog-details li{display:flex;justify-content:space-between;gap:1rem;font-size:.86rem}.ui-dialog-details span{color:var(--text-muted)}.ui-dialog-details strong{color:var(--text);font-weight:600;text-align:right;word-break:break-word}.ui-field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.ui-field span{color:var(--text-muted);font-size:.85rem}.ui-field-hint{color:var(--text-muted);opacity:.8;font-size:.8rem}.ui-dialog-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.25rem}body.ui-locked{overflow:hidden}.page-blocked{pointer-events:none;opacity:.92}.drop-zone--disabled{opacity:.65;pointer-events:none}.upload-dock{position:fixed;right:1.25rem;bottom:1.25rem;width:min(100% - 2rem,380px);max-height:min(70vh,520px);display:flex;flex-direction:column;gap:.75rem;padding:.95rem;border-radius:calc(var(--radius) + 4px);background:linear-gradient(160deg,#16365ff7,#0b1f3afa);border:1px solid var(--border);box-shadow:0 18px 50px #00000073;z-index:900;overflow:hidden}.upload-dock-head h3{margin:0;font-size:1rem}.upload-dock-eyebrow{margin:0 0 .1rem;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.upload-dock-list{display:flex;flex-direction:column;gap:.7rem;overflow:auto;padding-right:.15rem}.upload-card{padding:.8rem .85rem;border-radius:var(--radius);background:#00000038;border:1px solid rgba(31,72,128,.8)}.upload-card-top{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}.upload-card-top h4{margin:0;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.upload-card-meta{margin:.2rem 0 0;color:var(--text-muted);font-size:.78rem}.upload-card-meta .dot{margin:0 .35rem;opacity:.5}.upload-phase-pill{flex-shrink:0;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;padding:.2rem .45rem;border-radius:999px;border:1px solid var(--border);color:var(--text-muted)}.upload-phase-pill--uploading,.upload-phase-pill--hashing,.upload-phase-pill--finalizing{color:var(--accent);border-color:#6cd2ff66}.upload-phase-pill--paused{color:var(--warn);border-color:#ffcf6c66}.upload-phase-pill--done{color:var(--accent-2);border-color:#5fffc166}.upload-phase-pill--error,.upload-phase-pill--cancelled{color:var(--danger);border-color:#ff7a7a66}.upload-card-stats{display:flex;gap:.75rem;margin-top:.45rem;color:var(--text-muted);font-size:.75rem}.upload-card-msg,.upload-card-hash{margin:.45rem 0 0;font-size:.78rem;color:var(--text-muted)}.upload-card-error{margin:.45rem 0 0;font-size:.78rem;color:var(--danger)}.upload-card-actions{display:flex;gap:.4rem;margin-top:.7rem;flex-wrap:wrap}.upload-card-actions button{padding:.35rem .65rem;font-size:.8rem}@media (max-width: 720px){.upload-dock{right:.75rem;left:.75rem;width:auto;bottom:.75rem}}.preview-frame{width:100%;min-height:480px;border:1px solid var(--border);border-radius:var(--radius);background:#061325}.preview-img{max-width:100%;max-height:70vh;display:block;margin:0 auto;border-radius:var(--radius)}.preview-unavailable{padding:1rem;border:1px dashed var(--border);border-radius:var(--radius);background:#0000002e}.preview-unavailable p{margin:.45rem 0 0}.preview-unavailable .badge{margin:0}.form-stack{display:flex;flex-direction:column;gap:.6rem}.stack-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.25rem;flex-wrap:wrap}.meta-row{display:grid;grid-template-columns:1fr 1fr auto;gap:.4rem;align-items:center}.meta-row--anno{grid-template-columns:1fr 1fr}.comment-list{display:flex;flex-direction:column;gap:.7rem}.comment-item{padding:.7rem .8rem;border-radius:var(--radius);background:#0000002e;border:1px solid var(--border)}.comment-item p{margin:.35rem 0 0}.comment-item-top{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.comment-item-top .ghost{margin-left:auto;padding:.2rem .5rem;font-size:.8rem}@media (max-width: 900px){.grid.cols-2{grid-template-columns:1fr}}
