:root{--bg: #0b0d10;--surface: #14171c;--surface-2: #1c2027;--surface-hover: #1f2228;--border-hover: #343b48;--border: #272c35;--text: #e9edf2;--muted: #8b95a4;--accent: #ffb020;--accent-text: #1a1206;--focus-ring: rgba(255, 176, 32, .35);--danger: #ff6b6b;--danger-text: #fca5a5;--radius: 14px;--success: #7ee2a8;--success-bg: #1f3d2b;--success-border: #2f6b46;--status-info: #7dd3fc;--status-info-bg: rgba(56, 189, 248, .15);--status-info-border: rgba(56, 189, 248, .35);--status-highlight: #fde047;--status-highlight-bg: rgba(250, 204, 21, .15);--status-highlight-border: rgba(250, 204, 21, .35);--status-neutral: #cbd5e1;--status-neutral-bg: rgba(148, 163, 184, .15);--status-neutral-border: rgba(148, 163, 184, .35);--status-positive: #86efac;--status-positive-bg: rgba(74, 222, 128, .15);--status-positive-border: rgba(74, 222, 128, .35);--banner-error-bg: #3a1c1e;--banner-error-border: #6b2f33;--banner-error-text: #ffc9c9;--banner-warn-bg: #35290f;--banner-warn-border: #6b5320;--banner-warn-text: #ffdfa6;--scrim: rgb(0 0 0 / 55%);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,system-ui,sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}.skip-link{position:absolute;left:12px;top:-48px;z-index:100;background:var(--accent);color:var(--accent-text);padding:8px 14px;border-radius:8px;font-weight:600;text-decoration:none}.skip-link:focus{top:12px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}main:focus{outline:none}.app{max-width:1080px;margin:0 auto;padding:40px 24px 96px}.header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:32px}h1{margin:0;font-size:28px;letter-spacing:-.02em}h2{margin:0 0 4px;font-size:20px;letter-spacing:-.01em}h3{font-size:18px}h4{margin:0 0 8px;font-size:14px;color:var(--muted);font-weight:600}p{margin:8px 0}.muted{color:var(--muted);font-size:14px}.mono{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:24px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.pill{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:2px 12px;font-size:13px;color:var(--muted);white-space:nowrap}.clip-title{margin:12px 0 4px}.dropzone{display:flex;flex-direction:column;align-items:center;gap:8px;padding:56px 24px;margin-top:16px;border:1.5px dashed var(--border);border-radius:var(--radius);background:var(--surface-2);cursor:pointer;text-align:center;transition:border-color .12s ease,background .12s ease}.dropzone:hover,.dropzone-active{border-color:var(--accent);background:var(--surface-hover)}.dropzone-disabled{opacity:.5;cursor:not-allowed}.dropzone-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--accent);color:var(--accent-text);font-size:20px;font-weight:700}.upload-status{display:flex;flex-direction:column;gap:12px;margin-top:16px}.progress{height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin:12px 0}.progress-bar{width:100%;height:100%;background:var(--accent);border-radius:999px;transform:scaleX(0);transform-origin:left;transition:transform .2s ease}.stages{list-style:none;margin:20px 0;padding:0;display:flex;flex-direction:column;gap:2px}.stage{display:flex;align-items:center;gap:12px;padding:8px 0}.stage-dot{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border);font-size:12px;color:var(--muted)}.stage-pending .stage-label{color:var(--muted)}.stage-done .stage-dot{background:var(--success-bg);border-color:var(--success-border);color:var(--success)}.stage-active .stage-dot{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:700}.stage-active .stage-label{font-weight:600}.stage-label{flex:1}.review-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:24px;margin:20px 0}@media(max-width:820px){.review-grid{grid-template-columns:1fr}}.video-frame{position:relative;width:100%;background:#000;border-radius:10px;overflow:hidden}.video-frame video{width:100%;height:100%;display:block}.crop-guide{position:absolute;border:2px solid var(--accent);box-shadow:0 0 0 9999px var(--scrim);pointer-events:none;container-type:size}.crop-guide>span:not(.caption-preview){position:absolute;top:6px;left:50%;transform:translate(-50%);background:var(--accent);color:var(--accent-text);font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;z-index:2}.caption-preview{position:absolute;left:7.4%;right:7.4%;color:#fff;font-weight:700;line-height:1.25;text-shadow:0 0 4px #000,0 0 8px #000,1px 1px 0 #000,-1px -1px 0 #000;white-space:pre-wrap;word-break:keep-all;pointer-events:none;z-index:1}.caption-preview.has-box{text-shadow:none;box-decoration-break:clone;-webkit-box-decoration-break:clone}.caption-preview .is-active{color:#ffb020}.style-confirm-grid{display:grid;grid-template-columns:minmax(200px,280px) 1fr;gap:28px;align-items:start;margin-top:20px}@media(max-width:720px){.style-confirm-grid{grid-template-columns:1fr}}.phone-preview-frame{position:relative;width:100%;aspect-ratio:9 / 16;background:#111;border-radius:18px;overflow:hidden;container-type:size;border:1px solid var(--border)}.phone-preview-still{width:100%;height:100%;object-fit:cover;display:block}.phone-preview-placeholder{display:grid;place-items:center;height:100%;padding:24px;text-align:center}.caption-preview-phone{left:7.4%;right:7.4%}.phone-preview-caption{margin-top:10px;font-size:13px}.style-confirm-controls{display:flex;flex-direction:column;gap:4px}.style-confirm-hidden-video{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden}.job-history{margin-top:24px}.job-history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.job-history-head h2{margin-bottom:0}.job-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.job-history-item{width:100%;display:flex;align-items:center;gap:8px;border:1px solid var(--border);background:var(--surface-2);border-radius:12px;padding:6px 6px 6px 16px;transition:background .12s ease,border-color .12s ease}.job-history-item:hover{background:var(--surface-hover);border-color:var(--border-hover)}.job-history-item.is-active{border-color:var(--accent)}.job-history-open{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;color:inherit;padding:8px 0;font:inherit;cursor:pointer}.job-history-delete{flex-shrink:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;background:none;color:var(--muted);border-radius:8px;padding:8px 12px;font:inherit;font-size:13px;cursor:pointer;transition:background .12s ease,color .12s ease}.job-history-delete:hover:not(:disabled){background:var(--banner-error-bg);color:var(--danger-text)}.job-history-delete:disabled{opacity:.35;cursor:not-allowed}.job-history-main{display:flex;flex-direction:column;gap:2px;min-width:0}.job-history-title{font-weight:600;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-history-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-history-stage{flex-shrink:0;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;border:1px solid transparent}.stage-tone-done{color:var(--success);background:var(--success-bg);border-color:var(--success-border)}.stage-tone-failed{color:var(--danger-text);background:var(--banner-error-bg);border-color:var(--banner-error-border)}.stage-tone-busy{color:var(--status-highlight);background:var(--status-highlight-bg);border-color:var(--status-highlight-border)}.stage-tone-idle{color:var(--status-info);background:var(--status-info-bg);border-color:var(--status-info-border)}.processing-compact{margin-top:16px;padding:16px 18px}.processing-compact h2{font-size:1rem;margin-bottom:8px}.stages-compact{display:flex;flex-wrap:wrap;gap:8px 14px;list-style:none;padding:0;margin:8px 0}.stages-compact .stage{display:inline-flex;align-items:center;gap:6px;font-size:13px}.stages-compact .stage-pending,.field.is-disabled{opacity:.45}.field.is-disabled input{pointer-events:none}.field-checkbox{display:flex;align-items:center;gap:10px;margin:16px 0 8px;font-size:14px;cursor:pointer}.field-checkbox input{width:16px;height:16px}.field{display:flex;align-items:center;gap:12px;margin:16px 0;font-size:14px}.field>span:first-child{flex:0 0 88px;color:var(--muted)}.field-value{flex:0 0 52px;text-align:right}.field input[type=range]{flex:1;accent-color:var(--accent)}.subsection-title{margin:28px 0 4px;font-size:15px;font-weight:600}.field-group{border:1px solid var(--border);border-radius:12px;padding:4px 16px;margin-top:12px;background:var(--surface-2)}.field-group .field,.field-group .field-checkbox{margin:12px 0}.field-group .field-checkbox{padding-top:12px;border-top:1px solid var(--border)}.field input[type=text],.field select,.field textarea{flex:1;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;color:inherit;font:inherit;font-size:14px}.field input[type=text]:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.field input[type=color]{width:44px;height:32px;padding:2px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;cursor:pointer}.candidate-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.candidate-tab{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);color:inherit;cursor:pointer}.candidate-tab em{font-style:normal;font-size:13px;line-height:1.35}.candidate-tab.is-active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.candidate-tab.is-pending{opacity:.55;cursor:default}.candidate-tab:disabled{cursor:default}.candidate-tab-select{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;text-align:inherit;padding:0;border:none;background:none;color:inherit;font:inherit;cursor:inherit}.candidate-tab-select:disabled{cursor:default}.candidate-check{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);cursor:pointer}.candidate-check input{margin:0}@media(max-width:720px){.candidate-tabs{grid-template-columns:1fr}}.beat{border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:12px;background:var(--surface-2)}.beat-lines{margin:10px 0;font-size:14px}.beat-lines p{margin:0 0 6px}.beat-controls{display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;font-size:13px}.beat-controls>.muted{margin-left:4px}.beat-controls>.muted:first-child{margin-left:0}.role-badge{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;border:1px solid transparent}.role-hook{background:var(--status-info-bg);color:var(--status-info);border-color:var(--status-info-border)}.role-point{background:var(--status-highlight-bg);color:var(--status-highlight);border-color:var(--status-highlight-border)}.role-support{background:var(--status-neutral-bg);color:var(--status-neutral);border-color:var(--status-neutral-border)}.role-conclusion{background:var(--status-positive-bg);color:var(--status-positive);border-color:var(--status-positive-border)}.link-button{background:none;border:none;padding:0;cursor:pointer;font:inherit;text-decoration:underline;text-underline-offset:3px}.btn-tiny{padding:4px 12px;font-size:12px}.btn-danger{color:var(--danger-text)}.source-tabs{display:flex;gap:4px;margin:20px 0 16px;padding:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px}.source-tab{flex:1;padding:8px 12px;border:none;border-radius:7px;background:none;color:var(--muted);font:inherit;font-size:14px;cursor:pointer}.source-tab:hover{color:inherit}.source-tab-active,.source-tab-active:hover{background:var(--surface);color:inherit;box-shadow:0 1px 2px #00000040}.link-input{display:flex;gap:8px}.link-input input{flex:1;min-width:0;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:inherit;font:inherit;font-size:14px}.link-input input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.link-input input:disabled{opacity:.6}.sermon-context,.reselect{margin-top:20px;border:1px solid var(--border);border-radius:10px;padding:12px 14px}.sermon-context summary,.reselect summary{cursor:pointer;font-size:14px;color:var(--muted)}.sermon-context[open] summary,.reselect[open] summary{margin-bottom:8px;color:inherit}.trim-controls{display:flex;gap:24px;flex-wrap:wrap}.trim-group{display:flex;flex-direction:column;gap:6px}.transcript{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:16px;min-width:0}.transcript-scroll{max-height:380px;overflow-y:auto;font-size:15px;overflow-wrap:break-word;word-break:keep-all}.transcript-scroll p{margin:0 0 12px}.shorts-preview{display:flex;justify-content:center;margin:20px 0}.shorts-preview video{width:100%;max-width:320px;aspect-ratio:9 / 16;background:#000;border-radius:12px;border:1px solid var(--border)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:9px;padding:10px 16px;min-height:40px;font:inherit;font-size:14px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;transition:background .12s ease,opacity .12s ease}.btn:hover:not(:disabled){background:#232830}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.btn-primary:hover:not(:disabled){background:#ffbe45}.btn-ghost{background:transparent}.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn:focus-visible,.source-tab:focus-visible,.dropzone:focus-visible,.candidate-tab:focus-visible,.candidate-tab-select:focus-visible,.job-history-open:focus-visible,.job-history-delete:focus-visible,.link-button:focus-visible,.field input[type=color]:focus-visible,.field input[type=range]:focus-visible,.field-checkbox input:focus-visible,.candidate-check input:focus-visible,.sermon-context summary:focus-visible,.reselect summary:focus-visible,.skip-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary:focus-visible,.skip-link:focus-visible{outline-color:var(--text)}.render-progress{display:flex;flex-direction:column;gap:8px;margin:12px 0 4px}.render-progress .progress{margin:0}.banner{border-radius:9px;padding:10px 14px;font-size:14px;margin:16px 0;word-break:keep-all}.banner-error{background:var(--banner-error-bg);border:1px solid var(--banner-error-border);color:var(--banner-error-text)}.banner-error-message{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.banner-error-detail{margin-top:8px}.banner-error-raw{margin:8px 0 0;padding:10px 12px;border-radius:8px;background:#00000047;color:var(--banner-error-text);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:12px;white-space:pre-wrap;word-break:break-word;max-height:160px;overflow:auto}.banner-warn{background:var(--banner-warn-bg);border:1px solid var(--banner-warn-border);color:var(--banner-warn-text)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
