/* Main-content redesign based on the supplied FileFlow references.
   Intentionally scoped away from .dash-sidebar / sidebar navigation. */


:root{
  --ff-primary:#12828f;
  --ff-primary-2:#00525c;
  --ff-primary-soft:#f4faf7;
  --ff-line:#e5e8f0;
}

.ff-page{
  --ff-primary:#12828f;
  --ff-primary-2:#00525c;
  --ff-primary-soft:#f4faf7;
  --ff-bg:#f6f7fb;
  --ff-card:#ffffff;
  --ff-text:#2d2d2d;
  --ff-muted:#7d869c;
  --ff-line:#e5e8f0;
  --ff-green:#13a655;
  --ff-green-soft:#e9f8ef;
  --ff-orange:#d97800;
  --ff-orange-soft:#fff1ec;
  --ff-blue:#12828f;
  --ff-blue-soft:#f4faf7;
  color:var(--ff-text);
  width:100%;
}
.ff-page *{box-sizing:border-box;}
.ff-shell{max-width:1480px;margin:0 auto;padding:2px 4px 36px;}
.ff-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:22px;}
.ff-page-title{margin:0;font-size:1.65rem;line-height:1.15;font-weight:600;letter-spacing:-.025em;color:var(--ff-text);}
.ff-page-subtitle{margin-top:5px;color:var(--ff-muted);font-size:.9rem;}
.ff-top-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;}
.ff-search{position:relative;width:min(330px,42vw);}
.ff-search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#9aa3b6;font-size:.88rem;pointer-events:none;}
.ff-search .form-control{height:40px;border:1px solid var(--ff-line);border-radius:10px;background:#f8fcfa;padding-left:39px;font-size:.84rem;box-shadow:none;}
.ff-search .form-control:focus{background:#fff;border-color:#c6e2d7;box-shadow:0 0 0 3px rgba(18,130,143,.09);}
.ff-icon-btn{width:40px;height:40px;min-width:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #d8def0;border-radius:50%;background:#fff;color:var(--ff-primary);text-decoration:none;box-shadow:0 5px 15px rgba(30,41,59,.06);}
.ff-icon-btn:hover{color:var(--ff-primary);border-color:#c6e2d7;background:var(--ff-primary-soft);}
.ff-primary-btn{height:40px;border:1px solid var(--ff-primary)!important;border-radius:10px!important;background:var(--ff-primary)!important;color:#fff!important;font-weight:600!important;box-shadow:0 6px 14px rgba(18,130,143,.20)!important;padding:0 17px!important;display:inline-flex!important;align-items:center;gap:7px;}
.ff-primary-btn:hover{background:var(--ff-primary-2)!important;border-color:var(--ff-primary-2)!important;}
.ff-secondary-btn{height:40px;border-radius:10px!important;border:1px solid var(--ff-line)!important;background:#fff!important;color:#222a3b!important;font-weight:600!important;padding:0 14px!important;display:inline-flex!important;align-items:center;gap:7px;box-shadow:none!important;font-size:.82rem!important;}
.ff-secondary-btn:hover{background:#f8fcfa!important;border-color:#d9ddea!important;}
.ff-card{background:#fff;border:1px solid var(--ff-line);border-radius:16px;box-shadow:0 1px 2px rgba(15,23,42,.03);}
.ff-section-label{font-size:.9rem;font-weight:600;color:#394154;margin-bottom:14px;}
.ff-muted{color:var(--ff-muted)!important;}

/* Shared */
.ff-share-tabs{display:inline-flex;padding:4px;background:#fff;border:1px solid var(--ff-line);border-radius:12px;box-shadow:0 1px 2px rgba(15,23,42,.03);margin-bottom:16px;}
.ff-share-tabs .nav-link{border:0;border-radius:9px;color:#6f7890;font-size:.82rem;font-weight:600;padding:8px 16px;display:flex;align-items:center;gap:7px;}
.ff-share-tabs .nav-link.active{background:var(--ff-primary);color:#fff;box-shadow:0 5px 12px rgba(18,130,143,.22);}
.ff-tab-count{font-size:.65rem;min-width:21px;height:19px;padding:0 6px;border-radius:999px;background:#eef0f7;color:#697188;display:inline-flex;align-items:center;justify-content:center;}
.ff-share-tabs .nav-link.active .ff-tab-count{background:rgba(255,255,255,.22);color:#fff;}
.ff-table-card{overflow:hidden;}
.ff-table{width:100%;margin:0!important;min-width:920px;border-collapse:separate;border-spacing:0;}
.ff-table thead th{background:#fafbfe;color:#9299ab;text-transform:uppercase;letter-spacing:.04em;font-size:.68rem;font-weight:600;padding:10px 14px;border-bottom:1px solid var(--ff-line);white-space:nowrap;vertical-align:middle;}
.ff-table tbody td{padding:9px 14px;border-bottom:1px solid #edf0f5;vertical-align:middle;font-size:.82rem;color:#253047;}
.ff-table tbody tr:last-child td{border-bottom:0;}
.ff-table tbody tr:hover{background:#fcfcff;}
.ff-table .sortable-col{cursor:pointer;user-select:none;}
.ff-table .sort-indicator{font-size:.66rem;margin-left:5px;color:#a3aabd;}
.ff-table .sortable-col[aria-sort="ascending"] .sort-indicator,
.ff-table .sortable-col[aria-sort="descending"] .sort-indicator{color:var(--ff-primary);}
.ff-file-cell{display:flex;align-items:center;gap:9px;min-width:240px;}
.ff-file-icon{width:32px;height:32px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:.9rem;}
.ff-file-icon.folder{background:#fff1ec;color:#ff7f50;}
.ff-file-icon.pdf{background:#fff0f1;color:#ed4b58;}
.ff-file-icon.csv{background:#eaf8f0;color:#1fa568;}
.ff-file-icon.zip{background:#f4faf7;color:#12828f;}
.ff-file-name{font-weight:600;color:#171e2c;line-height:1.2;}
.ff-file-meta{color:#8992a5;font-size:.7rem;margin-top:2px;}
.ff-type-pill{display:inline-flex;align-items:center;justify-content:center;padding:2px 9px;border:1px solid #e2e5ed;border-radius:7px;background:#fbfbfd;color:#626b80;font-size:.67rem;font-weight:600;text-transform:uppercase;}
.ff-person-copy{display:flex;flex-direction:column;line-height:1.2;min-width:0;}
.ff-person-name{font-size:.79rem;font-weight:600;color:#252d3e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ff-person-email{font-size:.68rem;color:#8d95a7;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ff-status{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;font-size:.67rem;font-weight:600;white-space:nowrap;}
.ff-status.downloaded,.ff-status.shared{background:var(--ff-green-soft);color:#0f9a49;}
.ff-status.viewed{background:var(--ff-blue-soft);color:#00525c;}
.ff-status.pending,.ff-status.not-shared{background:var(--ff-orange-soft);color:var(--ff-orange);}
.ff-status.expired{background:#f1f2f6;color:#8b93a4;}
.ff-status-time{margin-top:5px;font-size:.68rem;line-height:1.25;color:var(--ff-muted);white-space:nowrap;}
.ff-row-expired{opacity:.62;}
.ff-row-expired .ff-file-name{color:#8b93a4;}
.ff-action-btn.ff-action-disabled{color:#c3c8d4;background:#f7f8fa;cursor:not-allowed;pointer-events:none;}
.ff-download-status-cell{display:flex;flex-direction:column;align-items:flex-start;gap:0;}
.ff-download-history-toggle{
  margin-top:4px;border:0;background:transparent;padding:0;
  font-size:.66rem;font-weight:600;color:var(--ff-primary);
  display:inline-flex;align-items:center;gap:3px;cursor:pointer;white-space:nowrap;
}
.ff-download-history-toggle:hover{text-decoration:underline;}
.ff-download-history-toggle i{font-size:.6rem;}
.ff-download-history-menu{min-width:220px;padding:6px 0;font-size:.72rem;}
.ff-download-history-label{padding:4px 14px 6px;font-size:.63rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#8b93a4;}
.ff-download-history-item{padding:5px 14px;color:#3a4152;display:flex;align-items:center;gap:7px;white-space:nowrap;}
.ff-download-history-item i{color:#0f9a49;font-size:.7rem;}
.ff-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;}
.ff-action-btn{width:31px;height:31px;border:1px solid var(--ff-line);border-radius:8px;background:#fff;color:#727b91;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-size:.78rem;}
.ff-action-btn:hover{background:var(--ff-primary-soft);color:var(--ff-primary);border-color:#c6e2d7;}
.ff-action-menu .dropdown-menu{border:1px solid var(--ff-line);box-shadow:0 12px 30px rgba(15,23,42,.10);border-radius:11px;padding:6px;min-width:165px;}
.ff-action-menu .dropdown-item{font-size:.78rem;border-radius:7px;padding:7px 9px;}

/* Clients */
.ff-clients-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;}
.ff-client-count{font-size:.84rem;font-weight:600;color:#646d82;}
.ff-client-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;}
.ff-client-card{padding:15px 16px 13px;min-height:174px;display:flex;flex-direction:column;}
.ff-client-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.ff-client-avatar{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:var(--ff-primary);color:#fff;font-size:.9rem;font-weight:600;}
.ff-client-avatar.coral{background:#ff8f80;}
.ff-client-avatar.teal{background:#3ab3bd;}
.ff-client-state{font-size:.68rem;font-weight:600;color:#8a92a5;display:inline-flex;align-items:center;gap:5px;margin-top:2px;}
.ff-client-state.active{color:#139a4e}.ff-client-state .dot{width:6px;height:6px;border-radius:50%;background:currentColor;}
.ff-client-name{margin-top:9px;font-size:.94rem;font-weight:600;color:#131a27;}
.ff-client-email{margin-top:2px;color:#70798f;font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ff-client-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:11px;padding-top:10px;border-top:1px solid var(--ff-line);}
.ff-client-stat strong{display:block;font-size:.92rem;color:#171d2b;line-height:1.05;}
.ff-client-stat span{display:block;margin-top:2px;text-transform:uppercase;letter-spacing:.035em;color:#9a9fb1;font-size:.58rem;font-weight:600;}
.ff-client-foot{margin-top:auto;padding-top:10px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#9aa2b5;font-size:.7rem;}
.ff-client-view{width:29px;height:29px;border:1px solid var(--ff-line);border-radius:8px;color:#7d869b;display:flex;align-items:center;justify-content:center;text-decoration:none;background:#fff;}
.ff-client-view:hover{background:var(--ff-primary-soft);border-color:#c6e2d7;color:var(--ff-primary);}
.ff-add-client-card{border:1px dashed #dedff0;background:transparent;min-height:174px;display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer;}
.ff-add-client-card:hover{background:#f8fcfa;border-color:#c6e2d7;}
.ff-add-client-circle{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 9px;background:var(--ff-primary-soft);color:var(--ff-primary);font-size:1.1rem;}

/* Client detail */
.ff-client-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;}
.ff-client-identity{display:flex;align-items:center;gap:11px;min-width:0;}
.ff-back{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:1px solid var(--ff-line);border-radius:10px;background:#fff;color:#788198;text-decoration:none;}
.ff-detail-avatar{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:var(--ff-primary);color:#fff;font-weight:600;}
.ff-client-identity h1{font-size:1rem;font-weight:600;margin:0;color:#141a27;}
.ff-client-identity p{font-size:.73rem;color:#7d869a;margin:2px 0 0;}
.ff-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;}
.ff-metric-grid.ff-metric-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.ff-metric{padding:16px 18px;min-height:90px;display:flex;align-items:flex-start;justify-content:space-between;}
.ff-metric-label{font-size:.72rem;color:#7a8399;font-weight:600;margin-bottom:10px;}
.ff-metric-value{font-size:1.2rem;font-weight:600;color:#111723;line-height:1;}
.ff-metric-icon{width:31px;height:31px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--ff-primary-soft);color:var(--ff-primary);}
.ff-metric-icon.green{background:#e9f8ef;color:#17a457}.ff-metric-icon.orange{background:#fff1ec;color:#ff7f50}.ff-metric-icon.blue{background:#f4faf7;color:#12828f}
.ff-metric-link{text-decoration:none;transition:transform .12s ease,box-shadow .12s ease;}
.ff-metric-link:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(18,130,143,.12);}
.ff-metric-payment{margin:0;}
.ff-metric-sub{display:flex;align-items:center;gap:5px;margin-top:7px;font-size:.63rem;font-weight:600;color:#8992a5;white-space:nowrap;}
.ff-metric-sub-dot{width:6px;height:6px;border-radius:50%;flex:0 0 auto;background:#c8ceda;}
.ff-metric-sub-dot.is-active{background:var(--ff-orange);}
.ff-metric-sub-dot.is-completed{background:#0f9a49;}
.ff-metric-sub-gap{width:6px;}
.ff-payment-toggle{border:0;border-radius:8px;padding:3px 14px;font-size:1rem;font-weight:700;line-height:1.2;cursor:pointer;}
.ff-payment-toggle.is-yes{background:#e9f8ef;color:#17a457;}
.ff-payment-toggle.is-no{background:#fff1ec;color:#ff7f50;}
.ff-payment-select{border:0;border-radius:8px;padding:3px 28px 3px 10px;font-size:.85rem;font-weight:700;cursor:pointer;width:auto;}
.ff-payment-select.is-yes{background:#e9f8ef;color:#17a457;}
.ff-payment-select.is-no{background:#fff1ec;color:#ff7f50;}
.ff-detail-tabs{display:inline-flex;border:1px solid var(--ff-line);background:#fff;border-radius:11px;padding:4px;margin-bottom:16px;}
.ff-detail-tabs .nav-link{border:0!important;border-radius:8px!important;color:#717a90!important;font-size:.76rem!important;font-weight:600!important;padding:7px 14px!important;display:flex;align-items:center;gap:7px;}
.ff-detail-tabs .nav-link.active{background:var(--ff-primary)!important;color:#fff!important;box-shadow:0 5px 12px rgba(18,130,143,.20);}
.ff-detail-tabs .nav-link:hover{background:var(--ff-orange-soft,#fff1ec)!important;color:var(--ff-orange,#d97800)!important;box-shadow:none;cursor:default;}
.ff-detail-tabs .nav-link.active:hover{background:var(--ff-orange,#d97800)!important;color:#fff!important;box-shadow:0 5px 12px rgba(217,120,0,.25);}
.ff-balance{padding:20px 18px 22px;margin-top:22px;margin-bottom:16px;}
.ff-balance-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;}
.ff-balance-title{font-size:.82rem;font-weight:600;color:#202737;}
.ff-balance-title-pill{display:inline-flex!important;align-items:center;gap:7px;background:var(--ff-primary)!important;color:#fff!important;border-radius:8px;padding:7px 14px;box-shadow:0 5px 12px rgba(18,130,143,.20);}
.ff-balance-title-pill:hover{background:var(--ff-orange,#d97800)!important;color:#fff!important;box-shadow:0 5px 12px rgba(217,120,0,.25);}
.ff-balance-sub{font-size:.69rem;color:#8b93a7;margin-top:2px;}
.ff-balance-counts{display:flex;align-items:center;gap:18px;text-align:right;}
.ff-balance-counts strong{display:block;font-size:.9rem}.ff-balance-counts span{display:block;font-size:.6rem;color:#7d8699;margin-top:1px;}
.ff-balance-counts .sent strong{color:var(--ff-primary)}.ff-balance-counts .received strong{color:var(--ff-green)}
.ff-balance-bar{height:7px;border-radius:999px;background:#eff1f5;display:flex;overflow:hidden;}
.ff-balance-bar .sent{background:var(--ff-primary)}.ff-balance-bar .received{background:#26b05c}
.ff-activity-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.ff-activity-panel{overflow:hidden;}
.ff-activity-panel-head{padding:13px 16px;border-bottom:1px solid var(--ff-line);display:flex;align-items:center;justify-content:space-between;gap:10px;}
.ff-activity-panel-title{display:flex;align-items:center;gap:9px;font-weight:600;font-size:.8rem;color:#202634;}
.ff-activity-panel-title .bubble{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--ff-primary-soft);color:var(--ff-primary);}
.ff-activity-panel-title .bubble.green{background:#e9f8ef;color:#19a65b}
.ff-activity-panel-title small{display:block;font-size:.62rem;color:#8e96a8;font-weight:500;margin-top:1px;}
.ff-panel-count{min-width:24px;height:21px;border-radius:999px;background:var(--ff-primary-soft);color:var(--ff-primary);font-size:.65rem;font-weight:600;display:flex;align-items:center;justify-content:center;padding:0 7px;}
.ff-panel-count.green{background:#eaf8ef;color:#159f51}
.ff-panel-share-btn{width:28px;height:28px;border-radius:8px;border:1px solid #e0e5ee;background:#fff;color:#6f7890;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease;}
.ff-panel-share-btn:hover{background:var(--ff-primary-soft);border-color:#c6e2d7;color:var(--ff-primary);}
.ff-activity-action-danger{color:#c23b3b;border-color:#f1d4d4;}
.ff-activity-action-danger:hover{background:#fdecec;border-color:#f1b8b8;color:#a92727;}
.ff-activity-list{padding:2px 16px 7px;}
.ff-activity-item{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #edf0f5;}
.ff-activity-item:last-child{border-bottom:0;}
a.ff-activity-item-link{color:inherit;text-decoration:none;margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:8px;}
a.ff-activity-item-link:hover{background:#f8fcfa;}
.ff-activity-item-main{min-width:0;}
.ff-activity-item-name{font-size:.75rem;font-weight:600;color:#1c2332;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ff-activity-item-sub{font-size:.63rem;color:#8992a5;margin-top:2px;}
.ff-activity-item-time{font-size:.62rem;color:#9aa1b2;white-space:nowrap;line-height:1.25;}
.ff-activity-preview{font-size:.66rem;font-weight:600;color:var(--ff-primary);white-space:nowrap;display:inline-flex;align-items:center;gap:4px;}
.ff-activity-file-link{display:flex;align-items:center;gap:9px;min-width:0;color:inherit;text-decoration:none;border-radius:8px;padding:4px;margin:-4px 0;}
.ff-activity-file-link:hover{background:#f8fcfa;}
.ff-activity-file-link .ff-activity-item-main{display:block;}
.ff-activity-file-link .ff-activity-item-name,.ff-activity-file-link .ff-activity-item-sub{display:block;}
/* Sales-view "Sent by you" items delivered by another team (e.g. Projects) -
   visible so Sales knows delivery happened, but no preview/download access. */
.ff-activity-file-link--readonly{cursor:default;opacity:.72;}
.ff-activity-file-link--readonly:hover{background:none;}
.ff-activity-file-link--readonly .ff-activity-item-sub{font-style:italic;}
.ff-activity-state{min-width:150px;width:max-content;justify-self:center;transform:translateX(12px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;text-align:left;}
.ff-activity-state .ff-status{padding:3px 8px;font-size:.62rem;}
.ff-activity-state .ff-payment-toggle{padding:3px 9px;font-size:.62rem;border-radius:999px;cursor:default;}
.ff-activity-state .ff-project-payment-form{margin:0;}
.ff-activity-state .ff-payment-select{padding:2px 22px 2px 8px;font-size:.66rem;border-radius:999px;}
.ff-activity-state .ff-activity-item-time{margin:0;white-space:normal;}

/* Projects panel (client_detail.html) - table format, "mention everything":
   code, status, payment, opened, completed, actions. Payment kept as a
   neutral outline pill (dot + label) so it doesn't visually compete with
   the orange/green status badge in the row next to it. */
.ff-project-table-wrap{overflow-x:auto;border:1px solid var(--ff-line);border-radius:14px;}
.ff-project-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.76rem;}
.ff-project-table thead th{
  background:#f7f9fc;color:#8b93a4;font-size:.64rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.04em;text-align:left;
  padding:10px 14px;white-space:nowrap;border-bottom:1px solid var(--ff-line);
}
.ff-project-table thead th.ff-project-table-actions-h{text-align:right;}
.ff-project-table tbody td{
  padding:11px 14px;border-bottom:1px solid #eef1f6;color:#3a4152;
  white-space:nowrap;vertical-align:middle;
}
.ff-project-table tbody tr:last-child td{border-bottom:0;}
.ff-project-table tbody tr:hover td{background:#fafbfd;}
.ff-project-code-cell{font-weight:600;}
.ff-project-code-chip{display:inline-flex;align-items:center;gap:7px;color:#1c2332;font-weight:700;}
.ff-project-code-chip i{color:var(--ff-primary);font-size:.85rem;}
.ff-project-date-cell{color:#8992a5;font-size:.7rem;}
.ff-project-table .ff-status{padding:3px 9px;font-size:.64rem;}
.ff-project-table .ff-project-payment-form{margin:0;}
.ff-project-table .ff-payment-toggle,
.ff-project-table .ff-payment-select{
  display:inline-flex;align-items:center;gap:6px;
  background:#fff!important;border:1px solid var(--ff-line);
  color:#5e6779!important;font-weight:600;padding:3px 10px 3px 8px!important;
  font-size:.68rem;border-radius:999px;
}
.ff-project-table .ff-payment-select{padding:3px 24px 3px 10px!important;cursor:pointer;}
.ff-project-table .ff-payment-toggle{cursor:default;}
.ff-project-table .ff-payment-toggle::before{content:"";width:6px;height:6px;border-radius:50%;background:#c8ceda;flex:0 0 auto;}
.ff-project-table .ff-payment-toggle.is-yes::before{background:#0f9a49;}
.ff-project-table .ff-payment-toggle.is-no::before{background:#ff7f50;}
.ff-project-table .ff-payment-select.is-yes{color:#0f9a49!important;}
.ff-project-table .ff-payment-select.is-no{color:#ff7f50!important;}
.ff-project-table-actions,.ff-project-table-actions-h{text-align:right;}
.ff-project-table-actions{display:flex;gap:6px;justify-content:flex-end;}
.ff-project-table-empty{text-align:center;color:#8b93a4;font-size:.75rem;padding:26px 14px!important;white-space:normal;}
@media (max-width:640px){
  .ff-project-table{font-size:.7rem;}
  .ff-project-table thead th,.ff-project-table tbody td{padding:9px 10px;}
}
.ff-activity-actions{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:6px;}
.ff-activity-action-btn{width:30px;height:30px;border:1px solid #e0e5ee;border-radius:8px;background:#fff;color:#6f7890;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:background .15s ease,color .15s ease,border-color .15s ease;}
.ff-activity-action-btn:hover{background:var(--ff-primary-soft);border-color:#c6e2d7;color:var(--ff-primary);}
.ff-activity-remark-btn{color:#b36a00;}
.ff-activity-remark-btn:hover{background:var(--ff-orange-soft);border-color:#ffc3b0;color:#a8442b;}
.ff-activity-remark-dialog{max-width:760px;}
.ff-activity-remark-card{border:0;border-radius:16px;box-shadow:0 24px 70px rgba(31,41,55,.18);overflow:hidden;}
.ff-activity-remark-card .modal-header,.ff-activity-remark-card .modal-footer{border-color:#edf0f5;}
.ff-activity-remark-card .form-label{font-size:.72rem;font-weight:600;color:#394357;margin-bottom:5px;}
.ff-activity-remark-context{margin-top:2px;font-size:.66rem;color:#8a93a6;}
.ff-activity-remark-recipient{font-size:.66rem;color:#7c869a;display:flex;align-items:center;gap:6px;}
@media (max-width: 720px){
  .ff-activity-item{grid-template-columns:1fr;align-items:flex-start;}
  .ff-activity-file-link,.ff-activity-state,.ff-activity-actions{width:100%;}
  .ff-activity-state{min-width:0;justify-self:start;transform:none;}
  .ff-activity-actions{justify-content:flex-start;padding-left:44px;}
}
.ff-profile-card{padding:20px;}


/* Client detail summary card: compact organization-style card with in-place editing. */
.ff-client-summary-card{
  position:relative;
  padding:20px 62px 20px 20px;
  margin-bottom:18px;
  overflow:hidden;
}
.ff-client-summary-main{display:flex;align-items:center;gap:16px;min-width:0;}
.ff-client-summary-avatar{
  width:66px;height:66px;flex:0 0 66px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg,var(--ff-primary-soft),#dcebe5);
  color:var(--ff-primary);border:1px solid #c6e2d7;
  font-size:1.35rem;font-weight:600;letter-spacing:.02em;
}
.ff-client-summary-copy{min-width:0;flex:1;}
.ff-client-summary-title{font-size:1rem;font-weight:600;color:var(--workspace-text,#2d2d2d);line-height:1.2;min-height:25px;display:flex;align-items:center;}
.ff-client-summary-subtitle{margin-top:2px;font-size:.72rem;font-weight:600;color:var(--workspace-muted,#748096);min-height:23px;display:flex;align-items:center;}
.ff-client-summary-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;}
.ff-client-info-chip{
  min-height:31px;padding:5px 10px;border:1px solid var(--workspace-line,#e4e9f2);border-radius:999px;
  display:inline-flex;align-items:center;gap:6px;background:#fff;color:#526078;font-size:.69rem;font-weight:600;
}
.ff-client-info-chip i{color:var(--ff-primary);font-size:.72rem;flex:0 0 auto;}
.ff-client-custom-chip strong{color:#37445c;}
.ff-client-custom-chip.is-half,
.ff-client-custom-chip.is-full{
  width:fit-content;
  max-width:100%;
  flex:0 1 auto;
  border-radius:11px;
  white-space:normal;
  overflow-wrap:anywhere;
}
.ff-client-summary-edit-btn{
  position:absolute;top:18px;right:18px;width:34px;height:34px;border:1px solid #dce3f0;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;background:var(--ff-primary-soft);color:var(--ff-primary);
  cursor:pointer;transition:.16s ease;
}
.ff-client-summary-edit-btn:hover{background:var(--ff-primary);border-color:var(--ff-primary);color:#fff;}
.ff-client-summary-edit-btn:disabled{opacity:.65;cursor:wait;}
.ff-client-edit-only{display:none!important;}
.ff-client-summary-card.is-editing .ff-client-view-only{display:none!important;}
.ff-client-summary-card.is-editing .ff-client-edit-only{display:inline-flex!important;}
.ff-client-summary-card.is-editing .ff-client-custom-editor{display:block!important;}
.ff-client-summary-card.is-editing .ff-client-summary-edit-btn{background:var(--ff-primary);border-color:var(--ff-primary);color:#fff;}
.ff-client-inline-title,
.ff-client-inline-subtitle{
  width:min(440px,100%);height:30px;padding:3px 9px;border-radius:8px;font-size:inherit;font-weight:inherit;
}
.ff-client-inline-subtitle{height:28px;color:#5f6c82;}
.ff-client-chip-input,
.ff-client-chip-select{
  min-width:0;border:0;outline:0;background:transparent;color:#526078;font:inherit;padding:0;box-shadow:none!important;
}
.ff-client-chip-input{width:120px;}
.ff-client-url-chip .ff-client-chip-input{width:205px;}
.ff-client-chip-input-short{width:80px;}
.ff-client-chip-select{width:118px;cursor:pointer;}
.ff-client-location-chip{padding-right:8px;}
.ff-chip-divider{width:1px;height:18px;background:var(--workspace-line,#e4e9f2);}
.ff-client-custom-editor{width:100%;border-top:1px solid var(--workspace-line,#e4e9f2);padding-top:11px;margin-top:10px;}
.ff-client-custom-editor-title{font-size:.75rem;font-weight:600;color:var(--workspace-text,#2d2d2d);}
.ff-client-custom-edit-row{display:grid;grid-template-columns:minmax(135px,.8fr) minmax(165px,1.15fr) 34px 34px;gap:8px;margin-top:8px;align-items:center;}
.ff-client-custom-edit-row .form-control,.ff-client-custom-edit-row .form-select{height:35px;border-radius:9px;font-size:.72rem;}
.ff-client-custom-save,.ff-client-custom-remove{width:34px;height:34px;border:1px solid #e3e7ef;border-radius:9px;background:#fff;display:inline-flex;align-items:center;justify-content:center;}
.ff-client-custom-save{color:#19a65b;background:#eefaf3;border-color:#d6f0e1;}
.ff-client-custom-save:hover{color:#118346;border-color:#bce4ce;background:#e5f7ed;}
.ff-client-custom-remove{color:#8a94a8;}
.ff-client-custom-remove:hover{color:#dc3545;border-color:#efc4c7;background:#fff8f8;}
.ff-client-summary-error{margin-top:12px;font-size:.7rem;color:#c83d48;font-weight:600;}

@media (max-width:767.98px){
  .ff-client-summary-card{padding:17px 54px 17px 16px;}
  .ff-client-summary-main{align-items:flex-start;}
  .ff-client-summary-avatar{width:54px;height:54px;flex-basis:54px;font-size:1.1rem;}
  .ff-client-custom-chip.is-half,
  .ff-client-custom-chip.is-full{width:fit-content;max-width:100%;}
  .ff-client-custom-edit-row{grid-template-columns:1fr 1fr;}
  .ff-client-custom-save,.ff-client-custom-remove{justify-self:start;}
}

/* Files */
.ff-files-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:13px;}
.ff-files-actions-left{font-size:.88rem;font-weight:600;color:#242b3a;}
.ff-files-actions-right{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.ff-files-menu .dropdown-menu{border:1px solid var(--ff-line);border-radius:10px;box-shadow:0 12px 28px rgba(15,23,42,.09);padding:6px;}
.ff-files-menu .dropdown-item{font-size:.78rem;border-radius:7px;}
.ff-file-row-name{display:flex;align-items:center;gap:9px;min-width:235px;}
.ff-file-row-name .name{font-weight:600;color:#161d2a;line-height:1.15;}
.ff-file-row-name .sub{color:#8d95a7;font-size:.66rem;margin-top:2px;}

/* Main share modal */
#shareModal .modal-dialog{max-width:650px;}
#shareModal .modal-content{border:0!important;border-radius:18px!important;background:#fff!important;box-shadow:0 22px 70px rgba(15,23,42,.24)!important;overflow:hidden;}
#shareModal .modal-header{padding:18px 21px 15px!important;border-bottom:1px solid var(--ff-line,#e5e8f0)!important;}
#shareModal .modal-title{font-size:.94rem;font-weight:600;color:#171d2b;display:flex;align-items:center;gap:9px;}
#shareModal .share-modal-title-icon{width:34px;height:34px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:#f4faf7;color:#12828f;}
#shareModal .share-modal-title-copy small{display:block;color:#858da1;font-size:.64rem;font-weight:500;margin-top:2px;}
#shareModal .modal-body{padding:17px 21px 18px!important;}
#shareModal .form-label{font-size:.71rem;font-weight:600;color:#2b3241;margin-bottom:6px;}
#shareModal .share-picker-btn{height:38px;border-radius:9px!important;border-color:#e0e4ec!important;background:#fff!important;text-align:left;padding-left:11px!important;padding-right:11px!important;}
#shareModal .share-picker-label{font-size:.72rem!important;color:#384052!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#shareModal .share-picker-btn i{font-size:.7rem;}
#shareModal .collapse .card{font-size:.71rem;padding:7px!important;}
#shareModal .collapse .form-control,
#shareModal .collapse .btn{font-size:.7rem!important;min-height:32px;}
#shareModal #shareFilesList .form-check,
#shareModal #shareRecipientsList .form-check{font-size:.71rem;line-height:1.15;margin-bottom:2px;}
#shareModal #shareFilesList .form-check-label,
#shareModal #shareRecipientsList .form-check-label{font-size:.71rem;}
#shareModal #shareRecipientsList .fw-semibold{font-size:.72rem;}
#shareModal #shareRecipientsList .small,
#shareModal #shareFilesCount,
#shareModal #shareRecipientsCount{font-size:.64rem!important;}
#shareModal .share-selected-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px;}
#shareModal .share-pill{background:#f4faf7;border:0;color:#00525c;font-size:.66rem;font-weight:600;padding:5px 8px;}
#shareModal .share-upload-zone{margin-top:8px;border:1px dashed #d9ddeb;border-radius:11px;background:#fcfcff;min-height:88px;display:flex;align-items:center;justify-content:center;text-align:center;padding:14px;cursor:pointer;}
#shareModal .share-upload-zone i{display:block;font-size:1.15rem;color:#12828f;margin-bottom:4px;}
#shareModal .share-upload-zone strong{display:block;font-size:.72rem;color:#262c3a;}
#shareModal .share-upload-zone span{display:block;font-size:.62rem;color:#9097a8;margin-top:2px;}
#shareModal #shareMessage{min-height:92px!important;border-radius:9px;resize:vertical;font-size:.72rem;padding:10px 11px;border-color:#e0e4ec;}
#shareModal .form-check-input{cursor:pointer;}
#shareModal .modal-footer{padding:12px 21px 15px!important;border-top:1px solid #eef0f4!important;gap:8px;}
#shareModal .modal-footer .btn{height:37px;border-radius:9px;font-size:.73rem;font-weight:600;padding:0 15px;}
#shareModal #shareSubmitBtn{background:#12828f;border-color:#12828f;box-shadow:0 6px 13px rgba(18,130,143,.20);}
#shareModal .share-upload-zone.dragover{border-color:#12828f;background:#f8f9ff;box-shadow:0 0 0 3px rgba(18,130,143,.07);}

/* Keep the old profile control color/shape in redesigned page headers. */
.ff-top-actions .compact-profile-menu{display:inline-flex;align-items:center;}
.ff-top-actions .compact-profile-btn{width:40px;height:40px;min-width:40px;min-height:40px;flex:0 0 40px;border-radius:50%;border:1px solid #d8def0;background:#fff;color:#12828f;font-size:.9rem;box-shadow:0 5px 15px rgba(30,41,59,.09);}
.ff-top-actions .compact-profile-btn::after{display:none;}
.ff-top-actions .compact-profile-btn:hover,
.ff-top-actions .compact-profile-btn[aria-expanded="true"]{color:#fff;border-color:#12828f;background:#12828f;filter:none;transform:translateY(-1px);box-shadow:0 8px 19px rgba(18,130,143,.23);}

@media (max-width:1100px){
  .ff-client-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ff-metric-grid,.ff-metric-grid.ff-metric-grid-3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:820px){
  .ff-topbar,.ff-client-head{align-items:stretch;flex-direction:column;}
  .ff-top-actions{justify-content:flex-start;}
  .ff-search{width:100%;max-width:none;}
  .ff-activity-columns{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .ff-shell{padding-left:0;padding-right:0;}
  .ff-page-title{font-size:1.4rem;}
  .ff-client-grid,.ff-metric-grid,.ff-metric-grid.ff-metric-grid-3{grid-template-columns:1fr;}
  .ff-clients-toolbar,.ff-files-actions{align-items:stretch;flex-direction:column;}
  .ff-files-actions-right{justify-content:flex-start;}
  .ff-primary-btn{width:100%;justify-content:center;}
}

/* Keep dashboard header utilities aligned with the redesigned pages. */
.dashboard-header-actions .search-wrap{order:1;}
.dashboard-header-actions .notif-dropdown-wrap{order:2;}
.dashboard-header-actions .compact-profile-menu{order:3;}
.dashboard-header-actions .notif-btn,
.dashboard-header-actions .compact-profile-btn{width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;flex:0 0 40px!important;}
.dashboard-header-actions .search-input input{height:40px;border-radius:10px!important;font-size:.84rem;}
.dashboard-header-actions .notif-btn{border-radius:50%!important;}
.dashboard-header-actions .search-wrap{min-width:0!important;}
.dashboard-header-actions .search-input{width:330px!important;max-width:42vw!important;}
#shareModal #shareFilesList .form-check-input,
#shareModal #shareRecipientsList .form-check-input{width:14px;height:14px;margin-top:.08rem;}

/* Iteration 3: keep workspace header utilities consistent without touching sidebar styles. */
.ff-files-actions--end{justify-content:flex-end;}

.ff-detail-tabs-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:16px;
}
.ff-detail-tabs-row .ff-detail-tabs{margin-bottom:0;}
.ff-detail-share-btn{flex:0 0 auto;width:auto!important;}

/* A file row is the preview affordance on the client activity page. */
a.ff-activity-item-link{cursor:pointer;}
a.ff-activity-item-link:focus-visible{
  outline:2px solid var(--ff-primary);
  outline-offset:2px;
}

/* Search, notification and profile use one consistent footprint in every workspace header. */
.page-header-actions.ff-top-actions,
.preview-actions.ff-top-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  flex-wrap:wrap;
}
.ff-top-actions > form{margin:0;}
.ff-top-actions .ff-search{width:330px;max-width:42vw;}
.ff-top-actions .ff-search .form-control{height:40px;}
.ff-top-actions .ff-icon-btn,
.page-header-actions.ff-top-actions .ff-icon-btn,
.preview-actions.ff-top-actions .ff-icon-btn{
  width:40px;
  height:40px;
  min-width:40px;
  min-height:40px;
  flex:0 0 40px;
  border-radius:50%;
  background:#fff;
  color:var(--workspace-primary, #12828f);
  border-color:#d8def0;
}
.ff-top-actions .compact-profile-btn,
.page-header-actions.ff-top-actions .compact-profile-btn,
.preview-actions.ff-top-actions .compact-profile-btn{
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  min-height:40px!important;
  flex:0 0 40px!important;
  border-radius:50%!important;
  background:#fff!important;
  color:var(--workspace-primary, #12828f)!important;
  border:1px solid #d8def0!important;
  box-shadow:0 5px 15px rgba(30,41,59,.09)!important;
}
.ff-top-actions .compact-profile-btn:hover,
.ff-top-actions .compact-profile-btn[aria-expanded="true"]{
  background:var(--workspace-primary, #12828f)!important;
  border-color:var(--workspace-primary, #12828f)!important;
  color:#fff!important;
}

.preview-file-actions .btn,
.folder-toolbar .btn,
.trash-toolbar .btn{
  min-height:40px;
  border-radius:10px;
  font-size:.82rem;
  font-weight:600;
}

/* Keep the compact table rhythm requested for files/shared views. */
.ff-table thead th{padding-top:9px;padding-bottom:9px;}
.ff-table tbody td{padding-top:8px;padding-bottom:8px;}

@media (max-width:820px){
  .ff-detail-tabs-row{align-items:stretch;flex-direction:column;}
  .ff-detail-share-btn{align-self:flex-end;}
  .page-header-actions.ff-top-actions,
  .preview-actions.ff-top-actions{justify-content:flex-start;}
  .ff-top-actions .ff-search{width:100%;max-width:none;}
}

/* Iteration 4 refinements */
.ff-page-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.ff-title-icon{
  width:32px;
  height:32px;
  border-radius:9px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 32px;
  background:var(--ff-primary-soft);
  color:var(--ff-primary);
  font-size:.95rem;
}

/* Cleaner filter menu: no browser-like solid blue selected row. */
.ff-files-menu .dropdown-menu{
  min-width:176px;
  padding:7px;
  border:1px solid #e3e7f0;
  border-radius:12px;
  background:#fff;
  box-shadow:0 14px 34px rgba(15,23,42,.12);
}
.ff-files-menu .dropdown-item{
  min-height:34px;
  display:flex;
  align-items:center;
  padding:7px 10px;
  border-radius:8px;
  color:#30384a;
  font-size:.76rem;
  font-weight:600;
}
.ff-files-menu .dropdown-item:hover,
.ff-files-menu .dropdown-item:focus{
  background:#f7fbf9;
  color:var(--ff-primary);
}
.ff-files-menu .dropdown-item.active,
.ff-files-menu .dropdown-item:active{
  background:var(--ff-primary-soft);
  color:var(--ff-primary);
}

/* Client detail Share control stays compact. */
.ff-detail-share-btn{
  height:34px!important;
  min-height:34px!important;
  padding:0 13px!important;
  border-radius:9px!important;
  font-size:.75rem!important;
}

/* Preview top row contains only Open, Download and profile utilities on the right. */
.preview-actions .preview-top-action{
  min-height:40px;
  height:40px;
  border-radius:10px;
  padding:0 14px;
  display:inline-flex;
  align-items:center;
  font-size:.8rem;
  font-weight:600;
}

/* Trash file/folder icons should retain semantic color instead of inheriting black. */
.trash-item-cell{
  display:flex;
  align-items:center;
  gap:9px;
}
.trash-item-icon{
  width:30px;
  height:30px;
  border-radius:8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 30px;
  font-size:.86rem;
}
.trash-item-icon.folder{background:#fff1ec;color:#ff7f50;}
.trash-item-icon.file{background:#f4faf7;color:#12828f;}
.trash-item-name{min-width:0;}


/* Iteration 5: keep every redesigned page heading visually identical to Dashboard. */
.ff-page .page-section-header{
  min-width:0;
}
.ff-page .page-heading-row{
  gap:10px;
  min-height:38px;
}
.ff-page .page-heading-row h1,
.ff-page .page-heading-row .h3{
  color:var(--workspace-text);
  font-weight:600!important;
  letter-spacing:-.025em;
}
.ff-page .page-heading-icon{
  width:38px;
  height:38px;
  flex:0 0 38px;
  border-radius:11px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(145deg,#f4faf7,#e4f3ed);
  border:1px solid #dcebe5;
  color:var(--workspace-primary);
  font-size:1.05rem;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85);
}
.ff-page .page-heading-subtitle{
  margin-top:-3px!important;
  margin-left:48px;
  color:var(--workspace-muted)!important;
  font-size:.8rem!important;
  line-height:1.15!important;
}

/* Client detail uses the same Dashboard heading rhythm, with the back arrow
   occupying the standard heading-icon position before the client name. */
.ff-client-heading{min-width:0;}
.ff-client-heading-back{
  text-decoration:none;
  cursor:pointer;
}
.ff-client-heading-back:hover{
  color:var(--workspace-primary);
  border-color:#c6e2d7;
  background:linear-gradient(145deg,#edf7f2,#dcebe5);
}

@media (max-width: 767.98px){
  .ff-page .page-heading-icon{
    width:34px;
    height:34px;
    flex-basis:34px;
    border-radius:10px;
  }
  .ff-page .page-heading-subtitle{
    margin-left:44px;
  }
}

@media (max-width: 575.98px){
  .ff-page .page-heading-subtitle{
    font-size:.74rem!important;
  }
}

/* Keep every internal page on the same left/right content rails as Dashboard.
   .dash-main already provides the workspace gutter, so redesigned page shells
   must not add their own max-width or extra horizontal padding. */
body:not(.landing):not(.auth) .dash-content > .ff-page,
body:not(.landing):not(.auth) .dash-content .ff-page{
  width:100%;
  max-width:none;
}
body:not(.landing):not(.auth) .dash-content .ff-shell{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
  padding-left:0;
  padding-right:0;
}

/* Shared table direct actions: keep the three primary actions visible. */
.ff-action-btn.ff-action-danger:hover,
.ff-action-btn.ff-action-danger:focus-visible{
  background:#fff1f2;
  color:#e11d48;
  border-color:#fecdd3;
}

/* All Files & Folders toolbar: keep Filter, New folder and Upload exactly the same height. */
.ff-files-page .ff-files-actions-right .ff-files-toolbar-btn{
  height:40px!important;
  min-height:40px!important;
  box-sizing:border-box!important;
  padding-top:0!important;
  padding-bottom:0!important;
  line-height:1!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center;
}

.ff-remark-dropzone{position:relative;min-height:142px;border:1.5px dashed #cfd6e5;border-radius:12px;background:#ffffff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:18px;text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;}
.ff-remark-dropzone:hover,.ff-remark-dropzone.is-dragging{border-color:var(--ff-primary);background:var(--ff-primary-soft);box-shadow:0 0 0 3px rgba(86,96,246,.07);}
.ff-remark-file-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;}
.ff-remark-dropzone-icon{font-size:1.35rem;color:var(--ff-primary);line-height:1;}
.ff-remark-dropzone-title{font-size:.76rem;font-weight:600;color:#30394c;}
.ff-remark-dropzone-or{font-size:.64rem;color:#98a0b2;}
.ff-remark-dropzone-browse{font-size:.72rem;font-weight:600;color:var(--ff-primary);}
.ff-remark-dropzone-file{font-size:.65rem;color:#7f899d;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ff-remark-dropzone.has-file .ff-remark-dropzone-file{color:#3c465b;font-weight:600;}

/* ======================================================================
   Super Admin oversight refinements
   ====================================================================== */
.super-admin-page{
  --sa-border:#e4e7f0;
  --sa-muted:#7b8498;
  --sa-card:#ffffff;
}
.sa-page-header{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:24px;
}
.sa-top-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  margin-left:auto;
}
.sa-top-search{
  position:relative;
  width:310px;
  flex:0 0 310px;
}
.sa-top-search > i{
  position:absolute;
  top:50%;
  left:14px;
  transform:translateY(-50%);
  color:#9aa3b6;
  font-size:.86rem;
  pointer-events:none;
  z-index:2;
}
.sa-top-search .form-control{
  height:42px;
  padding-left:39px;
  padding-right:14px;
  border:1px solid #dfe3ed;
  border-radius:12px;
  background:#fff;
  font-size:.82rem;
  box-shadow:0 4px 14px rgba(30,41,59,.035);
}
.sa-top-search .form-control:focus{
  border-color:#c6e2d7;
  box-shadow:0 0 0 3px rgba(18,130,143,.09);
}
.super-admin-page .sa-top-actions .ff-icon-btn,
.super-admin-page .sa-top-actions .compact-profile-btn{
  width:42px;
  height:42px;
  min-width:42px;
  flex:0 0 42px;
}
 .sa-overview-card{
  --card-accent:#12828f;
  position:relative;
  min-height:174px;
  padding:18px 18px 16px;
  border:1px solid #e2e6ef;
  border-radius:16px;
  background:#fff;
  text-decoration:none;
  color:inherit;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  box-shadow:0 5px 18px rgba(30,41,59,.04);
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.sa-overview-card::before{
  content:"";
  position:absolute;
  left:0;top:0;right:0;
  height:3px;
  background:var(--card-accent);
  opacity:.9;
}
.sa-overview-card.admins{--card-accent:#12828f;}
.sa-overview-card.clients{--card-accent:#12828f;}
.sa-overview-card.shared{--card-accent:#1a9b67;}
.sa-overview-card.issues{--card-accent:#d97916;}
.sa-overview-card:hover{
  transform:translateY(-2px);
  border-color:#d1d7e4;
  box-shadow:0 10px 26px rgba(30,41,59,.075);
  color:inherit;
}
.sa-overview-card-head{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 30px;
  gap:12px;
  align-items:center;
}
.sa-overview-icon{
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:#f4faf7;
  color:var(--card-accent);
  font-size:1.05rem;
}
.sa-overview-card.clients .sa-overview-icon{background:#f4faf7;}
.sa-overview-card.shared .sa-overview-icon{background:#edf9f4;}
.sa-overview-card.issues .sa-overview-icon{background:#fff1ec;}
.sa-overview-title-wrap{display:flex;flex-direction:column;gap:2px;min-width:0;}
.sa-overview-label{
  font-size:.82rem;
  font-weight:600;
  color:#242a3a;
  line-height:1.15;
  text-transform:none;
  letter-spacing:0;
}
.sa-overview-caption{
  font-size:.68rem;
  color:#939aad;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.sa-overview-arrow{
  width:30px;
  height:30px;
  border:1px solid #e4e7ef;
  border-radius:9px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#858da0;
  background:#fafbfc;
  font-size:.8rem;
  transition:background .16s ease,color .16s ease,border-color .16s ease;
}
.sa-overview-card:hover .sa-overview-arrow{
  color:var(--card-accent);
  border-color:#d9dced;
  background:#fff;
}
.sa-overview-value{
  font-size:2.05rem;
  line-height:1;
  font-weight:600;
  letter-spacing:-.045em;
  margin-top:22px;
  color:#171c2b;
}
.sa-overview-foot{
  margin-top:auto;
  padding-top:12px;
  border-top:1px solid #f0f1f5;
  color:#7e8798;
  font-size:.71rem;
  line-height:1.3;
}
.sa-table-card{
  background:#fff;
  border:1px solid var(--sa-border);
  border-radius:16px;
  box-shadow:0 5px 22px rgba(30,41,59,.035);
}
.sa-table-toolbar,
.sa-compact-filter-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  padding:13px 15px;
  border-bottom:1px solid #eceef4;
  background:#fff;
}
.sa-compact-filter-row{justify-content:flex-start;gap:8px;}
.sa-table-toolbar .sa-toolbar-spacer{flex:1 1 auto;}
.sa-compact-label{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  padding:6px 11px;
  border:1px solid #e1e4ed;
  border-radius:9px;
  background:#fafbfe;
  font-size:.76rem;
  font-weight:600;
  color:#586176;
}
.sa-filter-chip{
  min-height:34px;
  padding:6px 11px!important;
  border:1px solid #dfe3ed!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#596277!important;
  font-size:.75rem!important;
  font-weight:600!important;
  box-shadow:none!important;
  white-space:nowrap;
}
.sa-filter-chip:hover,
.sa-filter-chip.show{
  border-color:#c9ceef!important;
  background:#f7fbf9!important;
  color:#12828f!important;
}
.sa-filter-menu{
  min-width:190px;
  max-height:300px;
  overflow:auto;
  padding:6px;
  border:1px solid #e2e5ed;
  border-radius:11px;
  box-shadow:0 12px 28px rgba(15,23,42,.09);
}
.sa-filter-menu .dropdown-item{
  padding:7px 9px;
  border-radius:7px;
  font-size:.76rem;
}
.sa-filter-menu .dropdown-item.active,
.sa-filter-menu .dropdown-item:active{
  background:#f4faf7;
  color:#00525c;
}
.sa-date-menu{min-width:270px;max-height:none;overflow:visible;padding:13px;}
.sa-date-menu .form-label{font-size:.68rem;font-weight:600;color:#7f8799;margin-bottom:4px;text-transform:uppercase;letter-spacing:.035em;}
.sa-date-menu .form-control{height:36px;border-radius:8px;font-size:.76rem;}
.sa-privacy-note{
  display:inline-flex;
  align-items:center;
  width:auto;
  max-width:100%;
  padding:8px 11px;
  border:1px solid #e2e5ed;
  border-radius:9px;
  background:#fafbfe;
  color:#70798c;
  font-size:.76rem;
}
.sa-sortable-header{cursor:pointer;user-select:none;white-space:nowrap;}
.sa-sort-indicator{display:inline-flex;margin-left:7px;font-size:.66rem;color:#a4aabd;vertical-align:middle;}
.sa-sortable-header[aria-sort="ascending"] .sa-sort-indicator,
.sa-sortable-header[aria-sort="descending"] .sa-sort-indicator{color:#12828f;}
.sa-action-view{
  min-width:76px;
  min-height:36px;
  padding:7px 14px!important;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  border:1px solid #c6e2d7!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#12828f!important;
  font-size:.76rem!important;
  font-weight:600!important;
  box-shadow:0 2px 8px rgba(18,130,143,.04);
}
.sa-action-view:hover{background:#f7fbf9!important;border-color:#9bcdbd!important;color:#00525c!important;}
.sa-doc-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.sa-doc-actions.sa-doc-actions--stack{flex-direction:column;align-items:center;justify-content:center;gap:6px;flex-wrap:nowrap;}
.sa-action-view.sa-action-danger{border-color:#f6c9bd!important;color:#c9432c!important;}
.sa-action-view.sa-action-danger:hover{background:#fff3f0!important;border-color:#e9a493!important;color:#a5301c!important;}

/* Compact icon-only action group for table rows (View / Edit / Delete) -
   replaces stacked/wrapping text buttons with a single tidy row. */
.sa-icon-actions{display:inline-flex;align-items:center;justify-content:center;gap:6px;}
.sa-icon-action-btn{
  width:32px;height:32px;flex:0 0 32px;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid #dde3ee;border-radius:9px;background:#fff;color:#5e6779;
  font-size:.85rem;line-height:1;cursor:pointer;text-decoration:none;
  transition:background .12s ease,border-color .12s ease,color .12s ease,transform .12s ease;
}
.sa-icon-action-btn:hover{transform:translateY(-1px);}
.sa-icon-action-btn.is-view{border-color:#c6e2d7;color:#12828f;}
.sa-icon-action-btn.is-view:hover{background:#f4faf7;border-color:#9bcdbd;color:#00525c;}
.sa-icon-action-btn.is-edit{border-color:#cfd8f0;color:#4c5fd1;}
.sa-icon-action-btn.is-edit:hover{background:#f3f4fd;border-color:#aeb8ee;color:#333fa8;}
.sa-icon-action-btn.is-delete{border-color:#f6c9bd;color:#c9432c;}
.sa-icon-action-btn.is-delete:hover{background:#fff3f0;border-color:#e9a493;color:#a5301c;}
.sa-table-card table thead th:last-child,
.sa-table-card table tbody td:last-child{padding-left:18px;padding-right:18px;}
.sa-table-card [data-filter-empty]{padding:24px;text-align:center;color:#8b93a4;font-size:.8rem;}
.sa-event-line{display:flex;align-items:center;gap:9px;}
.sa-event-icon{width:32px;height:32px;border-radius:9px;background:#f4faf7;color:#12828f;display:inline-flex;align-items:center;justify-content:center;flex:0 0 32px;}
.sa-role-badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#f1f3f7;color:#5e6779;font-size:.68rem;font-weight:600;text-transform:capitalize;}
.sa-role-badge.admin{background:#f4faf7;color:#12828f;}.sa-role-badge.client{background:#edf8f3;color:#1b8c5a;}

@media (max-width: 991.98px){
  .sa-page-header{align-items:flex-start;}
  .sa-top-actions{width:100%;margin-left:0;justify-content:flex-start;}
  .sa-top-search{flex:1 1 auto;width:auto;min-width:0;}
}
@media (max-width: 575.98px){
  .sa-top-actions{gap:8px;}
  .sa-top-search{flex:1 1 180px;}
  .sa-top-search .form-control{font-size:.78rem;}
  .sa-table-toolbar,.sa-compact-filter-row{padding:11px;}
  .sa-overview-card{min-height:145px;}
}

/* ======================================================================
   Super Admin detail polish + safe filter menus + pagination
   ====================================================================== */
.super-admin-page .sa-table-card{
  position:relative;
  overflow:visible!important;
}
.super-admin-page .sa-compact-filter-row,
.super-admin-page .sa-table-toolbar{
  position:relative;
  z-index:30;
  overflow:visible;
  border-radius:16px 16px 0 0;
}
.super-admin-page .sa-compact-filter-row .dropdown,
.super-admin-page .sa-table-toolbar .dropdown{
  position:relative;
  z-index:31;
}
.super-admin-page .sa-filter-menu.dropdown-menu{
  z-index:1200!important;
}
.super-admin-page .sa-table-card > .table-responsive{
  position:relative;
  z-index:1;
  border-radius:0 0 16px 16px;
}
.super-admin-page .sa-action-view{
  min-width:112px!important;
  width:max-content!important;
  max-width:none!important;
  white-space:nowrap!important;
  word-break:keep-all!important;
  line-height:1.1!important;
}
.super-admin-page .sa-table-card table thead th:last-child,
.super-admin-page .sa-table-card table tbody td:last-child{
  min-width:142px;
}
.sa-detail-heading{
  display:flex;
  align-items:flex-start;
  gap:12px;
}
.sa-detail-heading .page-back-icon{
  margin-top:2px;
  flex:0 0 auto;
}
.sa-detail-heading .page-heading-icon{
  margin-top:1px;
  flex:0 0 auto;
}
.sa-detail-heading-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.sa-detail-heading-copy .page-heading-subtitle{
  margin-top:3px;
  margin-left:0!important;
  padding-left:0!important;
  text-align:left;
}
.sa-detail-heading-copy > h1,
.sa-detail-heading-copy > .page-heading-subtitle{
  margin-left:0!important;
  padding-left:0!important;
  width:100%;
  text-align:left;
}
.sa-mini-stat-card{
  min-height:118px;
  padding:15px 16px;
  border:1px solid #e3e7f0;
  border-radius:15px;
  background:linear-gradient(180deg,#fff 0%,#f8fcfa 100%);
  box-shadow:0 5px 18px rgba(30,41,59,.04);
  display:flex;
  align-items:center;
  gap:13px;
  position:relative;
  overflow:hidden;
}
.sa-mini-stat-card::after{
  content:"";
  position:absolute;
  width:66px;
  height:66px;
  right:-22px;
  top:-22px;
  border-radius:50%;
  background:rgba(18,130,143,.045);
}
.sa-mini-stat-icon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#f4faf7;
  color:#12828f;
  font-size:1.02rem;
}
.sa-mini-stat-card:nth-child(2n) .sa-mini-stat-icon{background:#f4faf7;color:#12828f;}
.sa-mini-stat-copy{position:relative;z-index:1;min-width:0;}
.sa-mini-stat-label{font-size:.71rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:#8992a5;}
.sa-mini-stat-value{font-size:1.65rem;line-height:1.08;font-weight:600;letter-spacing:-.035em;color:#171c2b;margin-top:4px;}
.sa-pagination-bar{
  min-height:54px;
  padding:10px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  border-top:1px solid #eceef4;
  background:#fff;
  border-radius:0 0 16px 16px;
}
.sa-pagination-summary,
.sa-page-indicator{
  font-size:.72rem;
  font-weight:600;
  color:#7b8498;
}
.sa-pagination-controls{display:flex;align-items:center;gap:9px;}
.sa-page-btn{
  width:34px;
  height:34px;
  border:1px solid #dfe3ed;
  border-radius:9px;
  background:#fff;
  color:#596277;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.sa-page-btn:hover:not(:disabled){border-color:#c9ceef;background:#f7fbf9;color:#12828f;}
.sa-page-btn:disabled{opacity:.42;cursor:not-allowed;}
@media (max-width:575.98px){
  .sa-pagination-bar{align-items:flex-start;flex-direction:column;}
  .sa-mini-stat-card{min-height:104px;}
}


/* Super Admin bulk selection / destructive audit controls */
.sa-select-col,
.sa-select-cell{
  width:34px!important;
  min-width:34px!important;
  max-width:34px!important;
  text-align:center!important;
  padding-left:9px!important;
  padding-right:5px!important;
}
.sa-row-select{
  appearance:none;
  -webkit-appearance:none;
  width:13px;
  height:13px;
  border:1.5px solid #c8cede;
  border-radius:50%;
  background:#fff;
  display:inline-grid;
  place-content:center;
  vertical-align:middle;
  cursor:pointer;
  transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.sa-row-select::before{
  content:"";
  width:4px;
  height:7px;
  border-right:1.5px solid #fff;
  border-bottom:1.5px solid #fff;
  transform:rotate(45deg) scale(0);
  margin-top:-2px;
  transition:transform .12s ease;
}
.sa-row-select:hover{border-color:#12828f;box-shadow:0 0 0 2px rgba(18,130,143,.07);}
.sa-row-select:checked{background:#12828f;border-color:#12828f;}
.sa-row-select:checked::before{transform:rotate(45deg) scale(1);}
.sa-row-select:indeterminate{background:#12828f;border-color:#12828f;}
.sa-row-select:indeterminate::before{
  width:8px;height:0;border:0;border-top:2px solid #fff;transform:none;margin:0;
}
.sa-bulk-actions{display:flex;align-items:center;gap:9px;}
.sa-selected-count{font-size:.72rem;font-weight:600;color:#747d91;white-space:nowrap;}
.sa-bulk-delete-btn{
  min-height:34px;
  padding:6px 12px!important;
  border:1px solid #fecaca!important;
  border-radius:9px!important;
  background:#fff7f7!important;
  color:#c62828!important;
  font-size:.74rem!important;
  font-weight:600!important;
}
.sa-bulk-delete-btn:hover{background:#fff0f0!important;border-color:#fca5a5!important;color:#b91c1c!important;}
.sa-delete-dialog{max-width:420px!important;}
.sa-delete-modal{border-radius:16px!important;padding:2px;}
.sa-delete-modal .modal-header{padding:1rem 1.1rem .25rem!important;}
.sa-delete-modal .modal-body{padding:.45rem 1.1rem!important;}
.sa-delete-modal .modal-footer{padding:.65rem 1.1rem 1rem!important;}
.sa-delete-modal .modal-title{font-size:1rem!important;}
.sa-delete-modal [data-sa-delete-copy]{font-size:.82rem;line-height:1.45;}
.sa-delete-icon{width:34px;height:34px;border-radius:10px;background:#fff1f1;color:#c62828;display:flex;align-items:center;justify-content:center;font-size:.9rem;}
.sa-file-link{color:#2d2d2d;text-decoration:none!important;border:0!important;border-bottom:0!important;}
.sa-file-link:hover{color:#12828f;text-decoration:none!important;border:0!important;border-bottom:0!important;}
.sa-role-badge.super_admin{background:#f4faf7;color:#00525c;}



/* Super Admin detail profile hero ------------------------------------------------ */
.super-admin-page .sa-profile-hero-card{
  position:relative;
  padding:24px 28px;
  min-height:174px;
  border:1px solid #e3e7f0;
  border-radius:16px;
  overflow:hidden;
}
.super-admin-page .sa-profile-hero-view{
  display:flex;
  align-items:center;
  gap:18px;
  min-height:124px;
  padding-right:54px;
}
.super-admin-page .sa-profile-avatar{
  width:76px;
  height:76px;
  flex:0 0 76px;
  border-radius:50%;
  border:1px solid #c6e2d7;
  background:linear-gradient(145deg,#edf7f2 0%,#c6e2d7 100%);
  color:#00525c;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.65rem;
  font-weight:600;
  box-shadow:0 8px 20px rgba(0,82,92,.08);
}
.super-admin-page .sa-profile-hero-copy{min-width:0;}
.super-admin-page .sa-profile-hero-name{
  color:#171c2b;
  font-size:1.08rem;
  line-height:1.2;
  font-weight:600;
}
.super-admin-page .sa-profile-hero-email{
  margin-top:4px;
  color:#6f788b;
  font-size:.78rem;
  font-weight:600;
  overflow-wrap:anywhere;
}
.super-admin-page .sa-profile-hero-role{
  margin-top:7px;
  color:#626b7e;
  font-size:.8rem;
  font-weight:600;
}
.super-admin-page .sa-profile-chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:12px;
}
.super-admin-page .sa-profile-chip{
  min-height:32px;
  max-width:100%;
  padding:6px 11px;
  border:1px solid #e1e6ef;
  border-radius:999px;
  background:#fff;
  color:#596276;
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-size:.73rem;
  font-weight:600;
  line-height:1.2;
  overflow-wrap:anywhere;
}
.super-admin-page .sa-profile-chip i{color:#00525c;font-size:.78rem;}
.super-admin-page .sa-inline-profile-edit-btn{
  width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border-radius:9px;
}
.super-admin-page .sa-profile-hero-actions{
  position:absolute;
  top:18px;
  right:18px;
  z-index:3;
  display:flex;
  align-items:center;
  gap:8px;
}
.super-admin-page .sa-profile-hero-edit{
  position:static;
}
.super-admin-page .sa-profile-edit-panel{display:none;padding-right:50px;}
.super-admin-page .sa-inline-profile-form.is-editing .sa-profile-hero-view{display:none;}
.super-admin-page .sa-inline-profile-form.is-editing .sa-profile-edit-panel{display:block;}
.super-admin-page .sa-inline-profile-form.is-editing{min-height:0;}
.super-admin-page .sa-profile-edit-panel .form-control{
  min-height:36px;
  border-radius:9px;
  border-color:#dfe4ee;
  font-size:.8rem;
}
.super-admin-page .sa-detail-stat-row .sa-mini-stat-card{min-height:108px;}
@media (max-width:767.98px){
  .super-admin-page .sa-profile-hero-card{padding:20px;}
  .super-admin-page .sa-profile-hero-view{align-items:flex-start;padding-right:44px;}
  .super-admin-page .sa-profile-avatar{width:62px;height:62px;flex-basis:62px;font-size:1.35rem;}
  .super-admin-page .sa-profile-edit-panel{padding-right:42px;}
}
@media (max-width:575.98px){
  .super-admin-page .sa-profile-hero-view{flex-direction:column;}
}

/* Super Admin account status/action columns ---------------------------------- */
/* Keep account controls compact: size them around their labels instead of
   stretching them across the whole cell. */
.super-admin-page .sa-account-status-col{
  width:96px;
  min-width:96px;
  vertical-align:middle;
  text-align:center;
}
.super-admin-page .sa-account-action-col{
  width:132px;
  min-width:132px;
  vertical-align:middle;
  text-align:center;
}
.super-admin-page th.sa-account-status-col,
.super-admin-page th.sa-account-action-col{
  text-align:center;
}
.super-admin-page .sa-account-status-form{
  width:auto;
  display:flex;
  align-items:center;
  justify-content:center;
}
.super-admin-page .sa-account-status-select{
  width:86px!important;
  min-width:86px!important;
  max-width:86px!important;
  height:34px;
  padding-left:9px;
  padding-right:25px;
  border:1px solid #d7ddea;
  border-radius:10px;
  background-color:#fff;
  color:#334155;
  font-size:.75rem;
  font-weight:600;
  line-height:1.2;
  box-shadow:none;
}
.super-admin-page .sa-account-status-select:focus{
  border-color:#9bcdbd;
  box-shadow:0 0 0 3px rgba(18,130,143,.08);
}
.super-admin-page td.sa-account-action-col .sa-action-view{
  width:auto!important;
  min-width:0!important;
  min-height:36px;
  padding:7px 12px!important;
  margin-inline:auto;
  white-space:nowrap;
}
.super-admin-page .sa-table-card table thead th.sa-account-status-col,
.super-admin-page .sa-table-card table tbody td.sa-account-status-col,
.super-admin-page .sa-table-card table thead th.sa-account-action-col,
.super-admin-page .sa-table-card table tbody td.sa-account-action-col{
  padding-left:8px;
  padding-right:8px;
}
@media (max-width: 767.98px){
  .super-admin-page .sa-account-status-col{
    width:94px;
    min-width:94px;
  }
  .super-admin-page .sa-account-action-col{
    width:114px;
    min-width:114px;
  }
}



/* Centered feedback popup: compact icon above the message. */
.app-flash-stack{
  position:fixed;
  inset:50% auto auto 50%;
  transform:translate(-50%,-50%);
  z-index:3000;
  width:min(310px,calc(100vw - 32px));
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  pointer-events:none;
}
.app-flash-toast{
  width:100%;
  min-height:148px;
  padding:18px 20px;
  border:1px solid #e5e7eb;
  border-radius:18px;
  background:rgba(255,255,255,.99);
  box-shadow:0 20px 54px rgba(15,23,42,.20);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:#273244;
  font-size:.9rem;
  font-weight:600;
  line-height:1.4;
  text-align:center;
  opacity:1;
  transform:translateY(0) scale(1);
  transition:opacity .2s ease,transform .2s ease;
  pointer-events:auto;
}
.app-flash-toast.is-hiding{opacity:0;transform:translateY(-4px) scale(.97);}
.app-flash-icon{
  width:40px;
  height:40px;
  flex:0 0 40px;
  border-radius:11px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:1.05rem;
  background:#f4faf7;
  color:#12828f;
  box-shadow:inset 0 0 0 1px rgba(18,130,143,.08);
}
.app-flash-toast--success .app-flash-icon{background:#eaf8ef;color:#169c54;box-shadow:inset 0 0 0 1px rgba(22,156,84,.12);}
.app-flash-toast--danger .app-flash-icon,
.app-flash-toast--error .app-flash-icon{background:#fff0f0;color:#dc3545;box-shadow:inset 0 0 0 1px rgba(220,53,69,.12);}
.app-flash-toast--warning .app-flash-icon{background:#fff1ec;color:#ff7f50;box-shadow:inset 0 0 0 1px rgba(213,139,0,.12);}
.app-flash-toast--info .app-flash-icon,
.app-flash-toast--message .app-flash-icon{background:#f4faf7;color:#12828f;}
.app-flash-message{
  width:100%;
  min-width:0;
  padding-top:0;
  border-top:0;
  overflow-wrap:anywhere;
}
@media (max-width:575.98px){
  .app-flash-stack{width:min(290px,calc(100vw - 28px));}
  .app-flash-toast{min-height:140px;padding:16px 18px;}
}

/* Keep the three detail summary cards clean without colored top borders. */
.super-admin-page .sa-detail-stat-row .sa-mini-stat-card{
  transition:transform .16s ease,box-shadow .16s ease;
}
.super-admin-page .sa-detail-stat-row .sa-mini-stat-card:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(30,41,59,.08);
}
.super-admin-page .sa-mini-stat-card--people .sa-mini-stat-icon{background:#edf7f2;color:#12828f;}
.super-admin-page .sa-mini-stat-card--share .sa-mini-stat-icon{background:#f4faf7;color:#12828f;}
.super-admin-page .sa-mini-stat-card--send .sa-mini-stat-icon{background:#edf7f2;color:#00525c;}
.super-admin-page .sa-mini-stat-card--download .sa-mini-stat-icon{background:#eaf9f2;color:#168c60;}

/* Company is intentionally rendered as a profile chip, not as a separate role line. */
.super-admin-page .sa-profile-hero-role{display:none;}
.super-admin-page .sa-profile-edit-panel .form-select{
  min-height:36px;
  border-radius:9px;
  border-color:#dfe4ee;
  font-size:.8rem;
}

/* Super Admin profile custom-field editor ----------------------------------- */
.super-admin-page .sa-custom-fields-editor{
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--workspace-line,#e4e9f2);
}
.super-admin-page .sa-custom-fields-editor .ff-client-custom-edit-row{
  grid-template-columns:minmax(150px,.8fr) minmax(190px,1.2fr) 34px 34px;
}
@media (max-width:767.98px){
  .super-admin-page .sa-custom-fields-editor .ff-client-custom-edit-row{
    grid-template-columns:1fr 1fr;
  }
}

/* Shared page: keep Share on the same row as Sent / Received. */
.ff-share-tabs-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}
.ff-share-tabs-row .ff-share-tabs{
  margin-bottom:0;
}
.ff-shared-row-share-btn{
  flex:0 0 auto;
}
@media (max-width:640px){
  .ff-share-tabs-row{
    align-items:stretch;
    flex-direction:column;
  }
  .ff-shared-row-share-btn{
    align-self:flex-end;
  }
}

/* Thomson Data final FileFlow brand alignment */
:root,
.ff-page{
  --ff-primary:#12828f;
  --ff-primary-2:#00525c;
  --ff-primary-soft:#f4faf7;
  --ff-bg:#f4faf7;
  --ff-card:#ffffff;
  --ff-text:#2d2d2d;
  --ff-muted:#60736e;
  --ff-line:#dcebe5;
  --ff-green:#377438;
  --ff-green-soft:#f1faef;
  --ff-orange:#ff7f50;
  --ff-orange-soft:#fff1ec;
  --ff-blue:#12828f;
  --ff-blue-soft:#f4faf7;
}
.ff-page{
  font-family:"Quicksand",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16px;
  font-weight:400;
}
.ff-page h1,.ff-page h2,.ff-page h3,.ff-page h4,.ff-page h5,.ff-page h6,
.ff-page-title,.ff-section-label,.ff-card strong{font-weight:600!important;}

/* ======================================================================
   THOMSON DATA V2 FILEFLOW POLISH
   fileflow-redesign.css loads after app.css, so reinforce the same palette
   and stronger typography here for file/client/admin screens.
   ====================================================================== */
:root,
.ff-page{
  --ff-primary:#12828f;
  --ff-primary-2:#00525c;
  --ff-primary-soft:rgba(18,130,143,.10);
  --ff-orange:#ff7f50;
  --ff-orange-soft:#fff1ec;
  --ff-blue:#12828f;
  --ff-blue-soft:#f4faf7;
  --ff-muted:#586b6f;
  --ff-line:#d7e8e4;
}
.ff-page{
  font-weight:500 !important;
  color:#2d2d2d;
}
.ff-page p,
.ff-page small,
.ff-page .small,
.ff-page .text-muted,
.ff-table td,
.ff-table th{
  font-weight:500;
}
.ff-page h1,.ff-page h2,.ff-page h3,.ff-page h4,.ff-page h5,.ff-page h6,
.ff-page-title,.ff-section-label{
  font-weight:700 !important;
  letter-spacing:-.018em;
}
.ff-file-name,
.ff-person-name,
.ff-client-name,
.ff-client-state,
.ff-activity-item-name,
.ff-card strong{
  font-weight:600 !important;
}
.ff-primary-btn{
  background:#12828f !important;
  border-color:#12828f !important;
  box-shadow:0 8px 18px rgba(18,130,143,.18) !important;
  transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease;
}
.ff-primary-btn:hover{
  background:#00525c !important;
  border-color:#00525c !important;
  box-shadow:0 10px 24px rgba(0,82,92,.22) !important;
  transform:translateY(-1px);
}
.ff-secondary-btn,
.ff-icon-btn,
.ff-card,
.ff-client-card,
.sa-overview-card,
.sa-mini-stat-card{
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,
             background-color .18s ease,color .18s ease;
}
.ff-table tbody tr{
  transition:background-color .16s ease,box-shadow .16s ease;
}
.ff-table tbody tr:hover{
  background:#f3faf8 !important;
  box-shadow:inset 3px 0 0 rgba(18,130,143,.45);
}
.ff-file-icon.folder,
.ff-metric-icon.orange{
  background:#fff1ec !important;
  color:#ff7f50 !important;
}
.ff-activity-remark-btn:hover{
  background:#fff1ec !important;
  border-color:#ffc3b0 !important;
  color:#a8442b !important;
}
.app-flash-toast--warning .app-flash-icon{
  background:#fff1ec !important;
  color:#ff7f50 !important;
  box-shadow:inset 0 0 0 1px rgba(255,127,80,.18) !important;
}
@media (hover:hover){
  .ff-card:hover,
  .ff-client-card:hover,
  .sa-overview-card:hover,
  .sa-mini-stat-card:hover{
    transform:translateY(-2px);
    border-color:rgba(18,130,143,.22) !important;
    box-shadow:0 16px 36px rgba(0,82,92,.10) !important;
  }
  .ff-secondary-btn:hover,
  .ff-icon-btn:hover{
    border-color:rgba(18,130,143,.30) !important;
    color:#12828f !important;
    background:#f3faf8 !important;
  }
}


/* Thomson Data V3: visible coral secondary accents */
:root,.ff-page{
  --ff-primary:#12828f;
  --ff-orange:#ff7f50;
  --ff-orange-soft:#fff1ec;
  --ff-green:#377438;
  --ff-green-soft:#f1faef;
}
.ff-status.downloaded,.ff-status.shared{
  background:var(--ff-green-soft) !important;
  color:var(--ff-green) !important;
}
.ff-status.pending,.ff-status.not-shared{
  background:var(--ff-orange-soft) !important;
  color:#c65331 !important;
}
.ff-action-btn[title="Download"],
.ff-activity-action-btn[title^="Download"]{
  color:var(--ff-orange) !important;
  background:var(--ff-orange-soft) !important;
  border-color:rgba(255,127,80,.24) !important;
}
@media (hover:hover){
  .ff-action-btn[title="Download"]:hover,
  .ff-activity-action-btn[title^="Download"]:hover{
    color:#fff !important;
    background:var(--ff-orange) !important;
    border-color:var(--ff-orange) !important;
    box-shadow:0 7px 16px rgba(255,127,80,.22) !important;
  }
}
.ff-metric-icon.green{
  background:var(--ff-green-soft) !important;
  color:var(--ff-green) !important;
}
.ff-metric-icon.orange{
  background:var(--ff-orange-soft) !important;
  color:var(--ff-orange) !important;
}


/* ======================================================================
   THOMSON DATA V4 — COHESIVE WEB + WORKSPACE VISUAL SYSTEM
   - Thomson teal establishes structure and hierarchy.
   - Coral is used as a focused CTA/hover accent (not alternating cards).
   - Quicksand weights/sizes are lifted to match the public site's stronger
     headline/body rhythm while keeping dense workspace tables usable.
   ====================================================================== */
:root,
.ff-page{
  --td-teal:#12828f;
  --td-teal-dark:#00525c;
  --td-teal-soft:#eaf7f5;
  --td-teal-pale:#dff0ee;
  --td-coral:#ff7f50;
  --td-coral-dark:#e8673d;
  --td-coral-soft:#fff1ec;
  --td-success:#377438;
  --td-ink:#252525;
  --td-text:#2d2d2d;
  --td-muted:#55666a;
}

body:not(.landing):not(.auth){
  font-family:"Quicksand",system-ui,-apple-system,"Segoe UI",sans-serif !important;
  font-size:16px !important;
  font-weight:500 !important;
  color:var(--td-text) !important;
}
body:not(.landing):not(.auth) h1,
body:not(.landing):not(.auth) h2,
body:not(.landing):not(.auth) h3,
body:not(.landing):not(.auth) h4,
body:not(.landing):not(.auth) h5,
body:not(.landing):not(.auth) h6{
  font-family:"Quicksand",system-ui,sans-serif !important;
  font-weight:700 !important;
  letter-spacing:-.025em;
}

/* Stronger page heading rhythm like the public Thomson Data website. */
.page-heading-row h1,
.ff-page-title,
.super-admin-page .sa-page-header h1{
  color:var(--td-teal) !important;
  font-size:clamp(1.65rem,2vw,2rem) !important;
  line-height:1.12 !important;
  font-weight:700 !important;
}
.page-heading-subtitle,
.ff-page-subtitle{
  color:var(--td-muted) !important;
  font-size:.94rem !important;
  line-height:1.55 !important;
  font-weight:500 !important;
}
.page-heading-icon{
  color:var(--td-coral) !important;
}

/* Soft website-like hero strip for workspace headers; not a flat utility row. */
body:not(.landing):not(.auth) .ff-topbar,
.super-admin-page .sa-page-header{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  border:1px solid rgba(18,130,143,.13) !important;
  border-radius:22px !important;
  padding:20px 22px !important;
  background:
    linear-gradient(115deg,rgba(234,247,245,.98) 0%,rgba(250,253,252,.98) 54%,rgba(223,240,238,.92) 100%) !important;
  box-shadow:0 13px 34px rgba(0,82,92,.07) !important;
}
body:not(.landing):not(.auth) .ff-topbar::before,
.super-admin-page .sa-page-header::before{
  content:"";
  position:absolute;
  width:260px;
  height:260px;
  right:-118px;
  top:-170px;
  z-index:-1;
  border-radius:50%;
  background:rgba(18,130,143,.10);
}
body:not(.landing):not(.auth) .ff-topbar::after,
.super-admin-page .sa-page-header::after{
  content:"";
  position:absolute;
  width:72px;
  height:5px;
  left:22px;
  bottom:0;
  z-index:2;
  border-radius:999px 999px 0 0;
  background:var(--td-coral);
}
body:not(.landing):not(.auth) .ff-topbar > *,
.super-admin-page .sa-page-header > *{
  position:relative;
  z-index:1;
}

/* Public-site CTA behavior: teal at rest, coral on hover/focus. */
body:not(.landing):not(.auth) .btn-primary,
body:not(.landing):not(.auth) .ff-primary-btn{
  background:var(--td-teal) !important;
  border-color:var(--td-teal) !important;
  color:#fff !important;
  font-weight:700 !important;
  box-shadow:0 8px 20px rgba(18,130,143,.18) !important;
}
body:not(.landing):not(.auth) .btn-primary:hover,
body:not(.landing):not(.auth) .btn-primary:focus,
body:not(.landing):not(.auth) .ff-primary-btn:hover,
body:not(.landing):not(.auth) .ff-primary-btn:focus{
  background:var(--td-coral) !important;
  border-color:var(--td-coral) !important;
  color:#fff !important;
  box-shadow:0 10px 24px rgba(255,127,80,.24) !important;
}

/* Dashboard hero and cards: consistent teal structure, coral interaction accent. */
body.dashboard-view .dashboard-topbar{
  margin-bottom:22px !important;
}
body.dashboard-view .dash-stats-compact{
  margin-top:0 !important;
  margin-bottom:22px !important;
}
body.dashboard-view .action-card{
  position:relative;
  border:1px solid rgba(18,130,143,.14) !important;
  border-radius:18px !important;
  background:linear-gradient(145deg,#fff 0%,#fff 72%,rgba(234,247,245,.68) 100%) !important;
  box-shadow:0 12px 30px rgba(0,82,92,.075) !important;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease !important;
}
body.dashboard-view .action-card::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  width:0;
  height:3px;
  transform:translateX(-50%);
  border-radius:999px 999px 0 0;
  background:var(--td-coral);
  transition:width .2s ease;
}
/* Neutralize the V3 per-card orange alternation. */
body.dashboard-view .dash-stats-compact > div:nth-child(n) .action-card .icon-bubble{
  background:rgba(18,130,143,.10) !important;
  color:var(--td-teal) !important;
  border-color:rgba(18,130,143,.14) !important;
  box-shadow:0 7px 18px rgba(18,130,143,.09) !important;
}
body.dashboard-view .dash-stats-compact > div:nth-child(n) .action-card .icon-bubble i{
  color:var(--td-teal) !important;
}
body.dashboard-view .action-card .card-title{
  color:var(--td-ink) !important;
  font-size:1.08rem !important;
  line-height:1.25 !important;
  font-weight:700 !important;
}
body.dashboard-view .action-card .card-subtitle{
  color:var(--td-muted) !important;
  font-size:.9rem !important;
  line-height:1.4 !important;
  font-weight:500 !important;
}
@media (hover:hover){
  body.dashboard-view .dash-stats-compact > div:nth-child(n) .action-card:hover{
    transform:translateY(-4px) !important;
    border-color:rgba(255,127,80,.34) !important;
    box-shadow:0 19px 42px rgba(0,82,92,.12) !important;
  }
  body.dashboard-view .action-card:hover::after{width:72px;}
  body.dashboard-view .dash-stats-compact > div:nth-child(n) .action-card:hover .icon-bubble{
    background:var(--td-coral) !important;
    border-color:var(--td-coral) !important;
    color:#fff !important;
    box-shadow:0 9px 22px rgba(255,127,80,.24) !important;
  }
  body.dashboard-view .dash-stats-compact > div:nth-child(n) .action-card:hover .icon-bubble i{
    color:#fff !important;
  }
}

body.dashboard-view .dashboard-reference-card{
  border:1px solid rgba(18,130,143,.14) !important;
  border-radius:18px !important;
  box-shadow:0 12px 32px rgba(0,82,92,.075) !important;
  background:#fff !important;
}
body.dashboard-view .dashboard-reference-card::before,
body.dashboard-view .dashboard-recent-card::before,
body.dashboard-view .dash-clients-card::before{
  height:3px !important;
  background:var(--td-teal) !important;
}
body.dashboard-view .dashboard-reference-title{
  color:var(--td-teal) !important;
  font-size:1.16rem !important;
  line-height:1.25 !important;
  font-weight:700 !important;
}
body.dashboard-view .dashboard-reference-subtitle{
  color:var(--td-muted) !important;
  font-size:.88rem !important;
  line-height:1.45 !important;
  font-weight:500 !important;
}
body.dashboard-view .dashboard-view-all,
body.dashboard-view .dashboard-recent-card .dashboard-view-all{
  color:var(--td-teal) !important;
  background:#fff !important;
  border-color:rgba(18,130,143,.30) !important;
  font-size:.82rem !important;
  font-weight:700 !important;
}
body.dashboard-view .dashboard-view-all:hover,
body.dashboard-view .dashboard-recent-card .dashboard-view-all:hover{
  color:#fff !important;
  background:var(--td-coral) !important;
  border-color:var(--td-coral) !important;
  box-shadow:0 7px 17px rgba(255,127,80,.22) !important;
}
body.dashboard-view .dashboard-recent-table thead th,
body.dashboard-view .dashboard-client-columns{
  color:#43555a !important;
  font-size:.79rem !important;
  line-height:1.2 !important;
  font-weight:700 !important;
  letter-spacing:.025em !important;
}
body.dashboard-view .dashboard-recent-table tbody td,
body.dashboard-view .dashboard-client-row{
  color:var(--td-text) !important;
  font-size:.9rem !important;
  font-weight:500 !important;
}
body.dashboard-view .dashboard-recent-name,
body.dashboard-view .dashboard-client-copy strong{
  color:var(--td-ink) !important;
  font-size:.92rem !important;
  font-weight:700 !important;
}
body.dashboard-view .dashboard-recent-muted,
body.dashboard-view .dashboard-client-last-active,
body.dashboard-view .dashboard-client-copy small{
  color:#66777b !important;
  font-size:.82rem !important;
  font-weight:500 !important;
}
body.dashboard-view .dashboard-recent-table tbody tr:hover td,
body.dashboard-view .dashboard-client-row:hover{
  background:#f5fbf9 !important;
}
body.dashboard-view .dashboard-client-row:hover{
  box-shadow:inset 3px 0 0 var(--td-coral) !important;
}
body.dashboard-view .dashboard-client-count i{
  color:var(--td-teal) !important;
}
/* Download is a focused coral action, rather than coloring an entire card. */
body.dashboard-view .dashboard-recent-action[title="Download"],
body.dashboard-view .dashboard-client-action[title="Download"]{
  color:var(--td-coral) !important;
  border-color:rgba(255,127,80,.25) !important;
  background:var(--td-coral-soft) !important;
}
body.dashboard-view .dashboard-recent-action[title="Download"]:hover,
body.dashboard-view .dashboard-client-action[title="Download"]:hover{
  color:#fff !important;
  background:var(--td-coral) !important;
  border-color:var(--td-coral) !important;
}

/* Give the workspace background a gentle DaaS-style layer without competing
   with the content. */
body.dashboard-view .dash-main{
  background:
    radial-gradient(720px 310px at 88% -5%,rgba(18,130,143,.10),transparent 67%),
    radial-gradient(560px 260px at 3% 102%,rgba(198,226,215,.34),transparent 72%),
    #f4faf7 !important;
}

/* Super Admin: remove the green/orange card-by-card rainbow. All cards share
   one teal hierarchy and reveal coral only on interaction. */
.super-admin-page .sa-overview-card.admins,
.super-admin-page .sa-overview-card.clients,
.super-admin-page .sa-overview-card.shared,
.super-admin-page .sa-overview-card.issues{
  --card-accent:var(--td-teal) !important;
  border-color:rgba(18,130,143,.14) !important;
  box-shadow:0 12px 30px rgba(0,82,92,.07) !important;
}
.super-admin-page .sa-overview-card .sa-overview-icon,
.super-admin-page .sa-overview-card.clients .sa-overview-icon,
.super-admin-page .sa-overview-card.shared .sa-overview-icon,
.super-admin-page .sa-overview-card.issues .sa-overview-icon{
  background:var(--td-teal-soft) !important;
  color:var(--td-teal) !important;
}
.super-admin-page .sa-overview-label{
  color:var(--td-ink) !important;
  font-size:.98rem !important;
  font-weight:700 !important;
}
.super-admin-page .sa-overview-caption{
  color:var(--td-muted) !important;
  font-size:.82rem !important;
  font-weight:500 !important;
}
.super-admin-page .sa-overview-value{
  color:var(--td-teal) !important;
  font-size:2rem !important;
  font-weight:700 !important;
}
.super-admin-page .sa-overview-arrow{
  color:var(--td-teal) !important;
}
.super-admin-page .sa-mini-stat-icon,
.super-admin-page .sa-mini-stat-card:nth-child(2n) .sa-mini-stat-icon,
.super-admin-page .sa-mini-stat-card--people .sa-mini-stat-icon,
.super-admin-page .sa-mini-stat-card--share .sa-mini-stat-icon,
.super-admin-page .sa-mini-stat-card--send .sa-mini-stat-icon,
.super-admin-page .sa-mini-stat-card--download .sa-mini-stat-icon{
  background:var(--td-teal-soft) !important;
  color:var(--td-teal) !important;
}
@media (hover:hover){
  .super-admin-page .sa-overview-card:hover{
    border-color:rgba(255,127,80,.32) !important;
    box-shadow:0 18px 40px rgba(0,82,92,.11) !important;
  }
  .super-admin-page .sa-overview-card:hover::before{
    background:var(--td-coral) !important;
  }
  .super-admin-page .sa-overview-card:hover .sa-overview-icon,
  .super-admin-page .sa-overview-card:hover .sa-overview-arrow{
    background:var(--td-coral-soft) !important;
    color:var(--td-coral) !important;
  }
  .super-admin-page .sa-mini-stat-card:hover .sa-mini-stat-icon{
    background:var(--td-coral-soft) !important;
    color:var(--td-coral) !important;
  }
}

/* All footer links now use exactly the same hover behavior. */
.dashboard-footer-links a,
.footer a{
  color:#53676b !important;
  font-weight:600 !important;
  text-decoration:none !important;
  transition:color .16s ease,text-decoration-color .16s ease !important;
}
.dashboard-footer-links a:hover,
.dashboard-footer-links a:nth-child(even):hover,
.footer a:hover{
  color:var(--td-coral) !important;
  text-decoration:underline !important;
  text-decoration-color:var(--td-coral) !important;
  text-underline-offset:4px !important;
}

/* Logout confirmation: outside the card, bottom-right, gone after the existing
   2-second data-flash-duration timeout. */
body.thomson-login-view .app-flash-stack{
  inset:auto 24px 24px auto !important;
  top:auto !important;
  left:auto !important;
  right:24px !important;
  bottom:24px !important;
  transform:none !important;
  width:min(360px,calc(100vw - 32px)) !important;
  align-items:stretch !important;
}
body.thomson-login-view .app-flash-toast{
  padding:12px 14px !important;
  border-radius:12px !important;
  box-shadow:0 14px 34px rgba(0,82,92,.16) !important;
  font-size:.86rem !important;
  font-weight:700 !important;
}
body.thomson-login-view .app-flash-toast--logout{
  border:1px solid rgba(55,116,56,.16) !important;
  border-left:4px solid var(--td-success) !important;
  background:#fff !important;
}
body.thomson-login-view .app-flash-toast--logout .app-flash-icon{
  color:#fff !important;
  background:var(--td-success) !important;
  box-shadow:none !important;
}
@media(max-width:575.98px){
  body.thomson-login-view .app-flash-stack{
    right:14px !important;
    bottom:14px !important;
    width:min(340px,calc(100vw - 28px)) !important;
  }
}

/* Footer destination pages: site-like typography and one small back icon. */
body.td-footer-page .td-legal-page{
  position:relative;
  max-width:1220px !important;
  padding-top:12px !important;
}
.td-page-back{
  width:36px;
  height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0 0 14px;
  border:1px solid rgba(18,130,143,.20);
  border-radius:10px;
  background:#fff;
  color:var(--td-teal) !important;
  text-decoration:none !important;
  box-shadow:0 6px 16px rgba(0,82,92,.07);
  transition:transform .16s ease,background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease;
}
.td-page-back:hover{
  transform:translateX(-2px);
  color:#fff !important;
  background:var(--td-coral) !important;
  border-color:var(--td-coral) !important;
  box-shadow:0 8px 18px rgba(255,127,80,.20);
}
.td-legal-hero{
  border:1px solid rgba(18,130,143,.13) !important;
  border-radius:22px !important;
  background:linear-gradient(115deg,#eaf7f5 0%,#fff 56%,#dff0ee 100%) !important;
  box-shadow:0 13px 34px rgba(0,82,92,.07) !important;
}
.td-legal-kicker{
  color:var(--td-coral) !important;
  font-size:.78rem !important;
  font-weight:700 !important;
  letter-spacing:.13em !important;
}
.td-legal-hero h1{
  color:var(--td-teal) !important;
  font-size:clamp(2rem,3vw,2.65rem) !important;
  line-height:1.12 !important;
  font-weight:700 !important;
}
.td-legal-hero p{
  color:#3f4d50 !important;
  font-size:1rem !important;
  line-height:1.75 !important;
  font-weight:500 !important;
}
.td-legal-hero .btn{
  color:var(--td-teal) !important;
  border-color:rgba(18,130,143,.34) !important;
  background:#fff !important;
  font-weight:700 !important;
}
.td-legal-hero .btn:hover{
  color:#fff !important;
  border-color:var(--td-coral) !important;
  background:var(--td-coral) !important;
}
.td-legal-nav a{
  font-size:.9rem !important;
  font-weight:600 !important;
}
.td-legal-nav a:hover{
  color:var(--td-coral) !important;
  background:var(--td-coral-soft) !important;
}
.td-legal-content h2,
.td-contact-card h2,
.td-contact-help h2{
  font-size:1.18rem !important;
  font-weight:700 !important;
}
.td-legal-content h2{
  color:var(--td-teal) !important;
}
.td-legal-content p,
.td-contact-card p,
.td-contact-inline{
  color:#3f4d50 !important;
  font-size:.94rem !important;
  line-height:1.78 !important;
  font-weight:500 !important;
}
.td-contact-card{
  position:relative;
  overflow:hidden;
  border-color:rgba(18,130,143,.14) !important;
}
.td-contact-card::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  background:var(--td-teal);
  transition:background-color .18s ease;
}
.td-contact-icon{
  background:var(--td-teal-soft) !important;
  color:var(--td-teal) !important;
}
.td-contact-card a{
  color:var(--td-teal) !important;
  font-size:.9rem !important;
  font-weight:700 !important;
}
.td-contact-card a:hover{color:var(--td-coral) !important;}
@media(hover:hover){
  .td-contact-card:hover::before{background:var(--td-coral);}
  .td-contact-card:hover .td-contact-icon{
    color:var(--td-coral) !important;
    background:var(--td-coral-soft) !important;
  }
}
.td-contact-help{
  background:linear-gradient(120deg,var(--td-teal-dark),var(--td-teal)) !important;
}
.td-contact-help .btn-primary{
  background:var(--td-coral) !important;
  border-color:var(--td-coral) !important;
  color:#fff !important;
  box-shadow:0 9px 20px rgba(255,127,80,.22) !important;
}
.td-contact-help .btn-primary:hover{
  background:#fff !important;
  border-color:#fff !important;
  color:var(--td-teal-dark) !important;
}

/* Notification event icons use the same role system; downloads are coral. */
.notification-item-icon.is-download,
.page-notification-icon.is-download{
  background:var(--td-coral-soft) !important;
  color:var(--td-coral) !important;
  box-shadow:inset 0 0 0 1px rgba(255,127,80,.18) !important;
}
.notif-badge{
  background:var(--td-coral) !important;
  color:#fff !important;
}

@media(max-width:991.98px){
  body:not(.landing):not(.auth) .ff-topbar,
  .super-admin-page .sa-page-header{
    padding:17px 18px !important;
    border-radius:18px !important;
  }
}


/* ======================================================================
   THOMSON DATA V5 — DASHBOARD DENSITY + CLEAN INTERACTION DETAILS
   - Sidebar collapse control is always opaque/readable.
   - Dashboard quick actions no longer draw the short coral hover line.
   - Admin/client dashboard typography is brought back in line with the
     denser application pages without changing global page typography.
   ====================================================================== */

/* Keep the desktop sidebar toggle readable in both expanded and collapsed
   states. It should look like a small physical control, not transparent glass. */
.dash-sidebar .sidebar-toggle,
.dash-sidebar:not(.is-collapsed) .sidebar-toggle,
.dash-sidebar.is-collapsed .sidebar-toggle{
  background:#ffffff !important;
  color:var(--td-teal,#12828f) !important;
  border:1px solid rgba(0,82,92,.18) !important;
  box-shadow:0 5px 15px rgba(0,82,92,.18) !important;
  opacity:1 !important;
  backdrop-filter:none !important;
}
.dash-sidebar .sidebar-toggle i{
  color:inherit !important;
  opacity:1 !important;
}
@media (hover:hover){
  .dash-sidebar .sidebar-toggle:hover{
    background:#f4faf7 !important;
    color:var(--td-teal-dark,#00525c) !important;
    border-color:rgba(0,82,92,.28) !important;
    box-shadow:0 7px 18px rgba(0,82,92,.22) !important;
  }
}

/* Remove the short coral line animation from dashboard quick-action cards.
   Hover feedback is kept through the icon, border, shadow and lift only. */
body.dashboard-view .action-card::after,
body.dashboard-view .action-card:hover::after{
  content:none !important;
  display:none !important;
  width:0 !important;
}

/* Slightly calmer hover treatment after removing the line accent. */
@media (hover:hover){
  body.dashboard-view .dash-stats-compact > div:nth-child(n) .action-card:hover{
    transform:translateY(-3px) !important;
    border-color:rgba(18,130,143,.26) !important;
    box-shadow:0 17px 36px rgba(0,82,92,.105) !important;
  }
}

/* Admin + client dashboard only: match the compact type scale used by the
   Files, Clients, Shared and Notifications pages. */
body.dashboard-view .action-card .card-title{
  font-size:1rem !important;
  line-height:1.22 !important;
}
body.dashboard-view .action-card .card-subtitle{
  font-size:.82rem !important;
  line-height:1.35 !important;
}
body.dashboard-view .dashboard-reference-title{
  font-size:1.05rem !important;
  line-height:1.22 !important;
}
body.dashboard-view .dashboard-reference-subtitle{
  font-size:.80rem !important;
  line-height:1.4 !important;
}
body.dashboard-view .dashboard-view-all,
body.dashboard-view .dashboard-recent-card .dashboard-view-all{
  font-size:.76rem !important;
}
body.dashboard-view .dashboard-recent-table thead th,
body.dashboard-view .dashboard-client-columns{
  font-size:.73rem !important;
}
body.dashboard-view .dashboard-recent-table tbody td,
body.dashboard-view .dashboard-client-row{
  font-size:.84rem !important;
}
body.dashboard-view .dashboard-recent-name,
body.dashboard-view .dashboard-client-copy strong{
  font-size:.86rem !important;
}
body.dashboard-view .dashboard-recent-muted,
body.dashboard-view .dashboard-client-last-active,
body.dashboard-view .dashboard-client-copy small{
  font-size:.75rem !important;
}

/* Keep the Dashboard page heading slightly more compact than public-style
   content pages while preserving the same Quicksand hierarchy. */
body.dashboard-view .dashboard-topbar .page-heading-row h1{
  font-size:1.48rem !important;
}
body.dashboard-view .dashboard-topbar .page-heading-subtitle{
  font-size:.86rem !important;
}

/* ======================================================================
   THOMSON DATA V6 — PROFILE DROPDOWN VISIBILITY FIX
   Header artwork used overflow:hidden, which clipped the Bootstrap profile
   menu as soon as it extended below the rounded header. Keep the header
   decorative treatment in the background while allowing menus to escape.
   ====================================================================== */
body:not(.landing):not(.auth) .ff-topbar,
.super-admin-page .sa-page-header{
  overflow:visible !important;
  z-index:1055 !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(18,130,143,.10) 0 118px, transparent 119px),
    linear-gradient(115deg,rgba(234,247,245,.98) 0%,rgba(250,253,252,.98) 54%,rgba(223,240,238,.92) 100%) !important;
}

/* The old oversized pseudo-circle depended on clipping; the radial gradient
   above gives the same contained accent without clipping the dropdown. */
body:not(.landing):not(.auth) .ff-topbar::before,
.super-admin-page .sa-page-header::before{
  content:none !important;
  display:none !important;
}

body:not(.landing):not(.auth) .ff-topbar .ff-top-actions,
.super-admin-page .sa-page-header .sa-top-actions,
body:not(.landing):not(.auth) .compact-profile-menu{
  position:relative;
  overflow:visible !important;
  z-index:1100 !important;
}

body:not(.landing):not(.auth) .compact-profile-dropdown{
  z-index:1200 !important;
}

/* Keep the first content row below the open profile menu's stacking layer. */
body.dashboard-view .dash-stats-compact,
.super-admin-page .sa-page-header + .row{
  position:relative;
  z-index:1;
}

/* ======================================================================
   THOMSON DATA V8 — CONSISTENT INTERNAL TOPBARS,
   BRAND STATUS PILLS AND THIN IN-CARD SCROLLBARS
   ====================================================================== */

/* Use one header-card language on every authenticated workspace page.
   Existing ff-topbar and Super Admin headers share the same surface; older
   Profile / Password / Detail / Download / Preview pages opt in through
   .workspace-topbar. */
body:not(.landing):not(.auth) .workspace-topbar,
body:not(.landing):not(.auth) .ff-topbar,
body:not(.landing):not(.auth) .ff-client-head,
.super-admin-page .sa-page-header{
  position:relative;
  z-index:1055;
  overflow:visible !important;
  width:100%;
  padding:15px 18px !important;
  margin-bottom:18px !important;
  border:1px solid rgba(18,130,143,.15) !important;
  border-radius:18px !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(18,130,143,.10) 0 112px, transparent 113px),
    linear-gradient(115deg,rgba(234,247,245,.98) 0%,rgba(252,254,253,.99) 55%,rgba(226,242,239,.94) 100%) !important;
  box-shadow:0 10px 28px rgba(0,82,92,.065) !important;
}

body:not(.landing):not(.auth) .workspace-topbar::before,
body:not(.landing):not(.auth) .ff-topbar::before,
body:not(.landing):not(.auth) .ff-client-head::before,
.super-admin-page .sa-page-header::before{
  content:none !important;
  display:none !important;
}

/* Older heading rows used external spacing that is unnecessary once the
   topbar itself owns the card padding. */
body:not(.landing):not(.auth) .workspace-topbar.ms-2,
body:not(.landing):not(.auth) .workspace-topbar.me-5{
  margin-left:0 !important;
  margin-right:0 !important;
}
body:not(.landing):not(.auth) .workspace-topbar .ff-top-actions,
body:not(.landing):not(.auth) .workspace-topbar .page-header-actions,
body:not(.landing):not(.auth) .workspace-topbar .preview-actions,
body:not(.landing):not(.auth) .ff-client-head .ff-top-actions{
  position:relative;
  z-index:1100;
  overflow:visible !important;
}

@media (max-width:767.98px){
  body:not(.landing):not(.auth) .workspace-topbar,
  body:not(.landing):not(.auth) .ff-topbar,
  body:not(.landing):not(.auth) .ff-client-head,
  .super-admin-page .sa-page-header{
    padding:13px 14px !important;
    border-radius:15px !important;
  }
}

/* Brand status system: success/downloaded = Thomson green;
   pending/attention = Thomson coral. Keep both pills visually consistent. */
.ff-status.downloaded,
.ff-status.shared,
.badge.text-bg-success,
.text-bg-success{
  background:#eef7ed !important;
  color:#377438 !important;
  border:1px solid rgba(55,116,56,.20) !important;
  box-shadow:none !important;
}
.ff-status.pending,
.ff-status.not-shared,
.badge.text-bg-warning,
.text-bg-warning{
  background:#fff1ec !important;
  color:#d95f35 !important;
  border:1px solid rgba(255,127,80,.24) !important;
  box-shadow:none !important;
}
.badge.text-bg-success,
.badge.text-bg-warning{
  font-weight:600 !important;
}

/* Thin scrollbars for tables, activity cards, notification lists, previews,
   picker lists and any scroll container inside the authenticated workspace. */
body:not(.landing):not(.auth) .table-responsive,
body:not(.landing):not(.auth) .clients-table-scroll,
body:not(.landing):not(.auth) .preview-scroll-area,
body:not(.landing):not(.auth) .excel-scroll,
body:not(.landing):not(.auth) .ff-activity-list,
body:not(.landing):not(.auth) .table-wrap,
body:not(.landing):not(.auth) #pageNotifList,
body:not(.landing):not(.auth) #shareFilesList,
body:not(.landing):not(.auth) #shareRecipientsList,
body:not(.landing):not(.auth) .geo-search-options,
body:not(.landing):not(.auth) .sa-table-scroll,
body:not(.landing):not(.auth) [style*="overflow:auto"],
body:not(.landing):not(.auth) [style*="overflow: auto"]{
  scrollbar-width:thin !important;
  scrollbar-color:rgba(18,130,143,.42) transparent !important;
}
body:not(.landing):not(.auth) .table-responsive::-webkit-scrollbar,
body:not(.landing):not(.auth) .clients-table-scroll::-webkit-scrollbar,
body:not(.landing):not(.auth) .preview-scroll-area::-webkit-scrollbar,
body:not(.landing):not(.auth) .excel-scroll::-webkit-scrollbar,
body:not(.landing):not(.auth) .ff-activity-list::-webkit-scrollbar,
body:not(.landing):not(.auth) .table-wrap::-webkit-scrollbar,
body:not(.landing):not(.auth) #pageNotifList::-webkit-scrollbar,
body:not(.landing):not(.auth) #shareFilesList::-webkit-scrollbar,
body:not(.landing):not(.auth) #shareRecipientsList::-webkit-scrollbar,
body:not(.landing):not(.auth) .geo-search-options::-webkit-scrollbar,
body:not(.landing):not(.auth) .sa-table-scroll::-webkit-scrollbar,
body:not(.landing):not(.auth) [style*="overflow:auto"]::-webkit-scrollbar,
body:not(.landing):not(.auth) [style*="overflow: auto"]::-webkit-scrollbar{
  width:6px !important;
  height:6px !important;
}
body:not(.landing):not(.auth) .table-responsive::-webkit-scrollbar-track,
body:not(.landing):not(.auth) .clients-table-scroll::-webkit-scrollbar-track,
body:not(.landing):not(.auth) .preview-scroll-area::-webkit-scrollbar-track,
body:not(.landing):not(.auth) .excel-scroll::-webkit-scrollbar-track,
body:not(.landing):not(.auth) .ff-activity-list::-webkit-scrollbar-track,
body:not(.landing):not(.auth) .table-wrap::-webkit-scrollbar-track,
body:not(.landing):not(.auth) #pageNotifList::-webkit-scrollbar-track,
body:not(.landing):not(.auth) #shareFilesList::-webkit-scrollbar-track,
body:not(.landing):not(.auth) #shareRecipientsList::-webkit-scrollbar-track,
body:not(.landing):not(.auth) .geo-search-options::-webkit-scrollbar-track,
body:not(.landing):not(.auth) .sa-table-scroll::-webkit-scrollbar-track{
  background:transparent !important;
}
body:not(.landing):not(.auth) .table-responsive::-webkit-scrollbar-thumb,
body:not(.landing):not(.auth) .clients-table-scroll::-webkit-scrollbar-thumb,
body:not(.landing):not(.auth) .preview-scroll-area::-webkit-scrollbar-thumb,
body:not(.landing):not(.auth) .excel-scroll::-webkit-scrollbar-thumb,
body:not(.landing):not(.auth) .ff-activity-list::-webkit-scrollbar-thumb,
body:not(.landing):not(.auth) .table-wrap::-webkit-scrollbar-thumb,
body:not(.landing):not(.auth) #pageNotifList::-webkit-scrollbar-thumb,
body:not(.landing):not(.auth) #shareFilesList::-webkit-scrollbar-thumb,
body:not(.landing):not(.auth) #shareRecipientsList::-webkit-scrollbar-thumb,
body:not(.landing):not(.auth) .geo-search-options::-webkit-scrollbar-thumb,
body:not(.landing):not(.auth) .sa-table-scroll::-webkit-scrollbar-thumb{
  background:rgba(18,130,143,.38) !important;
  border-radius:999px !important;
}
body:not(.landing):not(.auth) .table-responsive::-webkit-scrollbar-thumb:hover,
body:not(.landing):not(.auth) .clients-table-scroll::-webkit-scrollbar-thumb:hover,
body:not(.landing):not(.auth) .preview-scroll-area::-webkit-scrollbar-thumb:hover,
body:not(.landing):not(.auth) .ff-activity-list::-webkit-scrollbar-thumb:hover,
body:not(.landing):not(.auth) #pageNotifList::-webkit-scrollbar-thumb:hover{
  background:rgba(255,127,80,.72) !important;
}

/* Catch any additional overflow region added by page-specific templates. */
body:not(.landing):not(.auth) .dash-content *{
  scrollbar-width:thin;
  scrollbar-color:rgba(18,130,143,.42) transparent;
}
body:not(.landing):not(.auth) .dash-content *::-webkit-scrollbar{
  width:6px;
  height:6px;
}
body:not(.landing):not(.auth) .dash-content *::-webkit-scrollbar-track{
  background:transparent;
}
body:not(.landing):not(.auth) .dash-content *::-webkit-scrollbar-thumb{
  background:rgba(18,130,143,.38);
  border-radius:999px;
}
body:not(.landing):not(.auth) .dash-content *::-webkit-scrollbar-thumb:hover{
  background:rgba(255,127,80,.72);
}

/* ======================================================================
   THOMSON DATA V9 — CONSISTENT LIST/TABLE TYPOGRAPHY
   Dashboard Recent Files/Clients and the rest of the authenticated tables
   now share one size, weight and color rhythm. This removes the visual jump
   where Dashboard rows looked heavier while Files/Shared rows looked faint.
   ====================================================================== */
:root{
  --td-row-text:#2d2d2d;
  --td-row-heading:#46575c;
  --td-row-muted:#5f6e75;
  --td-row-size:.82rem;
  --td-row-meta-size:.72rem;
  --td-row-head-size:.72rem;
}

/* Standard table/list body copy across Files, Shared, Clients and admin lists. */
body:not(.landing):not(.auth) .ff-table tbody td,
body:not(.landing):not(.auth) .table.ff-table tbody td,
body:not(.landing):not(.auth) .clients-table-scroll tbody td,
body:not(.landing):not(.auth) .sa-table-scroll tbody td{
  color:var(--td-row-text) !important;
  font-size:var(--td-row-size) !important;
  font-weight:500 !important;
  line-height:1.3 !important;
}

/* Names should be clear but not darker/heavier on Dashboard than elsewhere. */
body:not(.landing):not(.auth) .ff-file-row-name .name,
body:not(.landing):not(.auth) .ff-file-name,
body:not(.landing):not(.auth) .ff-person-name,
body:not(.landing):not(.auth) .dashboard-recent-name,
body:not(.landing):not(.auth) .dashboard-client-copy strong{
  color:#252525 !important;
  font-size:var(--td-row-size) !important;
  font-weight:600 !important;
  line-height:1.25 !important;
}

/* Secondary row details use one readable muted tone instead of pale grey. */
body:not(.landing):not(.auth) .ff-file-row-name .sub,
body:not(.landing):not(.auth) .ff-file-meta,
body:not(.landing):not(.auth) .ff-person-email,
body:not(.landing):not(.auth) .ff-status-time,
body:not(.landing):not(.auth) .dashboard-recent-muted,
body:not(.landing):not(.auth) .dashboard-client-last-active,
body:not(.landing):not(.auth) .dashboard-client-copy small,
body:not(.landing):not(.auth) .ff-table tbody td.ff-muted{
  color:var(--td-row-muted) !important;
  font-size:var(--td-row-meta-size) !important;
  font-weight:500 !important;
  line-height:1.25 !important;
}

/* Column headings use the same scale/contrast on Dashboard and list pages. */
body:not(.landing):not(.auth) .ff-table thead th,
body:not(.landing):not(.auth) .dashboard-recent-table thead th,
body:not(.landing):not(.auth) .dashboard-client-columns,
body:not(.landing):not(.auth) .clients-table-scroll thead th,
body:not(.landing):not(.auth) .sa-table-scroll thead th{
  color:var(--td-row-heading) !important;
  font-size:var(--td-row-head-size) !important;
  font-weight:600 !important;
  letter-spacing:.025em !important;
  line-height:1.2 !important;
}

/* Dashboard rows explicitly follow the same middle-weight scale. */
body.dashboard-view .dashboard-recent-table tbody td,
body.dashboard-view .dashboard-client-row{
  color:var(--td-row-text) !important;
  font-size:var(--td-row-size) !important;
  font-weight:500 !important;
  line-height:1.3 !important;
}
body.dashboard-view .dashboard-client-count,
body.dashboard-view .dashboard-recent-action,
body.dashboard-view .dashboard-client-action{
  font-size:.76rem !important;
  font-weight:600 !important;
}

@media (max-width:767.98px){
  body:not(.landing):not(.auth) .ff-table tbody td,
  body.dashboard-view .dashboard-recent-table tbody td,
  body.dashboard-view .dashboard-client-row,
  body:not(.landing):not(.auth) .ff-file-row-name .name,
  body:not(.landing):not(.auth) .dashboard-recent-name,
  body:not(.landing):not(.auth) .dashboard-client-copy strong{
    font-size:.78rem !important;
  }
}


/* ======================================================================
   THOMSON DATA V10 — CLIENT DASHBOARD LABELS + UNIFIED PAGE TITLES
   ====================================================================== */

/* One authenticated page-title scale everywhere, regardless of whether the
   template originally used Bootstrap h3 or h4 utility sizing. */
body:not(.landing):not(.auth) .page-heading-row h1,
body:not(.landing):not(.auth) .workspace-topbar h1,
body:not(.landing):not(.auth) .ff-client-head h1,
.super-admin-page .sa-page-header h1{
  color:#007380 !important;
  font-family:"Quicksand",system-ui,sans-serif !important;
  font-size:1.38rem !important;
  font-weight:700 !important;
  line-height:1.18 !important;
  letter-spacing:-.022em !important;
}

/* Client dashboard: Received now has a clear Filename column and a compact
   action column that lines up with the narrower download control. */
body.dashboard-view .dashboard-received-columns{
  grid-template-columns:minmax(0,1fr) 58px !important;
  gap:10px !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
body.dashboard-view .dashboard-received-columns span:last-child{
  text-align:center !important;
}
body.dashboard-view .dashboard-client-row.dashboard-client-row-received{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 58px !important;
  justify-content:stretch !important;
  gap:10px !important;
}
body.dashboard-view .dashboard-client-row-received .dashboard-client-main{
  width:100% !important;
  min-width:0 !important;
}
body.dashboard-view .dashboard-client-action{
  width:32px !important;
  min-width:32px !important;
  max-width:32px !important;
  height:30px !important;
  padding:0 !important;
  border-color:rgba(255,127,80,.32) !important;
  background:#fff6f2 !important;
  color:#ff7f50 !important;
  transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease !important;
}
body.dashboard-view .dashboard-client-action i{
  color:inherit !important;
  transition:color .18s ease !important;
}
body.dashboard-view .dashboard-client-action:hover,
body.dashboard-view .dashboard-client-action:focus-visible{
  background:#ff7f50 !important;
  border-color:#ff7f50 !important;
  color:#fff !important;
  box-shadow:0 6px 14px rgba(255,127,80,.20) !important;
  transform:translateY(-1px);
}
body.dashboard-view .dashboard-client-action:hover i,
body.dashboard-view .dashboard-client-action:focus-visible i{
  color:#fff !important;
}

@media (max-width:767.98px){
  body:not(.landing):not(.auth) .page-heading-row h1,
  body:not(.landing):not(.auth) .workspace-topbar h1,
  body:not(.landing):not(.auth) .ff-client-head h1,
  .super-admin-page .sa-page-header h1{
    font-size:1.2rem !important;
  }
}


/* ======================================================================
   THOMSON DATA V16 DASHBOARD SPACING + LOGIN BUTTON WIDTH
   Keep the Admin and Client dashboard overview panels aligned vertically,
   and keep the login CTA visually lighter than the full-width form fields.
   ====================================================================== */
body.dashboard-view .dashboard-reference-head,
body.dashboard-view .dashboard-recent-head{
  min-height:78px !important;
  padding:20px 24px 14px !important;
  align-items:flex-start !important;
}

/* Give the column-header row the same breathing room in Recent Files,
   Clients and Received so the two dashboard cards read as one system. */
body.dashboard-view .dashboard-recent-table-wrap,
body.dashboard-view .dashboard-client-list,
body.dashboard-view .dashboard-received-list{
  padding-top:4px !important;
}
body.dashboard-view .dashboard-recent-table thead th{
  padding-top:7px !important;
  padding-bottom:9px !important;
}
body.dashboard-view .dashboard-client-columns,
body.dashboard-view .dashboard-received-columns{
  padding-top:7px !important;
  padding-bottom:9px !important;
}

/* The Login button should be narrower than the inputs, centered, and still
   large enough for a clear primary action on desktop and mobile. */
body.thomson-login-view .td-login-submit{
  display:block !important;
  width:68% !important;
  min-width:170px !important;
  max-width:230px !important;
  margin:6px auto 0 !important;
}

@media (max-width:767.98px){
  body.dashboard-view .dashboard-reference-head,
  body.dashboard-view .dashboard-recent-head{
    min-height:70px !important;
    padding:17px 16px 12px !important;
  }
  body.dashboard-view .dashboard-recent-table-wrap,
  body.dashboard-view .dashboard-client-list,
  body.dashboard-view .dashboard-received-list{
    padding-top:3px !important;
  }
}

@media (max-width:420px){
  body.thomson-login-view .td-login-submit{
    width:74% !important;
    min-width:0 !important;
  }
}


/* ======================================================================
   THOMSON DATA V19 CLIENT DETAIL VISUAL CONSISTENCY
   Use the same brand status colors and typography rhythm as the rest of
   the workspace. Footer positioning is intentionally untouched here.
   ====================================================================== */

/* Client-detail status pills use the actual Thomson green/coral colors,
   not pale substitutes. */
.ff-client-detail-page .ff-status.downloaded,
.ff-client-detail-page .ff-status.shared{
  background:#377438 !important;
  color:#fff !important;
  border-color:#377438 !important;
}
.ff-client-detail-page .ff-status.pending,
.ff-client-detail-page .ff-status.not-shared{
  background:#ff7f50 !important;
  color:#fff !important;
  border-color:#ff7f50 !important;
}

/* Keep all four summary-card icons in one visual language. */
.ff-client-detail-page .ff-metric-icon,
.ff-client-detail-page .ff-metric-icon.green,
.ff-client-detail-page .ff-metric-icon.orange,
.ff-client-detail-page .ff-metric-icon.blue{
  background:var(--ff-primary-soft) !important;
  color:var(--ff-primary) !important;
  border:1px solid rgba(18,130,143,.12) !important;
}

/* Activity split: sent stays teal; received uses Thomson coral instead of
   the former light-green treatment. */
.ff-client-detail-page .ff-balance-counts .received strong{
  color:#ff7f50 !important;
}
.ff-client-detail-page .ff-balance-bar .received{
  background:#ff7f50 !important;
}
.ff-client-detail-page .ff-activity-panel-title .bubble.green,
.ff-client-detail-page .ff-panel-count.green{
  background:#fff1ec !important;
  color:#ff7f50 !important;
}

/* Match the typography scale used across Files, Shared and Clients pages. */
.ff-client-detail-page .ff-client-summary-title{
  font-size:.82rem !important;
  font-weight:600 !important;
}
.ff-client-detail-page .ff-client-summary-subtitle,
.ff-client-detail-page .ff-client-info-chip{
  font-size:.72rem !important;
  font-weight:500 !important;
}
.ff-client-detail-page .ff-metric-label{
  font-size:.72rem !important;
  font-weight:500 !important;
}
.ff-client-detail-page .ff-metric-value{
  font-size:1rem !important;
  font-weight:600 !important;
  line-height:1.2 !important;
}
.ff-client-detail-page .ff-balance-title,
.ff-client-detail-page .ff-activity-panel-title{
  font-size:.82rem !important;
  font-weight:600 !important;
}
.ff-client-detail-page .ff-balance-sub,
.ff-client-detail-page .ff-activity-panel-title small{
  font-size:.68rem !important;
  font-weight:500 !important;
}
.ff-client-detail-page .ff-activity-item-name{
  font-size:.82rem !important;
  font-weight:600 !important;
}
.ff-client-detail-page .ff-activity-item-sub,
.ff-client-detail-page .ff-activity-item-time{
  font-size:.68rem !important;
  font-weight:500 !important;
}

/* V20: Footer uses natural document flow; no dashboard sticky/fixed footer override. */

/* ======================================================================
   THOMSON DATA V21 CLIENT DETAIL STATUS CONSISTENCY
   Match Pending/Downloaded to the same soft-outline pills used for
   Not shared/Shared on All Files & Folders.
   ====================================================================== */
.ff-client-detail-page .ff-status.downloaded,
.ff-client-detail-page .ff-status.shared{
  background:#eef7ed !important;
  color:#377438 !important;
  border:1px solid rgba(55,116,56,.20) !important;
  box-shadow:none !important;
}
.ff-client-detail-page .ff-status.pending,
.ff-client-detail-page .ff-status.not-shared{
  background:#fff1ec !important;
  color:#d95f35 !important;
  border:1px solid rgba(255,127,80,.24) !important;
  box-shadow:none !important;
}

/* ======================================================================
   SUPPORT TICKETS ("Raise an Issue") — client/admin/super-admin
   ====================================================================== */
.ticket-status{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:.67rem;font-weight:700;white-space:nowrap;text-transform:capitalize;}
.ticket-status.open{background:var(--ff-orange-soft);color:var(--ff-orange);}
.ticket-status.in_progress{background:var(--ff-blue-soft);color:var(--ff-primary);}
.ticket-status.resolved{background:var(--ff-green-soft);color:#0f9a49;}
.ticket-status i{font-size:.62rem;}

.ticket-row{cursor:pointer;}
.ticket-row:hover{background:var(--ff-primary-soft);}
.ticket-subject-cell{display:flex;flex-direction:column;gap:2px;max-width:420px;}
.ticket-subject-cell .subj{font-weight:600;color:var(--ff-text);}
.ticket-subject-cell .preview{font-size:.76rem;color:var(--ff-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ticket-file-chip{display:inline-flex;align-items:center;gap:5px;font-size:.74rem;color:#556;}
.ticket-file-chip i{color:var(--ff-primary);}

.ticket-empty{padding:64px 20px;text-align:center;color:var(--ff-muted);}
.ticket-empty i{font-size:2.2rem;color:#c8d0e0;display:block;margin-bottom:10px;}

.ticket-dropzone{border:1.5px dashed var(--ff-line);border-radius:12px;padding:18px;text-align:center;background:#fafbfe;cursor:pointer;transition:.15s;}
.ticket-dropzone:hover,.ticket-dropzone.is-dragging{border-color:var(--ff-primary);background:var(--ff-primary-soft);}
.ticket-dropzone-icon{font-size:1.3rem;color:var(--ff-primary);margin-bottom:4px;}
.ticket-dropzone-file{margin-top:8px;font-size:.78rem;font-weight:600;color:var(--ff-primary);display:none;align-items:center;justify-content:center;gap:6px;}

/* Ticket detail / thread */
.ticket-detail-wrap{display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:start;}
@media (max-width:900px){.ticket-detail-wrap{grid-template-columns:1fr;}}
.ticket-thread-card{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:0;border-radius:18px;box-shadow:0 10px 30px rgba(20,30,60,.06);}
.ticket-thread-head{padding:16px 22px;border-bottom:1px solid var(--ff-line);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:linear-gradient(180deg,#fbfdff,#ffffff);}
.ticket-thread-head-title{display:flex;align-items:center;gap:12px;}
.ticket-thread-head-icon{width:38px;height:38px;border-radius:12px;background:var(--ff-primary-soft);color:var(--ff-primary);display:inline-flex;align-items:center;justify-content:center;font-size:1rem;flex:0 0 auto;}
.ticket-thread-head-count{font-size:.74rem;font-weight:600;color:var(--ff-muted);background:#f4f6fb;padding:5px 12px;border-radius:999px;white-space:nowrap;}
.ticket-thread-body{padding:22px;display:flex;flex-direction:column;gap:18px;min-height:280px;max-height:56vh;overflow-y:auto;background:#fbfbfe;}
.ticket-msg{display:flex;gap:10px;max-width:74%;}
.ticket-msg.is-mine{align-self:flex-end;flex-direction:row-reverse;}
.ticket-msg-col{min-width:0;}
.ticket-msg-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.78rem;flex:0 0 auto;color:#fff;box-shadow:0 2px 6px rgba(20,30,60,.12);}
.ticket-msg-avatar.avatar-client{background:linear-gradient(135deg,#12828f,#0f9a49);}
.ticket-msg-avatar.avatar-staff{background:linear-gradient(135deg,#4c5fd1,#7b5fe0);}
.ticket-msg-bubble{background:#fff;border:1px solid var(--ff-line);border-radius:16px;padding:12px 15px;font-size:.86rem;line-height:1.5;color:#2d2d2d;box-shadow:0 2px 10px rgba(20,30,60,.05);}
.ticket-msg.is-mine .ticket-msg-bubble{background:var(--ff-primary);border-color:var(--ff-primary);color:#fff;}
.ticket-msg-head{display:flex;align-items:center;gap:7px;margin-bottom:4px;flex-wrap:wrap;}
.ticket-msg-name{font-size:.76rem;font-weight:700;}
.ticket-msg-role-chip{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:2px 7px;border-radius:999px;}
.ticket-msg-role-chip.role-client{background:var(--ff-green-soft);color:#0f9a49;}
.ticket-msg-role-chip.role-staff{background:#eef0fd;color:#4c5fd1;}
.ticket-msg.is-mine .ticket-msg-role-chip{background:rgba(255,255,255,.22);color:#fff;}
.ticket-msg-text{white-space:pre-wrap;word-break:break-word;}
.ticket-msg-meta{font-size:.66rem;color:var(--ff-muted);margin-top:5px;display:flex;gap:8px;padding:0 4px;}
.ticket-msg.is-mine .ticket-msg-meta{justify-content:flex-end;}
.ticket-msg-attachment{margin-top:8px;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:9px;background:#f4f6fb;font-size:.76rem;text-decoration:none;color:inherit;border:1px solid rgba(0,0,0,.06);}
.ticket-msg.is-mine .ticket-msg-attachment{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.25);color:#fff;}

.ticket-reply-bar{border-top:1px solid var(--ff-line);padding:14px 20px 16px;background:#fff;}
.ticket-composer{display:flex;align-items:flex-end;gap:8px;background:#f4f6fb;border:1px solid var(--ff-line);border-radius:20px;padding:6px 6px 6px 8px;}
.ticket-composer-attach{width:36px;height:36px;flex:0 0 auto;border-radius:50%;border:0;background:transparent;color:#7a8399;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;cursor:pointer;transition:background .12s ease,color .12s ease;}
.ticket-composer-attach:hover{background:#e9ecf7;color:var(--ff-primary);}
.ticket-composer-attach.has-file{color:var(--ff-primary);background:var(--ff-primary-soft);}
.ticket-composer-input{flex:1 1 auto;border:0;background:transparent;resize:none;font-size:.86rem;line-height:1.4;padding:8px 4px;max-height:140px;outline:none;}
.ticket-composer-send{width:38px;height:38px;flex:0 0 auto;border-radius:50%;border:0;background:var(--ff-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.95rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;box-shadow:0 4px 10px rgba(18,130,143,.25);}
.ticket-composer-send:hover{transform:translateY(-1px);}
.ticket-composer-send:disabled{opacity:.7;cursor:default;transform:none;}
.ticket-composer-file-row{margin-top:9px;display:flex;align-items:center;gap:7px;font-size:.76rem;color:var(--ff-primary);background:var(--ff-primary-soft);border-radius:9px;padding:6px 10px;width:fit-content;}
.ticket-composer-file-remove{border:0;background:transparent;color:inherit;opacity:.7;display:inline-flex;align-items:center;justify-content:center;margin-left:4px;cursor:pointer;}
.ticket-composer-file-remove:hover{opacity:1;}

.ticket-side-card{padding:18px;border-radius:16px;}
.ticket-side-card + .ticket-side-card{margin-top:16px;}
.ticket-side-card-primary{padding-top:16px;}
.ticket-side-status-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.ticket-side-id{font-size:.72rem;font-weight:700;color:var(--ff-muted);letter-spacing:.02em;}
.ticket-status-lg{padding:6px 13px;font-size:.72rem;}
.ticket-side-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ff-muted);font-weight:700;margin-bottom:10px;}
.ticket-info-row{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px dashed var(--ff-line);}
.ticket-info-row:last-of-type{border-bottom:0;}
.ticket-info-icon{width:30px;height:30px;border-radius:9px;background:#f4f6fb;color:var(--ff-primary);display:inline-flex;align-items:center;justify-content:center;font-size:.82rem;flex:0 0 auto;}
.ticket-info-label{font-size:.64rem;color:var(--ff-muted);text-transform:uppercase;letter-spacing:.03em;font-weight:600;}
.ticket-info-value{font-size:.83rem;font-weight:600;color:#2d2d2d;word-break:break-word;}
.ticket-side-row{display:flex;justify-content:space-between;gap:10px;font-size:.83rem;padding:6px 0;border-bottom:1px dashed var(--ff-line);}
.ticket-side-row:last-child{border-bottom:0;}
.ticket-side-row span:first-child{color:var(--ff-muted);}
.ticket-status-select{border-radius:9px;font-size:.8rem;}
.ticket-status-options{display:flex;flex-direction:column;gap:8px;}
.ticket-status-option{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:11px;border:1px solid var(--ff-line);background:#fff;font-size:.82rem;font-weight:600;color:#5e6779;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease;}
.ticket-status-option:hover{background:#f7fbf9;border-color:#c6e2d7;}
.ticket-status-option.is-active{background:var(--ff-primary-soft);border-color:#9bcdbd;color:var(--ff-primary);}
.ticket-status-option i{font-size:.8rem;}

.ticket-category-trigger{width:100%;height:40px;border:1px solid var(--ff-line);border-radius:10px;background:#f8fcfa;padding:0 14px;display:flex;align-items:center;justify-content:space-between;font-size:.84rem;color:#495166;text-align:left;}
.ticket-category-trigger:hover{border-color:#c6e2d7;}
.ticket-category-trigger i{font-size:.72rem;color:#9aa3b6;}
.ticket-category-menu{max-height:260px;overflow-y:auto;padding:8px;border:1px solid var(--ff-line);border-radius:10px;box-shadow:0 12px 30px rgba(15,23,42,.10);width:100%;}
.ticket-category-option{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:8px;font-size:.83rem;cursor:pointer;margin:0;color:#2d2d2d;}
.ticket-category-option:hover{background:var(--ff-primary-soft);}
.ticket-category-option input{margin:0;width:15px;height:15px;flex:0 0 auto;}
.ticket-category-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;background:var(--ff-primary-soft);color:var(--ff-primary);font-size:.66rem;font-weight:600;margin-right:4px;margin-top:4px;}

/* Super Admin client profile actions: keep all controls aligned to Track Activity height. */
.super-admin-page .sa-profile-hero-actions .sa-track-activity-btn,
.super-admin-page .sa-profile-hero-actions .sa-add-subuser-btn,
.super-admin-page .sa-profile-hero-actions .sa-profile-hero-edit{
  height:32px !important;
  min-height:32px !important;
}
.super-admin-page .sa-profile-hero-actions .sa-add-subuser-btn{
  padding-top:0 !important;
  padding-bottom:0 !important;
}
.super-admin-page .sa-profile-hero-actions .sa-profile-hero-edit{
  width:32px !important;
  padding:0 !important;
}


/* Projects dashboard file tables ------------------------------------------ */
.projects-view-all-btn{
  min-height:32px;
  padding:5px 13px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #b9ded5;
  border-radius:9px;
  background:#fff;
  color:#007d86;
  font-size:.74rem;
  font-weight:600;
  text-decoration:none!important;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.projects-view-all-btn:hover{
  background:#f4fbf8;
  border-color:#86c8b8;
  color:#005c65;
}
.projects-action-col{
  width:190px;
  min-width:190px;
  text-align:center!important;
  vertical-align:middle;
}
th.projects-action-col{
  text-align:center!important;
}
.projects-doc-actions{
  justify-content:center;
  flex-wrap:nowrap;
}
@media (max-width:575.98px){
  .projects-action-col{width:170px;min-width:170px;}
}
