/* Campaign workspace, scoped to the existing ERP shell. */
.campaign-workspace{--cw-teal:#157f80;--cw-ink:#173049;--cw-muted:#7c8ca1;--cw-line:#e3ebf3;color:var(--cw-ink);min-width:0}.campaign-workspace *{box-sizing:border-box}.campaign-workspace .surface{border:1px solid var(--cw-line);border-radius:10px;background:#fff;box-shadow:0 1px 4px #183b4f05}.campaign-workspace svg{width:18px;height:18px;flex:none}.campaign-workspace .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #bbdadc;border-radius:6px;padding:9px 13px;color:var(--cw-teal);background:#fff;box-shadow:none;font:inherit;font-size:12px;font-weight:700;cursor:pointer;line-height:1.4;text-decoration:none}.campaign-workspace .btn.primary{color:#fff;border-color:transparent;background:linear-gradient(110deg,#148884,#136c78)}.campaign-workspace .btn.compact{font-size:11px;padding:7px 10px}.campaign-workspace button:disabled{opacity:.42;cursor:default}.campaign-workspace button:focus-visible,.campaign-workspace input:focus-visible,.campaign-workspace select:focus-visible{outline:3px solid #9ed8d2;outline-offset:2px}.campaign-workspace .cws-text-button{border:0;background:transparent;padding:5px;color:#518e92;font-size:11px;white-space:nowrap}.campaign-workspace select{border:1px solid var(--cw-line);border-radius:6px;background:#fff;min-height:35px;padding:7px 24px 7px 10px;color:#52657e;font:inherit;font-size:11px;width:auto;max-width:100%}.cws-breadcrumb{display:flex;gap:11px;color:var(--cw-muted);font-size:11px;margin-bottom:13px}.cws-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.cws-head h1{font-size:28px;margin:0 0 5px;letter-spacing:-.6px}.cws-head p{margin:0;color:#7d8da1;font-size:13px}.cws-head-actions{display:flex;gap:9px;align-items:center;flex-shrink:0}.cws-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:15px}.cws-stat{display:flex;align-items:center;gap:17px;padding:17px 19px;min-height:102px;text-align:start;color:var(--cw-ink);cursor:pointer;font:inherit}.cws-stat:hover{border-color:#97c8c7;background:linear-gradient(120deg,#fff,#f1fbf8)}.cws-stat-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#e1f7f3;color:var(--cw-teal);flex:none}.cws-stat-icon svg{width:28px;height:28px}.cws-stat-icon.is-amber{background:#fff3de;color:#d78d29}.cws-stat>span:last-child{display:block;min-width:0}.cws-stat>span:last-child>span{display:block;font-size:12px;color:#71839b;font-weight:700}.cws-stat strong{display:block;font-size:25px;font-weight:800;line-height:1.25;margin:3px 0;letter-spacing:-.6px;font-variant-numeric:tabular-nums}.cws-stat small{display:block;font-size:10px;color:#8d9caf;line-height:1.5}.cws-top-grid{display:grid;grid-template-columns:minmax(0,2.35fr) minmax(285px,1fr);gap:15px;margin-bottom:15px;align-items:stretch}.cws-section-head{display:flex;align-items:center;gap:12px;min-height:52px;padding:13px 16px}.cws-section-head h2,.cws-list-head h2{font-size:17px;margin:0;white-space:nowrap}.cws-calendar-toggle{display:flex;background:#f3f7fa;border:1px solid #e8eef4;border-radius:6px;padding:2px}.campaign-workspace .cws-calendar-toggle .btn{border:0;background:transparent;color:#6c7f94;padding:5px 14px;border-radius:4px;font-size:11px}.campaign-workspace .cws-calendar-toggle .btn.active{background:#176f79;color:#fff}.cws-calendar-nav{display:flex;align-items:center;gap:9px;font-size:11px;white-space:nowrap}.campaign-workspace .cws-calendar-nav .btn{padding:2px;min-width:24px;min-height:25px;border-color:#e9eef5;color:#8c9caf;font-size:19px}.cws-legend{margin-left:auto;display:flex;gap:10px;font-size:9px;color:#7b8da2;white-space:nowrap}.cws-legend>span{display:flex;align-items:center;gap:5px}.cws-legend i,.cws-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#1ea6a1;flex:none}.cws-legend .cws-preparing{background:#a79af6}.cws-legend .cws-settlement{background:#ccd5df}.cws-legend .cws-today-dot{background:#7b72e8}.cws-calendar{min-width:0;overflow:hidden}.cws-calendar-scroll{overflow:auto;margin:0 13px 13px;max-height:365px;border:1px solid #e7edf4;border-radius:7px;overscroll-behavior:contain}.cws-calendar-grid{min-width:calc(180px + var(--cws-days)*35px)}.cws-calendar-row{display:grid;grid-template-columns:180px minmax(0,1fr);min-height:42px}.cws-calendar-row+.cws-calendar-row{border-top:1px solid #edf1f6}.campaign-workspace .cws-calendar-name{position:sticky;left:0;z-index:3;display:flex;justify-content:flex-start;align-items:center;gap:8px;border:0;border-right:1px solid #e5edf4;border-radius:0;padding:8px 10px;text-align:start;font-size:11px;background:#fff;color:#28425a;overflow:hidden;line-height:1.25}.cws-calendar-name>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cws-calendar-name small{display:block;color:#8c9aae;font-size:9px;overflow:hidden;text-overflow:ellipsis}.cws-calendar-track{display:grid;grid-template-columns:repeat(var(--cws-days),minmax(0,1fr));min-height:42px;position:relative}.cws-calendar-day,.cws-calendar-cell{grid-row:1;min-width:0;border-right:1px solid #eef2f7;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;font-size:9px;color:#788ba2;min-height:42px}.cws-calendar-day{font-weight:700;background:#fafcfe;gap:2px}.cws-calendar-day.is-weekend,.cws-calendar-cell.is-weekend{background:#fff6f7;color:#c36c73}.cws-calendar-day.is-today,.cws-calendar-cell.is-today{background:#eaf8f6;color:#187d7e}.cws-calendar-day small{border-radius:10px;padding:1px 6px;background:#238783;color:white;font-size:8px}.campaign-workspace .cws-calendar-bar{grid-row:1;z-index:2;align-self:center;min-height:24px;border:0;border-radius:20px;margin:0 4px;padding:4px 8px;font-size:10px;font-weight:700;overflow:hidden;white-space:nowrap;color:white;background:linear-gradient(90deg,#56babb,#5cbab8)}.campaign-workspace .cws-calendar-bar span{font-size:9px;opacity:.9;overflow:hidden;text-overflow:ellipsis}.campaign-workspace .cws-calendar-bar.cws-preparing{background:linear-gradient(90deg,#b6a8f5,#c3bcfb);color:#4e528a}.campaign-workspace .cws-calendar-bar.cws-settlement,.campaign-workspace .cws-calendar-bar.cws-completed{background:#d6dde5;color:#6c7e91}.cws-calendar>footer{padding:0 12px 7px;text-align:right}.cws-tasks .cws-section-head{justify-content:space-between;flex-wrap:wrap}.cws-task-count{display:inline-grid;place-items:center;min-width:23px;height:23px;border-radius:50%;font-size:11px;color:#fff;background:#eaa047;margin-left:5px}.cws-task{display:flex;align-items:center;gap:11px;padding:15px 15px;min-height:75px}.cws-task+.cws-task{border-top:1px solid #edf2f6}.cws-task>div{flex:1;min-width:0}.cws-task-icon{display:grid;place-items:center;background:#fff5e7;color:#db9434;width:38px;height:38px;flex:none;border-radius:50%}.cws-task-icon.cws-task-delayed{background:#ffeaee;color:#d35c70}.cws-task-icon.cws-task-stage,.cws-task-icon.cws-task-settlement{background:#e2f8f4;color:#168d89}.cws-task-label{font-size:10px;display:inline-block;border-radius:15px;padding:3px 7px;background:#fff1dd;color:#c88732}.cws-task-label.cws-task-delayed{background:#ffe9ee;color:#d36474}.cws-task-label.cws-task-settlement,.cws-task-label.cws-task-stage{background:#e1f7f1;color:#27958c}.cws-task p{margin:5px 0 0;color:#7c8da3;font-size:10px;line-height:1.5;overflow-wrap:anywhere}.cws-list{overflow:hidden}.cws-list-head{display:flex;align-items:center;gap:17px;flex-wrap:wrap;padding:14px 15px 0}.cws-tabs{display:flex;gap:3px;align-self:stretch;overflow:auto}.campaign-workspace .cws-tabs .btn{border:0;border-bottom:3px solid transparent;border-radius:0;font-size:11px;white-space:nowrap;padding:11px 8px;color:#7c8ea5;background:transparent}.campaign-workspace .cws-tabs .btn.active{border-bottom-color:#208c8e;color:#17797d}.cws-tabs span{margin-left:3px}.cws-tools{display:flex;gap:7px;margin-left:auto;align-items:center;flex-wrap:wrap}.cws-search{position:relative;display:flex;align-items:center;min-width:210px;flex:1}.cws-search svg{position:absolute;left:10px;width:15px;height:15px;color:#8e9fb2}.cws-search input{min-width:0;width:100%;border:1px solid var(--cw-line);border-radius:6px;min-height:35px;padding:7px 10px 7px 32px;background:#fff;font:inherit;font-size:11px}.cws-tools .btn{font-size:10px;padding:8px 10px;white-space:nowrap}.cws-table-wrap{overflow:auto;width:100%}.cws-list>.cws-table-wrap{padding:0 13px;margin-top:8px}.cws-table,.cws-modal table{width:100%;border-collapse:collapse;min-width:1050px;font-size:11px;color:#526880}.cws-table th,.cws-modal th{padding:11px 8px;text-align:start;background:#f7f9fc;font-size:10px;color:#7e91a7;white-space:nowrap;border-top:1px solid #edf1f6;border-bottom:1px solid #e7edf5}.cws-table td,.cws-modal td{padding:10px 8px;border-bottom:1px solid #edf2f7;vertical-align:middle}.cws-table th:first-child,.cws-table td:first-child{width:28px}.cws-table td>small,.cws-modal td>small{display:block;font-size:9px;color:#8b9bae;margin-top:4px}.cws-table input[type=checkbox]{width:15px;height:15px;accent-color:var(--cw-teal)}.campaign-workspace .cws-person{padding:0;display:flex;justify-content:flex-start;border:0;color:#31465e;background:transparent;box-shadow:none;text-align:start;min-width:180px;max-width:280px;font-size:11px}.cws-person strong{display:block;font-size:11px;overflow-wrap:anywhere}.cws-person small{display:block;color:#8194aa;font-size:10px;font-weight:400;margin-top:3px}.cws-avatar{display:inline-grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#facfdd;color:#b6617b;font-size:10px;font-weight:700;flex:none}.cws-avatar-1{background:#c6e9f7;color:#448aa2}.cws-avatar-2{background:#e4d9f9;color:#8d72aa}.cws-avatar-3{background:#ffe2ba;color:#b88c42}.cws-avatar-4{background:#ccefe5;color:#408c80}.cws-status{display:inline-block;min-width:66px;text-align:center;white-space:nowrap;border-radius:16px;font-weight:700;font-size:10px;padding:4px 10px;background:#e5f6f2;color:#248a84}.cws-status.cws-preparing{background:#ede9fc;color:#7f73bb}.cws-status.cws-settlement{background:#edf1f6;color:#728196}.cws-status.cws-completed{background:#e3f3ee;color:#3b9481}.cws-status.cws-cancelled{background:#fbeceb;color:#b96f6b}.cws-dot{width:7px;height:7px;margin-right:5px}.cws-dot.is-pending{background:#eba344}.cws-nowrap{white-space:nowrap}.cws-money{font-weight:700;white-space:nowrap;color:#38516c}.cws-warning{color:#cf8b39!important}.cws-pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 15px;font-size:10px;color:#8c9cb0;gap:12px}.cws-pagination>div{display:flex;gap:4px;align-items:center}.campaign-workspace .cws-pagination .btn{min-width:25px;padding:4px 6px;border-color:#e7eef4;font-size:10px;color:#94a3b5}.campaign-workspace .cws-pagination .btn.active{background:#246b77;border-color:#246b77;color:#fff}.cws-pagination select{min-height:26px;font-size:9px;padding:4px 20px 4px 6px;margin-right:4px}.cws-stock-summary{display:flex;align-items:center;gap:0;padding:11px 15px;border-top:1px solid #eaf0f5;background:linear-gradient(90deg,#f8fcfc,#fff);flex-wrap:wrap}.campaign-workspace .cws-stock-summary>.btn{border:0;background:transparent;padding:2px 20px 2px 12px;color:#526e85;border-radius:0;font-size:11px;gap:9px}.campaign-workspace .cws-stock-summary>.btn+.btn{border-left:1px solid #dce6ed}.cws-stock-summary .btn>svg{width:23px;height:23px;color:#488b96}.cws-stock-summary .btn>strong{font-size:15px;color:#2e506a}.campaign-workspace .cws-stock-summary>.cws-text-button{margin-left:auto;border:0;color:#428e92;font-size:10px;padding-right:0}.cws-empty{text-align:center;color:#8c9bb0;font-size:12px;padding:30px 15px}.cws-help{font-size:11px;color:#8595a8;line-height:1.6}.cws-loading{padding:25px;display:flex;justify-content:space-between;align-items:center}.cws-modal-layer{position:fixed;inset:0;z-index:1700;display:grid;place-items:center;padding:25px;background:#18313a66;backdrop-filter:blur(3px)}.cws-modal{width:min(100%,1050px);max-height:91vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 75px #12293e33!important}.cws-modal>header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 22px;border-bottom:1px solid var(--cw-line)}.cws-modal h2{font-size:19px;margin:0}.cws-modal-body{padding:15px 22px 22px;overflow:auto;min-height:0}.cws-modal table{min-width:720px;font-size:12px}.cws-modal .cws-task{padding-left:0;padding-right:0}.cws-modal .cws-task .btn{margin-left:auto}.cws-stock-links{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.cws-plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.cws-wide{grid-column:1/-1}.cws-plan-grid input,.cws-plan-grid select,.cws-plan-grid textarea{width:100%;border:1px solid #d7e3ed;border-radius:6px;padding:9px;font:inherit;font-size:12px;background:#fff}.cws-plan-grid .field{display:grid;gap:6px;color:#6b8098;font-size:12px}.cws-modal form>footer{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.cws-form-error{color:#b44f55;font-size:12px}.cws-form-error:empty{display:none}.campaign-workspace .crm-country-pair{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.campaign-workspace .crm-country{display:inline-flex;align-items:center;gap:5px;font-size:10px;white-space:nowrap}.campaign-workspace .crm-country>span{font-size:15px}
@media(max-width:1550px){.cws-list-head{gap:10px}.cws-tools{flex:1 1 100%;margin:2px 0 5px}.cws-search{min-width:200px}.cws-top-grid{grid-template-columns:minmax(0,2fr) minmax(270px,1fr)}.cws-section-head{flex-wrap:wrap;gap:8px}.cws-legend{font-size:8px;gap:8px}.cws-stat{padding:15px 14px;gap:11px}.cws-stat strong{font-size:22px}.cws-stat-icon{width:41px;height:41px}.cws-head-actions .btn{font-size:11px}.cws-stat small{font-size:9px}.cws-calendar-name{font-size:10px}}
@media(max-width:1150px){.cws-top-grid{grid-template-columns:minmax(0,1fr)}.cws-tasks .cws-task{min-height:65px}.cws-tasks .cws-section-head{flex-wrap:nowrap}.cws-head{align-items:flex-start}.cws-head-actions{flex-wrap:wrap;justify-content:flex-end}.cws-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cws-stock-summary{gap:12px}.campaign-workspace .cws-stock-summary>.btn{padding-left:8px;padding-right:12px}.cws-calendar-grid{min-width:calc(170px + var(--cws-days)*34px)}.cws-calendar-row{grid-template-columns:170px minmax(0,1fr)}}
@media(max-width:640px){.cws-head{flex-direction:column;gap:12px}.cws-head h1{font-size:24px}.cws-head p{font-size:11px;line-height:1.6}.cws-head-actions{width:100%;justify-content:flex-start;gap:7px}.cws-head-actions select{flex-basis:100%}.cws-head-actions .btn{flex:1}.cws-stat-grid{gap:8px}.cws-stat{padding:12px 10px;gap:8px;min-height:98px}.cws-stat strong{font-size:18px}.cws-stat>span:last-child>span{font-size:10px}.cws-stat small{font-size:8px}.cws-stat-icon{width:30px;height:30px}.cws-stat-icon svg{width:20px;height:20px}.cws-section-head{padding:12px;gap:10px}.cws-section-head h2,.cws-list-head h2{font-size:16px}.cws-legend{margin-left:0;flex-basis:100%}.cws-calendar-nav{margin-left:auto}.cws-tasks .cws-section-head{flex-wrap:wrap}.cws-task{padding:13px 12px;gap:9px}.cws-task .btn.compact{font-size:9px;padding:7px}.cws-task p{font-size:9px}.cws-task-icon{width:30px;height:30px}.cws-list-head{padding:13px 11px 0}.cws-tabs{flex-basis:100%}.campaign-workspace .cws-tabs .btn{font-size:10px;padding:10px 7px}.cws-tools{display:grid;grid-template-columns:1fr 1fr;width:100%}.cws-search{grid-column:1/-1;min-width:0}.cws-tools>.btn{grid-column:1/-1}.cws-pagination{flex-wrap:wrap}.cws-pagination>div{flex-wrap:wrap}.cws-stock-summary{gap:13px;padding:14px 10px}.campaign-workspace .cws-stock-summary>.btn{border:0!important;flex:1 1 45%;justify-content:flex-start;padding:0;font-size:10px}.cws-stock-summary .btn>strong{font-size:13px}.campaign-workspace .cws-stock-summary>.cws-text-button{flex-basis:100%;justify-content:flex-end}.cws-modal-layer{padding:10px}.cws-modal{max-height:94vh}.cws-modal>header{padding:14px}.cws-modal-body{padding:12px 14px 16px}.cws-plan-grid{grid-template-columns:1fr}.cws-wide{grid-column:auto}.cws-calendar-row{grid-template-columns:140px minmax(0,1fr)}.cws-calendar-grid{min-width:calc(140px + var(--cws-days)*34px)}}
@media(prefers-reduced-motion:reduce){.campaign-workspace *{scroll-behavior:auto!important}}

/* Let ERP shell grid shrink; keep wide tables/calendars inside their scrollers. */
.app:has(.campaign-workspace,.influencer-crm){grid-template-columns:minmax(0,1fr)}
.shell:has(.campaign-workspace,.influencer-crm){min-width:0;width:100%;max-width:100%}
.campaign-workspace,.campaign-workspace .surface,.campaign-workspace .cws-list-head,.campaign-workspace .cws-tools{min-width:0;max-width:100%}
.campaign-workspace .cws-table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
@media(max-width:640px){.campaign-workspace .cws-head-actions{flex-shrink:1}.campaign-workspace .cws-stat strong{overflow-wrap:anywhere}.campaign-workspace .cws-task{flex-wrap:wrap}.campaign-workspace .cws-task>.btn{margin-left:39px}.campaign-workspace .cws-tabs{overflow-x:auto;max-width:100%}.campaign-workspace .cws-tools select{width:100%;min-width:0}.campaign-workspace .cws-calendar-nav{margin-left:0}.campaign-workspace .cws-stock-summary>.btn{flex-wrap:wrap}.bulk-modal{max-width:calc(100vw - 20px);width:100%}.bulk-footer>.btn{min-width:0;white-space:normal}}
