:root{
    --bg:#f5f7fb;--panel:#fff;--ink:#152033;--muted:#64748b;--line:#dfe5ef;
    --accent:#4f46e5;--accent-dark:#3730a3;--danger:#b42318;--success:#087a55;
    --shadow:0 18px 55px rgba(15,23,42,.08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}a{color:var(--accent);text-decoration:none}button,input,select{font:inherit}
.shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:#111827;color:#fff;padding:24px;display:flex;flex-direction:column;gap:28px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:800}.brand-mark{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,#8b5cf6,#4f46e5);color:#fff;font-size:13px;letter-spacing:.06em}
.workspace{padding:16px;border:1px solid rgba(255,255,255,.12);border-radius:14px;display:grid;gap:4px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:11px;font-weight:800;color:#7c8ba1}
.sidebar .eyebrow{color:#9ca3af}.sidebar nav{display:grid;gap:7px}.sidebar nav a{color:#cbd5e1;padding:11px 13px;border-radius:10px}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.1);color:#fff}.logout{margin-top:auto}.logout button{background:none;border:0;color:#cbd5e1;cursor:pointer;padding:0}
.main{padding:34px 44px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.topbar h1{margin:4px 0 0;font-size:30px}.user-chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 14px;font-weight:700}
.hero{background:linear-gradient(135deg,#161b31,#3730a3);color:#fff;padding:34px;border-radius:22px;box-shadow:var(--shadow);display:flex;align-items:end;justify-content:space-between;gap:30px}.hero h2{max-width:750px;font-size:32px;line-height:1.17;margin:16px 0 12px}.hero p{max-width:720px;color:#dbe4ff;line-height:1.65}.pill{display:inline-block;background:rgba(255,255,255,.14);padding:7px 11px;border-radius:999px;font-size:12px;font-weight:800}
.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;padding:10px 14px;font-weight:750;cursor:pointer}.button:hover{border-color:#aeb9ca}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.hero .button.primary{background:#fff;color:var(--accent-dark);border-color:#fff}.button.danger{color:var(--danger)}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:24px 0}.metrics article,.panel,.provider-card,.trust-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.metrics article{padding:22px}.metrics span{color:var(--muted);font-weight:700}.metrics strong{display:block;font-size:35px;margin-top:10px}
.panel{padding:24px}.panel-heading,.page-actions,.provider-card-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.panel-heading h2,.provider-card h2{margin:4px 0}.connection-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:17px 0}.connection-row div{display:grid;gap:4px}.connection-row span{color:var(--muted)}
.status{display:inline-flex;text-transform:capitalize;padding:6px 10px;border-radius:999px;font-weight:800;font-size:12px;background:#eef2f7;color:#475569}.status.connected{background:#e7f8f1;color:var(--success)}.status.error,.status.expired,.status.revoked{background:#fff0ee;color:var(--danger)}.status.disabled,.status.disconnected{background:#eef2f7;color:#64748b}.status.pending{background:#fff8db;color:#8a6500}
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:20px}.provider-card{padding:23px}.provider-card dl{display:grid;gap:12px;margin:22px 0}.provider-card dl div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:10px}.provider-card dt{color:var(--muted)}.provider-card dd{text-align:right;margin:0;font-weight:700}.button-row{display:flex;gap:8px;flex-wrap:wrap}.inline-error{background:#fff0ee;color:var(--danger);padding:11px;border-radius:10px;margin-bottom:14px}
.two-column{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.8fr);gap:22px}.trust-card{padding:26px;background:#111827;color:#fff}.trust-card h2{font-size:26px}.trust-card ol{padding-left:20px;color:#cbd5e1;line-height:1.8}
.stack-form{display:grid;gap:17px;margin-top:22px}.stack-form label{display:grid;gap:7px;font-weight:750}.stack-form input,.stack-form select{width:100%;padding:12px 13px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:var(--ink)}.stack-form input:focus,.stack-form select:focus{outline:3px solid rgba(79,70,229,.15);border-color:var(--accent)}.check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center}.check input{width:auto}
.notice{padding:14px 16px;border-radius:12px;margin-bottom:20px}.notice.success{background:#e7f8f1;color:#075d43}.notice.error{background:#fff0ee;color:#8f1c13}.muted{color:var(--muted);line-height:1.6}.empty{text-align:center;padding:32px;color:var(--muted)}
.audit-list article{display:grid;grid-template-columns:16px 1fr;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}.audit-dot{width:10px;height:10px;background:var(--accent);border-radius:50%;margin-top:6px}.audit-list p{margin:5px 0;color:var(--muted)}
.guest-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#ddd6fe,#f8fafc 48%)}.auth-card{width:min(480px,calc(100% - 32px));background:#fff;border:1px solid var(--line);border-radius:22px;padding:34px;box-shadow:var(--shadow)}.auth-brand{display:flex;align-items:center;gap:10px;font-weight:850;margin-bottom:28px}.auth-card h1{margin-bottom:8px}.auth-footer{text-align:center;margin-top:22px}
code{background:#eef2f7;padding:2px 5px;border-radius:5px}
@media(max-width:850px){.shell{display:block}.sidebar{position:static}.main{padding:24px}.sidebar nav{grid-template-columns:repeat(3,1fr)}.logout{margin-top:0}.hero{align-items:start;flex-direction:column}.metrics,.two-column{grid-template-columns:1fr}}
@media(max-width:560px){.main{padding:18px}.topbar{align-items:start}.user-chip{display:none}.sidebar nav{grid-template-columns:1fr}.hero h2{font-size:25px}.card-grid{grid-template-columns:1fr}.page-actions{align-items:start;flex-direction:column}}
.provider-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-bottom:22px}.provider-choice{display:flex;align-items:center;gap:14px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);color:var(--ink)}.provider-choice.selected{border-color:var(--accent);box-shadow:0 0 0 3px rgba(79,70,229,.12),var(--shadow)}.provider-choice small{display:block;color:var(--muted);line-height:1.45;margin-top:4px}.provider-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:14px;background:#eef2ff;color:var(--accent-dark);font-weight:900}.trust-note{color:#cbd5e1;line-height:1.6}.stack-form textarea{width:100%;padding:12px 13px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:var(--ink);font:inherit;resize:vertical}.stack-form textarea:focus{outline:3px solid rgba(79,70,229,.15);border-color:var(--accent)}.draft-result{display:grid;gap:8px;padding:16px 0;border-bottom:1px solid var(--line)}.draft-result>span{color:var(--muted);font-size:14px}.draft-result:last-child{border-bottom:0}
.metrics.four{grid-template-columns:repeat(4,1fr)}.dashboard-columns{grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr)}.mini-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.mini-metrics div{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:16px}.mini-metrics span{display:block;color:var(--muted);font-size:13px}.mini-metrics strong{display:block;font-size:28px;margin-top:7px}.status-stack{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.status.in_review{background:#fff8db;color:#8a6500}.status.approved{background:#eef2ff;color:#3730a3}.status.published{background:#e7f8f1;color:var(--success)}.status.archived{background:#eef2f7;color:#64748b}
.article-table{display:grid}.article-table-head,.article-table-row{display:grid;grid-template-columns:minmax(250px,2fr) minmax(120px,.7fr) minmax(130px,.8fr) minmax(100px,.6fr) auto;gap:18px;align-items:center}.article-table-head{padding:0 12px 12px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.article-table-row{border-top:1px solid var(--line);padding:17px 12px}.article-table-row>div:first-child{display:grid;gap:4px}.article-table-row>div:first-child span,.article-table-row small{color:var(--muted)}.table-panel{overflow-x:auto}
.article-editor{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.65fr);gap:22px;align-items:start}.editor-main{display:grid;gap:19px}.editor-sidebar{display:grid;gap:18px;position:sticky;top:20px}.form-grid{display:grid;gap:16px}.form-grid.two{grid-template-columns:1fr 1fr}.article-editor label{display:grid;gap:7px;font-weight:750}.article-editor input,.article-editor select,.article-editor textarea{width:100%;padding:12px 13px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:var(--ink);font:inherit}.article-editor input:focus,.article-editor select:focus,.article-editor textarea:focus{outline:3px solid rgba(79,70,229,.15);border-color:var(--accent)}.article-editor small,.stack-form small{font-weight:500;color:var(--muted);line-height:1.45}.code-editor{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.65}.wide{width:100%}.compact{gap:12px}.workflow-summary{margin:16px 0}.workflow-summary p{margin:8px 0}.workflow-panel{margin:22px 0}.wrap{flex-wrap:wrap}.revision-list article{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:17px 0;border-top:1px solid var(--line)}.revision-list p{margin:5px 0;color:var(--muted)}.revision-list small{color:var(--muted)}
.media-layout{grid-template-columns:minmax(0,1.5fr) minmax(310px,.5fr)}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:20px}.media-card{border:1px solid var(--line);border-radius:15px;overflow:hidden;background:#fff}.media-card>img{display:block;width:100%;height:170px;object-fit:cover;background:#eef2f7}.media-card-body{padding:15px;display:grid;gap:8px}.media-card-body>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-card-body>span{font-size:13px;color:var(--muted)}.snippet{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;border:1px solid var(--line);border-radius:8px;padding:8px}.upload-panel{position:sticky;top:20px;align-self:start}
@media(max-width:1050px){.metrics.four{grid-template-columns:repeat(2,1fr)}.article-editor,.media-layout{grid-template-columns:1fr}.editor-sidebar,.upload-panel{position:static}.article-table-head{display:none}.article-table-row{grid-template-columns:1fr 1fr}.article-table-row>a{justify-self:start}}
@media(max-width:620px){.metrics.four,.form-grid.two{grid-template-columns:1fr}.article-table-row{grid-template-columns:1fr}.revision-list article{align-items:flex-start;flex-direction:column}}
.article-editor-fields{display:contents;border:0;padding:0;margin:0}.muted-note{background:#f8fafc;color:var(--muted);margin:0;text-align:center}
.summary-list{display:grid;gap:0;margin:20px 0}.summary-list>div{display:grid;grid-template-columns:130px 1fr;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.summary-list dt{color:var(--muted);font-weight:700}.summary-list dd{margin:0;font-weight:700}.break-word{overflow-wrap:anywhere}.error-text{color:var(--danger)!important}.status.queued,.status.processing,.status.verification_pending{background:#fff8db;color:#8a6500}.status.drafted,.status.scheduled{background:#eef2ff;color:#3730a3}.status.verified{background:#e7f8f1;color:var(--success)}.status.failed,.status.verification_failed{background:#fff0ee;color:var(--danger)}.publish-combined{display:grid;gap:9px;justify-items:start;max-width:460px}.compact-check{font-size:13px;font-weight:700}.inline-publish-options{display:none;gap:8px;padding:11px;background:#f8fafc;border:1px solid var(--line);border-radius:10px}.inline-publish-options select{width:100%;padding:9px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}
.brand-layout{grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr)}.trust-inline{margin-top:18px;padding:16px;border-radius:13px;background:#eef2ff;color:#3730a3}.trust-inline p{margin:7px 0 0;line-height:1.55}.policy-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}.policy-card{display:grid;gap:13px;padding:17px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}.policy-card label{display:grid;gap:6px}.policy-card select{padding:9px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.campaign-hero{margin-bottom:22px}.campaign-index-layout{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr)}.campaign-row,.article-pick{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 0;border-top:1px solid var(--line)}.campaign-row p,.campaign-row small,.article-pick small{display:block;margin:5px 0;color:var(--muted)}.channel-chip{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:12px;font-weight:800}.start-campaign-panel{align-self:start}.channel-picker{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}.channel-picker legend{font-weight:800;margin-bottom:10px}.channel-choice{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start!important;padding:17px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}.channel-choice input{width:auto!important;margin-top:4px}.channel-choice span{display:grid;gap:4px}.channel-choice small{color:var(--muted);font-weight:500;line-height:1.45}.campaign-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0}.campaign-summary article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px;box-shadow:var(--shadow)}.campaign-summary span{display:block;color:var(--muted);font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.07em}.campaign-summary strong{display:block;margin-top:7px;line-height:1.4}.channel-version-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.channel-version-card{align-self:start}.channel-card-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.channel-card-header h2{margin:5px 0 0;font-size:22px}.channel-editor fieldset{display:grid;gap:16px;border:0;padding:0;margin:0}.channel-editor fieldset:disabled{opacity:.76}.selected-creative{display:grid;gap:7px;margin-bottom:15px}.selected-creative img{width:100%;max-height:230px;object-fit:cover;border-radius:13px;border:1px solid var(--line)}.selected-creative span{font-size:12px;color:var(--muted)}.regenerate-bar{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin:18px 0;padding:13px;background:#f8fafc;border:1px solid var(--line);border-radius:12px}.regenerate-bar input,.regenerate-bar select,.schedule-form input{padding:9px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.approval-bar{display:flex;align-items:end;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:17px}.schedule-form{display:flex;align-items:end;gap:8px;margin-left:auto}.schedule-form label{display:grid;gap:5px;font-size:12px}.generation-history{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}.generation-history summary{cursor:pointer;font-weight:800}.generation-history article{display:flex;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid var(--line)}.generation-history p{margin:4px 0;color:var(--muted);font-size:13px}.generation-history small{color:var(--muted)}.lineage-panel{margin-top:22px}.lineage-flow{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:17px}.lineage-flow span{padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;font-weight:750}.lineage-flow b{color:var(--accent)}.status.not_generated,.status.not_ready{background:#eef2f7;color:#64748b}.status.generating,.status.awaiting_review{background:#fff8db;color:#8a6500}.status.generated,.status.ready,.status.partially_ready{background:#eef2ff;color:#3730a3}.status.changes_requested{background:#fff8db;color:#8a6500}.status.rejected,.status.cancelled{background:#fff0ee;color:var(--danger)}
@media(max-width:1100px){.policy-grid,.campaign-summary{grid-template-columns:repeat(2,1fr)}.channel-version-grid{grid-template-columns:1fr}}
@media(max-width:700px){.brand-layout,.campaign-index-layout{grid-template-columns:1fr}.policy-grid,.campaign-summary,.channel-picker{grid-template-columns:1fr}.regenerate-bar{grid-template-columns:1fr}.campaign-row,.article-pick,.channel-card-header{align-items:flex-start;flex-direction:column}.schedule-form{margin-left:0;align-items:stretch;flex-direction:column}}
.status-stack{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.status.expiring,.status.reauthorization_required,.status.permission_missing,.status.unknown{background:#fff8db;color:#8a6500}.facebook-publishing-panel{margin-top:20px;padding-top:19px;border-top:1px solid var(--line)}.facebook-publishing-panel h3{margin:4px 0}.facebook-publishing-panel dl{display:grid;gap:10px;margin:16px 0}.facebook-publishing-panel dl>div{display:grid;grid-template-columns:140px 1fr;gap:14px;padding-bottom:8px;border-bottom:1px solid var(--line)}.facebook-publishing-panel dt{color:var(--muted)}.facebook-publishing-panel dd{margin:0;font-weight:700;overflow-wrap:anywhere}.facebook-publish-actions{display:grid;grid-template-columns:1fr 1fr;gap:16px}.facebook-publish-actions .stack-form{padding:15px;border:1px solid var(--line);border-radius:13px;background:#f8fafc;margin-top:10px}.button.disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.provider-identity{display:flex;align-items:center;gap:12px}.provider-avatar{width:44px;height:44px;border-radius:12px;object-fit:cover;background:#eef2f7}
@media(max-width:700px){.status-stack{justify-content:flex-start}.facebook-publish-actions{grid-template-columns:1fr}.facebook-publishing-panel dl>div{grid-template-columns:1fr}}

