/* Hive Portal – styled to match the hive theme (hiveepcs.co.uk). */
/* The site's mobile "Call / Get a quote" bar is for visitors, not portal users. */
body.hive-portal-page .hive-mobilebar { display: none !important; }
.hp {
	--hp-base: var(--wp--preset--color--base, #FBF8F1);
	--hp-ink: var(--wp--preset--color--ink, #1C1813);
	--hp-amber: var(--wp--preset--color--amber, #F29104);
	--hp-honey: var(--wp--preset--color--honey, #FFD166);
	--hp-amber-dark: var(--wp--preset--color--amber-dark, #8A5200);
	--hp-green: var(--wp--preset--color--cta, #087A48);
	--hp-card: #ffffff;
	--hp-line: #E9E1CF;
	--hp-line-soft: #F2ECDF;
	--hp-muted: #6B6255;
	--hp-red: #B42318;
	--hp-red-bg: #FDECEA;
	--hp-warn-bg: #FFF4DB;
	--hp-ok-bg: #E7F5EE;
	--hp-radius: 14px;
	--hp-shadow: 0 1px 2px rgba(28, 24, 19, .05), 0 4px 16px rgba(28, 24, 19, .04);
	font-family: var(--wp--preset--font-family--figtree, Figtree, system-ui, sans-serif);
	color: var(--hp-ink);
	font-size: 16px;
	line-height: 1.5;
	max-width: 1180px;
	margin: 0 auto;
	padding: 8px 16px 64px;
	box-sizing: border-box;
}
.hp *, .hp *::before, .hp *::after { box-sizing: border-box; }
.hp h1, .hp h2, .hp h3 { font-family: var(--wp--preset--font-family--fraunces, Fraunces, Georgia, serif); color: var(--hp-ink); letter-spacing: -.01em; margin: 0 0 .4em; line-height: 1.15; }
.hp h1 { font-size: clamp(1.7rem, 3.2vw, 2.3rem); font-weight: 600; }
.hp h2 { font-size: 1.25rem; font-weight: 600; }
.hp h3 { font-size: 1.05rem; font-weight: 600; }
.hp p { margin: 0 0 .75em; }
.hp a { color: var(--hp-amber-dark); }
.hp-muted { color: var(--hp-muted); }
.hp-small { font-size: .875rem; }
.hp-eyebrow { display: block; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--hp-amber-dark); margin: 0 0 .35em; }
.hp-mono { font-family: ui-monospace, Menlo, monospace; font-size: .85rem; }
.hp-loading { padding: 48px 0; text-align: center; color: var(--hp-muted); }
.hp-empty { padding: 20px; background: var(--hp-card); border: 1px dashed var(--hp-line); border-radius: var(--hp-radius); color: var(--hp-muted); text-align: center; }
.hp-sep { height: 1px; background: var(--hp-line-soft); margin: 14px 0; }

/* Buttons */
.hp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 42px; padding: 9px 18px; border-radius: 999px; border: 1.5px solid var(--hp-ink); background: var(--hp-card); color: var(--hp-ink) !important; font: inherit; font-weight: 600; text-decoration: none !important; cursor: pointer; transition: background .15s, transform .05s; white-space: nowrap; }
.hp-btn:hover { background: var(--hp-base); }
.hp-btn:active { transform: translateY(1px); }
.hp-btn:focus-visible, .hp-linkbtn:focus-visible, .hp a:focus-visible, .hp input:focus-visible, .hp select:focus-visible, .hp textarea:focus-visible { outline: 3px solid var(--hp-honey); outline-offset: 2px; }
.hp-btn--primary { background: var(--hp-green); border-color: var(--hp-green); color: #fff !important; }
.hp-btn--primary:hover { background: #06663c; }
.hp-btn--danger { border-color: var(--hp-red); color: var(--hp-red) !important; }
.hp-btn--danger:hover { background: var(--hp-red-bg); }
.hp-btn--small { min-height: 34px; padding: 5px 13px; font-size: .9rem; }
.hp-btn--lg { min-height: 50px; padding: 12px 26px; font-size: 1.05rem; }
.hp-btn--block { width: 100%; margin-bottom: 8px; }
.hp-btn--call { border-color: var(--hp-green); color: var(--hp-green) !important; }
.hp-btn[disabled] { opacity: .55; cursor: wait; }
.hp-linkbtn { background: none; border: 0; padding: 0; font: inherit; color: var(--hp-amber-dark); text-decoration: underline; cursor: pointer; }
.hp-iconbtn { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--hp-line); background: var(--hp-card); font-size: 1.2rem; line-height: 1; cursor: pointer; align-self: end; margin-bottom: 4px; }
.hp-back { text-decoration: none; font-weight: 600; font-size: .95rem; }

/* Alerts and toasts */
.hp-alert { padding: 12px 16px; border-radius: 12px; margin: 0 0 16px; border: 1px solid transparent; }
.hp-alert ul { margin: 0; padding-left: 18px; }
.hp-alert--error { background: var(--hp-red-bg); border-color: #F5C2BC; color: #7A1A12; }
.hp-alert--warn { background: var(--hp-warn-bg); border-color: #F3D9A0; }
.hp-alert--ok { background: var(--hp-ok-bg); border-color: #B9E1CC; }
.hp-staging { background: var(--hp-ink); color: var(--hp-honey); text-align: center; padding: 6px 12px; border-radius: 10px; font-size: .85rem; font-weight: 600; margin-bottom: 12px; }
.hp-toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 20px); opacity: 0; background: var(--hp-ink, #1C1813); color: #fff; padding: 12px 20px; border-radius: 999px; font-family: Figtree, system-ui, sans-serif; font-weight: 600; z-index: 100000; transition: all .25s; box-shadow: 0 8px 30px rgba(0, 0, 0, .2); max-width: calc(100vw - 32px); }
.hp-toast.is-in { opacity: 1; transform: translate(-50%, 0); }
.hp-toast--error { background: #B42318; }

/* Top bar */
.hp-bar { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding: 14px 18px; background: var(--hp-card); border: 1px solid var(--hp-line); border-radius: var(--hp-radius); box-shadow: var(--hp-shadow); margin: 8px 0 20px; }
.hp-bar__who { display: flex; flex-direction: column; min-width: 140px; }
.hp-bar__who .hp-eyebrow { margin: 0; }
.hp-bar__name { font-weight: 600; }
.hp-nav { display: flex; gap: 4px; flex-wrap: wrap; flex: 1; }
.hp-nav__a { padding: 8px 14px; border-radius: 999px; text-decoration: none; color: var(--hp-ink) !important; font-weight: 600; font-size: .95rem; display: inline-flex; align-items: center; gap: 6px; }
.hp-nav__a:hover { background: var(--hp-base); }
.hp-nav__a.is-active { background: var(--hp-ink); color: #fff !important; }
.hp-count { background: var(--hp-amber); color: var(--hp-ink); border-radius: 999px; padding: 0 8px; font-size: .8rem; line-height: 1.6; }
.hp-bar__end { display: flex; align-items: center; gap: 14px; }
.hp-logout { margin: 0; }

/* Headings, tiles */
.hp-head { margin: 4px 0 18px; }
.hp-head--row { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.hp-head__badges { display: flex; gap: 6px; flex-wrap: wrap; }
.hp-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.hp-tiles--mini { grid-template-columns: repeat(2, minmax(110px, auto)); margin: 0; }
.hp-tile { background: var(--hp-card); border: 1px solid var(--hp-line); border-radius: var(--hp-radius); padding: 14px 16px; box-shadow: var(--hp-shadow); }
.hp-tile__val { font-family: Fraunces, Georgia, serif; font-size: 1.8rem; font-weight: 600; line-height: 1.1; }
.hp-tile__label { color: var(--hp-muted); font-size: .88rem; }

/* Filter bar */
.hp-filter { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; }
.hp-filter input[type="search"] { flex: 1; min-width: 220px; }
.hp-seg { display: inline-flex; background: var(--hp-card); border: 1px solid var(--hp-line); border-radius: 999px; padding: 3px; margin-bottom: 14px; }
.hp-filter .hp-seg { margin: 0; }
.hp-seg a { padding: 6px 14px; border-radius: 999px; text-decoration: none; color: var(--hp-ink) !important; font-weight: 600; font-size: .92rem; }
.hp-seg a.is-active { background: var(--hp-honey); }

/* Badges */
.hp-badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: .8rem; font-weight: 700; background: #EFE9DC; color: var(--hp-ink); white-space: nowrap; }
.hp-badge--requested { background: #FFF1CC; color: #6A4300; }
.hp-badge--booked { background: #E1EEFF; color: #133C73; }
.hp-badge--visited_unpaid { background: #FDE2D1; color: #7A2E05; }
.hp-badge--docs_paid, .hp-badge--docs_account { background: #EDE5FF; color: #3E2380; }
.hp-badge--complete { background: var(--hp-ok-bg); color: #075232; }
.hp-badge--cancelled { background: #EEE; color: #555; }
.hp-badge--hold { background: var(--hp-ink); color: var(--hp-honey); }
.hp-badge--urgent { background: var(--hp-red); color: #fff; }
.hp-band { display: inline-block; min-width: 24px; text-align: center; padding: 1px 6px; border-radius: 6px; font-weight: 800; font-size: .8rem; color: #fff; }
.hp-band--A { background: #008054; } .hp-band--B { background: #19b459; } .hp-band--C { background: #8dce46; color: #1C1813; }
.hp-band--D { background: #ffd500; color: #1C1813; } .hp-band--E { background: #fcaa65; color: #1C1813; } .hp-band--F { background: #ef8023; } .hp-band--G { background: #e9153b; }

/* Tables */
.hp-tablewrap { overflow-x: auto; background: var(--hp-card); border: 1px solid var(--hp-line); border-radius: var(--hp-radius); box-shadow: var(--hp-shadow); margin-bottom: 18px; }
.hp-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.hp-table th { text-align: left; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--hp-muted); padding: 12px 14px; border-bottom: 1px solid var(--hp-line); background: #FDFBF6; }
.hp-table td { padding: 12px 14px; border-bottom: 1px solid var(--hp-line-soft); vertical-align: top; }
.hp-table tr:last-child td { border-bottom: 0; }
.hp-table--click tbody tr { cursor: pointer; }
.hp-table--click tbody tr:hover { background: #FFFBEF; }
.hp-table tr.is-off { opacity: .55; }
.hp-grid td { padding: 6px 8px; }
.hp-grid input { max-width: 110px; }

/* Cards and layout */
.hp-card { background: var(--hp-card); border: 1px solid var(--hp-line); border-radius: var(--hp-radius); padding: 18px; box-shadow: var(--hp-shadow); margin-bottom: 16px; }
.hp-card--actions { border-color: var(--hp-amber); }
.hp-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.hp-jobgrid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr); gap: 16px; align-items: start; }
.hp-block { margin-bottom: 26px; }
.hp-block > h2 { display: flex; align-items: baseline; gap: 6px; }
.hp-block--hold > h2::before { content: ""; width: 10px; height: 10px; border-radius: 3px; background: var(--hp-ink); display: inline-block; }
.hp-big { font-size: 1.25rem; font-weight: 700; }
.hp-kv { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 0 0 12px; }
.hp-kv dt { color: var(--hp-muted); font-size: .9rem; }
.hp-kv dd { margin: 0; white-space: pre-line; }
.hp-diary { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: var(--hp-ink); color: #fff; border-radius: 12px; padding: 10px 14px; margin-bottom: 16px; }
.hp-diary .hp-eyebrow { color: var(--hp-honey); margin: 0; }
.hp-diary code { flex: 1; min-width: 200px; font-size: .92rem; color: #fff; background: none; }
.hp-diary .hp-btn { background: transparent; color: #fff !important; border-color: rgba(255, 255, 255, .5); }

/* To book list */
.hp-town { margin-bottom: 14px; }
.hp-town__name { font-size: 1rem; margin: 10px 0 6px; padding-left: 10px; border-left: 4px solid var(--hp-amber); }
.hp-jobrow { display: flex; gap: 12px; align-items: center; background: var(--hp-card); border: 1px solid var(--hp-line); border-radius: 12px; padding: 10px 12px; margin-bottom: 8px; box-shadow: var(--hp-shadow); }
.hp-jobrow.is-urgent { border-left: 5px solid var(--hp-red); }
.hp-jobrow__main { flex: 1; text-decoration: none; color: var(--hp-ink) !important; min-width: 0; }
.hp-jobrow__top { font-size: 1rem; }
.hp-jobrow__meta { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: .86rem; color: var(--hp-muted); margin-top: 3px; }
.hp-attempts { color: var(--hp-amber-dark); font-weight: 600; }
.hp-jobrow__act { display: flex; gap: 6px; flex-shrink: 0; }

/* Steps */
.hp-steps { list-style: none; display: flex; gap: 0; padding: 0; margin: 0 0 18px; counter-reset: s; }
.hp-steps li { flex: 1; text-align: center; padding: 10px 6px; font-weight: 600; font-size: .9rem; background: var(--hp-card); border: 1px solid var(--hp-line); color: var(--hp-muted); }
.hp-steps li:first-child { border-radius: 999px 0 0 999px; }
.hp-steps li:last-child { border-radius: 0 999px 999px 0; }
.hp-steps li.is-done { background: var(--hp-ok-bg); color: #075232; }
.hp-steps li.is-now { background: var(--hp-honey); color: var(--hp-ink); border-color: var(--hp-amber); }

/* Timeline */
.hp-timeline { list-style: none; margin: 0; padding: 0; }
.hp-timeline li { display: grid; grid-template-columns: 130px 1fr; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--hp-line-soft); font-size: .93rem; }
.hp-timeline li:last-child { border-bottom: 0; }
.hp-timeline__when { color: var(--hp-muted); font-size: .85rem; }

/* People and calls */
.hp-personcard { padding: 10px 0; border-bottom: 1px solid var(--hp-line-soft); }
.hp-personcard:last-child { border-bottom: 0; }
.hp-callrow { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }

/* Forms */
.hp-order { max-width: 900px; }
.hp-section { border: 1px solid var(--hp-line); background: var(--hp-card); border-radius: var(--hp-radius); padding: 18px 18px 8px; margin: 0 0 16px; box-shadow: var(--hp-shadow); min-width: 0; }
.hp-section legend { font-family: Fraunces, Georgia, serif; font-size: 1.15rem; font-weight: 600; padding: 0 8px; margin-left: -8px; float: left; width: 100%; margin-bottom: 10px; }
.hp-section legend + * { clear: both; }
.hp-field { display: flex; flex-direction: column; gap: 5px; margin-bottom: 14px; flex: 1; min-width: 0; }
.hp-field > span { font-weight: 600; font-size: .94rem; }
.hp-field--wide { width: 100%; }
.hp-req { color: var(--hp-red); font-style: normal; }
.hp-hint { color: var(--hp-muted); font-size: .84rem; }
.hp input[type="text"], .hp input[type="email"], .hp input[type="tel"], .hp input[type="number"], .hp input[type="search"], .hp input[type="password"], .hp input[type="date"], .hp input[type="time"], .hp input[type="url"], .hp select, .hp textarea {
	width: 100%; min-height: 44px; padding: 9px 12px; border: 1.5px solid #D8CDB6; border-radius: 10px; background: #fff; font: inherit; color: var(--hp-ink);
}
.hp textarea { min-height: 70px; resize: vertical; }
.hp input:focus, .hp select:focus, .hp textarea:focus { border-color: var(--hp-amber); }
.hp-row { display: flex; gap: 12px; flex-wrap: wrap; }
.hp-row > .hp-field { min-width: 180px; }
.hp-row--branch { align-items: flex-end; border-bottom: 1px dashed var(--hp-line); margin-bottom: 10px; }
.hp-inline { display: flex; gap: 6px; align-items: center; }
.hp-inline input { flex: 1; }
.hp-prefix, .hp-suffix { color: var(--hp-muted); font-weight: 600; white-space: nowrap; }
.hp-pc { max-width: 170px; text-transform: uppercase; }
.hp-check { display: flex; gap: 10px; align-items: flex-start; margin: 4px 0 14px; cursor: pointer; }
.hp-check input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--hp-green); flex-shrink: 0; }
.hp-check--consent { background: var(--hp-warn-bg); border: 1px solid #F3D9A0; padding: 12px 14px; border-radius: 12px; }
.hp-checks { display: flex; flex-wrap: wrap; gap: 0 16px; flex: 2; padding-top: 22px; }
.hp-checks .hp-check { margin: 0 0 8px; }
.hp-actions { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; margin: 6px 0 24px; }
.hp-reveal { border-left: 4px solid var(--hp-honey); padding: 4px 0 4px 14px; margin: 4px 0 14px; }

/* Pills and choice cards */
.hp-pills, .hp-choice { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.hp-pill { position: relative; cursor: pointer; }
.hp-pill input { position: absolute; opacity: 0; pointer-events: none; }
.hp-pill > span { display: inline-flex; flex-direction: column; padding: 9px 16px; border: 1.5px solid #D8CDB6; border-radius: 999px; background: #fff; font-weight: 600; transition: all .12s; }
.hp-pill > span b { font-weight: 600; }
.hp-pill input:checked + span { background: var(--hp-ink); border-color: var(--hp-ink); color: #fff; }
.hp-pill input:focus-visible + span { outline: 3px solid var(--hp-honey); outline-offset: 2px; }
.hp-choice .hp-pill { flex: 1; min-width: 170px; }
.hp-choice .hp-pill > span { border-radius: 14px; padding: 14px 16px; width: 100%; }
.hp-choice .hp-pill > span small { font-weight: 400; opacity: .8; }
.hp-choice .hp-pill input:checked + span { background: #FFF6DE; color: var(--hp-ink); border-color: var(--hp-amber); box-shadow: inset 0 0 0 1px var(--hp-amber); }

/* Address lookup */
.hp-addrlist { display: flex; flex-direction: column; max-height: 320px; overflow-y: auto; border: 1px solid var(--hp-line); border-radius: 12px; margin-bottom: 10px; }
.hp-addr { display: flex; justify-content: space-between; gap: 12px; align-items: center; text-align: left; background: #fff; border: 0; border-bottom: 1px solid var(--hp-line-soft); padding: 10px 14px; font: inherit; cursor: pointer; }
.hp-addr:hover { background: #FFFBEF; }
.hp-addr.is-chosen { background: #FFF1CC; font-weight: 600; }
.hp-addr__meta { font-size: .82rem; color: var(--hp-muted); white-space: nowrap; }

/* People repeater */
.hp-person { border: 1px solid var(--hp-line-soft); border-radius: 12px; padding: 12px 14px 2px; margin-bottom: 12px; background: #FFFDF8; }
.hp-person__head { display: flex; justify-content: space-between; margin-bottom: 8px; }
.hp-phones { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.hp-phones .hp-inline { width: 100%; max-width: 320px; }

/* Leads */
.hp-lead { display: flex; gap: 16px; background: var(--hp-card); border: 1px solid var(--hp-line); border-radius: var(--hp-radius); padding: 14px 16px; margin-bottom: 10px; box-shadow: var(--hp-shadow); }
.hp-lead__main { flex: 1; min-width: 0; }
.hp-lead__msg { margin-top: 6px; padding: 8px 10px; background: var(--hp-base); border-radius: 8px; font-size: .92rem; white-space: pre-line; }
.hp-lead__act { display: flex; flex-direction: column; gap: 6px; align-items: flex-end; }

/* Users */
.hp-userrow { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--hp-line-soft); }
.hp-userrow.is-off { opacity: .55; }
.hp-userrow__act { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }

/* Notes */
.hp-note { display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; background: #FFF6DE; border: 1px solid #F3D9A0; border-radius: var(--hp-radius); padding: 14px 16px; }
.hp-done { max-width: 640px; background: var(--hp-card); border: 1px solid var(--hp-line); border-radius: var(--hp-radius); padding: 28px; box-shadow: var(--hp-shadow); }

/* Modal */
.hp-modal { position: fixed; inset: 0; background: rgba(28, 24, 19, .5); z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 16px; }
.hp-modal__box { background: #fff; border-radius: 18px; width: 100%; max-width: 560px; max-height: calc(100vh - 32px); overflow-y: auto; box-shadow: 0 20px 60px rgba(0, 0, 0, .3); }
.hp-modal__head { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px 0; }
.hp-modal__head h3 { margin: 0; }
.hp-modal__x { background: none; border: 0; font-size: 1.8rem; line-height: 1; cursor: pointer; color: var(--hp-muted); }
.hp-modal__body { padding: 14px 20px 4px; }
.hp-modal__foot { display: flex; gap: 16px; align-items: center; padding: 8px 20px 20px; }

/* Login card */
.hp-auth { display: flex; justify-content: center; padding-top: 24px; }
.hp-auth__card { width: 100%; max-width: 440px; background: var(--hp-card); border: 1px solid var(--hp-line); border-radius: 20px; padding: 30px 28px; box-shadow: var(--hp-shadow); border-top: 5px solid var(--hp-amber); }
.hp-auth__title { font-size: 1.9rem; }
.hp-auth__foot { margin: 14px 0 0; text-align: center; font-size: .94rem; }
.hp-form { margin-top: 12px; }

/* Private page */
.hp-private__head { margin: 10px 0 18px; }

/* Mobile */
@media (max-width: 860px) {
	.hp-jobgrid, .hp-grid2 { grid-template-columns: 1fr; }
	.hp-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.hp { padding: 4px 12px 96px; }
	.hp-bar { padding: 12px; gap: 10px; }
	.hp-bar__end { width: 100%; justify-content: space-between; }
	.hp-nav { order: 3; width: 100%; overflow-x: auto; flex-wrap: nowrap; }
	.hp-jobrow { flex-direction: column; align-items: stretch; }
	.hp-jobrow__act { justify-content: flex-end; }
	.hp-lead { flex-direction: column; }
	.hp-lead__act { flex-direction: row; align-items: center; flex-wrap: wrap; }
	.hp-timeline li { grid-template-columns: 1fr; gap: 0; }
	.hp-table--cards thead { display: none; }
	.hp-table--cards tr { display: block; padding: 10px 12px; border-bottom: 1px solid var(--hp-line); }
	.hp-table--cards td { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; border: 0; text-align: right; }
	.hp-table--cards td::before { content: attr(data-label); font-weight: 600; color: var(--hp-muted); text-align: left; font-size: .85rem; }
	.hp-steps li { font-size: .78rem; padding: 8px 2px; }
	.hp-row > .hp-field { min-width: 100%; }
	.hp-kv { grid-template-columns: 1fr; gap: 0 0; }
	.hp-kv dd { margin-bottom: 8px; }
}
.hp-pc::placeholder { text-transform: none; }
@media (max-width: 640px) {
	.hp-nav__a { white-space: nowrap; flex-shrink: 0; }
}
.hp-checks--row { padding-top: 4px; gap: 0 22px; }
.hp-checks--row .hp-check span { line-height: 1.3; }
/* Sent-email viewer */
.hp-timeline li:has(.hp-msg__view) { grid-template-columns: 130px 1fr auto; align-items: start; }
.hp-msgframe { width: 100%; height: 70vh; border: 1px solid var(--hp-line); border-radius: 10px; background: #FBF8F1; }
.hp-modal__box--wide { max-width: 760px; }
@media (max-width: 640px) { .hp-timeline li:has(.hp-msg__view) { grid-template-columns: 1fr auto; } .hp-timeline li:has(.hp-msg__view) .hp-timeline__when { grid-column: 1 / -1; } }
.hp-addrmsg { background: var(--hp-warn-bg); border: 1px solid #F3D9A0; border-radius: 10px; padding: 9px 12px; font-size: .92rem; margin: -4px 0 14px; }
.hp-addrmsg--error { background: var(--hp-red-bg); border-color: #F5C2BC; color: #7A1A12; }

/* Phase 2: diaries, team, quick notes, guide, scheduled messages */
.hp-feed { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--hp-line-soft); flex-wrap: wrap; }
.hp-feed:last-child { border-bottom: 0; }
.hp-feed__act { display: flex; gap: 8px; flex-wrap: wrap; }
.hp-steps-list { padding-left: 20px; margin: 0 0 12px; }
.hp-steps-list li { margin-bottom: 8px; }
.hp-quick { max-width: 560px; margin: 0 auto; background: var(--hp-card); border: 1px solid var(--hp-line); border-radius: var(--hp-radius); padding: 20px; box-shadow: var(--hp-shadow); }
.hp-quick textarea { min-height: 140px; }
.hp-scheduled { background: var(--hp-warn-bg); border: 1px solid #F3D9A0; border-radius: 10px; padding: 8px 12px; margin-bottom: 12px; }
.hp-jobrow--link { text-decoration: none; color: var(--hp-ink) !important; }
.hp-jobrow--link:hover { background: #FFFBEF; }
.hp-guide { display: flex; justify-content: center; }
.hp-guide__card { max-width: 680px; background: var(--hp-card); border: 1px solid var(--hp-line); border-top: 5px solid var(--hp-amber); border-radius: 18px; padding: 28px; box-shadow: var(--hp-shadow); }
.hp-guide__card h2 { margin-top: 22px; font-size: 1.2rem; }
.hp-guide__card ul { padding-left: 20px; }
.hp-guide__card li { margin-bottom: 6px; }
.hp-guide__sign { margin-top: 22px; }
@media (max-width: 640px) { .hp-guide__card { padding: 20px 16px; } .hp-feed__act { width: 100%; } }
/* Compact the office nav now it has more tabs */
@media (min-width: 641px) {
	.hp-nav { gap: 2px; }
	.hp-nav__a { padding: 8px 11px; font-size: .92rem; }
}
.hp-quick__more { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--hp-line-soft); }

/* Phase 3: documents */
.hp-card--docs { border-color: #B9E1CC; }
.hp-docrow { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--hp-line-soft); }
.hp-docrow__act { display: flex; gap: 10px; align-items: center; flex-shrink: 0; }
.hp-certform { margin-bottom: 8px; }
.hp-mini { max-width: 90px; }
.hp-upload { display: block; margin: 12px 0 4px; cursor: pointer; }
.hp-upload .hp-file { position: absolute; opacity: 0; width: 1px; height: 1px; }
.hp-upload:focus-within .hp-btn { outline: 3px solid var(--hp-honey); outline-offset: 2px; }
.hp-send { margin-top: 10px; }
/* Anything marked hidden stays hidden, whatever its layout class */
.hp [hidden] { display: none !important; }
