:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#101828;background:#f2f4f7}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:#101828;color:#fff;padding:24px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;margin:0 8px 35px}.brandMark,.loginLogo{display:grid;place-items:center;background:#7f56d9;color:#fff;font-weight:800;border-radius:12px}.brandMark{width:42px;height:42px}.brand b,.brand small{display:block}.brand small{color:#98a2b3}.sidebar nav{display:grid;gap:7px}.nav,.logout{border:0;background:transparent;color:#d0d5dd;padding:12px 14px;text-align:left;border-radius:9px;display:flex;gap:12px;align-items:center}.nav:hover,.nav.active{background:#1d2939;color:#fff}.nav.active{box-shadow:inset 3px 0 #9e77ed}.logout{margin-top:auto;color:#fda29b}.shell main{padding:30px 36px;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.topbar h1{margin:0;font-size:28px}.topbar p{margin:5px 0 0;color:#667085}.secondary{background:#fff;border:1px solid #d0d5dd;border-radius:8px;padding:9px 14px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px}.stat,.panel,.mediaCard{background:#fff;border:1px solid #eaecf0;border-radius:12px;box-shadow:0 1px 2px rgba(16,24,40,.04)}.stat{padding:19px}.stat span,.stat small{display:block;color:#667085}.stat strong{display:block;font-size:34px;margin:10px 0 4px}.panel{overflow:hidden}.panelHead{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid #eaecf0}.panelHead h2{font-size:18px;margin:0}.panelHead span{background:#f2f4f7;padding:3px 9px;border-radius:20px}.tableWrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:13px 18px;text-align:left;border-bottom:1px solid #eaecf0;font-size:14px}th{color:#667085;background:#fcfcfd}.status{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600}.status i{width:8px;height:8px;border-radius:50%}.online{color:#027a48}.online i{background:#12b76a}.offline{color:#b42318}.offline i{background:#f04438}.empty{text-align:center;color:#667085;padding:34px}.grid2{display:grid;grid-template-columns:380px 1fr;gap:22px;align-items:start}.form,.uploadForm{padding:20px;display:grid;gap:15px}.form label,.uploadForm label,.screenBody label,.loginCard label{font-size:13px;font-weight:600;color:#344054;display:grid;gap:7px}input,select{width:100%;border:1px solid #d0d5dd;border-radius:8px;padding:10px 11px;background:#fff}input:focus,select:focus{outline:3px solid #f4ebff;border-color:#9e77ed}button.primary{border:0;border-radius:8px;padding:11px 15px;background:#6941c6;color:#fff;font-weight:650}button:disabled{opacity:.5}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px;padding:18px}.screenCard{border:1px solid #eaecf0;border-radius:11px;overflow:hidden}.screenVisual{height:86px;background:linear-gradient(135deg,#1d2939,#344054);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:18px}.screenVisual>span{font-size:26px;font-weight:800}.screenVisual .status{background:rgba(255,255,255,.92);padding:5px 8px;border-radius:20px}.screenBody{padding:16px;display:grid;gap:14px}.screenBody h3,.mediaCard h3,.playlistList h3{margin:0;font-size:16px}.screenBody p,.mediaCard p,.playlistList p{margin:4px 0 0;color:#667085;font-size:13px}.row{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.link,.dangerLink{border:0;background:transparent;padding:0;color:#6941c6;font-size:13px}.dangerLink{color:#b42318}.pairCode{background:#f9fafb;border-radius:9px;padding:12px;display:grid}.pairCode small,.pairCode em{color:#667085;font-style:normal}.pairCode b{font-size:26px;letter-spacing:5px;margin:4px 0}.emptyBox{margin:18px;padding:35px;text-align:center;border:1px dashed #d0d5dd;border-radius:10px;color:#667085}.uploadForm{grid-template-columns:2fr 1fr 180px auto;align-items:end}.drop{border:1px dashed #98a2b3;padding:14px;border-radius:9px;position:relative}.drop input{position:absolute;inset:0;opacity:0;cursor:pointer}.drop span,.drop small{display:block}.drop small{color:#667085;margin-top:4px}.mediaGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;margin-top:22px}.mediaCard{overflow:hidden}.mediaCard>div:last-child{padding:14px}.preview{height:145px;background:#1d2939;display:grid;place-items:center;color:#fff;font-size:32px}.preview img{width:100%;height:100%;object-fit:cover}.checkList{display:grid;gap:8px;max-height:420px;overflow:auto}.check{display:flex!important;gap:10px!important;align-items:center;padding:10px;border:1px solid #eaecf0;border-radius:8px}.check input{width:auto}.check span,.check small{display:block}.check small{color:#667085}.playlistList{padding:18px;display:grid;gap:14px}.playlistList article{border:1px solid #eaecf0;border-radius:10px;padding:15px}.playlistList ol{margin:13px 0 0;padding-left:24px}.playlistList li{padding:5px 0}.playlistList li small{float:right;color:#667085}.alert{padding:12px 14px;background:#fef3f2;color:#b42318;border:1px solid #fecdca;border-radius:9px;margin-bottom:18px}.loginPage{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#f4ebff,transparent 32%),#f2f4f7}.loginCard{width:min(420px,calc(100vw - 32px));background:#fff;border:1px solid #eaecf0;border-radius:16px;padding:34px;box-shadow:0 20px 60px rgba(16,24,40,.12);display:grid;gap:17px}.loginLogo{width:54px;height:54px;font-size:24px}.loginCard h1{margin:0}.loginCard p{margin:-8px 0 3px;color:#667085}.toast{position:fixed;right:25px;bottom:25px;background:#101828;color:#fff;padding:12px 18px;border-radius:9px}@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.uploadForm{grid-template-columns:1fr 1fr}.drop{grid-column:1/-1}}@media(max-width:720px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;align-items:center;overflow:auto;padding:12px}.brand{margin:0 10px 0 0}.brand div:last-child,.logout{display:none}.sidebar nav{display:flex}.nav{white-space:nowrap}.shell main{padding:20px 14px}.topbar p{display:none}.stats{grid-template-columns:1fr 1fr;gap:10px}.uploadForm{grid-template-columns:1fr}.cards{grid-template-columns:1fr}}
.sub{display:block;color:#667085;margin-top:4px}.monitorBox{display:grid;gap:5px;background:#f9fafb;border-radius:9px;padding:12px}.monitorBox small{color:#667085}.errorText{color:#b42318!important}.chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.chips span,.badge{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:650}.chips span{background:#f4ebff;color:#6941c6}.chips em{font-size:13px;color:#667085}.campaignCard{transition:.15s}.campaignCard.activeCampaign{border-color:#75e0a7;box-shadow:inset 3px 0 #12b76a}.badge.good{background:#ecfdf3;color:#027a48}.badge.muted{background:#f2f4f7;color:#475467}.schedule{display:grid;gap:6px;margin:14px 0;color:#667085;font-size:13px}.formRow{display:grid;grid-template-columns:1fr 1fr;gap:12px}.days{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.days label{display:flex!important;align-items:center;gap:5px!important;background:#f9fafb;border:1px solid #eaecf0;padding:7px 9px;border-radius:8px}.days input,.inlineCheck input{width:auto}.fieldLabel{font-size:13px;font-weight:600;color:#344054}.inlineCheck{display:flex!important;grid-template-columns:auto 1fr;align-items:center;gap:8px!important}.filterForm{padding:18px;display:grid;grid-template-columns:repeat(4,1fr) auto auto;gap:12px;align-items:end}.filterForm label{display:grid;gap:6px;font-size:13px;font-weight:600;color:#344054}.reportStats{margin-top:20px}.reportColumns{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;margin-bottom:20px}.recentPanel{margin-bottom:20px}@media(max-width:1200px){.filterForm{grid-template-columns:repeat(2,1fr)}.reportColumns{grid-template-columns:1fr}}@media(max-width:720px){.formRow,.filterForm{grid-template-columns:1fr}.campaignGrid{grid-template-columns:1fr}}

/* Upload progress and media editing */
.uploadForm .uploadProgress{grid-column:1/-1;display:grid;gap:9px;padding:14px 16px;border:1px solid #d6bbfb;background:#f9f5ff;border-radius:10px}
.uploadForm .uploadProgress[hidden]{display:none}
.progressTop{display:flex;align-items:center;justify-content:space-between;gap:16px;color:#53389e}
.progressTrack{height:10px;overflow:hidden;background:#e9d7fe;border-radius:999px}
.progressBar{height:100%;width:0;background:#7f56d9;border-radius:inherit;transition:width .18s ease}
.uploadProgress small{color:#667085}
.uploadProgress.uploadError{background:#fef3f2;border-color:#fecdca}
.uploadProgress.uploadError .progressTop,.uploadProgress.uploadError small{color:#b42318}
.uploadProgress.uploadError .progressBar{background:#f04438}
.successPanel{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px;padding:16px 18px;border:1px solid #abefc6;background:#ecfdf3;border-radius:11px;color:#05603a}
.successPanel div{display:grid;gap:4px}.successPanel span,.successPanel small{display:block}.successPanel small{color:#027a48}
.durationNote{font-weight:600;color:#344054!important}.cardActions{display:flex;align-items:center;gap:16px;margin-top:12px}
.disabledField{opacity:.65}.disabledField input{background:#f2f4f7}
.infoBox{display:grid;gap:5px;padding:13px 14px;border:1px solid #d6bbfb;background:#f9f5ff;border-radius:9px;color:#42307d}
.infoBox span{font-size:13px;line-height:1.45}.infoBox.compact{padding:11px 12px}
.modalBackdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(16,24,40,.65)}
.modalCard{width:min(520px,100%);display:grid;gap:17px;padding:24px;background:#fff;border-radius:14px;box-shadow:0 24px 80px rgba(16,24,40,.3)}
.modalCard label{display:grid;gap:7px;font-size:13px;font-weight:600;color:#344054}.modalCard label small{font-weight:400;color:#667085;line-height:1.45}
.modalHead,.modalActions{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.modalHead h2{margin:0;font-size:21px}.modalHead p{margin:4px 0 0;color:#667085}
.modalActions{justify-content:flex-end;margin-top:4px}.iconButton{border:0;background:transparent;color:inherit;font-size:24px;line-height:1;padding:2px 5px;border-radius:7px}.iconButton:hover{background:rgba(16,24,40,.08)}
@media(max-width:1050px){.uploadForm .uploadProgress{grid-column:1/-1}}

/* Playlist editor 0.3 */
.playlistWorkspace{display:grid;grid-template-columns:270px minmax(520px,1fr) 310px;gap:18px;align-items:start}
.playlistSidebar,.mediaLibrary,.playlistEditorPanel{min-height:680px}
.smallButton{padding:8px 11px!important;font-size:13px}.dangerOutline{background:#fff;border:1px solid #fda29b;color:#b42318;border-radius:8px;padding:9px 12px}
.playlistSelector,.libraryList{display:grid;gap:8px;padding:12px;max-height:calc(100vh - 195px);overflow:auto}
.playlistSelect{width:100%;border:1px solid #eaecf0;background:#fff;border-radius:10px;padding:12px;text-align:left;display:grid;gap:9px;color:#101828}
.playlistSelect:hover,.playlistSelect.active{border-color:#9e77ed;background:#f9f5ff}.playlistSelect span{display:grid;gap:4px}.playlistSelect small{color:#667085}.playlistSelect .badge{justify-self:start;font-style:normal}
.badge.warning{background:#fffaeb;color:#b54708}.warningBanner{background:#fffaeb!important;border-color:#fedf89!important;color:#93370d!important}
.playlistEditorPanel{background:#fff;border:1px solid #eaecf0;border-radius:12px;box-shadow:0 1px 2px rgba(16,24,40,.04);overflow:hidden}
.editorHeader{display:flex;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid #eaecf0}.editorHeader>div:first-child{flex:1}.editorHeader label{display:grid;gap:6px;font-size:13px;font-weight:650;color:#344054}.editorHeader input{font-size:18px;font-weight:700}
.editorMeta{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.editorMeta span{background:#f2f4f7;color:#475467;border-radius:999px;padding:4px 9px;font-size:12px}.editorButtons{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;justify-content:flex-end}
.draftBanner{margin:14px 18px 0;padding:12px 14px;border:1px solid #d6bbfb;background:#f9f5ff;color:#53389e;border-radius:9px;display:grid;gap:3px}.draftBanner span{font-size:13px}.successBanner{background:#ecfdf3;border-color:#abefc6;color:#05603a}
.playlistDropZone{display:grid;gap:9px;padding:18px}.playlistEditorItem{display:grid;grid-template-columns:28px 28px 54px minmax(150px,1fr) minmax(145px,190px) 72px;gap:10px;align-items:center;border:1px solid #eaecf0;border-radius:10px;padding:10px;background:#fff;transition:.12s}
.playlistEditorItem:hover{border-color:#d6bbfb}.playlistEditorItem.dragging{opacity:.45}.playlistEditorItem.dragOver{border-color:#7f56d9;box-shadow:0 0 0 3px #f4ebff}.dragHandle{font-size:23px;color:#98a2b3;cursor:grab;user-select:none}.itemNumber{display:grid;place-items:center;width:26px;height:26px;background:#f2f4f7;border-radius:50%;font-size:12px;font-weight:700;color:#475467}
.itemThumb{width:50px;height:42px;display:grid;place-items:center;overflow:hidden;background:#1d2939;color:#fff;border-radius:7px;font-size:12px;font-weight:750}.itemThumb img{width:100%;height:100%;object-fit:cover}.itemInfo{display:grid;gap:4px;min-width:0}.itemInfo b,.libraryItem b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.itemInfo small,.libraryItem small{color:#667085}
.itemDuration{display:grid;gap:4px;justify-items:start;font-size:12px;color:#475467}.itemDuration label{display:grid;grid-template-columns:auto 74px;align-items:center;gap:7px;font-size:12px}.itemDuration input{padding:7px}.itemDuration .link{font-size:11px}.itemActions{display:flex;justify-content:flex-end;gap:5px}.iconAction{width:31px;height:31px;border:1px solid #d0d5dd;background:#fff;border-radius:7px;font-size:17px}.iconAction:hover{background:#f9fafb}
.emptyEditor{min-height:300px;display:grid;place-items:center;align-content:center;gap:7px;color:#667085}.emptyEditor b{color:#344054;font-size:18px}
.mediaLibrary .panelHead small{display:block;color:#667085;margin-top:4px}.libraryItem{display:grid;grid-template-columns:50px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid #eaecf0;border-radius:9px}.libraryItem>div:nth-child(2){display:grid;gap:3px;min-width:0}.libraryItem .secondary{padding:7px 9px;font-size:12px}
.previewOverlay{position:fixed;inset:0;z-index:1200;background:#000;display:grid;place-items:center}.previewStage{position:relative;width:100%;height:100%;display:grid;place-items:center;overflow:hidden}.previewStage>img,.previewStage>video,.previewStage>iframe{width:100%;height:100%;object-fit:contain;border:0;background:#000}.previewHud{position:absolute;left:18px;right:18px;top:18px;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 14px;background:rgba(16,24,40,.82);color:#fff;border-radius:10px}.previewHud>div:first-child{display:grid;gap:3px}.previewHud span{color:#d0d5dd;font-size:13px}.previewControls{display:flex;gap:7px}.previewControls button{width:38px;height:38px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:#fff;border-radius:8px;font-size:24px}.previewTimeline{position:absolute;left:18px;right:18px;bottom:18px;height:7px;background:rgba(255,255,255,.25);border-radius:999px;overflow:hidden}.previewTimeline i{display:block;height:100%;width:0;background:#fff;border-radius:inherit}
@media(max-width:1350px){.playlistWorkspace{grid-template-columns:240px 1fr}.mediaLibrary{grid-column:1/-1;min-height:0}.libraryList{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));max-height:none}.playlistSidebar{min-height:600px}}
@media(max-width:900px){.playlistWorkspace{grid-template-columns:1fr}.playlistSidebar,.playlistEditorPanel{min-height:0}.playlistSelector{max-height:340px}.editorHeader{display:grid}.editorButtons{justify-content:flex-start}.playlistEditorItem{grid-template-columns:25px 25px 50px 1fr 68px}.itemDuration{grid-column:4/5}.itemActions{grid-column:5;grid-row:1/3}.dragHandle{grid-row:1/3}.itemNumber{grid-row:1/3}.itemThumb{grid-row:1/3}}

/* 1.0 — kiosk management */
.kioskTop{margin-bottom:22px}.screensPanel{margin-top:0}.kioskDetails{border-top:1px solid #eaecf0;padding-top:12px}.kioskDetails summary{cursor:pointer;font-weight:700;color:#344054;padding:5px 0}.kioskForm{display:grid;gap:11px;padding:12px 0}.commandGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dangerButton{border:1px solid #fda29b;background:#fff;color:#b42318;border-radius:8px;padding:9px 11px}.hint{display:block;color:#667085;line-height:1.4;margin-top:10px}.releaseForm{padding-bottom:10px}.compactTable table{font-size:12px}.compactTable td{padding:9px 14px}.uploadProgress{height:9px;background:#eaecf0;border-radius:99px;overflow:hidden}.uploadProgress>div{height:100%;background:#6941c6;transition:width .15s ease}.badge.good{background:#ecfdf3;color:#027a48}.sub{display:block;color:#667085;font-weight:400;margin-top:3px}.inlineCheck{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center!important;gap:8px!important}.inlineCheck input{width:auto}.errorText{color:#b42318!important}
@media(max-width:720px){.commandGrid{grid-template-columns:1fr}.kioskTop{grid-template-columns:1fr}.kioskDetails[open]{max-height:none}}

/* Stabilność formularzy i wersje robocze */
.formDraftNotice{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid #e9d7fe;background:#f9f5ff;border-radius:9px;color:#6941c6;font-size:12px}.formDraftNotice span{line-height:1.4}.formActions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.formActions .primary{min-width:170px}@media(max-width:720px){.formDraftNotice{align-items:flex-start;flex-direction:column}.formActions{display:grid;grid-template-columns:1fr 2fr}.formActions button{width:100%}}

/* Campaign management 1.0.2 */
.campaignCard.disabledCampaign{opacity:.72;border-style:dashed;background:#fcfcfd}.campaignCardHeader{align-items:center}.badge.scheduled{background:#eff8ff;color:#175cd3}.campaignActions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;border-top:1px solid #eaecf0;padding-top:13px}.campaignActions .dangerLink{margin-left:auto}.warningButton,.successButton{border:1px solid transparent;border-radius:8px;padding:9px 13px;font-weight:650}.warningButton{background:#fffaeb;border-color:#fedf89;color:#b54708}.successButton{background:#ecfdf3;border-color:#abefc6;color:#067647}.campaignEnabledField{padding:11px 13px;background:#f9fafb;border:1px solid #eaecf0;border-radius:9px}@media(max-width:720px){.campaignActions>*{flex:1}.campaignActions .dangerLink{margin-left:0;flex-basis:100%;padding:8px}}


/* 1.1.4 – login overlap + SVG navigation */
.navIcon{width:19px;height:19px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 19px;color:currentColor}
.navIcon svg{display:block;width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.navLabel{min-width:0}

/* Własne logo logowania pozostaje w normalnym układzie dokumentu i nie może
   nachodzić na nagłówek, opis ani pola formularza. */
.loginCard{align-content:start!important}
.loginCard .loginLogoImage,
.loginCard .loginLogo:has(img){width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;background:transparent!important;color:inherit!important;border-radius:0!important;overflow:visible!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;margin:0 auto 6px!important;position:static!important;inset:auto!important;transform:none!important}
.loginCard .loginLogoImage img,
.loginCard .loginLogo:has(img) img,
.loginCard>img:first-child{display:block!important;width:auto!important;height:auto!important;max-width:100%!important;max-height:165px!important;object-fit:contain!important;margin:0 auto!important;position:static!important;inset:auto!important;transform:none!important}
.loginCard h1{position:static!important;inset:auto!important;transform:none!important;margin:0!important;line-height:1.2!important;overflow-wrap:anywhere}
.loginCard p{position:static!important;inset:auto!important;transform:none!important;margin:-2px 0 3px!important;line-height:1.45!important}
.loginCard label,.loginCard button{position:static!important;inset:auto!important;transform:none!important}
@media(max-width:520px){
  .loginCard{padding:26px 22px!important;gap:15px!important}
  .loginCard .loginLogoImage img,.loginCard .loginLogo:has(img) img,.loginCard>img:first-child{max-height:135px!important}
  .loginCard h1{font-size:28px}
}

/* 1.1.5 – campaign layout polish */
.campaignGrid{
  display:grid;
  grid-template-columns:minmax(400px,440px) minmax(0,1fr);
  gap:24px;
  align-items:start;
}
.campaignGrid>.panel{min-width:0;height:fit-content}
.campaignGrid>.panel:first-child{overflow:visible}
.campaignGrid>.panel:last-child{overflow:hidden}
.campaignGrid .form{padding:20px;min-width:0}
.campaignGrid .formRow{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;min-width:0}
.campaignGrid .formRow>*{min-width:0}
.campaignGrid label,.campaignGrid input,.campaignGrid select{min-width:0;max-width:100%}
.campaignGrid .infoBox{margin-top:2px}
.campaignGrid .panelHead{min-width:0}
.campaignGrid .playlistList{min-width:0;padding:18px}
.campaignGrid .emptyBox{margin:18px;min-height:110px;display:grid;place-items:center;background:#fcfcfd}
.campaignGrid .days{row-gap:7px}
.campaignGrid .formActions{flex-wrap:wrap}
@media(max-width:1280px){
  .campaignGrid{grid-template-columns:1fr}
  .campaignGrid>.panel:first-child{overflow:hidden}
}
@media(max-width:720px){
  .campaignGrid .formRow{grid-template-columns:1fr}
}


/* 1.1.7 – dashboard without proof-of-play reports */
.dashboardStats{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:900px){.dashboardStats{grid-template-columns:1fr}}


/* 1.1.9 – screen editing and Polish orientation labels */
.screenCardActions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.screenOrientation{display:inline-flex;margin-top:6px;padding:3px 8px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:11px;font-weight:650}
#screenEditModal .modalCard{width:min(540px,100%)}
#screenEditModal .modalHead p{max-width:390px;line-height:1.45}
@media(max-width:520px){.screenCardActions{justify-content:flex-start}.screenCard .row{display:grid}.screenCardActions{margin-top:4px}}

/* AJAXIS branding + login */
.brandLogoMark{
  width:58px;
  height:58px;
  flex:0 0 58px;
  padding:4px;
  border-radius:12px;
  background:#111;
  overflow:hidden;
  box-shadow:0 1px 4px rgba(16,24,40,.28);
}
.brandLogoMark img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.brandLogoFallback{
  display:grid;
  place-items:center;
  background:#111;
  color:#d5ad57;
  font-size:17px;
  font-weight:800;
}
.brand>div:last-child{min-width:0}
.brand>div:last-child b{
  font-size:16px;
  line-height:1.2;
  white-space:nowrap;
  letter-spacing:.03em;
}
.brand>div:last-child small{
  font-size:12px;
  line-height:1.35;
  margin-top:2px;
}

.loginCard .loginLogo,
.loginCard .loginLogoImage{
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  background:transparent!important;
  border-radius:0!important;
  overflow:visible!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  margin:0 auto 10px!important;
  position:static!important;
  transform:none!important;
}
.loginCard .loginLogo img,
.loginCard .loginLogoImage img,
.loginCard>img.loginLogoImage,
.loginCard>img:first-child{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:min(100%,320px)!important;
  max-height:145px!important;
  object-fit:contain!important;
  margin:0 auto!important;
  position:static!important;
  transform:none!important;
}
@media(max-width:720px){
  .brandLogoMark{width:50px;height:50px;flex-basis:50px}
  .loginCard .loginLogo img,
  .loginCard .loginLogoImage img,
  .loginCard>img.loginLogoImage,
  .loginCard>img:first-child{max-height:120px!important}
}
