/* Pulse 3D - dark financial terminal theme. Loaded last to override Admin Pro + blackbox-brand. */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');
:root{ --p-bg:#071219; --p-panel:#0B1D28; --p-panel2:#081821; --p-border:#163444; --p-hover:#0F2634; --p-text:#E6E7E8; --p-sec:#A8B8C0; --p-muted:#7C919C; --p-faint:#46606E; --p-grid:#0D222E; --p-accent:#DD1D44; --p-accent-d:#C31438; --p-green:#22A06B; --p-blue:#3F7FA6; --p-amber:#D98E2B; --p-teal:#2EC5CE; --p-avatar:#023E56; --p-glow:#0B2433; }
html.light{ --p-bg:#EEF1F3; --p-panel:#FFFFFF; --p-panel2:#E7EBEE; --p-border:#D5DDE2; --p-hover:#F0F3F5; --p-text:#14252F; --p-sec:#3E5460; --p-muted:#5B707C; --p-faint:#8CA0AA; --p-grid:#E2E8EB; --p-glow:#DDE6EB; }
html,body{ background:var(--p-bg) !important; color:var(--p-text) !important; font-family:'IBM Plex Sans',sans-serif !important; }
body,.page-wrapper,#main-wrapper,.container-fluid,.mini-sidebar,.fix-header{ background:var(--p-bg) !important; }
h1,h2,h3,h4,h5,h6,.card-title{ color:var(--p-text) !important; font-family:'IBM Plex Sans',sans-serif; font-weight:600; }
.text-themecolor{ color:var(--p-text) !important; } .text-muted{ color:var(--p-muted) !important; }
a{ color:var(--p-text); } a:hover{ color:var(--p-accent); }
.topbar,.topbar .navbar-header,.topbar .top-navbar{ background:var(--p-panel) !important; border-bottom:1px solid var(--p-border) !important; box-shadow:none !important; }
.topbar .navbar-nav .nav-item>a.nav-link{ color:var(--p-muted) !important; font-weight:500; }
.topbar .navbar-nav .nav-item>a.nav-link:hover,.topbar .navbar-nav .nav-item>a.nav-link:focus{ color:var(--p-text) !important; }
.card,.bb-card{ background:var(--p-panel) !important; border:1px solid var(--p-border) !important; border-radius:10px !important; box-shadow:none !important; color:var(--p-text) !important; }
.card .card-body{ background:transparent !important; color:var(--p-text) !important; box-shadow:none !important; }
.countcard{ background:var(--p-panel) !important; } .countcard h2,.countcard .txtbld{ color:var(--p-text) !important; } .countcard h6{ color:var(--p-muted) !important; }
.table,table.dataTable{ color:var(--p-text) !important; }
.table th,.table td{ border-color:var(--p-border) !important; color:var(--p-text) !important; }
.table thead th{ color:var(--p-muted) !important; background:var(--p-panel2) !important; border-color:var(--p-border) !important; text-transform:uppercase; letter-spacing:.05em; font-size:11px; }
.table-striped tbody tr:nth-of-type(odd){ background:var(--p-panel2) !important; }
.table-bordered,.table-bordered td,.table-bordered th{ border-color:var(--p-border) !important; }
.table tbody tr:hover{ background:var(--p-hover) !important; }
.btn-primary,.btn-info,.btn-themecolor,.btn-success{ background:var(--p-accent) !important; border-color:var(--p-accent) !important; color:#fff !important; }
.btn-primary:hover,.btn-info:hover,.btn-success:hover,.btn-themecolor:hover{ background:var(--p-accent-d) !important; border-color:var(--p-accent-d) !important; }
.btn-secondary,.btn-outline-secondary{ background:var(--p-bg) !important; border-color:var(--p-border) !important; color:var(--p-sec) !important; }
.form-control,select.form-control,input,textarea,select{ background:var(--p-bg) !important; border-color:var(--p-border) !important; color:var(--p-text) !important; }
.form-control::placeholder{ color:var(--p-faint) !important; } .form-control:focus{ border-color:var(--p-accent) !important; box-shadow:none !important; } label{ color:var(--p-muted) !important; }
.dropdown-menu{ background:var(--p-panel) !important; border:1px solid var(--p-border) !important; }
.dropdown-item{ color:var(--p-sec) !important; } .dropdown-item:hover{ background:var(--p-hover) !important; color:var(--p-text) !important; }
.dropdown-item.active,.dropdown-item:active{ background:var(--p-accent) !important; color:#fff !important; }
hr{ border-color:var(--p-border) !important; }
.modal-content{ background:var(--p-panel) !important; color:var(--p-text) !important; border:1px solid var(--p-border) !important; }
.modal-header,.modal-footer{ border-color:var(--p-border) !important; }
.dataTables_wrapper,.dataTables_filter,.dataTables_length,.dataTables_info,.dataTables_paginate,.paginate_button{ color:var(--p-muted) !important; }
.dt-buttons .dt-button{ background:var(--p-accent) !important; border-color:var(--p-accent) !important; color:#fff !important; }
::-webkit-scrollbar{ width:10px;height:10px; } ::-webkit-scrollbar-track{ background:var(--p-bg); } ::-webkit-scrollbar-thumb{ background:var(--p-border); border-radius:5px; border:2px solid var(--p-bg); }
/* ===== Pulse 3D top-nav shell ===== */
.topbar{ position:static !important; padding:0 !important; }
.p3d-topbar{ height:52px; display:flex; align-items:center; gap:18px; padding:0 18px; background:var(--p-panel); border-bottom:1px solid var(--p-border); }
.p3d-logo img{ height:22px; display:block; } .p3d-logo .p3d-logo-light{ display:none; }
html.light .p3d-logo .p3d-logo-dark{ display:none; } html.light .p3d-logo .p3d-logo-light{ display:block; }
.p3d-divider{ width:1px; height:24px; background:var(--p-border); }
.p3d-nav{ display:flex; align-items:stretch; height:52px; }
.p3d-tab{ display:flex; align-items:center; padding:0 14px; height:52px; font-size:13.5px; color:var(--p-muted); cursor:pointer; font-weight:400; user-select:none; white-space:nowrap; }
.p3d-tab:hover{ color:var(--p-text); } .p3d-tab.active{ color:var(--p-text) !important; font-weight:600; box-shadow:inset 0 -2px 0 var(--p-accent); }
.p3d-drop{ position:relative; display:flex; align-items:stretch; }
.p3d-menu{ position:absolute; top:100%; left:0; min-width:190px; background:var(--p-panel); border:1px solid var(--p-border); border-radius:0 0 10px 10px; box-shadow:0 16px 40px rgba(0,0,0,.35); z-index:1200; overflow:hidden; display:none; }
.p3d-menu.right{ left:auto; right:0; border-radius:10px; } .p3d-drop.open .p3d-menu{ display:block; }
.p3d-menu a{ display:block; padding:12px 16px; font-size:13px; color:var(--p-sec) !important; border-bottom:1px solid var(--p-border); }
.p3d-menu a:last-child{ border-bottom:none; } .p3d-menu a:hover{ background:var(--p-hover); color:var(--p-text) !important; }
.p3d-spacer{ flex:1; }
.p3d-status{ display:flex; align-items:center; gap:8px; font-size:12px; color:var(--p-muted); font-family:'IBM Plex Mono',monospace; white-space:nowrap; }
.p3d-status .p3d-dot{ width:8px; height:8px; border-radius:50%; background:#22A06B; animation:p3dblink 2s infinite; }
@keyframes p3dblink{ 0%,100%{opacity:1;} 50%{opacity:.25;} }
.p3d-clock{ font-size:13px; color:var(--p-text); font-family:'IBM Plex Mono',monospace; white-space:nowrap; }
.p3d-pill{ display:flex; align-items:center; background:var(--p-bg); border:1px solid var(--p-border); border-radius:999px; padding:5px 8px; cursor:pointer; color:var(--p-sec); }
.p3d-user-btn{ display:flex; align-items:center; gap:9px; padding:5px 10px 5px 5px; background:var(--p-bg); border:1px solid var(--p-border); border-radius:6px; cursor:pointer; }
.p3d-user-btn:hover{ border-color:var(--p-muted); }
.p3d-avatar{ width:24px; height:24px; border-radius:5px; background:#023E56; color:#fff; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; }
.p3d-user-name{ font-size:12.5px; color:var(--p-muted); white-space:nowrap; }
.p3d-user-head{ display:flex; flex-direction:column; gap:8px; padding:16px; border-bottom:1px solid var(--p-border); }
.p3d-user-head .av{ width:40px;height:40px;border-radius:50%;background:#023E56;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700; }
.p3d-user-head .nm{ font-size:14px;font-weight:600;color:var(--p-text); } .p3d-user-head .em{ font-size:11.5px;color:var(--p-faint);font-family:'IBM Plex Mono',monospace; }
.p3d-ticker{ display:flex; align-items:stretch; background:var(--p-panel2); border-bottom:1px solid var(--p-border); overflow-x:auto; }
.p3d-ticker .it{ display:flex; align-items:baseline; gap:10px; padding:9px 18px; border-right:1px solid var(--p-border); white-space:nowrap; }
.p3d-ticker .it .k{ font-size:11.5px; color:var(--p-muted); letter-spacing:.06em; font-family:'IBM Plex Mono',monospace; }
.p3d-ticker .it .v{ font-size:13px; font-weight:600; font-family:'IBM Plex Mono',monospace; color:var(--p-text); }
.preloader{ display:none !important; }
/* ===== Pulse 3D dashboard layout ===== */
.page-wrapper{ padding:0 !important; min-height:0 !important; }
.page-wrapper > .container-fluid{ padding:22px 24px !important; }
.page-wrapper .text-themecolor{ font-size:12px !important; font-weight:600 !important; letter-spacing:.08em; text-transform:uppercase; color:var(--p-muted) !important; margin:0 0 10px 0 !important; font-family:'IBM Plex Mono',monospace; }
.col-lg-12 .row:has(.countcard){ display:grid !important; grid-template-columns:repeat(7,minmax(0,1fr)) !important; gap:12px !important; margin:0 0 18px 0 !important; }
.col-lg-12 .row:has(.countcard) > [class*="col-"]{ width:auto !important; max-width:none !important; flex:none !important; padding:0 !important; margin:0 !important; }
.card:has(.countcard){ width:auto !important; height:auto !important; min-height:0 !important; margin:0 !important; }
.countcard{ height:auto !important; padding:14px 14px 14px 16px !important; }
.countcard .d-flex{ padding:0 !important; }
.countcard .display-6,.countcard .ml-auto{ display:none !important; }
.countcard h2{ font-size:24px !important; margin:0 0 2px 0 !important; line-height:1.05; }
.countcard h6{ font-size:11px !important; text-transform:uppercase; letter-spacing:.05em; color:var(--p-muted) !important; margin:0 !important; }
.card{ margin-bottom:16px !important; }
.card .card-body{ padding:18px 20px !important; }
.card .card-body h2.m-b-0{ font-size:26px !important; font-weight:600 !important; margin:0 0 4px 0 !important; }
.card .card-body h6.m-b-0{ font-size:12px !important; text-transform:uppercase; letter-spacing:.04em; color:var(--p-muted) !important; }
/* ===== Pulse 3D typography ===== */
body,h1,h2,h3,h4,h5,h6,p,a,span,div,li,ul,ol,td,th,label,input,select,textarea,button,.btn,.form-control,.dropdown-menu,.card,.topbar,.nav-link{ font-family:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif !important; }
/* IBM Plex Mono for numbers, labels, clock, tabular data */
.p3d-clock,.p3d-status,.p3d-ticker .k,.p3d-ticker .v,.p3d-user-head .em,
.page-wrapper .text-themecolor,.countcard h6,.countcard h2,
.card .card-body h2.m-b-0,.card .card-body h6.m-b-0,
.table td,.table th,.morris-hover,.legendLabel{ font-family:'IBM Plex Mono','SFMono-Regular',Menlo,monospace !important; }
/* ===== Pulse 3D theme toggle (sun + moon) ===== */
.p3d-toggle{ display:inline-flex; align-items:center; gap:2px; background:var(--p-bg); border:1px solid var(--p-border); border-radius:999px; padding:3px; }
.p3d-toggle svg{ width:16px; height:16px; padding:3px 6px; border-radius:999px; color:var(--p-faint); cursor:pointer; box-sizing:content-box; transition:background .15s,color .15s; }
.p3d-toggle svg:hover{ color:var(--p-sec); }
html:not(.light) .p3d-toggle .ic-moon{ color:var(--p-text); background:var(--p-hover); }
html.light .p3d-toggle .ic-sun{ color:#14252F; background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.15); }
/* ===== Pulse 3D revenue cards ===== */
.card .card-body .p3d-rev-k{ font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--p-muted) !important; font-family:'IBM Plex Mono',monospace; margin-bottom:7px; }
.card .card-body .p3d-rev-v{ font-family:'IBM Plex Mono',monospace; font-size:24px; font-weight:600; color:var(--p-text) !important; margin-bottom:7px; }
.card .card-body .p3d-rev-sub{ font-size:11.5px; color:var(--p-faint) !important; font-family:'IBM Plex Mono',monospace; }
/* count cards: round corners + clip accent to the rounded edge */
.card:has(.countcard){ border-radius:8px !important; overflow:hidden !important; }
/* count cards: hide the stray Live/Closed tile so exactly 7 remain */
.col-lg-12 .row:has(.countcard) > [class*="col-"]:has(a[href*="status=Closed"]){ display:none !important; }
/* ===== Pulse 3D palette — authoritative, must win the cascade ===== */
:root{
  --p-bg:#071219; --p-panel:#0B1D28; --p-panel2:#081821; --p-border:#163444; --p-hover:#0F2634;
  --p-text:#E6E7E8; --p-sec:#A8B8C0; --p-muted:#7C919C; --p-faint:#46606E; --p-grid:#0D222E; --p-glow:#0B2433;
  --p-accent:#DD1D44; --p-accent-d:#C31438; --p-green:#22A06B; --p-blue:#3F7FA6; --p-amber:#D98E2B;
  --p-teal:#2EC5CE; --p-avatar:#023E56;
}
html.light{
  --p-bg:#EEF1F3; --p-panel:#FFFFFF; --p-panel2:#E7EBEE; --p-border:#D5DDE2; --p-hover:#F0F3F5;
  --p-text:#14252F; --p-sec:#3E5460; --p-muted:#5B707C; --p-faint:#8CA0AA; --p-grid:#E2E8EB; --p-glow:#DDE6EB;
}
/* ===== Pulse 3D chart card headers ===== */
.p3d-cardhead{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.p3d-cardtitle{ font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--p-muted); font-family:'IBM Plex Mono',monospace; }
.p3d-headright{ display:flex; align-items:center; gap:16px; }
.p3d-legend{ display:flex; align-items:center; gap:14px; font-size:11px; color:var(--p-muted); white-space:nowrap; }
.p3d-legend span{ display:flex; align-items:center; gap:5px; }
.p3d-legend .sw{ width:10px; height:2px; display:inline-block; border-radius:1px; }
select.p3d-select{ background:var(--p-bg) !important; border:1px solid var(--p-border) !important; border-radius:6px !important; color:var(--p-text) !important; font-size:12px !important; font-family:'IBM Plex Mono',monospace !important; padding:7px 10px !important; height:auto !important; width:auto !important; cursor:pointer; box-shadow:none !important; }
/* ===== Pulse 3D: equal chart heights + consistent vertical rhythm ===== */
/* header rows match height whether they hold a legend or a <select> */
.p3d-cardhead{ min-height:36px; }
/* both monthly charts get an identical plot height */
#bar-example, #bar-city{ height:360px !important; }
/* stretch cards so sibling panels in a row share a baseline */
.page-wrapper .row > [class*="col-"]{ display:flex; flex-direction:column; }
.page-wrapper .row > [class*="col-"] > .card{ flex:1 1 auto; }
/* one rhythm everywhere: 18px between every row of boxes */
.card{ margin-bottom:18px !important; }
.col-lg-12 .row:has(.countcard){ margin:0 0 18px 0 !important; }
.page-wrapper .row{ margin-bottom:0 !important; }
/* ===== Pulse 3D: horizontal gutters to match the design ===== */
/* 20px between side-by-side panels (charts, citywise/compare) */
.page-wrapper .row:not(:has(.countcard)){ margin-left:-10px !important; margin-right:-10px !important; }
.page-wrapper .row:not(:has(.countcard)) > [class*="col-"]{ padding-left:10px !important; padding-right:10px !important; }
/* 12px between the three revenue cards, as in the design's grid */
.page-wrapper .row:has(.p3d-rev-k){ margin-left:-6px !important; margin-right:-6px !important; }
.page-wrapper .row:has(.p3d-rev-k) > [class*="col-"]{ padding-left:6px !important; padding-right:6px !important; }
/* ===== Pulse 3D chart tooltip (fixed dark chip, both themes) ===== */
.morris-hover.morris-default-style,.morris-hover{
  background:#26343C !important; border:1px solid #3C4E58 !important; border-radius:8px !important;
  padding:10px 12px !important; box-shadow:0 8px 24px rgba(0,0,0,.35) !important;
  white-space:nowrap !important; text-align:left !important; color:#FFFFFF !important; pointer-events:none;
}
.morris-hover .p3d-tip-m{ font-family:'IBM Plex Sans',sans-serif !important; font-weight:600 !important; font-size:12px !important; color:#FFFFFF !important; margin-bottom:3px !important; }
.morris-hover .p3d-tip-t{ font-family:'IBM Plex Mono',monospace !important; font-size:11.5px !important; color:#FF8CA0 !important; margin-bottom:3px !important; }
.morris-hover .p3d-tip-l{ font-family:'IBM Plex Mono',monospace !important; font-size:11.5px !important; color:#8FC3E0 !important; }
/* ===== Pulse 3D: page titles are titles, not section labels ===== */
.page-wrapper .text-themecolor{ font-size:20px !important; font-weight:600 !important; letter-spacing:0 !important; text-transform:none !important; color:var(--p-text) !important; margin:0 !important; font-family:'IBM Plex Sans',sans-serif !important; }
/* ===== Pulse 3D: project table ===== */
.p3d-actions{ display:inline-flex; gap:10px; align-items:center; }
.p3d-btn-primary{ background:#DD1D44 !important; color:#FFFFFF !important; border:none !important; border-radius:6px !important; padding:8px 16px !important; font-size:13px !important; font-weight:600 !important; text-decoration:none; display:inline-block; }
.p3d-btn-primary:hover{ background:#C31438 !important; color:#fff !important; }
#p3dExportSlot .dt-buttons{ display:inline-flex; margin:0 !important; }
#p3dExportSlot .btn{ background:transparent !important; color:var(--p-sec) !important; border:1px solid var(--p-border) !important; border-radius:6px !important; padding:8px 14px !important; font-size:13px !important; font-weight:500 !important; box-shadow:none !important; }
#p3dExportSlot .btn:hover{ border-color:var(--p-green) !important; color:var(--p-green) !important; }
.p3d-flabel{ font-size:12px; color:var(--p-muted); letter-spacing:.05em; text-transform:uppercase; margin-right:10px; font-weight:400 !important; }
#myTable,#myTable.table{ background:transparent !important; border:none !important; width:100% !important; }
#myTable th,#myTable td{ border:none !important; }
#myTable thead th{ background:transparent !important; border-bottom:1px solid var(--p-border) !important; color:var(--p-muted) !important; font-family:'IBM Plex Mono',monospace !important; font-size:11px !important; font-weight:600 !important; letter-spacing:.07em !important; text-transform:uppercase !important; padding:12px 10px !important; white-space:nowrap; }
#myTable tbody tr,#myTable tbody tr.odd,#myTable tbody tr.even{ background:transparent !important; }
#myTable tbody td{ background:transparent !important; border-bottom:1px solid var(--p-border) !important; color:var(--p-text) !important; font-size:13px !important; padding:10px !important; vertical-align:middle !important; }
#myTable tbody tr:hover td{ background:var(--p-hover) !important; }
.table-striped tbody tr:nth-of-type(odd),.table-striped tbody tr:nth-of-type(even){ background-color:transparent !important; }
#myTable tbody td a{ color:var(--p-text) !important; text-decoration:none; }
#myTable tbody td a:hover{ color:var(--p-accent) !important; }
.p3d-pid{ font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--p-faint); }
#myTable.p3d-fin thead th:nth-child(2),#myTable.p3d-fin thead th:nth-child(3),#myTable.p3d-fin thead th:nth-child(4),
#myTable.p3d-fin tbody td:nth-child(2),#myTable.p3d-fin tbody td:nth-child(3),#myTable.p3d-fin tbody td:nth-child(4){ text-align:right !important; font-family:'IBM Plex Mono',monospace !important; font-size:12.5px !important; }
#myTable.p3d-fin tbody td:nth-child(5){ font-family:'IBM Plex Mono',monospace !important; font-size:12px !important; color:var(--p-muted) !important; }
#myTable.p3d-fin tbody td:nth-child(6){ font-size:12px !important; color:var(--p-muted) !important; }
.dataTables_info{ color:var(--p-faint) !important; font-family:'IBM Plex Mono',monospace !important; font-size:12px !important; }
.dataTables_filter label{ color:var(--p-muted) !important; }
.dataTables_filter input{ background:var(--p-bg) !important; border:1px solid var(--p-border) !important; border-radius:6px !important; color:var(--p-text) !important; font-family:'IBM Plex Mono',monospace !important; font-size:13px !important; padding:7px 12px !important; width:260px !important; margin-left:0 !important; }
.dataTables_paginate .paginate_button{ color:var(--p-sec) !important; }
.dataTables_paginate .paginate_button:hover{ color:var(--p-text) !important; }
.dataTables_paginate .paginate_button.disabled{ color:var(--p-faint) !important; }
.dataTables_length,.dataTables_length label,.dataTables_length select{ color:var(--p-muted) !important; }
/* ===== Pulse 3D: kill the white page-title band ===== */
.page-titles{ background:transparent !important; background-color:transparent !important; box-shadow:none !important; border:none !important; border-radius:0 !important; margin:0 0 16px 0 !important; padding:0 !important; }
/* ===== toolbar: status left, search right ===== */
.p3d-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 16px 0; flex-wrap:wrap; }
.p3d-toolbar form{ margin:0 !important; display:flex; align-items:center; }
#p3dSearchSlot #myTable_filter{ margin:0 !important; }
#p3dSearchSlot label{ display:flex !important; align-items:center; gap:8px; background:var(--p-bg) !important; border:1px solid var(--p-border) !important; border-radius:6px; padding:7px 12px; width:280px; color:var(--p-faint) !important; font-family:'IBM Plex Mono',monospace !important; font-size:13px !important; margin:0 !important; font-weight:400 !important; }
#p3dSearchSlot input{ background:transparent !important; border:none !important; color:var(--p-text) !important; font-family:'IBM Plex Mono',monospace !important; font-size:13px !important; padding:0 !important; width:100% !important; outline:none !important; box-shadow:none !important; }
/* ===== table panel flush, design padding ===== */
.page-wrapper .card:has(#myTable){ overflow:hidden; }
.page-wrapper .card:has(#myTable) > .card-body{ padding:0 !important; }
.page-wrapper .card:has(#myTable) .table-responsive{ border:none !important; }
#myTable thead th{ padding:12px 16px !important; }
#myTable tbody td{ padding:10px 16px !important; }
.dataTables_wrapper > .row.mb-2.p3d-moved{ display:none !important; }
.dataTables_wrapper > .row.mt-3{ padding:12px 16px !important; margin:0 !important; }
/* sort arrows: only on hover / active */
#myTable thead th.sorting:before,#myTable thead th.sorting:after{ opacity:0 !important; }
#myTable thead th.sorting:hover:before,#myTable thead th.sorting:hover:after{ opacity:.45 !important; color:var(--p-faint) !important; }
#myTable thead th.sorting_asc:after,#myTable thead th.sorting_desc:after,
#myTable thead th.sorting_asc:before,#myTable thead th.sorting_desc:before{ opacity:.75 !important; color:var(--p-sec) !important; }
/* ===== Pulse 3D: search box to design spec (260px input, 7px/12px pad) ===== */
#p3dSearchSlot label{ box-sizing:border-box !important; width:286px !important; padding:7px 12px !important; height:auto !important; min-height:0 !important; line-height:1.4 !important; gap:8px !important; }
#p3dSearchSlot input{ flex:1 1 auto !important; width:auto !important; min-width:0 !important; height:auto !important; min-height:0 !important; line-height:1.4 !important; padding:0 !important; margin:0 !important; }
#p3dSearchSlot input::placeholder{ color:var(--p-faint) !important; }
/* rhythm: title row -> toolbar row -> panel */
.page-titles{ margin:0 0 14px !important; }
.p3d-toolbar{ margin:0 0 16px !important; }
/* sort arrows: single, faint, only when active or hovered */
#myTable thead th:before{ display:none !important; }
#myTable thead th.sorting:after{ opacity:0 !important; }
#myTable thead th.sorting:hover:after{ opacity:.4 !important; color:var(--p-faint) !important; }
#myTable thead th.sorting_asc:after,#myTable thead th.sorting_desc:after{ opacity:.7 !important; color:var(--p-sec) !important; }
/* ===== Pulse 3D: Project Info uses the design's flex-column, gap:18px ===== */
.page-wrapper:has(#myTable) > .container-fluid{ display:flex !important; flex-direction:column !important; gap:18px !important; padding:24px !important; }
.page-wrapper:has(#myTable) > .container-fluid > *{ margin:0 !important; }
/* design cell rhythm */
#myTable thead th{ padding:10px 16px !important; }
#myTable tbody td{ padding:10px 16px !important; }
/* design search box: 260px input inside 7px/12px padding */
#p3dSearchSlot label{ width:286px !important; padding:7px 12px !important; }
/* ===== Pulse 3D: uniform header size + clickable rows ===== */
#myTable thead th,
#myTable.p3d-fin thead th:nth-child(2),#myTable.p3d-fin thead th:nth-child(3),#myTable.p3d-fin thead th:nth-child(4){ font-size:11px !important; }
#myTable.p3d-fin thead th:nth-child(2),#myTable.p3d-fin thead th:nth-child(3),#myTable.p3d-fin thead th:nth-child(4){ text-align:right !important; }
#myTable.p3d-fin tbody td:nth-child(2),#myTable.p3d-fin tbody td:nth-child(3),#myTable.p3d-fin tbody td:nth-child(4){ text-align:right !important; font-family:'IBM Plex Mono',monospace !important; font-size:12.5px !important; }
#myTable.p3d-fin tbody tr{ cursor:pointer; }
/* ===== Pulse 3D: Project Report ===== */
.p3d-rpt-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.p3d-filters{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 !important; }
.p3d-filters select{ background:var(--p-bg) !important; border:1px solid var(--p-border) !important; border-radius:6px !important; color:var(--p-text) !important; font-size:12.5px !important; font-family:'IBM Plex Mono',monospace !important; padding:8px 11px !important; height:auto !important; width:auto !important; cursor:pointer; box-shadow:none !important; }
.p3d-rpt-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.p3d-rpt-right{ display:flex; align-items:center; gap:10px; }
.p3d-dropdown{ position:relative; display:inline-block; }
.p3d-dropdown .p3d-menu{ display:none; position:absolute; top:calc(100% + 6px); right:0; width:190px; background:var(--p-panel); border:1px solid var(--p-border); border-radius:8px; box-shadow:0 16px 40px rgba(0,0,0,.35); z-index:60; overflow:hidden; }
.p3d-dropdown.open .p3d-menu{ display:block; }
.p3d-dropdown .p3d-menu a{ display:block; padding:11px 14px; font-size:13px; color:var(--p-sec) !important; text-decoration:none; border-bottom:1px solid var(--p-border); }
.p3d-dropdown .p3d-menu a:last-child{ border-bottom:none; }
.p3d-dropdown .p3d-menu a:hover{ background:var(--p-hover); color:var(--p-text) !important; }
.p3d-dd-toggle{ display:inline-flex !important; align-items:center; gap:7px; cursor:pointer; }
#p3dRptCols .dropdown-toggle{ background:transparent !important; color:var(--p-sec) !important; border:1px solid var(--p-border) !important; border-radius:6px !important; padding:8px 14px !important; font-size:12.5px !important; font-weight:500 !important; box-shadow:none !important; }
#p3dRptCols .dropdown-toggle:hover{ border-color:var(--p-muted) !important; color:var(--p-text) !important; }
#p3dRptCols .dropdown-menu{ background:var(--p-panel) !important; border:1px solid var(--p-border) !important; border-radius:8px !important; box-shadow:0 16px 40px rgba(0,0,0,.35) !important; width:210px; padding:6px 0 !important; right:0; left:auto; }
#p3dRptCols .dropdown-menu label{ display:flex !important; align-items:center; gap:10px; padding:9px 14px !important; font-size:13px !important; color:var(--p-sec) !important; margin:0 !important; cursor:pointer; }
#p3dRptCols .dropdown-menu label:hover{ background:var(--p-hover); color:var(--p-text) !important; }
#p3dRptInfo .dataTables_info{ padding:0 !important; }
#p3dRptSearch #myTable_filter{ margin:0 !important; }
#p3dRptSearch label{ display:flex !important; align-items:center; gap:8px; background:var(--p-bg) !important; border:1px solid var(--p-border) !important; border-radius:6px; padding:7px 12px; width:220px; box-sizing:border-box; color:var(--p-faint) !important; font-family:'IBM Plex Mono',monospace !important; font-size:13px !important; margin:0 !important; font-weight:400 !important; line-height:1.4; }
#p3dRptSearch input{ background:transparent !important; border:none !important; color:var(--p-text) !important; font-family:'IBM Plex Mono',monospace !important; font-size:13px !important; padding:0 !important; flex:1 1 auto; min-width:0; width:auto !important; outline:none !important; box-shadow:none !important; height:auto !important; }
#myTable_wrapper .dt-buttons{ display:none !important; }
#myTable th.p3d-num,#myTable td.p3d-num{ text-align:right !important; font-family:'IBM Plex Mono',monospace !important; }
#myTable td.p3d-num{ font-size:12.5px !important; }
#myTable td.p3d-mut{ font-family:'IBM Plex Mono',monospace !important; font-size:12px !important; color:var(--p-muted) !important; }
/* export dropdown must not inherit left:0 from the top-bar menu rule */
.p3d-dropdown .p3d-menu{ left:auto !important; right:0 !important; }
/* ===== Pulse 3D: show/hide columns tick boxes (design: 17px, crimson when on) ===== */
#p3dRptCols .dropdown-menu input[type=checkbox]{
  -webkit-appearance:none; appearance:none; width:17px; height:17px; border-radius:4px; flex-shrink:0;
  border:1px solid var(--p-border); background:transparent; margin:0; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
}
#p3dRptCols .dropdown-menu input[type=checkbox]:checked{ background:#DD1D44; border-color:#DD1D44; }
#p3dRptCols .dropdown-menu input[type=checkbox]:checked::after{ content:'\2713'; color:#FFFFFF; font-size:11px; font-weight:700; line-height:1; }
#p3dRptCols .dropdown-menu label{ color:var(--p-sec) !important; }
#myTable td:first-child{ max-width:320px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* ===== Pulse 3D: DataTables pagination ===== */
.dataTables_paginate .pagination{ margin:0 !important; justify-content:flex-end; align-items:center; gap:6px; }
.dataTables_paginate .page-item .page-link{
  background:transparent !important; border:1px solid var(--p-border) !important; border-radius:6px !important;
  color:var(--p-sec) !important; font-family:'IBM Plex Mono',monospace !important; font-size:12.5px !important;
  min-width:28px; height:28px; display:flex; align-items:center; justify-content:center; padding:0 8px !important;
  box-shadow:none !important;
}
.dataTables_paginate .page-item .page-link:hover{ border-color:var(--p-muted) !important; color:var(--p-text) !important; background:transparent !important; }
.dataTables_paginate .page-item.active .page-link{ background:#DD1D44 !important; border-color:#DD1D44 !important; color:#FFFFFF !important; }
.dataTables_paginate .page-item.active .page-link:hover{ background:#C31438 !important; border-color:#C31438 !important; }
.dataTables_paginate .page-item.disabled .page-link{ color:var(--p-faint) !important; border-color:transparent !important; }
.dataTables_paginate .page-item:first-child .page-link,
.dataTables_paginate .page-item:last-child .page-link{ border-color:transparent !important; font-family:'IBM Plex Sans',sans-serif !important; }
.dataTables_paginate .page-item:first-child .page-link:hover,
.dataTables_paginate .page-item:last-child .page-link:hover{ color:var(--p-text) !important; }

/* ===== Pulse 3D: filter select widths to design proportions ===== */
.p3d-filters select{ text-overflow:ellipsis; }
.p3d-filters select[name="status"]{ width:100px !important; }
.p3d-filters select[name="director"]{ width:152px !important; }
.p3d-filters select[name="manager"]{ width:150px !important; }
.p3d-filters select[name="city_id"]{ width:132px !important; }
.p3d-filters select[name="price_range"]{ width:160px !important; }
/* ===== Pulse 3D: table panel is flush; only the pager gets padding ===== */
#myTable_wrapper{ padding:0 !important; }
#myTable_wrapper > .row{ margin:0 !important; }
#myTable_wrapper > .row > [class*="col-"]{ padding:0 !important; }
#myTable_paginate{ padding:12px 16px !important; float:none !important; margin:0 !important; }
/* the li behind each page button was painting white */
.dataTables_paginate .pagination,
.dataTables_paginate .page-item{ background:transparent !important; background-color:transparent !important; border:none !important; box-shadow:none !important; }
.dataTables_paginate .page-item .page-link{ margin:0 !important; }
/* the li wrapper was padded 7px 14px, inflating every button box */
.dataTables_paginate .page-item,
.dataTables_paginate li.paginate_button{ padding:0 !important; margin:0 !important; }
.dataTables_paginate .page-item .page-link{ margin:0 !important; }
/* ===== Pulse 3D: Revenue Report ===== */
#reportrange.p3d-daterange{ background:var(--p-bg) !important; border:1px solid var(--p-border) !important; border-radius:6px !important; padding:8px 11px !important; color:var(--p-text) !important; font-size:12.5px !important; font-family:'IBM Plex Mono',monospace !important; cursor:pointer; display:flex; align-items:center; gap:8px; width:auto !important; white-space:nowrap; }
#reportrange .fa-calendar{ color:var(--p-muted); }
#reportrange .fa-caret-down{ color:var(--p-faint); }
.p3d-filters select[name="project_status"]{ width:152px !important; }
#myTable tfoot td{ background:var(--p-panel2) !important; border:none !important; border-top:1px solid var(--p-border) !important; padding:12px 16px !important; color:var(--p-text) !important; }
#myTable tfoot td:first-child{ text-align:right !important; }
#myTable tfoot td h5{ font-size:12.5px !important; font-weight:600 !important; color:var(--p-sec) !important; margin:0 !important; }
#myTable tfoot td:nth-child(2){ font-family:'IBM Plex Mono',monospace !important; font-size:13px !important; font-weight:600 !important; text-align:right !important; }
.daterangepicker{ background:var(--p-panel) !important; border:1px solid var(--p-border) !important; border-radius:10px !important; box-shadow:0 16px 40px rgba(0,0,0,.35) !important; color:var(--p-text) !important; }
.daterangepicker:before,.daterangepicker:after{ display:none !important; }
.daterangepicker .calendar-table{ background:var(--p-panel) !important; border:none !important; }
.daterangepicker td,.daterangepicker th{ color:var(--p-sec) !important; background:transparent !important; border-radius:6px !important; font-family:'IBM Plex Mono',monospace !important; font-size:12px !important; }
.daterangepicker td.off{ color:var(--p-faint) !important; }
.daterangepicker td.available:hover,.daterangepicker th.available:hover{ background:var(--p-hover) !important; color:var(--p-text) !important; }
.daterangepicker td.in-range{ background:var(--p-hover) !important; color:var(--p-text) !important; }
.daterangepicker td.active,.daterangepicker td.active:hover{ background:#DD1D44 !important; color:#FFFFFF !important; }
.daterangepicker .ranges li{ color:var(--p-sec) !important; }
.daterangepicker .ranges li:hover{ background:var(--p-hover) !important; }
.daterangepicker .ranges li.active{ background:#DD1D44 !important; color:#FFFFFF !important; }
.daterangepicker .drp-buttons{ border-top:1px solid var(--p-border) !important; }
.daterangepicker .drp-selected{ color:var(--p-muted) !important; font-family:'IBM Plex Mono',monospace !important; }
.daterangepicker .btn-primary{ background:#DD1D44 !important; border-color:#DD1D44 !important; }
.daterangepicker .btn-default{ background:transparent !important; border:1px solid var(--p-border) !important; color:var(--p-sec) !important; }
.daterangepicker select{ background:var(--p-bg) !important; color:var(--p-text) !important; border:1px solid var(--p-border) !important; }
/* ===== Pulse 3D: project detail ===== */
.p3d-back{ display:inline-block; font-size:12.5px; color:var(--p-muted) !important; font-family:'IBM Plex Mono',monospace; text-decoration:none; margin:0 0 14px 0; }
.p3d-back:hover{ color:#DD1D44 !important; }
.p3d-title-wrap{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.p3d-status-pill{ display:inline-flex; align-items:center; gap:6px; font-size:12px; border:1px solid var(--p-border); border-radius:999px; padding:4px 12px; }
.p3d-status-pill .dot{ width:6px; height:6px; border-radius:50%; display:inline-block; }
.p3d-btn-ghost{ background:transparent !important; color:var(--p-sec) !important; border:1px solid var(--p-border) !important; border-radius:6px !important; padding:8px 14px !important; font-size:13px !important; font-weight:500 !important; text-decoration:none; display:inline-block; box-shadow:none !important; }
.p3d-btn-ghost:hover{ border-color:var(--p-muted) !important; color:var(--p-text) !important; }
h5.pghd{ background:var(--p-panel) !important; border:1px solid var(--p-border) !important; border-radius:10px 10px 0 0 !important; padding:14px 16px !important; margin:0 !important; font-size:11px !important; letter-spacing:.08em !important; text-transform:uppercase !important; color:var(--p-muted) !important; font-weight:600 !important; font-family:'IBM Plex Mono',monospace !important; }
h5.pghd + table.table{ background:var(--p-panel) !important; border:1px solid var(--p-border) !important; border-top:none !important; border-radius:0 0 10px 10px !important; border-collapse:separate !important; border-spacing:0 !important; width:100% !important; margin:0 0 20px 0 !important; }
h5.pghd + table.table th, h5.pghd + table.table td{ border:none !important; border-bottom:1px solid var(--p-border) !important; padding:9px 16px !important; background:transparent !important; vertical-align:middle !important; }
h5.pghd + table.table tbody tr:last-child th, h5.pghd + table.table tbody tr:last-child td{ border-bottom:none !important; }
h5.pghd + table.table:not(:has(thead)) tbody td:first-child{ font-size:12px !important; color:var(--p-muted) !important; font-weight:400 !important; width:150px; }
h5.pghd + table.table:not(:has(thead)) tbody td:not(:first-child),
h5.pghd + table.table:not(:has(thead)) tbody th{ font-size:12.5px !important; font-family:'IBM Plex Mono',monospace !important; color:var(--p-text) !important; font-weight:400 !important; text-align:left !important; }
h5.pghd + table.table thead th{ background:var(--p-panel2) !important; border-bottom:1px solid var(--p-border) !important; color:var(--p-muted) !important; font-family:'IBM Plex Mono',monospace !important; font-size:11px !important; text-transform:uppercase !important; letter-spacing:.07em !important; font-weight:600 !important; padding:10px 16px !important; }
h5.pghd + table.table tbody td{ font-size:12.5px !important; color:var(--p-text) !important; }
h5.pghd + p{ background:var(--p-panel); border:1px solid var(--p-border); border-top:none; border-radius:0 0 10px 10px; padding:14px 16px; margin:0 0 20px 0; color:var(--p-faint) !important; font-size:12.5px; }
.pghd{ color:var(--p-muted) !important; }
/* ===== Pulse 3D: project detail corrections ===== */
/* project number sits at title size, muted mono */
.p3d-title-wrap .p3d-pid{ font-size:20px !important; font-weight:500 !important; color:var(--p-faint) !important; font-family:'IBM Plex Mono',monospace !important; }
/* the card wrapping the detail panels must not paint behind the gaps */
.page-wrapper .card:has(h5.pghd){ background:transparent !important; background-color:transparent !important; border:none !important; box-shadow:none !important; border-radius:0 !important; margin:0 !important; }
.page-wrapper .card:has(h5.pghd) > .card-body{ padding:0 !important; background:transparent !important; }
/* the white footer is not in the design */
footer.footer, .footer{ display:none !important; }
/* ===== Pulse 3D: edit project ===== */
.p3d-rpt-head h3 .p3d-pid{ font-size:20px !important; font-weight:500 !important; color:var(--p-faint) !important; font-family:'IBM Plex Mono',monospace !important; }
.page-wrapper label.card-title{ display:block !important; font-size:11px !important; letter-spacing:.08em !important; text-transform:uppercase !important; color:var(--p-muted) !important; font-weight:600 !important; font-family:'IBM Plex Mono',monospace !important; margin:0 0 12px 0 !important; }
.page-wrapper form label:not(.card-title){ font-size:11px !important; letter-spacing:.06em !important; text-transform:uppercase !important; color:var(--p-muted) !important; font-weight:600 !important; margin-bottom:7px !important; }
.page-wrapper .form-control{ border-radius:6px !important; padding:9px 11px !important; font-family:'IBM Plex Mono',monospace !important; font-size:13px !important; height:auto !important; }
.page-wrapper .form-control:focus{ border-color:#DD1D44 !important; box-shadow:none !important; }
.page-wrapper .form-control[disabled],.page-wrapper .form-control[readonly]{ background:var(--p-panel2) !important; color:var(--p-faint) !important; }
.page-wrapper [style*="dee2e6"],.page-wrapper [style*="#e0e0e0"]{ border-color:var(--p-border) !important; border-radius:10px !important; }
.page-wrapper hr{ border-color:var(--p-border) !important; }
.page-wrapper .btn-outline-secondary.lock-edit{ background:transparent !important; border:1px solid var(--p-border) !important; color:var(--p-sec) !important; border-radius:6px !important; box-shadow:none !important; }
.page-wrapper .btn-outline-secondary.lock-edit:hover{ border-color:var(--p-muted) !important; color:var(--p-text) !important; }
.page-wrapper .sow-act.btn-danger{ background:transparent !important; border:1px solid var(--p-border) !important; color:var(--p-sec) !important; border-radius:6px !important; }
.page-wrapper .sow-act.btn-danger:hover{ border-color:#DD1D44 !important; color:#DD1D44 !important; }
.page-wrapper .sow-act.btn-success{ background:#DD1D44 !important; border-color:#DD1D44 !important; color:#FFFFFF !important; border-radius:6px !important; }
.page-wrapper .sow-act.btn-success:hover{ background:#C31438 !important; border-color:#C31438 !important; }
.page-wrapper .btn-small.btn-success,.page-wrapper .btn[class="btn"]{ background:transparent !important; border:1px solid var(--p-border) !important; color:var(--p-sec) !important; border-radius:6px !important; font-size:13px !important; font-weight:500 !important; box-shadow:none !important; }
.page-wrapper .btn-small.btn-success:hover,.page-wrapper .btn[class="btn"]:hover{ border-color:var(--p-muted) !important; color:var(--p-text) !important; }
.page-wrapper .btn-primary{ background:#DD1D44 !important; border-color:#DD1D44 !important; color:#FFFFFF !important; border-radius:6px !important; }
.page-wrapper .btn-primary:hover{ background:#C31438 !important; border-color:#C31438 !important; }
/* ===== Pulse 3D: edit project — inline light styles ===== */
.page-wrapper [style*="#fafafa"]{ background:var(--p-panel2) !important; border-color:var(--p-border) !important; }
.page-wrapper [style*="#eee"]{ border-color:var(--p-border) !important; }
.page-wrapper [style*="#ef7f1a"],.page-wrapper [style*="#f59f0d"]{ color:var(--p-amber) !important; }
.page-wrapper .lock-edit svg{ stroke:currentColor !important; fill:none !important; }
.page-wrapper .lock-edit svg path,.page-wrapper .lock-edit svg *{ stroke:currentColor !important; fill:none !important; }
/* ===== Pulse 3D: edit project — sections as panels on --bg ===== */
.page-wrapper .card:has(label.card-title){ background:transparent !important; background-color:transparent !important; border:none !important; box-shadow:none !important; border-radius:0 !important; }
.page-wrapper .card:has(label.card-title) > .card-body{ padding:0 !important; background:transparent !important; }
/* each bordered section box becomes a panel */
.page-wrapper [style*="dee2e6"]{ background:var(--p-panel) !important; border:1px solid var(--p-border) !important; border-radius:10px !important; margin-bottom:20px !important; }
/* section tables (scope of work, payment details) become panels too */
.page-wrapper .card:has(label.card-title) table.table{ background:var(--p-panel) !important; border:1px solid var(--p-border) !important; border-radius:10px !important; border-collapse:separate !important; border-spacing:0 !important; margin-bottom:20px !important; overflow:hidden; }
.page-wrapper .card:has(label.card-title) table.table th,
.page-wrapper .card:has(label.card-title) table.table td{ border:none !important; border-bottom:1px solid var(--p-border) !important; background:transparent !important; }
.page-wrapper .card:has(label.card-title) table.table tbody tr:last-child td{ border-bottom:none !important; }
/* activity log panel */
.page-wrapper [style*="#fafafa"]{ background:var(--p-panel) !important; border:1px solid var(--p-border) !important; border-radius:10px !important; }
/* ===== Pulse 3D: edit project — titles inside panels, no rules, dark warning ===== */
.page-wrapper hr{ display:none !important; }
/* section title becomes the panel's header strip */
.page-wrapper label.card-title{ display:block !important; background:var(--p-panel) !important; border:1px solid var(--p-border) !important; border-radius:10px 10px 0 0 !important; padding:14px 16px !important; margin:20px 0 0 0 !important; }
/* the block beneath fuses to it */
.page-wrapper [style*="dee2e6"]{ border-top:none !important; border-radius:0 0 10px 10px !important; margin:0 0 0 0 !important; }
.page-wrapper .card:has(label.card-title) table.table{ border-top:none !important; border-radius:0 0 10px 10px !important; margin:0 !important; }
.page-wrapper [style*="#fafafa"]{ border-top:none !important; border-radius:0 0 10px 10px !important; margin:0 !important; }
/* the scope-of-work reminder, on the design's amber wash */
#sowUpdateReminder{ background:rgba(217,142,43,0.10) !important; border:1px solid rgba(217,142,43,0.45) !important; color:#D98E2B !important; border-radius:8px !important; padding:11px 14px !important; font-size:12.5px !important; font-weight:500 !important; margin:16px 0 4px 0 !important; display:flex; align-items:center; gap:10px; }
#sowUpdateReminder::before{ content:'!'; font-family:'IBM Plex Mono',monospace; font-weight:700; color:#D98E2B; }
.page-wrapper [style*="color:orange"]{ color:#D98E2B !important; }
/* row add/remove buttons: amber remove, green add */
.page-wrapper .sow-act.btn-danger{ background:transparent !important; border:1px solid var(--p-amber) !important; color:var(--p-amber) !important; }
.page-wrapper .sow-act.btn-danger:hover{ background:rgba(217,142,43,0.10) !important; }
.page-wrapper .sow-act.btn-success{ background:transparent !important; border:1px solid var(--p-green) !important; color:var(--p-green) !important; }
.page-wrapper .sow-act.btn-success:hover{ background:rgba(34,160,107,0.10) !important; }
/* ===== Pulse 3D: activity log had near-black inline text colours ===== */
.page-wrapper [style*="color:#333"],.page-wrapper [style*="color: #333"]{ color:var(--p-text) !important; }
.page-wrapper [style*="color:#888"],.page-wrapper [style*="color: #888"]{ color:var(--p-muted) !important; font-family:'IBM Plex Mono',monospace !important; }
.page-wrapper [style*="color:#555"],.page-wrapper [style*="color:#666"],.page-wrapper [style*="color:#999"]{ color:var(--p-muted) !important; }
.page-wrapper [style*="color:#000"],.page-wrapper [style*="color:black"]{ color:var(--p-text) !important; }
/* ===== Pulse 3D: users ===== */
.p3d-users .p3d-panel{ background:var(--p-panel); border:1px solid var(--p-border); border-radius:10px; overflow-x:auto; }
.p3d-uhead,.p3d-urow{ display:grid; grid-template-columns:minmax(240px,1.6fr) 150px 90px 190px 70px; gap:12px; min-width:800px; padding:10px 16px; align-items:center; }
.p3d-uhead{ border-bottom:1px solid var(--p-border); font-size:11px; letter-spacing:.07em; text-transform:uppercase; color:var(--p-muted); font-weight:600; font-family:'IBM Plex Mono',monospace; }
.p3d-urow{ border-bottom:1px solid var(--p-border); }
.p3d-urow:hover{ background:var(--p-hover); }
.p3d-user{ display:flex; align-items:center; gap:11px; min-width:0; }
.p3d-uav{ width:30px; height:30px; border-radius:50%; background:var(--p-avatar); color:#FFFFFF; display:flex; align-items:center; justify-content:center; font-size:11.5px; font-weight:600; font-family:'IBM Plex Mono',monospace; flex-shrink:0; }
.p3d-uinfo{ display:flex; flex-direction:column; gap:1px; min-width:0; }
.p3d-uinfo a{ font-size:13px; font-weight:500; color:var(--p-text) !important; text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.p3d-uinfo a:hover{ color:var(--p-accent) !important; }
.p3d-uemail{ font-size:11.5px; color:var(--p-faint); font-family:'IBM Plex Mono',monospace; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.p3d-rolepill{ justify-self:start; font-size:11px; font-weight:600; letter-spacing:.04em; padding:3px 9px; border-radius:999px; border:1px solid; white-space:nowrap; }
.p3d-ustatus{ display:flex; align-items:center; gap:6px; font-size:12px; color:#22A06B; }
.p3d-ustatus .dot{ width:6px; height:6px; border-radius:50%; background:#22A06B; }
.p3d-ulast{ font-size:12px; color:var(--p-muted); font-family:'IBM Plex Mono',monospace; }
.p3d-never{ color:var(--p-faint); font-style:italic; }
.p3d-uedit{ text-align:right; }
.p3d-uedit a{ font-size:12.5px; color:var(--p-sec) !important; text-decoration:none; }
.p3d-uedit a:hover{ color:var(--p-accent) !important; }
.p3d-ucount{ padding:12px 16px; font-size:12px; color:var(--p-faint); font-family:'IBM Plex Mono',monospace; }
.p3d-usearch{ display:flex; align-items:center; gap:8px; background:var(--p-bg); border:1px solid var(--p-border); border-radius:6px; padding:7px 12px; width:280px; box-sizing:border-box; }
.p3d-usearch svg{ color:var(--p-faint); flex-shrink:0; }
.p3d-usearch input{ background:transparent; border:none; outline:none; color:var(--p-text); font-family:'IBM Plex Mono',monospace; font-size:13px; flex:1; min-width:0; }
.p3d-usearch input::placeholder{ color:var(--p-faint); }
.p3d-chips{ display:flex; align-items:center; gap:8px; }
.p3d-chip{ background:transparent; border:1px solid var(--p-border); border-radius:999px; padding:6px 14px; font-size:12.5px; color:var(--p-sec); cursor:pointer; font-family:'IBM Plex Sans',sans-serif; }
.p3d-chip:hover{ color:var(--p-text); border-color:var(--p-muted); }
.p3d-chip.active{ background:#DD1D44 !important; border-color:#DD1D44 !important; color:#FFFFFF !important; }
/* ===== Pulse 3D: users — chips row, bordered edit ===== */
.p3d-chips-row{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 18px 0; }
.p3d-uedit a{ display:inline-block; border:1px solid var(--p-border); border-radius:6px; padding:4px 12px; font-size:12px; font-weight:500; color:var(--p-sec) !important; text-decoration:none; }
.p3d-uedit a:hover{ border-color:var(--p-muted); color:var(--p-text) !important; background:transparent; }
/* ===== Pulse 3D: manage cities ===== */
.p3d-cities{ max-width:860px; }
.p3d-cities .p3d-panel{ background:var(--p-panel); border:1px solid var(--p-border); border-radius:10px; overflow:hidden; }
.mc-table{ width:100%; border-collapse:separate !important; border-spacing:0 !important; background:transparent !important; margin:0 !important; }
.mc-table th{ background:transparent !important; border:none !important; border-bottom:1px solid var(--p-border) !important; padding:10px 16px !important; font-size:11px !important; letter-spacing:.07em; text-transform:uppercase; color:var(--p-muted) !important; font-weight:600 !important; font-family:'IBM Plex Mono',monospace !important; text-align:left; }
.mc-table td{ background:transparent !important; border:none !important; border-bottom:1px solid var(--p-border) !important; padding:10px 16px !important; }
.mc-table tbody tr:last-child td{ border-bottom:none !important; }
.mc-table tbody tr:hover td{ background:var(--p-hover) !important; }
.mc-table td:nth-child(1){ font-family:'IBM Plex Mono',monospace !important; font-size:12px !important; color:var(--p-faint) !important; width:56px; }
.mc-table td:nth-child(2){ font-size:13px !important; font-weight:500 !important; color:var(--p-text) !important; }
.mc-table td:nth-child(3){ font-size:12.5px !important; color:var(--p-sec) !important; }
.mc-empty{ padding:30px !important; text-align:center; color:var(--p-faint) !important; font-style:italic; }
.mc-count{ font-size:12px; color:var(--p-faint); font-family:'IBM Plex Mono',monospace; }
.mc-searchbox{ display:flex; align-items:center; gap:8px; background:var(--p-bg); border:1px solid var(--p-border); border-radius:6px; padding:7px 12px; width:250px; box-sizing:border-box; }
.mc-searchbox .slash{ color:var(--p-faint); font-family:'IBM Plex Mono',monospace; font-size:13px; }
.mc-searchbox input{ background:transparent !important; border:none !important; outline:none !important; color:var(--p-text) !important; font-family:'IBM Plex Mono',monospace !important; font-size:13px !important; flex:1; min-width:0; padding:0 !important; }
.mc-searchbox input::placeholder{ color:var(--p-faint); }
/* modals */
.mc-modal-bg{ background:rgba(0,0,0,.6) !important; }
.mc-modal{ background:var(--p-panel) !important; border:1px solid var(--p-border) !important; border-radius:10px !important; box-shadow:0 24px 60px rgba(0,0,0,.45) !important; color:var(--p-text); font-family:'IBM Plex Sans',sans-serif !important; }
.mc-modal-header{ padding:16px 20px !important; border-bottom:1px solid var(--p-border) !important; background:transparent !important; }
.mc-modal-header h4{ font-size:11px !important; letter-spacing:.08em; text-transform:uppercase; color:var(--p-muted) !important; font-weight:600 !important; font-family:'IBM Plex Mono',monospace !important; }
.mc-modal-header.ok h4{ color:#22A06B !important; }
.mc-modal-body{ padding:18px 20px !important; }
.mc-modal-body label{ font-size:11px !important; letter-spacing:.06em; text-transform:uppercase; color:var(--p-muted) !important; font-weight:600 !important; }
.mc-modal-body input,.mc-modal-body select{ background:var(--p-bg) !important; border:1px solid var(--p-border) !important; border-radius:6px !important; padding:9px 11px !important; color:var(--p-text) !important; font-size:13px !important; font-family:'IBM Plex Mono',monospace !important; }
.mc-modal-body input:focus,.mc-modal-body select:focus{ border-color:#DD1D44 !important; outline:none; }
.mc-modal-footer{ padding:12px 20px !important; border-top:1px solid var(--p-border) !important; }
.mc-btn{ border-radius:6px !important; padding:8px 16px !important; font-size:13px !important; font-weight:600 !important; }
.mc-btn-primary{ background:#DD1D44 !important; color:#FFFFFF !important; }
.mc-btn-primary:hover{ background:#C31438 !important; }
.mc-btn-secondary{ background:transparent !important; border:1px solid var(--p-border) !important; color:var(--p-sec) !important; }
.mc-btn-secondary:hover{ border-color:var(--p-muted) !important; color:var(--p-text) !important; }
.mc-btn-link{ background:none !important; color:#DD1D44 !important; }
.mc-error{ color:#DD1D44 !important; font-size:12.5px; }
.mc-ok-text{ font-size:13px; color:var(--p-sec); }
/* ===== Pulse 3D: fetch zoho timesheet ===== */
#myTable input[type="checkbox"]{ -webkit-appearance:none !important; appearance:none !important; width:17px !important; height:17px !important; border-radius:4px !important; border:1px solid var(--p-border) !important; background:transparent !important; cursor:pointer; display:inline-flex !important; align-items:center; justify-content:center; margin:0 !important; }
#myTable input[type="checkbox"]:hover{ border-color:var(--p-muted) !important; }
#myTable input[type="checkbox"]:checked{ background:#DD1D44 !important; border-color:#DD1D44 !important; }
#myTable input[type="checkbox"]:checked::after{ content:'\2713'; color:#FFFFFF; font-size:11px; font-weight:700; line-height:1; }
#myTable tbody tr:has(input[type="checkbox"]:checked){ background:var(--p-hover) !important; }
#myTable tbody tr:has(input[type="checkbox"]:checked) td{ background:transparent !important; }
#myTable thead th:first-child,#myTable tbody td:first-child{ width:46px; }
.p3d-yes{ display:inline-flex; align-items:center; gap:6px; font-size:12px; color:#22A06B; }
.p3d-yes .dot{ width:6px; height:6px; border-radius:50%; background:#22A06B; }
#fetchAllProgress{ color:var(--p-muted) !important; font-size:12px; font-family:'IBM Plex Mono',monospace; }
#p3dZohoActions{ display:inline-flex; align-items:center; gap:10px; }
/* ===== Pulse 3D: user management (add / edit) ===== */
.p3d-um{ max-width:760px; display:flex; flex-direction:column; gap:18px; }
.p3d-crumb{ display:flex; align-items:center; gap:10px; }
.p3d-crumb a{ font-size:13px; color:var(--p-faint) !important; text-decoration:none; }
.p3d-crumb a:hover{ color:var(--p-text) !important; }
.p3d-crumb .sep{ color:var(--p-faint); font-size:12px; }
.p3d-crumb .cur{ font-size:13px; color:var(--p-text); }
.p3d-um h1{ margin:0 !important; font-size:20px !important; font-weight:600 !important; color:var(--p-text) !important; }
.p3d-um .lede{ font-size:12.5px; color:var(--p-faint); }
.p3d-umcard{ background:var(--p-panel); border:1px solid var(--p-border); border-radius:10px; }
.p3d-umhead{ padding:14px 20px; border-bottom:1px solid var(--p-border); font-size:11px; letter-spacing:.07em; text-transform:uppercase; color:var(--p-muted); font-weight:600; font-family:'IBM Plex Mono',monospace; }
.p3d-umsub{ padding:14px 20px; border-bottom:1px solid var(--p-border); display:flex; flex-direction:column; gap:4px; }
.p3d-umsub .t{ font-size:11px; letter-spacing:.07em; text-transform:uppercase; color:var(--p-muted); font-weight:600; font-family:'IBM Plex Mono',monospace; }
.p3d-umsub .d{ font-size:12px; color:var(--p-faint); }
.p3d-umgrid{ padding:20px; display:grid; grid-template-columns:1fr 1fr; gap:16px 20px; }
.p3d-um form label,.p3d-umgrid label{ display:flex !important; flex-direction:column; gap:7px; margin:0 !important; text-transform:none !important; letter-spacing:0 !important; font-weight:500 !important; }
.p3d-umgrid label > span{ font-size:12px !important; color:var(--p-sec) !important; font-weight:500 !important; text-transform:none !important; letter-spacing:0 !important; }
.p3d-umgrid input,.p3d-umgrid select{ background:var(--p-bg) !important; border:1px solid var(--p-border) !important; border-radius:6px !important; padding:10px 12px !important; color:var(--p-text) !important; font-size:13px !important; height:auto !important; width:100% !important; box-sizing:border-box; box-shadow:none !important; }
.p3d-umgrid .mono{ font-family:'IBM Plex Mono',monospace !important; }
.p3d-umgrid input:focus,.p3d-umgrid select:focus{ border-color:#DD1D44 !important; outline:none; }
.p3d-umpw{ display:flex; align-items:center; background:var(--p-bg); border:1px solid var(--p-border); border-radius:6px; }
.p3d-umpw input{ background:transparent !important; border:none !important; padding:10px 12px !important; color:var(--p-text) !important; font-size:13px !important; font-family:'IBM Plex Mono',monospace !important; flex:1; min-width:0; width:auto !important; }
.p3d-umpw .tog{ padding:0 12px; cursor:pointer; color:var(--p-faint); font-size:12px; user-select:none; }
.p3d-umpw .tog:hover{ color:var(--p-text); }
.p3d-umpw:focus-within{ border-color:#DD1D44; }
.p3d-umerr{ padding:0 20px 16px; font-size:12.5px; color:#DD1D44; font-family:'IBM Plex Mono',monospace; display:none; }
.p3d-umfoot{ padding:16px 20px; border-top:1px solid var(--p-border); display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.p3d-umfoot.split{ justify-content:space-between; }
.p3d-umfoot .right{ display:flex; align-items:center; gap:10px; }
.p3d-btn-danger{ background:transparent; color:#DD1D44; border:1px solid rgba(221,29,68,.45); border-radius:6px; padding:9px 16px; font-size:13px; font-weight:500; cursor:pointer; font-family:'IBM Plex Sans',sans-serif; }
.p3d-btn-danger:hover{ background:rgba(221,29,68,.10); border-color:#DD1D44; }
.p3d-umtop{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.p3d-umid{ display:flex; align-items:center; gap:14px; }
.p3d-umavatar{ width:44px; height:44px; border-radius:50%; color:#FFFFFF; display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:600; font-family:'IBM Plex Mono',monospace; flex-shrink:0; }
.p3d-umemail{ font-size:12px; color:var(--p-faint); font-family:'IBM Plex Mono',monospace; }
.p3d-umactive{ display:flex; align-items:center; gap:6px; font-size:12px; color:#22A06B; }
.p3d-umactive .dot{ width:6px; height:6px; border-radius:50%; background:#22A06B; }
/* the Show/Hide toggle must not inherit the uppercase label rule */
.p3d-umpw .tog{ text-transform:none !important; letter-spacing:0 !important; font-weight:400 !important; }

/* ===== Pulse 3D: uniform filter-row control heights ===== */
.p3d-filters{ align-items:center !important; }
#reportrange.p3d-daterange{ height:36px !important; box-sizing:border-box !important; padding:0 11px !important; }
.p3d-filters select{ height:36px !important; box-sizing:border-box !important; padding:0 11px !important; line-height:normal !important; }
.p3d-filters button[type="submit"], .p3d-filters .p3d-btn-primary{ height:36px !important; box-sizing:border-box !important; padding:0 16px !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; }

/* ===== Pulse 3D: Safari — native appearance ignores height on form controls ===== */
.p3d-filters select{
  -webkit-appearance:none !important; -moz-appearance:none !important; appearance:none !important;
  padding:0 30px 0 11px !important;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C919C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 10px center !important;
  background-size:9px 9px !important;
}
.p3d-filters button[type="submit"], .p3d-filters .p3d-btn-primary{
  -webkit-appearance:none !important; appearance:none !important;
  display:inline-block !important;
  line-height:36px !important;
  padding:0 16px !important;
}

/* ===== Pulse 3D: form-page selects ignore padding under native appearance ===== */
.page-wrapper select.form-control{
  -webkit-appearance:none !important; -moz-appearance:none !important; appearance:none !important;
  height:auto !important;
  padding:9px 30px 9px 11px !important;
  line-height:normal !important;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C919C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 10px center !important;
  background-size:9px 9px !important;
}
