/*
 * dist_portal.css
 * Apple-inspired light theme for the Star Navi Partner Portal.
 * All classes are prefixed p- to avoid conflicts with the existing
 * dark-theme dist_style.css which is still loaded globally.
 *
 * Include AFTER dist_style.css in html_head():
 *   <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
 *   <link rel="stylesheet" href="dist_portal.css">
 *
 * Add class="portal-page" to <body> to activate.
 */

/* ═══════════════════════════════════════════════════════════════
   CSS CUSTOM PROPERTIES
═══════════════════════════════════════════════════════════════ */
:root {
  --p-bg:            #f5f5f7;
  --p-surface:       #ffffff;
  --p-card:          #ffffff;
  --p-border:        rgba(0,0,0,.08);
  --p-border-strong: rgba(0,0,0,.14);
  --p-text:          #1d1d1f;
  --p-text-2:        #3a3a3c;
  --p-text-3:        #6e6e73;
  --p-text-4:        #aeaeb2;
  --p-blue:          #0071e3;
  --p-blue-soft:     #e8f1fc;
  --p-green:         #34c759;
  --p-green-soft:    #eafaf0;
  --p-orange:        #ff9500;
  --p-orange-soft:   #fff5e6;
  --p-red:           #ff3b30;
  --p-red-soft:      #fff0ee;
  --p-purple:        #af52de;
  --p-purple-soft:   #f5edfb;
  --p-gray-soft:     #f5f5f7;
  --p-radius:        14px;
  --p-radius-sm:     9px;
  --p-radius-xs:     6px;
  --p-shadow:        0 1px 3px rgba(0,0,0,.07), 0 4px 16px rgba(0,0,0,.05);
  --p-shadow-sm:     0 1px 2px rgba(0,0,0,.06);
  --p-font:          'Inter', system-ui, -apple-system, sans-serif;
}

/* ═══════════════════════════════════════════════════════════════
   GLOBAL BODY + PORTAL PAGE OVERRIDES
═══════════════════════════════════════════════════════════════ */
body.portal-page {
  background:  var(--p-bg) !important;
  color:       var(--p-text) !important;
  font-family: var(--p-font) !important;
}

/* ── Navbar override ─────────────────────────────────────────── */
body.portal-page .navbar,
body.portal-page nav,
body.portal-page header.navbar {
  background:    rgba(255,255,255,.88) !important;
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border-bottom: 0.5px solid var(--p-border) !important;
  color:         var(--p-text) !important;
  box-shadow:    0 1px 0 rgba(0,0,0,.06) !important;
}

/* Nav brand / logo */
body.portal-page .nav-brand,
body.portal-page .navbar-brand {
  color:       var(--p-text) !important;
  font-weight: 600;
  font-size:   .95rem;
  display:     flex;
  align-items: center;
  gap:         .5rem;
  text-decoration: none;
}
body.portal-page .nav-brand img,
body.portal-page .navbar-brand img {
  height:         28px;
  width:          auto;
  object-fit:     contain;
  display:        inline-block;
  vertical-align: middle;
}

/* Nav links */
body.portal-page .nav-links a,
body.portal-page .navbar-nav a {
  color:       var(--p-text-3) !important;
  font-size:   .82rem;
  font-weight: 500;
  border-radius: var(--p-radius-xs);
  transition:  all .15s;
}
body.portal-page .nav-links a:hover,
body.portal-page .nav-links a.active {
  background: rgba(0,0,0,.05) !important;
  color:      var(--p-text) !important;
}
body.portal-page .nav-links a.active {
  color:       var(--p-blue) !important;
  font-weight: 600;
}

/* Nav user/logout area */
body.portal-page .nav-user {
  font-size:   .78rem;
  color:       var(--p-text-3) !important;
  border-left: 0.5px solid var(--p-border-strong) !important;
}

/* Notification badge (red dot) */
body.portal-page .badge,
body.portal-page .nav-badge {
  background: var(--p-red) !important;
  color:      #fff !important;
}

/* ── Fix any remaining dark backgrounds leaking through ── */
body.portal-page .page-wrap,
body.portal-page .page-wrap-sm {
  background: transparent !important;
}
body.portal-page table {
  color: var(--p-text-2) !important;
}

/* ═══════════════════════════════════════════════════════════════
   PAGE WRAPPER
═══════════════════════════════════════════════════════════════ */
.p-wrap {
  max-width: 1080px;
  margin:    0 auto;
  padding:   2.5rem 2rem 5rem;
}

