.hts-pm{--hts-pm-navy:#0b284a;--hts-pm-gold:#aa8437;background:#fff;color:#243348;border:1px solid #e0e6eb;border-radius:10px;overflow:hidden;font:inherit;line-height:1.5;max-width:1200px;margin:1.5rem auto;box-shadow:0 5px 24px #132b4610}.hts-pm *{box-sizing:border-box}.hts-pm-header{display:flex;align-items:center;gap:22px;min-height:120px;padding:24px 30px;background:#fff;border-bottom:4px solid var(--hts-pm-gold)}.hts-pm-logo{max-width:175px;max-height:78px;object-fit:contain}.hts-pm-header h2{color:var(--hts-pm-navy);margin:0;font-size:1.65rem}.hts-pm-header p{margin:4px 0 0;color:#637086}.hts-pm-logout{margin-left:auto;color:var(--hts-pm-navy);font-weight:600}.hts-pm-body{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:370px}.hts-pm-side{padding:24px 15px;background:#f5f7fa;border-right:1px solid #e0e6eb}.hts-pm-greeting{padding:0 14px 20px;color:#56647a}.hts-pm-side nav{display:grid;gap:5px}.hts-pm-side nav a{display:block;text-decoration:none;color:var(--hts-pm-navy);padding:11px 14px;border-radius:7px;font-weight:600}.hts-pm-side nav a:hover,.hts-pm-side nav a.active{background:var(--hts-pm-navy);color:#fff}.hts-pm-main{padding:28px;min-width:0}.hts-pm-main h3{color:var(--hts-pm-navy);font-size:1.55rem;margin:0 0 8px}.hts-pm-main h4{margin:0 0 8px;color:var(--hts-pm-navy)}.hts-pm-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:25px 0}.hts-pm-stats>div{border:1px solid #e0e6eb;padding:20px;border-radius:8px}.hts-pm-stats strong{display:block;font-size:2rem;color:var(--hts-pm-navy)}.hts-pm-stats span,.hts-pm-secondary{color:#66758b;font-size:.91em}.hts-pm-item{border:1px solid #e1e6eb;border-radius:9px;padding:20px;margin:15px 0;overflow-wrap:anywhere}.hts-pm-item-top{display:flex;gap:12px;align-items:start;justify-content:space-between}.hts-pm-pill{background:#eaf0f6;color:var(--hts-pm-navy);border-radius:24px;padding:4px 12px;font-size:.83em;white-space:nowrap}.hts-pm-description p{margin:8px 0}.hts-pm-meter{background:#e9eef3;border-radius:12px;height:10px;overflow:hidden;margin:18px 0 8px}.hts-pm-meter span{height:100%;display:block;background:var(--hts-pm-gold)}.hts-pm-update{background:#f6f8fa;padding:14px;border-left:3px solid var(--hts-pm-gold)}.hts-pm-update p{margin:6px 0 0}.hts-pm-form{max-width:720px}.hts-pm-form label{display:block;font-weight:600;margin:22px 0}.hts-pm-form input,.hts-pm-form textarea{display:block;width:100%;padding:12px;margin-top:7px;border:1px solid #bdc8d4;border-radius:6px;background:#fff;color:#223}.hts-pm-form button,.hts-pm #wp-submit{background:var(--hts-pm-navy);border:0;color:white;padding:12px 22px;border-radius:6px;cursor:pointer;font-weight:600}.hts-pm-form button:hover,.hts-pm #wp-submit:hover{background:#224d7c}.hts-pm-welcome{padding:35px;max-width:560px}.hts-pm-welcome h3{color:var(--hts-pm-navy)}.hts-pm-welcome #loginform input:not([type=checkbox]){max-width:100%;width:100%}.hts-pm-empty{background:#f7f9fb;border:1px dashed #cad5df;padding:20px;border-radius:6px}.hts-pm-notice{border-left:4px solid var(--hts-pm-gold);background:#f8f7f1;padding:12px 16px;margin-bottom:22px}.hts-pm-footer{padding:16px 30px;background:#f5f7fa;color:#617087;text-align:center;border-top:1px solid #e0e6eb;font-size:.85em}@media(max-width:700px){.hts-pm-header{flex-wrap:wrap;padding:18px}.hts-pm-logout{margin-left:0}.hts-pm-body{display:block}.hts-pm-side{border-right:0;border-bottom:1px solid #e0e6eb}.hts-pm-side nav{grid-template-columns:repeat(2,minmax(0,1fr))}.hts-pm-main{padding:18px}.hts-pm-item-top{display:block}.hts-pm-pill{display:inline-block}.hts-pm-stats{gap:10px}}

/* v0.1.1 portal appearance controls */
.hts-pm{background-color:var(--hts-pm-background,#fff);color:var(--hts-pm-text,#243348);background-size:cover;background-position:center}.hts-pm-header{background-size:cover;background-position:center}.hts-pm-side{background:var(--hts-pm-sidebar,#f5f7fa)}.hts-pm-main{background:var(--hts-pm-background,#fff)}
/* v0.1.4 customer dashboard */
.hts-pm-dashboard-section{padding:22px;margin:0 0 18px;clear:both;overflow:hidden}
.hts-pm-dashboard-section h3{font-size:1.23rem;margin:0 0 10px}
.hts-pm-section-image{display:block;max-width:100%;max-height:200px;object-fit:contain;margin:0 0 12px}
.hts-pm-summary-project{padding:12px 0;border-bottom:1px solid #dce4eb}
.hts-pm-summary-project>span{float:right;color:#56647a}
.hts-pm-summary-project .hts-pm-meter{margin:8px 0 3px;height:7px}
.hts-pm-dashboard-section .hts-pm-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin:8px 0}
.hts-pm-dashboard-section .hts-pm-stats>div{padding:12px}
@media(max-width:700px){.hts-pm{width:100%!important}.hts-pm-dashboard-section .hts-pm-stats{grid-template-columns:1fr}}

/* v0.1.5: customer dashboard tab navigation */
.hts-pm-section-tabs{display:flex;gap:6px;flex-wrap:wrap;align-items:stretch;margin:0 0 20px;padding:0 0 12px;border-bottom:2px solid #dce4eb}
.hts-pm-section-tab{display:inline-flex;align-items:center;min-height:40px;padding:9px 13px;border:1px solid #dce4eb;border-radius:7px;background:#f7f9fb;color:var(--hts-pm-navy);text-decoration:none!important;font-size:.91em;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.hts-pm-section-tab:hover,.hts-pm-section-tab:focus-visible{border-color:var(--hts-pm-gold);background:#fdfaf2;color:var(--hts-pm-navy)}
.hts-pm-section-tab.active,.hts-pm-section-tab[aria-current="page"]{background:var(--hts-pm-navy);border-color:var(--hts-pm-navy);color:#fff!important}
.hts-pm-section-tab:focus-visible{outline:2px solid var(--hts-pm-gold);outline-offset:2px}
@media(max-width:700px){.hts-pm-section-tabs{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;padding-bottom:14px}.hts-pm-section-tab{white-space:nowrap;flex:0 0 auto}}


/* v0.1.6: connected navigation tabs (not rounded action buttons).
 * A horizontally scrollable single row keeps every tab accessible at narrow widths. */
.hts-pm-section-tabs{
 display:flex;flex-wrap:nowrap;align-items:stretch;gap:0;
 overflow-x:auto;overflow-y:hidden;max-width:100%;
 margin:0 0 20px;padding:0 0 0 0;
 border-bottom:2px solid var(--hts-pm-gold,#aa8437);
 scrollbar-width:thin;scrollbar-color:#bec9d8 transparent;
 -webkit-overflow-scrolling:touch;
}
.hts-pm-section-tab{
 position:relative;flex:0 0 auto;display:inline-flex;align-items:center;
 min-height:42px;margin:0 3px -2px 0;padding:10px 16px;white-space:nowrap;
 border:1px solid #d6e0e9;border-bottom:2px solid var(--hts-pm-gold,#aa8437);
 border-radius:7px 7px 0 0;background:#f5f7fa;
 color:var(--hts-pm-navy,#0b284a);font-size:.93em;font-weight:600;
 line-height:1.3;text-decoration:none!important;box-shadow:none;
}
.hts-pm-section-tab:hover{background:#eaf0f6;color:var(--hts-pm-navy,#0b284a);border-color:#b9c6d4;border-bottom-color:var(--hts-pm-gold,#aa8437)}
.hts-pm-section-tab.active,.hts-pm-section-tab[aria-current="page"]{
 z-index:1;background:var(--hts-pm-background,#fff);
 color:var(--hts-pm-navy,#0b284a)!important;
 border-color:var(--hts-pm-gold,#aa8437);border-bottom:2px solid var(--hts-pm-background,#fff);
 box-shadow:inset 0 3px 0 var(--hts-pm-gold,#aa8437);
}
.hts-pm-section-tab:focus-visible{outline:2px solid var(--hts-pm-gold,#aa8437);outline-offset:-3px}
@media(max-width:700px){.hts-pm-section-tabs{padding-bottom:0;flex-wrap:nowrap}.hts-pm-section-tab{min-height:44px;padding:10px 13px;white-space:nowrap}}

/* v0.1.7: visible tab-strip scroller controls */
.hts-pm-tabs-shell{display:flex;align-items:stretch;min-width:0;max-width:100%;margin-bottom:20px;border-bottom:2px solid var(--hts-pm-gold,#aa8437)}
.hts-pm-tabs-shell .hts-pm-section-tabs{flex:1 1 auto;min-width:0;max-width:none;margin:0;border-bottom:0;scrollbar-width:none;scroll-behavior:smooth}
.hts-pm-tabs-shell .hts-pm-section-tabs::-webkit-scrollbar{display:none}
.hts-pm-tabs-arrow{flex:0 0 38px;display:flex;align-items:center;justify-content:center;border:1px solid #d6e0e9;border-bottom:0;background:#f5f7fa;color:var(--hts-pm-navy,#0b284a);font-size:28px;line-height:1;cursor:pointer;padding:0;min-height:42px}
.hts-pm-tabs-prev{border-radius:6px 0 0 0}
.hts-pm-tabs-next{border-radius:0 6px 0 0}
.hts-pm-tabs-arrow:hover:not(:disabled){background:#eaf0f6}
.hts-pm-tabs-arrow:disabled{opacity:.35;cursor:default}
.hts-pm-tabs-arrow:focus-visible{outline:2px solid var(--hts-pm-gold,#aa8437);outline-offset:-3px}
@media(max-width:700px){.hts-pm-tabs-arrow{flex-basis:34px;min-height:44px}}

/* v0.1.8: All section navigation moved to the existing left portal menu. */
.hts-pm-side nav{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}
.hts-pm-side nav a{overflow-wrap:anywhere;line-height:1.35}
@media(max-width:700px){.hts-pm-side nav{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

/* v0.1.9: nested project links in the customer sidebar */
.hts-pm-side nav .hts-pm-nav-group{display:grid;gap:4px;min-width:0}
.hts-pm-side nav .hts-pm-nav-group>a.hts-pm-nav-child{padding-left:32px;font-size:.92em;font-weight:500;border-left:2px solid var(--hts-pm-gold,#aa8437);border-radius:0 7px 7px 0;margin-left:12px}
.hts-pm-side nav .hts-pm-nav-group>a.parent-current{color:var(--hts-pm-navy);background:rgba(11,40,74,.075)}
.hts-pm-side nav .hts-pm-nav-group>a.hts-pm-nav-child.active{background:var(--hts-pm-navy);color:#fff}
@media(max-width:700px){.hts-pm-side nav .hts-pm-nav-group>a.hts-pm-nav-child{padding-left:24px}}

/* v0.1.11 - collapsible, accessible customer sidebar submenus */
.hts-pm-side nav .hts-pm-nav-heading{display:flex;align-items:stretch;min-width:0;gap:2px}
.hts-pm-side nav .hts-pm-nav-heading>a{flex:1;min-width:0}
.hts-pm-side nav .hts-pm-nav-toggle{align-self:stretch;flex:0 0 36px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--hts-pm-navy,#0b284a);font:inherit;cursor:pointer}
.hts-pm-side nav .hts-pm-nav-toggle:hover{background:rgba(11,40,74,.09)}
.hts-pm-side nav .hts-pm-nav-toggle:focus-visible{outline:2px solid var(--hts-pm-gold,#aa8437);outline-offset:1px}
.hts-pm-side nav .hts-pm-nav-toggle .hts-pm-nav-chevron{display:block;transition:transform .15s ease;transform:rotate(-90deg);font-size:15px}
.hts-pm-side nav .hts-pm-nav-toggle[aria-expanded="true"] .hts-pm-nav-chevron{transform:rotate(0)}
.hts-pm-side nav .hts-pm-nav-children{display:grid;gap:4px;min-width:0}
.hts-pm-side nav .hts-pm-nav-children[hidden]{display:none!important}
.hts-pm-side nav .hts-pm-nav-children>a.hts-pm-nav-child{padding-left:32px;font-size:.92em;font-weight:500;border-left:2px solid var(--hts-pm-gold,#aa8437);border-radius:0 7px 7px 0;margin-left:12px}
.hts-pm-side nav .hts-pm-nav-children>a.hts-pm-nav-child.active{background:var(--hts-pm-navy);color:#fff}
@media(max-width:700px){.hts-pm-side nav .hts-pm-nav-children>a.hts-pm-nav-child{padding-left:24px}}
@media(prefers-reduced-motion:reduce){.hts-pm-side nav .hts-pm-nav-toggle .hts-pm-nav-chevron{transition:none}}

/* v0.1.12: Projects / Requests headings are full-width submenu toggles, not links. */
.hts-pm-side nav .hts-pm-nav-heading>.hts-pm-nav-parent{width:100%;flex:1 1 auto;display:flex;justify-content:space-between;align-items:center;min-height:43px;padding:11px 14px;border:0;border-radius:7px;text-align:left;font-weight:600;line-height:1.35;background:transparent;color:var(--hts-pm-navy,#0b284a);cursor:pointer}
.hts-pm-side nav .hts-pm-nav-heading>.hts-pm-nav-parent:hover{background:rgba(11,40,74,.09)}
.hts-pm-side nav .hts-pm-nav-heading>.hts-pm-nav-parent:focus-visible{outline:2px solid var(--hts-pm-gold,#aa8437);outline-offset:1px}
.hts-pm-side nav .hts-pm-nav-heading>.hts-pm-nav-parent .hts-pm-nav-chevron{display:inline-block;transition:transform .15s ease;transform:rotate(-90deg);font-size:15px}
.hts-pm-side nav .hts-pm-nav-heading>.hts-pm-nav-parent[aria-expanded="true"] .hts-pm-nav-chevron{transform:rotate(0)}
@media(prefers-reduced-motion:reduce){.hts-pm-side nav .hts-pm-nav-heading>.hts-pm-nav-parent .hts-pm-nav-chevron{transition:none}}

/* v0.1.13: Keep expandable parent labels horizontal. Rotate only arrow glyphs. */
.hts-pm-side nav .hts-pm-nav-heading>.hts-pm-nav-parent .hts-pm-nav-parent-title{display:block;flex:1 1 auto;min-width:0;transform:none!important;rotate:none!important;writing-mode:horizontal-tb!important;text-orientation:mixed!important;white-space:normal;text-align:left;font-size:inherit;line-height:1.35;transition:none!important}
.hts-pm-side nav .hts-pm-nav-heading>.hts-pm-nav-parent .hts-pm-nav-chevron{flex:0 0 auto;margin-left:10px;transform-origin:center center}

/* v0.1.14: portal typography and links are controlled by Appearance,
   overriding theme/global anchor and heading colors only within this portal. */
.hts-pm, .hts-pm p, .hts-pm li, .hts-pm small, .hts-pm label,
.hts-pm .hts-pm-greeting, .hts-pm .hts-pm-greeting strong,
.hts-pm .hts-pm-secondary, .hts-pm .hts-pm-summary-project>span,
.hts-pm .hts-pm-description, .hts-pm .hts-pm-dashboard-section p,
.hts-pm .hts-pm-item p, .hts-pm .hts-pm-update p,
.hts-pm .hts-pm-stats span { color:var(--hts-pm-text,#243348)!important; }
.hts-pm h1, .hts-pm h2, .hts-pm h3, .hts-pm h4, .hts-pm h5, .hts-pm h6,
.hts-pm .hts-pm-stats strong {color:var(--hts-pm-navy,#0b284a)!important;}
.hts-pm a:not(.hts-pm-section-tab):not(.active):not([aria-current="page"]),
.hts-pm a:not(.hts-pm-section-tab):not(.active):not([aria-current="page"]):link {color:var(--hts-pm-link,var(--hts-pm-navy))!important;}
.hts-pm .hts-pm-main a:not(.active):visited,
.hts-pm .hts-pm-dashboard-section a:not(.active):visited,
.hts-pm .hts-pm-welcome a:visited {color:var(--hts-pm-link-visited,var(--hts-pm-link))!important;}
.hts-pm a:not(.active):hover, .hts-pm a:not(.active):focus-visible {color:var(--hts-pm-link-hover,var(--hts-pm-gold))!important;}
.hts-pm .hts-pm-side nav a.active,
.hts-pm .hts-pm-side nav a[aria-current="page"],
.hts-pm .hts-pm-side nav a.active:hover,
.hts-pm .hts-pm-side nav a.active:visited {color:#fff!important;background:var(--hts-pm-navy,#0b284a)!important;}
.hts-pm .hts-pm-side nav .hts-pm-nav-parent,
.hts-pm .hts-pm-side nav .hts-pm-nav-parent .hts-pm-nav-parent-title {color:var(--hts-pm-navy,#0b284a)!important;}
.hts-pm .hts-pm-form button, .hts-pm #wp-submit {background:var(--hts-pm-navy,#0b284a)!important;color:#fff!important;}
.hts-pm .hts-pm-form button:hover, .hts-pm #wp-submit:hover {background:var(--hts-pm-gold,#aa8437)!important;color:#fff!important;}
.hts-pm .hts-pm-form input, .hts-pm .hts-pm-form textarea {color:var(--hts-pm-text,#243348)!important;}
.hts-pm .hts-pm-header p, .hts-pm .hts-pm-footer {color:var(--hts-pm-text,#243348)!important;}

/* 0.1.16 Customer appointment history */
.hts-pm .hts-pm-appointment-group{margin-top:24px}
.hts-pm .hts-pm-appointment-group h4{margin:0 0 10px;color:var(--hts-pm-navy,var(--hts-pm-primary,#0b284a))}
.hts-pm .hts-pm-appointment-list{display:grid;gap:10px}
.hts-pm .hts-pm-appointment-item{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px;border:1px solid #dce4eb;border-radius:8px;background:transparent;color:inherit}
.hts-pm .hts-pm-appointment-item strong{color:inherit}
.hts-pm .hts-pm-appointment-status{font-weight:600;white-space:nowrap;color:inherit}
.hts-pm .hts-pm-appointment-note{font-size:.875rem;opacity:.8;margin-top:18px}
@media(max-width:600px){.hts-pm .hts-pm-appointment-item{flex-direction:column;gap:6px}}

/* v0.1.17: Expand booking inside the Appointments menu page, never in a popup. */
.hts-pm .hts-pm-schedule-container{margin:0 0 18px}
.hts-pm .hts-pm-schedule-toggle{display:inline-flex;align-items:center;gap:10px;padding:10px 15px;border:1px solid var(--hts-pm-navy,#0b284a);border-radius:6px;background:var(--hts-pm-navy,#0b284a);color:#fff!important;cursor:pointer;font:inherit;font-weight:600}
.hts-pm .hts-pm-schedule-toggle:hover,.hts-pm .hts-pm-schedule-toggle:focus-visible{background:var(--hts-pm-gold,#aa8437);border-color:var(--hts-pm-gold,#aa8437);color:#fff!important}
.hts-pm .hts-pm-schedule-chevron{transition:transform .15s ease}
.hts-pm .hts-pm-schedule-toggle[aria-expanded="true"] .hts-pm-schedule-chevron{transform:rotate(180deg)}
.hts-pm .hts-pm-scheduler-panel{padding:14px 0}
.hts-pm .hts-pm-scheduler-panel[hidden]{display:none!important}
.hts-pm .hts-pm-scheduler-frame{display:block;width:100%;height:780px;max-width:100%;border:1px solid #dce4eb;border-radius:8px;background:#fff}
.hts-pm .hts-pm-scheduler-fallback{font-size:.875rem;margin-top:8px}
@media(max-width:640px){.hts-pm .hts-pm-scheduler-frame{height:690px}}
@media(prefers-reduced-motion:reduce){.hts-pm .hts-pm-schedule-chevron{transition:none}}

/* v0.1.18: Appointment toggle uses portal colors in all interactive states. */
.hts-pm button.hts-pm-schedule-toggle,
.hts-pm button.hts-pm-schedule-toggle:active,
.hts-pm button.hts-pm-schedule-toggle[aria-expanded="true"] {
  background:var(--hts-pm-navy,#0b284a)!important;
  background-color:var(--hts-pm-navy,#0b284a)!important;
  border-color:var(--hts-pm-navy,#0b284a)!important;
  color:#fff!important;
  box-shadow:none;
  text-transform:none;
}
.hts-pm button.hts-pm-schedule-toggle:hover,
.hts-pm button.hts-pm-schedule-toggle:focus-visible {
  background:var(--hts-pm-gold,#aa8437)!important;
  background-color:var(--hts-pm-gold,#aa8437)!important;
  border-color:var(--hts-pm-gold,#aa8437)!important;
  color:#fff!important;
}
.hts-pm button.hts-pm-schedule-toggle span{color:inherit!important}

/* v0.1.19: Customizer color variables control the entire sidebar, including links. */
.hts-pm .hts-pm-side{background-color:var(--hts-pm-sidebar,#f5f7fa)!important;background-image:none!important;color:var(--hts-pm-text,#243348)!important}
.hts-pm .hts-pm-side nav a:not(.active),
.hts-pm .hts-pm-side nav a:not(.active):link,
.hts-pm .hts-pm-side nav a:not(.active):visited,
.hts-pm .hts-pm-side nav .hts-pm-nav-parent,
.hts-pm .hts-pm-side nav .hts-pm-nav-parent-title{color:var(--hts-pm-link,var(--hts-pm-navy))!important}
.hts-pm .hts-pm-side nav a:not(.active):hover,
.hts-pm .hts-pm-side nav .hts-pm-nav-parent:hover,
.hts-pm .hts-pm-side nav a:not(.active):focus-visible{color:var(--hts-pm-link-hover,var(--hts-pm-gold))!important}
.hts-pm .hts-pm-side nav a.active,
.hts-pm .hts-pm-side nav a.active:hover,
.hts-pm .hts-pm-side nav a.active:visited{background:var(--hts-pm-navy,#0b284a)!important;color:#fff!important}
.hts-pm .hts-pm-side nav .hts-pm-nav-chevron{color:inherit!important}
.hts-pm .hts-pm-message-alert{margin-left:auto;display:inline-flex;gap:8px;align-items:center;padding:6px 10px;border:1px solid var(--hts-pm-gold);border-radius:6px;font-weight:600;color:var(--hts-pm-link)!important;text-decoration:none!important}
.hts-pm .hts-pm-message-alert:hover{color:var(--hts-pm-link-hover)!important}
.hts-pm .hts-pm-message-count{display:inline-flex;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:20px;background:var(--hts-pm-navy);color:#fff!important;font-size:12px}
.hts-pm .hts-pm-message-alert+.hts-pm-logout{margin-left:8px}
@media(max-width:700px){.hts-pm .hts-pm-message-alert{margin-left:0}}

/* v0.1.25: ensure the WP login remember label stays visible in theme layouts. */
.hts-pm #loginform .login-remember, .hts-pm #loginform .login-remember label {display:block!important;visibility:visible!important;opacity:1!important;color:var(--hts-pm-text,#0b284a)!important;font-size:14px!important;line-height:1.6!important;}
.hts-pm #loginform .login-remember input[type=checkbox] {display:inline-block!important;visibility:visible!important;width:auto!important;height:auto!important;vertical-align:middle!important;margin-right:8px!important;}

/* v0.1.26: Login form labels and help text must remain black independently of menu colors. */
.hts-pm .hts-pm-welcome #loginform,
.hts-pm .hts-pm-welcome #loginform p,
.hts-pm .hts-pm-welcome #loginform label,
.hts-pm .hts-pm-welcome #loginform .login-remember,
.hts-pm .hts-pm-welcome #loginform .login-remember label {
  color:#000!important;
  -webkit-text-fill-color:#000!important;
  opacity:1!important;
  visibility:visible!important;
}
.hts-pm .hts-pm-welcome #loginform label {font-weight:600!important;}
.hts-pm .hts-pm-welcome #loginform .login-remember label {display:inline-flex!important;align-items:center!important;gap:8px!important;font-size:14px!important;}
.hts-pm .hts-pm-welcome #loginform .login-remember input[type=checkbox] {margin:0!important;accent-color:#000;}
.hts-pm .hts-pm-welcome #loginform #wp-submit {
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* v0.1.29: ensure appointment empty states and footer remain legible against light surfaces. */
.hts-pm .hts-pm-main .hts-pm-empty{color:#243348!important;background-color:#f7f9fb!important;opacity:1!important}
.hts-pm .hts-pm-footer{color:#243348!important;opacity:1!important}
.hts-pm .hts-pm-appointment-item{color:#243348!important}

/* v0.1.35: Manage Appointment button colors are independent of portal brand colors. */
.hts-pm .hts-pm-appointment-actions{display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.hts-pm a.hts-pm-manage-appointment,
.hts-pm a.hts-pm-manage-appointment:link,
.hts-pm a.hts-pm-manage-appointment:visited {
  display:inline-block;
  text-align:center;
  background-color:var(--hts-pm-button-bg,#0b284a)!important;
  color:var(--hts-pm-button-text,#ffffff)!important;
  -webkit-text-fill-color:var(--hts-pm-button-text,#ffffff)!important;
  border-radius:6px;
  padding:9px 13px;
  text-decoration:none!important;
  font-weight:600;
  line-height:1.35;
  opacity:1!important;
  visibility:visible!important;
}
.hts-pm a.hts-pm-manage-appointment:hover,
.hts-pm a.hts-pm-manage-appointment:focus-visible {
  background-color:var(--hts-pm-button-hover-bg,#aa8437)!important;
  color:var(--hts-pm-button-hover-text,#ffffff)!important;
  -webkit-text-fill-color:var(--hts-pm-button-hover-text,#ffffff)!important;
}
@media(max-width:600px){.hts-pm .hts-pm-appointment-actions{align-items:flex-start}}

/* v0.1.36: mobile customer navigation is one vertical, full-width stack.
   Overrides legacy two-column rules at the same breakpoint. */
@media screen and (max-width:700px){
  .hts-pm .hts-pm-body{display:flex;flex-direction:column;min-width:0;}
  .hts-pm .hts-pm-side{width:100%;min-width:0;border-right:0;border-bottom:1px solid #e0e6eb;padding:14px;}
  .hts-pm .hts-pm-side nav{display:grid;grid-template-columns:minmax(0,1fr)!important;grid-auto-flow:row;gap:4px;width:100%;}
  .hts-pm .hts-pm-side nav > a,
  .hts-pm .hts-pm-side nav > .hts-pm-nav-group{display:block;width:100%;min-width:0;max-width:100%;}
  .hts-pm .hts-pm-side nav > .hts-pm-nav-group{display:grid;grid-template-columns:minmax(0,1fr);}
  .hts-pm .hts-pm-side nav .hts-pm-nav-heading,
  .hts-pm .hts-pm-side nav .hts-pm-nav-children{min-width:0;width:100%;}
  .hts-pm .hts-pm-side nav .hts-pm-nav-heading>.hts-pm-nav-parent{width:100%;min-height:44px;}
  .hts-pm .hts-pm-side nav a{width:100%;min-height:44px;}
  .hts-pm .hts-pm-side nav .hts-pm-nav-children[hidden]{display:none!important;}
  .hts-pm .hts-pm-main{width:100%;min-width:0;}
}

/* v0.1.37: Request form field content is always black on white.
 * Override site/theme color variables, and preserve contrast on focus/autofill. */
.hts-pm .hts-pm-form input[name="hts_pm_title"],
.hts-pm .hts-pm-form textarea[name="hts_pm_description"],
.hts-pm .hts-pm-form input[name="hts_pm_title"]:focus,
.hts-pm .hts-pm-form textarea[name="hts_pm_description"]:focus {
  background-color:#fff!important;
  color:#000!important;
  -webkit-text-fill-color:#000!important;
  caret-color:#000!important;
}
.hts-pm .hts-pm-form input[name="hts_pm_title"]::placeholder,
.hts-pm .hts-pm-form textarea[name="hts_pm_description"]::placeholder {
  color:#555!important;
  -webkit-text-fill-color:#555!important;
  opacity:1;
}
.hts-pm .hts-pm-form input[name="hts_pm_title"]:-webkit-autofill {
  -webkit-text-fill-color:#000!important;
}

/* v0.1.38: Permanent black text on light customer portal surfaces.
 * Stored text/link settings may be #fff from earlier configurations; those must
 * not make requests, navigation, or header copy unreadable. Navy buttons and
 * active navigation deliberately retain white text for contrast. */
.hts-pm { color:var(--hts-pm-text,#000)!important; }
.hts-pm .hts-pm-header p,
.hts-pm .hts-pm-greeting,
.hts-pm .hts-pm-main,
.hts-pm .hts-pm-main .hts-pm-item,
.hts-pm .hts-pm-main .hts-pm-item p,
.hts-pm .hts-pm-main .hts-pm-item small,
.hts-pm .hts-pm-main .hts-pm-item time,
.hts-pm .hts-pm-main .hts-pm-description,
.hts-pm .hts-pm-main .hts-pm-secondary,
.hts-pm .hts-pm-side,
.hts-pm .hts-pm-footer {color:var(--hts-pm-text,#000)!important;-webkit-text-fill-color:var(--hts-pm-text,#000)!important;}
.hts-pm .hts-pm-logout,
.hts-pm .hts-pm-side nav a:not(.active):not([aria-current="page"]),
.hts-pm .hts-pm-side nav .hts-pm-nav-parent-title {color:var(--hts-pm-link,#000)!important;-webkit-text-fill-color:var(--hts-pm-link,#000)!important;}
.hts-pm .hts-pm-side nav a.active,
.hts-pm .hts-pm-side nav a[aria-current="page"],
.hts-pm .hts-pm-side nav a.active:hover,
.hts-pm .hts-pm-side nav a.active:visited {color:#fff!important;-webkit-text-fill-color:#fff!important;}
.hts-pm .hts-pm-form button,
.hts-pm #wp-submit,
.hts-pm button.hts-pm-schedule-toggle,
.hts-pm .hts-pm-manage-appointment,
.hts-pm .hts-pm-message-count { -webkit-text-fill-color:initial; }

/* v0.1.39: customer conversations */
.hts-pm .hts-pm-conversation-list{max-height:430px;overflow-y:auto;border:1px solid #dce4eb;border-radius:8px;padding:12px;background:#fff}
.hts-pm .hts-pm-conversation-entry{padding:13px 8px;border-bottom:1px solid #e1e5eb;color:#000!important}
.hts-pm .hts-pm-conversation-entry:last-child{border-bottom:0}
.hts-pm .hts-pm-conversation-entry p{white-space:normal;color:#000!important}
.hts-pm .hts-pm-message-compose{margin:20px 0;display:flex;flex-direction:column;gap:10px}
.hts-pm .hts-pm-message-compose textarea{width:100%;background:#fff!important;color:#000!important;-webkit-text-fill-color:#000!important}
.hts-pm .hts-pm-message-compose button,.hts-pm .hts-pm-conversation-entry button{width:max-content;background:#0b284a;color:#fff!important;-webkit-text-fill-color:#fff!important;border:0;border-radius:5px;padding:9px 18px;cursor:pointer}
.hts-pm .hts-pm-message-feedback{font-weight:600}


/* v0.1.42: one portal-wide action-button style driven by Configure > Portal Button Colors.
   Exclude side navigation toggles and embedded Scheduling Agent controls. */
.hts-pm .hts-pm-main button:not(.hts-pm-nav-parent):not(.hts-pm-nav-toggle),
.hts-pm .hts-pm-main input[type="submit"],
.hts-pm .hts-pm-main input[type="button"],
.hts-pm .hts-pm-main a.hts-pm-manage-appointment,
.hts-pm .hts-pm-main a.hts-pm-button,
.hts-pm .hts-pm-welcome #wp-submit {
  background-color:var(--hts-pm-button-bg,#0b284a)!important;
  border:1px solid var(--hts-pm-button-bg,#0b284a)!important;
  color:var(--hts-pm-button-text,#fff)!important;
  -webkit-text-fill-color:var(--hts-pm-button-text,#fff)!important;
  border-radius:6px; padding:10px 18px; font:inherit; font-weight:600;
  line-height:1.35; cursor:pointer; text-decoration:none!important;
  display:inline-block; width:auto; max-width:100%;
}
.hts-pm .hts-pm-main button:not(.hts-pm-nav-parent):not(.hts-pm-nav-toggle):hover,
.hts-pm .hts-pm-main button:not(.hts-pm-nav-parent):not(.hts-pm-nav-toggle):focus-visible,
.hts-pm .hts-pm-main input[type="submit"]:hover,
.hts-pm .hts-pm-main input[type="button"]:hover,
.hts-pm .hts-pm-main a.hts-pm-manage-appointment:hover,
.hts-pm .hts-pm-main a.hts-pm-button:hover,
.hts-pm .hts-pm-welcome #wp-submit:hover {
  background-color:var(--hts-pm-button-hover-bg,#aa8437)!important;
  border-color:var(--hts-pm-button-hover-bg,#aa8437)!important;
  color:var(--hts-pm-button-hover-text,#fff)!important;
  -webkit-text-fill-color:var(--hts-pm-button-hover-text,#fff)!important;
}
.hts-pm .hts-pm-main button:focus-visible, .hts-pm .hts-pm-main a:focus-visible {outline:2px solid var(--hts-pm-gold,#aa8437);outline-offset:2px;}
.hts-pm .hts-pm-preferences-actions {margin:22px 0 0!important;}
.hts-pm .hts-pm-preferences-form>label {display:inline-flex;align-items:center;gap:7px;line-height:1.5;}
.hts-pm .hts-pm-preferences-form input[type="checkbox"] {margin:0;}
/* Future plain customer-portal links inherit the configured link/visited/hover palette. */
.hts-pm .hts-pm-main a:not(.hts-pm-manage-appointment):not(.hts-pm-button):not(.active):link {color:var(--hts-pm-link,#000)!important;}
.hts-pm .hts-pm-main a:not(.hts-pm-manage-appointment):not(.hts-pm-button):not(.active):visited {color:var(--hts-pm-link-visited,var(--hts-pm-link,#000))!important;}
.hts-pm .hts-pm-main a:not(.hts-pm-manage-appointment):not(.hts-pm-button):not(.active):hover {color:var(--hts-pm-link-hover,var(--hts-pm-gold,#aa8437))!important;}

/* v0.1.43: canonical customizable customer menu palette; supersedes legacy
   link/theme/visited styles. Keep anchor text and WebKit text fill in sync. */
.hts-pm .hts-pm-side nav a:not(.active):not([aria-current="page"]),
.hts-pm .hts-pm-side nav a:not(.active):not([aria-current="page"]):visited,
.hts-pm .hts-pm-side nav .hts-pm-nav-parent,
.hts-pm .hts-pm-side nav .hts-pm-nav-parent .hts-pm-nav-parent-title {
  color:var(--hts-pm-link,#0b284a)!important;
  -webkit-text-fill-color:var(--hts-pm-link,#0b284a)!important;
}
.hts-pm .hts-pm-side nav a:not(.active):hover,
.hts-pm .hts-pm-side nav a:not(.active):focus-visible,
.hts-pm .hts-pm-side nav .hts-pm-nav-parent:hover,
.hts-pm .hts-pm-side nav .hts-pm-nav-parent:focus-visible {
  background:var(--hts-pm-menu-hover-bg,#eaf0f6)!important;
  color:var(--hts-pm-menu-hover-text,#0b284a)!important;
  -webkit-text-fill-color:var(--hts-pm-menu-hover-text,#0b284a)!important;
}
.hts-pm .hts-pm-side nav .hts-pm-nav-parent:hover .hts-pm-nav-parent-title,
.hts-pm .hts-pm-side nav .hts-pm-nav-parent:focus-visible .hts-pm-nav-parent-title {
  color:var(--hts-pm-menu-hover-text,#0b284a)!important;
  -webkit-text-fill-color:var(--hts-pm-menu-hover-text,#0b284a)!important;
}
.hts-pm .hts-pm-side nav a.active,
.hts-pm .hts-pm-side nav a.active:link,
.hts-pm .hts-pm-side nav a.active:visited,
.hts-pm .hts-pm-side nav a.active:hover,
.hts-pm .hts-pm-side nav a.active:focus-visible,
.hts-pm .hts-pm-side nav a[aria-current="page"] {
  background:var(--hts-pm-menu-active-bg,#0b284a)!important;
  color:var(--hts-pm-menu-active-text,#fff)!important;
  -webkit-text-fill-color:var(--hts-pm-menu-active-text,#fff)!important;
  opacity:1!important;
  visibility:visible!important;
}
.hts-pm .hts-pm-side nav .hts-pm-nav-parent .hts-pm-nav-chevron {color:inherit!important;-webkit-text-fill-color:currentColor!important;}

/* v0.1.57: Single authoritative layout for customer appointment cards.
 * Replace the conflicting v0.1.45-v0.1.52 flex and :has() rules. */
.hts-pm .hts-pm-appointment-group,
.hts-pm .hts-pm-appointment-list{width:100%;min-width:0;max-width:100%;height:auto;min-height:0}
.hts-pm .hts-pm-appointment-list{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.hts-pm .hts-pm-appointment-item,
.hts-pm .hts-pm-appointment-item:has(.hts-pm-manage-panel:not([hidden])){
  display:grid!important;grid-template-columns:minmax(0,1fr) max-content!important;
  column-gap:16px;row-gap:8px;align-items:start!important;
  width:100%;max-width:100%;min-width:0;height:auto!important;min-height:0!important;
  padding:16px!important;margin:0;overflow:visible;
  border:1px solid #dce4eb;border-radius:8px;
}
.hts-pm .hts-pm-appointment-primary{
  display:block!important;grid-column:1;grid-row:1;
  width:100%!important;min-width:0!important;max-width:100%!important;
  height:auto!important;min-height:0!important;flex:none!important;
  overflow-wrap:normal!important;word-break:normal!important;
  white-space:normal!important;line-height:1.5;
}
.hts-pm .hts-pm-appointment-primary>strong{display:block;margin-bottom:5px}
.hts-pm .hts-pm-appointment-primary>div:not(.hts-pm-manage-panel){margin:3px 0;max-width:100%;overflow-wrap:break-word;word-break:normal}
.hts-pm .hts-pm-appointment-actions,
.hts-pm .hts-pm-appointment-item:has(.hts-pm-manage-panel:not([hidden])) .hts-pm-appointment-actions{
  display:flex;grid-column:2;grid-row:1;justify-content:flex-end;
  min-width:0!important;width:auto!important;flex:none!important;
  align-items:flex-start!important;
}
.hts-pm .hts-pm-appointment-status{white-space:nowrap}
.hts-pm .hts-pm-manage-appointment{
  display:inline-flex!important;align-items:center;gap:9px;
  width:auto;max-width:100%;margin:12px 0 0!important;
}
.hts-pm .hts-pm-manage-chevron{color:inherit!important;transition:transform .2s ease}
.hts-pm .hts-pm-manage-appointment[aria-expanded="true"] .hts-pm-manage-chevron{transform:rotate(180deg)}
.hts-pm .hts-pm-appointment-item .hts-pm-appointment-primary .hts-pm-manage-panel{
  display:block;box-sizing:border-box!important;
  width:min(100%,660px)!important;max-width:660px!important;min-width:0!important;
  height:auto;min-height:0;margin:12px 0 0!important;padding:0!important;
  border:0!important;background:transparent!important;
}
.hts-pm .hts-pm-manage-panel[hidden]{display:none!important}
.hts-pm .hts-pm-appointment-primary .hts-pm-manage-panel iframe{
  display:block;width:100%!important;max-width:100%!important;
  height:770px;min-height:320px;box-sizing:border-box;
  border:0!important;border-radius:7px;background:#fff;
}
.hts-pm .hts-pm-manage-load-error{color:#8a1717!important;font-size:14px!important;margin:12px 0!important}
@media(max-width:600px){
  .hts-pm .hts-pm-appointment-item,
  .hts-pm .hts-pm-appointment-item:has(.hts-pm-manage-panel:not([hidden])){
    grid-template-columns:minmax(0,1fr)!important;
  }
  .hts-pm .hts-pm-appointment-actions,
  .hts-pm .hts-pm-appointment-item:has(.hts-pm-manage-panel:not([hidden])) .hts-pm-appointment-actions{
    grid-column:1;grid-row:2;justify-content:flex-start;
  }
}

/* v0.1.59: visible milestone dots on My Projects and project details */
.hts-pm .hts-pm-milestone-timeline{margin:20px 0;max-width:100%}
.hts-pm .hts-pm-milestone-timeline h4{margin:0 0 14px;color:var(--hts-pm-primary,#0b284a)}
.hts-pm .hts-pm-milestone-list{display:flex;gap:0;list-style:none!important;margin:0!important;padding:0!important;overflow-x:auto}
.hts-pm .hts-pm-milestone-step{position:relative;flex:1 0 125px;min-width:125px;padding:0 10px 12px 0;list-style:none!important}
.hts-pm .hts-pm-milestone-step:not(:last-child):before{content:"";position:absolute;top:10px;left:20px;right:0;border-top:2px solid #ccd6e1}
.hts-pm .hts-pm-milestone-dot{position:relative;z-index:1;display:flex;width:22px;height:22px;border-radius:50%;border:2px solid #a6b4c3;background:#fff;color:#fff;align-items:center;justify-content:center;font-size:13px;margin-bottom:9px}
.hts-pm .hts-pm-milestone-done .hts-pm-milestone-dot{background:#aa8437;border-color:#aa8437}
.hts-pm .hts-pm-milestone-doing .hts-pm-milestone-dot,.hts-pm .hts-pm-milestone-review .hts-pm-milestone-dot{background:#0b284a;border-color:#0b284a}
.hts-pm .hts-pm-milestone-step strong{display:block;font-size:13px;line-height:1.4;color:inherit}
.hts-pm .hts-pm-milestone-step small{display:block;color:#52677a;margin-top:5px;font-size:11px}
.hts-pm .hts-pm-milestone-step p{font-size:12px;margin:5px 0 0}

/* v0.1.62: customer milestone cards organized under the four Kanban stage headings. */
.hts-pm .hts-pm-milestone-stage-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;width:100%;align-items:start}
.hts-pm .hts-pm-milestone-stage{min-width:0;border:1px solid #d9e1ea;border-radius:8px;background:#f8fafc;padding:12px;box-sizing:border-box}
.hts-pm .hts-pm-milestone-stage h5{margin:0 0 14px;padding:0 0 10px;border-bottom:2px solid #aa8437;color:var(--hts-pm-primary,#0b284a);font-size:15px;font-weight:700}
.hts-pm .hts-pm-milestone-stage-list{display:flex;flex-direction:column;gap:12px;list-style:none!important;margin:0!important;padding:0!important;overflow:visible}
.hts-pm .hts-pm-milestone-stage-list .hts-pm-milestone-step{position:relative;min-width:0;width:100%;flex:none;display:flex;align-items:flex-start;gap:10px;padding:0 0 10px;border-bottom:1px solid #e2e8f0;overflow-wrap:break-word;box-sizing:border-box}
.hts-pm .hts-pm-milestone-stage-list .hts-pm-milestone-step:last-child{border-bottom:0;padding-bottom:0}
.hts-pm .hts-pm-milestone-stage-list .hts-pm-milestone-step:before{display:none!important}
.hts-pm .hts-pm-milestone-stage-list .hts-pm-milestone-dot{flex:0 0 22px;margin:0}
.hts-pm .hts-pm-milestone-stage-list .hts-pm-milestone-body{min-width:0;flex:1}
.hts-pm .hts-pm-milestone-stage-list .hts-pm-milestone-body strong{font-size:13px}
.hts-pm .hts-pm-milestone-empty{color:#64748b;font-size:12px;font-style:italic;list-style:none!important}
@media(max-width:900px){.hts-pm .hts-pm-milestone-stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.hts-pm .hts-pm-milestone-stage-grid{grid-template-columns:minmax(0,1fr)}}


/* v0.1.63: milestone-sourced project progress bar, above the customer stage columns. */
.hts-pm .hts-pm-project-progress{margin:0 0 20px;max-width:100%;box-sizing:border-box}
.hts-pm .hts-pm-project-progress-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 8px;font-size:13px;color:var(--hts-pm-primary,#0b284a)}
.hts-pm .hts-pm-project-progress-heading span{color:#52677a;font-weight:600;white-space:nowrap}
.hts-pm .hts-pm-project-progress-track{height:10px;width:100%;background:#e5ebf1;border-radius:999px;overflow:hidden}
.hts-pm .hts-pm-project-progress-fill{height:100%;max-width:100%;background:#aa8437;border-radius:inherit;transition:width .2s ease}

/* v0.1.64: horizontal high-level project step timeline */
.hts-pm .hts-pm-project-steps{margin:24px 0 30px;min-width:0}
.hts-pm .hts-pm-project-steps h5{font-size:16px;color:var(--hts-pm-primary,#0b284a);margin:0 0 18px}
.hts-pm .hts-pm-steps-line{display:flex;align-items:flex-start;list-style:none!important;margin:0!important;padding:0!important;overflow-x:auto;max-width:100%;scrollbar-width:thin}
.hts-pm .hts-pm-steps-node{position:relative;flex:1 0 135px;min-width:135px;display:flex;align-items:center;flex-direction:column;text-align:center;padding:0 12px 4px;box-sizing:border-box;list-style:none!important}
.hts-pm .hts-pm-steps-node:before{content:"";position:absolute;top:11px;left:0;right:0;height:2px;background:#cbd5e1;z-index:0}
.hts-pm .hts-pm-steps-node:first-child:before{left:50%}
.hts-pm .hts-pm-steps-node:last-child:before{right:50%}
.hts-pm .hts-pm-step-circle{position:relative;z-index:1;width:24px;height:24px;border:1px solid #d5dae0;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;box-sizing:border-box;margin-bottom:9px}
.hts-pm .hts-pm-steps-done .hts-pm-step-circle{background:#aa8437;border-color:#aa8437}
.hts-pm .hts-pm-steps-doing .hts-pm-step-circle,.hts-pm .hts-pm-steps-review .hts-pm-step-circle{background:#0b284a;border-color:#0b284a}
.hts-pm .hts-pm-step-center{width:7px;height:7px;background:#fff;border-radius:50%}
.hts-pm .hts-pm-steps-node strong{font-size:12px;line-height:1.3;color:#172b44;overflow-wrap:break-word}
.hts-pm .hts-pm-steps-node small{font-size:10px;color:#64748b;margin-top:4px}

/* v0.1.66: connected, scrollable overall project step meter sourced from Milestone Kanban. */
.hts-pm .hts-pm-steps-line{width:100%;}
.hts-pm .hts-pm-steps-node{flex:1 0 130px;}

/* v0.1.69: signed-in customer native cancellation fallback; uses Agent's own handler. */

/* v0.1.75: customer-only request for administrator-managed project appointments. */
.hts-pm .hts-pm-specialist-request {box-sizing:border-box;max-width:660px;width:100%;padding:14px 0;}
.hts-pm .hts-pm-specialist-request label {display:block;font-weight:600;margin:10px 0 6px;}
.hts-pm .hts-pm-specialist-request textarea {display:block;box-sizing:border-box;width:100%;max-width:100%;min-height:88px;padding:10px;border:1px solid #cbd5e1;border-radius:5px;}

.hts-pm .hts-pm-request-send-button {background:var(--htspm-button-background-color,#0b284a);color:var(--htspm-button-text-color,#fff);border:0;border-radius:5px;padding:10px 17px;cursor:pointer;font-weight:600;}
.hts-pm .hts-pm-request-send-button:hover,.hts-pm .hts-pm-request-send-button:focus {background:var(--htspm-button-hover-background-color,#aa8437);color:var(--htspm-button-hover-text-color,#fff);}

/* v0.1.76: scrollable timestamped project activity. */
.hts-pm-activity-history{max-height:440px;overflow:auto;border:1px solid #d7e0e9;border-radius:6px;padding:10px;background:#fff}
.hts-pm-activity-entry{padding:12px;border-bottom:1px solid #e2e7ec}
.hts-pm-activity-entry:last-child{border-bottom:0}
.hts-pm-activity-entry h4{margin:0 0 4px}
.hts-pm-activity-entry time{font-size:12px;opacity:.85}
.hts-pm-activity-entry p{margin:8px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}

/* v0.1.80: accessible read-only summary of customer-visible milestone cards. */
.hts-pm .hts-pm-milestone-summary{max-width:100%;overflow-x:auto;margin:16px 0 22px;border:1px solid #dce4eb;border-radius:8px;background:#fff}
.hts-pm .hts-pm-milestone-summary h5{margin:0;padding:13px 16px;font-size:15px;color:var(--hts-pm-primary,#0b284a);border-bottom:1px solid #dce4eb}
.hts-pm .hts-pm-milestone-summary table{width:100%;border-collapse:collapse;text-align:left}
.hts-pm .hts-pm-milestone-summary th,.hts-pm .hts-pm-milestone-summary td{padding:10px 16px;border-bottom:1px solid #e8edf2;white-space:nowrap;color:inherit}
.hts-pm .hts-pm-milestone-summary tr:last-child td{border-bottom:0}
.hts-pm .hts-pm-milestone-summary th{font-weight:700;background:#f6f8fa}

/* v0.2.5: Preserve WordPress editor typography inside the Welcome message. */
.hts-pm-welcome-message p{margin:0 0 12px;line-height:1.6}
.hts-pm-welcome-message p:last-child{margin-bottom:0}
.hts-pm-welcome-message ul{list-style:disc;padding-left:22px}
.hts-pm-welcome-message ol{list-style:decimal;padding-left:22px}
.hts-pm-welcome-message a{text-decoration:underline}

/* v0.2.21: The public portal is a self-contained responsive card, regardless of
   Elementor, theme font presets, or the selected WordPress page template.
   Its maximum width is controlled by Customization > Customer Page. */
.hts-pm{box-sizing:border-box;min-width:0;margin-left:auto;margin-right:auto;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;}
.hts-pm input,.hts-pm button,.hts-pm select,.hts-pm textarea{font-family:inherit;}
.hts-pm .hts-pm-header h2,.hts-pm .hts-pm-header p{color:var(--hts-pm-header-text,var(--hts-pm-navy,#0b284a))!important;}
.hts-pm .hts-pm-header .hts-pm-logout{color:var(--hts-pm-header-text,var(--hts-pm-navy,#0b284a))!important;margin-left:auto;}
.hts-pm .hts-pm-logo{display:block;flex-shrink:0;width:auto;max-width:120px;height:auto;max-height:96px;object-fit:contain;}
.hts-pm .hts-pm-header{min-height:130px;gap:26px;padding:24px 32px;}
.hts-pm .hts-pm-footer{font-family:inherit;}
@media(max-width:700px){
  .hts-pm{width:100%!important;max-width:100%!important;}
  .hts-pm .hts-pm-header{padding:16px;gap:14px;min-height:90px;}
  .hts-pm .hts-pm-header h2{font-size:1.2rem;overflow-wrap:anywhere;}
  .hts-pm .hts-pm-logo{max-width:78px;max-height:70px;}
}

/* v0.2.21 finishing pass: theme-independent lab-style brand spacing and
   readable login. Rules stay inside the customer portal. */
.hts-pm .hts-pm-header{min-height:128px;padding:16px 32px;}
.hts-pm .hts-pm-header h2{font-size:26px;line-height:1.2;font-weight:400;}
.hts-pm .hts-pm-header h2,.hts-pm .hts-pm-header p,
.hts-pm .hts-pm-header .hts-pm-logout{
  color:var(--hts-pm-header-text,var(--hts-pm-navy,#0b284a))!important;
  -webkit-text-fill-color:var(--hts-pm-header-text,var(--hts-pm-navy,#0b284a))!important;
}
.hts-pm .hts-pm-welcome{max-width:720px;padding:42px 35px 44px;}
.hts-pm .hts-pm-welcome h3{margin:0 0 12px;font-size:30px;font-weight:400;line-height:1.2;}
.hts-pm .hts-pm-side nav a.active,
.hts-pm .hts-pm-side nav a[aria-current="page"],
.hts-pm .hts-pm-side nav a.active:hover,
.hts-pm .hts-pm-side nav a.active:visited{
  background:var(--hts-pm-menu-active-bg,var(--hts-pm-navy,#0b284a))!important;
  color:var(--hts-pm-menu-active-text,#fff)!important;
  -webkit-text-fill-color:var(--hts-pm-menu-active-text,#fff)!important;
}
@media(max-width:700px){
  .hts-pm .hts-pm-header{padding:16px;min-height:90px;}
  .hts-pm .hts-pm-header h2{font-size:1.2rem;}
  .hts-pm .hts-pm-welcome{padding:26px 18px 30px;}
  .hts-pm .hts-pm-welcome h3{font-size:25px;}
}
