:root{--ink:#162019;--ink-soft:#34443a;--muted:#68736b;--line:#dce3da;--line-strong:#c9d5ca;--paper:#f7f7f2;--surface:#fff;--surface-soft:#f2f5f0;--green:#1c6b49;--green-deep:#124c33;--green-pale:#e7f0e8;--orange:#d97845;--shadow:0 12px 32px rgba(27,45,33,.06);--radius:16px}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;min-width:320px;background:radial-gradient(circle at 12% 0,#edf3eb 0,transparent 27rem),linear-gradient(116deg,#f6f7f2 0,#fbfaf6 58%,#f1f5ee 100%);color:var(--ink);font-family:"DM Sans",Arial,sans-serif}.app-shell{width:min(1240px,calc(100% - 48px));margin:0 auto;padding:24px 0 38px}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:48px;border-bottom:1px solid rgba(201,213,202,.72)}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;font-size:12px;font-weight:700;letter-spacing:1.35px}.brand small{display:block;margin-top:3px;color:var(--muted);font-size:9px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--green);color:#fff}.brand-mark svg{width:21px;height:21px}.status{display:flex;align-items:center;gap:8px;padding:7px 11px;border:1px solid #d4e2d6;border-radius:99px;background:#f9fcf8;color:var(--green);font-size:11px;font-weight:700}.status i{width:7px;height:7px;border-radius:50%;background:#3aa76d;box-shadow:0 0 0 3px rgba(58,167,109,.12)}.hero-row{display:grid;grid-template-columns:minmax(270px,.68fr) minmax(0,1.32fr);gap:30px;align-items:center;padding:34px 0 26px}.hero{min-width:0}.eyebrow,.step{margin:0 0 11px;color:var(--orange);font-size:10px;font-weight:700;letter-spacing:1.6px}.hero h1{margin:0;font-family:Newsreader,Georgia,serif;font-size:clamp(43px,4.5vw,62px);font-weight:500;letter-spacing:-2.5px;line-height:.98}.hero h1 em{color:var(--green);font-weight:500}.intro{max-width:490px;margin:18px 0 0;color:var(--muted);font-size:14px;line-height:1.7}.audio-analyzer{display:grid;grid-template-columns:230px minmax(0,1fr);gap:24px;min-width:0;padding:22px 24px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(255,255,255,.82);box-shadow:var(--shadow)}.audio-analyzer:not(.has-audio){grid-template-columns:1fr}.audio-analyzer h3{margin:0;font-family:Newsreader,Georgia,serif;font-size:24px;font-weight:600;letter-spacing:-.55px}.analyzer-desc{margin:7px 0 16px;color:var(--muted);font-size:12px;line-height:1.55}.audio-attach-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;padding:11px 14px;border:1px dashed #b9d0be;border-radius:9px;background:#f7fbf7;color:var(--green);cursor:pointer;font:700 12px "DM Sans",sans-serif;transition:border-color .2s,background .2s,color .2s}.audio-attach-btn svg{width:17px;height:17px}.audio-attach-btn:hover{border-color:var(--green);background:var(--green-pale)}.audio-file-info{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 9px 8px 11px;border-radius:8px;background:var(--green-pale);color:var(--green);font-size:11px;font-weight:700}.audio-file-info span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-file-info button{display:grid;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.audio-file-info button:hover{background:#fff;color:var(--orange)}.audio-file-info svg{width:15px;height:15px}.audio-status{min-height:17px;margin:9px 0 0;color:var(--muted);font-size:10px;line-height:1.45}.audio-analysis{display:grid;align-content:start;gap:10px;min-width:0}.audio-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border:1px solid #e3e8e1;border-radius:10px;background:#fcfdfa}.audio-results div{min-width:0;padding:13px 14px;border-right:1px solid #e3e8e1}.audio-results div:last-child{border:0}.audio-results span,.metrics span{display:block;color:#7a857b;font-size:8px;font-weight:700;letter-spacing:.8px}.audio-results strong{display:block;margin-top:7px;overflow:hidden;color:var(--green);font-size:16px;font-weight:700;letter-spacing:-.35px;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.audio-transcript{padding:12px 14px;border:1px solid #e2e9e1;border-radius:10px;background:#f8faf7;color:var(--ink-soft);font-size:11px;line-height:1.62}.audio-transcript strong{display:block;color:var(--muted);font-size:8px;letter-spacing:.8px}.audio-transcript p{max-height:96px;margin:7px 0 0;overflow:auto;padding-right:7px;white-space:pre-wrap}.workspace{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch}.panel{min-width:0;min-height:600px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:rgba(255,255,255,.85);box-shadow:var(--shadow)}.input-panel{display:flex;flex-direction:column}.output-panel{background:var(--surface)}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 24px 18px;border-bottom:1px solid #e7ebe5}.panel-heading h2{margin:0;font-family:Newsreader,Georgia,serif;font-size:25px;font-weight:600;letter-spacing:-.55px}.text-button,.icon-button{border:0;background:transparent;color:var(--muted);cursor:pointer;font:700 11px "DM Sans",sans-serif}.text-button{padding:8px 0}.text-button:hover{color:var(--green)}textarea{flex:1;width:100%;min-height:340px;resize:vertical;border:0;outline:0;background:transparent;padding:20px 24px;color:var(--ink);font:14px/1.75 "DM Sans",sans-serif}textarea::placeholder{color:#9ca59d}.input-footer{display:flex;align-items:center;gap:10px;padding:15px 20px 20px 24px;border-top:1px solid #e7ebe5;color:#89928a;font-size:11px}.input-meta{display:flex;align-items:center;gap:8px;min-width:0;margin-right:auto}.file-name{max-width:128px;overflow:hidden;color:var(--green);font-weight:700;text-overflow:ellipsis;white-space:nowrap}.attach-button,.json-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #d4e0d5;border-radius:8px;background:#f9fcf9;color:var(--green);cursor:pointer;font-weight:700;white-space:nowrap;transition:background .2s,border-color .2s}.attach-button{min-height:38px;padding:9px 11px;font-size:11px}.attach-button svg{width:15px;height:15px}.attach-button:hover,.json-button:hover{border-color:#9fbca6;background:var(--green-pale)}.primary-button{display:flex;align-items:center;gap:14px;min-height:40px;border:0;border-radius:8px;padding:8px 10px 8px 15px;background:var(--green);color:#fff;cursor:pointer;font:700 12px "DM Sans",sans-serif;transition:background .2s,transform .2s}.primary-button b{display:grid;place-items:center;width:24px;height:24px;border-radius:6px;background:rgba(255,255,255,.14)}.primary-button b svg{width:15px;height:15px}.primary-button:hover{background:var(--green-deep);transform:translateY(-1px)}.output-actions{display:flex;gap:6px}.icon-button{display:grid;place-items:center;width:34px;height:34px;border:1px solid #dfe6df;border-radius:8px;background:#fff}.icon-button svg{width:17px;height:17px}.icon-button:hover{border-color:#a8c3ad;background:var(--green-pale);color:var(--green)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #e7ebe5;background:#fafcf9}.metrics div{min-width:0;padding:16px 14px;border-right:1px solid #e7ebe5}.metrics div:last-child{border:0}.metrics strong{display:block;margin-top:7px;overflow:hidden;color:var(--green);font-size:18px;font-weight:700;letter-spacing:-.45px;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.metrics small{display:block;min-height:13px;margin-top:3px;color:#7d877f;font-size:12px;line-height:1.35}.reading-settings{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:10px;padding:14px 16px;border-bottom:1px solid #e7ebe5;background:#f5f8f4}.setting-title{grid-column:1/-1;color:#7a857b;font-size:9px;font-weight:700;letter-spacing:.85px;text-transform:uppercase}.reading-settings label{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:7px;color:#516056;font-size:10px;font-weight:700}.reading-settings select,.reading-settings input,.presenter-manager input,.presenter-manager select{min-width:0;width:100%;border:1px solid #d6e0d7;border-radius:6px;background:#fff;padding:7px 8px;color:#26362b;font:600 11px "DM Sans",sans-serif}.reading-settings label:first-of-type{grid-template-columns:1fr}.reading-settings label:first-of-type span{display:none}.reading-settings label:nth-of-type(n+2){grid-template-columns:auto 1fr 1fr}.reading-settings label:nth-of-type(n+2) select:first-of-type{grid-column:2/4;grid-row:1}.reading-settings label:nth-of-type(n+2) input{grid-column:2;grid-row:2}.reading-settings label:nth-of-type(n+2) select:last-of-type{grid-column:3;grid-row:2}.presenter-manager{padding:14px 16px;border-bottom:1px solid #e7ebe5;background:#fbfcfa}.presenter-manager-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px;flex-wrap:wrap}.presenter-manager-heading>div:first-child{display:flex;flex-direction:column;gap:3px}.presenter-manager-heading strong{color:var(--ink-soft);font-size:11px}.presenter-manager-heading span{color:#88928a;font-size:9px}.presenter-json-actions{display:flex;gap:5px}.json-button{min-height:30px;padding:5px 8px;font-size:9px}.json-button span{font-size:13px;line-height:1}.presenter-form{display:grid;grid-template-columns:minmax(0,1fr) 94px auto auto;gap:6px}.presenter-form button,.presenter-list button{min-height:31px;border:1px solid #cbdacc;border-radius:6px;background:#f8fbf8;color:var(--green);cursor:pointer;padding:6px 8px;font:700 10px "DM Sans",sans-serif;white-space:nowrap}.presenter-form button:hover,.presenter-list button:hover{background:var(--green-pale)}.presenter-list{display:grid;gap:5px;margin-top:9px}.presenter-empty{margin:2px 0;color:#89928a;font-size:10px}.presenter-row{display:grid;grid-template-columns:minmax(0,1fr) 78px auto auto;align-items:center;gap:6px;padding-top:7px;border-top:1px solid #edf0eb}.presenter-row strong{overflow:hidden;color:var(--ink-soft);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.presenter-row span{color:#748078;font-size:9px}.presenter-row button:last-child{border-color:#ecd6cc;background:#fff9f6;color:#af5d36}.presenter-row button:last-child:hover{background:#fff0e9}.script-output{height:304px;overflow:auto;padding:22px 24px 28px}.script-output.empty{display:grid;place-items:center}.empty-state{text-align:center;color:#8b968d;font-size:12px;line-height:1.65}.empty-state span{display:inline-grid;place-items:center;width:35px;height:35px;margin-bottom:4px;border:1px solid #d9e5da;border-radius:50%;background:var(--green-pale);color:var(--green);font-size:16px}.empty-state p{margin:5px 0}.script-section{margin:0 0 17px;white-space:pre-wrap;font:14px/1.75 "DM Sans",sans-serif}.speaker{display:inline-block;margin-right:5px;color:var(--green);font-size:10px;font-weight:700;letter-spacing:.7px}.script-section.pb .speaker{color:#b65d2c}.script-section.greeting{font-family:Newsreader,Georgia,serif;font-size:18px;line-height:1.45;color:#29382f}.rule-note{display:flex;gap:22px;align-items:baseline;margin-top:20px;padding:14px 18px;border-left:2px solid var(--orange);background:rgba(255,255,255,.48);color:var(--muted);font-size:11px;line-height:1.6}.rule-note>span{flex:none;color:var(--ink-soft);font-size:9px;font-weight:700;letter-spacing:.9px;text-transform:uppercase}.rule-note p{margin:0}.rule-note b{color:var(--green)}.toast{position:fixed;z-index:50;left:50%;bottom:22px;transform:translate(-50%,20px);opacity:0;padding:10px 15px;border-radius:8px;background:#17261c;color:#fff;font-size:12px;transition:.2s}.toast.show{transform:translate(-50%,0);opacity:1}@media(max-width:900px){.hero-row{grid-template-columns:1fr;padding-top:28px}.hero{max-width:640px}.audio-analyzer{grid-template-columns:215px minmax(0,1fr)}.workspace{gap:14px}.panel{min-height:560px}}@media(max-width:680px){.app-shell{width:min(100% - 28px,620px);padding-top:16px}.topbar{padding-bottom:12px}.brand{font-size:11px;letter-spacing:1px}.brand small{font-size:8px}.status{font-size:10px}.hero-row{gap:18px;padding:26px 0 22px}.hero h1{font-size:clamp(42px,13vw,56px);letter-spacing:-2px}.intro{font-size:13px}.audio-analyzer,.audio-analyzer:not(.has-audio){grid-template-columns:1fr;gap:15px;padding:18px}.audio-results{grid-template-columns:1fr}.audio-results div{padding:11px 13px;border-right:0;border-bottom:1px solid #e3e8e1}.audio-results div:last-child{border-bottom:0}.workspace{grid-template-columns:1fr}.panel{min-height:500px}.panel-heading{padding:19px 18px 16px}textarea{padding:18px;min-height:310px}.input-footer{flex-wrap:wrap;padding:14px 18px 18px}.input-meta{width:100%;order:4}.attach-button{order:3}.primary-button{margin-left:auto}.metrics span{font-size:8px}.metrics strong{font-size:17px}.reading-settings{grid-template-columns:1fr;padding:14px}.reading-settings label:nth-of-type(n+2){grid-template-columns:auto 1fr 1fr}.presenter-form{grid-template-columns:minmax(0,1fr) 88px auto}.presenter-form #cancelEditBtn{grid-column:3}.script-output{height:330px;padding:20px}.rule-note{align-items:flex-start;flex-direction:column;gap:4px;margin-top:14px;padding:13px 15px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
[hidden]{display:none!important}

/* Danh sách PTV mặc định thu gọn để nhường diện tích cho bản đọc. */
.presenter-manager-heading{margin-bottom:0}.presenter-controls{padding-top:10px}.presenter-json-actions{justify-content:flex-end;margin-bottom:8px}.presenter-toggle{min-height:30px;padding:5px 8px;border:1px solid #d4e0d5;border-radius:7px;background:#f9fcf9;color:var(--green);cursor:pointer;font:700 9px "DM Sans",sans-serif;white-space:nowrap}.presenter-toggle:hover{border-color:#9fbca6;background:var(--green-pale)}.presenter-toggle span{display:inline-block;margin-left:4px;font-size:14px;line-height:.5;transition:transform .2s}.presenter-manager:not(.collapsed) .presenter-toggle span{transform:rotate(180deg)}

/* Khung riêng cho kịch bản rút gọn, tách rõ khỏi phần thống kê và thiết lập. */
.edited-script-panel{margin-top:20px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.edited-script-panel .edited-script-container{height:380px;margin:0;border:0;border-radius:0;background:#fcfdfb;box-shadow:inset 0 1px 0 rgba(255,255,255,.85)}

/* Thời lượng dự kiến có thể dài; ưu tiên hiển thị trọn vẹn thay vì cắt bằng dấu ba chấm. */
.metrics #duration{overflow:visible;white-space:pre-line;overflow-wrap:anywhere;text-overflow:clip;line-height:1.32}

/* Cảnh báo cụm nội dung PTV cần đọc cẩn thận sau khi làm sạch kịch bản. */
.special-content-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;border-bottom:1px solid #e7ebe5;background:#fffdf9}.special-content-summary>div{min-width:0}.special-content-summary span{display:block;color:#7a857b;font-size:8px;font-weight:700;letter-spacing:.8px}.special-content-summary strong{display:inline-block;margin:4px 7px 0 0;color:var(--orange);font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.special-content-summary small{color:#7d877f;font-size:10px;line-height:1.4}.detail-button{flex:none;min-height:32px;padding:6px 10px;border:1px solid #d4e0d5;border-radius:7px;background:#fff;color:var(--green);cursor:pointer;font:700 10px "DM Sans",sans-serif}.detail-button:hover:not(:disabled){border-color:#9fbca6;background:var(--green-pale)}.detail-button:disabled{cursor:not-allowed;opacity:.55}.special-content-details{border-bottom:1px solid #e7ebe5;background:#fbfcfa}.special-content-table-wrap{max-height:205px;overflow:auto}.special-content-table{width:100%;border-collapse:collapse;font-size:11px;line-height:1.5;text-align:left}.special-content-table th{position:sticky;top:0;background:#f2f6f1;color:#657269;font-size:8px;font-weight:700;letter-spacing:.75px;text-transform:uppercase}.special-content-table th,.special-content-table td{padding:9px 14px;border-bottom:1px solid #e7ebe5;vertical-align:top}.special-content-table th:nth-child(1){width:27%}.special-content-table th:nth-child(2),.special-content-table td:nth-child(2){width:72px;text-align:center;font-variant-numeric:tabular-nums}.special-content-table td:first-child{color:var(--ink-soft);font-weight:700}.special-content-table td:last-child{overflow-wrap:anywhere;color:#5f6d63}.special-content-table tbody tr:last-child td{border-bottom:0}@media(max-width:680px){.special-content-summary{align-items:flex-start;padding:12px 14px}.special-content-summary small{display:block;margin-top:2px}.detail-button{min-height:36px}.special-content-table th,.special-content-table td{padding:8px 10px}.special-content-table th:nth-child(1){width:31%}.special-content-table th:nth-child(2),.special-content-table td:nth-child(2){width:58px}}
.special-content-guidance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:10px 14px;border-bottom:1px solid #e7ebe5;background:#fbfcfa}.special-content-guidance p{margin:0;padding:7px 8px;border:1px solid transparent;border-radius:7px;color:#7a857b;font-size:9px;line-height:1.45}.special-content-guidance p[data-range="low"]{background:#fff8ec;color:#9a6928}.special-content-guidance p[data-range="standard"]{background:#f0f8f1;color:#3d7652}.special-content-guidance p[data-range="high"]{background:#fff2ed;color:#a85735}.special-content-guidance p.is-active{border-color:currentColor;box-shadow:inset 3px 0 currentColor;font-weight:700}@media(max-width:680px){.special-content-guidance{grid-template-columns:1fr;padding:10px 14px;gap:5px}.special-content-guidance p{padding:6px 8px;font-size:9px}}

/* Mục 3 là vùng biên tập trực tiếp; giữ trạng thái đọc thuận mắt và focus dễ nhận biết. */
.secondary-action-button{min-height:34px;padding:7px 10px;border:1px solid #d4e0d5;border-radius:8px;background:#f9fcf9;color:var(--green);cursor:pointer;font:700 10px "DM Sans",sans-serif;white-space:nowrap}.secondary-action-button:hover{border-color:#9fbca6;background:var(--green-pale)}.edited-script-container[contenteditable="true"]{cursor:text}.edited-script-container[contenteditable="true"]:focus{outline:2px solid rgba(28,107,73,.28);outline-offset:-2px;background:#fff}.edited-script-container[contenteditable="true"] .script-section{cursor:text}.edited-script-container[contenteditable="true"] .speaker{user-select:none}@media(max-width:680px){.output-actions{flex-wrap:wrap;justify-content:flex-end}.secondary-action-button{min-height:36px}}
.editable-script-hint{margin:5px 0 0;color:#7d877f;font-size:10px;line-height:1.45}