/* ═══════════════════════════════════════════════════════════════
   PAGE HEADER
═══════════════════════════════════════════════════════════════ */
.p-page-header {
  display:         flex;
  align-items:     flex-start;
  justify-content: space-between;
  gap:             1rem;
  margin-bottom:   2rem;
  flex-wrap:       wrap;
}
.p-page-header > div:first-child { flex: 1; min-width: 0; }
.p-page-header h1 {
  font-size:      1.75rem;
  font-weight:    600;
  letter-spacing: -.03em;
  color:          var(--p-text);
  margin-bottom:  .2rem;
  line-height:    1.2;
}
.p-page-header p {
  font-size:   .88rem;
  color:       var(--p-text-3);
  font-weight: 400;
  margin:      0;
}
.p-page-header-actions {
  display:     flex;
  align-items: center;
  gap:         .5rem;
  flex-shrink: 0;
  flex-wrap:   wrap;
}

/* ═══════════════════════════════════════════════════════════════
   STAT MINI (deal_detail scores row, my_deals strip)
═══════════════════════════════════════════════════════════════ */
.p-stat-mini-row {
  display:               grid;
  grid-template-columns: repeat(auto-fit, minmax(140px,1fr));
  gap:                   .75rem;
  margin-bottom:         1.5rem;
}
.p-stat-mini {
  background:    var(--p-card);
  border:        .5px solid var(--p-border);
  border-radius: var(--p-radius);
  padding:       .85rem 1rem;
  text-align:    center;
  box-shadow:    var(--p-shadow-sm);
}
.p-stat-mini .sv {
  font-size:      1.5rem;
  font-weight:    700;
  letter-spacing: -.03em;
  color:          var(--p-blue);
  line-height:    1;
  margin-bottom:  .2rem;
}
.p-stat-mini .sl {
  font-size:      .72rem;
  font-weight:    500;
  color:          var(--p-text-3);
  text-transform: uppercase;
  letter-spacing: .04em;
}
.p-stat-mini .ss {
  font-size:    .72rem;
  color:        var(--p-text-4);
  margin-top:   .2rem;
}

/* Colour variants for stat values */
.p-stat-mini .sv-green  { color: var(--p-green);  }
.p-stat-mini .sv-orange { color: var(--p-orange); }
.p-stat-mini .sv-text   { color: var(--p-text);   font-size: 1.15rem; }

/* ═══════════════════════════════════════════════════════════════
   CARD
═══════════════════════════════════════════════════════════════ */
.p-card {
  background:    var(--p-card);
  border-radius: var(--p-radius);
  border:        .5px solid var(--p-border);
  box-shadow:    var(--p-shadow-sm);
  padding:       1.25rem 1.5rem;
  margin-bottom: 1.25rem;
}
.p-card-header {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  margin-bottom:   1rem;
  padding-bottom:  .75rem;
  border-bottom:   .5px solid var(--p-border);
  gap:             .75rem;
}
.p-card-header h2 {
  font-size:      1rem;
  font-weight:    600;
  color:          var(--p-text);
  letter-spacing: -.01em;
  margin:         0;
}

/* ═══════════════════════════════════════════════════════════════
   TABLE
═══════════════════════════════════════════════════════════════ */
.p-table-wrap {
  overflow-x:    auto;
  border-radius: var(--p-radius);
  border:        .5px solid var(--p-border);
  background:    var(--p-card);
  box-shadow:    var(--p-shadow-sm);
}
.p-table-wrap table {
  width:           100%;
  border-collapse: collapse;
}
.p-table-wrap th {
  background:     var(--p-gray-soft);
  font-size:      .72rem;
  font-weight:    600;
  text-transform: uppercase;
  letter-spacing: .05em;
  color:          var(--p-text-3);
  padding:        .65rem 1rem;
  text-align:     left;
  border-bottom:  .5px solid var(--p-border);
  white-space:    nowrap;
}
.p-table-wrap td {
  padding:         .65rem 1rem;
  font-size:       .85rem;
  color:           var(--p-text-2);
  border-bottom:   .5px solid var(--p-border);
  vertical-align:  middle;
}
.p-table-wrap tr:last-child td   { border-bottom: none; }
.p-table-wrap tr:hover td        { background: rgba(0,0,0,.015); }
.p-table-wrap a                  { color: var(--p-blue); font-weight: 500; text-decoration: none; }
.p-table-wrap a:hover            { text-decoration: underline; }
.p-table-wrap strong             { color: var(--p-text); font-weight: 600; }
.p-table-wrap .p-muted           { color: var(--p-text-3); font-size: .8rem; }

