:root{--bg:#f5f7fa;--panel:#fff;--text:#182230;--muted:#718096;--line:#e5e9ef;--accent:#1f6feb;--accent-dark:#1858bd;--green:#159570;--red:#c94b55;--shadow:0 14px 38px rgba(30,55,90,.07)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select{font:inherit}button{cursor:pointer;border:0}h1,h2,h3,p{margin:0}h1{font-size:32px;letter-spacing:-.02em}h2{font-size:26px;letter-spacing:-.02em}h3{font-size:18px}.hidden{display:none!important}.muted{color:var(--muted)}.eyebrow{color:#94a1b2;font-size:11px;font-weight:700;letter-spacing:.15em}.error{color:var(--red);min-height:20px}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% -15%,#eaf2ff,transparent 45%),var(--bg)}.login-panel{width:min(420px,100%);padding:44px;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px}.login-panel h1{margin:12px 0 8px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:var(--text);color:#fff;font-weight:800;letter-spacing:-.08em}.brand-mark.small{width:34px;height:34px;border-radius:9px;font-size:12px}.stack{display:grid;gap:16px;margin-top:28px}label{display:grid;gap:7px;color:#455365;font-weight:600}input,select{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);padding:11px 12px;outline:none;transition:border .2s,box-shadow .2s}input:focus,select:focus{border-color:#93b8ec;box-shadow:0 0 0 3px rgba(31,111,235,.1)}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:8px;padding:10px 15px;font-weight:700;white-space:nowrap}.button.primary{background:var(--accent);color:#fff}.button.primary:hover{background:var(--accent-dark)}.button.secondary{background:#eef3f8;color:#304257}.button.full{width:100%;margin-top:12px}.app-shell{display:flex;min-height:100vh}.sidebar{width:248px;flex:none;background:#fff;border-right:1px solid var(--line);padding:24px 16px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;padding:0 10px 38px}.brand strong{display:block;font-size:14px}.brand span{display:block;color:#9aa6b5;font-size:9px;letter-spacing:.12em;margin-top:2px}nav{display:grid;gap:6px}.nav-item{display:flex;align-items:center;gap:12px;background:transparent;color:#718096;text-align:left;padding:12px 11px;border-radius:8px}.nav-item:hover,.nav-item.active{background:#edf4ff;color:var(--accent)}.nav-icon{font-size:20px;line-height:1;width:20px;text-align:center}.nav-count{margin-left:auto;min-width:22px;padding:2px 7px;border-radius:99px;background:#edf0f4;color:#8693a2;text-align:center;font-size:11px}.nav-item.active .nav-count{background:#d7e7ff;color:var(--accent)}.sidebar-bottom{display:flex;align-items:center;gap:8px;margin-top:auto;padding:14px 10px;color:#8290a0;font-size:12px}.status-dot{width:7px;height:7px;border-radius:50%;background:#20b486;box-shadow:0 0 0 4px #dff6ed}.sidebar-bottom button{margin-left:auto;background:transparent;color:#8592a0;font-size:20px}.main{width:min(1240px,100%);padding:30px 42px 64px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:32px;border-bottom:1px solid var(--line)}.topbar h2{margin-top:5px}.top-actions{display:flex;align-items:center;gap:13px}.live-badge{display:flex;align-items:center;gap:7px;color:#4f766c;font-size:11px;font-weight:700;letter-spacing:.1em}.live-badge i{display:block;width:7px;height:7px;border-radius:50%;background:#20b486}.icon-button{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#68798d;font-size:18px}.tab-panel{padding-top:30px}.intro-row{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:24px}.intro-row h3{margin-bottom:5px}.provider-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}.provider-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:20px;box-shadow:0 5px 18px rgba(45,65,90,.03)}.provider-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.provider-symbol{width:35px;height:35px;border-radius:9px;display:grid;place-items:center;background:#eaf2ff;color:#1f6feb;font-weight:800}.provider-actions{display:flex;gap:4px}.provider-actions button{background:transparent;color:#8491a0;font-size:17px;padding:2px 4px}.provider-card h3{margin-top:16px}.provider-type{color:#8b97a5;font-size:12px;margin-top:3px}.provider-model{display:inline-flex;margin-top:14px;padding:4px 8px;background:#f0f4f8;border-radius:5px;color:#526378;font-size:12px}.provider-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#9aa6b5;font-size:12px;margin-top:14px}.key-state{display:flex;align-items:center;gap:6px;margin-top:18px;color:#4f766c;font-size:12px}.key-state i{width:6px;height:6px;background:#20b486;border-radius:50%}.empty-state{text-align:center;padding:70px 20px;border:1px dashed #cfd8e3;border-radius:12px;background:#fbfcfe}.empty-icon{font-size:32px;color:#a5bbd8}.empty-state h3{margin:10px 0 5px}.empty-state .button{margin-top:18px}.modal{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:20px}.modal-backdrop{position:absolute;inset:0;background:rgba(17,31,49,.42);backdrop-filter:blur(3px)}.modal-card{position:relative;width:min(540px,100%);background:#fff;border-radius:14px;padding:26px;box-shadow:0 25px 70px rgba(8,27,54,.23)}.modal-heading{display:flex;justify-content:space-between;align-items:flex-start}.modal-heading h3{margin-top:5px}.modal-card .stack{margin-top:24px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.clean-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.upload-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:20px}.card-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px}.card-heading h3{font-size:16px}.card-heading p{font-size:12px;color:var(--muted)}.step{display:grid;place-items:center;width:31px;height:31px;border-radius:8px;background:#edf4ff;color:var(--accent);font-size:11px;font-weight:800}.dropzone{min-height:150px;border:1px dashed #bed0e6;border-radius:9px;background:#fafcff;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;text-align:center;color:#41556c;cursor:pointer}.dropzone input{display:none}.dropzone small{color:#9aa6b5;font-weight:400}.drop-icon{display:grid;place-items:center;width:33px;height:33px;border-radius:50%;background:#eaf2ff;color:var(--accent);font-size:20px}.asset-list{display:grid;gap:7px;margin-top:13px}.asset{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#f6f8fa;border-radius:6px;font-size:12px}.asset span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset em{margin-left:auto;color:#97a4b3;font-style:normal}.run-strip{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:18px;padding:20px;background:#172434;color:#fff;border-radius:11px}.run-strip p{color:#aebdcd;font-size:12px;margin-top:3px}.run-controls{display:flex;align-items:center;gap:8px}.run-controls select{width:145px;background:#273849;border-color:#3d5064;color:#fff;padding:9px}.jobs-section{margin-top:32px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:14px}.section-heading h3{margin-top:5px}.jobs-list{display:grid;gap:8px}.job-row{display:grid;grid-template-columns:1.5fr 1.5fr 100px 140px 110px;align-items:center;gap:10px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:8px;font-size:13px}.job-row .file{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-status{font-size:12px;color:#718096}.job-status.completed{color:var(--green)}.job-status.failed{color:var(--red)}.job-link{color:var(--accent);background:transparent;text-align:right}.toast{position:fixed;right:24px;bottom:24px;z-index:20;background:#172434;color:#fff;padding:12px 16px;border-radius:8px;box-shadow:var(--shadow);opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}@media(max-width:880px){.sidebar{width:72px;padding:18px 10px}.brand{padding:0 9px 32px}.brand>div:last-child,.nav-item:not(.active)::after,.nav-item{font-size:0}.nav-item{justify-content:center}.nav-icon{font-size:20px}.nav-count{font-size:10px;position:absolute;margin:26px 0 0 23px}.sidebar-bottom span{display:none}.main{padding:24px 24px 50px}.run-strip{align-items:stretch;flex-direction:column}.run-controls{flex-wrap:wrap}.run-controls select{flex:1;min-width:140px}}@media(max-width:620px){.main{padding:20px 15px 40px}.topbar{padding-bottom:22px}.intro-row{align-items:flex-start;flex-direction:column}.clean-grid,.two-col{grid-template-columns:1fr}.provider-grid{grid-template-columns:1fr}.job-row{grid-template-columns:1fr 1fr}.job-row .job-link{grid-column:2}.run-controls{display:grid;grid-template-columns:1fr 1fr}.run-controls .button{grid-column:1/-1}.login-panel{padding:32px 24px}.sidebar{width:58px}.brand{padding-left:3px}.brand-mark.small{width:32px;height:32px}}
.publish-job-card { scroll-margin: 7rem; }
.publish-progress-head { display:flex; justify-content:space-between; gap:1rem; margin-top:.65rem; font-size:.78rem; color:var(--muted); }
.publish-progress { height:9px; margin-top:.3rem; border-radius:999px; background:#e7edf5; overflow:hidden; box-shadow:inset 0 0 0 1px rgba(15,23,42,.04); }
.publish-progress > i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#2563eb,#06b6d4); transition:width .45s ease; }
.publish-progress.complete > i { background:linear-gradient(90deg,#16a34a,#22c55e); }
.publish-progress.failed > i { background:linear-gradient(90deg,#dc2626,#f97316); }
.raw-material-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:1.1rem; margin-top:1.25rem; }
.raw-material-card { overflow:hidden; border:1px solid var(--border); border-radius:18px; background:var(--card,#fff); box-shadow:0 8px 28px rgba(15,23,42,.06); }
.raw-video-wrap { aspect-ratio:9/16; max-height:620px; background:#0f172a; display:flex; justify-content:center; }
.raw-video-wrap video { width:100%; height:100%; object-fit:contain; background:#0f172a; }
.raw-material-copy { padding:1rem; }
.raw-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:.75rem; }
.raw-title-row h3 { margin:0; font-size:1rem; }
.raw-title-row span { flex:0 0 auto; padding:.2rem .5rem; border-radius:999px; background:#fff7ed; color:#c2410c; font-size:.72rem; font-weight:700; }
