:root {
  --ink: #171a20;
  --muted: #6f747c;
  --line: #e7e5e1;
  --paper: #fff;
  --canvas: #f6f5f2;
  --red: #e4352d;
  --red-dark: #bf251f;
  --blue: #146b9c;
  --blue-soft: #e7f2f8;
  --green: #277a57;
  --amber: #b96a09;
  --purple: #7454ab;
  --brand-primary: #e4352d;
  --brand-secondary: #146b9c;
  --brand-canvas: #f6f5f2;
  --brand-sidebar: #11151b;
  --brand-surface: #fff;
  --brand-nav-picker: #2b3742;
  --brand-nav-picker-text: #fff;
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--brand-canvas); font-family: "DM Sans", sans-serif; font-size: 14px; transition: background-color .28s ease; }
body[data-brand="dominos"] { --brand-primary: #006491; --brand-secondary: #e31837; --brand-canvas: #eaf4f9; --brand-sidebar: #07364d; --brand-surface: #f7fbfd; --brand-nav-picker: #0b789f; --brand-nav-picker-text: #fff; }
body[data-brand="costa"] { --brand-primary: #8f1733; --brand-secondary: #c7a36a; --brand-canvas: #f6ecef; --brand-sidebar: #4b0e1d; --brand-surface: #fcf7f8; --brand-nav-picker: #76243b; --brand-nav-picker-text: #fff; }
body[data-brand="black-olive"] { --brand-primary: #171916; --brand-secondary: #c9a84c; --brand-canvas: #f3eedc; --brand-sidebar: #0d0f0d; --brand-surface: #fbf8ef; --brand-nav-picker: #c9a84c; --brand-nav-picker-text: #171916; }
button, input { font: inherit; }
button { color: inherit; }
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.channel-icon { width: 13px; height: 13px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 224px minmax(900px, 1fr); transition: grid-template-columns .24s ease; }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 27px 18px 18px; overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; scrollbar-color: #ffffff38 transparent; background: var(--brand-sidebar); color: #fff; display: flex; flex-direction: column; transition: padding .24s ease, background-color .28s ease; }
.sidebar::-webkit-scrollbar { width: 6px; }.sidebar::-webkit-scrollbar-thumb { border-radius: 6px; background: #ffffff38; }
.brand { color: white; text-decoration: none; display: flex; align-items: center; gap: 11px; padding: 0 9px 27px; font-weight: 700; font-size: 21px; letter-spacing: -.7px; }
.brand-name { min-width: 0; line-height: 1.05; }.brand-name small { display: block; margin-top: 4px; color: #aeb3bb; font-size: 8px; font-weight: 600; letter-spacing: .35px; text-transform: uppercase; }
.racz-logo { width: 38px; height: 38px; flex: 0 0 auto; object-fit: contain; border-radius: 50%; }
.brand-mark { position: relative; display: grid; width: 31px; height: 31px; border-radius: 7px; background: linear-gradient(135deg, #176b9b 0 49%, #e4352d 50%); transform: rotate(45deg); box-shadow: 0 0 0 2px #fff; }
.brand-mark i { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: white; }
.brand-mark i:first-child { left: 7px; top: 7px; }
.brand-mark i:last-child { right: 7px; bottom: 7px; }
.sidebar-toggle { position: fixed; z-index: 20; left: 211px; top: 72px; width: 25px; height: 25px; display: grid; place-items: center; padding: 0 0 2px; border: 1px solid #343a43; border-radius: 50%; color: #d2d5da; background: #20262e; box-shadow: 0 2px 7px #0003; cursor: pointer; font-size: 18px; line-height: 1; transition: left .24s, transform .24s, background .2s; }
.sidebar-toggle:hover { background: #303741; }
.main-nav { display: flex; flex: 0 0 auto; flex-direction: column; gap: 5px; margin-bottom: 12px; overflow: visible; }
.main-nav p { color: #777e89; text-transform: uppercase; letter-spacing: 1.2px; font-size: 10px; font-weight: 700; margin: 15px 11px 4px; }
.main-nav a { display: flex; align-items: center; gap: 12px; min-height: 42px; padding: 0 12px; color: #aeb3bb; text-decoration: none; border-radius: 8px; font-weight: 500; transition: .2s; }
.main-nav a:hover { color: white; background: #1c222b; }
.main-nav a.active { background: #ffffff12; color: white; box-shadow: inset 3px 0 var(--brand-secondary); }
.main-nav em { margin-left: auto; font-style: normal; color: #777e89; font-size: 12px; }
.nav-icon { font-size: 18px; width: 18px; text-align: center; }
.sidebar-note { flex: 0 0 auto; margin-top: auto; padding: 16px; background: #1b2028; border: 1px solid #2c323c; border-radius: 10px; }
.sidebar-note span, .sidebar-note small { display: block; color: #8f969f; font-size: 11px; }
.sidebar-note strong { display: block; margin: 5px 0 10px; font-size: 13px; }
.progress { height: 4px; background: #353b44; overflow: hidden; border-radius: 10px; margin-bottom: 8px; }
.progress i { display: block; width: 84%; height: 100%; background: var(--brand-secondary); }
.brand-approval-summary { display: grid; gap: 12px; margin-top: 13px; }
.brand-approval-row { display: grid; grid-template-columns: 26px minmax(0, 1fr); align-items: center; gap: 9px; }
.brand-approval-row > img, .brand-approval-logo-fallback { width: 26px; height: 26px; object-fit: contain; border-radius: 7px; background: #fff; }
.brand-approval-logo-fallback { display: grid; place-items: center; color: #9ba1aa; font-size: 10px; }
.brand-approval-detail { min-width: 0; }
.brand-approval-detail > span { display: flex; align-items: baseline; justify-content: space-between; gap: 5px; color: #fff; }
.brand-approval-detail b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.brand-approval-detail em { flex: 0 0 auto; color: #a6adb6; font-size: 9px; font-style: normal; }
.brand-approval-detail > i { display: block; height: 3px; margin-top: 5px; overflow: hidden; border-radius: 4px; background: #353b44; }
.brand-approval-detail > i > u { display: block; height: 100%; min-width: 0; border-radius: inherit; text-decoration: none; }
.profile { display: flex; flex: 0 0 auto; align-items: center; gap: 9px; margin-top: 14px; padding: 11px 7px 0; border-top: 1px solid #292e36; }
.avatar { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--red); font-weight: 700; font-size: 11px; }
.profile div:nth-child(2) { min-width: 0; }
.profile strong, .profile span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.profile strong { font-size: 11px; }
.profile span { color: #777e89; font-size: 9px; margin-top: 2px; }
.profile button { margin-left: auto; color: #777e89; background: none; border: 0; cursor: pointer; }
.profile-actions { margin-left: auto; display: flex; align-items: center; gap: 4px; }.profile-actions form { margin: 0; }.profile-actions a, .profile-actions button { width: 25px; height: 25px; display: grid; place-items: center; margin: 0; padding: 0; border: 0; border-radius: 5px; color: #858b94; background: transparent; text-decoration: none; cursor: pointer; }.profile-actions a:hover, .profile-actions button:hover { color: white; background: #ffffff12; }
.app-shell.sidebar-collapsed { grid-template-columns: 72px minmax(900px, 1fr); }
.sidebar-collapsed .sidebar { padding-inline: 10px; }
.sidebar-collapsed .brand { justify-content: center; padding-inline: 0; }
.sidebar-collapsed .brand-name,
.sidebar-collapsed .main-nav p,
.sidebar-collapsed .nav-label,
.sidebar-collapsed .main-nav em,
.sidebar-collapsed .sidebar-note,
.sidebar-collapsed .profile > div:nth-child(2),
.sidebar-collapsed .profile > button { display: none; }
.sidebar-collapsed .main-nav a { justify-content: center; padding-inline: 0; }
.sidebar-collapsed .profile { justify-content: center; }
.sidebar-collapsed .sidebar-toggle { transform: rotate(180deg); }
.sidebar-collapsed .sidebar-toggle { left: 59px; }

main { min-width: 0; }
.topbar { height: 108px; background: var(--brand-surface); border-bottom: 1px solid var(--line); padding: 27px 32px; display: flex; align-items: center; justify-content: space-between; transition: background-color .28s ease; }
.eyebrow { margin: 0 0 4px; color: #858990; font-size: 11px; font-weight: 600; }
.eyebrow span { margin: 0 4px; color: #c3c5c8; }
h1 { margin: 0; font: 650 28px/1.1 "Fraunces", serif; letter-spacing: -.6px; }
.top-actions { display: flex; align-items: center; gap: 9px; }
.pdf-export-button { height: 39px; padding: 0 13px; border: 1px solid #cfd9df; border-radius: 8px; color: #225d7d; background: #f2f7fa; cursor: pointer; font-weight: 700; }.pdf-export-button:hover { color: white; border-color: var(--blue); background: var(--blue); }
.primary-button { border: 0; border-radius: 8px; padding: 11px 16px; color: white; background: var(--brand-primary); font-weight: 700; cursor: pointer; box-shadow: 0 2px 4px #0002; }
.primary-button:hover { filter: brightness(.9); }
.context-bar { padding: 19px 32px 16px; display: flex; justify-content: space-between; align-items: center; }
.period-control, .context-actions { display: flex; align-items: center; gap: 8px; }
.period-control > button { height: 36px; border: 1px solid #dddcd8; background: white; cursor: pointer; }
.period-control > button { min-width: 36px; }
.period-control > button:first-child { border-radius: 7px 0 0 7px; margin-right: -8px; border-right: 0; }
.period-control > button:nth-child(2) { padding: 0 13px; }
.period-control > button:nth-child(3) { border-radius: 0 7px 7px 0; margin-right: 8px; border-left: 0; }
.period-control div { display: flex; flex-direction: column; min-width: 150px; }
.period-control strong { font-size: 16px; }
.period-control span { color: var(--muted); font-size: 10px; margin-top: 2px; }
.view-toggle { display: flex; padding: 3px; border: 1px solid #dddcd8; background: white; border-radius: 8px; }
.view-toggle button { height: 28px; padding: 0 12px; border: 0; background: transparent; border-radius: 5px; color: var(--muted); cursor: pointer; font-size: 12px; }
.view-toggle button.active { background: #22262d; color: white; }
.notice { position: relative; margin: 0 32px 16px; min-height: 55px; padding: 10px 44px 10px 12px; border: 1px solid #f0d7b8; border-left: 3px solid #db8b2c; background: #fffaf2; border-radius: 7px; display: flex; align-items: center; gap: 11px; }
.notice.hidden { display: none; }
.notice-icon { width: 27px; height: 27px; display: grid; place-items: center; flex: 0 0 auto; color: #a85d08; background: #ffe9c9; border-radius: 50%; font-weight: 800; }
.notice div:nth-child(2) strong, .notice div:nth-child(2) span { display: block; }
.notice div:nth-child(2) strong { font-size: 12px; }
.notice div:nth-child(2) span { color: #8a704e; font-size: 10px; margin-top: 2px; }
.notice > button:not(.notice-close) { margin-left: auto; color: #9b5708; background: transparent; border: 0; font-weight: 700; font-size: 11px; cursor: pointer; }
.notice-close { position: absolute; right: 12px; top: 17px; border: 0; background: none; color: #9c8b75; cursor: pointer; }

.workspace { padding: 0 32px 32px; display: grid; grid-template-columns: minmax(650px, 1fr); gap: 16px; align-items: start; }
.calendar-card, .inspector { background: white; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 2px 12px rgba(25, 28, 31, .035); overflow: hidden; }
.print-calendar-header { display: none; }
.legend-row { min-height: 70px; padding: 0 20px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--line); }
.legend, .markers { display: flex; align-items: center; gap: 9px; }
.legend-item { min-height: 38px; padding: 9px 11px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid transparent; background: #f8f9f9; color: #777c82; font-size: 12px; font-weight: 600; cursor: pointer; border-radius: 7px; }
.legend-item:hover { border-color: #dfe2e3; background: white; }
.legend-item .channel-icon { width: 17px; height: 17px; }
.legend-item:not(.selected) { opacity: .35; }
.legend-item.email { color: var(--blue); }.legend-item.sms { color: var(--red); }.legend-item.push { color: var(--purple); }.legend-item.radio { color: #a35e07; }.legend-item.leaflet { color: #21725d; }.legend-item.menu { color: #565d65; }
.markers { gap: 16px; padding-left: 22px; border-left: 1px solid #e1e2e2; color: #71777d; font-size: 11px; font-weight: 600; }
.markers > span { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.markers > button { min-height: 36px; padding: 0 12px; border: 1px solid #d3d6d7; border-radius: 7px; color: #4f5961; background: white; cursor: pointer; font-size: 10px; font-weight: 700; white-space: nowrap; }
.markers > button:hover { color: var(--blue); border-color: #b8d1dd; background: #f0f8fb; }
.holiday-marker { width: 4px; height: 18px; border-radius: 2px; background: var(--red); }
.pay-marker, .event-marker { display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; font-style: normal; font-size: 10px; }
.pay-marker { background: #e9f4eb; color: var(--green); }.event-marker { background: #fff0cf; color: var(--amber); }
.calendar-grid { display: grid; grid-template-columns: 46px minmax(174px, 1.55fr) repeat(7, minmax(84px, 1fr)); }
.workspace-load-error { grid-column: 1 / -1; padding: 48px 24px; color: #9a2721; background: #fdeceb; text-align: center; font-size: 12px; font-weight: 700; }
.calendar-head { height: 42px; display: grid; place-items: center; color: #898c91; border-bottom: 1px solid var(--line); font-size: 10px; text-transform: uppercase; letter-spacing: .7px; font-weight: 700; }
.calendar-head.week-label { color: #b4b5b7; background: #fafaf8; }
.week-number { min-height: 148px; display: flex; flex-direction: column; align-items: center; padding-top: 18px; color: #a1a4a8; background: #fafaf8; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 9px; }
.week-number strong { color: #686d72; font-size: 13px; margin-top: 3px; }
.week-number small { margin-top: 6px; color: #a3a6aa; font-size: 6px; text-align: center; }
.week-add-campaign { width: 23px; height: 23px; margin-top: 11px; display: grid; place-items: center; padding: 0 0 1px; border: 1px solid #b8d1dd; border-radius: 50%; color: var(--blue); background: white; cursor: pointer; font-size: 15px; line-height: 1; }
.week-add-campaign:hover, .week-add-campaign:focus-visible { color: white; background: var(--blue); }
.campaign-cell { min-height: 148px; padding: 12px; display: flex; flex-direction: column; justify-content: center; gap: 10px; background: #f2f1ee; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.empty-campaign-cell { color: #a1a4a8; font-size: 8px; text-align: center; }
.week-campaign { position: relative; width: 100%; min-height: 112px; display: flex; flex-direction: column; justify-content: space-between; padding: 14px 14px 13px 18px; border-left: 9px solid #90969d; border-radius: 8px; color: white; background: #555c65; text-align: left; overflow: hidden; cursor: pointer; transition: transform .15s, background .15s, box-shadow .15s; }
.week-campaign:hover { transform: translateY(-1px); filter: brightness(.94); }
.week-campaign:focus-visible { outline: 3px solid #77b9dc; outline-offset: 2px; }
.week-campaign.approved { border-left-color: #45c384; background: linear-gradient(90deg, #287052 0, #505d61 38%); }.week-campaign.partial { border-left-color: #f0a72f; background: linear-gradient(90deg, #7a5a25 0, #585d62 38%); }.week-campaign.pending { border-left-color: #ef5149; background: linear-gradient(90deg, #783f3f 0, #585c63 38%); }
.week-campaign.selected { box-shadow: 0 0 0 2px #242a31; }
.week-campaign-main { width: 100%; padding: 0; display: block; overflow: hidden; border: 0; color: white; background: transparent; text-align: left; cursor: pointer; }
.campaign-card-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 10px; }
.campaign-card-heading > strong { min-width: 0; display: -webkit-box; overflow: hidden; font-size: 14px; line-height: 1.3; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.readiness-badge { padding: 5px 7px; flex: 0 0 auto; border-radius: 11px; color: #dce0e3; background: #ffffff12; font-style: normal; font-size: 8px; line-height: 1.2; font-weight: 800; text-transform: uppercase; letter-spacing: .3px; white-space: nowrap; }
.readiness-badge.approved { color: #b2efd0; background: #21704d55; }.readiness-badge.partial { color: #ffda9d; background: #835a1a55; }.readiness-badge.pending { color: #ffc0bb; background: #843f3955; }
.deal-proposition { display: -webkit-box; margin-top: 8px; overflow: hidden; color: #f1f2f3; font-size: 11px; line-height: 1.4; font-weight: 600; white-space: normal; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.week-campaign-meta { display: flex; align-items: center; gap: 8px; margin-top: 14px; color: #e8eaec; font-size: 10px; line-height: 1.3; white-space: nowrap; }
.week-campaign-meta > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.exclusion-trigger { margin-left: auto; min-height: 25px; padding: 4px 7px; flex: 0 0 auto; border: 1px solid #ffffff24; border-radius: 5px; color: #fff1d4; background: #ffffff14; cursor: pointer; font-size: 9px; font-weight: 700; text-decoration: none; }
.exclusion-trigger:hover { color: white; background: #ffffff2c; }
.day { position: relative; min-height: 148px; padding: 10px 6px 6px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; overflow: hidden; }
.day.sunday { border-right: 0; }
.day.muted { background: #fbfbf9; color: #b5b6b8; }
.day.today { background: #fffdf9; box-shadow: inset 0 0 0 1px #edc894; }
.day.bank-holiday { background: #fbe7e9; box-shadow: inset 0 4px #d9444d; }
.day.pay-day { background: #fff0cb; box-shadow: inset 0 4px #d99412; }
.day.special-day { background: #e5f1f8; box-shadow: inset 0 4px #277ca8; }
.day.birthday-day { background: #f3ebf8; box-shadow: inset 0 4px #8657a8; }
.day.inactive-campaign-day { color: #a7aaad; background: #f0f1f1; box-shadow: none; }
.day.inactive-campaign-day .date-number { opacity: .72; }
.day.inactive-campaign-day .cell-add-activity { display: none; }
.date-line { display: flex; justify-content: space-between; align-items: center; min-height: 20px; margin: 0 2px 9px; font-size: 12px; font-weight: 700; }
.day:has(.day-marker) .date-line { padding-right: 21px; }
.cell-add-activity { position: absolute; z-index: 2; right: 5px; top: 5px; width: 22px; height: 22px; display: grid; place-items: center; padding: 0 0 1px; border: 1px solid #b8d1dd; border-radius: 5px; color: var(--blue); background: #f0f8fb; box-shadow: 0 1px 3px #0001; cursor: pointer; font-size: 15px; font-weight: 500; opacity: 0; transform: scale(.86); transition: opacity .14s, transform .14s, background .14s; }
.day:hover .cell-add-activity, .cell-add-activity:focus-visible { opacity: 1; transform: scale(1); }
.cell-add-activity:hover { color: white; background: var(--blue); }
.cell-add-activity:disabled { display: none; }
@media (hover: none) { .cell-add-activity { opacity: 1; transform: scale(1); } }
.today .date-number { display: grid; place-items: center; width: 20px; height: 20px; margin: -4px; color: white; background: var(--red); border-radius: 50%; }
.day-marker { padding: 3px 5px; border-radius: 4px; font-size: 8px; color: var(--muted); font-weight: 700; white-space: nowrap; }
.day-marker.pay { color: #8f5803; background: #f7d78c; }.day-marker.special { color: #17678f; background: #c7e3f1; }.day-marker.holiday-label { color: #ac2c35; background: #f3c4c8; }
.day-marker.birthday { color: #673f88; background: #e8d9f2; }
.day-markers { min-width: 0; display: flex; align-items: flex-end; flex-direction: column; gap: 2px; }
.day-markers .day-marker { max-width: 72px; overflow: hidden; text-overflow: ellipsis; }
.more-markers { color: #777c82; font-size: 7px; }
.calendar-event { position: relative; width: 100%; min-height: 39px; display: flex; align-items: stretch; margin-bottom: 5px; border: 0; border-left: 3px solid; border-radius: 5px; text-align: left; font-size: 9px; font-weight: 600; white-space: nowrap; overflow: visible; }
.calendar-event-open { min-width: 0; flex: 1; display: flex; align-items: center; gap: 7px; padding: 6px 4px 6px 7px; overflow: hidden; border: 0; color: inherit; background: transparent; cursor: pointer; text-align: left; }
.calendar-event .channel-icon { width: 16px; height: 16px; }
.calendar-event .activity-copy { min-width: 0; flex: 1; overflow: hidden; }
.activity-copy strong, .activity-copy small { display: block; overflow: hidden; text-overflow: ellipsis; }
.activity-copy strong { font-size: 10px; line-height: 1.1; }
.activity-copy small { margin-top: 3px; opacity: .9; font-size: 8px; line-height: 1.1; font-weight: 700; }
.calendar-event.email { color: #176b98; border-color: #176b98; background: #e9f4f9; }
.calendar-event.sms { color: #b7312b; border-color: #d54138; background: #faeceb; }
.calendar-event.push { color: #654892; border-color: #7a5aad; background: #f0ebf7; }
.calendar-event.radio { color: #9a5a08; border-color: #d78519; background: #fff1d9; }
.calendar-event.leaflet { color: #176f59; border-color: #27856b; background: #e5f4ef; }
.calendar-event.menu { color: #515961; border-color: #69717a; background: #eceff1; }
.calendar-event[draggable="true"] { cursor: grab; }.calendar-event.dragging { opacity: .45; cursor: grabbing; }
.calendar-event-action-trigger { width: 27px; flex: 0 0 auto; padding: 0 3px 3px; border: 0; border-left: 1px solid #0000000d; border-radius: 0 5px 5px 0; color: inherit; background: #ffffff2e; cursor: pointer; font-size: 17px; font-weight: 800; line-height: 1; }.calendar-event-action-trigger:hover { background: #ffffff80; }
.calendar-event-menu { position: absolute; z-index: 30; right: -2px; top: calc(100% + 7px); width: 148px; display: flex; flex-direction: column; gap: 0; padding: 6px; overflow: hidden; border: 2px solid #343a40; border-radius: 8px; color: #252a30; background: white; box-shadow: 0 12px 28px #0005; white-space: normal; }.calendar-event-menu::before { content: ""; position: absolute; right: 10px; top: -7px; width: 11px; height: 11px; border-top: 2px solid #343a40; border-left: 2px solid #343a40; background: white; transform: rotate(45deg); }.calendar-event-menu[hidden] { display: none; }.calendar-event-menu button { position: relative; z-index: 1; width: 100%; min-height: 38px; display: block; padding: 0 11px; border: 0; border-bottom: 1px solid #e3e1dc; border-radius: 0; color: #252a30; background: white; cursor: pointer; font-size: 11px; font-weight: 700; text-align: left; }.calendar-event-menu button:first-child { border-radius: 4px 4px 0 0; }.calendar-event-menu button:last-child { border-bottom: 0; border-radius: 0 0 4px 4px; }.calendar-event-menu button:hover { color: #155f86; background: #eaf4f9; }.calendar-event-menu button.danger { color: #b3322b; }.calendar-event-menu button.danger:hover { color: white; background: #c43a33; }.calendar-event-menu button:disabled { color: #aaa; background: #f5f4f1; cursor: not-allowed; }
.calendar-event-menu.open-up { top: auto; bottom: calc(100% + 7px); box-shadow: 0 -12px 28px #0005; }
.calendar-event-menu.open-up::before { top: auto; bottom: -7px; border: 0; border-right: 2px solid #343a40; border-bottom: 2px solid #343a40; }
.day:has(.calendar-event-menu:not([hidden])) { z-index: 5; overflow: visible; }
.day.activity-drop-target { background: #eef8fc; box-shadow: inset 0 0 0 3px #55a5ca; }
.more-events { margin-left: 4px; color: #85898f; font-size: 8px; }
.calendar-grid.week-view .day { min-height: 410px; }
.calendar-grid.week-view .week-number { min-height: 410px; }
.calendar-grid.week-view .campaign-cell { min-height: 410px; justify-content: flex-start; padding-top: 14px; }
.calendar-row-item[hidden] { display: none !important; }

.inspector { padding: 19px; }
.inspector-head { display: flex; justify-content: space-between; align-items: flex-start; }
.inspector-head p { margin: 0 0 4px; color: #8a8e94; font-size: 9px; text-transform: uppercase; letter-spacing: .7px; font-weight: 700; }
.inspector h2 { margin: 0; font: 650 19px/1.2 "Fraunces", serif; }
.inspector-head button { margin: -7px -7px 0 0; border: 0; background: none; color: #9a9da1; cursor: pointer; font-size: 20px; }
.campaign-status { display: inline-block; margin-top: 9px; padding: 4px 7px; background: #eaf4ed; color: var(--green); border-radius: 10px; font-size: 9px; font-weight: 700; }
.campaign-status.partial { color: #965706; background: #fff0d8; }.campaign-status.pending { color: #a3322b; background: #fae9e8; }
.campaign-copy { margin: 13px 0; color: #70747a; font-size: 10px; line-height: 1.55; }
.campaign-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 12px; background: #f8f7f4; border-radius: 7px; }
.campaign-meta span, .campaign-meta strong { display: block; }
.campaign-meta span { color: #96999d; font-size: 8px; text-transform: uppercase; letter-spacing: .5px; }
.campaign-meta strong { margin-top: 3px; font-size: 9px; }
.meta-link { margin-top: 2px; padding: 0; border: 0; color: #a15b08; background: none; cursor: pointer; font-size: 9px; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.event-heading { display: flex; justify-content: space-between; align-items: center; margin: 17px 0 8px; }
.event-heading h3 { margin: 0; font-size: 11px; }
.event-heading span { color: #999da1; font-size: 9px; }
.event-heading button { padding: 0; border: 0; background: none; color: var(--blue); cursor: pointer; font-size: 9px; font-weight: 700; }
.activity-heading-actions { display: flex; align-items: center; gap: 8px; }.activity-heading-actions button { padding: 4px 6px; border: 1px solid #c9dce6; border-radius: 4px; background: #edf6fa; }
.event-card { position: relative; width: 100%; min-height: 55px; margin-bottom: 7px; padding: 0; display: grid; grid-template-columns: 1fr auto; align-items: center; border: 1px solid var(--line); border-radius: 6px; background: white; text-align: left; }
.event-card:hover { background: #faf9f7; border-color: #cfcdc9; }
.activity-preview-button { min-width: 0; padding: 10px 72px 9px 34px; border: 0; background: transparent; text-align: left; cursor: pointer; }
.event-card > i { position: absolute; left: 8px; top: 10px; width: 18px; height: 18px; display: grid; place-items: center; border-radius: 4px; font-style: normal; pointer-events: none; }
.event-card > i .channel-icon { width: 11px; height: 11px; }
.event-card.email > i { background: var(--blue-soft); color: var(--blue); }.event-card.sms > i { background: #fae9e8; color: var(--red); }.event-card.push > i { background: #eee9f6; color: var(--purple); }
.event-card.radio > i { background: #fff0d7; color: #a35e07; }.event-card.leaflet > i { background: #e4f3ee; color: #21725d; }.event-card.menu > i { background: #ebedef; color: #565d65; }
.activity-preview-button strong, .activity-preview-button span { display: block; }
.activity-preview-button strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.activity-preview-button span { margin-top: 2px; color: #898d92; font-size: 8px; }
.event-card > b { position: absolute; right: 8px; top: 8px; color: var(--green); font-size: 7px; }
.activity-card-actions { position: absolute; right: 6px; bottom: 6px; display: flex; gap: 3px; }
.activity-card-actions button { width: 22px; height: 20px; display: grid; place-items: center; padding: 0; border: 1px solid #dddcd9; border-radius: 4px; color: #687078; background: white; cursor: pointer; font-size: 9px; }
.activity-card-actions button:hover { color: var(--blue); border-color: #afcad8; }.activity-card-actions .delete-activity:hover { color: var(--red); border-color: #e9b8b5; }.activity-card-actions .copy-activity:hover { color: var(--green); border-color: #a9d3bd; }
.activity-card-actions button:disabled { color: #b4b6b9; background: #f3f3f2; cursor: not-allowed; }
.exclusion-block { margin-top: 3px; }
.approval-block { margin-top: 3px; }
.approval-row { position: relative; display: grid; grid-template-columns: 25px 1fr auto; gap: 7px; align-items: center; padding: 8px; margin-bottom: 5px; border: 1px solid var(--line); border-radius: 6px; }
.approval-icon { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; font-size: 9px; font-weight: 800; }
.approval-row.signed .approval-icon { color: var(--green); background: #e7f3eb; }.approval-row.pending .approval-icon { color: #a35c06; background: #fff0d9; }
.approval-row p { margin: 0; }.approval-row strong, .approval-row small { display: block; }.approval-row strong { font-size: 9px; }.approval-row small { margin-top: 2px; color: #8b8f94; font-size: 7px; }
.toggle-approval { padding: 4px 6px; border: 1px solid #d5d8d6; border-radius: 4px; color: #526068; background: white; cursor: pointer; font-size: 7px; font-weight: 700; }
.approval-row.pending .toggle-approval { color: #176b98; border-color: #b8d1dd; background: #edf6fa; }
.toggle-approval:hover { border-color: #9db9c7; }
.event-heading button:disabled, .secondary-button:disabled, #editContent:disabled, .inline-reinclude:disabled, .reinclude-button:disabled { opacity: .48; cursor: not-allowed; }
.exclusion-list { display: flex; flex-wrap: wrap; gap: 5px; }
.exclusion-list span { padding: 5px 7px; border-radius: 4px; color: #93550b; background: #fff0dc; font-size: 8px; font-weight: 600; }
.exclusion-list span::before { content: "−"; margin-right: 4px; font-weight: 800; }
.exclusion-list span.no-exclusions { color: var(--green); background: #e9f4ed; }
.exclusion-list span.no-exclusions::before { content: "✓"; }
.audit-preview { margin-top: 15px; padding-top: 1px; border-top: 1px solid var(--line); }
.audit-item { display: flex; align-items: center; gap: 8px; margin: 9px 0; }
.avatar.small { width: 25px; height: 25px; background: #4a515a; font-size: 8px; }.avatar.small.blue { background: var(--blue); }
.audit-item { align-items: flex-start; }
.audit-item p { min-width: 0; margin: 0; }.audit-item strong, .audit-item span, .audit-item small { display: block; }
.audit-item strong { font-size: 8px; }.audit-item .audit-detail { margin-top: 3px; overflow: hidden; color: #5f656c; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }.audit-item small { color: #96999d; font-size: 7px; margin-top: 3px; }
.empty-recent-audit { margin: 9px 0; color: #92969b; font-size: 8px; }
.audit-item .avatar.activity { background: var(--purple); }.audit-item .avatar.stores { background: #b76a0c; }.audit-item .avatar.signoff { background: var(--green); }
.secondary-button { width: 100%; height: 34px; border: 1px solid #d9d8d5; border-radius: 6px; background: white; font-size: 10px; font-weight: 700; cursor: pointer; }
.secondary-button:hover { background: #f7f6f3; }

.drawer-backdrop { position: fixed; inset: 0; z-index: 39; background: #0a0d12aa; opacity: 0; pointer-events: none; transition: .25s; }
.drawer { position: fixed; z-index: 40; right: 0; top: 0; width: min(700px, 94vw); height: 100vh; padding: 32px; background: white; box-shadow: -10px 0 30px #0002; transform: translateX(102%); transition: .25s ease; }
.drawer.open { transform: translateX(0); }.drawer-backdrop.open { opacity: 1; pointer-events: auto; }
.drawer-head { display: flex; justify-content: space-between; align-items: flex-start; }
.drawer-head p { margin: 0 0 4px; color: var(--muted); font-size: 11px; text-transform: uppercase; font-weight: 700; letter-spacing: .7px; }
.drawer-head h2 { margin: 0; font: 650 30px "Fraunces", serif; }
.drawer-head button { border: 0; background: none; font-size: 28px; cursor: pointer; }
.drawer-copy { max-width: 560px; margin: 20px 0; color: var(--muted); line-height: 1.5; font-size: 14px; }
.campaign-directory-summary { display: flex; justify-content: space-between; align-items: center; margin: 16px 0 5px; padding-bottom: 8px; border-bottom: 1px solid var(--line); font-size: 10px; }.campaign-directory-summary span { color: var(--green); font-weight: 700; }
.campaign-directory-list { max-height: calc(100vh - 205px); overflow-y: auto; }
.campaign-directory-row { width: 100%; min-height: 72px; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 10px 4px; border: 0; border-bottom: 1px solid #ecebe8; color: #252a30; background: white; cursor: pointer; text-align: left; }
.campaign-directory-row:hover { background: #f8f8f6; }
.campaign-directory-date { width: 34px; height: 42px; display: grid; place-items: center; align-content: center; border: 1px solid #dededa; border-radius: 6px; background: #fafaf8; }.campaign-directory-date strong { font-size: 14px; line-height: 1; }.campaign-directory-date small { margin-top: 3px; color: #858a90; font-size: 7px; text-transform: uppercase; }
.campaign-directory-copy { min-width: 0; }.campaign-directory-copy strong, .campaign-directory-copy span, .campaign-directory-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.campaign-directory-copy strong { font-size: 11px; }.campaign-directory-copy span { margin-top: 3px; color: #596068; font-size: 9px; }.campaign-directory-copy small { margin-top: 4px; color: #92969a; font-size: 8px; }
.campaign-directory-row .readiness-badge.approved { color: #20734c; background: #e7f3eb; }.campaign-directory-row .readiness-badge.partial { color: #915809; background: #fff0d9; }.campaign-directory-row .readiness-badge.pending { color: #a23832; background: #fae9e8; }
.readonly-store-directory { max-height: calc(100vh - 190px); overflow-y: auto; padding-right: 4px; }
.directory-store-row { min-height: 49px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 4px; border-bottom: 1px solid #efeeeb; }.directory-store-row strong, .directory-store-row div span { display: block; }.directory-store-row strong { font-size: 10px; }.directory-store-row div span { margin-top: 3px; color: #969a9e; font-size: 8px; }.directory-store-row > small { max-width: 145px; color: #596c78; font-size: 8px; text-align: right; }
.directory-store-row[hidden], .readonly-store-region[hidden] { display: none; }
.search-field { height: 40px; display: flex; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid var(--line); border-radius: 7px; color: #8d9196; }
.search-field input { width: 100%; border: 0; outline: 0; }
.region-summary { display: flex; justify-content: space-between; margin-top: 24px; padding-bottom: 8px; border-bottom: 1px solid var(--line); font-size: 11px; }
.region-summary span { color: var(--muted); }
.store-row { display: flex; justify-content: space-between; align-items: center; padding: 13px 4px; border-bottom: 1px solid #f0efed; }
.store-row strong, .store-row div span { display: block; }.store-row strong { font-size: 11px; }.store-row div span { color: #919499; font-size: 9px; margin-top: 3px; }
.store-directory { max-height: calc(100vh - 275px); overflow-y: auto; padding-right: 4px; }
.store-region { display: block; }
.excluded-stores-section { margin-top: 9px; padding: 0 7px 4px; background: #fffbf5; border: 1px solid #efd8ba; border-radius: 7px; }
.excluded-stores-section[hidden] { display: none; }
.store-row[hidden], .excluded-store-card[hidden] { display: none !important; }
.excluded-store-card { display: grid; grid-template-columns: minmax(125px, .8fr) minmax(170px, 1.2fr) minmax(145px, 1fr) auto; gap: 12px; align-items: center; padding: 13px 8px; border-bottom: 1px solid #ecd8be; background: #fffdfa; }.excluded-store-card:last-child { border-bottom: 0; }.excluded-store-card strong, .excluded-store-card span, .excluded-store-card small { display: block; }.excluded-store-card > div > strong { font-size: 12px; }.excluded-store-card span { margin-top: 3px; color: #8b8175; font-size: 10px; }.excluded-store-card small { margin-bottom: 3px; color: #9a7b55; font-size: 9px; font-weight: 700; text-transform: uppercase; }
.excluded-summary { margin-top: 0; color: #98580c; border-bottom-color: #ecd8be; }
.excluded-summary strong { color: #98580c; }
.store-row.unavailable { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 12px 4px 8px; background: #fffdfa; }
.store-exclusion-context { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(105px, 1fr) minmax(120px, 1fr) auto; gap: 8px; align-items: center; margin-top: 3px; padding: 8px; background: #f7f5f1; border-radius: 6px; }
.store-exclusion-context small, .store-exclusion-context strong, .store-exclusion-context em { display: block; }
.store-exclusion-context small { color: #93979c; font-size: 7px; text-transform: uppercase; letter-spacing: .4px; }
.store-exclusion-context strong { margin-top: 2px; overflow: hidden; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.store-exclusion-context em { margin-top: 2px; color: #8b8f94; font-size: 7px; font-style: normal; }
.inline-reinclude { height: 28px; padding: 0 8px; border: 1px solid #bdd9c9; border-radius: 5px; color: var(--green); background: #eaf5ee; cursor: pointer; font-size: 7px; font-weight: 800; text-transform: uppercase; }
.inline-reinclude:hover { color: white; background: var(--green); }
.tag, .active-tag, .exclude-store-button { padding: 4px 7px; border: 0; border-radius: 10px; font-size: 8px; font-weight: 700; }
.tag { color: #9d5e12; background: #fff0d9; }.active-tag { color: var(--green); background: #e8f3eb; }
.exclude-store-button { color: #687078; background: #eef0f1; cursor: pointer; }
.exclude-store-button:hover { color: #9b5708; background: #fff0d9; }
.store-row.editing-exclusion { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.store-exclude-form { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(160px, 1fr) auto auto; gap: 6px; align-items: end; padding: 9px; background: #fff8ed; border: 1px solid #f0d7b5; border-radius: 6px; }
.store-exclude-form label span { display: block; margin-bottom: 4px; color: #8d704d; font-size: 7px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; }
.store-exclude-form input { width: 100%; height: 30px; padding: 0 8px; border: 1px solid #d9c6aa; border-radius: 4px; outline: 0; font-size: 9px; }
.store-exclude-form input:focus { border-color: #c47a24; box-shadow: 0 0 0 2px #e8a65422; }
.store-exclude-form button { height: 30px; padding: 0 8px; border: 1px solid #d7d3cd; border-radius: 4px; background: white; cursor: pointer; font-size: 7px; font-weight: 700; }
.store-exclude-form .confirm-exclusion { color: white; border-color: #bd6c14; background: #bd6c14; }
.store-exclude-form .confirm-exclusion:disabled { color: #aaa39a; border-color: #ddd8d1; background: #eeeae4; cursor: not-allowed; }
.drawer-footer { position: absolute; left: 32px; right: 32px; bottom: 26px; }
.content-drawer, .template-drawer { width: min(700px, 94vw); }
.content-drawer { display: flex; flex-direction: column; overflow: hidden; padding-bottom: 28px; }
.content-drawer .drawer-head { flex: 0 0 auto; }
.content-scroll { min-height: 0; flex: 1 1 auto; overflow-y: auto; padding-right: 5px; padding-bottom: 4px; scrollbar-gutter: stable; }
.content-drawer .drawer-footer { position: static; flex: 0 0 auto; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); background: white; }
.template-meta { display: grid; grid-template-columns: 1.5fr 1fr; margin: 19px 0 13px; padding: 11px; border: 1px solid var(--line); border-radius: 7px; }
.template-meta > [hidden] { display: none; }
.template-meta span + span { padding-left: 10px; border-left: 1px solid var(--line); }
.template-meta small, .template-meta strong { display: block; }
.template-meta small { color: #92969b; font-size: 8px; text-transform: uppercase; letter-spacing: .5px; }
.template-meta strong { margin-top: 3px; font-size: 10px; }
.template-meta strong.approved { color: var(--green); }
.content-context { margin-bottom: 9px; display: flex; justify-content: space-between; color: #7d8187; font-size: 9px; }
.content-context strong { color: var(--ink); }
.content-preview { min-height: 300px; padding: 22px; border: 1px solid #dbd9d5; border-radius: 9px; background: #f6f5f2; overflow: hidden; }
.content-drawer:has(.phone-preview) .content-preview { min-height: 650px; padding: 28px; }
.content-note { display: flex; gap: 8px; margin-top: 12px; padding: 9px 10px; color: #6c7177; background: #eef4f7; border-radius: 6px; font-size: 9px; line-height: 1.45; }
.content-note p { margin: 0; }
.content-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.content-actions .primary-button { width: 100%; }
.email-preview { padding: 0; background: white; border: 1px solid #ddd; border-radius: 5px; overflow: hidden; }
.email-preview .email-toolbar { padding: 8px 11px; color: #7e8389; background: #f2f3f4; border-bottom: 1px solid #ddd; font-size: 8px; }
.email-preview .email-subject { padding: 10px 13px; border-bottom: 1px solid #eee; font-size: 9px; }
.email-preview .email-hero { padding: 30px 18px; color: white; background: linear-gradient(135deg, #075f8b, #0781ad); text-align: center; }
.email-preview .email-hero strong { display: block; font: 650 24px/1.05 "Fraunces", serif; }
.email-preview .email-hero span { display: block; margin: 8px 0 14px; font-size: 11px; }
.content-drawer:has(.dominos-email-preview) { width: min(760px, 96vw); }
.content-drawer:has(.dominos-email-preview) .content-preview { padding: 20px; background: #e8ebed; }
.dominos-email-preview { width: min(600px, 100%); margin: 0 auto; overflow: hidden; color: #393336; background: white; box-shadow: 0 5px 22px #17222b20; font-family: Arial, sans-serif; }
.dominos-email-header { height: 82px; display: flex; align-items: center; justify-content: space-between; padding: 0 28px; background: #006491; }.dominos-email-header > img { width: 112px; height: 58px; object-fit: contain; }.dominos-email-header nav { height: 54px; display: flex; align-items: center; gap: 12px; }.dominos-email-header nav a { height: 54px; display: flex; align-items: center; padding: 0 2px; }.dominos-email-header nav a + a { padding-left: 14px; border-left: 1px solid #ffffffb3; }.dominos-email-header nav img { width: 40px; height: auto; display: block; }
.dominos-email-hero { width: 100%; aspect-ratio: 3 / 2; display: block; object-fit: cover; }.dominos-email-hero-placeholder { aspect-ratio: 3 / 2; display: grid; place-items: center; align-content: center; gap: 6px; color: #7c858b; background: #e9ecee; }.dominos-email-hero-placeholder strong { font-size: 28px; }.dominos-email-hero-placeholder span { font-size: 12px; }
.dominos-email-body { padding: 30px 42px 18px; text-align: left; font-size: 16px; line-height: 1.5; }.dominos-email-body p, .dominos-email-body div { margin: 0 0 13px; }.dominos-email-body ul, .dominos-email-body ol { margin: 0 0 13px; text-align: left; }.dominos-email-body a { color: #006491; }
.dominos-email-cta { padding: 0 20px 30px; text-align: center; }.dominos-email-cta a { min-width: 200px; min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: 0 28px; border-radius: 25px; color: white; background: #3f9335; text-decoration: none; font-size: 16px; font-weight: 800; text-transform: uppercase; }
.dominos-email-fixed { border-top: 1px solid #e5e5e5; }.dominos-feature-art { width: 100%; display: block; }.dominos-local-store { min-height: 235px; display: grid; grid-template-columns: 46% 54%; align-items: end; overflow: hidden; background: #e9f4f8; }.dominos-local-store > img { width: 100%; max-height: 235px; object-fit: contain; object-position: bottom; }.dominos-local-store > div { align-self: center; padding: 25px 30px 25px 15px; color: #01416a; text-transform: uppercase; }.dominos-local-store small, .dominos-local-store strong { display: block; }.dominos-local-store small { margin-bottom: 10px; font-size: 13px; font-weight: 700; }.dominos-local-store strong { font-size: 23px; line-height: 1.15; }
.dominos-app-block { padding: 25px 20px; background: #006491; text-align: center; }.dominos-app-block .got-app { width: min(250px, 70%); }.dominos-app-block > div { display: flex; justify-content: center; gap: 10px; margin-top: 16px; }.dominos-app-block > div img { width: 130px; max-width: 40%; height: auto; object-fit: contain; }
.dominos-email-fixed footer { padding: 24px 30px; color: white; background: #006491; border-top: 1px solid #ffffff40; text-align: center; font-size: 11px; line-height: 1.5; }.dominos-email-fixed footer p { margin: 0 0 10px; }.dominos-email-fixed footer span { display: block; padding-top: 8px; font-weight: 700; }
.preview-cta { display: inline-block; padding: 8px 14px; color: white; background: var(--red); border-radius: 4px; font-size: 9px; font-weight: 700; }
.phone-preview { width: min(310px, 100%); min-height: 590px; margin: auto; padding: 27px 14px 22px; border: 9px solid #20252b; border-radius: 43px; background: white; box-shadow: 0 14px 32px #0003; }
.phone-preview::before { content: ""; display: block; width: 88px; height: 8px; margin: -19px auto 28px; border-radius: 8px; background: #20252b; }
.message-bubble { padding: 16px; background: #e8e8ec; border-radius: 18px 18px 18px 5px; font-size: 14px; line-height: 1.55; }
.message-time { display: block; margin-top: 11px; color: #8c9197; text-align: center; font-size: 10px; }
.push-card { margin-top: 30px; padding: 12px; display: grid; grid-template-columns: 31px 1fr; gap: 9px; background: #f4f4f6dd; border: 1px solid #ddd; border-radius: 12px; box-shadow: 0 8px 20px #0002; }
.push-card i { width: 31px; height: 31px; display: grid; place-items: center; color: white; background: var(--red); border-radius: 7px; }
.push-card strong, .push-card span { display: block; }.push-card strong { font-size: 10px; }.push-card span { margin-top: 3px; color: #5e636a; font-size: 9px; line-height: 1.35; }
.script-preview { min-height: 250px; padding: 20px; color: #33373c; background: #fffdf7; border-left: 4px solid #d78519; box-shadow: 0 3px 12px #0001; font: 11px/1.7 Georgia, serif; }
.script-preview h3 { margin: 0 0 12px; font: 700 11px "DM Sans", sans-serif; text-transform: uppercase; letter-spacing: .8px; }
.print-preview { min-height: 255px; padding: 25px 20px; display: flex; flex-direction: column; justify-content: center; color: white; background: #06739d; border: 7px solid white; outline: 1px solid #ddd; text-align: center; }
.print-preview.menu-art { background: #24282e; }
.print-preview h3 { margin: 0; font: 650 28px/1.05 "Fraunces", serif; }.print-preview p { margin: 12px 0 17px; font-size: 11px; }.print-preview small { color: #cfe8f1; }
.template-library { margin-top: 16px; max-height: calc(100vh - 315px); overflow-y: auto; }
.template-brand-toolbar { display: grid; grid-template-columns: minmax(210px, 1fr) auto; gap: 10px; align-items: center; margin-bottom: 12px; }.template-brand-picker { min-width: 0; }.template-brand-picker .form-brand-picker-trigger { height: 46px; }.template-create-actions { display: flex; gap: 7px; }.template-create-actions button { height: 38px; padding: 0 11px; border: 1px solid #bdd5e2; border-radius: 7px; color: #146b9c; background: #f4f9fb; cursor: pointer; font-size: 11px; font-weight: 700; }.template-create-actions button:hover { color: white; border-color: var(--brand-primary); background: var(--brand-primary); }
.template-library-item { width: 100%; padding: 12px 8px; display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; align-items: center; border: 0; border-bottom: 1px solid var(--line); background: white; text-align: left; cursor: pointer; }
.template-library-item:hover { background: #f8f7f4; }
.template-library-item > i { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 6px; background: #eef1f3; color: #596169; }
.template-library-item strong, .template-library-item span { display: block; }.template-library-item strong { font-size: 10px; }.template-library-item span { margin-top: 3px; color: #8e9297; font-size: 8px; }
.template-library-item b { color: var(--green); font-size: 8px; }
.template-channel-section { margin-bottom: 16px; overflow: hidden; border: 1px solid #deddd9; border-radius: 10px; background: white; }
.template-channel-head { min-height: 60px; display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 12px; border-bottom: 1px solid #ebe9e5; background: #f7f6f3; }
.template-channel-head > i { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 8px; color: #3d667c; background: #e7f1f6; }.template-channel-head h3, .template-channel-head span { display: block; }.template-channel-head h3 { margin: 0; font-size: 14px; }.template-channel-head span { margin-top: 3px; color: #858a90; font-size: 10px; }
.new-channel-template { min-height: 34px; padding: 0 11px; border: 1px solid #b9d2df; border-radius: 6px; color: #175e82; background: white; cursor: pointer; font-size: 10px; font-weight: 700; }.new-channel-template:hover { color: white; border-color: var(--blue); background: var(--blue); }
.template-library-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; border-bottom: 1px solid #ebe9e5; }.template-library-row:last-child { border-bottom: 0; }
.template-channel-section .template-library-item { min-height: 62px; grid-template-columns: minmax(0, 1fr) auto; padding: 13px 14px; border-bottom: 0; }.template-channel-section .template-library-item > span > strong { font-size: 13px; }.template-channel-section .template-library-item > span > span { font-size: 10px; }.template-channel-section .template-library-item b { font-size: 10px; }
.edit-template-item { min-width: 62px; margin: 10px 11px 10px 0; border: 1px solid #d2d9dd; border-radius: 6px; color: #315f77; background: #f5f9fb; cursor: pointer; font-size: 10px; font-weight: 700; }.edit-template-item:hover { color: white; border-color: var(--blue); background: var(--blue); }
.sms-template-form { max-height: calc(100vh - 150px); margin-top: 18px; padding: 0 3px 100px 0; overflow-y: auto; }
.sms-template-form > label, .sms-template-form .form-row label { display: block; margin-bottom: 15px; }
.sms-template-form label > span { display: block; margin-bottom: 6px; color: #747980; font-size: 10px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; }
.sms-template-form input, .sms-template-form select, .sms-template-form textarea { width: 100%; padding: 0 12px; border: 1px solid #d9d7d3; border-radius: 7px; background: white; outline: 0; font-family: inherit; font-size: 13px; line-height: 1.5; }
.sms-template-form input, .sms-template-form select { height: 42px; }.sms-template-form textarea { min-height: 210px; padding-block: 12px; resize: vertical; }
.sms-template-form input:focus, .sms-template-form select:focus, .sms-template-form textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px #146b9c18; }
.sms-editor-tools { display: flex; justify-content: space-between; gap: 14px; align-items: flex-end; margin: -3px 0 16px; }
.sms-insert-tools { display: grid; gap: 9px; }
.placeholder-picker { display: flex; align-items: center; gap: 8px; }.placeholder-picker > span { color: #747980; font-size: 10px; font-weight: 700; text-transform: uppercase; }.placeholder-picker button { min-height: 34px; padding: 0 12px; border: 1px solid #b9d2df; border-radius: 7px; color: #175e82; background: #eef6fa; cursor: pointer; font-size: 11px; font-weight: 700; }.placeholder-picker button:hover { color: white; border-color: var(--blue); background: var(--blue); }
.emoji-picker { display: flex; align-items: center; gap: 6px; }.emoji-picker > span { margin-right: 3px; color: #747980; font-size: 10px; font-weight: 700; text-transform: uppercase; }.emoji-picker button { width: 36px; height: 36px; border: 1px solid #dedbd6; border-radius: 7px; background: #faf9f7; cursor: pointer; font-size: 18px; }.emoji-picker button:hover { border-color: var(--blue); background: #eef6fa; }
.sms-character-counter { color: #53616a; font-size: 12px; white-space: nowrap; }.sms-character-counter.over-limit { color: #b62f29; }
.sms-template-drawer .drawer-footer { background: white; }
.push-emoji-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: -8px 0 16px; }.push-emoji-tools > span { margin-right: 4px; color: #747980; font-size: 10px; font-weight: 700; text-transform: uppercase; }.push-emoji-tools button { width: 36px; height: 36px; border: 1px solid #dedbd6; border-radius: 7px; background: #faf9f7; cursor: pointer; font-size: 18px; }.push-emoji-tools button:hover { border-color: var(--blue); background: #eef6fa; }
.push-emoji-tools .push-placeholder-button { width: auto; padding: 0 10px; font-size: 11px; font-weight: 700; }.push-emoji-tools .sms-character-counter { margin-left: auto; }
@media (max-width: 620px) { .sms-editor-tools { align-items: stretch; flex-direction: column; }.sms-character-counter { align-self: flex-end; } }
.full-button { width: 100%; }
.audit-drawer { width: min(700px, 94vw); padding: 32px; }
.audit-drawer .drawer-head h2 { font-size: 30px; }
.audit-drawer .drawer-head p { font-size: 11px; }
.audit-drawer .drawer-copy { max-width: 520px; margin: 20px 0; font-size: 14px; line-height: 1.5; }
.audit-filter-row { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; overflow-x: visible; }
.audit-filter-row button { min-height: 34px; padding: 7px 13px; flex: 0 0 auto; border: 1px solid #deddda; border-radius: 18px; color: #73787e; background: white; cursor: pointer; font-size: 11px; font-weight: 600; }
.audit-filter-row button.active { color: white; border-color: #252b32; background: #252b32; }
.full-audit-list { max-height: calc(100vh - 280px); overflow-y: auto; padding-right: 6px; border-top: 1px solid var(--line); }
.full-audit-row { display: grid; grid-template-columns: 44px minmax(0, 1fr) minmax(135px, auto); gap: 15px; align-items: start; padding: 19px 4px; border-bottom: 1px solid var(--line); }
.audit-type-icon { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 10px; font-size: 15px; }.audit-type-icon.activity { color: var(--purple); background: #f0ebf7; }.audit-type-icon.stores { color: #9d5d0d; background: #fff0d9; }.audit-type-icon.signoff { color: var(--green); background: #e7f3eb; }
.full-audit-row > div { min-width: 0; }.full-audit-row > div strong, .full-audit-row > div span, .full-audit-row > div small, .full-audit-row aside strong, .full-audit-row aside span { display: block; }
.full-audit-row > div > strong { font-size: 14px; line-height: 1.3; }.full-audit-row > div > span { margin-top: 6px; color: #656b72; font-size: 12px; line-height: 1.45; white-space: normal; }.full-audit-row > div > small { margin-top: 11px; color: #969a9f; font-size: 10px; }
.audit-campaign-context { padding: 9px 11px; border-left: 3px solid #c9dbe4; border-radius: 0 6px 6px 0; background: #f3f7f9; }.audit-campaign-context b, .audit-campaign-context em { display: block; font-style: normal; }.audit-campaign-context b { color: #34434d; font-size: 12px; }.audit-campaign-context em { margin-top: 4px; color: #69757d; font-size: 10px; }
.full-audit-row aside { padding-top: 2px; text-align: right; }.full-audit-row aside strong { font-size: 11px; }.full-audit-row aside span { margin-top: 5px; color: #969a9f; font-size: 10px; line-height: 1.35; }
.audit-drawer .drawer-footer { left: 32px; right: 32px; bottom: 26px; }
.audit-drawer .drawer-footer button { height: 42px; font-size: 12px; }
@media (max-width: 620px) {
  .audit-drawer { padding: 23px; }
  .full-audit-row { grid-template-columns: 40px minmax(0, 1fr); gap: 12px; }
  .full-audit-row aside { grid-column: 2; text-align: left; }
  .audit-drawer .drawer-footer { left: 23px; right: 23px; }
}

.user-directory-row { grid-template-columns: 40px minmax(0, 1fr) minmax(100px, auto) auto auto; }

@page { size: A3 landscape; margin: 8mm; }

@media print {
  * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  html, body { width: 100%; margin: 0; padding: 0; background: white; }
  body { font-size: 9pt; }
  .sidebar, .topbar, .context-bar, .drawer, .drawer-backdrop, .toast, .cell-add-activity, .week-add-campaign, .campaign-pack-trigger, .calendar-event-action-trigger, .calendar-event-menu, #manageMarkers { display: none !important; }
  .app-shell, .app-shell.sidebar-collapsed { min-height: 0; display: block; }
  main { width: 100%; }
  .workspace { display: block; padding: 0; }
  .calendar-card { width: 100%; overflow: visible; border: 1px solid #c9c7c2; border-radius: 0; box-shadow: none; }
  .print-calendar-header { min-height: 58px; display: grid; grid-template-columns: 180px 1fr auto; gap: 18px; align-items: center; padding: 8px 12px; border-bottom: 1px solid #d9d7d2; }
  .print-calendar-header > div { display: flex; align-items: center; gap: 9px; font-size: 17px; }
  .print-brand-logo { width: 30px; height: 30px; object-fit: contain; border-radius: 50%; }
  .print-calendar-header section { text-align: center; }
  .print-calendar-header section small { display: block; color: #777d83; font-size: 7pt; font-weight: 700; text-transform: uppercase; letter-spacing: .7px; }
  .print-calendar-header h2 { margin: 2px 0 0; font: 650 18pt/1.1 "Fraunces", serif; }
  .print-calendar-header p { margin: 0; color: #777d83; font-size: 7pt; white-space: nowrap; }
  .legend-row { min-height: 36px; padding: 0 8px; }
  .legend, .markers { gap: 8px; }
  .legend-item { min-height: 0; padding: 2px 3px; border: 0; background: transparent; font-size: 6.5pt; }
  .legend-item .channel-icon { width: 10px; height: 10px; }
  .markers { padding-left: 0; border-left: 0; font-size: 6pt; }
  .holiday-marker { height: 12px; }
  .pay-marker, .event-marker { width: 14px; height: 14px; font-size: 8px; }
  .calendar-grid { width: 100%; grid-template-columns: 34px minmax(130px, 1.55fr) repeat(7, minmax(0, 1fr)); }
  .calendar-head { height: 28px; font-size: 6.5pt; }
  .week-number, .campaign-cell, .day { min-height: 104px; break-inside: avoid; }
  .week-number { padding-top: 10px; font-size: 6pt; }
  .week-number strong { font-size: 9pt; }
  .week-number small { margin-top: 3px; font-size: 5pt; }
  .campaign-cell { padding: 6px; gap: 5px; }
  .week-campaign { min-height: 86px; padding: 8px; border-radius: 5px; }
  .campaign-card-heading { gap: 5px; }
  .campaign-card-heading > strong { font-size: 8pt; }
  .readiness-badge { padding: 3px 4px; font-size: 4.5pt; }
  .deal-proposition { margin-top: 4px; font-size: 6pt; line-height: 1.25; }
  .week-campaign-meta { gap: 4px; margin-top: 7px; font-size: 5.5pt; }
  .exclusion-trigger { min-height: 18px; padding: 2px 4px; font-size: 5pt; }
  .day { padding: 6px 4px 4px; overflow: visible; }
  .date-line { min-height: 15px; margin: 0 1px 5px; font-size: 7.5pt; }
  .day-marker { padding: 2px 3px; font-size: 4.5pt; }
  .day-markers .day-marker { max-width: 54px; }
  .calendar-event { min-height: 27px; margin-bottom: 3px; border-radius: 3px; }
  .calendar-event-open { gap: 4px; padding: 3px 4px; }
  .calendar-event .channel-icon { width: 11px; height: 11px; }
  .activity-copy strong { font-size: 6.5pt; }
  .activity-copy small { margin-top: 1px; font-size: 5pt; }
}
.activity-form, .campaign-form { margin-top: 18px; }
.activity-form > label, .activity-form .form-row label, .campaign-form > label, .campaign-form .form-row label { display: block; margin-bottom: 13px; }
.activity-form label > span, .campaign-form label > span { display: block; margin-bottom: 5px; color: #747980; font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; }
.activity-form input[readonly] { color: #293039; background: #f3f5f5; cursor: default; font-weight: 700; }
.activity-form [hidden] { display: none !important; }
.sms-segment-summary { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: center; margin-bottom: 10px; padding: 12px 14px; border: 1px solid #d7e1e6; border-radius: 7px; background: #f1f7f9; }.sms-segment-summary span { color: #788087; font-size: 9px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; }.sms-segment-summary strong { color: #293039; font-size: 12px; text-align: right; }
.activity-form input, .activity-form select, .campaign-form input, .campaign-form select, .campaign-form textarea { width: 100%; padding: 0 10px; border: 1px solid #d9d7d3; border-radius: 6px; background: white; outline: 0; font-family: inherit; font-size: 10px; line-height: 1.4; }
.activity-form input, .activity-form select, .campaign-form input, .campaign-form select { height: 38px; }
.campaign-form textarea { padding-top: 9px; resize: vertical; }
.activity-form input:focus, .activity-form select:focus, .campaign-form input:focus, .campaign-form select:focus, .campaign-form textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 2px #146b9c18; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.form-note { padding: 9px 10px; color: #70757b; background: #eef4f7; border-radius: 6px; font-size: 8px; line-height: 1.45; }
.activity-form-actions, .campaign-form-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.activity-editor-actions { grid-template-columns: auto 1fr 1fr; }
.activity-form-actions .primary-button, .campaign-form-actions .primary-button { width: 100%; }
.campaign-form { max-height: calc(100vh - 155px); overflow-y: auto; padding: 0 3px 92px 0; }
.target-location-selector { margin: 4px 0 15px; padding: 0; border: 0; }.target-location-selector > legend { margin-bottom: 7px; color: #747980; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; }.target-selection-summary { min-height: 46px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 12px; border: 1px solid #d9d7d3; border-radius: 7px 7px 0 0; background: #f5f7f8; }.target-selection-summary strong { font-size: 13px; }.target-selection-summary span { color: #747b81; font-size: 10px; }.target-dual-list { display: grid; grid-template-columns: minmax(0, 1fr) 42px minmax(0, 1fr); gap: 9px; padding: 10px; border: 1px solid #d9d7d3; border-top: 0; border-radius: 0 0 8px 8px; background: #eceeed; }.target-list-panel { min-width: 0; padding: 9px; border-radius: 7px; background: white; }.target-list-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 2px 2px 9px; }.target-list-panel > header strong { font-size: 12px; }.target-list-panel > header span { color: #858a90; font-size: 9px; }.target-list-panel > input { width: 100%; height: 38px; margin-bottom: 8px; padding: 0 9px; border: 1px solid #d9d7d3; border-radius: 6px; font-size: 11px; }.target-group-list { height: 310px; overflow-y: auto; padding-right: 3px; }.target-region-group { margin-bottom: 8px; overflow: hidden; border: 1px solid #deddd9; border-radius: 7px; background: #f4f3f0; }.target-region-heading { min-height: 39px; display: grid !important; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 7px; align-items: center; margin: 0 !important; padding: 7px 8px; cursor: pointer; }.target-region-heading input, .target-location-option input { width: 16px !important; height: 16px !important; margin: 0; accent-color: var(--brand-primary); }.target-region-heading strong { font-size: 11px; }.target-region-heading span { color: #757b81 !important; font-size: 9px !important; }.target-region-group > div { padding: 0 6px 6px; }.target-location-option { min-height: 42px; display: grid !important; grid-template-columns: 18px minmax(0, 1fr); gap: 8px; align-items: center; margin: 4px 0 0 !important; padding: 6px 7px; border-radius: 6px; background: white; cursor: pointer; }.target-location-option:hover { background: #f7fafb; }.target-location-option span, .target-location-option strong, .target-location-option small { display: block !important; margin: 0 !important; text-transform: none !important; letter-spacing: 0 !important; }.target-location-option strong { overflow: hidden; color: #293039; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }.target-location-option small { margin-top: 2px !important; color: #8a9095; font-size: 8px; }.target-transfer-actions { display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: 7px; }.target-transfer-actions button { height: 36px; border: 1px solid #ccd0d2; border-radius: 6px; color: #38434a; background: white; cursor: pointer; font-size: 20px; }.target-transfer-actions button:hover { color: white; border-color: var(--brand-primary); background: var(--brand-primary); }.target-list-empty { padding: 25px 8px; color: #8a9095; font-size: 10px; text-align: center; }.target-selection-note { margin: 7px 2px 0; color: #747b81; font-size: 9px; line-height: 1.4; }
.form-error { margin: 0 0 10px; padding: 8px 10px; border-radius: 5px; color: #a62f29; background: #fceae8; font-size: 9px; font-weight: 700; }
.marker-form { padding: 13px; border: 1px solid #e1e0dd; border-radius: 8px; background: #fafaf8; }
.marker-form [hidden] { display: none !important; }
.marker-form > label, .marker-form .form-row label { display: block; margin-bottom: 11px; }
.marker-form label > span { display: block; margin-bottom: 5px; color: #747980; font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; }
.marker-form input, .marker-form select { width: 100%; height: 36px; padding: 0 9px; border: 1px solid #d9d7d3; border-radius: 6px; background: white; outline: 0; font-family: inherit; font-size: 10px; }
.marker-form input:focus, .marker-form select:focus { border-color: var(--blue); box-shadow: 0 0 0 2px #146b9c18; }
.marker-region-field { margin: 0 0 11px; padding: 0; border: 0; }.marker-region-field legend { margin-bottom: 5px; color: #747980; font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; }
.marker-region-options { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }.marker-region-options label { min-height: 34px; display: flex; align-items: center; gap: 7px; margin: 0; padding: 0 9px; border: 1px solid #d9d7d3; border-radius: 6px; background: white; cursor: pointer; }.marker-region-options label:last-child { grid-column: 1 / -1; }.marker-region-options input { width: 14px; height: 14px; padding: 0; flex: 0 0 auto; accent-color: var(--red); }.marker-region-options label > span { display: inline; margin: 0; color: #4f555b; font-size: 9px; font-weight: 600; text-transform: none; letter-spacing: 0; }
.marker-list-head { display: flex; justify-content: space-between; align-items: center; margin: 20px 0 8px; }
.marker-list-head h3 { margin: 0; font-size: 11px; }.marker-list-head span { color: #8e9297; font-size: 9px; }
.marker-manager-list { max-height: calc(100vh - 455px); overflow-y: auto; }
.marker-manager-row { display: grid; grid-template-columns: 30px 1fr 28px; gap: 8px; align-items: center; padding: 9px 4px; border-bottom: 1px solid #ecebe8; }
.marker-type-swatch { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 6px; font-size: 10px; font-weight: 800; }
.marker-type-swatch.holiday-label { color: #ac2c35; background: #f3c4c8; }.marker-type-swatch.pay { color: #8f5803; background: #f7d78c; }.marker-type-swatch.special { color: #17678f; background: #c7e3f1; }.marker-type-swatch.birthday { color: #673f88; background: #e8d9f2; }
.marker-manager-row strong, .marker-manager-row div span, .marker-manager-row small { display: block; }.marker-manager-row strong { font-size: 10px; }.marker-manager-row div span { margin-top: 2px; color: #70757b; font-size: 8px; }.marker-manager-row small { margin-top: 3px; color: #287196; font-size: 8px; font-weight: 700; }
.delete-marker { width: 26px; height: 26px; border: 1px solid #e1cfcd; border-radius: 5px; color: var(--red); background: white; cursor: pointer; font-size: 15px; }.delete-marker:hover { color: white; background: var(--red); }
.exclusion-campaign-summary { margin-top: 18px; padding: 12px; background: #f5f4f1; border-radius: 7px; }
.exclusion-campaign-summary span, .exclusion-campaign-summary strong, .exclusion-campaign-summary small { display: block; }
.exclusion-campaign-summary span { color: #92969b; font-size: 8px; text-transform: uppercase; letter-spacing: .5px; }
.exclusion-campaign-summary strong { margin-top: 3px; font-size: 13px; }.exclusion-campaign-summary small { margin-top: 3px; color: #777c82; font-size: 9px; }
.exclusion-audit-list { max-height: calc(100vh - 315px); margin-top: 15px; overflow-y: auto; border: 1px solid var(--line); border-radius: 7px; }
.exclusion-audit-head, .exclusion-audit-row { display: grid; grid-template-columns: minmax(78px, 1fr) minmax(92px, 1.15fr) minmax(85px, 1fr) 61px; gap: 7px; align-items: center; }
.exclusion-audit-head { position: sticky; z-index: 1; top: 0; padding: 8px 10px; color: #85898f; background: #f3f2ef; border-bottom: 1px solid var(--line); font-size: 7px; font-weight: 700; text-transform: uppercase; letter-spacing: .55px; }
.exclusion-audit-row { min-height: 49px; padding: 8px 10px; background: white; border-bottom: 1px solid var(--line); }
.exclusion-audit-row:last-child { border-bottom: 0; }
.store-compact strong, .store-compact small, .exclusion-audit-row time strong, .exclusion-audit-row time small { display: block; }
.store-compact strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }.store-compact small { margin-top: 2px; color: #8c9095; font-size: 7px; }
.reason-compact { overflow: hidden; color: #555b62; font-size: 8px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.audit-compact { min-width: 0; }.audit-compact strong, .audit-compact small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.audit-compact strong { font-size: 8px; }.audit-compact small { margin-top: 2px; color: #8c9095; font-size: 7px; }
.reinclude-button { height: 26px; display: flex; align-items: center; justify-content: center; gap: 3px; padding: 0 5px; border: 1px solid #c9ddd2; border-radius: 5px; color: var(--green); background: #edf7f0; cursor: pointer; font-size: 12px; font-weight: 800; }
.reinclude-button span { font-size: 6px; text-transform: uppercase; letter-spacing: .2px; }
.reinclude-button:hover { color: white; background: var(--green); }
.empty-audit { padding: 25px; color: var(--green); background: #e9f4ed; border-radius: 7px; text-align: center; font-size: 10px; }

/* Keep every workspace drawer comfortable to read at normal browser zoom. */
.drawer .secondary-button { min-height: 42px; font-size: 12px; }
.drawer .primary-button { min-height: 42px; font-size: 13px; }
.campaign-inspector-drawer { width: min(700px, 94vw); overflow-y: auto; padding: 32px 32px 40px; }
.campaign-inspector-drawer .inspector-head p { margin-bottom: 5px; font-size: 11px; letter-spacing: .7px; }
.campaign-inspector-drawer h2 { font-size: 30px; line-height: 1.15; }
.campaign-inspector-drawer .inspector-head button { margin: -5px -5px 0 0; font-size: 28px; }
.campaign-inspector-drawer .campaign-status { margin-top: 14px; padding: 6px 10px; border-radius: 14px; font-size: 11px; }
.campaign-inspector-drawer .campaign-copy { max-width: 590px; margin: 18px 0; font-size: 14px; line-height: 1.6; }
.campaign-inspector-drawer .campaign-meta { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; padding: 17px; border-radius: 9px; }
.campaign-inspector-drawer .campaign-meta > div { min-width: 0; padding: 0 13px; border-right: 1px solid #e6e4df; }.campaign-inspector-drawer .campaign-meta > div:first-child { padding-left: 0; }.campaign-inspector-drawer .campaign-meta > div:last-child { padding-right: 0; border-right: 0; }
.campaign-inspector-drawer .campaign-meta span { font-size: 10px; }.campaign-inspector-drawer .campaign-meta strong, .campaign-inspector-drawer .meta-link { margin-top: 5px; font-size: 12px; line-height: 1.35; }
.campaign-inspector-drawer .event-heading { margin: 25px 0 11px; }.campaign-inspector-drawer .event-heading h3 { font-size: 15px; }.campaign-inspector-drawer .event-heading span { font-size: 11px; }.campaign-inspector-drawer .event-heading button { font-size: 11px; }.campaign-inspector-drawer .activity-heading-actions button { padding: 6px 9px; }
.campaign-inspector-drawer .approval-row { min-height: 68px; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 12px; padding: 12px 14px; margin-bottom: 8px; border-radius: 8px; }
.campaign-inspector-drawer .approval-icon { width: 34px; height: 34px; font-size: 13px; }.campaign-inspector-drawer .approval-row strong { font-size: 13px; }.campaign-inspector-drawer .approval-row small { margin-top: 4px; font-size: 10px; }.campaign-inspector-drawer .toggle-approval { min-height: 34px; padding: 0 11px; font-size: 10px; }
.campaign-inspector-drawer .exclusion-list { gap: 8px; }.campaign-inspector-drawer .exclusion-list span { padding: 7px 10px; font-size: 11px; }
.campaign-inspector-drawer .event-card { min-height: 72px; margin-bottom: 9px; border-radius: 8px; }.campaign-inspector-drawer .activity-preview-button { padding: 14px 125px 13px 54px; }.campaign-inspector-drawer .event-card > i { left: 12px; top: 15px; width: 34px; height: 34px; border-radius: 7px; }.campaign-inspector-drawer .event-card > i .channel-icon { width: 17px; height: 17px; }
.campaign-inspector-drawer .activity-preview-button strong { font-size: 14px; }.campaign-inspector-drawer .activity-preview-button span { margin-top: 5px; font-size: 11px; }.campaign-inspector-drawer .event-card > b { right: 12px; top: 11px; font-size: 10px; }.campaign-inspector-drawer .activity-card-actions { right: 10px; bottom: 9px; gap: 5px; }.campaign-inspector-drawer .activity-card-actions button { width: 30px; height: 27px; font-size: 12px; }
.campaign-inspector-drawer .audit-preview { margin-top: 24px; }.campaign-inspector-drawer .audit-item { gap: 11px; margin: 13px 0; }.campaign-inspector-drawer .audit-item .avatar { width: 36px; height: 36px; font-size: 10px; }.campaign-inspector-drawer .audit-item strong { font-size: 12px; }.campaign-inspector-drawer .audit-item .audit-detail { margin-top: 4px; font-size: 11px; white-space: normal; }.campaign-inspector-drawer .audit-item small { margin-top: 4px; font-size: 10px; }
.campaign-inspector-drawer .empty-recent-audit { font-size: 12px; }.campaign-inspector-drawer #editCampaign { min-height: 44px; margin-top: 22px; font-size: 12px; }
.campaign-inspector-actions { display: grid; grid-template-columns: auto 1fr; gap: 10px; margin-top: 22px; }.campaign-inspector-actions #editCampaign { margin-top: 0; }.campaign-inspector-actions .danger-button { min-width: 145px; }
.campaign-directory-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 6px; }
.campaign-directory-filters button { min-height: 36px; padding: 7px 13px; border: 1px solid #deddda; border-radius: 18px; color: #6f747c; background: white; cursor: pointer; font-size: 11px; font-weight: 700; }
.campaign-directory-filters button.active { color: white; border-color: #252b32; background: #252b32; }
.campaign-directory-list { max-height: calc(100vh - 280px); }
.campaign-directory-summary { font-size: 13px; }
.campaign-directory-row { min-height: 88px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding: 8px 6px; cursor: default; }
.campaign-directory-row:hover { background: #f8f8f6; }
.campaign-directory-row.historical .campaign-directory-date { filter: grayscale(1); opacity: .75; }
.campaign-directory-open { min-width: 0; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 6px 0; border: 0; color: inherit; background: transparent; cursor: pointer; text-align: left; }
.campaign-duplicate-button { align-self: center; min-height: 38px; display: flex; align-items: center; gap: 6px; padding: 0 11px; border: 1px solid #cfd9df; border-radius: 7px; color: #275c79; background: #f2f7fa; cursor: pointer; font-size: 11px; font-weight: 700; }
.campaign-duplicate-button:hover { color: white; border-color: var(--blue); background: var(--blue); }
.campaign-directory-date { width: 44px; height: 54px; }.campaign-directory-date strong { font-size: 18px; }.campaign-directory-date small { font-size: 10px; }
.campaign-directory-copy strong { font-size: 14px; }.campaign-directory-copy span { font-size: 12px; }.campaign-directory-copy small { font-size: 11px; }
.campaign-directory-row .readiness-badge { padding: 5px 8px; font-size: 9px; }
.directory-store-row { min-height: 64px; padding: 12px 6px; }.directory-store-row strong { font-size: 14px; }.directory-store-row div span, .directory-store-row > small { font-size: 11px; }
.search-field { height: 46px; font-size: 14px; }.search-field input { font-size: 14px; }
.region-summary { font-size: 14px; }
.store-row { padding: 16px 6px; }.store-row strong { font-size: 14px; }.store-row div span { font-size: 11px; }
.tag, .active-tag, .exclude-store-button { padding: 6px 10px; font-size: 11px; }
.store-exclusion-context { grid-template-columns: minmax(150px, 1fr) minmax(170px, 1fr) auto; gap: 12px; padding: 12px; }
.store-exclusion-context small { font-size: 10px; }.store-exclusion-context strong { font-size: 12px; }.store-exclusion-context em { font-size: 10px; }
.inline-reinclude { height: 36px; padding: 0 12px; font-size: 10px; }
.store-exclude-form { grid-template-columns: minmax(220px, 1fr) auto auto; gap: 9px; padding: 12px; }
.store-exclude-form label span { font-size: 10px; }.store-exclude-form input { height: 40px; padding: 0 11px; font-size: 13px; }.store-exclude-form button { height: 40px; padding: 0 12px; font-size: 10px; }
.template-meta { padding: 15px; }.template-meta small { font-size: 10px; }.template-meta strong { font-size: 13px; }
.content-context { font-size: 12px; }.content-note { padding: 12px 14px; font-size: 12px; }
.email-preview .email-toolbar { font-size: 11px; }.email-preview .email-subject { font-size: 12px; }.preview-cta { font-size: 11px; }
.message-bubble { font-size: 15px; }.message-time { font-size: 11px; }.push-card strong { font-size: 13px; }.push-card span { font-size: 12px; }
.script-preview { font-size: 14px; }.script-preview h3 { font-size: 13px; }.print-preview p { font-size: 13px; }
.template-library-item { min-height: 64px; grid-template-columns: 42px 1fr auto; padding: 14px 10px; }.template-library-item > i { width: 40px; height: 40px; }.template-library-item strong { font-size: 14px; }.template-library-item span { font-size: 11px; }.template-library-item b { font-size: 10px; }
.activity-form label > span, .campaign-form label > span, .marker-form label > span, .marker-region-field legend { font-size: 11px; }
.activity-form input, .activity-form select, .campaign-form input, .campaign-form select, .campaign-form textarea, .marker-form input, .marker-form select { font-size: 14px; }
.activity-form input, .activity-form select, .campaign-form input, .campaign-form select, .marker-form input, .marker-form select { height: 44px; }
.form-note { padding: 12px 13px; font-size: 12px; }.form-error { padding: 11px 13px; font-size: 12px; }
.marker-form { padding: 18px; }.marker-region-options label { min-height: 42px; }.marker-region-options input { width: 17px; height: 17px; }.marker-region-options label > span { font-size: 12px; }
.marker-list-head h3 { font-size: 15px; }.marker-list-head span { font-size: 12px; }
.marker-manager-row { grid-template-columns: 40px 1fr 34px; gap: 12px; padding: 13px 6px; }.marker-type-swatch { width: 38px; height: 38px; font-size: 13px; }.marker-manager-row strong { font-size: 13px; }.marker-manager-row div span, .marker-manager-row small { font-size: 11px; }.delete-marker { width: 32px; height: 32px; }
.exclusion-campaign-summary { padding: 16px; }.exclusion-campaign-summary span { font-size: 10px; }.exclusion-campaign-summary strong { font-size: 16px; }.exclusion-campaign-summary small { font-size: 11px; }
.exclusion-audit-head, .exclusion-audit-row { grid-template-columns: minmax(110px, 1fr) minmax(145px, 1.3fr) minmax(135px, 1fr) 92px; gap: 12px; }
.exclusion-audit-head { padding: 11px 14px; font-size: 10px; }.exclusion-audit-row { min-height: 72px; padding: 13px 14px; }
.store-compact strong { font-size: 13px; }.store-compact small { font-size: 10px; }.reason-compact { overflow: visible; font-size: 12px; line-height: 1.4; text-overflow: clip; white-space: normal; }
.audit-compact strong { font-size: 12px; }.audit-compact small { margin-top: 4px; font-size: 10px; }
.reinclude-button { height: 36px; gap: 5px; padding: 0 9px; }.reinclude-button span { font-size: 9px; }
.empty-audit { font-size: 13px; }
.duplicate-campaign-summary { margin: 20px 0; padding: 17px; border-left: 4px solid var(--blue); border-radius: 0 8px 8px 0; background: #f1f6f8; }
.duplicate-campaign-summary span, .duplicate-campaign-summary strong, .duplicate-campaign-summary small { display: block; }
.duplicate-campaign-summary span { color: #7d858b; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .55px; }
.duplicate-campaign-summary strong { margin-top: 5px; font-size: 17px; }.duplicate-campaign-summary small { margin-top: 5px; color: #667078; font-size: 12px; }
.duplicate-date-preview { margin: 4px 0 16px; padding: 14px; border: 1px solid #d8e3e9; border-radius: 7px; background: #f8fbfc; }
.duplicate-date-preview strong, .duplicate-date-preview span { display: block; }.duplicate-date-preview strong { font-size: 12px; }.duplicate-date-preview span { margin-top: 5px; color: #59666f; font-size: 13px; }
.user-directory-toolbar { display: flex; align-items: center; justify-content: space-between; margin: 18px 0 10px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }.user-directory-toolbar strong { font-size: 13px; }.user-directory-toolbar .primary-button { min-height: 38px; padding: 8px 13px; }
.temporary-password-panel[hidden] { display: none; }.temporary-password-panel { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; margin: 17px 0; padding: 16px 45px 16px 17px; border: 1px solid #e5c571; border-radius: 8px; background: #fff8df; }.temporary-password-panel span, .temporary-password-panel strong, .temporary-password-panel small { display: block; }.temporary-password-panel span { color: #765a15; font-size: 11px; }.temporary-password-panel strong { margin-top: 7px; color: #342800; font: 700 18px/1.2 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .7px; }.temporary-password-panel small { margin-top: 7px; color: #796a43; font-size: 10px; line-height: 1.4; }.temporary-password-panel > button { min-height: 36px; padding: 0 11px; border: 1px solid #d4b35c; border-radius: 6px; color: #6b5010; background: white; cursor: pointer; font-size: 10px; font-weight: 700; }.temporary-password-panel #dismissTemporaryPassword { position: absolute; right: 8px; top: 8px; min-height: 26px; width: 26px; padding: 0; border: 0; background: transparent; font-size: 18px; }
.users-drawer { display: flex; flex-direction: column; overflow: hidden; }
.users-drawer .drawer-head, .users-drawer .drawer-copy, .users-drawer .temporary-password-panel, .users-drawer .user-directory-toolbar { flex: 0 0 auto; }
.user-directory-list { min-height: 0; flex: 1 1 auto; overflow-y: auto; }
.user-directory-row { min-height: 72px; display: grid; grid-template-columns: 40px minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 13px 5px; border-bottom: 1px solid var(--line); }.user-directory-row > div strong, .user-directory-row > div span { display: block; }.user-directory-row > div strong { font-size: 14px; }.user-directory-row > div span { margin-top: 4px; color: #858b91; font-size: 11px; }.admin-avatar { background: var(--red) !important; }
.user-type-badge { padding: 6px 9px; border-radius: 12px; font-size: 10px; }.user-type-badge.admin { color: #a22e28; background: #fbe9e7; }.user-type-badge.user { color: #2d647f; background: #eaf3f7; }
.edit-user-button { min-height: 34px; padding: 0 11px; border: 1px solid #d8d7d3; border-radius: 6px; background: white; cursor: pointer; font-size: 11px; font-weight: 700; }
.user-form[hidden], .permission-editor[hidden], .admin-access-note[hidden], .user-directory-toolbar[hidden], .user-directory-list[hidden] { display: none; }
.user-form label small { display: block; margin-top: 6px; color: #7b8187; font-size: 10px; line-height: 1.4; }
.user-form { min-height: 0; flex: 1 1 auto; overflow-y: auto; padding: 0 4px 0 0; }.user-form-heading { display: flex; align-items: center; justify-content: space-between; margin: 20px 0; padding-bottom: 12px; border-bottom: 1px solid var(--line); }.user-form-heading span { color: #858b91; font-size: 10px; font-weight: 700; text-transform: uppercase; }.user-form-heading h3 { margin: 3px 0 0; font-size: 18px; }.user-form-heading button { border: 0; color: var(--blue); background: none; cursor: pointer; font-size: 11px; font-weight: 700; }
.user-form label > span { display: block; margin-bottom: 6px; color: #747980; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .45px; }.user-form input[type="text"], .user-form select { width: 100%; height: 44px; padding: 0 11px; border: 1px solid #d9d7d3; border-radius: 6px; background: white; font: inherit; font-size: 14px; }.active-user-toggle > span:last-child { height: 44px; display: flex; align-items: center; gap: 9px; padding: 0 11px; border: 1px solid #d9d7d3; border-radius: 6px; color: #394047; font-size: 13px; font-weight: 600; text-transform: none; }.active-user-toggle input { width: 17px; height: 17px; accent-color: var(--green); }
.admin-access-note { margin: 18px 0; padding: 16px; border-left: 4px solid var(--red); border-radius: 0 7px 7px 0; background: #fff2f0; }.admin-access-note strong, .admin-access-note span { display: block; }.admin-access-note strong { color: #9d2f29; font-size: 14px; }.admin-access-note span { margin-top: 5px; color: #6c6261; font-size: 12px; line-height: 1.45; }
.reset-password-button { width: 100%; min-height: 42px; margin: 16px 0 0; border: 1px solid #d8c47f; border-radius: 7px; color: #765910; background: #fff8df; cursor: pointer; font-size: 12px; font-weight: 700; }.reset-password-button:hover { background: #ffefb9; }.reset-password-button[hidden] { display: none; }
.permission-editor { margin-top: 20px; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }.permission-grid { min-height: 48px; display: grid; grid-template-columns: minmax(165px, 1fr) repeat(4, 68px); align-items: center; padding: 6px 12px; border-bottom: 1px solid var(--line); }.permission-grid:last-child { border-bottom: 0; }.permission-grid > strong { font-size: 12px; }.permission-grid > label { display: grid; place-items: center; margin: 0; }.permission-grid input { width: 17px; height: 17px; accent-color: var(--red); }.permission-grid label span { display: none; }.permission-grid-head { min-height: 40px; color: #767c82; background: #f5f4f1; font-size: 10px; font-weight: 700; text-align: center; text-transform: uppercase; }.permission-grid-head strong { text-align: left; }
.signoff-permission-editor { display: grid; grid-template-columns: minmax(0, 1fr) 105px 105px; gap: 12px; align-items: center; padding: 15px 12px; background: #f3f7f9; border-top: 2px solid #d5e2e8; }.signoff-permission-editor > div strong, .signoff-permission-editor > div span { display: block; }.signoff-permission-editor > div strong { font-size: 12px; }.signoff-permission-editor > div span { margin-top: 4px; color: #6f7980; font-size: 10px; }.signoff-permission-editor label { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 0; color: #34434c; font-size: 11px; font-weight: 700; }.signoff-permission-editor label span { display: inline; margin: 0; color: inherit; font-size: inherit; text-transform: none; letter-spacing: 0; }.signoff-permission-editor input { width: 17px; height: 17px; accent-color: var(--green); }
.user-form-actions { position: sticky; z-index: 3; left: auto; right: auto; bottom: 0; display: grid; grid-template-columns: auto 1fr 1fr; gap: 9px; margin-top: 20px; padding: 12px 0 4px; border-top: 1px solid var(--line); background: white; }.danger-button { min-height: 42px; padding: 0 14px; border: 1px solid #e5bebb; border-radius: 7px; color: #ae312b; background: #fff2f1; cursor: pointer; font-size: 12px; font-weight: 700; }
.toast { position: fixed; z-index: 20; right: 24px; bottom: 24px; min-width: 300px; padding: 12px 15px; display: flex; gap: 11px; align-items: center; background: #191e25; color: white; border-radius: 8px; box-shadow: 0 8px 30px #0004; transform: translateY(100px); opacity: 0; transition: .25s; }
.toast.show { transform: translateY(0); opacity: 1; }
.toast > span { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; background: var(--green); }
.toast p { margin: 0; }.toast strong, .toast small { display: block; }.toast strong { font-size: 11px; }.toast small { margin-top: 2px; color: #aeb4bc; font-size: 9px; }

.brand-picker { position: relative; z-index: 15; }
body.drawer-open #brandPicker { visibility: hidden; pointer-events: none; }
.brand-picker-trigger { min-width: 165px; height: 42px; display: grid; grid-template-columns: 28px 1fr auto; gap: 9px; align-items: center; padding: 0 11px; border: 1px solid #d6d8d7; border-radius: 9px; color: #293039; background: white; cursor: pointer; text-align: left; box-shadow: 0 2px 7px #0000000a; }
.brand-picker-trigger > span { width: 27px; height: 27px; display: grid; place-items: center; }.brand-picker-trigger strong { font-size: 12px; }.brand-picker-trigger b { color: #8a8e92; }
.brand-picker-logo, .brand-logo { width: 30px; height: 30px; display: inline-block; object-fit: contain; border-radius: 7px; background: white; }
.all-brands-icon { color: var(--brand-primary); font-style: normal; font-size: 17px; }
.brand-picker-menu { position: absolute; z-index: 30; right: 0; top: calc(100% + 7px); width: 260px; padding: 7px; border: 1px solid #cbc9c4; border-radius: 10px; background: white; box-shadow: 0 16px 38px #11182030; }
.brand-picker-menu[hidden] { display: none; }.brand-picker-menu button { width: 100%; min-height: 54px; display: grid; grid-template-columns: 38px 1fr; gap: 10px; align-items: center; padding: 7px 9px; border: 0; border-radius: 7px; color: #293039; background: white; cursor: pointer; text-align: left; }.brand-picker-menu button:hover { background: #f2f5f6; }.brand-picker-menu button.active { box-shadow: inset 3px 0 var(--brand-primary); background: #f1f5f6; }.brand-picker-menu img { width: 36px; height: 36px; object-fit: contain; border-radius: 7px; }.brand-picker-menu button > span:last-child strong, .brand-picker-menu button > span:last-child small { display: block; }.brand-picker-menu button > span:last-child strong { color: #293039; font-size: 13px; }.brand-picker-menu button > span:last-child small { margin-top: 2px; color: #858a8f; font-size: 10px; }
.sidebar-brand-picker { flex: 0 0 auto; margin: 0 0 6px; }
.sidebar-brand-picker .brand-picker-trigger { width: 100%; min-width: 0; height: 50px; color: var(--brand-nav-picker-text); border-color: transparent; background: var(--brand-nav-picker); box-shadow: 0 5px 14px #00000022; transition: filter .2s, transform .2s, background-color .28s; }
.sidebar-brand-picker .brand-picker-trigger:hover, .sidebar-brand-picker .brand-picker-trigger[aria-expanded="true"] { filter: brightness(1.1); transform: translateY(-1px); }
.sidebar-brand-picker .brand-picker-trigger b { color: currentColor; opacity: .72; }
.sidebar-brand-picker .brand-picker-menu { left: 0; right: auto; }
.sidebar-collapsed .sidebar-brand-picker .brand-picker-trigger { display: grid; grid-template-columns: 1fr; justify-items: center; padding: 0; }
.sidebar-collapsed .sidebar-brand-picker .brand-picker-trigger > strong, .sidebar-collapsed .sidebar-brand-picker .brand-picker-trigger > b { display: none; }
.sidebar-collapsed .sidebar-brand-picker .brand-picker-menu { left: calc(100% + 8px); top: 0; }
.form-brand-picker { position: relative; }
#locationBrandInput { display: none !important; }
select[data-image-picker="true"] { display: none !important; }
.form-brand-picker-trigger { width: 100%; height: 48px; display: flex; align-items: center; justify-content: space-between; padding: 0 12px; border: 1px solid #d9d7d3; border-radius: 7px; color: #293039; background: white; cursor: pointer; text-align: left; }
.form-brand-picker-trigger:hover, .form-brand-picker-trigger[aria-expanded="true"] { border-color: var(--brand-primary); box-shadow: 0 0 0 3px #146b9c18; }
.form-brand-picker-trigger:disabled { color: #777d82; background: #f3f3f1; cursor: not-allowed; }
.form-brand-picker-trigger > span { display: flex; align-items: center; gap: 10px; }.form-brand-picker-trigger strong { font-size: 14px; }.form-brand-picker-trigger b { color: #858a8f; font-size: 13px; }
.form-brand-logo { width: 32px; height: 32px; flex: 0 0 auto; object-fit: contain; border-radius: 7px; background: white; }
.form-brand-picker-menu { position: absolute; z-index: 25; top: calc(100% + 6px); left: 0; right: 0; padding: 6px; border: 1px solid #c9c8c4; border-radius: 9px; background: white; box-shadow: 0 14px 35px #10182024; }
.form-brand-picker-menu[hidden] { display: none; }.form-brand-picker-menu button { width: 100%; min-height: 54px; display: grid; grid-template-columns: 36px 1fr; gap: 10px; align-items: center; padding: 7px 9px; border: 0; border-radius: 7px; color: #293039; background: white; cursor: pointer; text-align: left; }.form-brand-picker-menu button:hover { background: #f2f5f6; }.form-brand-picker-menu button.active { box-shadow: inset 3px 0 var(--brand-primary); background: #f1f5f6; }.form-brand-picker-menu button span strong, .form-brand-picker-menu button span small { display: block; }.form-brand-picker-menu button span strong { font-size: 13px; }.form-brand-picker-menu button span small { margin-top: 2px; color: #858a8f; font-size: 10px; }
.image-brand-select { width: 100%; }.region-create-form .image-brand-select { min-width: 0; }.region-create-form .image-brand-select .form-brand-picker-trigger { height: 40px; }
.campaign-card-heading > strong { display: flex; align-items: center; gap: 7px; }.campaign-card-heading > strong > span { min-width: 0; overflow: hidden; }.campaign-brand-logo { width: 22px; height: 22px; flex: 0 0 auto; object-fit: contain; border-radius: 5px; background: white; }.campaign-directory-brand-logo, .template-brand-logo { width: 23px; height: 23px; margin-right: 8px; object-fit: contain; border-radius: 5px; vertical-align: middle; background: white; }
.campaign-brand-context { display: flex; align-items: center; gap: 8px; margin: 12px 0; color: #596168; font-size: 12px; }.campaign-brand-context .brand-logo { width: 28px; height: 28px; }
.location-directory-toolbar { display: grid; grid-template-columns: minmax(200px, 1fr) 126px 116px; gap: 10px; align-items: stretch; margin: 16px 0 12px; }
.directory-brand-context, .region-brand-context { min-width: 0; min-height: 48px; display: flex; align-items: center; gap: 10px; padding: 7px 12px; border: 1px solid #d9d7d3; border-radius: 7px; background: #f7f7f5; }
.directory-brand-context > span, .region-brand-context > span { min-width: 0; }.directory-brand-context strong, .directory-brand-context small, .region-brand-context strong, .region-brand-context small { display: block; }.directory-brand-context strong, .region-brand-context strong { font-size: 13px; }.directory-brand-context small, .region-brand-context small { margin-top: 2px; overflow: hidden; color: #7d8489; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.location-directory-actions button { height: 48px; min-height: 48px; }
.location-directory-actions { display: contents; }
.location-directory-actions button { width: 100%; margin: 0; padding: 0 12px; line-height: 1; white-space: nowrap; }
.brand-directory-toolbar { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 15px 0 10px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }.brand-directory-toolbar > strong { font-size: 13px; }.brand-admin-list { max-height: calc(100vh - 210px); overflow-y: auto; }.brand-admin-row { width: 100%; min-height: 72px; display: grid; grid-template-columns: 46px minmax(0, 1fr) 24px auto; gap: 12px; align-items: center; padding: 11px 7px; border: 0; border-bottom: 1px solid #ebe9e5; color: #293039; background: white; cursor: pointer; text-align: left; }.brand-admin-row:hover { background: #f7f7f4; }.brand-admin-logo { width: 44px; height: 44px; object-fit: contain; border-radius: 9px; background: #f4f3ef; }.brand-admin-row span strong, .brand-admin-row span small { display: block; }.brand-admin-row span strong { font-size: 14px; }.brand-admin-row span small { margin-top: 4px; color: #858a90; font-size: 10px; }.brand-admin-row > i { width: 20px; height: 20px; border: 2px solid white; border-radius: 50%; box-shadow: 0 0 0 1px #c8c7c3; }.brand-admin-row > b { color: #17658c; font-size: 11px; }.brand-admin-form[hidden] { display: none; }.brand-admin-form { margin-top: 14px; }.brand-form-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }.brand-form-heading p { margin: 0 0 3px; color: #858a90; font-size: 9px; font-weight: 700; text-transform: uppercase; }.brand-form-heading h3 { margin: 0; font-size: 18px; }.brand-form-heading button { border: 0; color: #17658c; background: transparent; cursor: pointer; font-size: 11px; font-weight: 700; }.brand-admin-form label small { display: block; margin-top: 5px; color: #858a90; font-size: 10px; }.brand-admin-form input[type="color"] { height: 46px; padding: 5px; cursor: pointer; }.brand-admin-form input[type="file"] { height: auto; padding: 10px; }.brand-logo-preview { min-height: 94px; display: flex; align-items: center; gap: 14px; margin: 5px 0 15px; padding: 12px; border: 1px solid #dfddd8; border-radius: 8px; background: #f7f6f3; }.brand-logo-preview img { width: 68px; height: 68px; object-fit: contain; border-radius: 10px; background: white; }.brand-logo-preview span { color: #737a80; font-size: 11px; font-weight: 700; }.brand-active-toggle { min-height: 46px; display: flex !important; align-items: center; gap: 9px; padding: 0 12px; border: 1px solid #d9d7d3; border-radius: 7px; }.brand-active-toggle input { width: 18px !important; height: 18px !important; accent-color: var(--green); }.brand-active-toggle span { display: inline !important; margin: 0 !important; color: #394047 !important; font-size: 12px !important; text-transform: none !important; }
.location-brand-group { margin-top: 16px; overflow: hidden; border: 1px solid #deddd9; border-radius: 10px; }.location-brand-group > header, .region-management-brand > header { min-height: 58px; display: flex; align-items: center; gap: 11px; padding: 10px 12px; background: #f4f3f0; }.location-brand-group > header strong, .location-brand-group > header span { display: block; }.location-brand-group > header strong { font-size: 14px; }.location-brand-group > header span { margin-top: 3px; color: #7b8186; font-size: 10px; }.location-brand-group .readonly-store-region { padding: 0 12px; }.directory-store-row { display: grid; grid-template-columns: minmax(0, 1fr) 145px 46px; gap: 14px; justify-content: initial; }.directory-store-row > small { width: 145px; max-width: none; text-align: left; }.edit-location-button { min-height: 30px; justify-self: end; padding: 0 9px; border: 1px solid #cdd9df; border-radius: 6px; color: #25617f; background: #f3f8fa; cursor: pointer; font-size: 10px; font-weight: 700; }
.region-create-form { display: grid; grid-template-columns: 190px minmax(180px, 1fr) auto; gap: 8px; margin-top: 18px; }.region-create-form select, .region-create-form input { min-width: 0; height: 48px; padding: 0 10px; border: 1px solid #d9d7d3; border-radius: 6px; background: white; }.region-create-form .region-brand-context { min-height: 48px; }
.region-management-brand { margin-top: 18px; overflow: hidden; border: 1px solid #dfddd8; border-radius: 9px; }.region-management-row { display: grid; grid-template-columns: 1fr auto auto; gap: 8px; padding: 10px 12px; border-top: 1px solid #ebe9e5; }.region-management-row input { min-width: 0; height: 38px; padding: 0 10px; border: 1px solid #d7d5d0; border-radius: 6px; }.region-management-row button { min-width: 65px; border: 1px solid #cdd8dd; border-radius: 6px; color: #285d78; background: #f3f8fa; cursor: pointer; font-weight: 700; }.region-management-row button.danger { color: #ad342e; border-color: #e3c8c5; background: #fff3f2; }.empty-region-copy { padding: 12px; color: #858a8f; }
.user-brand-permissions { margin: 0; padding: 15px 12px; border: 0; border-bottom: 2px solid #d5e2e8; background: #f8fafb; }.user-brand-permissions legend { font-size: 12px; font-weight: 700; }.user-brand-permissions p { margin: 4px 0 11px; color: #747b81; font-size: 10px; }.user-brand-permissions > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }.user-brand-permissions label { min-height: 50px; display: flex !important; align-items: center; justify-content: flex-start !important; gap: 8px; padding: 7px 9px; border: 1px solid #dedbd5; border-radius: 7px; background: white; cursor: pointer; }.user-brand-permissions input { width: 16px !important; height: 16px !important; }.user-brand-permissions .brand-logo { width: 28px; height: 28px; }.user-brand-permissions label span { display: inline !important; margin: 0 !important; color: #30363b !important; font-size: 11px !important; text-transform: none !important; }.user-brand-summary { color: #7a8187; font-size: 10px; }

.email-template-drawer, .campaign-email-drawer { width: min(900px, 96vw); display: flex; flex-direction: column; overflow: hidden; }
.email-template-drawer .drawer-head, .campaign-email-drawer .drawer-head, .email-template-drawer > .drawer-copy, .campaign-email-drawer > .drawer-copy, .email-brand-lock { flex: 0 0 auto; }
.email-brand-lock { min-height: 62px; display: flex; align-items: center; gap: 12px; margin-bottom: 14px; padding: 10px 13px; border: 1px solid #d8e1e6; border-radius: 8px; background: #f4f8fa; }.email-brand-lock img { width: 42px; height: 42px; object-fit: contain; border-radius: 8px; background: white; }.email-brand-lock span, .email-brand-lock strong, .email-brand-lock small { display: block; }.email-brand-lock span { color: #7b8186; font-size: 9px; font-weight: 700; text-transform: uppercase; }.email-brand-lock strong { margin-top: 2px; font-size: 14px; }.email-brand-lock small { margin-top: 2px; color: #7b8186; font-size: 10px; }
.email-designer-form { min-height: 0; flex: 1 1 auto; overflow-y: auto; padding: 2px 4px 105px 0; }.email-designer-form > .form-row { margin-bottom: 16px; }.email-designer-form label > span, .email-image-fieldset > legend { display: block; margin-bottom: 6px; color: #747980; font-size: 11px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; }.email-image-fieldset > legend small { margin-left: 6px; color: #94999d; font-size: 9px; font-weight: 600; text-transform: none; }.email-designer-form input, .email-designer-form select { width: 100%; height: 44px; padding: 0 11px; border: 1px solid #d9d7d3; border-radius: 7px; background: white; font: inherit; font-size: 13px; }
.email-image-fieldset { margin: 0 0 15px; padding: 0; border: 0; }.email-image-library { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }.email-image-option { position: relative; min-width: 0; overflow: hidden; padding: 0; border: 2px solid transparent; border-radius: 8px; background: #f1f1ef; cursor: pointer; text-align: left; }.email-image-option:hover { border-color: #9ebdcd; }.email-image-option.selected { border-color: var(--brand-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-primary) 15%, transparent); }.email-image-option img { width: 100%; aspect-ratio: 3 / 2; display: block; object-fit: cover; background: #e4e6e6; }.email-image-option span { display: block; overflow: hidden; padding: 8px 9px; font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }.email-image-option.selected::after { content: "✓"; position: absolute; top: 7px; right: 7px; width: 24px; height: 24px; display: grid; place-items: center; border: 2px solid white; border-radius: 50%; color: white; background: var(--brand-primary); font-size: 12px; font-weight: 800; }.email-image-library-empty { grid-column: 1 / -1; padding: 24px; border: 1px dashed #cfd2d3; border-radius: 8px; color: #7c8287; background: #fafaf8; text-align: center; font-size: 11px; }
.email-image-upload { display: grid; grid-template-columns: minmax(0, 1fr) minmax(230px, .7fr); gap: 14px; align-items: center; margin-bottom: 15px; padding: 13px; border: 1px solid #deddd9; border-radius: 8px; background: #faf9f7; }.email-image-upload strong, .email-image-upload span { display: block; }.email-image-upload strong { font-size: 12px; }.email-image-upload span { margin-top: 3px; color: #7b8186; font-size: 10px; }.email-image-upload input { height: auto; padding: 9px; background: white; }
.email-crop-panel { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(220px, .6fr); gap: 15px; margin: 0 0 18px; padding: 14px; border: 1px solid #b9cbd4; border-radius: 9px; background: #f3f8fa; }.email-crop-panel[hidden] { display: none; }.email-crop-stage { overflow: hidden; border-radius: 7px; background: #1d252b; box-shadow: 0 0 0 1px #182127; }.email-crop-stage canvas { width: 100%; aspect-ratio: 3 / 2; display: block; }.email-crop-controls { display: flex; flex-direction: column; gap: 9px; }.email-crop-controls label { margin: 0; }.email-crop-controls label span { margin-bottom: 4px; font-size: 9px; }.email-crop-controls input[type="range"] { height: 24px; padding: 0; accent-color: var(--brand-primary); }.email-crop-controls button { min-height: 42px; margin-top: auto; padding: 0 10px; border: 0; border-radius: 7px; color: white; background: var(--brand-primary); cursor: pointer; font-size: 11px; font-weight: 700; }
.wysiwyg-label { margin: 0; }.wysiwyg-toolbar { display: flex; flex-wrap: wrap; gap: 5px; padding: 7px; border: 1px solid #d8d7d3; border-bottom: 0; border-radius: 7px 7px 0 0; background: #f5f4f1; }.wysiwyg-toolbar button { min-width: 34px; height: 32px; padding: 0 9px; border: 1px solid #d6d5d1; border-radius: 5px; color: #333a40; background: white; cursor: pointer; font-size: 11px; }.wysiwyg-toolbar button:hover { color: white; border-color: var(--brand-primary); background: var(--brand-primary); }.wysiwyg-editor { min-height: 190px; margin-bottom: 16px; padding: 16px; overflow-y: auto; border: 1px solid #d8d7d3; border-radius: 0 0 7px 7px; outline: 0; color: #393336; background: white; font: 14px/1.55 Arial, sans-serif; }.wysiwyg-editor:focus { border-color: var(--brand-primary); box-shadow: inset 0 0 0 1px var(--brand-primary); }.wysiwyg-editor p { margin: 0 0 12px; }.wysiwyg-editor a { color: #006491; }
.email-fixed-note { margin: 4px 0 16px; padding: 13px 15px; border-left: 4px solid #006491; border-radius: 0 7px 7px 0; background: #eef5f8; }.email-fixed-note strong, .email-fixed-note span { display: block; }.email-fixed-note strong { color: #00527a; font-size: 12px; }.email-fixed-note span { margin-top: 4px; color: #65727a; font-size: 10px; line-height: 1.45; }.email-designer-actions { display: grid; grid-template-columns: 150px 1fr 1fr; gap: 9px; padding-top: 10px; background: white; }

.auth-page { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: #f3f2ef; }
.auth-card { width: min(460px, 100%); padding: 38px; border: 1px solid #dfddd8; border-radius: 14px; background: white; box-shadow: 0 20px 55px #20242a18; }.auth-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 34px; }.auth-brand .brand-name { display: inline; color: #20252b; font-size: 19px; font-weight: 700; }.auth-brand .brand-name small { color: #777d84; font-size: 9px; }.auth-card .eyebrow { margin: 0 0 7px; color: #858a90; font-size: 10px; font-weight: 700; letter-spacing: .7px; text-transform: uppercase; }.auth-card h1 { margin: 0; font: 650 30px/1.15 "Fraunces", serif; }.auth-copy { margin: 12px 0 22px; color: #6e747b; font-size: 13px; line-height: 1.55; }.auth-error { padding: 11px 13px; border-radius: 7px; color: #a62f29; background: #fceae8; font-size: 12px; font-weight: 700; }.auth-form label { display: block; margin-bottom: 15px; }.auth-form label span { display: block; margin-bottom: 6px; color: #676e75; font-size: 11px; font-weight: 700; }.auth-form input { width: 100%; height: 46px; padding: 0 12px; border: 1px solid #d6d4cf; border-radius: 7px; outline: 0; font-size: 14px; }.auth-form input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px #146b9c18; }.auth-form .primary-button { width: 100%; min-height: 46px; margin-top: 5px; }.password-guidance { margin: -2px 0 17px; color: #80868c; font-size: 10px; line-height: 1.45; }

@media (max-width: 1100px) {
  .app-shell { grid-template-columns: 72px minmax(850px, 1fr); }
  .sidebar { padding-inline: 10px; }
  .brand { justify-content: center; }.brand-name, .main-nav p, .nav-label, .main-nav em, .sidebar-note, .profile div:nth-child(2), .profile button { display: none; }
  .sidebar-brand-picker .brand-picker-trigger { grid-template-columns: 1fr; justify-items: center; padding: 0; }.sidebar-brand-picker .brand-picker-trigger > strong, .sidebar-brand-picker .brand-picker-trigger > b { display: none; }.sidebar-brand-picker .brand-picker-menu { left: calc(100% + 8px); top: 0; }
  .main-nav a { justify-content: center; padding: 0; }.profile { justify-content: center; }
  .sidebar-toggle { display: none; }
}

@media (max-width: 620px) {
  .drawer { width: 100vw; padding: 23px; }
  .drawer-head h2 { font-size: 25px; }
  .drawer-footer { left: 23px; right: 23px; }
  .template-brand-toolbar { grid-template-columns: 1fr; }.template-create-actions button { flex: 1; }.template-library { max-height: calc(100vh - 365px); }
  .location-directory-toolbar { grid-template-columns: 1fr 1fr; }.directory-brand-context { grid-column: 1 / -1; }
  .region-create-form { grid-template-columns: 1fr; }
  .directory-store-row { grid-template-columns: minmax(0, 1fr) 105px 42px; gap: 9px; }.directory-store-row > small { width: 105px; }
  .target-selection-summary { align-items: flex-start; flex-direction: column; }.target-dual-list { grid-template-columns: 1fr; }.target-transfer-actions { flex-direction: row; }.target-transfer-actions button { flex: 1; }.target-group-list { height: 220px; }
  .email-designer-form > .form-row, .email-image-upload, .email-crop-panel { grid-template-columns: 1fr; }
  .email-image-library { grid-template-columns: 1fr 1fr; }
  .email-designer-form { padding-bottom: 175px; }.email-designer-actions { grid-template-columns: 1fr; }
  .dominos-email-header { height: 65px; padding: 0 18px; }.dominos-email-header > img { width: 90px; }.dominos-email-body { padding: 24px 22px 14px; }.dominos-local-store { grid-template-columns: 40% 60%; }.dominos-local-store > div { padding: 20px 15px 20px 5px; }.dominos-local-store strong { font-size: 17px; }
  .exclusion-audit-head { display: none; }
  .exclusion-audit-row { grid-template-columns: 1fr auto; gap: 9px 12px; }
  .reason-compact, .audit-compact { grid-column: 1; }
  .reinclude-button { grid-column: 2; grid-row: 1 / span 3; }
  .store-exclusion-context, .store-exclude-form { grid-template-columns: 1fr; }
  .marker-region-options, .form-row { grid-template-columns: 1fr; }
  .marker-region-options label:last-child { grid-column: auto; }
  .campaign-directory-row { grid-template-columns: 1fr; }
  .campaign-directory-open { grid-template-columns: 44px minmax(0, 1fr); }
  .campaign-directory-open .readiness-badge { grid-column: 2; justify-self: start; }
  .campaign-duplicate-button { justify-content: center; }
  .user-directory-row { grid-template-columns: 36px minmax(0, 1fr) auto; }.user-directory-row .edit-user-button { grid-column: 2 / -1; }
  .permission-grid { grid-template-columns: minmax(100px, 1fr) repeat(4, 42px); padding-inline: 7px; }.permission-grid-head span { font-size: 8px; }
  .user-form-actions { grid-template-columns: 1fr 1fr; }.user-form-actions .danger-button { grid-column: 1 / -1; }
  .campaign-inspector-drawer { padding: 23px; }
  .campaign-inspector-drawer .campaign-meta { grid-template-columns: 1fr 1fr; gap: 15px 0; }
  .campaign-inspector-drawer .campaign-meta > div:nth-child(2) { border-right: 0; }
  .campaign-inspector-drawer .activity-preview-button { padding-right: 115px; }
  .activity-editor-actions { grid-template-columns: 1fr 1fr; }.activity-editor-actions .danger-button { grid-column: 1 / -1; }
  .campaign-inspector-actions { grid-template-columns: 1fr; }.campaign-inspector-actions .danger-button { min-width: 0; }
  .excluded-store-card { grid-template-columns: 1fr; }.excluded-store-card .inline-reinclude { width: 100%; }
  .signoff-permission-editor { grid-template-columns: 1fr 1fr; }.signoff-permission-editor > div { grid-column: 1 / -1; }
}

@media (min-width: 621px) {
  .user-directory-row { grid-template-columns: 40px minmax(0, 1fr) minmax(100px, auto) auto auto; }
}

.campaign-pack-trigger { position: absolute; right: 8px; bottom: 8px; min-width: 36px; height: 23px; padding: 0 7px; border: 1px solid #ffffff66; border-radius: 5px; color: white; background: #ffffff18; cursor: pointer; font-size: 8px; font-weight: 800; letter-spacing: .4px; }
.campaign-pack-trigger:hover { color: #20262c; background: white; }
.week-campaign:has(.campaign-pack-trigger) .week-campaign-meta { padding-right: 42px; }
.campaign-pack-print { display: none; }

@page campaign-pack-landscape { size: A4 landscape; margin: 12mm; }

@media print {
  body.printing-campaign-pack { page: campaign-pack-landscape; }
  body.printing-campaign-pack .app-shell, body.printing-campaign-pack .drawer-backdrop, body.printing-campaign-pack .toast { display: none !important; }
  body.printing-campaign-pack .campaign-pack-print { display: block !important; }
  .campaign-pack-print { color: #20262c; background: white; font-family: "DM Sans", sans-serif; }
  .campaign-pack-page { min-height: 180mm; position: relative; display: flex; flex-direction: column; break-after: page; page-break-after: always; }
  .campaign-pack-page:last-child { break-after: auto; page-break-after: auto; }
  .campaign-pack-page { page: campaign-pack-landscape; }
  .campaign-pack-cover { padding: 2mm 4mm; }
  .campaign-pack-cover > header { display: flex; align-items: center; gap: 10px; padding-bottom: 8mm; border-bottom: 1px solid #d8dadd; }
  .campaign-pack-cover > header img { width: 38px; height: 38px; object-fit: contain; }
  .campaign-pack-cover > header strong, .campaign-pack-cover > header small { display: block; }.campaign-pack-cover > header strong { font-size: 15pt; }.campaign-pack-cover > header small { margin-top: 2px; color: #737b82; font-size: 7pt; text-transform: uppercase; letter-spacing: .7px; }
  .pack-cover-title { max-width: 220mm; margin: 11mm 0 7mm; }.pack-cover-title > p:first-child { margin: 0 0 3mm; color: var(--brand-primary); font-size: 10pt; font-weight: 800; letter-spacing: 1.4px; text-transform: uppercase; }.pack-cover-title h1 { margin: 0; font: 650 34pt/1.05 "Fraunces", serif; }.pack-cover-title h2 { margin: 5mm 0 0; color: #747b81; font-size: 7pt; text-transform: uppercase; letter-spacing: .7px; }.pack-cover-title > p:last-child { max-width: 190mm; margin: 2mm 0 0; color: #596168; font-size: 10pt; line-height: 1.55; }
  .pack-cover-title { margin: 7mm 0 4mm; }
  .pack-cover-brand { display: flex; align-items: center; gap: 3mm; margin-bottom: 3mm; }
  .pack-cover-brand-logo { width: 16mm; height: 16mm; object-fit: contain; border-radius: 3mm; }
  .pack-cover-brand span small, .pack-cover-brand span p { display: block; }
  .pack-cover-brand span small { margin-bottom: 1mm; color: #697178; font-size: 7pt; font-weight: 800; letter-spacing: .7px; text-transform: uppercase; }
  .pack-cover-brand span p { margin: 0; color: var(--brand-primary); font-size: 10pt; font-weight: 800; letter-spacing: 1.4px; text-transform: uppercase; }
  .pack-cover-title h1 { font-size: 29pt; }
  .pack-cover-title h2 { margin-top: 3mm; }
  .pack-cover-title > p { margin-top: 1mm; line-height: 1.35; }
  .pack-status { display: inline-block; margin-top: 4mm; padding: 2mm 4mm; border-radius: 12px; font-size: 8pt; font-weight: 800; }.pack-status.approved { color: #14704d; background: #e2f2e9; }.pack-status.partial { color: #8a5b04; background: #fff1cf; }.pack-status.pending { color: #a53531; background: #fbe5e3; }
  .pack-cover-meta { display: grid; grid-template-columns: repeat(4, 1fr); gap: 3mm; margin: 0 0 7mm; }.pack-cover-meta section { padding: 4mm; border: 1px solid #dddeda; border-radius: 3mm; background: #f6f6f4; }.pack-cover-meta span, .pack-cover-meta strong { display: block; }.pack-cover-meta span { color: #777f85; font-size: 6.5pt; font-weight: 700; text-transform: uppercase; }.pack-cover-meta strong { margin-top: 2mm; font-size: 10pt; }
  .pack-cover-meta { gap: 2mm; margin-bottom: 4mm; }
  .pack-cover-meta section { padding: 3mm; }
  .pack-cover-list { margin-top: 4mm; }.pack-cover-list h2 { margin: 0 0 2mm; font-size: 11pt; }.pack-target-label, .pack-empty { margin: 0; padding: 3mm 4mm; border-radius: 2mm; color: #4f575e; background: #f2f4f4; font-size: 8pt; }.pack-store-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5mm 3mm; }.pack-store-grid > span { padding: 2mm 3mm; border: 1px solid #e0e1de; border-radius: 2mm; font-size: 7pt; }.pack-store-grid small { color: #81878c; }
  .pack-cover-list { margin-top: 3mm; }
  .pack-cover-list h2 { margin-bottom: 1.5mm; font-size: 9pt; }
  .pack-store-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.2mm; }
  .pack-store-grid > span { padding: 1.5mm 2mm; }
  .pack-store-grid-included > span, .pack-target-included, .pack-empty-included { color: #246044; border-color: #b9ddc8; background: #e8f5ed; }
  .pack-store-grid-excluded > span { color: #8b3532; border-color: #efc2bf; background: #fbe9e7; }
  .campaign-pack-cover > footer { margin-top: auto; padding-top: 5mm; border-top: 1px solid #d8dadd; color: #7b8287; font-size: 7pt; }
  .pack-page-header { display: flex; justify-content: space-between; align-items: center; padding-bottom: 4mm; border-bottom: 1px solid #d7d9da; }.pack-page-header > div { display: flex; align-items: center; gap: 3mm; }.pack-brand-logo { width: 11mm; height: 11mm; object-fit: contain; border-radius: 2mm; }.pack-page-header span small, .pack-page-header span strong { display: block; }.pack-page-header span small { color: #7a8187; font-size: 6pt; text-transform: uppercase; }.pack-page-header span strong { margin-top: 1mm; font-size: 10pt; }.pack-page-header > b { color: #7b8288; font-size: 7pt; }
  .pack-calendar-page > h2 { margin: 7mm 0 1mm; font: 650 22pt/1.1 "Fraunces", serif; }.pack-calendar-page > p { margin: 0 0 6mm; color: #727980; font-size: 8pt; }.pack-calendar { display: flex; flex-direction: column; gap: 5mm; }.pack-calendar-week { border: 1px solid #d9dad7; border-radius: 2mm; overflow: hidden; }.pack-calendar-week > header { padding: 2mm 3mm; color: white; background: #27313a; font-size: 7pt; font-weight: 800; }.pack-calendar-week > div { display: grid; grid-template-columns: repeat(7, 1fr); }.pack-calendar-day { min-height: 27mm; padding: 2mm; border-right: 1px solid #dedfdd; }.pack-calendar-day:last-child { border-right: 0; }.pack-calendar-day.inactive { color: #9ca1a5; background: #eff0f0; }.pack-calendar-day > strong { display: block; margin-bottom: 2mm; font-size: 7pt; }.pack-calendar-day > em { color: #a1a5a8; font-size: 6pt; font-style: normal; }.pack-calendar-day > span { display: block; margin-top: 1mm; padding: 1.5mm; border-left: 2px solid #777; border-radius: 1mm; background: #f5f5f4; font-size: 6pt; }.pack-calendar-day > span b, .pack-calendar-day > span small { display: block; }.pack-calendar-day > span small { margin-top: .7mm; color: #747b80; }.pack-calendar-day > span.sms { border-color: #e33b36; background: #fae9e8; }.pack-calendar-day > span.email { border-color: #1683b4; background: #e8f4f9; }.pack-calendar-day > span.push { border-color: #7957b0; background: #f0ebf8; }
  .pack-activity-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(110mm, 1.25fr); gap: 10mm; align-items: end; margin: 7mm 0 5mm; }.pack-activity-heading span { color: var(--brand-primary); font-size: 7pt; font-weight: 800; text-transform: uppercase; }.pack-activity-heading h2 { margin: 2mm 0 0; font: 650 22pt/1.1 "Fraunces", serif; }.pack-activity-heading dl { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2mm; margin: 0; }.pack-activity-heading dl > div { padding: 2.5mm; border: 1px solid #dedfdd; border-radius: 2mm; }.pack-activity-heading dt { color: #7a8186; font-size: 6pt; font-weight: 700; text-transform: uppercase; }.pack-activity-heading dd { margin: 1mm 0 0; font-size: 8pt; font-weight: 700; }
  .pack-content-example { flex: 1; padding: 5mm; overflow: hidden; border: 1px solid #d9dad7; border-radius: 3mm; background: #f7f7f5; }.pack-content-example > h3 { margin: 0 0 4mm; font-size: 10pt; }.pack-content-example .phone-preview { min-height: 0; height: 115mm; max-width: 70mm; margin: 0 auto; padding: 10mm 5mm 5mm; border-width: 2mm; }.pack-content-example .message-bubble { font-size: 8pt; }.pack-content-example .dominos-email-preview { max-width: 125mm; margin: 0 auto; }.pack-content-example .dominos-email-fixed { display: none; }.pack-content-example .dominos-email-hero { max-height: 62mm; object-fit: cover; }.pack-content-example .script-preview, .pack-content-example .print-preview { max-width: 180mm; margin: 8mm auto 0; }
  .pack-activities-page { display: block; min-height: 0; }
  .pack-activities-page > h2 { margin: 6mm 0 5mm; font: 650 22pt/1.1 "Fraunces", serif; }
  .pack-activity-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5mm; align-items: start; }
  .pack-activity-grid.single { grid-template-columns: minmax(0, 1fr); }
  .pack-activity-card { min-width: 0; padding: 4mm; break-inside: avoid; page-break-inside: avoid; border: 1px solid #d9dad7; border-radius: 3mm; background: white; }
  .pack-activity-card .pack-activity-heading { display: block; margin: 0 0 3mm; }
  .pack-activity-card .pack-activity-heading h2 { margin: 1.5mm 0 4mm; font-size: 18pt; }
  .pack-activity-card .pack-activity-heading dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5mm; }
  .pack-activity-card .pack-activity-heading dl > div { padding: 2.5mm 3mm; }
  .pack-activity-card .pack-activity-heading dt { font-size: 7pt; }
  .pack-activity-card .pack-activity-heading dd { font-size: 9pt; }
  .pack-activity-card .pack-content-example { padding: 3mm; }
  .pack-activity-card .pack-content-example > h3 { margin-bottom: 3mm; font-size: 10pt; }
  .pack-activity-card .pack-content-example .phone-preview { width: 43mm; height: 64mm; min-height: 0; padding: 7mm 3mm 3mm; border-width: 1.5mm; }
  .pack-activity-card .pack-content-example .message-bubble { padding: 2.5mm; font-size: 6.5pt; line-height: 1.35; }
  .pack-activity-card .pack-content-example .dominos-email-preview { width: 100%; max-width: 82mm; }
  .pack-activity-card .pack-content-example .dominos-email-hero { max-height: 36mm; }
  .pack-activity-card .pack-content-example .dominos-email-body { padding: 3mm; font-size: 6.5pt; }
  .pack-activity-card .pack-content-example .script-preview, .pack-activity-card .pack-content-example .print-preview { max-width: none; margin: 2mm 0 0; font-size: 7pt; }
  .pack-activities-page { width: 273mm; height: 180mm; overflow: hidden; break-inside: avoid; page-break-inside: avoid; }
  .pack-day-heading { margin: 5mm 0 4mm; }
  .pack-day-heading small { color: var(--brand-primary); font-size: 7pt; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; }
  .pack-day-heading h2 { margin: 1mm 0 0; font: 650 20pt/1.1 "Fraunces", serif; }
  .pack-activity-grid { height: 142mm; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 4mm; }
  .pack-activity-grid.single { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr); }
  .pack-activity-card { display: flex; flex-direction: column; height: 100%; overflow: hidden; }
  .pack-activity-card > header { display: flex; align-items: baseline; gap: 3mm; padding-bottom: 2mm; border-bottom: 1px solid #e1e2df; }
  .pack-activity-card > header span { color: var(--brand-primary); font-size: 7pt; font-weight: 800; text-transform: uppercase; }
  .pack-activity-card > header h3 { margin: 0; font: 650 14pt/1.1 "Fraunces", serif; }
  .pack-activity-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2mm; margin: 3mm 0; }
  .pack-activity-facts > div { padding: 2mm; border-radius: 1.5mm; background: #f3f4f3; }
  .pack-activity-facts dt { color: #777f85; font-size: 6pt; font-weight: 800; text-transform: uppercase; }
  .pack-activity-facts dd { margin: .8mm 0 0; font-size: 8pt; font-weight: 700; }
  .pack-activity-content { min-height: 0; flex: 1; overflow: hidden; }
  .pack-activity-content h4 { margin: 0 0 1.5mm; font-size: 8pt; }
  .pack-text-content, .pack-message-example { height: calc(100% - 5mm); padding: 3mm 4mm; overflow: hidden; border: 1px solid #dfe1de; border-radius: 2mm; background: #f8f8f6; color: #30373c; font-size: 8pt; line-height: 1.4; }
  .pack-text-content p:first-child, .pack-message-example p:first-child { margin-top: 0; }
  .pack-text-content p:last-child, .pack-message-example p:last-child { margin-bottom: 0; }
  .pack-message-example > span { display: block; margin-bottom: 2mm; color: #727a80; font-size: 6pt; font-weight: 800; text-transform: uppercase; }
  .pack-message-example > strong { display: block; margin-bottom: 1mm; font-size: 10pt; }
  .pack-message-example > p { margin: 0; white-space: pre-wrap; }
  .pack-activity-grid.single .pack-activity-card { padding: 5mm; }
  .pack-activity-grid.single .pack-activity-card > header h3 { font-size: 18pt; }
  .pack-activity-grid.single .pack-activity-facts dd { font-size: 9pt; }
  .pack-activity-grid.single .pack-text-content, .pack-activity-grid.single .pack-message-example { font-size: 11pt; line-height: 1.5; }
  .pack-email-proof { min-height: 0; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); flex: 1; overflow: hidden; border: 1px solid #d9dcd9; border-radius: 3mm; background: white; }
  .pack-activity-grid.single .pack-email-proof { grid-template-columns: 1fr; grid-template-rows: 92mm minmax(0, 1fr); }
  .pack-email-proof > img { width: 100%; height: 100%; min-height: 0; object-fit: cover; }
  .pack-proof-placeholder { display: grid; place-items: center; color: #899096; background: #eef0ef; font-size: 8pt; }
  .pack-email-copy { min-width: 0; display: flex; flex-direction: column; padding: 5mm; overflow: hidden; }
  .pack-email-copy > div { min-height: 0; overflow: hidden; color: #333b40; font-size: 10pt; line-height: 1.45; }
  .pack-email-copy p:first-child { margin-top: 0; }
  .pack-email-copy > strong { align-self: flex-start; margin-top: auto; padding: 3mm 9mm; border-radius: 8mm; color: white; background: #369b34; font-size: 10pt; text-transform: uppercase; }
  .pack-sms-proof { position: relative; width: 76mm; height: 153mm; margin: auto; padding: 13mm 6mm 7mm; border: 2.5mm solid #242a2f; border-radius: 15mm; background: #f7f7f8; box-shadow: 0 3mm 7mm #1d252b20; }
  .pack-phone-speaker { position: absolute; top: 4mm; left: 50%; width: 19mm; height: 1.8mm; border-radius: 2mm; background: #242a2f; transform: translateX(-50%); }
  .pack-sms-thread { display: flex; height: 100%; flex-direction: column; }
  .pack-sms-thread > small { margin-bottom: 6mm; color: #777f86; font-size: 8pt; text-align: center; }
  .pack-sms-thread > div { align-self: flex-start; padding: 4mm; border-radius: 5mm 5mm 5mm 2mm; color: #20262c; background: #e2e3e7; font-size: 10pt; line-height: 1.42; }
  .pack-sms-thread > time { margin-top: 3mm; color: #8a9196; font-size: 8pt; text-align: center; }
  .pack-push-proof { display: grid; flex: 1; place-items: center; }
  .pack-push-screen { width: 92mm; height: 155mm; padding: 7mm; border: 2.5mm solid #252b30; border-radius: 15mm; background: linear-gradient(155deg, #e8f1f5, #f8f8fa 55%, #e9e4ef); box-shadow: 0 3mm 7mm #1d252b20; }
  .pack-push-screen > span { display: block; margin-bottom: 12mm; font-size: 9pt; font-weight: 800; }
  .pack-push-screen > div { display: grid; grid-template-columns: 11mm minmax(0, 1fr) auto; gap: 3mm; padding: 4mm; border: 1px solid #d3d5d8; border-radius: 5mm; background: #ffffffed; }
  .pack-push-screen i { display: grid; width: 11mm; height: 11mm; place-items: center; border-radius: 2.5mm; color: white; background: var(--brand-primary); font-size: 9pt; font-style: normal; font-weight: 900; }
  .pack-push-screen section small, .pack-push-screen section strong, .pack-push-screen section p { display: block; }
  .pack-push-screen section small { color: #747b80; font-size: 8pt; }.pack-push-screen section strong { margin-top: 1mm; font-size: 11pt; }.pack-push-screen section p { margin: 1.5mm 0 0; font-size: 10pt; line-height: 1.4; }
  .pack-push-screen time { color: #8b9195; font-size: 7pt; }
  .pack-document-proof { flex: 1; padding: 7mm; border: 1px solid #d9dcd9; border-radius: 3mm; background: white; }
  .pack-document-proof > span { color: var(--brand-primary); font-size: 7pt; font-weight: 800; text-transform: uppercase; }.pack-document-proof h3 { margin: 3mm 0; font: 650 18pt/1.1 "Fraunces", serif; }.pack-document-proof p { font-size: 9pt; line-height: 1.55; }.pack-document-proof small { color: #747b80; font-size: 7pt; }
  .pack-page-header span em { display: block; margin-top: 1mm; color: #747c82; font-size: 7pt; font-style: normal; font-weight: 700; }
  .pack-activity-grid { height: 126mm; grid-template-rows: minmax(0, 1fr); gap: 4mm; }
  .pack-activity-grid.count-1, .pack-activity-grid.count-2 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pack-activity-grid.count-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pack-activity-grid.count-1 .pack-activity-facts, .pack-activity-grid.count-2 .pack-activity-facts, .pack-activity-grid.count-3 .pack-activity-facts { grid-template-columns: 1fr; }
  .pack-disclaimer { margin-top: auto; padding-top: 3mm; border-top: 1px solid #d8dadd; color: #747c82; font-size: 7pt; }
  .pack-activities-page { display: flex; flex-direction: column; }
  .campaign-pack-cover > footer { display: flex; justify-content: space-between; gap: 8mm; }
}

.auth-divider { display: flex; align-items: center; gap: 12px; margin: 20px 0; color: #8a8f94; font-size: 11px; }
.auth-divider::before, .auth-divider::after { content: ""; flex: 1; height: 1px; background: #dfddd8; }
.microsoft-login-button { min-height: 48px; display: flex; align-items: center; justify-content: center; gap: 11px; border: 1px solid #8c8c8c; border-radius: 7px; color: #242424; background: white; font-size: 14px; font-weight: 600; text-decoration: none; }
.microsoft-login-button:hover { border-color: #555; background: #f7f7f7; }
.microsoft-mark { width: 20px; height: 20px; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 2px; }
.microsoft-mark i:nth-child(1) { background: #f25022; }.microsoft-mark i:nth-child(2) { background: #7fba00; }.microsoft-mark i:nth-child(3) { background: #00a4ef; }.microsoft-mark i:nth-child(4) { background: #ffb900; }
