.portal-layout main { max-width: 1160px; padding: 30px 32px 50px; }
.portal-layout .environment-note { margin-bottom: 18px; }
.portal-layout .sidebar .simple-nav { gap: 6px; }
.portal-layout .sidebar .simple-nav a { font-size: 14px; padding: 13px 12px; }
.portal-layout .sidebar .simple-nav .service-nav { margin-top: 24px; border-top: 1px solid #354554; border-radius: 0; font-size: 12px; }
.switch-business { color: var(--muted); font-size: 12px; margin-left: 16px; text-decoration: underline; }
.portal-heading { display: flex; justify-content: space-between; gap: 24px; align-items: center; margin-bottom: 24px; }
.portal-heading h1 { margin: 0 0 8px; font-size: 32px; letter-spacing: -.7px; }
.portal-heading h2 { margin: 0; }
.portal-heading p { margin: 5px 0 0; color: var(--muted); max-width: 740px; font-size: 14px; }
.portal-heading .eyebrow { margin: 0 0 8px; font-size: 12px; color: #846255; font-weight: 600; letter-spacing: .3px; }
.portal-layout .button { min-height: 42px; font-size: 14px; padding: 10px 16px; }
.portal-layout .panel h2 { font-size: 20px; line-height: 1.35; }
.workflow { display: flex; flex-wrap: wrap; gap: 11px; align-items: center; margin: 0 0 26px; color: #586779; font-size: 13px; }
.workflow b { display: inline-grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; background: #e8edf2; margin-right: 5px; font-size: 12px; }
.portal-tabs { display: flex; flex-wrap: wrap; gap: 7px; padding-bottom: 14px; border-bottom: 1px solid var(--line); margin-bottom: 14px; }
.portal-tabs a { padding: 10px 14px; border-radius: 7px; font-size: 14px; font-weight: 600; color: #647183; }
.portal-tabs a[aria-current=page] { background: #fff0e9; color: #9c3f2c; }
.portal-tabs a:hover { background: #e9edf2; text-decoration: none; }
.portal-tabs b { margin-left: 5px; border-radius: 5px; background: #fff; padding: 2px 6px; font-size: 12px; }
.period-progress,.archive-link { color: var(--muted); font-size: 13px; margin: 12px 0; }
.archive-link a,.brief-notice a { color: #9c432f; text-decoration: underline; font-weight: 600; }
.portal-filter { margin: 0 0 20px; }
.portal-filter summary { font-size: 12px; color: var(--muted); }
.portal-filter form { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
.portal-filter select { max-width: 340px; }
.campaign-card { padding: 26px; scroll-margin-top: 24px; }
.campaign-card-head h2 { margin: 10px 0 6px; }
.campaign-card-head p { color: var(--muted); margin: 0; font-size: 12px; }
.status-pill { display: inline-block; border-radius: 5px; background: #edf1f8; color: #335779; padding: 4px 9px; font-size: 12px; font-weight: 600; }
.status-ready { background: #e5f3ea; color: #24633e; }
.card-decisions,.card-download { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 20px 0; }
.card-decisions .text-button { color: #687284; font-size: 13px; padding: 12px; }
.campaign-preview { margin: 22px 0; }
.campaign-preview.with-artwork { display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr); gap: 24px; align-items: start; }
.campaign-artwork { width: 100%; max-height: 630px; object-fit: contain; background: #f1f3f6; border-radius: 8px; }
.campaign-copy { background: #f7f8fa; border: 1px solid #e9edf1; border-radius: 8px; padding: 18px; }
.campaign-copy .post-text { line-height: 1.55; margin: 0; white-space: pre-line; font-size: 14px; }
.past-feedback { margin: 15px 0; padding: 12px 15px; border-left: 3px solid #b8cbdf; background: #f4f7fb; }
.past-feedback summary { font-size: 13px; color: #50627a; }
.past-feedback p { font-size: 14px; margin: 8px 0 0; }
.revision-box { border-top: 1px solid var(--line); padding-top: 20px; margin-top: 22px; scroll-margin-top: 24px; }
.revision-box h3 { margin: 0 0 10px; font-size: 17px; }
.revision-box label { display: block; margin: 0 0 8px; font-weight: 600; font-size: 13px; }
.revision-box textarea { font-size: 14px; padding: 13px; }
.revision-box .check-label { margin-top: 12px; font-weight: 400; }
.revision-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 15px; margin-top: 14px; }
.revision-actions span { color: var(--muted); font-size: 12px; }
.post-more { border-top: 1px solid var(--line); margin-top: 22px; padding-top: 15px; }
.post-more summary { font-size: 12px; color: var(--muted); }
.post-more .actions { margin: 15px 0 0; }
.portal-empty { padding: 38px; text-align: center; }
.portal-empty>span { display: block; color: #8ca5a0; font-size: 32px; }
.portal-empty p { color: var(--muted); }
.business-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px,1fr)); gap: 18px; }
.business-card { padding: 24px; margin: 0; display: flex; flex-direction: column; align-items: start; }
.business-initial { display: grid; place-items: center; width: 43px; height: 43px; background: #fff0e9; color: #a9583f; border-radius: 9px; font-weight: 700; font-size: 22px; }
.business-card h2 { margin: 17px 0 7px; overflow-wrap: anywhere; }
.business-card>p { margin: 0 0 18px; color: var(--muted); flex: 1; }
.business-counts { display: flex; flex-wrap: wrap; gap: 14px; margin: 0 0 20px; font-size: 12px; color: #647183; }
.business-counts strong { color: var(--ink); margin-left: 3px; }
.add-business { margin-top: 24px; }
.add-business>summary { font-size: 14px; }
.portal-brief { max-width: 920px; }
.brief-step { padding: 24px; min-width: 0; margin-bottom: 24px; }
.brief-step legend { font-size: 19px; font-weight: 650; padding: 0 7px; }
.brief-step legend>b { display: inline-grid; place-items: center; width: 29px; height: 29px; border-radius: 50%; background: #fff0e9; color: #ad533e; margin-right: 8px; font-size: 14px; }
.portal-field { margin: 0 0 17px; min-width: 0; }
.portal-field>label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 7px; }
.portal-field textarea { min-height: 100px; line-height: 1.5; }
.portal-field input,.portal-field textarea,.portal-field select { font-size: 15px; padding: 11px; }
.portal-field.check-field { display: flex; align-items: start; gap: 7px; }
.portal-field.check-field input { flex: 0 0 auto; margin: 4px 0 0; }
.portal-field.check-field>label { font-weight: 400; margin: 0; font-size: 14px; }
.portal-styles #id_styles { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.portal-styles #id_styles label { display: flex; align-items: center; gap: 7px; padding: 10px; border: 1px solid #e0e6ec; border-radius: 6px; font-size: 14px; }
.portal-styles input { margin: 0; }
.portal-styles #id_styles label:has(input:checked) { border-color: #db9c88; background: #fff6f1; }
.brief-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.contact-pair { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: center; }
.contact-pair .check-field { margin-top: 18px; }
.brief-notice { border-left: 3px solid #e1aa62; padding: 15px 18px; background: #fff8ed; margin: 0 0 24px; max-width: 920px; border-radius: 5px; }
.brief-notice p { color: #7f6748; font-size: 13px; margin: 5px 0 8px; }
.brief-notice a { font-size: 13px; }
.brief-submit { margin: 25px 0; }
.brief-submit .button { margin: 0 9px 10px 0; }
.brief-submit p { color: var(--muted); font-size: 13px; }
.portal-layout .settings-links { margin-bottom: 25px; }
.period-row { border-top: 1px solid var(--line); padding: 18px 0; }
.period-row p { color: var(--muted); font-size: 13px; margin: 5px 0 10px; }
.period-row summary { color: #647183; font-size: 13px; }
.period-edit { display: flex; flex-wrap: wrap; gap: 14px; align-items: end; margin-top: 15px; }
.period-edit label { max-width: 170px; font-size: 12px; }
.archive-summary { display: flex; gap: 22px; align-items: center; }
.archive-summary>img { width: 130px; height: 160px; object-fit: contain; border-radius: 6px; background: #eef1f4; flex-shrink: 0; }
.archive-summary h2 { margin: 10px 0 15px; }
.archive-files { margin-top: 20px; padding-top: 15px; border-top: 1px solid var(--line); }
.archive-files summary { font-size: 14px; }
.archive-output-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin-top: 20px; }
.archive-output-grid img,.archive-output-grid video { width: 100%; max-height: 430px; object-fit: contain; background: #f1f3f6; }
.archive-output-grid .post-text { font-size: 13px; }
@media(max-width:900px) {
  .campaign-preview.with-artwork { grid-template-columns: 1fr; }
  .campaign-artwork { max-height: 560px; }
}
@media(max-width:760px) {
  .portal-layout main { padding: 23px 16px 35px; }
  .portal-layout .sidebar .simple-nav { grid-template-columns: 1fr 1fr; gap: 5px; }
  .portal-layout .sidebar .simple-nav a { font-size: 12px; padding: 10px; }
  .portal-layout .sidebar .simple-nav .service-nav { margin-top: 0; border: 0; font-size: 11px; }
  .portal-layout .sidebar .brand { margin-bottom: 14px; }
  .portal-heading { align-items: start; flex-direction: column; gap: 14px; margin-bottom: 20px; }
  .portal-heading h1 { font-size: 27px; }
  .portal-heading p { font-size: 13px; }
  .switch-business { display: inline-block; margin: 4px 0 0 8px; }
  .portal-layout .topbar { gap: 10px; }
  .portal-layout .top-actions { gap: 10px; flex-wrap: wrap; }
  .workflow { gap: 6px; font-size: 11px; }
  .workflow b { width: 21px; height: 21px; font-size: 10px; margin-right: 2px; }
  .workflow>span[aria-hidden] { display: none; }
  .portal-tabs { gap: 3px; }
  .portal-tabs a { padding: 9px 10px; font-size: 12px; }
  .campaign-card { padding: 18px; }
  .portal-layout .panel h2 { font-size: 18px; }
  .campaign-copy { padding: 13px; }
  .campaign-copy .post-text { font-size: 13px; }
  .card-decisions .button { padding: 10px 12px; font-size: 13px; }
  .brief-columns,.contact-pair { grid-template-columns: 1fr; gap: 0; }
  .contact-pair .check-field { margin-top: 0; }
  .brief-step { padding: 18px 15px; }
  .brief-step legend { font-size: 17px; }
  .portal-styles #id_styles label { padding: 10px 7px; font-size: 12px; }
  .archive-summary { align-items: start; gap: 14px; }
  .archive-summary>img { width: 85px; height: 110px; }
  .archive-output-grid { grid-template-columns: 1fr; }
  .business-cards { grid-template-columns: 1fr; }
}
