.unified-upload{display:grid;gap:var(--space-4)}.unified-dropzone,.unified-status{display:grid;min-height:240px;place-items:center;border:2px dashed var(--color-border-strong);border-radius:var(--radius-card);background:var(--color-background);padding:var(--space-6);text-align:center}.unified-dropzone{cursor:pointer;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.unified-dropzone:hover,.unified-dropzone[data-active]{border-color:var(--color-accent);background:var(--color-accent-soft)}.unified-dropzone:focus-visible{box-shadow:0 0 0 3px var(--color-accent-soft);outline:2px solid var(--color-accent);outline-offset:2px}.unified-dropzone-content{display:grid;place-items:center}.unified-dropzone-icon,.unified-preview-icon{display:grid;width:52px;height:52px;place-items:center;border-radius:var(--radius-control);background:var(--color-accent-soft);color:var(--color-accent)}.unified-dropzone-title{margin:var(--space-4) 0 0;color:var(--color-text-primary);font-size:var(--text-xl);font-weight:700}.unified-dropzone-action{margin:var(--space-1) 0 0;color:var(--color-accent);font-size:var(--text-sm);font-weight:600}.unified-dropzone-formats{margin:var(--space-4) 0 0;color:var(--color-text-tertiary);font-size:var(--text-xs);line-height:1.6}.unified-status{border-style:solid;border-width:1px;color:var(--color-text-primary);font-weight:600}.unified-status-spinner{width:30px;height:30px;margin-bottom:var(--space-3);border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:unified-spin .8s linear infinite}.unified-progress-copy{width:min(100%,440px)}.unified-progress-copy>p{margin:0 0 var(--space-4)}.unified-progress-track{width:100%;height:8px;overflow:hidden;border-radius:var(--radius-pill);background:var(--color-border)}.unified-progress-value{height:100%;border-radius:inherit;background:var(--color-accent);transition:width var(--transition-slow)}.unified-progress-percent{margin:var(--space-2) 0 0!important;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500}.unified-preview{display:grid;gap:var(--space-4);border:1px solid color-mix(in srgb,var(--color-success) 30%,var(--color-border));border-radius:var(--radius-card);background:var(--color-success-soft);padding:var(--space-5)}.unified-preview-heading{display:flex;align-items:flex-start;gap:var(--space-3)}.unified-preview-icon{width:40px;height:40px;flex:0 0 40px;background:var(--color-background);color:var(--color-success)}.unified-preview-heading h3{margin:0;color:var(--color-text-primary);font-size:var(--text-lg);font-weight:700;overflow-wrap:anywhere}.unified-preview-heading p{margin:var(--space-1) 0 0;color:var(--color-text-secondary);font-size:var(--text-sm)}.unified-preview-section{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-background);padding:var(--space-4)}.unified-preview-section h4{margin:0 0 var(--space-2);color:var(--color-text-primary);font-size:var(--text-sm);font-weight:700}.unified-speakers{display:flex;flex-wrap:wrap;gap:var(--space-2)}.unified-preview-copy{max-height:220px;overflow-y:auto}.unified-preview-utterance{margin-bottom:var(--space-3);color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.5}.unified-preview-utterance:last-child{margin-bottom:0}.unified-preview-utterance strong{color:var(--color-text-primary)}.unified-preview-actions{display:flex;gap:var(--space-3)}.unified-preview-actions .btn:first-child{flex:1}@keyframes unified-spin{to{transform:rotate(1turn)}}@media (max-width:560px){.unified-dropzone,.unified-status{min-height:200px;padding:var(--space-5) var(--space-3)}.unified-preview{padding:var(--space-4)}.unified-preview-actions{flex-direction:column}}.paste-preview,.paste-transcript-form{display:grid;gap:var(--space-4)}.paste-transcript-form>.btn{width:100%}.paste-optional{color:var(--color-text-tertiary);font-weight:400}.paste-date-field{position:relative}.paste-date-input{padding-right:48px}.paste-date-button{position:absolute;top:0;right:0}.paste-content{min-height:220px}.paste-preview-speakers,.paste-preview-summary{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-muted);padding:var(--space-4)}.paste-preview-section-title,.paste-preview-title{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-primary)}.paste-preview-title svg{color:var(--color-accent)}.paste-preview-summary>p{margin:var(--space-2) 0 0}.paste-preview-section-title,.paste-preview-summary>p{color:var(--color-text-secondary);font-size:var(--text-sm)}.paste-preview-section-title{margin-bottom:var(--space-3);font-weight:600}.paste-speaker-list{display:grid;gap:var(--space-2)}.paste-speaker-row{display:flex;min-width:0;align-items:flex-start;gap:var(--space-2)}.paste-speaker-avatar{display:grid;width:28px;height:28px;flex:0 0 28px;place-items:center;border-radius:50%;background:var(--color-accent-soft);color:var(--color-accent-strong);font-size:var(--text-xs);font-weight:700}.paste-speaker-copy{min-width:0;flex:1}.paste-speaker-copy p{margin:0;color:var(--color-text-primary);font-size:var(--text-sm);font-weight:600}.paste-speaker-copy .paste-speaker-quote,.paste-speaker-more{overflow:hidden;color:var(--color-text-tertiary);font-size:var(--text-xs);font-weight:400;text-overflow:ellipsis;white-space:nowrap}.paste-speaker-more{margin:var(--space-1) 0 0}.paste-preview-actions{display:flex;gap:var(--space-3)}.paste-preview-actions .btn{flex:1}@media (max-width:520px){.paste-preview-actions{flex-direction:column-reverse}}.recorder-message,.recorder-state{display:grid;place-items:center;padding:var(--space-6) 0;text-align:center}.recorder-state>.ao-field{width:min(100%,360px);margin-bottom:var(--space-6);text-align:left}.recorder-message-icon{display:grid;width:52px;height:52px;place-items:center;border-radius:var(--radius-control);background:var(--color-surface-muted);color:var(--color-text-tertiary)}.recorder-message-title,.recorder-state-title{margin:var(--space-5) 0 0;color:var(--color-text-primary);font-weight:700}.recorder-message>p:last-child,.recorder-state-detail{max-width:440px;margin:var(--space-2) 0 0;color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.5}.recorder-control{display:grid;width:88px;height:88px;place-items:center;border:1px solid transparent;border-radius:50%;cursor:pointer}.recorder-control-pending,.recorder-control-start{background:var(--color-primary);color:var(--color-primary-foreground)}.recorder-control-start:hover{background:var(--color-primary-hover)}.recorder-control:focus-visible{box-shadow:0 0 0 4px var(--color-accent-soft);outline:2px solid var(--color-accent);outline-offset:3px}.recorder-state>.ao-alert{width:min(100%,440px);margin-top:var(--space-5);text-align:left}.recorder-live-control{position:relative;display:grid;width:128px;height:128px;place-items:center}.recorder-live-ring{position:absolute;inset:0;border:2px solid color-mix(in srgb,var(--color-danger) 40%,transparent);border-radius:50%;animation:recorder-pulse 1.6s ease-out infinite}.recorder-control-stop{width:72px;height:72px;background:var(--color-danger);color:white}.recorder-control-stop:hover{background:var(--color-error-hover)}.recorder-timer{margin-top:var(--space-5);color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--text-3xl);font-weight:700;font-variant-numeric:tabular-nums}.recorder-live-label{margin:var(--space-1) 0 var(--space-4);color:var(--color-danger);font-size:var(--text-sm);font-weight:600}.recorder-spinner{width:48px;height:48px;border:4px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:recorder-spin .8s linear infinite}.recorder-spinner-light{width:30px;height:30px;border-color:color-mix(in srgb,var(--color-on-dark) 35%,transparent);border-top-color:white}@keyframes recorder-spin{to{transform:rotate(1turn)}}@keyframes recorder-pulse{0%{opacity:.9;transform:scale(.72)}to{opacity:0;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.recorder-live-ring{animation:none}.recorder-spinner{animation-duration:1.6s}}.upload-modal-overlay{position:fixed;z-index:1000;inset:0;background:var(--color-overlay);animation:upload-modal-fade-in var(--transition-base)}.upload-modal{position:fixed;z-index:1001;top:50%;left:50%;display:flex;width:min(calc(100vw - 32px),720px);max-height:min(90vh,860px);flex-direction:column;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-background);box-shadow:var(--shadow-lg);transform:translate(-50%,-50%);animation:upload-modal-in var(--transition-base)}.upload-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6) var(--space-4)}.upload-modal-heading{display:flex;min-width:0;align-items:flex-start;gap:var(--space-3)}.upload-modal-heading-icon{display:grid;width:40px;height:40px;flex:0 0 40px;place-items:center;border-radius:var(--radius-control);background:var(--color-accent-soft);color:var(--color-accent)}.upload-modal-title{margin:0;color:var(--color-text-primary);font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em}.upload-modal-description{margin:var(--space-1) 0 var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.5}.upload-modal-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border);padding:0 var(--space-6)}.upload-modal-tab{display:inline-flex;min-height:44px;align-items:center;gap:var(--space-2);border:0;border-bottom:2px solid transparent;background:transparent;color:var(--color-text-secondary);padding:0 var(--space-3);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer}.upload-modal-tab:hover,.upload-modal-tab[data-active]{color:var(--color-text-primary)}.upload-modal-tab[data-active]{border-bottom-color:var(--color-accent)}.upload-modal-tab:focus-visible{border-radius:var(--radius-control) var(--radius-control) 0 0;box-shadow:inset 0 0 0 2px var(--color-accent);outline:none}.upload-modal-content{overflow-y:auto;padding:var(--space-5) var(--space-6) var(--space-6)}@keyframes upload-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes upload-modal-in{0%{opacity:0;transform:translate(-50%,calc(-50% + 12px))}to{opacity:1;transform:translate(-50%,-50%)}}@media (max-width:640px){.upload-modal{top:auto;bottom:0;left:0;width:100%;max-height:92vh;border-right:0;border-bottom:0;border-left:0;border-radius:var(--radius-panel) var(--radius-panel) 0 0;transform:none;animation-name:upload-modal-mobile-in}.upload-modal-content,.upload-modal-header{padding-right:var(--space-4);padding-left:var(--space-4)}.upload-modal-tabs{padding:0 var(--space-2)}.upload-modal-tab{flex:1;justify-content:center}}@keyframes upload-modal-mobile-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.upload-modal,.upload-modal-overlay{animation:none}}.app-page{min-height:100vh;background:var(--color-surface-muted)}.app-content{width:min(100%,var(--content-wide));margin:0 auto;padding:var(--space-6)}.app-loading,.app-processing{display:grid;place-items:center;color:var(--color-text-secondary);text-align:center}.app-loading{min-height:100vh;gap:var(--space-3);background:var(--color-surface-muted)}.app-loading p,.app-processing p{margin:0}.app-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:app-spin .8s linear infinite}.app-processing{gap:var(--space-2);padding:var(--space-8) var(--space-4)}.app-processing-title{color:var(--color-text-primary);font-weight:700}.app-drop-overlay{position:fixed;z-index:950;inset:0;display:grid;place-items:center;background:var(--color-accent-soft);padding:var(--space-6);pointer-events:none}.app-drop-panel{display:grid;width:min(100%,560px);place-items:center;border:2px dashed var(--color-accent);border-radius:var(--radius-panel);background:var(--color-background);color:var(--color-accent);padding:var(--space-8);text-align:center}.app-drop-title{margin:var(--space-4) 0 0;color:var(--color-text-primary);font-size:var(--text-2xl);font-weight:700}.app-drop-detail{margin:var(--space-2) 0 0;color:var(--color-text-secondary);font-size:var(--text-sm)}@keyframes app-spin{to{transform:rotate(1turn)}}@media (max-width:640px){.app-content{padding:0}.app-content>.card{border-right:0;border-left:0;border-radius:0;box-shadow:none}}@media (prefers-reduced-motion:reduce){.app-spinner{animation-duration:1.6s}}