/* ═══════════════════════════════════════════════════════════════
   FILTER ROW
═══════════════════════════════════════════════════════════════ */
.p-filter-row {
  display:       flex;
  gap:           .5rem;
  margin-bottom: 1.25rem;
  flex-wrap:     wrap;
  align-items:   center;
}
.p-filter-row input,
.p-filter-row select {
  flex:          1;
  min-width:     140px;
  background:    #fff;
  border:        .5px solid var(--p-border-strong);
  border-radius: var(--p-radius-xs);
  color:         var(--p-text);
  font-family:   var(--p-font);
  font-size:     .82rem;
  padding:       .42rem .75rem;
  outline:       none;
  transition:    border-color .15s;
  min-height:    34px;
}
.p-filter-row input:focus,
.p-filter-row select:focus {
  border-color: var(--p-blue);
  box-shadow:   0 0 0 3px rgba(0,113,227,.1);
}
.p-filter-row select option { background: #fff; }

/* ═══════════════════════════════════════════════════════════════
   BUTTONS
═══════════════════════════════════════════════════════════════ */
.p-btn {
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
  gap:             .35rem;
  padding:         .45rem 1rem;
  border-radius:   var(--p-radius-xs);
  font-size:       .82rem;
  font-weight:     500;
  cursor:          pointer;
  font-family:     var(--p-font);
  transition:      all .15s;
  white-space:     nowrap;
  border:          none;
  min-height:      34px;
  letter-spacing:  -.01em;
  text-decoration: none;
  line-height:     1;
}
.p-btn-blue          { background: var(--p-blue);  color: #fff; }
.p-btn-blue:hover    { background: #0077ed; color: #fff; text-decoration: none; }
.p-btn-ghost         { background: transparent; color: var(--p-text-2); border: .5px solid var(--p-border-strong); }
.p-btn-ghost:hover   { background: var(--p-gray-soft); color: var(--p-text); text-decoration: none; }
.p-btn-sm            { min-height: 28px; padding: .28rem .72rem; font-size: .76rem; border-radius: var(--p-radius-xs); }
.p-btn[disabled]     { opacity: .5; cursor: default; pointer-events: none; }

/* ═══════════════════════════════════════════════════════════════
   STATUS BADGES
═══════════════════════════════════════════════════════════════ */
.p-badge {
  display:      inline-block;
  border-radius: 99px;
  padding:       .18rem .65rem;
  font-size:     .72rem;
  font-weight:   600;
  white-space:   nowrap;
  letter-spacing:.01em;
}
.p-badge-reserved { background: var(--p-blue-soft);   color: #004a99; }
.p-badge-pending  { background: var(--p-orange-soft); color: #7a4800; }
.p-badge-active   { background: var(--p-green-soft);  color: #1a6630; }
.p-badge-risk     { background: var(--p-orange-soft); color: #7a4800; }
.p-badge-expired  { background: #f5f5f7;              color: var(--p-text-3); border: .5px solid var(--p-border-strong); }
.p-badge-odm      { background: var(--p-purple-soft); color: #6b2f8a; }
.p-badge-oem      { background: var(--p-blue-soft);   color: #004a99; }
.p-badge-locked   { background: var(--p-green-soft);  color: #1a6630; }

/* ═══════════════════════════════════════════════════════════════
   FLASH MESSAGES
═══════════════════════════════════════════════════════════════ */
.p-flash {
  border-radius: var(--p-radius-xs);
  padding:       .75rem 1rem;
  font-size:     .85rem;
  margin-bottom: 1.25rem;
  line-height:   1.5;
  font-weight:   500;
}
.p-flash-success { background: var(--p-green-soft);  color: #1a6630; border-left: 3px solid var(--p-green); }
.p-flash-error   { background: var(--p-red-soft);    color: #9a1a14; border-left: 3px solid var(--p-red); }
.p-flash-warning { background: var(--p-orange-soft); color: #7a4800; border-left: 3px solid var(--p-orange); }
.p-flash-info    { background: var(--p-blue-soft);   color: #004a99; border-left: 3px solid var(--p-blue); }

/* ═══════════════════════════════════════════════════════════════
   FORMS
═══════════════════════════════════════════════════════════════ */
.p-form-group              { margin-bottom: .9rem; }
.p-form-group label {
  display:        block;
  font-size:      .72rem;
  font-weight:    600;
  color:          var(--p-text-3);
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom:  .35rem;
}
.p-form-group input,
.p-form-group select,
.p-form-group textarea {
  width:         100%;
  background:    var(--p-gray-soft);
  border:        .5px solid var(--p-border-strong);
  border-radius: var(--p-radius-xs);
  color:         var(--p-text);
  font-family:   var(--p-font);
  font-size:     .85rem;
  padding:       .5rem .8rem;
  outline:       none;
  transition:    all .15s;
  min-height:    38px;
  box-sizing:    border-box;
}
.p-form-group input:focus,
.p-form-group select:focus,
.p-form-group textarea:focus {
  background:   #fff;
  border-color: var(--p-blue);
  box-shadow:   0 0 0 3px rgba(0,113,227,.1);
}
.p-form-group input[readonly] { opacity: .55; cursor: default; }
.p-form-group select option   { background: #fff; }
.p-form-group textarea        { resize: vertical; min-height: 80px; }

/* Two-column form row */
.p-form-row {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   .75rem;
}
@media (max-width: 560px) {
  .p-form-row { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   RESULT BANNERS (verify customer, domain check)
═══════════════════════════════════════════════════════════════ */
.p-result-banner {
  border-radius: var(--p-radius-xs);
  padding:       .65rem .9rem;
  font-size:     .82rem;
  line-height:   1.5;
  margin-top:    .65rem;
  font-weight:   500;
}
.p-rb-green  { background: var(--p-green-soft);  color: #1a6630; }
.p-rb-orange { background: var(--p-orange-soft); color: #7a4800; }
.p-rb-blue   { background: var(--p-blue-soft);   color: #004a99; }
.p-result-banner a { color: inherit; font-weight: 600; }

/* ═══════════════════════════════════════════════════════════════
   NOTIFICATION ITEMS
═══════════════════════════════════════════════════════════════ */
.p-notif {
  background:    var(--p-card);
  border:        .5px solid var(--p-border);
  border-radius: var(--p-radius);
  padding:       1rem 1.25rem;
  margin-bottom: .75rem;
  transition:    border-color .15s, box-shadow .15s;
  box-shadow:    var(--p-shadow-sm);
}
.p-notif.p-notif-unread {
  border-color: var(--p-blue);
  background:   rgba(0,113,227,.025);
}
.p-notif-head {
  display:         flex;
  align-items:     flex-start;
  justify-content: space-between;
  gap:             1rem;
}
.p-notif-title {
  font-size:    .9rem;
  font-weight:  600;
  color:        var(--p-text);
  margin-bottom:.2rem;
  display:      flex;
  align-items:  center;
  gap:          .4rem;
  flex-wrap:    wrap;
}
.p-notif-new {
  background:    var(--p-blue);
  color:         #fff;
  border-radius: 99px;
  padding:       1px 7px;
  font-size:     .68rem;
  font-weight:   600;
  vertical-align: middle;
  flex-shrink:   0;
}
.p-notif-msg  { font-size: .82rem; color: var(--p-text-3); line-height: 1.5; }
.p-notif-time { font-size: .76rem; color: var(--p-text-4); white-space: nowrap; flex-shrink: 0; }

/* ═══════════════════════════════════════════════════════════════
   PAGINATION
═══════════════════════════════════════════════════════════════ */
.p-pagination {
  display:   flex;
  gap:       .4rem;
  margin-top:1.5rem;
  flex-wrap: wrap;
}

/* ═══════════════════════════════════════════════════════════════
   EMPTY STATE
═══════════════════════════════════════════════════════════════ */
.p-empty {
  text-align:    center;
  padding:       3rem 1rem;
  color:         var(--p-text-3);
  font-size:     .9rem;
  background:    var(--p-card);
  border-radius: var(--p-radius);
  border:        .5px solid var(--p-border);
  box-shadow:    var(--p-shadow-sm);
}
.p-empty a { color: var(--p-blue); font-weight: 600; }

/* ═══════════════════════════════════════════════════════════════
   TIMELINE (deal progress history)
═══════════════════════════════════════════════════════════════ */
.p-timeline {
  border-left:   2px solid var(--p-border);
  padding-left:  1.25rem;
  margin-left:   .5rem;
}
.p-timeline-item {
  margin-bottom: 1rem;
  position:      relative;
}
.p-timeline-dot {
  position:      absolute;
  left:          -1.6rem;
  top:           .3rem;
  width:         10px;
  height:        10px;
  border-radius: 50%;
  background:    var(--p-blue);
  border:        2px solid var(--p-bg);
}
.p-timeline-type  { font-size: .83rem; font-weight: 600; color: var(--p-text); }
.p-timeline-notes { font-size: .8rem;  color: var(--p-text-3); margin-top: .15rem; line-height: 1.55; }
.p-timeline-date  { font-size: .72rem; color: var(--p-text-4); margin-top: .15rem; }

/* ═══════════════════════════════════════════════════════════════
   ENGAGEMENT CHECK GRID (deal_detail)
═══════════════════════════════════════════════════════════════ */
.p-check-grid {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   .5rem;
  margin-top:            .75rem;
}
.p-check-item {
  display:       flex;
  align-items:   flex-start;
  gap:           .5rem;
  background:    var(--p-gray-soft);
  border:        .5px solid var(--p-border);
  border-radius: var(--p-radius-xs);
  padding:       .5rem .65rem;
  font-size:     .78rem;
  transition:    border-color .2s;
}
.p-check-item-label { font-weight: 500; color: var(--p-text-2); }
.p-check-item-pts   { font-size: .68rem; color: var(--p-green); font-weight: 600; }

/* ═══════════════════════════════════════════════════════════════
   SPINNER
═══════════════════════════════════════════════════════════════ */
.p-spinner {
  display:       inline-block;
  width:         11px;
  height:        11px;
  border:        1.5px solid rgba(255,255,255,.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation:     p-spin .5s linear infinite;
  vertical-align:middle;
  margin-right:  4px;
}
@keyframes p-spin { to { transform: rotate(360deg); } }

/* ═══════════════════════════════════════════════════════════════
   AUTH PAGES (login, register, forgot/reset password)
═══════════════════════════════════════════════════════════════ */
.p-auth-wrap {
  max-width: 420px;
  margin:    3rem auto;
  padding:   0 1rem;
}
.p-auth-wide {
  max-width: 540px;
  margin:    2.5rem auto;
  padding:   0 1rem;
}
.p-auth-brand {
  text-align:    center;
  margin-bottom: 1.5rem;
}
.p-auth-brand img {
  height:        44px;
  width:         auto;
  display:       block;
  margin:        0 auto .75rem;
  object-fit:    contain;
}
.p-auth-brand .p-brand-name {
  font-size:   1.05rem;
  font-weight: 600;
  color:       var(--p-text);
  display:     block;
  margin-bottom: .2rem;
}
.p-auth-brand .p-brand-sub {
  font-size: .82rem;
  color:     var(--p-text-3);
}

/* ═══════════════════════════════════════════════════════════════
   SECTION DIVIDER / SEPARATOR
═══════════════════════════════════════════════════════════════ */
.p-sep {
  border:     none;
  border-top: .5px solid var(--p-border);
  margin:     1.25rem 0;
}

/* ═══════════════════════════════════════════════════════════════
   SMALL UTILITY TEXT
═══════════════════════════════════════════════════════════════ */
.p-text-muted { color: var(--p-text-3); font-size: .82rem; }
.p-text-sm    { font-size: .82rem; }
.p-link       { color: var(--p-blue); text-decoration: none; font-size: .82rem; }
.p-link:hover { text-decoration: underline; }
.p-center     { text-align: center; }

/* ═══════════════════════════════════════════════════════════════
   SUCCESS / SUBMITTED STATE CARD
═══════════════════════════════════════════════════════════════ */
.p-success-state {
  text-align: center;
  padding:    2rem 1rem;
}
.p-success-state .p-success-icon { font-size: 2.5rem; margin-bottom: .75rem; }
.p-success-state h2  { font-size: 1.15rem; font-weight: 600; color: var(--p-text); margin-bottom: .4rem; }
.p-success-state p   { font-size: .85rem;  color: var(--p-text-3); margin-bottom: 1.25rem; }

/* ═══════════════════════════════════════════════════════════════
   GRID LAYOUT HELPERS
═══════════════════════════════════════════════════════════════ */
.p-grid-2 {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   1.25rem;
  margin-bottom:         1.25rem;
}
@media (max-width: 760px) {
  .p-grid-2 { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  .p-wrap           { padding: 1.25rem 1rem 3rem; }
  .p-page-header    { flex-direction: column; align-items: flex-start; }
  .p-check-grid     { grid-template-columns: 1fr; }
  .p-stat-mini-row  { grid-template-columns: repeat(3, 1fr); gap: .5rem; }
  .p-stat-mini .sv  { font-size: 1.2rem; }
  .p-table-wrap th,
  .p-table-wrap td  { padding: .55rem .75rem; font-size: .8rem; }
}
@media (max-width: 480px) {
  .p-stat-mini-row  { grid-template-columns: repeat(2, 1fr); }
  .p-filter-row input,
  .p-filter-row select { min-width: 100px; }
  .p-auth-wrap,
  .p-auth-wide      { padding: 0 .75rem; }
}

/* ═══════════════════════════════════════════════════════════════
   STAT CARDS (dashboard hero strip)
   .p-stats-row / .p-stat-card / .p-stat-label / .p-stat-val / .p-stat-sub
═══════════════════════════════════════════════════════════════ */
.p-stats-row {
  display:               grid;
  grid-template-columns: repeat(3, 1fr);
  gap:                   .85rem;
  margin-bottom:         1.75rem;
}
.p-stat-card {
  background:    var(--p-card);
  border:        .5px solid var(--p-border);
  border-radius: var(--p-radius);
  padding:       1.1rem 1.25rem;
  box-shadow:    var(--p-shadow-sm);
  transition:    box-shadow .15s;
}
.p-stat-card:hover { box-shadow: var(--p-shadow); }
.p-stat-label {
  font-size:      .72rem;
  font-weight:    600;
  color:          var(--p-text-3);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom:  .4rem;
}
.p-stat-val {
  font-size:      2rem;
  font-weight:    700;
  letter-spacing: -.04em;
  line-height:    1;
  margin-bottom:  .3rem;
}
.p-stat-sub {
  font-size: .76rem;
  color:     var(--p-text-4);
}

/* ═══════════════════════════════════════════════════════════════
   DOMAIN CHECK WIDGET
   .p-check-widget / .p-check-row / .p-check-input
═══════════════════════════════════════════════════════════════ */
.p-check-widget {
  background:    var(--p-card);
  border:        .5px solid var(--p-border);
  border-radius: var(--p-radius);
  padding:       1.25rem 1.5rem;
  margin-bottom: 1.75rem;
  box-shadow:    var(--p-shadow-sm);
}
.p-check-widget h2 {
  font-size:      .95rem;
  font-weight:    600;
  color:          var(--p-text);
  letter-spacing: -.01em;
  margin-bottom:  .85rem;
}
.p-check-row {
  display: flex;
  gap:     .5rem;
}
.p-check-input {
  flex:          1;
  background:    var(--p-gray-soft);
  border:        .5px solid var(--p-border-strong);
  border-radius: var(--p-radius-xs);
  color:         var(--p-text);
  font-family:   var(--p-font);
  font-size:     .9rem;
  padding:       .55rem .9rem;
  outline:       none;
  transition:    all .15s;
  min-height:    40px;
}
.p-check-input:focus {
  background:   #fff;
  border-color: var(--p-blue);
  box-shadow:   0 0 0 3px rgba(0,113,227,.1);
}
.p-check-input::placeholder { color: var(--p-text-4); }

/* ═══════════════════════════════════════════════════════════════
   SECTION BAR (heading + action, e.g. "My Customers [12]  + Add")
═══════════════════════════════════════════════════════════════ */
.p-section-bar {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  gap:             .75rem;
  margin-bottom:   1rem;
}
.p-section-bar h2 {
  font-size:      1.05rem;
  font-weight:    600;
  color:          var(--p-text);
  letter-spacing: -.02em;
  display:        flex;
  align-items:    center;
  gap:            .5rem;
}
.p-count-pill {
  background:    var(--p-gray-soft);
  border:        .5px solid var(--p-border-strong);
  border-radius: 99px;
  padding:       .1rem .55rem;
  font-size:     .72rem;
  font-weight:   600;
  color:         var(--p-text-3);
  letter-spacing: 0;
}

/* ═══════════════════════════════════════════════════════════════
   COMPANY CARD (grouped customer card with project blocks)
═══════════════════════════════════════════════════════════════ */
.p-company-card {
  background:    var(--p-card);
  border:        .5px solid var(--p-border);
  border-radius: var(--p-radius);
  padding:       1.1rem 1.25rem 0;
  margin-bottom: .85rem;
  box-shadow:    var(--p-shadow-sm);
  transition:    box-shadow .15s, border-color .15s;
  overflow:      hidden;
}
.p-company-card:hover {
  border-color: var(--p-border-strong);
  box-shadow:   var(--p-shadow);
}

/* Company header row */
.p-co-header {
  display:     flex;
  align-items: center;
  gap:         .85rem;
  padding-bottom: .9rem;
  border-bottom: .5px solid var(--p-border);
  margin-bottom: 0;
}
.p-co-avatar {
  width:         36px;
  height:        36px;
  border-radius: 9px;
  display:       flex;
  align-items:   center;
  justify-content: center;
  font-size:     .82rem;
  font-weight:   700;
  flex-shrink:   0;
  letter-spacing: -.01em;
}
.p-co-info { flex: 1; min-width: 0; }
.p-co-name {
  font-size:      .92rem;
  font-weight:    600;
  color:          var(--p-text);
  letter-spacing: -.01em;
  white-space:    nowrap;
  overflow:       hidden;
  text-overflow:  ellipsis;
}
.p-co-domain {
  font-size:  .76rem;
  color:      var(--p-text-4);
  margin-top: .1rem;
  white-space: nowrap;
  overflow:    hidden;
  text-overflow: ellipsis;
}
.p-co-right { flex-shrink: 0; }

/* Protection chip on company header */
.p-protect-chip {
  display:        inline-flex;
  align-items:    center;
  gap:            .3rem;
  border-radius:  99px;
  padding:        .22rem .72rem;
  font-size:      .72rem;
  font-weight:    600;
  white-space:    nowrap;
  letter-spacing: .01em;
}
.p-pc-green  { background: var(--p-green-soft);  color: #1a6630; }
.p-pc-orange { background: var(--p-orange-soft); color: #7a4800; }
.p-pc-blue   { background: var(--p-blue-soft);   color: #004a99; }
.p-pc-gray   { background: var(--p-gray-soft);   color: var(--p-text-3); border: .5px solid var(--p-border-strong); }

/* ═══════════════════════════════════════════════════════════════
   PROJECT BLOCK (inside .p-company-card, one per deal)
═══════════════════════════════════════════════════════════════ */
.p-project-block {
  padding:       .9rem 0 .9rem;
  border-bottom: .5px solid var(--p-border);
}
.p-project-block:last-child { border-bottom: none; }

.p-proj-head {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  gap:             .5rem;
  margin-bottom:   .45rem;
  flex-wrap:       wrap;
}
.p-proj-title {
  font-size:      .85rem;
  font-weight:    600;
  color:          var(--p-text);
  letter-spacing: -.01em;
}
.p-proj-badges {
  display: flex;
  gap:     .3rem;
  flex-wrap: wrap;
}

/* Tiny inline badges for type (OEM/ODM) and status inside project block */
.p-tbadge {
  display:        inline-block;
  border-radius:  99px;
  padding:        .12rem .5rem;
  font-size:      .68rem;
  font-weight:    600;
  white-space:    nowrap;
  letter-spacing: .01em;
}
.p-tb-blue   { background: var(--p-blue-soft);   color: #004a99; }
.p-tb-green  { background: var(--p-green-soft);  color: #1a6630; }
.p-tb-orange { background: var(--p-orange-soft); color: #7a4800; }
.p-tb-gray   { background: var(--p-gray-soft);   color: var(--p-text-3); border: .5px solid var(--p-border-strong); }
.p-tb-purple { background: var(--p-purple-soft); color: #6b2f8a; }

/* Project meta row (date · country · ref) */
.p-proj-meta {
  display:    flex;
  flex-wrap:  wrap;
  gap:        .15rem .85rem;
  font-size:  .76rem;
  color:      var(--p-text-4);
  margin-bottom: .5rem;
}
.p-meta-item strong { color: var(--p-text-3); font-weight: 500; }

/* At-risk / system note block */
.p-note-block {
  border-radius: var(--p-radius-xs);
  padding:       .55rem .8rem;
  font-size:     .78rem;
  line-height:   1.5;
  margin-bottom: .55rem;
}
.p-note-warn {
  background: var(--p-orange-soft);
  color:      #7a4800;
  border-left: 2px solid var(--p-orange);
}
.p-note-who {
  font-size:    .68rem;
  font-weight:  600;
  color:        var(--p-text-4);
  margin-bottom:.2rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}

/* Action row inside project block */
.p-action-row {
  display:   flex;
  flex-wrap: wrap;
  gap:       .35rem;
  margin-top:.1rem;
}

/* Action button variants (used inside project blocks) */
.p-btn-action-primary {
  background: var(--p-blue);
  color:      #fff;
  border:     none;
}
.p-btn-action-primary:hover {
  background:     #0077ed;
  color:          #fff;
  text-decoration: none;
}
.p-btn-action-green {
  background: var(--p-green-soft);
  color:      #1a6630;
  border:     .5px solid rgba(52,199,89,.25);
}
.p-btn-action-green:hover {
  background:     #d4f7e2;
  color:          #1a6630;
  text-decoration: none;
}
.p-btn-action-orange {
  background: var(--p-orange-soft);
  color:      #7a4800;
  border:     .5px solid rgba(255,149,0,.25);
}
.p-btn-action-orange:hover {
  background:     #ffe6c0;
  color:          #7a4800;
  text-decoration: none;
}

/* ═══════════════════════════════════════════════════════════════
   QUICK LINKS SECTION
═══════════════════════════════════════════════════════════════ */
.p-quick-links {
  margin-top: 1.75rem;
  margin-bottom: .5rem;
}
.p-quick-links h2 {
  font-size:      .82rem;
  font-weight:    600;
  color:          var(--p-text-3);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom:  .65rem;
}
.p-ql-grid {
  display:               grid;
  grid-template-columns: repeat(4, 1fr);
  gap:                   .65rem;
}
.p-ql-btn {
  display:        flex;
  flex-direction: column;
  align-items:    center;
  justify-content: center;
  gap:            .4rem;
  padding:        1rem .75rem;
  background:     var(--p-card);
  border:         .5px solid var(--p-border);
  border-radius:  var(--p-radius);
  font-size:      .78rem;
  font-weight:    500;
  color:          var(--p-text-2);
  text-decoration: none;
  transition:     all .15s;
  text-align:     center;
  box-shadow:     var(--p-shadow-sm);
  position:       relative;
}
.p-ql-btn:hover {
  background:      var(--p-gray-soft);
  border-color:    var(--p-border-strong);
  color:           var(--p-text);
  text-decoration: none;
  box-shadow:      var(--p-shadow);
  transform:       translateY(-1px);
}
.p-ql-icon {
  font-size: 1.3rem;
  line-height: 1;
}
.p-nbadge {
  position:      absolute;
  top:           .45rem;
  right:         .45rem;
  background:    var(--p-red);
  color:         #fff;
  border-radius: 99px;
  padding:       1px 5px;
  font-size:     .62rem;
  font-weight:   700;
  line-height:   1.4;
}

/* ═══════════════════════════════════════════════════════════════
   FOOTER TRUST BLOCK
═══════════════════════════════════════════════════════════════ */
.p-footer-trust {
  display:       flex;
  align-items:   center;
  gap:           1rem;
  margin-top:    .5rem;
  padding:       1.1rem 1.4rem;
  background:    var(--p-gray-soft);
  border-radius: var(--p-radius);
  border:        .5px solid var(--p-border);
}
.p-footer-trust-icon {
  font-size:  1.3rem;
  flex-shrink: 0;
  opacity:    .55;
}
.p-footer-trust-text {
  display:        flex;
  flex-direction: column;
  gap:            .15rem;
}
.p-footer-trust-title {
  font-size:      .82rem;
  font-weight:    600;
  color:          var(--p-text-2);
  letter-spacing: -.01em;
}
.p-footer-trust-sub {
  font-size:  .76rem;
  color:      var(--p-text-4);
  line-height: 1.5;
}

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE — dashboard specific
═══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  .p-stats-row        { grid-template-columns: repeat(3, 1fr); gap: .5rem; }
  .p-stat-val         { font-size: 1.6rem; }
  .p-ql-grid          { grid-template-columns: repeat(2, 1fr); }
  .p-co-header        { gap: .6rem; }
  .p-proj-meta        { gap: .1rem .6rem; }
}
@media (max-width: 480px) {
  .p-stats-row        { grid-template-columns: 1fr 1fr; }
  .p-ql-grid          { grid-template-columns: repeat(2, 1fr); }
  .p-check-row        { flex-direction: column; }
  .p-co-right         { display: none; }
}



/* ═══════════════════════════════════════════════════════════════
   CSS1 FIX: Product chip / pricing detail styles
   Moved from inline <style> blocks in dist_dashboard.php and
   dist_my_deals.php — single source of truth here.
═══════════════════════════════════════════════════════════════ */
.p-proj-model {
  font-size: .75rem;
  color: var(--p-text-3);
  font-weight: 400;
  margin-left: .35rem;
  font-family: 'SF Mono', 'Fira Code', monospace;
}
.p-proj-details-row {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin: .55rem 0 .6rem;
}
.p-detail-chip {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  background: var(--p-gray-soft);
  border: 1px solid var(--p-border);
  border-radius: var(--p-radius-xs);
  padding: .2rem .55rem;
  font-size: .76rem;
  color: var(--p-text-2);
}
.p-dchip-label {
  font-size: .68rem;
  color: var(--p-text-3);
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-right: .1rem;
}
.p-dchip-base {
  background: #fff5f5;
  border-color: rgba(192,57,43,.2);
  color: #c0392b;
}
.p-dchip-base strong { color: #c0392b; }
.p-dchip-price {
  background: var(--p-green-soft);
  border-color: rgba(52,199,89,.25);
  color: #1a6630;
}
.p-dchip-price strong { color: #1a6630; }
.p-dchip-noprice {
  background: var(--p-orange-soft);
  border-color: rgba(255,149,0,.25);
  color: #7a4800;
}

/* ═══════════════════════════════════════════════════════════════
   CSS3 FIX: Notification card type colours as named classes
   Replaces inline style="" attributes in dist_admin_notifications.php
═══════════════════════════════════════════════════════════════ */
.p-notif-card-unread {
  background: var(--p-blue-soft, #f0f6ff);
  border-left: 3px solid var(--primary, #2563eb);
}
.p-notif-type-price_request { border-left-color: #16a34a; }
.p-notif-type-conflict       { border-left-color: #dc2626; }
.p-notif-type-deal           { border-left-color: #2563eb; }
.p-notif-type-negotiation    { border-left-color: #d97706; }
.p-notif-type-approved       { border-left-color: #16a34a; }
.p-notif-type-declined       { border-left-color: #dc2626; }
.p-notif-type-odm            { border-left-color: #7c3aed; }
.p-notif-type-registration   { border-left-color: #0891b2; }
