:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#101828;--canvas:#f5f7fa;--surface:#fff;--surface-subtle:#f9fafb;--text:#101828;--text-secondary:#475467;--text-muted:#667085;--border:#d0d5dd;--divider:#eaecf0;--primary:#175cd3;--primary-hover:#1849a9;--primary-tint:#eff4ff;--voice:#6941c6;--voice-tint:#f4f3ff;--danger:#b42318;--danger-hover:#912018;--danger-tint:#fef3f2;--success:#027a48;--success-tint:#ecfdf3;--radius-control:8px;--radius-card:10px;--radius-dialog:12px;--toolbar-height:64px;background:#f5f7fa;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{background:var(--canvas);min-width:0}body{background:var(--canvas);min-width:0;color:var(--text);margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit}button,select,.file-picker{cursor:pointer}button:disabled,select:disabled{cursor:not-allowed;opacity:.48}.file-picker:has(input:disabled){cursor:not-allowed;opacity:.48}button svg,a svg,.file-picker svg,.image-status-badge svg{stroke-width:2px;flex:none;width:1rem;height:1rem}:focus-visible{outline-offset:2px;outline:3px solid #84adff}main{padding:max(1.25rem, env(safe-area-inset-top)) max(1.25rem, env(safe-area-inset-right)) max(1.5rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left))}.review-page{max-width:100rem;margin:0 auto}.review-heading{grid-template-rows:.875rem 2.25rem;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:1rem;min-height:3.125rem;margin:0 0 .5rem;display:grid}.review-heading h1,.join-card h1{letter-spacing:-.035em;grid-area:2/1;margin:0;font-size:1.75rem;font-weight:650;line-height:2.25rem}.review-heading>p:last-child{min-width:0;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;grid-area:2/2;margin:0;font-size:.8125rem;line-height:1.25rem;overflow:hidden}.eyebrow,.dialog-kicker{color:var(--text-muted);letter-spacing:.14em;grid-area:1/1;margin:0;font-size:.625rem;font-weight:700;line-height:.875rem}.toolbar{z-index:30;width:100%;min-height:var(--toolbar-height);border-block:1px solid var(--divider);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff2;align-items:center;gap:.625rem;padding:.5625rem 0;display:flex;position:sticky;top:0;box-shadow:0 4px 12px #1018281a}.toolbar-filters{flex:auto;align-items:center;gap:.375rem;min-width:0;display:flex}.toolbar-filter{min-width:5.5rem;max-width:8rem;color:var(--text-secondary);flex:6.75rem;display:block;position:relative}.toolbar-filter:after{content:"";border-right:1.5px solid var(--text-secondary);border-bottom:1.5px solid var(--text-secondary);pointer-events:none;width:.375rem;height:.375rem;position:absolute;top:1.25rem;right:.625rem;transform:rotate(45deg)}.toolbar-filter-library{max-width:6.75rem}.toolbar-filter.column-count{max-width:6rem}.toolbar-label-text{z-index:1;max-width:calc(100% - 2rem);color:var(--text-muted);letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;font-size:.625rem;font-weight:650;line-height:.75rem;position:absolute;top:.25rem;left:.625rem;overflow:hidden}.toolbar select{appearance:none;border:1px solid var(--border);border-radius:var(--radius-control);width:100%;min-width:0;min-height:2.75rem;color:var(--text);background-color:var(--surface);text-overflow:ellipsis;white-space:nowrap;padding:1rem 1.625rem .25rem .625rem;font-size:.8125rem;font-weight:600;line-height:1.125rem;display:block;overflow:hidden}.toolbar select:hover{background:var(--surface-subtle);border-color:#98a2b3}.toolbar-actions{flex:none;justify-content:flex-end;align-items:center;gap:.5rem;min-width:0;display:flex}.touch-target{border:1px solid var(--border);border-radius:var(--radius-control);min-width:2.75rem;min-height:2.75rem;color:var(--text);background:var(--surface);text-align:center;justify-content:center;align-items:center;gap:.375rem;padding:.5rem .75rem;font-size:.875rem;font-weight:600;line-height:1.25rem;text-decoration:none;display:inline-flex}.touch-target:hover{background:var(--surface-subtle);border-color:#98a2b3}.toolbar-action{white-space:nowrap;flex:none}.toolbar-upload,.primary-action{border-color:var(--primary);color:#fff;background:var(--primary)}.toolbar-upload:hover,.primary-action:hover{border-color:var(--primary-hover);color:#fff;background:var(--primary-hover)}.toolbar-export{color:#344054;border-color:#344054}.connection-status{border:1px solid var(--divider);border-radius:var(--radius-control);min-width:2.75rem;max-width:12rem;min-height:2.75rem;color:var(--text-secondary);background:var(--surface-subtle);flex:0 auto;align-items:center;gap:.375rem;margin:0;padding:.5rem .625rem;font-size:.75rem;line-height:1.125rem;display:flex}.connection-status svg{width:.9375rem;height:.9375rem;color:var(--text-muted)}.connection-status[data-connection=connected] svg{color:var(--success)}.connection-status[data-connection=reconnecting] svg{color:var(--primary)}.connection-status span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.image-grid{grid-template-columns:repeat(var(--columns), minmax(0, 1fr));gap:.75rem;margin-top:.75rem;display:grid}.image-card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);min-width:0;position:relative;overflow:hidden;box-shadow:0 1px 2px #1018280f}.image-card[data-deleted=true]{background:snow;border-color:#fecdca;align-self:start}.image-card[data-state=processed]{background:var(--surface-subtle);align-self:start}.image-frame{aspect-ratio:3/4;width:100%;color:var(--text-secondary);background:#e4e7ec;border:0;place-items:center;padding:0;display:grid;position:relative;overflow:hidden}.image-thumbnail{cursor:zoom-in}.image-frame img{object-fit:cover;width:100%;height:100%;transition:filter .14s,opacity .14s,transform .14s;display:block}.image-thumbnail:hover img{transform:scale(1.012)}.image-card[data-deleted=true] .image-frame img{filter:grayscale();opacity:.48;transform:none}.undo-overlay{color:#fff;background:linear-gradient(#b4231829,#10182894);flex-direction:column;justify-content:center;align-items:center;gap:.375rem;font-size:.75rem;font-weight:650;display:flex;position:absolute;inset:0}.image-status-badge{white-space:nowrap;border:1px solid;border-radius:999px;align-items:center;gap:.25rem;min-height:1.625rem;padding:.25rem .5rem;font-size:.6875rem;font-weight:700;line-height:1rem;display:inline-flex}.image-status-badge svg{width:.75rem;height:.75rem}.deleted-status{color:#fff;background:#b42318e0}.image-card-state{z-index:2;pointer-events:none;position:absolute;top:.625rem;right:.625rem;box-shadow:0 1px 2px #1018281f}.image-card[data-state=processed] .image-card-state{top:3.375rem}.commented-status{color:var(--success);background:#ecfdf3f5}.processed-status{color:#344054;background:#f2f4f7f5}.image-card-details{padding:.625rem .6875rem .75rem}.image-card-title{color:var(--text);margin:0 0 .375rem;font-size:.875rem;font-weight:650;line-height:1.25rem}.image-card-source{color:var(--text-muted);margin:-.125rem 0 .375rem;font-size:.75rem;line-height:1.125rem}.image-comment-label{color:var(--text-secondary);gap:.25rem;font-size:.75rem;font-weight:650;line-height:1.125rem;display:grid}.comment-input-area{position:relative}.image-comment-label textarea{resize:vertical;border:1px solid var(--border);border-radius:var(--radius-control);width:100%;min-height:3.75rem;color:var(--text);background:var(--surface);padding:.5rem .625rem;font-size:.875rem;font-weight:400;line-height:1.25rem;display:block}.image-comment-label textarea:hover{border-color:#98a2b3}.image-card[data-commented=true] .image-comment-label textarea{border-left:3px solid var(--success)}.image-card-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.375rem;margin-top:.5rem;display:grid}.image-card-actions .touch-target{white-space:nowrap;width:100%;min-width:0;padding-inline:.375rem;font-size:.8125rem}.image-card-actions .speech-action{color:var(--voice);background:var(--voice-tint);border-color:#d9d6fe;grid-area:1/1}.image-card-actions .speech-action:hover,.image-card-actions .speech-action[aria-pressed=true]{border-color:var(--voice);color:#fff;background:var(--voice)}.image-card-actions .delete-action{color:var(--danger);background:var(--danger-tint);border-color:#fecdca;grid-area:1/2}.image-card-actions .delete-action:hover{border-color:var(--danger);color:#fff;background:var(--danger)}.image-card-actions .save-comment-action{color:var(--primary);background:var(--primary-tint);border-color:#b2ccff;grid-area:2/1/auto/-1}.image-card-actions .save-comment-action:hover{border-color:var(--primary);color:#fff;background:var(--primary)}.image-card-actions:not(:has(.speech-action)) .delete-action{grid-column:1/-1}.deleted-card-actions{grid-template-columns:1fr}.deleted-card-actions .undo-action{color:var(--primary);background:var(--primary-tint);border-color:#b2ccff;grid-area:1/1}.speech-interim{max-width:calc(100% - 1rem);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;pointer-events:none;font-size:.75rem;line-height:1rem;position:absolute;bottom:.5rem;right:.5rem;overflow:hidden}.speech-status{color:var(--text-muted);margin:.375rem 0 0;font-size:.75rem;line-height:1.125rem}.image-card-error,.dialog-error{border-radius:var(--radius-control);color:var(--danger);background:var(--danger-tint);border:1px solid #fecdca;margin:.5rem 0 0;padding:.5rem .625rem;font-size:.8125rem;line-height:1.25rem}.processed-audit{border:1px solid var(--divider);border-radius:var(--radius-control);color:var(--text-secondary);background:var(--surface);gap:.375rem;padding:.625rem;font-size:.75rem;line-height:1.125rem;display:grid}.processed-audit p{overflow-wrap:anywhere;margin:0}.image-selection{border-bottom:1px solid var(--divider);min-height:2.75rem;color:var(--text-secondary);align-items:center;gap:.375rem;padding:0 .625rem;font-size:.8125rem;font-weight:600;display:flex}.image-selection input{width:1.125rem;height:1.125rem;accent-color:var(--primary);margin:0}.image-lightbox-backdrop,.upload-backdrop,.export-backdrop{z-index:100;padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#101828d1;place-items:center;display:grid;position:fixed;inset:0}.image-lightbox{grid-template-columns:minmax(0,1fr) minmax(17rem,23rem);align-items:start;gap:clamp(.75rem,2vw,1.5rem);width:min(98vw,96rem);max-height:94dvh;padding:1rem;display:grid;position:relative}.image-lightbox img{object-fit:contain;max-width:100%;max-height:calc(94dvh - 2rem);margin:0 auto;display:block}.image-lightbox-panel{border:1px solid var(--border);border-radius:var(--radius-dialog);width:100%;max-height:min(78dvh,42rem);color:var(--text);background:var(--surface);align-self:start;padding:1rem;overflow:auto;box-shadow:0 20px 48px #10182838}.image-lightbox-close{z-index:2;aspect-ratio:1;color:#fff;background:#101828b8;border:1px solid #ffffff5c;border-radius:50%;place-items:center;block-size:2.75rem;min-block-size:2.75rem;inline-size:2.75rem;min-inline-size:2.75rem;padding:0;font-size:1.5rem;display:grid;position:absolute;top:.75rem;left:.75rem}.upload-dialog,.export-dialog{border:1px solid var(--border);border-radius:var(--radius-dialog);width:min(100%,42rem);max-height:calc(100dvh - 2rem);color:var(--text);background:var(--surface);padding:1.25rem;overflow:auto;box-shadow:0 20px 48px #10182838}.export-dialog{width:min(100%,34rem)}.dialog-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.dialog-header h2{letter-spacing:-.02em;margin:.125rem 0 0;font-size:1.375rem;font-weight:650;line-height:1.875rem}.dialog-header .dialog-kicker{color:var(--text-muted)}.dialog-close{flex:none;padding-inline:.625rem}.upload-dropzone{border-radius:var(--radius-dialog);color:var(--text-secondary);background:var(--surface-subtle);text-align:center;border:1px dashed #98a2b3;place-items:center;gap:.625rem;padding:1.25rem;display:grid}.upload-dropzone p{max-width:32rem;margin:0;font-size:.875rem;line-height:1.375rem}.upload-dropzone-icon{width:2rem;height:2rem;color:var(--primary);stroke-width:1.6px}.upload-picker-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.file-picker{color:var(--primary);background:var(--primary-tint);border-color:#b2ccff;position:relative}.file-picker:has(input:focus-visible){outline-offset:2px;outline:3px solid #84adff}.visually-hidden-input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.upload-demo-note{border-radius:var(--radius-control);color:#93370d;background:#fffaeb;margin:.75rem 0 0;padding:.625rem .75rem;font-size:.8125rem;line-height:1.25rem}.dialog-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1rem;display:grid}.dialog-field{color:var(--text-secondary);gap:.375rem;font-size:.8125rem;font-weight:600;display:grid}.dialog-field input{border:1px solid var(--border);border-radius:var(--radius-control);width:100%;min-height:2.75rem;color:var(--text);background:var(--surface);padding:.5rem .625rem}.upload-summary{color:var(--text-secondary);margin:1rem 0 .5rem;font-size:.875rem;font-weight:650}.upload-candidate-list,.upload-result-list{border:1px solid var(--divider);border-radius:var(--radius-control);max-height:12rem;color:var(--text-secondary);background:var(--surface-subtle);margin:.5rem 0 0;padding:.625rem .625rem .625rem 1.75rem;font-size:.75rem;line-height:1.25rem;overflow:auto}.upload-candidate-list li+li,.upload-result-list li+li{margin-top:.375rem}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;margin-top:1rem;display:flex}.secondary-action{border-color:var(--border);color:var(--text-secondary);background:var(--surface)}.danger-action,.processed-delete-action{border-color:var(--danger);color:#fff;background:var(--danger)}.danger-action:hover,.processed-delete-action:hover{border-color:var(--danger-hover);color:#fff;background:var(--danger-hover)}.export-summary{border-radius:var(--radius-control);color:var(--text-secondary);background:var(--primary-tint);border:1px solid #b2ccff;grid-template-columns:1.25rem minmax(0,1fr);align-items:start;gap:.625rem;padding:.75rem;display:grid}.export-summary svg{color:var(--primary)}.export-summary p{margin:0;font-size:.875rem;line-height:1.375rem}.export-warning,.permanent-delete-warning{border-radius:var(--radius-control);color:var(--danger);background:var(--danger-tint);border:1px solid #fecdca;grid-template-columns:1.25rem minmax(0,1fr);align-items:start;gap:.625rem;margin:.75rem 0 0;padding:.75rem;font-size:.8125rem;line-height:1.25rem;display:grid}.export-progress{border-radius:var(--radius-control);color:var(--primary);background:var(--primary-tint);margin:.75rem 0 0;padding:.625rem .75rem;font-size:.8125rem;font-weight:650}.permanent-delete-warning{font-size:.875rem;line-height:1.375rem}.processed-actions{z-index:29;top:var(--toolbar-height);border-bottom:1px solid var(--divider);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f5f7faf5;align-items:center;gap:.5rem;padding:.5rem 0;display:flex;position:sticky}.processed-actions .dialog-error{margin:0}.image-tile p,.image-grid-loading,.empty-state,.image-grid-error{margin:.75rem}.image-grid-sentinel{height:1px}.image-grid-loading{color:var(--text-muted);font-size:.8125rem}.image-grid-error{border-radius:var(--radius-control);color:var(--danger);background:var(--danger-tint);border:1px solid #fecdca;padding:.75rem}.image-grid-error button{border-radius:var(--radius-control);min-height:2.75rem;color:var(--danger);background:var(--surface);border:1px solid #fecdca;margin-left:.5rem;padding:.5rem .75rem}.empty-state{border:1px dashed var(--border);border-radius:var(--radius-card);min-height:12rem;color:var(--text-secondary);background:var(--surface);text-align:center;place-items:center;padding:1.5rem;display:grid}.join-page{background:var(--canvas);place-items:center;min-height:100dvh;display:grid}.join-card{border:1px solid var(--border);border-radius:var(--radius-dialog);background:var(--surface);width:min(100%,26rem);padding:clamp(1.5rem,5vw,2.25rem);box-shadow:0 20px 48px #1018281f}.join-card h1{margin-top:.875rem}.project-mark{color:#fff;background:var(--primary);border-radius:.75rem;place-items:center;width:2.75rem;height:2.75rem;margin:0;font-weight:750;display:grid}.join-card form{gap:.5rem;margin-top:1.5rem;display:grid}.join-card input,.join-card button{border-radius:var(--radius-control);min-height:2.75rem;padding:.625rem .75rem}.join-card input{border:1px solid var(--border);background:var(--surface)}.join-card button{border:1px solid var(--primary);color:#fff;background:var(--primary)}@media (max-width:700px){:root{--toolbar-height:104px}main{padding:max(.75rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(1.25rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left))}.review-heading{grid-template-rows:.875rem 2rem;column-gap:.75rem;min-height:2.875rem;margin-bottom:.5rem}.review-heading h1{font-size:1.375rem;line-height:2rem}.review-heading>p:last-child{font-size:.75rem;line-height:1.125rem}.toolbar{height:var(--toolbar-height);min-height:var(--toolbar-height);grid-template-rows:2.75rem 2.75rem;gap:.25rem;padding:.375rem 0;display:grid}.toolbar-filters{grid-template-columns:repeat(5,minmax(0,1fr));gap:.25rem;width:100%;min-width:0;display:grid;overflow:visible}.toolbar-filter,.toolbar-filter-library,.toolbar-filter.column-count{width:auto;min-width:0;max-width:none}.toolbar-filter:after{width:.3125rem;height:.3125rem;top:1.25rem;right:.375rem}.toolbar-label-text{max-width:calc(100% - 1.5rem);font-size:.5625rem;line-height:.6875rem;top:.1875rem;left:.5rem}.toolbar select{min-height:2.75rem;padding:.9375rem .75rem .1875rem .375rem;font-size:.6875rem;line-height:1rem}.toolbar-actions{grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr) minmax(0,1fr);gap:.25rem;width:100%;margin:0;display:grid}.toolbar-action{gap:.25rem;min-width:0;padding-inline:.5rem;font-size:.75rem}.toolbar-action svg{width:.875rem;height:.875rem}.connection-status{background:0 0;border-color:#0000;gap:.25rem;width:100%;min-width:0;max-width:none;min-height:2.75rem;padding:.375rem .5rem;font-size:.6875rem}.image-grid{grid-template-columns:repeat(var(--mobile-columns,2), minmax(0, 1fr));gap:.5rem;margin-top:.75rem}.image-card-details{padding:.5rem .625rem .625rem}.image-card-title{margin-bottom:.25rem;font-size:.8125rem;line-height:1.125rem}.image-comment-label textarea{resize:none;min-height:3.25rem;padding:.4375rem .5rem;font-size:.8125rem;line-height:1.125rem}.image-card-actions{gap:.25rem;margin-top:.375rem}.image-card-actions .touch-target{gap:.25rem;padding-inline:.25rem;font-size:.75rem}.image-card-actions .touch-target svg{width:.875rem;height:.875rem}.image-status-badge{min-height:1.5rem;padding:.1875rem .375rem;font-size:.625rem}.image-card-state{top:.5rem;right:.5rem}.image-card[data-state=processed] .image-card-state{top:3.25rem}.processed-actions{top:var(--toolbar-height)}.image-lightbox-backdrop{padding:.5rem}.image-lightbox{grid-template-columns:1fr;gap:.5rem;width:100%;max-height:calc(100dvh - 1rem);padding:.5rem;overflow:auto}.image-lightbox img{max-height:58dvh}.image-lightbox-panel{width:min(100%,34rem);max-height:36dvh;margin:0 auto;padding:.75rem}.upload-backdrop,.export-backdrop{padding:max(.5rem, env(safe-area-inset-top)) max(.5rem, env(safe-area-inset-right)) max(0rem, env(safe-area-inset-bottom)) max(.5rem, env(safe-area-inset-left));place-items:end center}.upload-dialog,.export-dialog{border-radius:var(--radius-dialog) var(--radius-dialog) 0 0;width:100%;max-height:92dvh;padding:1rem}.dialog-fields{grid-template-columns:1fr;gap:.5rem}.upload-dropzone{padding:1rem .75rem}.upload-picker-actions{width:100%}.file-picker{flex:8rem}.dialog-actions .touch-target{flex:auto}}@media (prefers-reduced-motion:no-preference){.touch-target,.toolbar select,.image-card{transition:color .14s,background .14s,border-color .14s,box-shadow .14s}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
