.rlt-portal-scope{
  --rp-ink:#111827; --rp-ink-soft:#3f4759;
  --rp-paper:#F5F6FA; --rp-card:#FFFFFF;
  --rp-line:#E5E7EB;
  --rp-primary:#007C73; --rp-primary-dark:var(--rp-primary); --rp-primary-soft:#E6F6F3;
  --rp-cyan:#00A69C; --rp-cyan-soft:#E5F8F6;
  --rp-green:#16A34A; --rp-green-soft:#E6F6EC;
  --rp-red:#DC2626; --rp-red-soft:#FCEBEA;
  --rp-slate:#6B7280; --rp-slate-soft:#EEF0F3;
  --rp-sidebar:#111827; --rp-sidebar-soft:#9AA3B8;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  background:var(--rp-paper); color:var(--rp-ink);
  border-radius:14px; overflow:hidden;
}
.rlt-portal-scope *{ box-sizing:border-box; }
.rlt-portal-scope a{ color:inherit; }
.rlt-portal-scope button, .rlt-portal-scope input, .rlt-portal-scope select{ font-family:inherit; }

/* ---------------------------------------------------------------- */
/* Login / forgot / reset screens                                    */
/* ---------------------------------------------------------------- */
.rp-auth-wrap{
  min-height:560px; display:flex; align-items:center; justify-content:center;
  padding:28px;
  /* Login background follows the Admin-configured company brand colors.
     Both layers are darkened so white login text remains legible even when
     the configured brand colors are light. */
  background:
    radial-gradient(circle at 12% 18%, color-mix(in srgb, var(--rp-primary) 82%, #000 18%), transparent 48%),
    radial-gradient(circle at 88% 82%, color-mix(in srgb, var(--rp-cyan) 72%, #000 28%), transparent 52%),
    linear-gradient(135deg, color-mix(in srgb, var(--rp-primary) 68%, #000 32%), color-mix(in srgb, var(--rp-cyan) 58%, #000 42%));
}
.rp-auth-wrap::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.18));
}
.rp-auth-wrap{ position:relative; }
.rp-auth-wrap > *{ position:relative; z-index:1; }
.rp-auth-card{
  width:100%; max-width:840px; background:var(--rp-card); border-radius:18px;
  display:grid; grid-template-columns:1.1fr 1fr; overflow:hidden;
  box-shadow:0 30px 70px rgba(0,0,0,0.35);
}
.rp-auth-side{
  background:linear-gradient(160deg, color-mix(in srgb, var(--rp-primary) 42%, #000 58%) 0%, color-mix(in srgb, var(--rp-cyan) 34%, #000 66%) 58%, color-mix(in srgb, var(--rp-primary) 62%, #000 38%) 160%);
  color:var(--rp-auth-text, #fff); padding:40px 34px; display:flex; flex-direction:column; justify-content:center;
}
.rp-auth-side .rp-mark{ display:flex; align-items:center; gap:9px; margin-bottom:20px; }
.rp-auth-side .rp-dot{ width:11px; height:11px; border-radius:3px; background:var(--rp-cyan); box-shadow:0 0 0 4px rgba(6,182,212,0.28); }
.rp-auth-side .rp-mark span{ font-weight:700; font-size:19px; letter-spacing:-0.01em; }
.rp-auth-side h1{ font-size:25px; line-height:1.32; margin:0 0 12px; font-weight:650; }
.rp-auth-side p{ color:var(--rp-auth-text-soft, #C4CAE0); font-size:13.5px; line-height:1.65; max-width:32ch; }

.rp-auth-form{ padding:40px 36px; }
.rp-auth-form h2{ font-size:19px; margin:0 0 6px; }
.rp-hint{ font-size:12.5px; color:var(--rp-slate); margin-bottom:20px; }

.rp-field{ margin-bottom:15px; }
.rp-field label{ display:block; font-size:12px; font-weight:600; color:var(--rp-ink-soft); margin-bottom:5px; }
.rp-field input{
  width:100%; padding:10px 12px; border:1px solid var(--rp-line); border-radius:9px;
  font-size:13.5px; background:#fff; color:var(--rp-ink);
}
.rp-field input:focus{ outline:2px solid var(--rp-primary); outline-offset:1px; border-color:var(--rp-primary); }

.rp-link-btn{ background:none; border:none; color:var(--rp-primary-dark); font-size:12.5px; font-weight:600; padding:0; cursor:pointer; }
.rp-error{ background:var(--rp-red-soft); color:var(--rp-red); padding:9px 12px; border-radius:8px; font-size:12.5px; margin-bottom:14px; }
.rp-success{ background:var(--rp-green-soft); color:var(--rp-green); padding:9px 12px; border-radius:8px; font-size:12.5px; margin-bottom:14px; }

@media (max-width:760px){
  .rp-auth-card{ grid-template-columns:1fr; max-width:420px; }
  .rp-auth-side{ padding:28px 24px; }
  .rp-auth-form{ padding:28px 24px; }
}

/* ---------------------------------------------------------------- */
/* App shell: sidebar + topbar + main                                */
/* ---------------------------------------------------------------- */
.rp-app{ display:flex; min-height:640px; position:relative; }

.rp-sidebar{ background:var(--rp-sidebar); color:#fff; width:230px; flex:0 0 230px; z-index:2; }
.rp-sidebar-inner{ padding:20px 14px; position:sticky; top:0; max-height:100vh; overflow-y:auto; }
.rp-sidebar .rp-mark{ display:flex; align-items:center; gap:9px; padding:0 6px 20px; }
.rp-sidebar .rp-dot{ width:10px; height:10px; border-radius:3px; background:var(--rp-cyan); }
.rp-sidebar .rp-mark span{ font-weight:700; font-size:16px; }

.rp-nav-label{ font-size:10px; text-transform:uppercase; letter-spacing:0.08em; color:var(--rp-sidebar-soft); padding:0 10px; margin:14px 0 6px; font-weight:700; }
.rp-nav-item{
  display:flex; align-items:center; gap:9px; padding:10px 10px; border-radius:8px; font-size:13px;
  color:#D3D9E6; font-weight:500; margin-bottom:2px; cursor:pointer; text-decoration:none;
}
.rp-nav-item:hover{ background:rgba(255,255,255,0.06); color:#fff; }
.rp-nav-item.active{ background:var(--rp-primary); color:#fff; }
.rp-nav-icon{ width:18px; text-align:center; opacity:0.9; }

.rp-sidebar-foot{ margin-top:18px; padding-top:14px; border-top:1px solid rgba(255,255,255,0.1); }
.rp-who{ padding:10px; border-radius:9px; background:rgba(255,255,255,0.05); }
.rp-who .rp-name{ font-size:12.5px; font-weight:600; color:#fff; }
.rp-who .rp-role{ font-size:10.5px; color:var(--rp-sidebar-soft); margin-top:2px; }
.rp-who .rp-role span{ background:var(--rp-primary); color:#fff; padding:1.5px 7px; border-radius:20px; font-size:9.5px; font-weight:700; text-transform:uppercase; }
.rp-foot-link{ display:block; margin-top:8px; font-size:12px; color:var(--rp-sidebar-soft); text-decoration:none; padding:8px 10px; }
.rp-foot-link:hover{ color:#fff; }

.rp-main{ padding:24px 28px 50px; flex:1 1 auto; min-width:0; width:100%; }
.rp-topbar{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:20px; flex-wrap:wrap; gap:10px; }
.rp-topbar h1{ font-size:21px; margin:0; }
.rp-topbar .rp-sub{ color:var(--rp-slate); font-size:12.5px; margin-top:3px; }

/* Mobile / tablet: sidebar is an off-canvas drawer and is hidden until the menu button is clicked. */
.rp-mobile-topbar{display:none;}
.rp-sidebar-backdrop{display:none;}

@media (max-width:880px){
  .rp-app{display:block;}
  .rp-mobile-topbar{
    display:flex; align-items:center; gap:12px; background:var(--rp-sidebar); color:#fff;
    padding:14px 16px; position:sticky; top:0; z-index:25;
  }
  .rp-mobile-topbar .rp-hamburger{
    background:none; border:none; color:#fff; font-size:23px; line-height:1;
    padding:4px 6px; cursor:pointer; touch-action:manipulation;
  }
  .rp-mobile-topbar .rp-mark{display:flex; align-items:center; gap:8px;}
  .rp-mobile-topbar .rp-dot{width:9px; height:9px; border-radius:3px; background:var(--rp-cyan);}
  .rp-mobile-topbar span{font-weight:700; font-size:15px;}

  .rp-sidebar{
    position:fixed; top:0; left:0; height:100vh; max-height:100vh; z-index:100;
    width:250px; flex:none; transform:translateX(-100%);
    transition:transform .22s ease; box-shadow:0 0 30px rgba(0,0,0,.3);
  }
  .rp-sidebar-inner{
    position:static; height:100%; max-height:none; overflow-y:auto;
    overscroll-behavior:contain; -webkit-overflow-scrolling:touch;
  }
  .rp-app.rp-sidebar-open .rp-sidebar{transform:translateX(0);}
  .rp-sidebar-backdrop{
    display:none; position:fixed; inset:0; background:rgba(15,20,35,.5); z-index:99;
  }
  .rp-app.rp-sidebar-open .rp-sidebar-backdrop{display:block;}
  .rp-main{padding:18px 16px 40px; min-width:0;}
}

/* ---------------------------------------------------------------- */
/* Content components (cards, tables, forms, buttons, badges, modals) */
/* ---------------------------------------------------------------- */
.rp-loading{ padding:60px; text-align:center; color:var(--rp-slate); }

.rp-cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:14px; margin-bottom:20px; }
.rp-card{ background:var(--rp-card); border:1px solid var(--rp-line); border-radius:12px; padding:16px 18px; }
.rp-card-label{ font-size:11px; color:var(--rp-slate); text-transform:uppercase; letter-spacing:0.05em; }
.rp-card-value{ font-size:24px; font-weight:700; margin-top:4px; }

.rp-panel{ background:var(--rp-card); border:1px solid var(--rp-line); border-radius:14px; padding:20px; margin-bottom:18px; }
.rp-panel h3{ margin:0 0 14px; font-size:14.5px; }
.rp-panel-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }

.rp-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:900px){ .rp-grid-2{ grid-template-columns:1fr; } }

.rp-table{ width:100%; border-collapse:collapse; }
.rp-table th, .rp-table td{ text-align:left; padding:9px 12px; border-bottom:1px solid var(--rp-line); font-size:13px; }
.rp-table th{ font-size:10.5px; text-transform:uppercase; letter-spacing:0.05em; color:var(--rp-slate); font-weight:700; }
.rp-table tbody tr:hover{ background:var(--rp-paper); }

.rp-badge{ color:#fff; padding:3px 10px; border-radius:999px; font-size:10.5px; font-weight:700; text-transform:capitalize; white-space:nowrap; }

.rp-btn{ border:none; border-radius:8px; padding:8px 15px; font-size:13px; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; gap:6px; }
.rp-btn-primary{ background:var(--rp-primary); color:#fff; }
.rp-btn-primary:hover{ background:var(--rp-primary-dark); }
.rp-btn-ghost{ background:transparent; color:var(--rp-ink-soft); border:1px solid var(--rp-line); }
.rp-btn-ghost:hover{ border-color:var(--rp-ink); color:var(--rp-ink); }
.rp-btn-danger{ background:var(--rp-red-soft); color:var(--rp-red); }
.rp-btn-sm{ padding:5px 10px; font-size:12px; border-radius:6px; }
.rp-btn[disabled]{ opacity:.55; cursor:default; }

.rp-form-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; margin-bottom:12px; }
.rp-full{ grid-column:1 / -1; }
.rp-field label{ display:block; font-size:12px; font-weight:600; color:var(--rp-ink-soft); margin-bottom:4px; }
.rp-field input, .rp-field select, .rp-field textarea{
  width:100%; padding:8px 10px; border:1px solid var(--rp-line); border-radius:8px; font-size:13px; background:#fff; color:var(--rp-ink);
}
.rp-field input:focus, .rp-field select:focus, .rp-field textarea:focus{ outline:2px solid var(--rp-primary); outline-offset:1px; border-color:var(--rp-primary); }
.rp-checkbox-row{ display:flex; align-items:center; gap:8px; font-size:13px; margin-bottom:8px; }

.rp-modal-backdrop{ position:fixed; inset:0; background:rgba(15,20,35,0.55); display:flex; align-items:center; justify-content:center; z-index:1000; padding:20px; }
.rp-modal{ background:#fff; border-radius:14px; max-width:560px; width:100%; max-height:88vh; overflow-y:auto; padding:24px; box-shadow:0 30px 70px rgba(0,0,0,0.3); }
.rp-modal h3{ margin:0 0 16px; padding-bottom:12px; border-bottom:1px solid var(--rp-line); font-size:16px; }
.rp-modal-close{ float:right; background:none; border:none; font-size:20px; cursor:pointer; color:var(--rp-slate); }

.rp-toast{ position:fixed; right:20px; bottom:20px; background:var(--rp-ink); color:#fff; padding:11px 18px; border-radius:9px; font-size:13px; z-index:2000; box-shadow:0 10px 30px rgba(0,0,0,0.25); }

.rp-empty{ color:var(--rp-slate); font-size:13px; padding:14px 0; }
.rp-chart-wrap{ position:relative; height:240px; }

@media (max-width:640px){ .rp-cards{ grid-template-columns:repeat(2,1fr); } }

/* Enterprise project workspace */
.rp-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--rp-line);border-radius:12px}.rp-table-wrap .rp-table{min-width:860px}.rp-link-project{background:none;border:0;padding:0;color:var(--rp-primary);cursor:pointer;font:inherit;text-align:left}.rp-project-hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:4px 0 22px}.rp-eyebrow{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--rp-slate);font-weight:800;margin-top:18px}.rp-project-hero h2{font-size:28px;letter-spacing:-.03em;margin:6px 0}.rp-project-hero p{color:var(--rp-slate);margin:0}.rp-project-actions{display:flex;gap:8px;flex-wrap:wrap}.rp-project-kpis .rp-card{box-shadow:0 8px 30px rgba(17,24,39,.06)}.rp-small-value{font-size:18px}.rp-progress{height:11px;background:#edf0f5;border-radius:99px;overflow:hidden}.rp-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--rp-primary),var(--rp-cyan));border-radius:99px}.rp-progress-meta{display:flex;justify-content:space-between;margin:8px 0 14px;font-size:12px;color:var(--rp-slate)}.rp-health{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rp-health div,.rp-detail-grid div{background:#f8f9fc;border:1px solid var(--rp-line);border-radius:10px;padding:12px}.rp-health span,.rp-detail-grid span{display:block;font-size:10px;text-transform:uppercase;color:var(--rp-slate);font-weight:700;letter-spacing:.06em}.rp-health strong,.rp-detail-grid strong{display:block;margin-top:4px;font-size:13px}.rp-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.rp-project-description{margin:18px 0;padding:16px;background:#fafbfc;border-radius:10px;line-height:1.65;font-size:13px}.rp-panel{box-shadow:0 8px 28px rgba(17,24,39,.045)}
@media(max-width:760px){.rp-project-hero{display:block}.rp-project-actions{margin-top:15px}.rp-detail-grid{grid-template-columns:1fr 1fr}.rp-health{grid-template-columns:1fr}}

.rp-panel:has(.rp-table){overflow-x:auto}.rp-panel:has(.rp-table) .rp-table{min-width:820px}.rp-commandbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:18px}.rp-live{font-size:11px;color:var(--rp-slate);background:#fff;border:1px solid var(--rp-line);padding:8px 12px;border-radius:999px;white-space:nowrap}.rp-live span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#16a34a;margin-right:6px}.rp-card-foot{font-size:10px;color:var(--rp-slate);margin-top:5px}.rp-logo-upload{display:flex;align-items:center;gap:16px;padding:14px;border:1px dashed var(--rp-line);border-radius:12px;background:#fafbfc}.rp-logo-upload img{max-height:70px;max-width:220px}.rp-hint{font-size:11px;color:var(--rp-slate)}
@media(max-width:760px){.rp-commandbar{display:block}.rp-live{display:inline-block;margin-top:10px}}

.rp-table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.rp-table-scroll .rp-table{min-width:760px}.rp-logo-upload{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:16px;border:1px dashed #cbd5e1;border-radius:14px;background:#f8fafc}.rp-logo-upload img{display:block;max-width:240px;max-height:90px;width:auto;height:auto;object-fit:contain;background:#fff;border-radius:10px;padding:8px;box-shadow:0 4px 14px rgba(15,23,42,.08)}

/* v1.1.3: high-contrast actions, notifications and delivery modal */
.rp-btn-primary{background:var(--rp-primary)!important;color:#fff!important;text-shadow:none!important;opacity:1!important;visibility:visible!important}
.rp-btn-primary:hover{background:var(--rp-primary-dark)!important;color:#fff!important}
.rp-modal .rp-btn-primary,.rp-modal button.rp-btn-primary{display:inline-flex!important;align-items:center!important;justify-content:center!important;background:var(--rp-primary)!important;background-image:none!important;color:#FFFFFF!important;border:1px solid var(--rp-primary)!important;border-radius:8px!important;box-shadow:0 8px 18px rgba(17,24,39,.18)!important;text-shadow:none!important;min-height:44px!important;min-width:190px!important;padding:11px 18px!important;font-family:Inter,Arial,sans-serif!important;font-size:13px!important;font-weight:800!important;line-height:1.2!important;white-space:nowrap!important;visibility:visible!important;opacity:1!important;cursor:pointer!important;margin-top:14px!important}.rp-modal .rp-btn-primary:hover,.rp-modal button.rp-btn-primary:hover{background:var(--rp-primary-dark)!important;color:#FFFFFF!important}.rp-modal .rp-btn-primary:disabled,.rp-modal button.rp-btn-primary:disabled{background:#64748B!important;color:#FFFFFF!important;opacity:.65!important}
.rp-modal .rp-field input,.rp-modal .rp-field select,.rp-modal .rp-field textarea{background:#fff!important;color:#172033!important;border-color:#cbd5e1!important}
.rp-modal .rp-field input::placeholder,.rp-modal .rp-field textarea::placeholder{color:#64748b!important;opacity:1}
.rp-toast{background:#111827!important;color:#fff!important;border:1px solid #374151!important;font-weight:700!important;line-height:1.45!important;min-width:260px;max-width:min(420px,calc(100vw - 40px));padding:13px 16px!important}
.rp-notification{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--rp-line);background:#fff;border-radius:10px;color:#172033;cursor:pointer}
.rp-notification:hover{border-color:var(--rp-primary);color:var(--rp-primary)}
.rp-notification-badge{position:absolute;top:-7px;right:-7px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#dc2626;color:#fff!important;border:2px solid #fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;line-height:1}
.rp-topbar-actions{display:flex;align-items:center;gap:10px}
.rp-delivery-callout{margin-top:16px;padding:16px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:12px}
.rp-delivery-callout h4{margin:0 0 5px;color:#1e3a8a;font-size:13px}.rp-delivery-callout p{margin:0;color:#334155;font-size:12px}

/* v1.1.4: delivery action is intentionally high-contrast and duplicated in the workspace panel */
.rlt-portal-scope .rp-submit-delivery,
.rlt-portal-scope button.rp-submit-delivery,
.rlt-portal-scope .rp-delivery-action-panel button {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  visibility:visible !important;
  opacity:1 !important;
  background:var(--rp-primary) !important;
  color:#FFFFFF !important;
  border:1px solid var(--rp-primary) !important;
  text-shadow:none !important;
  min-height:42px !important;
  padding:10px 18px !important;
  font-weight:800 !important;
  line-height:1.2 !important;
  box-shadow:0 8px 18px rgba(79,70,229,.22) !important;
  position:relative !important;
  z-index:10 !important;
}
.rlt-portal-scope .rp-submit-delivery:hover,
.rlt-portal-scope button.rp-submit-delivery:hover,
.rlt-portal-scope .rp-delivery-action-panel button:hover {
  background:var(--rp-primary-dark) !important;
  color:#FFFFFF !important;
}
.rlt-portal-scope .rp-submit-disabled,
.rlt-portal-scope button.rp-submit-disabled {
  background:#64748B !important;
  border-color:#475569 !important;
  color:#FFFFFF !important;
  cursor:not-allowed !important;
  box-shadow:none !important;
}
.rlt-portal-scope .rp-delivery-action-panel {
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  background:#EEF2FF !important;
  border:2px solid #C7D2FE !important;
}
.rlt-portal-scope .rp-delivery-action-panel h4 { color:#1E1B4B !important; }
.rlt-portal-scope .rp-delivery-action-panel p { color:#334155 !important; }
@media(max-width:640px){.rlt-portal-scope .rp-delivery-action-panel{display:block!important}.rlt-portal-scope .rp-delivery-action-panel button{width:100%!important;margin-top:12px!important}}

/* v1.1.5: modal actions are outside the portal scope, so never depend on scoped CSS variables. */
.rp-modal-body > .rp-btn-primary{display:inline-flex!important;}
.rp-modal-body{color:#172033!important;}
.rp-modal-body .rp-hint{color:#475569!important;}
.rp-btn-danger{background:#dc2626!important;color:#fff!important;border:1px solid #b91c1c!important}
.rp-btn-danger:hover{background:#b91c1c!important}
.rp-invoice-alert{position:fixed;top:22px;right:22px;z-index:5000;display:flex;align-items:flex-start;gap:16px;background:#dc2626;color:#fff;border:1px solid #b91c1c;border-radius:10px;padding:15px 16px;box-shadow:0 14px 40px rgba(0,0,0,.25);min-width:300px;max-width:min(460px,calc(100vw - 32px));font-size:13px}
.rp-invoice-alert div{display:flex;flex-direction:column;gap:4px;line-height:1.45}.rp-invoice-alert strong{font-size:14px}.rp-invoice-alert span{opacity:.96}.rp-invoice-alert button{border:0;background:transparent;color:#fff;font-size:22px;line-height:1;cursor:pointer;padding:0 2px}
@media(max-width:600px){.rp-invoice-alert{top:12px;right:12px;left:12px;min-width:0;max-width:none}.rp-project-actions{flex-wrap:wrap}}

/* Rich text editor for admin-team project details */
.rp-rich-editor{border:1px solid var(--rp-line);border-radius:10px;overflow:hidden;background:#fff}
.rp-rich-toolbar{display:flex;gap:4px;flex-wrap:wrap;padding:7px;border-bottom:1px solid var(--rp-line);background:#f7f8fb}
.rp-rich-toolbar button{border:1px solid #d9dde7;background:#fff;border-radius:6px;padding:5px 9px;cursor:pointer;font:inherit;line-height:1.2}
.rp-rich-toolbar button:hover{background:#eef1f7}
.rp-rich-content{min-height:110px;padding:10px 12px;outline:0;line-height:1.55}
.rp-rich-content:empty:before{content:'Add project details, formatting, links, lists, and more…';color:#8a91a0;pointer-events:none}
.rp-rich-content a{color:var(--rp-primary);text-decoration:underline}

.rp-theme-toggle{border:1px solid var(--rp-line);background:var(--rp-card);color:var(--rp-ink-soft);border-radius:10px;padding:8px 11px;font-size:12px;font-weight:700;cursor:pointer}.rp-theme-toggle:hover{border-color:var(--rp-primary);color:var(--rp-primary)}


/* Frontend dark mode */
.rlt-portal-scope[data-frontend-theme="dark"]{
  --rp-ink:#F3F4F6; --rp-ink-soft:#CBD5E1;
  --rp-paper:#0B1220; --rp-card:#111827; --rp-line:#334155;
  --rp-primary-soft:#123B37; --rp-cyan-soft:#123A3A;
  --rp-green-soft:#12351F; --rp-red-soft:#3A1719; --rp-slate-soft:#1F2937;
}
.rlt-portal-scope[data-frontend-theme="dark"] .rp-main{background:var(--rp-paper);color:var(--rp-ink)}
.rlt-portal-scope[data-frontend-theme="dark"] .rp-topbar,
.rlt-portal-scope[data-frontend-theme="dark"] .rp-card,
.rlt-portal-scope[data-frontend-theme="dark"] .rp-panel,
.rlt-portal-scope[data-frontend-theme="dark"] .rp-modal,
.rlt-portal-scope[data-frontend-theme="dark"] .rp-table-wrap,
.rlt-portal-scope[data-frontend-theme="dark"] .rp-commandbar,
.rlt-portal-scope[data-frontend-theme="dark"] .rp-auth-card{background:var(--rp-card);color:var(--rp-ink);border-color:var(--rp-line)}
.rlt-portal-scope[data-frontend-theme="dark"] .rp-table th{background:#0F172A;color:#CBD5E1;border-color:var(--rp-line)}
.rlt-portal-scope[data-frontend-theme="dark"] .rp-table td{border-color:var(--rp-line);color:var(--rp-ink)}
.rlt-portal-scope[data-frontend-theme="dark"] .rp-field input,
.rlt-portal-scope[data-frontend-theme="dark"] .rp-field select,
.rlt-portal-scope[data-frontend-theme="dark"] .rp-field textarea,
.rlt-portal-scope[data-frontend-theme="dark"] input,
.rlt-portal-scope[data-frontend-theme="dark"] select,
.rlt-portal-scope[data-frontend-theme="dark"] textarea{background:#0F172A;color:#F3F4F6;border-color:#475569}
.rlt-portal-scope[data-frontend-theme="dark"] .rp-sub,
.rlt-portal-scope[data-frontend-theme="dark"] .rp-hint,
.rlt-portal-scope[data-frontend-theme="dark"] .rp-card-label,
.rlt-portal-scope[data-frontend-theme="dark"] .rp-slate{color:#94A3B8}
.rlt-portal-scope[data-frontend-theme="dark"] .rp-theme-toggle{background:#1F2937;color:#F3F4F6;border-color:#475569}
.rlt-portal-scope[data-frontend-theme="dark"] .rp-rich-editor{background:#111827;border-color:#475569}
.rlt-portal-scope[data-frontend-theme="dark"] .rp-rich-toolbar{background:#0F172A;border-color:#334155}
.rlt-portal-scope[data-frontend-theme="dark"] .rp-rich-toolbar button{background:#1F2937;color:#F3F4F6;border-color:#475569}
.rlt-portal-scope[data-frontend-theme="dark"] .rp-toast{box-shadow:0 10px 30px rgba(0,0,0,.45)}


.rp-phase-list{display:flex;flex-direction:column;gap:10px}.rp-phase-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:12px 14px;border:1px solid #e2e8f0;border-radius:10px;background:rgba(148,163,184,.06)}
/* v1.1.20: keep the portal sidebar visible on mobile instead of collapsing it above the content. */
@media(max-width:880px){
  .rlt-portal-scope .rp-app{display:flex;min-height:100vh;align-items:stretch;overflow-x:hidden}
  .rlt-portal-scope .rp-sidebar{width:190px;flex:0 0 190px;position:sticky;top:0;height:100vh;align-self:flex-start}
  .rlt-portal-scope .rp-sidebar-inner{position:sticky;top:0;height:100vh;max-height:100vh;overflow-y:auto;padding:16px 10px}
  .rlt-portal-scope .rp-sidebar .rp-mark span{font-size:13px}
  .rlt-portal-scope .rp-nav-item{font-size:11.5px;padding:9px 7px}
  .rlt-portal-scope .rp-main{padding:16px 12px 40px;min-width:0}
  .rlt-portal-scope .rp-topbar h1{font-size:18px}
}
@media(max-width:520px){
  .rlt-portal-scope .rp-sidebar{width:156px;flex-basis:156px}
  .rlt-portal-scope .rp-sidebar-inner{padding:12px 7px}
  .rlt-portal-scope .rp-sidebar .rp-mark{padding-left:4px}
  .rlt-portal-scope .rp-nav-label{font-size:8px;padding-left:7px}
  .rlt-portal-scope .rp-nav-item{font-size:10px;gap:6px;padding:8px 6px}
  .rlt-portal-scope .rp-nav-icon{width:14px}
  .rlt-portal-scope .rp-main{padding:12px 9px 32px}
}

/* v1.1.22 — Sidebar UI/UX aligned with the supplied StockFlow reference. */
.rlt-portal-scope .rp-app{display:flex;min-height:600px;position:relative;}
.rlt-portal-scope .rp-sidebar{background:var(--rp-sidebar);color:#fff;width:220px;flex:0 0 220px;z-index:2;}
.rlt-portal-scope .rp-sidebar-inner{padding:20px 14px;position:sticky;top:0;max-height:100vh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.rlt-portal-scope .rp-sidebar .rp-mark{display:flex;align-items:center;gap:9px;padding:0 6px 18px;}
.rlt-portal-scope .rp-sidebar .rp-dot{width:10px;height:10px;border-radius:3px;background:var(--rp-cyan);}
.rlt-portal-scope .rp-sidebar .rp-mark span{font-weight:700;font-size:16px;}
.rlt-portal-scope .rp-nav-group{margin-bottom:16px;}
.rlt-portal-scope .rp-nav-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--rp-sidebar-soft);padding:0 10px;margin-bottom:6px;font-weight:600;}
.rlt-portal-scope .rp-nav-item{display:flex;align-items:center;gap:9px;padding:10px;border-radius:8px;font-size:13px;color:#D3D9E6;font-weight:500;margin-bottom:2px;cursor:pointer;white-space:nowrap;min-height:38px;text-decoration:none;}
.rlt-portal-scope .rp-nav-item:hover{background:rgba(255,255,255,.06);color:#fff;}
.rlt-portal-scope .rp-nav-item.active{background:var(--rp-primary);color:#fff;}
.rlt-portal-scope .rp-nav-icon{width:18px;text-align:center;opacity:.9;flex:0 0 18px;}
.rlt-portal-scope .rp-sidebar-foot{margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1);}
.rlt-portal-scope .rp-who{padding:10px;border-radius:9px;background:rgba(255,255,255,.05);}
.rlt-portal-scope .rp-who .rp-name{font-size:12.5px;font-weight:600;color:#fff;}
.rlt-portal-scope .rp-who .rp-role{font-size:10.5px;color:var(--rp-sidebar-soft);margin-top:2px;}
.rlt-portal-scope .rp-who .rp-role span{background:var(--rp-primary);color:#fff;padding:1.5px 7px;border-radius:20px;font-size:9.5px;font-weight:700;text-transform:uppercase;}
.rlt-portal-scope .rp-foot-link{display:block;margin-top:8px;font-size:12px;color:var(--rp-sidebar-soft);text-decoration:none;padding:8px 10px;cursor:pointer;background:none;border:none;text-align:left;width:100%;white-space:nowrap;}
.rlt-portal-scope .rp-foot-link:hover{color:#fff;}
.rlt-portal-scope .rp-mobile-topbar{display:none;}
.rlt-portal-scope .rp-sidebar-backdrop{display:none;}
.rlt-portal-scope .rp-bottom-nav{display:none;}

@media (max-width:880px){
  .rlt-portal-scope .rp-app{display:block;}
  .rlt-portal-scope .rp-mobile-topbar{display:flex;align-items:center;gap:12px;background:var(--rp-sidebar);color:#fff;padding:14px 16px;position:sticky;top:0;z-index:5;}
  .rlt-portal-scope .rp-mobile-topbar .rp-hamburger{background:none;border:none;color:#fff;font-size:22px;line-height:1;padding:4px 6px;cursor:pointer;touch-action:manipulation;}
  .rlt-portal-scope .rp-mobile-mark{display:flex;align-items:center;gap:8px;}
  .rlt-portal-scope .rp-mobile-mark .rp-dot{width:9px;height:9px;border-radius:3px;background:var(--rp-cyan);}
  .rlt-portal-scope .rp-mobile-mark span{font-weight:700;font-size:15px;}
  .rlt-portal-scope .rp-sidebar{position:fixed;top:0;left:0;height:100vh;max-height:100vh;z-index:20;width:250px;flex:none;transform:translateX(-100%);transition:transform .22s ease;box-shadow:0 0 30px rgba(0,0,0,.3);}
  .rlt-portal-scope .rp-sidebar-inner{position:static;height:100%;max-height:none;overscroll-behavior:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;}
  .rlt-portal-scope .rp-app.rp-sidebar-open .rp-sidebar{transform:translateX(0);}
  .rlt-portal-scope .rp-sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(14,22,38,.5);z-index:19;}
  .rlt-portal-scope .rp-app.rp-sidebar-open .rp-sidebar-backdrop{display:block;}
  .rlt-portal-scope .rp-main{padding:16px 14px calc(104px + env(safe-area-inset-bottom));max-width:100%;}
  .rlt-portal-scope .rp-bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:15;min-height:64px;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:rgba(255,255,255,.98);border-top:1px solid var(--rp-line);box-shadow:0 -6px 20px rgba(14,22,38,.10);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);align-items:stretch;justify-content:space-around;gap:3px;}
  .rlt-portal-scope .rp-bottom-nav-item{flex:1 1 0;min-width:0;max-width:150px;border:0;background:transparent;color:#6B7280;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px 3px;line-height:1;touch-action:manipulation;}
  .rlt-portal-scope .rp-bottom-nav-item:active{background:rgba(0,124,115,.08);}
  .rlt-portal-scope .rp-bottom-nav-item.active{color:var(--rp-primary);font-weight:700;}
  .rlt-portal-scope .rp-bottom-nav-icon{font-size:20px;line-height:1.05;font-weight:500;}
  .rlt-portal-scope .rp-bottom-nav-icon-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;line-height:1;min-height:21px;}
  .rlt-portal-scope .rp-bottom-nav-label{font-size:10.5px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
  .rlt-portal-scope .rp-bottom-nav-menu{color:#667085;}
}

/* Phase-specific project dashboard cards. Each phase exposes only its own PO and payable amount. */
.rp-phase-card-list{display:grid;gap:14px;margin-top:16px}.rp-phase-card{border:1px solid #E2E8F0;border-radius:14px;padding:16px;background:#fff}.rp-phase-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.rp-phase-card-head h3{margin:2px 0 3px}.rp-phase-financial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.rp-phase-financial-grid>div{padding:10px 12px;border-radius:10px;background:#F8FAFC}.rp-phase-financial-grid span,.rp-phase-card-foot span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#64748B}.rp-phase-financial-grid strong,.rp-phase-card-foot strong{display:block;margin-top:4px}.rp-phase-card-foot{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid #E2E8F0}.rp-phase-card-foot strong{text-align:right}.rp-phase-card .rp-btn{white-space:nowrap}@media(max-width:700px){.rp-phase-financial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rp-phase-card-foot{align-items:flex-start;flex-direction:column}.rp-phase-card-foot strong{text-align:left}} 
