/* MissionHuddle shared release runtime styles - 2026-08-14 */
html.portal-runtime-boot body{visibility:hidden!important}
html.portal-runtime-ready body{visibility:visible!important}

@media screen {
  html,body{max-width:100%;overflow-x:hidden}
  img,svg,video,canvas{max-width:100%}
  iframe{max-width:100%}
  table{max-width:100%}

  /* Standard company shell geometry. Brand colours/fonts remain owned by each portal. */
  .portal-shell,.crm-shell{min-height:100vh}
  .portal-shell{grid-template-columns:292px minmax(0,1fr)!important}
  .portal-shell .sidebar,.crm-shell .crm-sidebar{width:292px!important;padding:26px 20px!important;box-sizing:border-box}
  .main,.crm-main{min-width:0!important;padding:28px!important}
  .nav-item,.crm-nav button,.crm-nav a{min-height:44px!important;border-radius:14px!important;display:flex!important;align-items:center!important;gap:10px!important}
  .brand-lockup,.crm-brand{min-height:52px}
  .user-card,.crm-user{border-radius:18px!important;min-height:72px}
  .crm-portal-back,.portal-standard-back{
    display:flex!important;align-items:center!important;justify-content:center!important;
    min-height:42px!important;padding:0 14px!important;margin:0 0 18px!important;
    border-radius:12px!important;text-decoration:none!important;font-size:12px!important;font-weight:800!important;
    color:inherit!important;border:1px solid rgba(255,255,255,.18)!important;background:rgba(255,255,255,.08)!important;
  }
  .portal-standard-utilities{display:grid;gap:8px;margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12)}
  .portal-standard-utilities a,.portal-standard-utilities button{
    width:100%;min-height:42px;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.14);
    background:rgba(255,255,255,.06);color:inherit;font:inherit;font-size:12px;font-weight:800;text-decoration:none;cursor:pointer;text-align:left
  }
  .portal-standard-utilities button:hover,.portal-standard-utilities a:hover{background:rgba(255,255,255,.12)}
  .portal-hidden-by-permission{display:none!important}

  /* General responsive safety for every portal/document screen. */
  input,select,textarea,button{max-width:100%}
  textarea{resize:vertical}
  .table-wrap,.responsive-table-wrap{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}
  .modal-card,.dialog,.panel,.section-card,.card{max-width:100%}
  .template-workspace,.builder-shell,.template-shell,.document-shell{max-width:100vw}

  /* Global mobile company navigation. */
  .portal-mobile-menu{
    display:none;position:fixed;left:14px;top:14px;z-index:10020;width:44px;height:44px;border:0;border-radius:13px;
    background:#111827;color:#fff;box-shadow:0 10px 28px rgba(0,0,0,.22);font-size:22px;cursor:pointer
  }
  .portal-mobile-scrim{display:none;position:fixed;inset:0;background:rgba(5,10,18,.48);z-index:10010}
  .portal-mobile-scrim.show{display:block}

  /* Employee issue/report bubble. */
  .portal-help-button{
    position:fixed;right:20px;bottom:20px;z-index:12000;display:inline-flex;align-items:center;gap:8px;
    width:auto!important;max-width:220px!important;left:auto!important;right:20px!important;min-height:46px;padding:0 16px;border:0;border-radius:999px;background:#172033;color:#fff;
    box-shadow:0 14px 38px rgba(0,0,0,.24);font:700 13px/1 Arial,sans-serif;cursor:pointer
  }
  .portal-help-button::before{content:'!';display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:rgba(255,255,255,.16);font-weight:900}
  .portal-help-overlay{display:none;position:fixed;inset:0;z-index:12010;background:rgba(6,12,22,.55);padding:18px;align-items:center;justify-content:center}
  .portal-help-overlay.show{display:flex}
  .portal-help-dialog{width:min(540px,100%);max-height:min(760px,90vh);overflow:auto;background:#fff;color:#1f2937;border-radius:22px;box-shadow:0 30px 80px rgba(0,0,0,.28);padding:24px;font-family:Arial,sans-serif}
  .portal-help-dialog h2{margin:0 0 6px;font-size:24px}
  .portal-help-dialog p{margin:0 0 18px;color:#667085;line-height:1.5}
  .portal-help-dialog label{display:block;margin:13px 0 6px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#475467}
  .portal-help-dialog input,.portal-help-dialog select,.portal-help-dialog textarea{width:100%;border:1px solid #d0d5dd;border-radius:12px;padding:11px 12px;background:#fff;color:#101828;font:14px/1.45 Arial,sans-serif}
  .portal-help-dialog textarea{min-height:130px}
  .portal-help-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
  .portal-help-actions button{min-height:42px;padding:0 16px;border-radius:11px;border:1px solid #d0d5dd;background:#fff;font-weight:800;cursor:pointer}
  .portal-help-actions .primary{background:#172033;border-color:#172033;color:#fff}
  .portal-help-status{min-height:20px;margin-top:10px;font-size:13px;color:#475467}

  @media (max-width:900px){
    .portal-shell,.crm-shell{display:block!important;grid-template-columns:1fr!important}
    .portal-shell .sidebar,.crm-shell .crm-sidebar{
      position:fixed!important;left:-310px!important;top:0!important;bottom:0!important;height:100vh!important;z-index:10015!important;
      overflow-y:auto!important;transition:left .22s ease!important;box-shadow:12px 0 36px rgba(0,0,0,.2)
    }
    .portal-shell .sidebar.portal-mobile-open,.crm-shell .crm-sidebar.portal-mobile-open{left:0!important}
    .main,.crm-main{padding:72px 16px 28px!important;width:100%!important}
    .portal-mobile-menu{display:grid;place-items:center}
    .topbar,.crm-topbar,.page-head,.section-header,.panel-head{gap:12px!important;flex-wrap:wrap!important}
    .global-search{width:100%!important;max-width:none!important}
    .dashboard-grid,.metric-grid,.data-grid,.service-library-grid,.work-board,.client-overview,.project-workspace-grid,.quick-grid{grid-template-columns:1fr!important}
    .form-grid,.form-grid.two,.form-grid.three,.fields-grid{grid-template-columns:1fr!important}
    .split,.split-layout,.builder-layout,.template-layout,.document-layout,.workspace-grid{grid-template-columns:1fr!important;display:block!important}
    .table-wrap{overflow-x:auto!important}
    .portal-help-button{right:14px;bottom:14px;width:48px;padding:0;justify-content:center;font-size:0}
    .portal-help-button::before{font-size:14px}
  }

  @media (max-width:600px){
    .main,.crm-main{padding:68px 12px 22px!important}
    .portal-shell .sidebar,.crm-shell .crm-sidebar{width:min(292px,88vw)!important;left:-92vw!important}
    .portal-shell .sidebar.portal-mobile-open,.crm-shell .crm-sidebar.portal-mobile-open{left:0!important}
    .page-head h1,.page-head h2,.section-header h1,.section-header h2{font-size:clamp(24px,8vw,34px)!important}
    .toolbar,.head-actions,.actions,.button-row{width:100%;flex-wrap:wrap!important}
    .toolbar>*{min-width:0!important;flex:1 1 100%!important}
  }
}

@media print{
  .portal-help-button,.portal-help-overlay,.portal-mobile-menu,.portal-mobile-scrim,.portal-standard-utilities,.portal-standard-back{display:none!important}
}

@media screen{
  .portal-shell .mobile-menu,.crm-shell .mobile-menu{display:none!important}
  .preview,.preview-wrap,.preview-side,.preview-pages,.proposal-live-preview,.policy-preview,.doc-preview,.pdf-preview,.generator-preview{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* 2026-08-12 final pre-launch template/sidebar corrections */
@media screen{
  /* Keep the company colour running down the full portal page while the real sidebar remains sticky. */
  .portal-shell,.crm-shell{position:relative!important;background:transparent!important}
  .portal-shell::before,.crm-shell::before{
    content:"";position:absolute;z-index:0;left:0;top:0;bottom:0;width:292px;
    background:var(--portal-sidebar-background,#142237);pointer-events:none
  }
  .main,.crm-main{position:relative;z-index:1}

  /* Desktop sidebars remain visible while the main portal content scrolls. Mobile keeps its drawer behaviour. */
  @media (min-width:901px){
    .portal-shell .sidebar,.crm-shell .crm-sidebar{position:sticky!important;top:0!important;height:100vh!important;min-height:100vh!important;z-index:2!important;overflow-y:auto!important;align-self:start!important}

    /* On document-builder routes the editor panel remains visible while the A4 preview is scrolled. */
    /* .app > .builder is intentionally excluded: BE Empowering and FinX use a fixed independent editor column. */
    html.portal-template-route .builder-app>.builder-panel,
    html.portal-template-route .builder>.panel,
    html.portal-template-route .builder>.controls,
    html.portal-template-route .app>.panel{
      position:sticky!important;top:0!important;align-self:start!important;height:100vh!important;max-height:100vh!important;overflow-y:auto!important
    }
  }

  /* Consistent hover feedback on every selectable template tile/list item. */
  .template-row,.template-card,.brandwell-template-card,.document-pack-card,
  html.portal-template-route .card[href],html.portal-template-route .row[href]{
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease!important
  }
  .template-row:hover,.template-card:hover,.brandwell-template-card:hover,.document-pack-card:hover,
  html.portal-template-route .card[href]:hover,html.portal-template-route .row[href]:hover{
    transform:translateY(-2px)!important;box-shadow:0 14px 30px rgba(20,34,55,.10)!important
  }
}

@media screen and (max-width:900px){
  .portal-shell::before,.crm-shell::before{display:none}
}

/* Safari/Chrome A4 stabilisation: one DOM page equals one printed page, without blank spacer sheets. */
@media print{
  .a4-page,.a4{
    page-break-before:auto!important;break-before:auto!important;
    page-break-after:always!important;break-after:page!important;
    page-break-inside:avoid!important;break-inside:avoid!important;
    margin-top:0!important;margin-bottom:0!important
  }
  .a4-page:last-child,.a4:last-child{page-break-after:auto!important;break-after:auto!important}
  .a4-page + .a4-page,.a4 + .a4{page-break-before:auto!important;break-before:auto!important}
}

/* review-3 duplicate-control safeguard */
.group-portal-tools,.group-floating-tools{display:none!important}

/* review-3b: complete hover feedback for every template/document selector used across the four portals */
@media screen{
  html.portal-template-route .doc-card,
  html.portal-template-route .doc-open,
  html.portal-template-route a.card,
  html.portal-template-route a.row,
  html.portal-template-route .component[data-template-key],
  html.portal-template-route [data-template-key].card,
  html.portal-template-route [data-template-key].row{
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease!important
  }
  html.portal-template-route .doc-card:hover,
  html.portal-template-route a.card:hover,
  html.portal-template-route a.row:hover,
  html.portal-template-route .component[data-template-key]:hover,
  html.portal-template-route [data-template-key].card:hover,
  html.portal-template-route [data-template-key].row:hover{
    transform:translateY(-2px)!important;box-shadow:0 14px 30px rgba(20,34,55,.10)!important
  }
  html.portal-template-route .doc-open:hover{transform:translateY(-1px)!important;box-shadow:0 8px 18px rgba(20,34,55,.10)!important}
}


/* 2026-08-13: Admin safety notice while Maintenance Mode is active. */
.portal-admin-maintenance-banner{
  position:fixed;z-index:2147482500;left:50%;top:12px;transform:translate(-50%,-140%);
  display:flex;align-items:center;gap:12px;max-width:min(920px,calc(100vw - 28px));padding:10px 14px;
  border:1px solid rgba(180,83,9,.28);border-radius:14px;background:#fff7ed;color:#7c2d12;
  box-shadow:0 14px 36px rgba(15,23,42,.18);font:600 13px/1.35 Inter,Arial,sans-serif;
  opacity:0;pointer-events:none;transition:transform .2s ease,opacity .2s ease
}
.portal-admin-maintenance-banner.show{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.portal-admin-maintenance-banner strong{font-size:11px;letter-spacing:.12em;white-space:nowrap}
.portal-admin-maintenance-banner span{font-weight:500;color:#9a3412}
.portal-admin-maintenance-banner a{margin-left:auto;color:#7c2d12;text-decoration:underline;white-space:nowrap}
.portal-admin-maintenance-overlay{
  position:fixed;z-index:2147483000;inset:0;display:none;align-items:center;justify-content:center;padding:24px;
  background:rgba(15,23,42,.58);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)
}
.portal-admin-maintenance-overlay.show{display:flex}
.portal-admin-maintenance-dialog{
  width:min(560px,100%);display:grid;grid-template-columns:48px 1fr;column-gap:16px;row-gap:12px;
  padding:28px;border-radius:22px;background:#fff;color:#172033;box-shadow:0 30px 80px rgba(15,23,42,.28);
  font-family:Inter,Arial,sans-serif
}
.portal-admin-maintenance-icon{
  grid-row:1 / span 2;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;
  background:#fff7ed;color:#c2410c;font-size:24px;font-weight:800;border:1px solid #fed7aa
}
.portal-admin-maintenance-kicker{font-size:11px;font-weight:800;letter-spacing:.14em;color:#c2410c;margin-bottom:5px}
.portal-admin-maintenance-dialog h2{margin:0;font-size:25px;line-height:1.1;color:#172033}
.portal-admin-maintenance-dialog p{grid-column:1 / -1;margin:4px 0 0;color:#536174;font-size:14px;line-height:1.55}
.portal-admin-maintenance-meta{grid-column:1 / -1;min-height:18px;font-size:12px;color:#7a8492}
.portal-admin-maintenance-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
.portal-admin-maintenance-actions button{
  min-height:42px;padding:0 16px;border-radius:11px;border:1px solid #d9dee6;background:#fff;color:#172033;
  font:700 13px/1 Inter,Arial,sans-serif;cursor:pointer
}
.portal-admin-maintenance-actions button.primary{border-color:#172033;background:#172033;color:#fff}
.portal-admin-maintenance-actions button:hover{transform:translateY(-1px)}
@media(max-width:680px){
  .portal-admin-maintenance-banner{top:8px;align-items:flex-start;flex-wrap:wrap}.portal-admin-maintenance-banner a{margin-left:0}
  .portal-admin-maintenance-dialog{padding:22px;grid-template-columns:40px 1fr}.portal-admin-maintenance-icon{width:40px;height:40px}
  .portal-admin-maintenance-actions{flex-direction:column-reverse}.portal-admin-maintenance-actions button{width:100%}
}
@media print{.portal-admin-maintenance-banner,.portal-admin-maintenance-overlay{display:none!important}}

/* Mission deadline countdown cards */
.portal-mission-countdown{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px;padding:13px 15px;border:1px solid rgba(62,168,182,.28);border-radius:14px;background:linear-gradient(135deg,rgba(62,168,182,.10),rgba(23,32,51,.04));color:inherit}
.portal-mission-countdown strong{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.portal-mission-countdown span{display:block;margin-top:4px;font-size:12px;opacity:.72}.portal-mission-countdown b{font-size:18px;white-space:nowrap}.portal-mission-countdown.overdue{border-color:rgba(180,35,24,.35);background:rgba(180,35,24,.07)}
@media(max-width:640px){.portal-mission-countdown{align-items:flex-start;flex-direction:column}.portal-mission-countdown b{font-size:16px}}

/* Signed policy state: whole tile changes colour. Version-aware policy index JS removes this state on a new version. */
.policy-row.is-signed{background:#eef9f2!important;border-color:#8bc9a3!important;box-shadow:inset 4px 0 0 #2f8f57!important}
.policy-export-panel{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin:0 0 14px;padding:12px;border:1px solid #e3e8ee;border-radius:13px;background:#fafcfd}.policy-export-panel button,.policy-export-panel select{min-height:38px;border-radius:10px;border:1px solid #d0d5dd;padding:0 11px;background:#fff;color:inherit;font-weight:700}.policy-export-panel button{cursor:pointer}.policy-export-panel button:disabled{opacity:.45;cursor:not-allowed}.policy-export-note{width:100%;font-size:11px;opacity:.7}

/* 2026-08-14 hard report-button sizing: template-wide button rules may never stretch this control. */
button.portal-help-button{
  position:fixed!important;left:auto!important;right:20px!important;bottom:20px!important;
  width:190px!important;max-width:190px!important;min-width:0!important;height:48px!important;min-height:48px!important;max-height:48px!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;padding:0 16px!important;margin:0!important;z-index:2147481000!important
}
@media(max-width:600px){button.portal-help-button{right:14px!important;bottom:14px!important;width:48px!important;max-width:48px!important;height:48px!important;padding:0!important}}

/* Employee-information deadline follows the policy-signing notice. */
.portal-mission-deadline-overlay{position:fixed;inset:0;z-index:2147482100;display:none;align-items:center;justify-content:center;padding:22px;background:rgba(15,23,42,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.portal-mission-deadline-overlay.show{display:flex}
.portal-mission-deadline-dialog{width:min(520px,100%);padding:26px;border-radius:22px;background:#fff;color:#172033;box-shadow:0 30px 80px rgba(0,0,0,.28);font-family:Inter,Arial,sans-serif}
.portal-mission-deadline-kicker{font-size:10px;font-weight:900;letter-spacing:.16em;color:#3ea8b6}.portal-mission-deadline-dialog h2{margin:7px 0 8px;font-size:25px}.portal-mission-deadline-dialog p{margin:0 0 16px;color:#667085;line-height:1.5}
.portal-mission-deadline-clock{display:grid;gap:4px;padding:15px;border-radius:14px;background:#eef8fa;border:1px solid rgba(62,168,182,.28)}.portal-mission-deadline-clock b{font-size:22px}.portal-mission-deadline-clock span{font-size:12px;color:#667085}.portal-mission-deadline-clock.overdue{background:#fff1f0;border-color:#f2aaa5}
.portal-mission-deadline-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.portal-mission-deadline-actions button,.portal-mission-deadline-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 15px;border-radius:11px;border:1px solid #d0d5dd;background:#fff;color:#172033;font:800 13px/1 Inter,Arial,sans-serif;text-decoration:none;cursor:pointer}.portal-mission-deadline-actions a{background:#172033;color:#fff;border-color:#172033}
.portal-policy-popup-deadline{display:grid;grid-template-columns:1fr auto;gap:3px 12px;align-items:center;margin:12px 0 14px;padding:12px 14px;border:1px solid rgba(62,168,182,.3);border-radius:12px;background:rgba(62,168,182,.08)}.portal-policy-popup-deadline span{font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.portal-policy-popup-deadline b{grid-row:1/3;grid-column:2;font-size:17px}.portal-policy-popup-deadline small{font-size:11px;opacity:.7}.portal-policy-popup-deadline.overdue{background:#fff1f0;border-color:#f2aaa5}
@media(max-width:560px){.portal-mission-deadline-actions{flex-direction:column-reverse}.portal-mission-deadline-actions>*{width:100%}.portal-policy-popup-deadline{grid-template-columns:1fr}.portal-policy-popup-deadline b{grid-row:auto;grid-column:auto}}


/* 2026-08-17 deadline not-set state */
.portal-mission-countdown.not-set,.portal-mission-deadline-clock.not-set,.portal-policy-popup-deadline.not-set{background:#f8fafc!important;border-color:#d8dee8!important}
.portal-mission-countdown.not-set b,.portal-mission-deadline-clock.not-set b,.portal-policy-popup-deadline.not-set b{color:#667085!important}
/* Last-resort signed-policy state; company policy JS also paints the card inline. */
#policyList .policy-row.is-signed{background:#eaf8ef!important;border-color:#70bd8e!important;box-shadow:inset 5px 0 0 #2f8f57!important}
