/* ContentHub file-browser shell reused by the BannerAds workspace. */
.bh-shell{grid-template-columns:var(--hub-sidebar-width) minmax(0,1fr) 310px;height:100dvh}
.bh-main{display:flex;flex-direction:column;min-height:0;overflow:hidden;background:var(--panel)}
.bh-topbar{position:static;min-height:64px;height:64px;padding:0 20px;gap:10px;background:var(--chrome);backdrop-filter:none;flex-shrink:0}
#bh-crumbs{font-size:13px;gap:6px;flex-wrap:nowrap;overflow:auto;white-space:nowrap;scrollbar-width:none}
#bh-crumbs a{display:inline-flex;align-items:center;gap:7px;color:var(--text);padding:5px 0}
#bh-crumbs a:last-child{font-weight:500}#bh-crumbs svg{width:17px;height:17px;fill:var(--folder);stroke:var(--folder);flex:none}
.ad-history,.ad-tools{display:flex;align-items:center;gap:6px}
.banner-admin .ad-history button{padding:3px;min-width:28px;min-height:32px;font-size:19px;border:0;background:none;color:var(--muted)}
.ad-search{display:flex;align-items:center;gap:7px;background:var(--field);border-radius:8px;padding:7px 10px;width:176px;height:34px;flex-shrink:1}
.ad-search svg{width:16px;height:16px;fill:none;stroke:var(--muted);stroke-width:1.5;flex:none}.ad-search input{border:0;outline:0;background:none;color:var(--text);min-width:0;width:100%;font:inherit;font-size:13px}
.ad-search:focus-within{outline:1px solid var(--muted);outline-offset:1px}
.bh-view-switch{padding:2px}.banner-admin .bh-view-switch button{width:30px}
.ad-toolbar{height:64px;min-height:64px;margin:0 24px;display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid var(--line)}
.banner-admin .ad-toolbar button{border:0;background:none;padding:5px 7px;color:var(--text);min-height:32px}
.banner-admin .ad-toolbar button:hover{background:var(--hover)}
.banner-admin .ad-new{font-size:15px;font-weight:500;gap:9px;padding-left:0}.ad-new>span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:white;font-size:25px;font-weight:300}
.ad-tool-divider{height:25px;border-left:1px solid var(--line);margin:0 7px}.ad-tools select{border:0;color:var(--muted);background:var(--panel);font:inherit;font-size:12px;max-width:100px}
.banner-admin .bh-content{padding:0 24px;flex:1;min-height:0;overflow:auto;width:100%;max-width:none;margin:0;background:var(--panel)}
.ad-table-head,.ad-row{display:grid;grid-template-columns:minmax(100px,1fr) 78px 94px 106px 30px;align-items:center;gap:10px}
.ad-table-head{height:44px;padding:0 8px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}
.ad-row{min-height:46px;padding:8px;border-bottom:1px solid var(--line);border-radius:5px;font-size:14px;cursor:default;user-select:none;outline-offset:-2px}
.ad-row:hover,.ad-row.selected{background:var(--hover)}.ad-row.selected{border-bottom-color:transparent}
.ad-filename{display:flex;align-items:center;gap:10px;min-width:0}.ad-filename>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-file-icon{width:28px;height:30px;display:grid;place-items:center;flex:none;color:var(--folder)}.ad-file-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.25}.ad-file-icon.folder svg{fill:currentColor;stroke:none}
.ad-size,.ad-type,.ad-date{font-size:12px;color:var(--muted)}
.banner-admin .ad-row button{padding:2px;min-width:28px;min-height:28px;border:0;background:none;color:var(--muted);font-size:12px;letter-spacing:1px}
.ad-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;padding-top:18px}
.ad-grid .ad-row{display:flex;flex-direction:column;position:relative;height:155px;border:1px solid var(--line);padding:12px;gap:8px}
.ad-grid .ad-row button{position:absolute;right:5px;top:5px}
.ad-grid .ad-filename{flex:1;flex-direction:column;justify-content:center;gap:12px;width:100%}.ad-grid .ad-filename>span:last-child{max-width:100%;font-size:13px}
.ad-grid .ad-file-icon{transform:scale(1.4);margin-top:10px}.ad-grid .ad-date,.ad-grid .ad-type{display:none}
.ad-footer{height:40px;min-height:40px;border-top:1px solid var(--line);background:var(--chrome);display:flex;justify-content:space-between;align-items:center;padding:0 24px;color:var(--muted);font-size:12px}
.ad-inspector{display:flex;flex-direction:column;min-height:0;background:var(--bg);border-left:1px solid var(--line)}
.ad-inspector-header{height:64px;min-height:64px;display:flex;justify-content:space-between;align-items:center;padding:0 20px;border-bottom:1px solid var(--line);background:var(--chrome)}
#ad-details{padding:20px;overflow:auto;min-height:0}#ad-details h2{font-size:16px;font-weight:550;margin:0 0 20px}#ad-details h3{font-size:14px;font-weight:500;overflow-wrap:anywhere;margin:15px 0 8px}
#ad-details .bh-drop{min-height:180px!important;padding:18px!important;margin-bottom:16px}#ad-details .bh-drop strong{font-size:14px}
.ad-detail-icon{height:140px;background:var(--field);border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;color:var(--folder)}.ad-detail-icon svg{width:48px;height:56px;fill:none;stroke:currentColor;stroke-width:1}.ad-detail-icon.folder svg{fill:currentColor;stroke:none}
.ad-detail-actions{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0}.ad-detail-actions button{font-size:12px;flex:1;white-space:nowrap}
.ad-publication{margin-top:30px;border-top:1px solid var(--line);padding-top:12px}.ad-publication>button{width:100%;margin-top:8px;font-size:12px}
.banner-admin .bh-status{position:static;flex-shrink:0;margin:0 24px;box-shadow:none;border-radius:7px;padding:8px 12px}
.banner-admin .bh-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:300px;padding:30px;font-size:12px}.bh-empty>svg{width:46px;height:46px;fill:none;stroke:var(--folder);stroke-width:1}.bh-empty h3{font-size:15px;color:var(--text);font-weight:500}
.banner-admin #bh-dialog.ad-preview-dialog{width:min(1100px,94vw);max-width:94vw}.ad-preview-dialog .bh-card{border:0;background:none;padding:0;margin:0}.ad-preview-dialog .bh-card-top{flex-wrap:wrap}.ad-preview-dialog .bh-dialog-actions{display:none}
@media(min-width:1600px){.bh-shell{grid-template-columns:var(--hub-sidebar-width) minmax(0,1fr) 330px}}
@media(min-width:781px) and (max-width:1150px){.bh-shell{grid-template-columns:var(--hub-sidebar-width) minmax(0,1fr) 286px}.ad-search{width:120px}.bh-topbar{padding:0 14px}.banner-admin .bh-content{padding:0 14px}.ad-toolbar{margin:0 14px}.ad-row,.ad-table-head{grid-template-columns:minmax(80px,1fr) 64px 28px;gap:7px}.ad-date,.ad-type,.ad-table-head>span:nth-of-type(3),.ad-table-head>span:nth-of-type(4){display:none}.ad-row button{grid-column:3}}
@media(max-width:780px){.bh-shell{grid-template-columns:48px minmax(0,1fr);grid-template-rows:minmax(0,65dvh) minmax(0,35dvh)}.bh-sidebar{grid-column:1;grid-row:1/3}.bh-main{grid-column:2;grid-row:1;height:auto}.ad-inspector{grid-column:2;grid-row:2;border-left:0;border-top:1px solid var(--line)}.ad-inspector-header{height:38px;min-height:38px;padding:0 12px}.ad-inspector-header .bh-profile{display:block}.bh-topbar{height:48px;min-height:48px;padding:0 8px;gap:5px}.ad-history{gap:0}.ad-history button{min-width:22px!important}.ad-history button:last-child{display:none}.ad-search{width:95px;height:28px;padding:4px 6px}#bh-crumbs{font-size:11px}.bh-topbar .bh-view-switch{display:none}.banner-admin .bh-content{padding:0 7px}.ad-toolbar{height:42px;min-height:42px;margin:0 7px}.ad-row,.ad-table-head{grid-template-columns:minmax(40px,1fr) 50px 24px;gap:5px}.ad-row{font-size:12px}.ad-date,.ad-type,.ad-table-head>span:nth-of-type(3),.ad-table-head>span:nth-of-type(4){display:none}.ad-row button{grid-column:3}.ad-footer{height:32px;min-height:32px;padding:0 9px;font-size:10px}.ad-footer>span:last-child{display:none}#ad-details{padding:12px}#ad-details .bh-drop{min-height:110px!important}#ad-details h2{margin-bottom:12px}.ad-filename{gap:7px}.ad-file-icon{width:22px}.ad-file-icon svg{width:22px}.ad-size{font-size:10px}.ad-new>span{height:24px;width:24px}.banner-admin .ad-new{font-size:12px}.ad-tool-divider{margin:0 3px}.ad-tools{gap:2px}}

.ad-preview-dialog .bh-card-top>div:first-child h2{display:none}

/* Shared browser rhythm: same toolbar, table, inspector and footer as files. */
body.banner-admin{--accent:#f97316;font-size:14px;line-height:normal}
.banner-admin .ad-history{gap:2px}.banner-admin .ad-history button{width:28px}
.banner-admin #bh-crumbs a:last-child{font-weight:600}
.banner-admin .ad-search{border-radius:7px}
.banner-admin .bh-view-switch,.banner-admin .bh-theme{background:var(--field);border-radius:6px;padding:2px;gap:0}
.banner-admin .bh-view-switch button{width:31px;height:30px;min-height:30px;border-radius:5px}
.banner-admin .bh-theme{width:150px}.banner-admin .bh-theme button{flex:1;width:auto;height:30px;min-height:30px;border-radius:5px}
.banner-admin .bh-view-switch button[aria-pressed=true],.banner-admin .bh-theme button[aria-pressed=true]{background:var(--panel);box-shadow:0 1px 3px #0000000d}
.banner-admin .ad-toolbar{height:58px;min-height:58px;margin:0 20px;border:0}
.banner-admin .ad-toolbar button{min-width:32px;padding:6px;min-height:32px}
.banner-admin .ad-new{font-size:14px;font-weight:600;gap:9px}.banner-admin .ad-new>span{width:29px;height:29px}.banner-admin .ad-new>span svg{width:20px;height:20px;stroke:#fff}
.banner-admin .ad-toolbar svg{width:18px;height:18px}
.banner-admin .bh-content{padding:0 20px}
.ad-table-head{height:38px;min-height:38px;font-weight:500;position:sticky;top:0;z-index:1;background:var(--panel)}
.ad-row{height:46px;min-height:46px;padding:0 8px;border-bottom-color:color-mix(in srgb,var(--line) 65%,transparent);transition:background 150ms}
.ad-filename{gap:12px}.ad-file-icon{width:27px;height:31px}.ad-file-icon svg{width:27px;height:27px}
.ad-footer{height:44px;min-height:44px;padding:0 20px}
#ad-details{padding:0 20px 20px}#ad-details h2{height:58px;display:flex;align-items:center;font-size:15px;font-weight:600;margin:0}
#ad-details .bh-drop{min-height:148px!important;height:148px;padding:12px!important;gap:7px;border-radius:8px;background:color-mix(in srgb,var(--field) 64%,var(--bg));border-color:color-mix(in srgb,var(--folder) 72%,var(--line))}
#ad-details .bh-drop-icon{display:flex;margin-bottom:5px}#ad-details .bh-drop-icon svg{width:34px;height:34px}
#ad-details .bh-drop>span:not(.bh-drop-icon){font-size:12px}#ad-details .bh-drop small{font-size:11px}
.ad-grid{gap:14px;padding:16px 0;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.ad-grid .ad-row{height:164px;padding:14px;border-color:transparent}
@media(min-width:1600px){.ad-search{width:240px}}
@media(min-width:781px) and (max-width:1150px){.banner-admin .ad-toolbar{margin:0 14px}.banner-admin .bh-content{padding:0 14px}#ad-details{padding:0 16px 16px}}
@media(max-width:780px){.banner-admin .ad-toolbar{height:42px;min-height:42px;margin:0 7px}.banner-admin .bh-content{padding:0 7px}.ad-table-head{height:32px;min-height:32px}.ad-row{height:42px;min-height:42px}.ad-footer{height:32px;min-height:32px;padding:0 9px}#ad-details{padding:0 12px 12px}#ad-details h2{height:38px;font-size:14px}.ad-grid .ad-row{height:150px}.banner-admin .bh-theme{width:100px}}

/* Campaigns switch from folders to a direct HTML5 + fallback overview. */
.banner-admin .bh-shell{grid-template-columns:var(--hub-sidebar-width) minmax(0,1fr);grid-template-rows:64px minmax(0,1fr)}
.banner-admin .bh-sidebar{grid-column:1;grid-row:1/3}
.banner-admin .bh-shell>.hub-titlebar{grid-column:2;grid-row:1}
.banner-admin .bh-main{grid-column:2;grid-row:2;height:auto}
.banner-admin .bh-profile{display:flex}
.banner-admin .ad-campaign-content{padding-bottom:24px}
#ad-details.ad-campaign-controls{padding:18px 0 0;overflow:visible}
.ad-campaign-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}
.ad-campaign-heading h1{font-size:22px;font-weight:550;letter-spacing:-.4px;margin:0 0 5px;overflow-wrap:anywhere}
.ad-campaign-heading p{font-size:12px;color:var(--muted);margin:0}
.ad-campaign-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.ad-campaign-actions button{font-size:12px}
#ad-details .ad-campaign-drop{display:flex;align-items:center;justify-content:flex-start;width:100%;height:80px;min-height:80px!important;padding:16px 20px!important;border:1px dashed var(--line);background:var(--bg);gap:16px;margin:0 0 24px}
#ad-details .ad-campaign-drop .bh-drop-icon{margin:0}.ad-campaign-drop>span:nth-child(2){display:flex;flex-direction:column;align-items:flex-start;gap:5px}.ad-campaign-drop>svg:last-child{margin-left:auto}.ad-campaign-drop small{font-size:12px;color:var(--muted)}
.ad-subcampaigns{margin:0 0 24px}.ad-subcampaigns h2{font-size:12px;font-weight:500;color:var(--muted);margin:0 0 10px}.ad-subcampaign-list{display:flex;gap:8px;flex-wrap:wrap}.ad-subcampaign-list button{border:0;background:var(--bg);font-size:13px;gap:9px;padding:10px 12px}.ad-subcampaign-list button:hover{background:var(--hover)}.ad-subcampaign-list button>svg:last-child{width:12px;color:var(--muted)}
.ad-banner-gallery .bh-card{border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;padding:24px 0;margin:0;animation:bh-appear .25s ease-out}
.ad-banner-gallery .bh-card h2{font-size:16px;font-weight:550}.ad-banner-gallery .bh-card-pair{display:flex;flex-wrap:wrap;align-items:flex-start;gap:24px 40px}
.ad-banner-gallery .bh-lane{width:max-content;max-width:100%;min-width:0;overflow:auto}
.ad-banner-gallery .bh-stage{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;overflow:auto;max-width:none}
.ad-banner-gallery .bh-frame-box{box-shadow:none}
.ad-banner-gallery .bh-stage .bh-drop{width:100%;height:100%;min-height:0!important;box-sizing:border-box;font-size:12px;border:1px dashed var(--line);background:var(--bg)}
.ad-banner-gallery .bh-lane-title{justify-content:flex-start;gap:12px;margin-bottom:8px;min-height:26px}.ad-banner-gallery .bh-scale{text-align:left;margin-top:7px}
.ad-banner-gallery .bh-card-tools button{font-size:12px;min-height:28px;padding:4px 8px}
@media(max-width:780px){.banner-admin .bh-shell{grid-template-columns:48px minmax(0,1fr);grid-template-rows:48px minmax(0,1fr)}.banner-admin .bh-sidebar{grid-row:1/3}.banner-admin .bh-main{grid-column:2;grid-row:2}.banner-admin .bh-shell>.hub-titlebar{grid-column:2;grid-row:1}.ad-campaign-heading{align-items:flex-start;flex-direction:column;gap:12px}.ad-campaign-actions{justify-content:flex-start}#ad-details .ad-campaign-drop{height:auto;min-height:80px!important;padding:12px!important;gap:10px}.ad-campaign-drop>svg:last-child{display:none}.ad-campaign-heading h1{font-size:20px}.ad-banner-gallery .bh-card-top{gap:12px}.banner-admin .ad-search{width:80px}.banner-admin .bh-profile{font-size:11px;padding:4px}}

#ad-details .ad-campaign-drop{flex-direction:row;text-align:left}#ad-details .ad-campaign-drop strong{display:block}

#ad-view-switch{width:102px;flex:none}#ad-view-switch.ad-view-placeholder{visibility:hidden}
.banner-admin .bh-view-switch{justify-content:space-between}
.banner-admin .bh-view-switch button{width:46px}
.banner-admin .ad-history button svg{width:17px;height:17px}
.banner-admin .hub-titlebar .bh-theme{width:108px}
@media(max-width:780px){#ad-view-switch{display:none}.banner-admin .hub-titlebar .bh-theme{display:none}}

.ad-tools #ad-view-switch{margin-right:12px;width:auto}
.ad-tools #ad-view-switch.ad-view-placeholder{display:none}
.banner-admin .ad-toolbar .bh-view-switch{gap:0}.banner-admin .ad-toolbar .bh-view-switch button{width:31px;min-width:31px;min-height:30px;height:30px;padding:5px 7px}
@media(max-width:780px){.ad-tools #ad-view-switch{display:block;margin-right:2px}.banner-admin .ad-toolbar .bh-view-switch button{width:25px;min-width:25px;min-height:27px;height:27px;padding:4px}.ad-tools #ad-view-switch.ad-view-placeholder{display:none}}

.ad-banner-gallery .bh-card{animation:none}

.ad-tools #ad-view-switch{margin-right:0}.ad-tools:last-child{margin-left:auto}

/* Campaign workspace: persistent campaign heading, folder motifs and direct formats. */
#bh-content.ad-campaign-content{padding-top:0}
.ad-campaign-controls{position:sticky;top:0;z-index:4;background:var(--bg);padding:22px 0 16px;border-bottom:1px solid var(--line);margin-bottom:22px}
.ad-campaign-controls .ad-campaign-heading{margin:0}.ad-campaign-heading h1{font-size:20px;font-weight:550}
.ad-motif-title{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:500;margin:0 0 20px}.ad-motif-title svg{width:20px;height:20px;stroke:var(--muted);fill:none;stroke-width:1.6}
.ad-subcampaign-list button{display:flex;align-items:center;background:var(--field);min-height:42px;border-radius:8px}.ad-subcampaign-list button svg{width:20px;height:20px;stroke:var(--muted);fill:none;stroke-width:1.6}
#bh-tree .bh-format-row{display:flex;align-items:center;gap:10px;padding:8px 12px;min-height:36px;box-sizing:border-box;font-size:12px;color:var(--muted);cursor:grab;border-radius:7px;user-select:none;touch-action:none}
#bh-tree .bh-format-row svg{width:17px;height:17px;flex:none;stroke:currentColor;stroke-width:1.6;fill:none}#bh-tree .bh-format-row:hover{background:transparent}
.ad-banner-gallery .bh-card-top{align-items:center;cursor:grab;user-select:none;touch-action:none;margin-bottom:18px}.ad-banner-gallery .bh-card-top h2{font-size:18px;font-weight:500;letter-spacing:-.02em;margin:0}
.ad-banner-gallery .bh-card-tools,.ad-banner-gallery .bh-lane-tools{display:flex;align-items:center;gap:2px;margin-left:auto}
.ad-banner-gallery .bh-card-tools button,.ad-banner-gallery .bh-lane-tools button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:32px;padding:6px;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer}
.ad-banner-gallery .bh-card-tools button:hover,.ad-banner-gallery .bh-lane-tools button:hover{background:var(--hover);color:var(--text)}
.ad-banner-gallery .bh-card-tools button:disabled{opacity:.35;cursor:default}.ad-banner-gallery :is(.bh-card-tools,.bh-lane-tools) svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6}
.ad-banner-gallery .bh-lane-title{justify-content:space-between;min-height:34px;font-size:12px;text-transform:none;letter-spacing:0;gap:12px}
.ad-banner-gallery .bh-lane{overflow:visible}.ad-banner-gallery .bh-stage:has(.ad-banner-drop){min-height:180px;min-width:min(240px,100%)}
:is(#banner-workspace,#ad-upload-panel) .ad-sidebar-drop{border:2px dashed var(--line)!important;background:transparent!important;border-radius:10px!important;box-shadow:none!important;transform:none!important;gap:8px;padding:20px!important}
:is(#banner-workspace,#ad-upload-panel) .ad-sidebar-drop:hover,:is(#banner-workspace,#ad-upload-panel) .ad-sidebar-drop.drag-over{background:color-mix(in srgb,var(--text) 5%,transparent)!important;border-color:var(--muted)!important}
:is(#banner-workspace,#ad-upload-panel) .ad-sidebar-drop>svg{width:48px;height:48px;flex:none;stroke:var(--muted);stroke-width:1.5;fill:none}
:is(#banner-workspace,#ad-upload-panel) .ad-sidebar-drop strong{font-size:14px;font-weight:500}:is(#banner-workspace,#ad-upload-panel) .ad-sidebar-drop span,:is(#banner-workspace,#ad-upload-panel) .ad-sidebar-drop small{font-size:12px;color:var(--muted)}
.ad-banner-gallery .bh-stage-compact .ad-banner-drop{gap:5px;padding:14px!important}
#bh-expand{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;padding:0;border:0;border-radius:0;background:var(--bg);color:var(--text);overflow:hidden}
#bh-expand[open]{display:block}#bh-expand>header{position:absolute;right:14px;top:14px;z-index:2;display:flex;align-items:center;gap:24px;padding:8px 12px;background:var(--panel);border:1px solid var(--line);border-radius:8px;font-size:13px}
#bh-expand button{font:inherit;padding:6px 10px;border:0;border-radius:6px;background:var(--field);color:var(--text)}
#bh-expand .bh-expanded-stage{height:100%;width:100%}#bh-expand iframe{border:0;width:100%;height:100%;background:white}#bh-expand .bh-expanded-stage>img{display:block;width:100%;height:100%;object-fit:contain}

#ad-details.ad-campaign-controls{padding:22px 0 16px;background:var(--panel)}
#ad-upload-panel .ad-sidebar-drop>svg{width:48px!important;height:48px!important;margin-bottom:4px}

.ad-banner-gallery .bh-card-pair{gap:24px 20px}
.ad-preview-link{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 12px;box-sizing:border-box;border:1px solid var(--line);border-radius:7px;font-size:12px;color:var(--text);text-decoration:none;background:transparent}.ad-preview-link:hover{background:var(--hover)}

/* Publishing separates preview, link settings and explicit content updates. */
.ad-campaign-heading h1{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.ad-heading-separator{font-size:17px;color:var(--muted);font-weight:400}.ad-heading-motif{font-weight:400}
.ad-publish-state{display:flex;gap:10px;align-items:center;min-height:22px}.ad-update-badge,.hub-share-badge.has-update{display:inline-flex;border-radius:20px;background:var(--accent);color:#fff;font-size:10px;font-weight:550;padding:3px 8px;line-height:1.3}
.ad-campaign-actions>button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;border-radius:7px}.ad-campaign-actions>button svg{height:13px;width:13px;fill:none;stroke:currentColor;stroke-width:1.7}
.ad-preview-menu a{display:flex;flex-direction:column;gap:3px;padding:8px 10px;border-radius:5px;text-decoration:none;color:var(--text);font-size:13px;outline-offset:-1px}.ad-preview-menu a small{font-size:11px;color:var(--muted)}.ad-preview-menu a:hover,.ad-preview-menu a:focus-visible{background:var(--hover);outline:1px solid transparent}
.bh-format-row.tree-drop-target{background:var(--hover)}

/* The dragged format keeps its slot; siblings smoothly make room around it. */
.bh-tree-dragging #bh-tree .bh-format-row.tree-drag-source{opacity:0;pointer-events:auto}

/* Banner actions follow the actual creative edges, independent of page entry route. */
#banner-workspace .bh-card-tools,#banner-workspace .bh-lane-tools{display:flex;align-items:center;gap:2px;margin-left:auto}
#banner-workspace :is(.bh-card-tools,.bh-lane-tools) :is(button,a){display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;min-height:32px;padding:6px;box-sizing:border-box;border:0;border-radius:6px;background:transparent;color:var(--muted);text-decoration:none;box-shadow:none;transform:none;cursor:pointer}
#banner-workspace :is(.bh-card-tools,.bh-lane-tools) :is(button,a):hover{background:var(--hover);color:var(--text)}
#banner-workspace :is(.bh-card-tools,.bh-lane-tools) svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}
#banner-workspace .bh-lane-title{display:flex;justify-content:space-between;gap:12px}
#banner-workspace .bh-banner-heading{min-width:0}#banner-workspace .bh-banner-heading p{margin:5px 0 0;font-size:12px;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}
#banner-workspace .bh-card-top{max-width:100%;box-sizing:border-box}
:is(#banner-workspace,#ad-upload-panel) .ad-sidebar-drop:active{transform:none!important}
:is(#banner-workspace,#ad-upload-panel) .ad-sidebar-drop>svg{flex-shrink:0!important}

/* Shared upload treatment for ContentHub and BannerAds. */
#dropzone{border-width:2px;background:transparent;transform:none;box-shadow:none}
#dropzone:is(:hover,.drag){background:color-mix(in srgb,var(--text) 5%,transparent);border-color:var(--muted);border-style:dashed;transform:none;box-shadow:none}
#dropzone .drop-icon,#dropzone .drop-icon svg{width:48px;height:48px;transform:none}

#ad-motif-tabs:empty{display:none}
.ad-motif-label{font-size:12px;color:var(--muted);margin:18px 0 9px}
.ad-motif-tablist{display:flex;flex-wrap:wrap;gap:6px}
#banner-workspace .ad-motif-tablist button{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;min-height:36px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:13px;transform:none;transition:background-color .18s ease,color .18s ease}
#banner-workspace .ad-motif-tablist button:hover,#banner-workspace .ad-motif-tablist button[aria-selected=true]{background:var(--hover);color:var(--text)}
.ad-motif-tablist svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}
@media(prefers-reduced-motion:reduce){#banner-workspace .ad-motif-tablist button{transition:none}}

.ad-inactive-badge{display:inline-flex;align-items:center;box-sizing:border-box;border:1px solid var(--line);border-radius:20px;background:transparent;color:var(--muted);font-size:10px;font-weight:550;padding:2px 8px;line-height:1.3}

/* The campaign header owns its separator; toolrails match the file browser. */
#banner-workspace #ad-toolbar{border:0}
#banner-workspace .ad-banner-gallery>.bh-card:first-child{border-top:0;padding-top:0}

/* Publication status uses the same compact badge geometry. */
.ad-active-badge{display:inline-flex;align-items:center;box-sizing:border-box;border:1px solid var(--accent);border-radius:20px;background:var(--accent);color:#fff;font-size:10px;font-weight:550;padding:2px 8px;line-height:1.3}
#banner-workspace [data-html-present="false"] [data-fla-card]{display:none}
.ad-add-menu button{display:flex;align-items:center;gap:9px;width:100%}
.ad-add-menu svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6}
#banner-workspace .ad-new>svg{width:13px;height:13px;margin-left:2px}
/* Content and chrome share the ContentHub spacing scale. */
#banner-workspace #ad-toolbar{margin-inline:var(--hub-content-inset)}
#banner-workspace #bh-content{padding-inline:var(--hub-content-inset);padding-bottom:0}
#banner-workspace .ad-footer{padding-inline:var(--hub-content-inset)}
#banner-workspace #ad-details.ad-campaign-controls{padding:var(--hub-content-inset) 0 16px;margin-bottom:var(--hub-content-inset)}
#banner-workspace .ad-tools{gap:9px}
#banner-workspace .ad-tool-divider{height:26px;margin-inline:5px}
@media(min-width:781px) and (max-width:1150px){#banner-workspace .ad-tools{gap:5px}}
@media(max-width:780px){#banner-workspace .ad-tools{gap:2px}}

.hub-sort-menu.ad-add-menu button{justify-content:flex-start}
#banner-workspace .ad-toolbar .ad-new{border:1px solid transparent}

/* Published campaigns use the same browser rows and expiry pills as file shares. */
#banner-workspace .ad-filename [data-edit-name]{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#banner-workspace :is(.ad-share-head,.ad-files:not(.ad-grid)>.ad-share-row){grid-template-columns:minmax(100px,1fr) 160px 108px 30px}
#banner-workspace .ad-share-row .ad-share-customer{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#banner-workspace .ad-share-row>button{grid-column:4;letter-spacing:normal}
#banner-workspace .ad-share-row>button svg{width:18px;height:18px}
#banner-workspace .ad-share-row .share-expiry-badge{margin-left:6px}
#banner-workspace .ad-grid .ad-share-row .share-expiry-badge{margin:3px 0 0}
#banner-workspace .ad-grid .ad-share-customer{display:block;font-size:12px}
@media(min-width:1600px){#banner-workspace :is(.ad-share-head,.ad-files:not(.ad-grid)>.ad-share-row){grid-template-columns:minmax(100px,1fr) 180px 138px 32px}}
@media(min-width:781px) and (max-width:1150px){
 #banner-workspace :is(.ad-share-head,.ad-files:not(.ad-grid)>.ad-share-row){grid-template-columns:minmax(80px,1fr) 108px 30px}
 #banner-workspace .ad-share-customer{display:none}
 #banner-workspace .ad-share-row .ad-date{display:block}
 #banner-workspace .ad-share-row>button{grid-column:3}
}
@media(max-width:780px){
 #banner-workspace :is(.ad-share-head,.ad-files:not(.ad-grid)>.ad-share-row){grid-template-columns:minmax(40px,1fr) 24px}
 #banner-workspace :is(.ad-share-customer,.ad-share-date){display:none}
 #banner-workspace .ad-share-row>button{grid-column:2}
 #banner-workspace .ad-share-row .share-expiry-badge{margin-left:0}
 #banner-workspace .ad-share-row .ad-filename{gap:7px;flex-wrap:wrap}
}

#banner-workspace .ad-share-row>button svg{stroke-width:3}
