*{margin:0;padding:0;box-sizing:border-box}:root,:root[data-theme=day]{--bg: #f8f8f8;--surface: #ffffff;--surface-2: #f3f4f6;--text: #161823;--text-muted: #73747b;--border: #dfdfdf;--accent: #fe2c55;--accent-hover: #e6294f;--focus: #2563eb;--btn-text: #161823;--topbar-bg: #111111;--topbar-text: #ffffff;--link: #6b7280;--link-active: #161823;--sidebar-bg: #ffffff;--sidebar-border: #e5e7eb;--nav-active-bg: #fef2f2;--nav-active-border: #fe2c55;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .12);--topbar-height: 52px;--sidebar-width: 220px;--bottom-nav-height: 56px}:root[data-theme=night]{--bg: #000000;--surface: #121317;--surface-2: #1b1d22;--text: #f3f4f6;--text-muted: #9ca3af;--border: #2a2d33;--accent: #fe2c55;--accent-hover: #ff4d73;--focus: #5aa9ff;--btn-text: #f7f7f8;--topbar-bg: #0a0a0a;--topbar-text: #f3f4f6;--link: #9ca3af;--link-active: #f3f4f6;--sidebar-bg: #0a0a0a;--sidebar-border: #1f2127;--nav-active-bg: #1c1012;--nav-active-border: #fe2c55;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .4)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}.topbar{position:sticky;top:0;z-index:20;height:var(--topbar-height);background:var(--topbar-bg);color:var(--topbar-text);padding:0 1.25rem;display:flex;align-items:center;gap:.75rem}.topbar-brand{font-size:1rem;margin-right:auto}.topbar-actions{display:flex;align-items:center;gap:.65rem}.topbar-logout{border:1px solid var(--border);background:transparent;color:var(--topbar-text)}.theme-toggle{border:1px solid rgba(255,255,255,.2);background:transparent;color:var(--topbar-text);border-radius:var(--radius-full);padding:.25rem .7rem;font-size:.8rem;cursor:pointer}.sidebar{position:fixed;top:var(--topbar-height);left:0;bottom:0;width:var(--sidebar-width);background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);padding:.75rem 0;display:flex;flex-direction:column;gap:.15rem;z-index:10;overflow-y:auto}.sidebar a{display:flex;align-items:center;gap:.7rem;padding:.65rem 1rem .65rem 1.15rem;color:var(--link);text-decoration:none;font-size:.9rem;font-weight:500;border-left:3px solid transparent;transition:background .15s,color .15s}.sidebar a:hover{background:var(--surface-2);color:var(--link-active)}.sidebar a.active{color:var(--link-active);font-weight:700;background:var(--nav-active-bg);border-left-color:var(--nav-active-border)}.sidebar .nav-icon{width:22px;text-align:center;font-size:1.1rem}main{max-width:900px;margin:1.5rem auto;padding:0 1.25rem}@media(min-width:721px){body.has-sidebar main{margin-left:var(--sidebar-width);max-width:calc(900px + var(--sidebar-width));padding:0 2rem}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--bottom-nav-height);background:var(--surface);border-top:1px solid var(--border);display:flex;justify-content:space-around;align-items:center;z-index:20;box-shadow:var(--shadow-md)}.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:.15rem;color:var(--link);text-decoration:none;font-size:.68rem;font-weight:500;padding:.3rem .75rem;border-radius:var(--radius-md);transition:color .15s}.bottom-nav a:hover{color:var(--link-active)}.bottom-nav a.active{color:var(--accent);font-weight:700}.bottom-nav .nav-icon{font-size:1.3rem;line-height:1}.bottom-nav .nav-label{line-height:1}.fab{position:fixed;z-index:15;width:52px;height:52px;border-radius:var(--radius-full);background:var(--accent);color:#fff;font-size:1.6rem;font-weight:300;display:flex;align-items:center;justify-content:center;text-decoration:none;box-shadow:var(--shadow-lg);transition:background .15s,transform .15s}.fab:hover{background:var(--accent-hover);transform:scale(1.06)}@media(min-width:721px){.fab{bottom:1.5rem;right:1.5rem}}@media(max-width:720px){.fab{bottom:calc(var(--bottom-nav-height) + .75rem);right:1rem}}@media(max-width:720px){.sidebar{display:none!important}main{margin-left:0;margin-top:1rem;margin-bottom:calc(var(--bottom-nav-height) + 1rem);padding:0 .85rem}}@media(min-width:721px){.bottom-nav{display:none!important}}h2{margin-bottom:1rem;font-size:1.4rem}h3{margin:1.5rem 0 .5rem;font-size:1.1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem;margin-bottom:1rem;box-shadow:var(--shadow-sm)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.card-header h3{margin:0}.filters{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.75rem}input,textarea,select{display:block;width:100%;padding:.5rem .65rem;margin-top:.25rem;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:var(--radius-sm);font-size:.9rem;font-family:inherit;transition:border-color .15s}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:none}.filters label{margin-bottom:0}.filters select{width:auto;min-width:120px}textarea{resize:vertical}.btn{display:inline-block;padding:.5rem 1rem;border:none;border-radius:var(--radius-sm);font-size:.9rem;cursor:pointer;text-decoration:none;text-align:center;font-weight:500;transition:background .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover{background:#b91c1c}.btn-sm{padding:.3rem .6rem;font-size:.8rem}.btn:disabled{opacity:.6;cursor:not-allowed}.hidden{display:none!important}.hint{color:var(--text-muted);font-size:.9rem}.error{color:#dc2626}.success-note{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.badge{display:inline-block;padding:.15rem .5rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;text-transform:uppercase}.badge-queued{background:#e5e7eb;color:#374151}.badge-generating{background:#dbeafe;color:#1e40af}.badge-ready{background:#d1fae5;color:#065f46}.badge-failed{background:#fee2e2;color:#991b1b}.badge-expired{background:#fef3c7;color:#92400e}table{width:100%;border-collapse:collapse}.table-wrap{overflow-x:auto}th,td{text-align:left;padding:.5rem;border-bottom:1px solid var(--border);font-size:.85rem}th{font-weight:600;background:var(--surface-2)}.prompt-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-table th{width:140px;white-space:nowrap}.detail-table td{overflow-wrap:anywhere;word-break:break-word}.audit-table{table-layout:fixed;width:100%}.audit-table th,.audit-table td{white-space:normal;overflow-wrap:anywhere;word-break:break-word}.advertiser-row{display:flex;justify-content:space-between;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--border)}.advertiser-row:last-child{border-bottom:none}.empty-state{text-align:center;padding:2rem 1rem}.empty-state-icon{font-size:2.5rem;margin-bottom:.75rem;opacity:.4}.onboarding{border-left:4px solid var(--accent)}.skeleton-block{height:16px;border-radius:var(--radius-sm);margin-bottom:.75rem;background:linear-gradient(90deg,var(--surface-2) 20%,var(--surface) 40%,var(--surface-2) 60%);background-size:200% 100%;animation:shimmer 1.2s infinite linear}.skeleton-block.short{width:60%}.skeleton-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem;margin-bottom:.75rem}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.jobs-grid{display:grid;gap:.75rem;grid-template-columns:1fr}@media(min-width:580px){.jobs-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:900px){.jobs-grid{grid-template-columns:repeat(3,1fr)}}.job-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:.85rem;display:flex;flex-direction:column;gap:.4rem;cursor:pointer;text-decoration:none;color:var(--text);transition:box-shadow .15s,border-color .15s;box-shadow:var(--shadow-sm)}.job-card:hover{box-shadow:var(--shadow-md);border-color:var(--accent)}.job-card-header{display:flex;justify-content:space-between;align-items:center}.job-card-type{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--text-muted)}.job-card-prompt{font-size:.85rem;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.job-card-meta{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--text-muted);margin-top:auto}.jobs-mobile-list{display:grid;gap:.75rem}.job-detail-mobile-list{display:grid;gap:.7rem}.job-detail-mobile-item{border:1px solid var(--border);border-radius:var(--radius-md);padding:.6rem .65rem;background:var(--surface-2);overflow-wrap:anywhere;word-break:break-word}.audit-mobile-list{display:grid;gap:.75rem}#job-preview-video{width:100%;max-height:min(62vh,520px);border-radius:var(--radius-md)}#job-preview-image{width:100%;max-height:min(62vh,520px);object-fit:contain;border-radius:var(--radius-md)}.profile-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:.7rem}.profile-advertisers{margin-top:.45rem;padding-left:1.1rem}.form-grid{display:grid;gap:.8rem;margin-top:.8rem}.form-grid label{display:grid;gap:.35rem;font-size:.92rem}.login-page{min-height:calc(100dvh - var(--topbar-height));max-width:580px;margin:0 auto;display:flex;flex-direction:column;padding:2rem 1.5rem .75rem}.login-header{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:.75rem;padding:0 .25rem}.login-header-brand{text-align:center;font-weight:700;color:var(--text)}.icon-btn{height:40px;width:40px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius-full);cursor:pointer}.login-main{margin-top:2rem;display:flex;flex-direction:column;gap:1.25rem}.login-hero h1{font-size:clamp(2rem,5vw,3.5rem);line-height:1.1;margin-bottom:.6rem}.login-hero p{color:var(--text-muted)}.login-options{display:grid;gap:.85rem}.login-option{height:68px;border-radius:14px;border:1px solid var(--border);background:var(--surface);color:var(--btn-text);display:grid;grid-template-columns:42px 1fr;align-items:center;gap:.7rem;padding:0 1rem;text-align:left;cursor:pointer;transition:background .15s}.login-option:hover{background:var(--surface-2)}.login-option.is-disabled{opacity:.55;cursor:not-allowed}.login-option-icon{font-weight:700;width:32px;text-align:center}.login-option-label{font-weight:600}.login-legal{margin-top:1rem;text-align:center;color:var(--text-muted);font-size:.9rem}.login-legal a,.login-signup a{color:var(--accent);text-decoration:none;font-weight:600}.login-footer{margin-top:auto}.login-signup{border-top:1px solid var(--border);padding-top:.8rem;display:flex;justify-content:center;gap:.35rem}.login-meta{margin-top:.7rem;color:var(--text-muted);display:flex;justify-content:space-between;align-items:center;font-size:.82rem}.lang-btn{border:1px solid var(--border);background:transparent;color:var(--text-muted);border-radius:var(--radius-full);padding:.2rem .55rem}.toast-container{position:fixed;top:calc(var(--topbar-height) + .75rem);right:1rem;z-index:100;display:flex;flex-direction:column;gap:.5rem;max-width:480px;pointer-events:none}@media(max-width:720px){.toast-container{right:.5rem;left:.5rem;max-width:none}}.toast{padding:.7rem 1rem;border-radius:var(--radius-md);font-size:.88rem;display:flex;align-items:flex-start;gap:.5rem;box-shadow:var(--shadow-lg);pointer-events:auto;opacity:0;transform:translate(20px);transition:opacity .25s,transform .25s;word-break:break-word;overflow-wrap:anywhere}.toast-visible{opacity:1;transform:translate(0)}.toast-exit{opacity:0;transform:translate(20px)}.toast-success{background:#065f46;color:#d1fae5}.toast-error{background:#991b1b;color:#fee2e2}.toast-info{background:#1e3a5f;color:#dbeafe}.toast-confirm{background:var(--surface);color:var(--text);border:1px solid var(--border);flex-wrap:wrap}.toast-confirm-actions{display:flex;gap:.4rem;margin-left:auto}.toast-dismiss{margin-left:auto;background:none;border:none;color:inherit;font-size:1.1rem;cursor:pointer;opacity:.7;padding:0 .2rem}.toast-dismiss:hover{opacity:1}*:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media(max-width:720px){th{display:none}table,tbody,tr,td{display:block;width:100%}tr{border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:.75rem;padding:.35rem 0}td{border:none;border-bottom:1px solid var(--surface-2);padding:.4rem .65rem}td:last-child{border-bottom:none}td:before{content:attr(data-label);display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-bottom:.15rem}.detail-table th{display:table-cell;width:120px}.detail-table td,.detail-table tbody{display:table-cell;width:auto;border:none;padding:.45rem .5rem}.detail-table tr{display:table-row}.detail-table td:before{content:none}}.campaign-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:1rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.campaign-tab{padding:.6rem 1.2rem;border:none;background:none;color:var(--text-muted);font-size:.9rem;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap;transition:color .15s,border-color .15s}.campaign-tab:hover{color:var(--text)}.campaign-tab.active{color:var(--accent);font-weight:700;border-bottom-color:var(--accent)}.campaign-tab-content{min-height:100px}.campaign-grid{display:grid;gap:.75rem;grid-template-columns:1fr}@media(min-width:580px){.campaign-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:900px){.campaign-grid{grid-template-columns:repeat(3,1fr)}}.campaign-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:.85rem;display:flex;flex-direction:column;gap:.4rem;box-shadow:var(--shadow-sm);transition:box-shadow .15s,border-color .15s}.campaign-card:hover{box-shadow:var(--shadow-md);border-color:var(--accent)}.campaign-card-actions{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.35rem;padding-top:.45rem;border-top:1px solid var(--border)}.campaign-create-form{margin-bottom:1rem}.campaign-create-form label{margin-bottom:.6rem}.badge-enable,.badge-active{background:#d1fae5;color:#065f46}.badge-disable,.badge-not_delivery,.badge-campaign_status_disable{background:#e5e7eb;color:#374151}.badge-delete,.badge-campaign_status_delete,.badge-advertiser_audit_deny,.badge-audit_deny,.badge-rejected{background:#fee2e2;color:#991b1b}.badge-delivery_ok,.badge-campaign_status_enable{background:#d1fae5;color:#065f46}.badge-in_review,.badge-audit{background:#dbeafe;color:#1e40af}
