/* FRU Portal: the whole page at /portal/ and /office/. No theme stylesheet
   loads on these screens, so these rules are the only ones in play. */

html:has(> body.frup-body--portal) { background: #0a0a0a; }
.frup-body {
	--red: #cb3c20; --red-deep: #9b0a0e;
	--ink: #fff; --bg: #0a0a0a; --panel: #141414; --rule: #2c2c2c; --field: #0d0d0d; --fline: #3a3a3a;
	--g2: #b8b3ab; --g3: #8a8782; --g4: #6b6862;
	--ok: #7fd39a; --warn: #f0bf5f;
	--head: "rockwell", Rockwell, "Roboto Slab", Georgia, serif;
	--name: "futura-pt-condensed", "Futura-CondensedMedium", "Futura Condensed", "Arial Narrow", sans-serif;
	--body: "gill-sans-nova", "Gill Sans", "Gill Sans MT", "Helvetica Neue", Arial, sans-serif;
	margin: 0; background: var(--bg); color: var(--ink); font-family: var(--body); font-size: 16px; line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}
/* Office: a light sheet for all-day work */
.frup-body--office { --ink: #1a1a1a; --bg: #f2f2f2; --panel: #fff; --rule: #e1e1e1; --field: #fff; --fline: #bbb; --g2: #555; --g3: #6b6862; --ok: #1f7a3d; --warn: #8a5b00; }
.frup-body *, .frup-body *::before, .frup-body *::after { box-sizing: border-box; }
.frup-body a { color: inherit; }
.frup-body h1, .frup-body h2, .frup-body h3 { font-family: var(--head); text-transform: uppercase; color: inherit; margin: 0; padding: 0; line-height: 1.1; }
.frup-body input, .frup-body select, .frup-body textarea, .frup-body button { font-family: var(--body); }
#frup { max-width: 1180px; margin: 0 auto; padding: 36px 24px 80px; }
.frup-body--office #frup { max-width: 1320px; }
.frup-h3 { font-family: var(--name); font-weight: 500; letter-spacing: .04em; font-size: 21px; }

/* Header bar: logo, menu, who is signed in */
.frup-top { background: #0a0a0a; border-bottom: 1px solid #2c2c2c; color: #fff; }
.frup-body--office .frup-top { border-bottom: 0; }
.frup-top-in { max-width: 1180px; margin: 0 auto; padding: 16px 24px; display: flex; align-items: center; gap: 28px; }
.frup-body--office .frup-top-in { max-width: 1320px; }
.frup-logo img { display: block; width: 128px; height: auto; }
.frup-top-tag { font-family: var(--head); text-transform: uppercase; font-size: 12px; letter-spacing: .14em; color: var(--red); border-left: 1px solid #444; padding-left: 16px; }
.frup-nav { display: flex; flex-wrap: wrap; gap: 6px 26px; align-items: center; flex: 1; }
.frup-nav a { font-family: var(--head); text-transform: uppercase; font-size: 12px; letter-spacing: .06em; text-decoration: none; color: #b8b3ab; padding: 6px 0; border-bottom: 2px solid transparent; }
.frup-nav a.is-on, .frup-nav a:hover { color: #fff; border-bottom-color: var(--red); }
.frup-nav-user { margin-left: auto; color: #8a8782; font-size: 12px; text-align: right; line-height: 1.35; }
.frup-nav .frup-nav-user a { font-family: var(--body); text-transform: none; font-size: 12px; letter-spacing: 0; padding: 0; border: 0; color: #b8b3ab; text-decoration: underline; }

/* Signed out: one centered column, as in the prototype */
/* A warm red light from above, fading into the black: the sign-in screens and the client portal */
.frup-body--portal { min-height: 100vh; background: radial-gradient(ellipse 70% 520px at 50% 0%, rgba(203, 60, 32, .20), transparent 70%), var(--bg); }
.frup-body--portal .frup-top { background: transparent; border-bottom-color: rgba(255, 255, 255, .08); }
.frup-body--auth { min-height: 100vh; background: radial-gradient(ellipse 70% 55% at 50% 0%, rgba(203, 60, 32, .22), transparent 70%), radial-gradient(ellipse 60% 40% at 50% 100%, rgba(155, 10, 14, .10), transparent 70%), var(--bg); }
.frup-body--auth #frup { padding: 64px 24px 80px; }
.frup-auth { max-width: 500px; margin: 0 auto; }
.frup-auth-logo img { display: block; width: 200px; max-width: 56%; height: auto; margin: 0 auto 30px; }
.frup-auth-card { background: rgba(20, 20, 20, .92); border: 1px solid var(--rule); border-top: 3px solid var(--red); padding: 36px 40px 34px; box-shadow: 0 30px 80px rgba(0, 0, 0, .6); }
.frup-auth .frup-lead { font-size: 16px; margin: 0 0 26px; }
.frup-auth .frup-actions { flex-direction: column; align-items: stretch; }
#frup .frup-auth .frup-actions .frup-btn { width: 100%; text-align: center; padding-top: 17px; padding-bottom: 11px; }
.frup-pw { position: relative; display: block; }
.frup-pw input { padding-right: 76px !important; }
/* Show/Hide fills the right end of the box, so it is an easy tap on a phone. */
#frup .frup-pw-show { position: absolute; right: 4px; top: 4px; bottom: 4px; display: flex; align-items: center; background: transparent; border: 0; border-left: 1px solid var(--fline); color: var(--g2); font-family: var(--head); text-transform: uppercase; letter-spacing: .1em; font-size: 11px; padding: 3px 12px 0; cursor: pointer; }
#frup .frup-pw-show:hover { color: #fff; border-color: #777; }
.frup-auth .frup-remember { font-size: 14px; color: var(--g2); }
.frup-auth-foot { margin: 24px 0 0; padding-top: 20px; border-top: 1px solid var(--rule); color: var(--g3); font-size: 15px; line-height: 1.8; }
.frup-auth-foot a { color: var(--g2); text-decoration: none; border-bottom: 1px solid var(--red); }
.frup-auth-forgot { margin: 16px 0 0; text-align: center; font-size: 15px; }
.frup-auth-forgot a { color: var(--g2); text-decoration: none; border-bottom: 1px solid var(--red); }
.frup-auth-forgot a:hover { color: var(--ink); }
.frup-auth-new { margin: 28px 0 0; padding-top: 26px; border-top: 1px solid var(--rule); text-align: center; }
.frup-auth-new-h { margin: 0; font-family: var(--head); text-transform: uppercase; letter-spacing: .06em; font-size: 18px; color: var(--ink); }
.frup-auth-new-t { margin: 8px 0 0; color: var(--g2); font-size: 15px; }
.frup-auth-new .frup-actions { margin-top: 18px; }

/* Type */
.frup-head { margin: 0 0 24px; }
.frup-eyebrow { font-family: var(--head); color: var(--red); text-transform: uppercase; letter-spacing: .14em; font-size: 13px; margin: 0 0 8px; }
#frup .frup-h1 { font-size: 40px; font-weight: 400; letter-spacing: .01em; margin: 0 0 10px; }
#frup .frup-h2 { font-size: 22px; font-weight: 400; letter-spacing: .03em; margin: 0 0 16px; }
.frup-lead { color: var(--g2); font-size: 17px; margin: 0; max-width: 760px; }
.frup-muted { color: var(--g3); }
.frup-hint { display: block; font-size: 13px; color: var(--g3); margin-top: 5px; }
.frup-ferr { display: block; color: #ff8a73; font-size: 14px; margin: 6px 0; }
#frup.frup--office .frup-ferr { color: #a42a12; }

/* Layout */
.frup-grid2 { display: grid; grid-template-columns: 2fr 1fr; gap: 28px; align-items: start; }
.frup-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 20px; }
.frup-grid1 { display: grid; gap: 14px; }
.frup-full { grid-column: 1 / -1; }
.frup-card { background: var(--panel); border: 1px solid var(--rule); padding: 24px; margin: 0 0 20px; }
.frup-card > p:last-child { margin-bottom: 0; }
.frup-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
/* A card's own button row, set off by a rule at the bottom of the card. */
.frup-card-foot { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px -24px -24px; padding: 18px 24px; border-top: 1px solid var(--rule); }
/* A second section inside a card (Mailing address, Add a person). */
.frup-subsec { margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--rule); }
.frup-subsec > .frup-h3 { margin: 0 0 6px; font-size: 17px; letter-spacing: .06em; }
.frup-sec > .frup-h3 { margin: 0 0 6px; font-size: 17px; letter-spacing: .06em; }
.frup-sec .frup-muted { margin: 0; }
/* After a list: space, no rule, so there is never a line under the last item. */
.frup-subsec--plain { margin-top: 26px; padding-top: 0; border-top: 0; }
.frup-subsec > .frup-h3 + .frup-form, .frup-subsec > .frup-h3 + .frup-grid { margin-top: 14px; }
/* People and saved cards: one framed row each, the action on the right. */
.frup-plist { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.frup-plist li { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; background: var(--field); border: 1px solid var(--rule); border-left: 3px solid var(--red); }
.frup-plist li form { flex: none; margin: 0; }
.frup-plist-main { min-width: 0; }
.frup-plist-name { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 17px; color: var(--ink); }
.frup-plist-name .frup-chip { font-size: 12px; padding: 2px 8px 1px; }
.frup-plist-main small { display: block; margin-top: 3px; font-size: 13px; color: var(--g3); overflow-wrap: anywhere; }
.frup-plist-none { margin: 14px 0 0; color: var(--g3); }
.frup-plist + .frup-hint { margin-top: 14px; }
.frup-passfoot { align-items: center; gap: 12px 20px; }
.frup-passfoot .frup-hint { margin: 0; }
#frup .frup-linkbtn { background: none; border: 0; padding: 0; font: inherit; color: var(--ink); border-bottom: 1px solid var(--red); cursor: pointer; }
.frup-passlink { margin: 16px 0 0; }

/* Buttons */
#frup .frup-btn { display: inline-block; background: var(--red); color: #fff; border: 1px solid var(--red); font-family: var(--head); text-transform: uppercase; letter-spacing: .1em; font-size: 13px; padding: 15px 20px 9px; text-decoration: none; cursor: pointer; border-radius: 0; line-height: 1.2; }
#frup .frup-btn:hover { background: var(--red-deep); border-color: var(--red-deep); }
#frup .frup-btn--ghost { background: transparent; color: var(--ink); border-color: #555; }
#frup.frup--office .frup-btn--ghost { border-color: #bbb; }
/* The heading face draws its capitals high in the line, so buttons carry more padding above than below to look centred. */
#frup .frup-btn--sm { padding: 9px 12px 5px; font-size: 11px; }
#frup .frup-btn[disabled] { opacity: .35; cursor: not-allowed; }

/* Chips */
.frup-chip { display: inline-block; font-family: var(--name); text-transform: uppercase; letter-spacing: .08em; font-size: 13px; padding: 2px 10px; border: 1px solid currentColor; white-space: nowrap; color: var(--g2); }
.frup-chip--fill { color: #fff; background: var(--red); border-color: var(--red); }
.frup-chip--ok { color: var(--ok); }
.frup-chip--warn { color: var(--warn); }

/* Notices */
.frup-notice { border-left: 3px solid var(--red); background: rgba(203, 60, 32, .12); padding: 12px 16px; margin: 0 0 20px; }
.frup-notice--ok { border-left-color: #3f9a5b; background: rgba(63, 154, 91, .14); }
.frup-notice ul { margin: 6px 0 0 18px; padding: 0; }

/* Forms */
.frup-f label { display: block; font-family: var(--head); text-transform: uppercase; letter-spacing: .08em; font-size: 12px; color: var(--g2); margin-bottom: 6px; }
.frup-f input, .frup-f select, .frup-f textarea, .frup-lineact input[type=text] { width: 100%; background: var(--field); border: 1px solid var(--fline); color: var(--ink); padding: 12px; border-radius: 0; font-size: 16px; }
.frup-f input:focus, .frup-f select:focus, .frup-f textarea:focus { outline: none; border-color: var(--red); }
.frup-f input[type=file] { padding: 10px; color: var(--g3); font-size: 14px; }
/* File pickers: the browser's grey button restyled as a portal button. */
.frup-body input[type=file]::file-selector-button { margin-right: 14px; padding: 10px 14px 7px; background: transparent; color: var(--ink); border: 1px solid #555; border-radius: 0;
	font-family: var(--head); text-transform: uppercase; letter-spacing: .1em; font-size: 11px; cursor: pointer; }
.frup-body--office input[type=file]::file-selector-button { border-color: #bbb; }
.frup-body input[type=file]::file-selector-button:hover { border-color: var(--red); }
/* Dropdowns: the same height and inset as the text boxes, with a drawn arrow. */
.frup-f input, .frup-f select { line-height: 1.25; }
.frup-f select { -webkit-appearance: none; appearance: none; padding-right: 40px; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%238a8782' stroke-width='1.6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center; }
/* Fields that cannot be changed here read as facts, not as boxes to type in. */
.frup-f input[readonly] { background: transparent; border-style: dashed; color: var(--g2); cursor: default; }
.frup-f input[readonly]:focus { border-color: var(--fline); }
.frup-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.frup-check { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; margin: 12px 0; cursor: pointer; }
/* Tick boxes drawn in the portal's colours (the browser's white box glares on the dark pages). */
.frup-body input[type=checkbox] { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; margin: 3px 0 0; flex: none; display: inline-grid; place-content: center;
	background: var(--field); border: 1px solid #8a8782; border-radius: 0; cursor: pointer; vertical-align: top; }
.frup-body input[type=checkbox]:checked { background: var(--red); border-color: var(--red); }
.frup-body input[type=checkbox]:checked::before { content: ""; width: 10px; height: 5px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: translateY(-1px) rotate(-45deg); }
.frup-body input[type=checkbox]:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.frup-body input[type=checkbox]:disabled { opacity: .4; cursor: not-allowed; }
.frup-check input { margin-top: 3px; }
.frup-f input.frup-sig { font-family: "Snell Roundhand", "Brush Script MT", cursive; font-size: 28px; padding: 6px 12px; }
.frup-terms { max-height: 280px; overflow: auto; background: var(--field); border: 1px solid var(--fline); padding: 16px 18px; font-size: 13px; color: var(--g2); line-height: 1.55; margin: 0 0 8px; }

/* Booking steps */
.frup-step { margin: 0 0 40px; }
#frup .frup-step-h { font-size: 20px; font-weight: 400; margin: 0 0 16px; padding: 0 0 10px; border-bottom: 1px solid var(--rule); }
#frup .frup-step-h--plain { border-bottom: 0; padding-bottom: 0; }
.frup-step-h span { margin-right: 12px; } /* one color per heading */
.frup-stallions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.frup-st { display: block; background: var(--panel); border: 1px solid var(--rule); cursor: pointer; position: relative; text-align: center; padding: 0 0 16px; margin: 0; }
.frup-st input { position: absolute; opacity: 0; pointer-events: none; }
.frup-st img, .frup-noimg { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; object-position: 50% 25%; background: #000; margin: 0 0 12px; }
.frup-st .frup-h3 { margin: 0 8px 2px; font-size: clamp(15px, 1.6vw, 19px); letter-spacing: .02em; overflow-wrap: break-word; }
.frup-x { font-size: 13px; color: var(--g2); margin: 0 10px 8px; }
.frup-fee { font-family: var(--head); text-transform: uppercase; font-size: 12px; letter-spacing: .06em; color: var(--g2); padding: 0 8px; }
.frup-fee b { display: block; font-family: var(--body); font-weight: 600; font-size: 22px; color: var(--red); letter-spacing: 0; margin-top: 2px; }
.frup-until { font-size: 12px; color: var(--g3); }
.frup-st.is-on, .frup-st:has(input:checked) { border-color: var(--red); box-shadow: 0 0 0 1px var(--red) inset; }
.frup-st.is-off { cursor: default; order: 1; }
/* Desktop cards: the fee sits on the bottom line of every card, so fees line up across a row whatever the name's length. */
.frup-st { display: flex; flex-direction: column; }
.frup-st > .frup-fee { margin-top: auto; padding-top: 10px; }
.frup-st.is-off .frup-h3 { color: var(--g2); }
/* Every link underlined in the portal red, visited or not. */
#frup a { text-decoration-color: var(--red); text-underline-offset: 3px; }
.frup-nowrap { white-space: nowrap; }
.frup-st.is-off img { opacity: .35; }
.frup-opts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 0 18px; }
.frup-opts--2 { grid-template-columns: 1fr 1fr; }
.frup-opts--1 { grid-template-columns: 1fr; margin-bottom: 12px; }
/* Shipments: collection days as a grid of small tiles; the request form opens from one button. */
.frup-opts--days { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.frup-opts--days .frup-opt { padding: 10px 34px 10px 12px; }
.frup-opts--days .frup-opt::after { top: 12px; right: 10px; width: 14px; height: 14px; }
.frup-opts--days .frup-opt b { font-size: 16px; }
.frup-opts--days .frup-opt span { font-size: 12px; }
@media (max-width: 760px) { #frup .frup-opts.frup-opts--days { grid-template-columns: 1fr 1fr; } }
.frup-ship .frup-h3 { margin: 22px 0 10px; font-size: 17px; letter-spacing: .06em; }
.frup-shipreq { margin-top: 16px; }
.frup-shiplist + .frup-shipreq, .frup-shiplist + .frup-ship-why { margin-top: 18px; }
.frup-shipto[hidden] { display: none; }
.frup-invite { border-left: 3px solid var(--red); }
.frup-invite .frup-actions form { margin: 0; }
.frup-ship form > .frup-f { margin-top: 20px; }
.frup-shiplist .frup-plist-name { flex-direction: column; align-items: flex-start; gap: 6px; }
/* Details first, the office's buttons under them, so neither is squeezed in a narrow column. */
.frup-shipboard > li { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.frup-shipacts { display: flex; flex-wrap: wrap; gap: 8px; }
.frup-shipacts form { display: flex; gap: 6px; margin: 0; }
.frup-shipacts input[type=text] { padding: 6px 8px; font-size: 13px; border: 1px solid var(--fline); background: var(--field); color: var(--ink); width: 190px; }
@media (max-width: 760px) { .frup-shipacts form { flex: 1 1 100%; } .frup-shipacts input[type=text] { flex: 1; width: auto; } }
.frup-opt { display: block; position: relative; border: 1px solid var(--fline); padding: 14px 44px 14px 14px; cursor: pointer; background: var(--field); margin: 0; }
/* A round mark on each choice, filled on the one picked. */
.frup-opt::after { content: ""; position: absolute; top: 15px; right: 14px; width: 16px; height: 16px; border: 1px solid #6b6862; border-radius: 50%; box-sizing: border-box; }
.frup-opt.is-on::after, .frup-opt:has(input:checked)::after { border-color: var(--red); background: radial-gradient(circle, var(--red) 0 4px, transparent 4.5px); }
.frup-opt input { position: absolute; opacity: 0; pointer-events: none; }
.frup-opt b { display: block; font-family: var(--name); text-transform: uppercase; letter-spacing: .06em; font-weight: 500; font-size: 18px; }
.frup-opt span { font-size: 14px; color: var(--g2); }
.frup-opt.is-on, .frup-opt:has(input:checked) { border-color: var(--red); background: rgba(203, 60, 32, .12); }

/* Money */
.frup-due .frup-amt { font-family: var(--body); font-weight: 600; font-size: 44px; line-height: 1; margin: 6px 0 4px; }
.frup-amt sup { font-size: 15px; color: var(--red); margin-left: 4px; vertical-align: top; position: relative; top: 6px; }
.frup-lines { list-style: none; padding: 0; margin: 14px 0 0; }
.frup-lines li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--rule); font-size: 15px; }
.frup-lines li:first-child { border-top: 0; }
.frup-lines li small { display: block; color: var(--g3); font-size: 13px; }
/* Fees on a contract: the name on the left; amount and status always together on the right. */
.frup-fees { list-style: none; margin: 0; padding: 0; }
/* Mares list: each booking on its own line with its status. */
.frup-mare-bks { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.frup-mare-bk { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.frup-mare-bk .frup-chip { font-size: 11px; padding: 1px 8px; }
.frup-fees li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: start; padding: 12px 0; border-top: 1px solid var(--rule); }
.frup-fees li:first-child { border-top: 0; padding-top: 0; }
.frup-fees-name { font-size: 15px; }
.frup-fees-name small { display: block; color: var(--g3); font-size: 13px; margin-top: 2px; }
.frup-fees-amt { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; white-space: nowrap; }
.frup-fees-amt b { font-weight: 600; font-size: 15px; }
.frup-fees-amt .frup-chip { font-size: 11px; padding: 1px 8px; }
.frup-fees li.is-off .frup-fees-amt b { color: var(--g3); text-decoration: line-through; font-weight: 400; }
.frup-lines li.is-tot { font-weight: 600; font-size: 17px; }
.frup-lines li.is-tot span:last-child { color: var(--red); }
.frup-pick label { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; margin: 0; }
.frup-pick input { margin-top: 4px; accent-color: var(--red); width: 18px; height: 18px; flex: none; }
.frup-paytotal { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; padding: 14px 0 0; border-top: 1px solid var(--rule); }
.frup-paytotal b { font-size: 28px; }
.frup-paytotal small { color: var(--g3); flex-basis: 100%; margin-top: -6px; }
.frup-h3.frup-paywith { margin: 30px 0 14px; padding-top: 26px; border-top: 1px solid var(--rule); }
.frup-lineact { display: flex; gap: 8px; flex-wrap: wrap; }
.frup-lines li.frup-lineact { justify-content: flex-start; }
.frup-lines + .frup-h3, .frup-lines + p + .frup-h3 { margin-top: 26px; }
.frup-lineact form { display: flex; gap: 8px; align-items: center; }
.frup-lineact input[type=text] { width: 220px; padding: 7px 10px; font-size: 14px; }

/* Mares, timeline, documents */
#frup .frup-mare { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; background: var(--panel); border: 1px solid var(--rule); border-left: 3px solid var(--red); padding: 18px 20px; margin: 0 0 14px; text-decoration: none; }
.frup-who, .frup-next { font-size: 14px; color: var(--g2); }
.frup-next { margin-top: 6px; }
.frup-tl { list-style: none; margin: 0; padding: 0 0 0 4px; }
.frup-tl li { position: relative; padding: 0 0 18px 28px; border-left: 2px solid var(--rule); margin-left: 7px; }
.frup-tl li:last-child { border-left-color: transparent; padding-bottom: 0; }
.frup-tl li::before { content: ""; position: absolute; left: -9px; top: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--red); }
.frup-when { font-size: 13px; color: var(--g3); }
.frup-facts { display: grid; grid-template-columns: auto 1fr; gap: 6px 18px; margin: 0; font-size: 15px; }
.frup-facts dt { color: var(--g3); }
.frup-facts dd { margin: 0; overflow-wrap: anywhere; min-width: 0; }
.frup-docs { list-style: none; margin: 0; padding: 0; }
.frup-docs li { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; border-top: 1px solid var(--rule); }
.frup-docs li:first-child { border-top: 0; }
/* Links in lists: an underline that follows the words, so a wrapped title never draws a second rule across the row. */
#frup .frup-docs a { border-bottom: 0; text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: 4px; text-decoration-thickness: 1px; }
/* Title on its own line, the date under it, so long titles never squeeze into a narrow column. */
.frup-docs li { flex-direction: column; align-items: flex-start; gap: 3px; }
.frup-docs span { color: var(--g3); font-size: 13px; white-space: nowrap; flex: none; }

/* Office */
.frup-stats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 0 0 22px; }
.frup-stat { background: #fff; border: 1px solid var(--rule); padding: 14px 16px; }
.frup-stat b { display: block; font-weight: 600; font-size: 28px; line-height: 1.1; }
.frup-stat span { font-family: var(--head); text-transform: uppercase; font-size: 11px; letter-spacing: .1em; color: var(--g3); }
.frup-stat.is-hl b { color: var(--red); }
.frup-filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; margin: 0 0 14px; }
.frup-filters .frup-f { min-width: 200px; }
.frup-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--rule); font-size: 14px; }
.frup-table th { text-align: left; font-family: var(--head); text-transform: uppercase; font-weight: 400; font-size: 11px; letter-spacing: .1em; color: var(--g3); padding: 10px 12px; border-bottom: 1px solid var(--rule); background: #fafafa; }
.frup-table td { padding: 11px 12px; border-top: 1px solid #ececec; vertical-align: top; }
.frup-table tr:first-child td { border-top: 0; }
.frup-table small { display: block; color: var(--g3); font-size: 12px; }
#frup .frup-table a { text-decoration: none; border-bottom: 1px solid var(--red); }
.frup-log { list-style: none; margin: 0 0 14px; padding: 0; font-size: 14px; }
.frup-log li { padding: 8px 0; border-top: 1px solid #ececec; }
.frup-log li:first-child { border-top: 0; }
.frup-log small { display: block; color: var(--g3); font-size: 12px; }

/* Home: "Your contracts" heading over the left column; both columns' boxes start level */
.frup-grid2--home { row-gap: 0; }
.frup-grid2--home > .frup-h2 { grid-column: 1; grid-row: 1; }
.frup-grid2--home > .frup-home-main { grid-column: 1; grid-row: 2; }
.frup-grid2--home > .frup-home-side { grid-column: 2; grid-row: 2; }

@media (max-width: 980px) {
	.frup-grid2 { grid-template-columns: 1fr; }
	/* Stacked: the fee summary comes before the contract and the sign button. */
	.frup-review > div:last-child { order: -1; }
	/* Stacked: the cards' own bottom margin is the only gap, so every gap matches. */
	.frup-grid2:not(.frup-grid2--home) { row-gap: 0; }
	.frup-grid2--home > .frup-h2, .frup-grid2--home > .frup-home-main, .frup-grid2--home > .frup-home-side { grid-column: auto; grid-row: auto; }
	.frup-grid2--home > .frup-home-side { margin-top: 28px; }
	.frup-stallions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.frup-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
	#frup { padding: 24px 16px 60px; }
	.frup-top-in { flex-wrap: wrap; padding: 14px 16px; gap: 10px 18px; }
	.frup-logo img { width: 120px; }
	.frup-nav { flex-basis: 100%; gap: 4px 16px; }
	.frup-nav a { font-size: 13px; }
	.frup-nav-user { margin-left: 0; flex-basis: 100%; text-align: left; font-size: 14px; }
	.frup-nav .frup-nav-user a { font-size: 14px; }
	.frup-body--auth #frup { padding: 36px 16px 60px; }
	.frup-auth-card { padding: 28px 22px 26px; }
	#frup .frup-h1 { font-size: 30px; }
	.frup-grid, .frup-opts, .frup-opts--2 { grid-template-columns: 1fr; }
	.frup-stallions { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.frup-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.frup-card { padding: 18px; }
	.frup-card-foot { margin: 20px -18px -18px; padding: 16px 18px; }
	#frup .frup-card-foot .frup-btn { flex: 1 1 100%; text-align: center; }
	.frup-plist li { padding: 14px; gap: 12px; }
	.frup-hm { display: none; }
	.frup-table { font-size: 13px; }
}

/* Sign-up code and small link buttons */
.frup-f input.frup-code { font-size: 26px; letter-spacing: .3em; text-align: center; }
.frup-linkbtn { background: none; border: 0; padding: 0; color: var(--g2); border-bottom: 1px solid var(--red); font: inherit; cursor: pointer; }
.frup-turnstile { margin: 18px 0 0; }

/* 0.4: account switcher, Today, record, emails */
.frup-switch { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 4px; }
.frup-switch label { font-family: var(--head); text-transform: uppercase; font-size: 11px; letter-spacing: .1em; color: #8a8782; }
.frup-switch select { background: #141414; color: #fff; border: 1px solid #3a3a3a; padding: 5px 8px; font-size: 14px; max-width: 220px; }
.frup-nav-user .frup-switch + br { display: none; }
.frup-nav-user .frup-switch { display: flex; justify-content: flex-end; }
.frup-count { display: inline-block; min-width: 26px; padding: 1px 8px; margin-left: 6px; font-family: var(--body); font-size: 14px; letter-spacing: 0; text-align: center; color: #fff; background: var(--red); vertical-align: 3px; }
.frup-sm { font-size: 14px; margin: -8px 0 12px; }
.frup-log li form { display: inline-block; margin: 6px 0 0; }
.frup-rec-note { white-space: normal; }
#frup .frup-rec-file { display: inline-block; margin: 4px 0 0; text-decoration: none; border-bottom: 1px solid var(--red); }
.frup-rec small a { color: var(--g3); }
.frup-more { margin: 14px 0 0; }
.frup-more summary { cursor: pointer; font-family: var(--head); text-transform: uppercase; font-size: 12px; letter-spacing: .08em; color: var(--g2); }
.frup-mailprev { display: block; width: 100%; height: 640px; border: 1px solid var(--rule); background: #f2f2f2; }
.frup-mailtext { font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
@media (max-width: 700px) {
	.frup-nav-user .frup-switch { justify-content: flex-start; }
	.frup-mailprev { height: 520px; }
}

/* 0.4.2: Mares tab */
#frup .frup-actions--top { margin: 0 0 20px; }
#frup .frup-lines a { border-bottom: 0; text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: 4px; text-decoration-thickness: 1px; }
#frup a:visited { color: inherit; }

/* 0.4.3: find her at AQHA */
.frup-aqha:empty { display: none; }
.frup-aqha { margin: -4px 0 4px; }
.frup-aqha-list { grid-template-columns: 1fr 1fr; }
@media (max-width: 700px) { .frup-aqha-list { grid-template-columns: 1fr; } }
.frup-aqha .frup-hint { margin: 0 0 8px; }
.frup-aqha-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; max-height: 340px; overflow: auto; }
#frup .frup-aqha-pick { display: grid; grid-template-columns: 1fr auto; gap: 2px 14px; width: 100%; text-align: left; background: var(--field); color: var(--ink); border: 1px solid var(--fline); padding: 10px 12px; cursor: pointer; font: inherit; }
#frup .frup-aqha-pick:hover, #frup .frup-aqha-pick:focus { border-color: var(--red); outline: none; }
.frup-aqha-pick b { grid-column: 1; font-weight: 600; }
.frup-aqha-pick span { grid-column: 1; font-size: 13px; color: var(--g2); }
.frup-aqha-pick em { grid-column: 2; grid-row: 1 / span 3; align-self: center; font-style: normal; font-family: var(--head); text-transform: uppercase; letter-spacing: .08em; font-size: 11px; color: var(--red); }
.frup-aqha-ok { border-left: 3px solid #3f9a5b; background: rgba(63, 154, 91, .14); padding: 10px 14px; font-size: 14px; }
.frup-aqha-ok .frup-linkbtn { font-size: 14px; }
#frup .frup-f input.is-aqha { border-color: #3f9a5b; }
.frup-aqha-note { margin: -8px 0 20px; font-size: 15px; }
.frup-aqha-note.is-ok { color: var(--ok); }
.frup-aqha-note.is-warn { color: var(--warn); }
.frup-log small.frup-warn-text { color: var(--warn); }

/* 0.5: the stallion's contract and the signature box */
/* The contract's pages, drawn to the width of the box; on wide screens the box scrolls on its own. */
.frup-pdfpages { display: flex; flex-direction: column; gap: 10px; background: #3b3b3b; padding: 10px; margin: 0 0 10px; min-height: 120px; }
.frup-pdfpages canvas { display: block; width: 100%; height: auto; background: #fff; box-shadow: 0 2px 10px rgba(0, 0, 0, .35); }
.frup-pdf-note { margin: 0; padding: 30px 10px; text-align: center; color: #d6d2cb; font-size: 14px; }
@media (min-width: 981px) { .frup-pdfpages { max-height: 720px; overflow-y: auto; } }
#frup .frup-pdf-link { border-bottom: 1px solid var(--red); text-decoration: none; font-size: 14px; }
.frup-sigpad { margin: 4px 0 6px; }
.frup-sigtabs { display: flex; gap: 0; margin: 16px 0 8px; }
/* Fee summary: the lines appear once a stallion is chosen; until then only the prompt shows. */
.frup-sum:not(.is-set) .frup-lines { display: none; }
/* The fee summary stays in view beside the form, on wide screens only (stacked, it would cover the page). */
@media (min-width: 981px) { .frup-review > div:last-child { position: sticky; top: 20px; } }
.frup-signbar { align-items: center; gap: 12px 20px; margin: 4px 0 0; }
.frup-signbar .frup-hint { margin: 0; flex: 1 1 260px; }
/* The vet box is its own step, not one of the breeding choices above it. */
.frup-vet { margin-top: 30px; }
.frup-vet > .frup-h3 { margin: 0 0 18px; }
#frup .frup-sigtabs button { background: transparent; color: var(--g2); border: 1px solid var(--fline); padding: 7px 18px; font-family: var(--head); text-transform: uppercase; letter-spacing: .08em; font-size: 12px; cursor: pointer; }
#frup .frup-sigtabs button + button { border-left: 0; }
#frup .frup-sigtabs button.is-on { background: var(--red); border-color: var(--red); color: #fff; }
.frup-sigpad canvas { display: block; width: 100%; height: auto; aspect-ratio: 900 / 240; background: #f7f4ee; border: 1px solid var(--fline); border-radius: 0; touch-action: none; filter: none; }
.frup-sigpad.is-draw canvas { cursor: crosshair; }
.frup-sigpad canvas { background-image: linear-gradient(to top, transparent 27%, #b9b2a5 27%, #b9b2a5 calc(27% + 1px), transparent calc(27% + 1px)); }
.frup-sigfoot { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 6px; }
#frup .frup-sigfoot .frup-linkbtn { padding: 10px 4px; border-bottom: 0; text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: 4px; }
.frup-sigfoot .frup-hint { margin: 0; }
@media (max-width: 700px) { .frup-pdfpages { padding: 6px; gap: 6px; } }
/* Office: placing fields on a contract */
.frup-tpl-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
.frup-tpl-side { position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow-y: auto; overscroll-behavior: contain; }
.frup-tpl-page { margin: 0 0 22px; }
.frup-tpl-pno { font-family: var(--head); text-transform: uppercase; font-size: 11px; letter-spacing: .1em; color: var(--g3); margin: 0 0 6px; }
.frup-tpl-sheet { position: relative; display: inline-block; box-shadow: 0 1px 6px rgba(0, 0, 0, .18); background: #fff; }
.frup-tpl-sheet canvas { display: block; }
.frup-tpl-layer { position: absolute; inset: 0; }
#frup-tpl.is-placing .frup-tpl-layer { cursor: crosshair; outline: 2px dashed var(--red); outline-offset: -2px; }
.frup-fm { position: absolute; color: #18348c; font-family: Helvetica, Arial, sans-serif; line-height: 1; white-space: nowrap; cursor: move; user-select: none; background: rgba(24, 52, 140, .07); outline: 1px dashed rgba(24, 52, 140, .45); }
.frup-fm--note { color: #6b6b6b; }
.frup-fm--mark { background: transparent; }
.frup-fm--mark:not(:empty) { outline: none; }
.frup-fm--mark:empty { border: 1.5px solid #18348c; border-radius: 50%; outline: none; }
.frup-fm--sign { display: flex; align-items: flex-end; font-size: 11px; font-style: italic; padding: 0 4px 2px; border-bottom: 1.5px solid #18348c; }
.frup-fm.is-sel { outline: 2px solid var(--red); background: rgba(203, 60, 32, .08); }
.frup-fm:focus { outline: 2px solid var(--red); }
.frup-tpl-acts { white-space: nowrap; }
.frup-tpl-acts form { display: flex; gap: 6px; align-items: center; margin: 8px 0 0; }
.frup-tpl-acts input[type=file] { max-width: 190px; font-size: 12px; }
.frup-table small + small { margin-top: 2px; }
@media (max-width: 1100px) { .frup-tpl-wrap { grid-template-columns: 1fr; } .frup-tpl-side { position: static; max-height: none; } }

/* 0.5.2: mare photos */
.frup-thumb { display: block; flex: none; object-fit: cover; object-position: 50% 30%; background: #1c1c1c; }
.frup-thumb--sm { width: 64px; height: 64px; }
.frup-thumb--lg { width: 100%; height: auto; aspect-ratio: 4 / 3; margin: 0 0 14px; }
.frup-thumb.is-empty { display: flex; align-items: center; justify-content: center; font-family: var(--head); font-size: 20px; letter-spacing: .04em; color: #6b6862; border: 1px solid var(--rule); }
.frup-thumb--lg.is-empty { font-size: 44px; }
#frup .frup-mare--thumb { grid-template-columns: auto 1fr auto; }
.frup-photo-card .frup-actions { margin-top: 10px; }
.frup-photo-card .frup-linkbtn { margin-top: 10px; font-size: 14px; }
@media (max-width: 700px) {
	.frup-thumb--sm { width: 52px; height: 52px; }
	#frup .frup-mare--thumb { gap: 6px 14px; grid-template-columns: auto 1fr; align-items: start; }
	#frup .frup-mare--thumb > .frup-chip { grid-column: 2; justify-self: start; margin-top: 12px; }
}

/* Contract page: amount due and the way to pay it */
.frup-paybar { display: flex; align-items: center; justify-content: space-between; gap: 18px 28px; flex-wrap: wrap; background: var(--red); color: #fff; padding: 20px 24px; margin: 8px 0 28px; }
.frup-paybar-due { display: flex; flex-direction: column; gap: 2px; }
.frup-paybar-due .frup-eyebrow { margin: 0; color: #fff; }
.frup-paybar-due b { font-family: var(--body); font-weight: 600; font-size: 34px; line-height: 1.1; }
.frup-paybar-due small { color: rgba(255, 255, 255, .85); font-size: 14px; }
#frup .frup-btn--lg { font-size: 15px; padding: 18px 34px 12px; }
#frup .frup-paybar .frup-btn { background: #fff; border-color: #fff; color: var(--red); padding: 17.5px 34px 12.5px; }
/* Rockwell capitals sit high in the line: more room on top so the text looks centered. */
#frup .frup-paybar .frup-btn:hover { background: #f1e4df; border-color: #f1e4df; color: var(--red-deep); }
@media (max-width: 700px) { .frup-paybar .frup-btn { width: 100%; text-align: center; } }
.frup-opt[hidden] { display: none; }
.frup-seed summary { cursor: pointer; }
.frup-seed .frup-log { margin-top: 12px; }

/* 0.6: paying on this page */
.frup-payfields { margin: 6px 0 4px; }
.frup-payfields .frup-check { margin-top: 14px; }
.frup-payfields input#frup-cc-number { letter-spacing: .06em; }

/* Home: the season at a glance */
.frup-season { margin: 0 0 44px; padding: 0 0 32px; border-bottom: 1px solid var(--rule); }
.frup-season-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; }
.frup-season-btn { margin-top: 18px; }
.frup-clock { display: flex; align-items: flex-end; align-items: last baseline; gap: 14px; text-align: left; flex: 0 0 auto; }
.frup-clock-n { font-family: var(--head); font-size: 76px; line-height: .82; color: var(--red); }
.frup-clock-n small { display: block; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; line-height: 1; margin-bottom: 8px; }
.frup-clock-n--sm { font-size: 40px; text-transform: uppercase; }
.frup-clock-t { color: var(--g2); font-size: 14px; line-height: 1.35; padding-bottom: 2px; }
.frup-cal { margin: 34px 0 0; }
.frup-cal-m { position: relative; height: 22px; }
.frup-cal-m span { position: absolute; top: 0; font-family: var(--head); text-transform: uppercase; letter-spacing: .14em; font-size: 11px; color: var(--g3); padding-left: 8px; border-left: 1px solid var(--fline); line-height: 1; height: 50px; }
.frup-cal-t { position: relative; height: 34px; border-bottom: 1px solid var(--fline); }
.frup-cal-t i { position: absolute; bottom: 0; width: 3px; height: 22px; margin-left: -1.5px; background: #3a3a3a; transform-origin: bottom; animation: frup-tick .5s ease-out both; }
.frup-cal-t i.is-past { background: var(--red); height: 16px; }
.frup-cal-t i.is-today { background: #fff; height: 30px; }
.frup-cal-t b { position: absolute; bottom: -1px; width: 2px; height: 40px; margin-left: -1px; background: #fff; }
.frup-cal-t b em { position: absolute; top: -16px; left: 6px; font-style: normal; font-family: var(--head); text-transform: uppercase; letter-spacing: .12em; font-size: 10px; color: #fff; white-space: nowrap; }
.frup-cal-key { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: 10px; font-size: 12px; color: var(--g3); }
.frup-cal-key i { display: inline-block; width: 3px; height: 11px; background: #3a3a3a; margin-right: 7px; vertical-align: -1px; }
.frup-cal-key i.is-past { background: var(--red); }
@keyframes frup-tick { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@media (prefers-reduced-motion: reduce) { .frup-cal-t i { animation: none; } }
/* The foal photo behind the season heading: the right half on a computer, out to the window edge, fading into the page. */
.frup-body { overflow-x: clip; }
.frup-season-top { position: relative; }
.frup-season-top > :not(.frup-season-pic) { position: relative; z-index: 1; }
.frup-season-pic { position: absolute; z-index: 0; top: -36px; bottom: -34px; right: calc((100% - 100vw) / 2); width: calc(52vw + 10px); pointer-events: none;
	-webkit-mask-image: linear-gradient(to right, transparent 0, rgba(0, 0, 0, .35) 26%, #000 58%); mask-image: linear-gradient(to right, transparent 0, rgba(0, 0, 0, .35) 26%, #000 58%); }
.frup-season-pic img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.frup-season-pic::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, var(--bg) 0, rgba(10, 10, 10, 0) 42%), rgba(10, 10, 10, .22); }
.has-pic .frup-clock { text-shadow: 0 2px 26px rgba(0, 0, 0, .9); }
.has-pic .frup-clock-t { color: #e4e0d9; }
@media (min-width: 1100px) { .has-pic .frup-season-top { min-height: 270px; align-items: center; } .has-pic .frup-clock { align-self: flex-end; } .has-pic .frup-clock { margin-right: 330px; } }
/* Narrower computers and tablets: the countdown goes under the button so it never covers the foal. */
@media (min-width: 761px) and (max-width: 1099px) { .has-pic .frup-season-top { flex-direction: column; align-items: flex-start; gap: 30px; } }
.frup-hstats { position: relative; z-index: 2; }
.frup-hstats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 34px; }
/* Four light cards on the dark page: the account's figures at a glance */
.frup-hstat { padding: 20px 22px 20px; display: flex; flex-direction: column; background: #141414; color: #fff; border: 1px solid #2a2a2a; border-top: 2px solid var(--red); box-shadow: 0 14px 34px rgba(0, 0, 0, .45); }
.frup-hstat > span { display: block; font-family: var(--head); text-transform: uppercase; letter-spacing: .12em; font-size: 11px; color: var(--red); }
.frup-hstat b { display: block; font-family: var(--name); font-weight: 500; font-size: 36px; letter-spacing: .02em; line-height: 1.1; margin-top: 6px; color: #fff; }
.frup-hstat small { display: block; font-size: 13px; color: var(--g3); margin-top: 8px; }
.frup-hstat-go { align-self: flex-start; margin-top: 10px; font-size: 13px; color: #fff; }
#frup a.frup-hstat-go { text-decoration: none; border-bottom: 1px solid var(--red); padding-bottom: 1px; font-weight: 600; }
#frup a.frup-hstat-go:hover { color: var(--red); }
.frup-segs { display: flex; gap: 3px; margin-top: 12px; }
.frup-segs i { flex: 1; height: 6px; background: #333; }
.frup-segs i.is-done { background: #fff; }
.frup-meter { height: 6px; background: #333; margin-top: 12px; }
.frup-meter i { display: block; height: 100%; background: #fff; }
/* The client's name with their business name under it */
.frup-ident { display: block; }
.frup-ident .frup-h1 { margin-bottom: 4px; }
/* Portal: the business name sits right under the person's name. */
.frup-body--portal #frup .frup-ident .frup-h1 { margin-bottom: 0; }
.frup-body--portal .frup-ident .frup-firm { margin-top: 3px; line-height: 1.2; }
.frup-firm { margin: 0; font-family: var(--name); font-weight: 500; text-transform: uppercase; letter-spacing: .18em; font-size: 17px; color: #cfc8bc; }
.frup-body--office .frup-firm { color: var(--g2); margin: -4px 0 8px; }
.frup-nav-firm { display: block; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #6f6c66; }
@media (max-width: 700px) {
	.frup-firm { font-size: 14px; letter-spacing: .14em; }
}
/* A stallion with no photo: his initials */
.frup-cross-ini { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; font-family: var(--head); font-size: 64px; color: #2e2e2e; background: radial-gradient(circle at 50% 40%, #1c1c1c, #070707 70%); }
/* A contract's steps from signing to a foal */
.frup-track { list-style: none; display: flex; margin: 12px 0 0; padding: 0; max-width: 460px; }
.frup-track li { flex: 1; position: relative; padding-top: 12px; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--g4); }
.frup-track li::before { content: ""; position: absolute; left: 0; right: 3px; top: 0; height: 4px; background: #2c2c2c; }
.frup-track li.is-done::before, .frup-track li.is-now::before { background: var(--red); }
.frup-track li.is-done { color: var(--g3); }
.frup-track li.is-now { color: #fff; }
@media (max-width: 700px) {
	.frup-season-top { flex-direction: column; align-items: flex-start; gap: 20px; }
	.frup-clock-n { font-size: 60px; }
	.frup-hstats { grid-template-columns: 1fr 1fr; gap: 10px; }
	.frup-hstat b { font-size: 26px; }
	.frup-hstat { padding: 14px 14px 16px; }
	.frup-cal-m span { letter-spacing: .06em; padding-left: 5px; }
	.frup-cal-t i { width: 2px; margin-left: -1px; }
	.frup-cal-key span:last-child { flex-basis: 100%; }
	.frup-track li { font-size: 11px; letter-spacing: .02em; color: var(--g2); }
}

/* After the breeding: the pregnancy open item and certificate requests */
.frup-preg.is-open { border-color: var(--red); border-left-width: 4px; }
.frup-preg .frup-opts { margin-top: 14px; }
.frup-opts--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.frup-preg .frup-grid { margin: 0 0 18px; }
.frup-preg-hist { margin-top: 26px; }
.frup-cert-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 10px; }
.frup-cert .frup-notice { margin: 12px 0 0; }
.frup-next.is-item { color: var(--red); font-weight: 600; }
.frup-tabs-sm { display: flex; gap: 18px; margin: 0 0 18px; }
.frup-tabs-sm a { text-decoration: none; color: var(--g2); border-bottom: 2px solid transparent; padding-bottom: 3px; }
.frup-tabs-sm a.is-on { color: var(--ink); border-bottom-color: var(--red); }
[data-preg-show][hidden], [data-cert-show][hidden], [data-recip][hidden] { display: none; }
@media (max-width: 700px) { .frup-opts--3 { grid-template-columns: 1fr; } .frup-cert-top { flex-direction: column; } }
.frup-step .frup-h3, .frup-preg .frup-h3 { margin-top: 24px; }
.frup-step .frup-card > .frup-h3:first-child { margin-top: 0; }

/* 0.7.0 saved cards */
.frup-saved { margin-bottom: 12px; }
.frup-paysave { margin: 4px 0 16px; }
.frup-paysave .frup-check { font-size: 14px; line-height: 1.5; }
[data-pay-save][hidden], .frup-payfields[hidden] { display: none; }

/* 0.7.1 contracts on home: one row each, the stallion's photo only */
.frup-rows { display: flex; flex-direction: column; gap: 14px; }
#frup .frup-row { display: grid; grid-template-columns: 172px 1fr; min-height: 172px; background: var(--panel); border: 1px solid var(--rule); border-left: 3px solid var(--red); color: var(--ink); text-decoration: none; transition: border-color .2s ease; }
#frup .frup-row:hover { border-color: var(--red); }
#frup .frup-row.is-off { opacity: .45; }
.frup-row-pic { display: block; overflow: hidden; background: #050505; }
.frup-row-pic img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
#frup .frup-row:hover .frup-row-pic img { transform: scale(1.04); }
.frup-row-pic .frup-cross-ini { font-size: 54px; }
.frup-row-main { display: flex; flex-direction: column; min-width: 0; padding: 18px 22px 16px; }
.frup-row-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.frup-row-foal { font-family: var(--head); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--red); }
.frup-row-cross { margin: 8px 0 0; font-family: var(--name); font-weight: 500; font-size: 27px; line-height: 1.1; letter-spacing: .03em; text-transform: uppercase; }
.frup-row-x { text-transform: none; }
#frup .frup-row .frup-track { max-width: none; margin: 16px 0 0; }
#frup .frup-row .frup-next { display: block; margin: 12px 0 0; font-size: 14px; color: var(--g3); }
#frup .frup-row .frup-next.is-item { color: var(--red); }
@media (max-width: 640px) {
	#frup .frup-row { grid-template-columns: 92px 1fr; column-gap: 14px; min-height: 0; padding: 14px; }
	.frup-row-pic { grid-row: 1 / span 2; width: 92px; height: 92px; }
	.frup-row-pic .frup-cross-ini { font-size: 34px; }
	.frup-row-main { display: contents; }
	.frup-row-top { grid-column: 2; align-self: end; flex-wrap: wrap; gap: 6px 10px; }
	.frup-row-foal { font-size: 10px; letter-spacing: .1em; }
	.frup-row-cross { grid-column: 2; align-self: start; margin-top: 6px; font-size: 21px; }
	#frup .frup-row .frup-track, #frup .frup-row .frup-next { grid-column: 1 / -1; }
}

/* 0.7.2 office two-factor */
.frup-2fa { max-width: 620px; }
.frup-2fa-steps { margin: 0 0 18px; padding-left: 20px; line-height: 1.6; }
.frup-2fa-steps li { margin: 0 0 14px; }
.frup-qr { width: fit-content; margin: 14px 0 8px; padding: 12px; background: #fff; }
.frup-qr img, .frup-qr canvas { display: block; }
.frup-2fa-key { font-size: 15px; letter-spacing: .08em; user-select: all; }
.frup-2fa-codes { list-style: none; margin: 0 0 18px; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.frup-2fa-codes code { display: block; padding: 10px 12px; border: 1px solid var(--rule); font-size: 17px; letter-spacing: .1em; text-align: center; }
@media print { .frup-top, .frup-actions { display: none; } }
.frup-ferr[hidden], .frup-notice[hidden] { display: none; }

/* 0.7.5: wide office tables scroll inside their box on phones, never the page */
.frup-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
.frup-qr { max-width: 100%; box-sizing: border-box; }
.frup-qr img, .frup-qr canvas { max-width: 100%; height: auto; }

/* 0.8.0: anything the page hides stays hidden, whatever its layout class says */
#frup [hidden] { display: none !important; }
.frup-st .frup-h3 { hyphens: manual; -webkit-hyphens: manual; }

/* 0.8.4 phones: a tab bar along the bottom and a More sheet. Tablets get it too:
   below 1000px the portal's eight links and the name line do not fit beside the logo. */
.frup-tabbar, .frup-sheet, .frup-menu { display: none; }
@media (max-width: 999px) {
	.frup-body--portal .frup-nav > a, .frup-body--portal .frup-nav-user { display: none; }
	.frup-body--portal .frup-top-in { padding: 12px 16px; padding-top: max(12px, env(safe-area-inset-top)); }
	.frup-body--portal .frup-logo img { width: 112px; }
	.frup-menu { display: flex; align-items: center; gap: 8px; margin-left: auto; padding: 8px 0 8px 12px; color: #fff; text-decoration: none;
		font-family: var(--head); font-size: 13px; letter-spacing: .1em; text-transform: uppercase; -webkit-tap-highlight-color: transparent; }
	.frup-menu svg { width: 24px; height: 24px; }
	.frup-menu span { line-height: 1; transform: translateY(2px); } /* Rockwell's capitals sit above the middle of its line box */
	.frup-body--portal .frup-nav { display: none; }
	.frup-body--portal .frup-top-in { flex-wrap: nowrap; }
	.frup-body--portal { padding-bottom: calc(50px + env(safe-area-inset-bottom)); }
	.frup-tabbar { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
		background: rgba(10, 10, 10, .94); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-top: 1px solid #262626;
		padding: 3px 4px calc(3px + env(safe-area-inset-bottom)); }
	.frup-tab { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 40px; color: #8a8782; text-decoration: none;
		font-family: var(--head); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; -webkit-tap-highlight-color: transparent; }
	.frup-tab svg { width: 18px; height: 18px; }
	.frup-tab.is-on { color: var(--red); }
	.frup-tab.is-on svg { color: var(--red); }
	.frup-tab:active { color: #fff; }
	.frup-sheet:not([hidden]) { display: block; position: fixed; inset: 0; z-index: 60; }
	.frup-sheet-bg { position: absolute; inset: 0; background: rgba(0, 0, 0, .6); animation: frup-fade .18s ease-out; }
	.frup-sheet-in { position: absolute; left: 0; right: 0; bottom: 0; background: #141414; border-top: 1px solid #2c2c2c; border-radius: 16px 16px 0 0;
		padding: 22px 20px calc(22px + env(safe-area-inset-bottom)); max-height: 85vh; overflow-y: auto; animation: frup-rise .22s ease-out; }
	.frup-sheet-x { position: absolute; top: 10px; right: 12px; width: 44px; height: 44px; background: none; border: 0; color: #b8b3ab; font-size: 30px; line-height: 1; cursor: pointer; }
	body.frup-sheet-open { overflow: hidden; }
}
@keyframes frup-rise { from { transform: translateY(100%); } to { transform: none; } }
@keyframes frup-fade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .frup-sheet-in, .frup-sheet-bg { animation: none; } }
.frup-more-who { margin: 0 52px 14px 0; }
.frup-more-who b { display: block; font-family: var(--head); font-weight: 400; font-size: 20px; text-transform: uppercase; letter-spacing: .03em; color: #fff; }
.frup-more-who span { display: block; margin-top: 4px; font-family: var(--name); text-transform: uppercase; letter-spacing: .12em; font-size: 15px; color: var(--g2); }
.frup-more-list { list-style: none; margin: 0 0 16px; padding: 0; }
.frup-more-list li + li { border-top: 1px solid #262626; }
.frup-more-list a { display: flex; align-items: center; justify-content: space-between; min-height: 54px; color: #fff; text-decoration: none;
	font-family: var(--head); text-transform: uppercase; letter-spacing: .06em; font-size: 15px; }
.frup-more-list a::after { content: ""; width: 8px; height: 8px; border-right: 1.6px solid #6b6862; border-top: 1.6px solid #6b6862; transform: translateY(-6px) rotate(45deg); }
.frup-more-list a.is-on { color: var(--red); }
#frup .frup-more-out { display: block; width: 100%; text-align: center; margin-top: 14px; }
.frup-sheet .frup-switch, .frup-more-page .frup-switch { display: flex; flex-direction: column; align-items: stretch; gap: 6px; margin: 4px 0 8px; }
.frup-sheet .frup-switch select, .frup-more-page .frup-switch select { max-width: none; width: 100%; padding: 12px; font-size: 16px; }
.frup-more-out { display: block; width: 100%; box-sizing: border-box; margin-top: 14px; padding: 14px; text-align: center; border: 1px solid #3a3a3a; color: #fff; text-decoration: none;
	font-family: var(--head); text-transform: uppercase; letter-spacing: .08em; font-size: 14px; }
@media (max-width: 760px) {
	/* Home: the countdown on its own row, the main button full width at the end. */
	.frup-season-top { gap: 0; }
	.frup-season-btn { margin-top: 20px; }
	#frup .frup-season-btn .frup-btn { display: block; text-align: center; padding: 18px 20px 12px; }
	/* The number sits on the same line as the text's last line ("Monday, February 1"). */
	.frup-clock { width: 100%; margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .08); align-items: flex-end; align-items: last baseline; }
	.frup-clock-n { font-size: 52px; }
	/* Phones: the photo sits to the right, out to the screen edge, and fades in from the left as on a computer; the words sit on the darker lower part. */
	.has-pic .frup-season-top { padding-top: 110px; }
	.frup-season-top > .frup-season-pic { top: -24px; bottom: 120px; left: auto; right: calc((100% - 100vw) / 2); width: 66vw;
		-webkit-mask-image: linear-gradient(to right, transparent 0, rgba(0, 0, 0, .4) 22%, #000 48%); mask-image: linear-gradient(to right, transparent 0, rgba(0, 0, 0, .4) 22%, #000 48%); }
	.frup-season-top > .frup-season-pic { overflow: hidden; }
	/* Taller than its box and pulled up, so the empty sky above the foal is cropped off. */
	.frup-season-pic img { height: calc(100% + 24px); margin-top: -24px; object-position: 42% 50%; }
	.frup-season-pic::after { background: linear-gradient(to top, var(--bg) 0, rgba(10, 10, 10, .82) 45%, rgba(10, 10, 10, .15) 75%, rgba(10, 10, 10, .3) 100%); }
	.has-pic .frup-clock { border-top-color: rgba(255, 255, 255, .14); }
	.has-pic .frup-eyebrow, .has-pic .frup-h1, .has-pic .frup-firm { text-shadow: 0 1px 18px rgba(0, 0, 0, .7); }
	/* Phones zoom into any box with text under 16px; keep every field at 16px. */
	.frup-lineact input[type=text], .frup-switch select { font-size: 16px; }
}
@media (max-width: 760px) {
	/* Book a mare on a phone: one stallion per row, photo beside the name and fee; the ones not open for booking go last. */
	.frup-stallions { display: flex; flex-direction: column; gap: 10px; }
	.frup-st { display: grid; grid-template-columns: 84px 1fr; grid-template-rows: auto; column-gap: 14px; align-items: center; text-align: left; padding: 10px 14px 10px 10px; min-height: 104px; }
	.frup-st img, .frup-st .frup-noimg { grid-row: 1 / span 4; width: 84px; height: 84px; margin: 0; }
	.frup-st .frup-h3 { margin: 0; font-size: 18px; hyphens: manual; -webkit-hyphens: manual; overflow-wrap: normal; }
	.frup-x { margin: 2px 0 6px; font-size: 13px; }
	.frup-fee { padding: 0; font-size: 11px; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
	.frup-st > .frup-fee { padding-top: 0; margin-top: 0; }
	.frup-fee b { display: inline; font-size: 19px; margin: 0; }
	.frup-until { margin-top: 2px; }
	.frup-until.is-empty { display: none; }
	.frup-st.is-off { order: 1; min-height: 0; grid-template-columns: 52px 1fr; padding: 8px 12px 8px 8px; align-content: center; }
	.frup-st.is-off img, .frup-st.is-off .frup-noimg { width: 52px; height: 52px; }
	.frup-st.is-off .frup-h3 { font-size: 15px; color: var(--g2); }
	.frup-st.is-off .frup-x { display: none; }
}
.frup-amt-wait { display: block; font-size: 16px; font-weight: 400; color: var(--g3); line-height: 1.4; }
@media (max-width: 760px) {
	/* Buttons: full width and easy to tap, one under the other. */
	#frup .frup-actions { flex-direction: column; align-items: stretch; }
	#frup .frup-actions .frup-btn { display: block; width: 100%; text-align: center; padding-top: 17px; padding-bottom: 11px; }
	#frup .frup-actions .frup-btn--sm { padding-top: 12px; padding-bottom: 8px; }
	/* Short answers side by side, long ones full width. */
	.frup-newmare { grid-template-columns: 1fr 1fr !important; }
	.frup-newmare > .frup-f { grid-column: 1 / -1; }
	.frup-newmare > .frup-f:has(#frup-mare_foaled), .frup-newmare > .frup-f:has(#frup-mare_color) { grid-column: auto; }
	/* Choices: compact rows. */
	.frup-opt { padding: 12px 14px; }
	.frup-opt span { font-size: 13px; }
	.frup-vet .frup-h3 { margin-bottom: 12px; }
	.frup-card > .frup-h3:first-child { margin-top: 0; }
	.frup-due .frup-amt { font-size: 38px; }
	.frup-step { margin-bottom: 32px; }
}
.frup-pick-head { font-family: var(--name); font-weight: 500; text-transform: uppercase; letter-spacing: .04em; font-size: 15px; color: #fff; padding-top: 18px !important; border-top: 0 !important; }
.frup-pick-head:first-child { padding-top: 4px !important; }
@media (max-width: 760px) {
	/* Room between a form's buttons and the next card. */
	#frup form > .frup-actions:last-child { margin-bottom: 28px; }
	/* Address: state (or region) and ZIP side by side. */
	.frup-grid[data-frup-addr] { grid-template-columns: 1fr 1fr; }
	.frup-grid[data-frup-addr] > * { grid-column: 1 / -1; }
	.frup-grid[data-frup-addr] > .frup-addr-us, .frup-grid[data-frup-addr] > .frup-addr-int, .frup-grid[data-frup-addr] > .frup-f:has(#frup-zip) { grid-column: auto; }
}
@media (max-width: 760px) {
	/* Documents: the name on its own line, the date under it. */
	.frup-docs li { flex-direction: column; align-items: flex-start; gap: 4px; }
	.frup-docs li span { font-size: 13px; }
}
@media (max-width: 760px) { .frup-season-top > div { width: 100%; } }

/* 0.11.16 office header: logo, Office and who is signed in on one line, the screens on a line below */
.frup-body--office .frup-top-in { flex-wrap: wrap; row-gap: 0; padding-bottom: 0; }
.frup-top-user { margin-left: auto; text-align: right; color: #8a8782; font-size: 12px; line-height: 1.55; }
.frup-top-user a { color: #b8b3ab; text-decoration: underline; text-underline-offset: 2px; }
.frup-top-mode { display: block; }
.frup-body--office .frup-nav--office { flex: 1 1 100%; order: 5; gap: 6px 30px; margin-top: 14px; padding: 12px 0 14px; border-top: 1px solid #262626; }
@media (max-width: 999px) {
	.frup-body--office .frup-nav--office, .frup-body--office .frup-top-user { display: none; }
	.frup-body--office .frup-top-in { flex-wrap: nowrap; padding: 12px 16px; padding-top: max(12px, env(safe-area-inset-top)); }
	.frup-body--office .frup-logo img { width: 112px; }
	.frup-body--office .frup-top-tag { padding-left: 12px; }
	.frup-body--office { padding-bottom: calc(50px + env(safe-area-inset-bottom)); }
}

/* 0.11.16 office audit fixes */
.frup-facts--cert { margin-bottom: 22px; }
.frup-card > .frup-log:last-child, .frup-card > ul:last-child { margin-bottom: 0; }
.frup-lineact .frup-btn { white-space: nowrap; }
.frup-filters .frup-btn { align-self: flex-end; }
.frup-table .frup-chip { white-space: nowrap; }
@media (max-width: 760px) {
	/* Contract page: Stage, then the money and the people, then the history. */
	.frup-ct > .frup-ct-main { display: contents; }
	.frup-ct > .frup-ct-main > * { order: 3; }
	.frup-ct > .frup-ct-main > :first-child { order: 1; }
	.frup-ct > .frup-ct-side { order: 2; }
	.frup-filters { display: grid; grid-template-columns: 1fr; }
	.frup-filters .frup-f { min-width: 0; }
	.frup-filters .frup-btn { width: 100%; text-align: center; }
	.frup-table td:nth-child(2) { min-width: 140px; }
}
/* Menu page (no script): the sheet list on a white card */
.frup-more-page .frup-more-who b, .frup-more-page .frup-more-list a { color: var(--ink); }
.frup-more-page .frup-more-who span { color: var(--g3); }
.frup-more-page .frup-more-list li + li { border-top-color: var(--rule); }
.frup-more-page .frup-more-list a.is-on { color: var(--red); }
#frup .frup-more-page .frup-more-out { border-color: var(--fline); color: var(--ink); }
.frup-more-list a::after { transform: translateY(-3px) rotate(45deg); }
/* Certificates: room between the facts and the form */
#frup .frup-facts + form { margin-top: 22px; }
/* Shipment actions: the box and its button side by side with a gap */
.frup-log .frup-shipacts form { display: flex; gap: 8px; margin: 0; align-items: stretch; }
.frup-log .frup-shipacts .frup-btn { white-space: nowrap; }
/* Charges: room under the last row's buttons before Add a charge */
.frup-lines li.frup-lineact { padding-bottom: 18px; }
#frup .frup-lines + .frup-h3 { margin-top: 32px; }
/* Even card padding: lists and button rows do not add space at the bottom */
.frup-card .frup-log li:last-child { padding-bottom: 0; }
.frup-card > p:first-child { margin-top: 0; }
/* Filter and search rows: buttons as tall as the fields */
.frup-filters .frup-btn { height: 46px; padding-top: 4px; padding-bottom: 0; }
.frup-filters { margin-bottom: 22px; }
.frup-filters label:empty { display: none; }
/* Contracts list */
.frup-tpl-acts input[type=file] { max-width: none; width: auto; }
.frup-tpl-acts .frup-btn + .frup-btn { margin-left: 6px; }
.frup-table-wrap + .frup-hint { display: block; margin-top: 12px; }
/* Saved payment methods */
#saved-cards .frup-log li { padding: 14px 0; }
#saved-cards .frup-log li form { margin-top: 10px; }
/* Certificate tabs like the rest of the office */
.frup-tabs-sm a { font-family: var(--head); text-transform: uppercase; font-size: 12px; letter-spacing: .08em; padding: 10px 0 6px; margin-right: 18px; }
.frup-mailtext { max-width: 720px; }
.frup-twofa .frup-actions, .frup-actions--center { align-items: center; }
/* A heading with a count beside it: the count sits outside the heading */
.frup-card-h { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 12px; }
.frup-card-h .frup-h2 { margin: 0; }
.frup-card-h .frup-count { margin: 0; flex: none; }
.frup-card-h + .frup-sm { margin-top: -4px; }
/* Stat tiles without holes */
@media (max-width: 980px) {
	.frup-stats { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.frup-stat { grid-column: span 2; }
	.frup-stat:nth-child(n+4) { grid-column: span 3; }
}
@media (max-width: 700px) {
	.frup-stats { grid-template-columns: 1fr 1fr; }
	.frup-stat, .frup-stat:nth-child(n+4) { grid-column: auto; }
	.frup-stat:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
/* Tablets: the office links fit on one row */
@media (max-width: 960px) { .frup-body--office .frup-nav--office { gap: 6px 18px; } }
/* Field editor: keep the tools beside the contract down to 900px */
@media (max-width: 1100px) { .frup-tpl-wrap { grid-template-columns: minmax(0, 1fr) 280px; } }
@media (max-width: 900px) { .frup-tpl-wrap { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
	/* Tables become one block per row, each value with its label */
	.frup-table.is-stack thead { display: none; }
	.frup-table.is-stack, .frup-table.is-stack tbody, .frup-table.is-stack tr, .frup-table.is-stack td { display: block; width: 100%; }
	.frup-table.is-stack tr { padding: 14px 0; border-top: 1px solid var(--rule); }
	.frup-table.is-stack tr:first-child { border-top: 0; padding-top: 4px; }
	.frup-table.is-stack td { border: 0; padding: 3px 0; min-width: 0; }
	.frup-table.is-stack td[data-label]:not(:first-child)::before { content: attr(data-label); display: inline-block; min-width: 92px; margin-right: 8px; font-family: var(--head); text-transform: uppercase; font-size: 11px; letter-spacing: .08em; color: var(--g3); }
	.frup-table.is-stack td:first-child { font-size: 16px; }
	.frup-table.is-stack .frup-tpl-acts { white-space: normal; }
	.frup-table-wrap { overflow-x: visible; }
	#frup .frup-card form:last-child > .frup-actions:last-child { margin-bottom: 0; }
	#frup .frup-grid2 > div > .frup-actions:last-child { margin-bottom: 24px; }
	.frup-mailprev { height: 760px; }
	.frup-tab { font-size: 10px; }
	.frup-card-list-chip { display: block; width: fit-content; margin-top: 4px; }
}
@media (max-width: 760px) { .frup-mails > div:last-child { order: -1; } }
@media (max-width: 760px) { .frup-mails > div:last-child { order: -1; } }
/* Charges: amount and chip in one right-aligned column */
.frup-lines .frup-amtcol { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; text-align: right; min-width: 96px; white-space: nowrap; }
.frup-more--list { margin-top: 10px; }
.frup-more--list > summary { padding: 6px 0; }
.frup-more--list[open] > summary { margin-bottom: 4px; }
.frup-card > .frup-h3 + form, .frup-card > .frup-h3 + .frup-form { margin-top: 14px; }
@media (max-width: 760px) { .frup-grid2.frup-ct, .frup-grid2.frup-mails { grid-template-columns: minmax(0, 1fr); } .frup-ct .frup-card { min-width: 0; } }
@media (max-width: 760px) { .frup-table.is-stack tr { padding-left: 16px; padding-right: 16px; } .frup-table.is-stack tr:first-child { padding-top: 14px; } .frup-table.is-stack td.frup-hm { display: none; } }

/* 0.11.17: client search, payment page */
.frup-filters--search .frup-f { flex: 1 1 320px; max-width: 480px; }
.frup-matches { margin: -8px 0 14px; }
#frup .frup-head .frup-actions { margin-top: 16px; }

/* 0.11.18: Contracts page, removing papers */
#frup .frup-season-h { display: flex; align-items: baseline; gap: 12px; margin: 40px 0 16px; }
#frup .frup-head + .frup-season-h { margin-top: 6px; }
#frup .frup-season-h .frup-muted { font-family: inherit; font-size: 14px; letter-spacing: 0; text-transform: none; }
.frup-docs li form { margin: 0 0 0 auto; }
@media (max-width: 760px) { .frup-docs li form { margin: 2px 0 0; } }

/* 0.11.19: footer on every page, website links */
.frup-foot { border-top: 1px solid var(--rule); color: var(--g3); font-size: 13px; line-height: 1.7; }
.frup-foot-in { max-width: 1180px; margin: 0 auto; padding: 28px 24px 36px; display: grid; grid-template-columns: 1fr auto; gap: 6px 32px; align-items: start; }
.frup-body--office .frup-foot-in { max-width: 1320px; }
.frup-foot-who { display: flex; flex-direction: column; }
.frup-foot-who b { color: var(--g2); font-weight: 600; }
.frup-foot a { color: var(--g3); text-decoration: none; }
.frup-foot a:hover { color: var(--ink); text-decoration: underline; }
.frup-foot-links { display: flex; flex-wrap: wrap; gap: 4px 22px; justify-content: flex-end; }
.frup-foot-copy { grid-column: 1 / -1; margin: 10px 0 0; color: var(--g4); font-size: 12px; }
.frup-body--auth .frup-foot { border-top: 0; text-align: center; }
.frup-body--auth .frup-foot-in { max-width: 500px; grid-template-columns: 1fr; }
.frup-body--auth .frup-foot-links { justify-content: center; }
.frup-agree { margin: 16px 0 0; }
.frup-agree a { color: inherit; text-decoration: underline; }
@media (max-width: 760px) {
	.frup-foot-in { grid-template-columns: 1fr; padding: 24px 16px 28px; }
	.frup-foot-links { justify-content: flex-start; margin-top: 8px; }
}

/* 0.11.21: the header is capped at 1180px, where the links and the name line never fit on one row,
   so on every desktop width the name line is a small line at the top right and the links stay
   centered on the logo. */
@media (min-width: 1000px) {
	.frup-body--portal .frup-top-in { position: relative; padding-top: 34px; }
	.frup-body--portal .frup-nav-user { position: absolute; top: 10px; right: 24px; margin: 0; white-space: nowrap; }
	.frup-body--portal .frup-nav-firm { display: inline; margin-left: 10px; }
	.frup-body--portal .frup-nav { gap: 6px 22px; }
}

/* Long unbroken text (a pasted link, a reference number) wraps instead of widening the page. */
.frup-body p, .frup-body small, .frup-body li > span:first-child { overflow-wrap: anywhere; }
.frup-body li > span:first-child { min-width: 0; }
/* Amounts, phone numbers and dates never break inside. */
.frup-lines li > span:last-child, .frup-amtcol, .frup-fees-amt, .frup-amt, .frup-tel, .frup-table td.frup-num { white-space: nowrap; overflow-wrap: normal; flex-shrink: 0; }

/* Long emails and names wrap instead of widening a phone page (Chrome widens the layout
   to fit the longest unbreakable word, which shrinks the whole screen). */
#frup .frup-lead, #frup .frup-h1, #frup .frup-h2, .frup-auth .frup-lead, .frup-nav-user, #frup .frup-table td.frup-wrap { overflow-wrap: anywhere; }
#frup .frup-table td { overflow-wrap: break-word; }
#frup .frup-table td.frup-wrap { min-width: 9em; }
@media (max-width: 760px) { .frup-nowrap { white-space: normal; } }

/* Keyboard focus that can be seen: on links and buttons, and on the choice cards whose radio is hidden. */
.frup-body a:focus-visible, .frup-body .frup-btn:focus-visible, .frup-body button:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
#frup label:has(input:focus-visible) { outline: 2px solid var(--red); outline-offset: 2px; }
#frup .frup-payfields input[aria-invalid="true"] { border-color: var(--red); }
#frup .frup-payfields .frup-f + [data-pay-error] { margin: 8px 0 0; grid-column: 1 / -1; }

.frup-paybar .frup-btn:focus-visible { outline-color: #fff; }
.frup-pager { margin: 16px 0 0; text-align: right; }

/* A long name in a page heading fits a phone by size, not by splitting the word. */
@media (max-width: 760px) { #frup .frup-h1 { font-size: clamp(22px, 7.2vw, 30px); } }
/* Tablet widths: the office tables drop their secondary columns (email, phone) as on phones. */
@media (max-width: 999px) { .frup-table .frup-hm { display: none; } }
.frup-f[hidden], .frup-papers-have[hidden] { display: none; }
.frup-papers-have p { margin: 0; }

/* Address lookup: Google's suggestions under the address box */
.frup-places-wrap { position: relative; }
.frup-places { position: absolute; z-index: 40; left: 0; right: 0; margin: 2px 0 0; padding: 4px 0 0; list-style: none; background: var(--panel); border: 1px solid var(--fline); box-shadow: 0 16px 34px rgba(0, 0, 0, .45); }
.frup-places[hidden] { display: none; }
.frup-places li[role=option] { padding: 10px 12px; cursor: pointer; line-height: 1.3; }
.frup-places li[role=option] + li[role=option] { border-top: 1px solid var(--rule); }
.frup-places li b { display: block; font-weight: 600; color: var(--ink); font-size: 15px; }
.frup-places li small { display: block; color: var(--g3); font-size: 13px; margin-top: 2px; }
.frup-places li.is-on, .frup-places li[role=option]:hover { background: var(--field); }
.frup-places li.is-on b { color: var(--red); }
.frup-places-by { padding: 6px 12px 7px; text-align: right; font-size: 11px; color: var(--g4); border-top: 1px solid var(--rule); }
.frup-body--office .frup-places { box-shadow: 0 12px 28px rgba(0, 0, 0, .14); }

/* Signed in as a client from the office: a bar across the top of every portal page */
.frup-switchbar { position: sticky; top: 0; z-index: 90; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 18px; padding: 9px 16px; background: #f2c14e; color: #141414; font-size: 14px; line-height: 1.35; text-align: center; }
.frup-switchbar form { margin: 0; }
.frup-switchbar-b { background: #141414; color: #fff; border: 0; padding: 7px 14px 6px; font-family: var(--head); text-transform: uppercase; letter-spacing: .08em; font-size: 12px; cursor: pointer; }
.frup-switchbar-b:hover { background: #000; }
.frup-head .frup-actions form { display: inline; margin: 0; }

/* Comped breedings */
.frup-comp-form { margin: 14px 0 6px; }
.frup-comp-form > summary { cursor: pointer; font-family: var(--head); text-transform: uppercase; letter-spacing: .08em; font-size: 13px; padding: 6px 0; }
.frup-comp-form fieldset { border: 0; padding: 0; margin: 0; }
.frup-comp-form legend { display: block; font-family: var(--head); text-transform: uppercase; letter-spacing: .08em; font-size: 12px; color: var(--g2); margin-bottom: 2px; padding: 0; }
.frup-comp-form .frup-check { margin: 8px 0; }
.frup-log li form { display: inline; margin-left: 10px; }
.frup-fee--comp { color: var(--red); }
.frup-comp-note a { margin-left: 6px; font-weight: 600; }

/* Connected apps */
.frup-bullets { margin: 6px 0 16px; padding-left: 20px; }
.frup-bullets li { margin: 4px 0; }
.frup-link-card .frup-actions form { display: inline-block; margin: 0 8px 0 0; }

/* 0.13.0 office refresh: rounded cards and buttons, filled status tags, softer
   links, and Today as rows with a button on each. Office screens only. */
.frup-body--office { --rule: #e4e2df; --soft: #faf9f8; }
.frup-body--office .frup-card { border-radius: 12px; }
.frup-body--office #frup .frup-btn { border-radius: 8px; }
.frup-body--office #frup .frup-btn--ghost { background: #fff; border-color: #cfcac4; color: var(--ink); }
.frup-body--office #frup .frup-btn--ghost:hover { border-color: var(--ink); background: #fff; }
.frup-body--office #frup .frup-btn--sm { padding: 11px 14px 6px; font-size: 11.5px; letter-spacing: .08em; white-space: nowrap; }
.frup-body--office .frup-f input, .frup-body--office .frup-f select, .frup-body--office .frup-f textarea, .frup-body--office .frup-lineact input[type=text] { border-radius: 8px; }
.frup-body--office input[type=file]::file-selector-button { border-radius: 8px; }
.frup-body--office .frup-notice { border-radius: 8px; }
/* Status tags: a tinted fill instead of an outline */
.frup-body--office .frup-chip { border: 0; border-radius: 999px; padding: 3px 10px 1px; background: #ecebe8; color: #4d4a46; }
.frup-body--office .frup-chip--fill { background: #fbe4de; color: #9b0a0e; }
.frup-body--office .frup-chip--ok { background: #e3f1e7; color: #1f6b38; }
.frup-body--office .frup-chip--warn { background: #fbefd2; color: #7a5200; }
/* Links in lists and tables: dark text with a light underline */
.frup-body--office #frup .frup-table a, .frup-body--office .frup-log a { text-decoration: none; border-bottom: 1px solid #dcc4bd; }
.frup-body--office #frup .frup-table a:hover, .frup-body--office .frup-log a:hover { border-bottom-color: var(--red); }
.frup-body--office .frup-table { border-collapse: separate; border-spacing: 0; border-radius: 12px; overflow: hidden; }
.frup-body--office .frup-table tbody tr:hover td { background: var(--soft); }
.frup-body--office .frup-count { border-radius: 999px; background: #fbe4de; color: #9b0a0e; font-size: 12px; font-weight: 600; padding: 2px 9px 1px; }
/* The office menu: a number on a tab with something waiting */
.frup-nav-n { display: inline-block; margin-left: 7px; min-width: 20px; padding: 1px 6px 0; border-radius: 999px; background: var(--red); color: #fff; font: 600 11px/17px var(--body); letter-spacing: 0; text-align: center; vertical-align: 1px; }

/* Today: tiles for the first four lists */
.frup-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0 0 28px; }
#frup .frup-tile { display: block; background: #fff; border: 1px solid var(--rule); border-radius: 12px; padding: 16px 18px 14px; text-decoration: none; color: var(--ink); transition: border-color .15s; }
#frup .frup-tile:hover { border-color: #b9b3ad; }
.frup-tile b { display: block; font-family: var(--head); font-weight: 400; font-size: 34px; line-height: 1; }
.frup-tile span { display: block; margin-top: 8px; font-family: var(--head); text-transform: uppercase; font-size: 11px; letter-spacing: .1em; color: var(--g2); line-height: 1.35; }
.frup-tile em { display: block; margin-top: 3px; font-style: normal; font-size: 13px; color: var(--g3); }
#frup .frup-tile.is-first { background: var(--red); border-color: var(--red); color: #fff; }
#frup .frup-tile.is-first:hover { background: var(--red-deep); border-color: var(--red-deep); }
.frup-tile.is-first span, .frup-tile.is-first em { color: #fff; }

/* Today: each list is a card of rows */
.frup-today .frup-tcard { padding: 0; overflow: hidden; scroll-margin-top: 20px; }
.frup-tcard-h { display: flex; align-items: center; gap: 12px; padding: 20px 22px 0; }
#frup .frup-tcard-h .frup-h2 { margin: 0; font-size: 20px; }
.frup-tcount { flex: none; border-radius: 999px; background: #fbe4de; color: #9b0a0e; font-size: 12px; font-weight: 600; padding: 2px 9px 1px; }
.frup-tnote { margin: 6px 22px 0; font-size: 14px; color: var(--g3); }
.frup-tempty { margin: 12px 22px 20px; color: var(--g3); }
.frup-trows { margin-top: 14px; }
.frup-tmore .frup-trows { margin-top: 0; }
.frup-trow { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 18px; padding: 13px 22px; border-top: 1px solid var(--rule); }
.frup-trow:hover { background: var(--soft); }
.frup-trow-main { min-width: 0; }
#frup .frup-trow-t { display: block; font-weight: 600; font-size: 15px; color: var(--ink); text-decoration: none; overflow-wrap: anywhere; }
#frup a.frup-trow-t:hover { color: var(--red); }
.frup-trow-t > span { color: var(--g3); font-weight: 400; }
.frup-trow-t .frup-chip { margin-right: 6px; vertical-align: 1px; font-weight: 400; font-size: 12px; }
.frup-trow-t b { font-weight: 600; }
#frup .frup-trow-t a { text-decoration: none; border: 0; color: inherit; }
.frup-trow-main small { display: block; margin-top: 2px; font-size: 13px; color: var(--g3); line-height: 1.45; }
.frup-trow-main small a { color: var(--g2); text-decoration: none; border-bottom: 1px solid #dcc4bd; }
.frup-trow-meta { display: flex; align-items: center; gap: 12px; }
.frup-trow-amt { font-family: var(--head); font-size: 16px; white-space: nowrap; }
.frup-age { min-width: 70px; text-align: center; font-size: 12px; white-space: nowrap; border-radius: 999px; padding: 3px 10px 2px; background: #f0eeeb; color: var(--g2); }
.frup-age.is-old { background: #fbe4de; color: #9b0a0e; }
.frup-trow-acts { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.frup-trow-acts form { display: inline-flex; margin: 0; }
.frup-tmore > summary { list-style: none; cursor: pointer; padding: 13px 22px 12px; border-top: 1px solid var(--rule); font-family: var(--head); text-transform: uppercase; font-size: 11.5px; letter-spacing: .08em; color: var(--red); }
.frup-tmore > summary::-webkit-details-marker { display: none; }
.frup-tmore[open] > summary { display: none; }
/* New contracts: name, then the stage tag on the right */
.frup-tcard--side .frup-trow { grid-template-columns: minmax(0, 1fr) auto; padding: 12px 20px; }
.frup-tcard--side .frup-tcard-h { padding: 20px 20px 0; }
.frup-tcard--side .frup-trow-acts .frup-chip { font-size: 12px; }

@media (max-width: 1100px) { .frup-trow { grid-template-columns: minmax(0, 1fr) auto; } .frup-trow-meta { grid-column: 1; grid-row: 2; } .frup-trow-acts { grid-column: 2; grid-row: 1 / span 2; } }
@media (max-width: 900px) { .frup-tiles { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) {
	.frup-tiles { gap: 10px; margin-bottom: 20px; }
	#frup .frup-tile { padding: 14px 14px 12px; }
	.frup-tile b { font-size: 28px; }
	.frup-tcard-h { padding: 16px 16px 0; }
	.frup-tnote { margin: 4px 16px 0; }
	.frup-trow, .frup-tcard--side .frup-trow { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 13px 16px; }
	.frup-trow-meta, .frup-trow-acts { grid-column: auto; grid-row: auto; }
	.frup-trow-acts { justify-content: flex-start; }
	.frup-tcard--side .frup-trow-acts { order: -1; display: none; }
	.frup-tmore > summary { padding: 13px 16px 12px; }
}
.frup-trow-meta:empty { display: none; }
.frup-trow > .frup-trow-acts { grid-column: -2; }
@media (max-width: 760px) { .frup-trow > .frup-trow-acts { grid-column: auto; } }
.frup-body--office .frup-stat { border-radius: 12px; }
/* Phones: the amount on the left and the button on the right, under the name */
@media (max-width: 760px) {
	.frup-trow { grid-template-columns: minmax(0, 1fr) auto; row-gap: 10px; }
	.frup-trow > .frup-trow-main { grid-column: 1 / -1; }
	.frup-trow > .frup-trow-meta { grid-column: 1; grid-row: 2; }
	.frup-trow > .frup-trow-acts { grid-column: 2; grid-row: 2; }
	.frup-trow > .frup-trow-meta:empty + .frup-trow-acts { grid-column: 1 / -1; justify-content: flex-start; }
	.frup-tcard--side .frup-trow { grid-template-columns: minmax(0, 1fr); }
}

/* 0.13.1 office: tick boxes in forms are tick boxes, not text boxes */
.frup-body--office .frup-f input[type=checkbox], .frup-body--office input[type=checkbox] { width: 18px; height: 18px; padding: 0; border-radius: 4px; margin: 3px 0 0; }
.frup-body--office .frup-f label.frup-check { display: flex; align-items: flex-start; gap: 12px; margin: 10px 0 0; font-family: var(--body); text-transform: none; letter-spacing: 0; font-size: 15px; line-height: 1.5; color: var(--ink); }
.frup-body--office .frup-comp-form legend { margin-bottom: 0; }
.frup-body--office .frup-comp-form .frup-check { margin: 10px 0 0; }
/* Season board: the contract number reads as a button */
#frup .frup-table a.frup-openlink { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px 4px 12px; border: 1px solid #e3c9c2; border-radius: 999px; background: #fdf3f0; color: var(--red-deep); font-weight: 600; white-space: nowrap; text-decoration: none; transition: background .15s, border-color .15s, color .15s; }
#frup .frup-table a.frup-openlink span { font-size: 17px; line-height: 1; margin-top: -2px; }
#frup .frup-table a.frup-openlink:hover { background: var(--red); border-color: var(--red); color: #fff; }
#frup .frup-table td { vertical-align: middle; }

/* 0.14.0 Contracts: a card per stallion with its photo */
.frup-tpl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 18px; margin: 4px 0 18px; }
.frup-tpl-card { background: #fff; border: 1px solid var(--rule); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; }
.frup-tpl-pic { position: relative; aspect-ratio: 16 / 10; background: #ecebe8; overflow: hidden; }
.frup-tpl-pic img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.frup-tpl-card.is-empty .frup-tpl-pic img { filter: grayscale(1); opacity: .7; }
.frup-tpl-noimg { display: grid; place-items: center; height: 100%; font-family: var(--head); font-size: 48px; color: #b9b3ad; }
.frup-tpl-st { position: absolute; left: 12px; top: 12px; }
.frup-tpl-st .frup-chip { background: rgba(255, 255, 255, .94); }
.frup-tpl-st .frup-chip--ok { background: #e3f1e7; }
.frup-tpl-st .frup-chip--warn { background: #fbefd2; }
.frup-tpl-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
#frup .frup-tpl-name { font-family: var(--head); text-transform: uppercase; font-size: 19px; letter-spacing: .02em; margin: 0; }
.frup-tpl-file { margin: 0; font-size: 14px; }
.frup-body--office .frup-tpl-file a { text-decoration: none; border-bottom: 1px solid #dcc4bd; }
.frup-tpl-facts { display: flex; gap: 18px; margin: 2px 0 0; }
.frup-tpl-facts div { min-width: 0; }
.frup-tpl-facts dt { font-family: var(--head); text-transform: uppercase; font-size: 10.5px; letter-spacing: .1em; color: var(--g3); }
.frup-tpl-facts dd { margin: 2px 0 0; font-size: 15px; }
.frup-tpl-why { margin: 0; font-size: 13px; color: var(--g3); }
.frup-tpl-card .frup-tpl-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 6px; white-space: normal; }
.frup-tpl-card .frup-tpl-acts:empty { display: none; }
.frup-tpl-card .frup-more { margin: 4px 0 0; }
.frup-tpl-card .frup-more form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 10px 0 0; }
.frup-tpl-card .frup-more input[type=file] { max-width: 100%; font-size: 13px; }
.frup-tpl-ai { border-color: #e3c9c2; background: #fdf8f6; }
.frup-tpl-ai-msg { margin: 10px 0 0; font-size: 14px; color: var(--ink); }
.frup-tpl-ai-msg:empty { display: none; }
.frup-tpl-ai .frup-btn[disabled] { opacity: .6; cursor: progress; }

/* ==========================================================================
   0.15.0 Office design system. Office screens only (.frup-body--office).
   One type scale, one page header, quiet section labels, tables with
   right-aligned money, forms that fold away until needed.
   ========================================================================== */
.frup-body--office { --bg: #f4f3f1; --ink: #1b1a19; --g2: #4f4c48; --g3: #77736e; --rule: #e7e4e0; --line2: #f0eeeb; --soft: #faf9f7; --fline: #d6d2cc; font-size: 15px; line-height: 1.55; }
.frup-body--office #frup { padding: 34px 32px 96px; }

/* Page header: breadcrumb, mixed-case title, facts in a row */
.frup-body--office .frup-head { margin: 0 0 26px; }
.frup-body--office .frup-eyebrow { font-family: var(--body); font-size: 13px; font-weight: 600; letter-spacing: .02em; text-transform: none; color: var(--g3); margin: 0 0 8px; }
.frup-body--office .frup-eyebrow a { color: var(--red); text-decoration: none; }
.frup-body--office .frup-eyebrow a:hover { text-decoration: underline; }
.frup-body--office .frup-eyebrow span { color: #c3beb8; margin: 0 4px; }
.frup-body--office #frup .frup-h1 { text-transform: none; font-size: 36px; font-weight: 400; letter-spacing: -.012em; line-height: 1.12; margin: 0; }
.frup-body--office .frup-h1-x { color: var(--g3); }
.frup-body--office .frup-lead { font-size: 15.5px; color: var(--g2); margin: 10px 0 0; max-width: 760px; }
.frup-body--office .frup-firm { font-family: var(--name); text-transform: uppercase; letter-spacing: .12em; font-size: 14px; color: var(--g2); margin: 8px 0 0; }
.frup-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin: 14px 0 0; font-size: 14.5px; color: var(--g2); }
.frup-meta > span { position: relative; }
.frup-meta > span + span::before { content: ""; position: absolute; left: -10px; top: 50%; width: 3px; height: 3px; border-radius: 50%; background: #c3beb8; transform: translateY(-50%); }
.frup-meta .frup-chip + span::before { display: none; }
.frup-meta a { color: var(--ink); text-decoration: none; border-bottom: 1px solid #dcc4bd; }
.frup-meta--contact a, .frup-meta--contact span { color: var(--g2); }
.frup-meta--contact > * + *::before { content: ""; position: absolute; left: -10px; top: 50%; width: 3px; height: 3px; border-radius: 50%; background: #c3beb8; transform: translateY(-50%); }
.frup-meta--contact > * { position: relative; }
.frup-meta-note { margin: 10px 0 0; font-size: 14px; color: var(--g3); }
.frup-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.frup-head-acts { display: flex; flex-wrap: wrap; gap: 8px; }
.frup-head-acts form { margin: 0; }

/* Summary strip under the header */
.frup-sumstrip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: #fff; border: 1px solid var(--rule); border-radius: 12px; margin: 0 0 22px; }
.frup-sumstrip > div { padding: 16px 20px 15px; min-width: 0; }
.frup-sumstrip > div + div { border-left: 1px solid var(--rule); }
.frup-sumstrip span { display: block; font-family: var(--head); text-transform: uppercase; font-size: 10.5px; letter-spacing: .12em; color: var(--g3); }
.frup-sumstrip b { display: block; margin-top: 6px; font-family: var(--head); font-weight: 400; font-size: 24px; line-height: 1.15; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.frup-sumstrip b.frup-sum-t { font-family: var(--body); font-weight: 600; font-size: 17px; margin-top: 9px; }
.frup-sumstrip .is-due b { color: var(--red); }

/* Cards and their section labels */
.frup-body--office .frup-card { padding: 22px 24px; margin: 0 0 18px; border-color: var(--rule); }
.frup-body--office #frup .frup-h2 { font-family: var(--head); text-transform: uppercase; font-weight: 400; font-size: 14px; letter-spacing: .12em; color: var(--ink); margin: 0 0 16px; }
.frup-body--office .frup-card-h { margin: 0 0 16px; }
.frup-body--office .frup-card-h .frup-h2 { margin: 0; }
.frup-body--office #frup .frup-h3 { font-family: var(--head); text-transform: uppercase; font-size: 12.5px; letter-spacing: .1em; margin: 22px 0 10px; }
.frup-body--office .frup-grid2 { gap: 22px; }
.frup-body--office .frup-muted, .frup-body--office .frup-hint { color: var(--g3); }
.frup-body--office .frup-sm { font-size: 14px; }

/* Lists inside cards */
.frup-body--office .frup-log { font-size: 15px; }
.frup-body--office .frup-log li { padding: 12px 0; border-top-color: var(--line2); }
.frup-body--office .frup-log li:first-child { padding-top: 0; }
.frup-body--office .frup-log small { font-size: 13px; margin-top: 2px; }
.frup-body--office .frup-log b { font-weight: 600; }
.frup-body--office .frup-lines li { padding: 12px 0; border-top-color: var(--line2); }
.frup-body--office .frup-lines li > span:last-child { font-variant-numeric: tabular-nums; }
.frup-body--office .frup-lines li.frup-lineact { padding-top: 0; border-top: 0; }
.frup-body--office .frup-lineact input[type=text] { height: 34px; border-radius: 8px; }
.frup-body--office .frup-facts { gap: 9px 22px; font-size: 15px; }
.frup-body--office .frup-facts dt { font-family: var(--head); text-transform: uppercase; font-size: 10.5px; letter-spacing: .1em; color: var(--g3); padding-top: 3px; }
.frup-body--office .frup-docs li { padding: 11px 0; border-top-color: var(--line2); }
.frup-body--office .frup-docs a { text-decoration: none; border-bottom: 1px solid #dcc4bd; }

/* Folded forms: a button until needed */
.frup-fold { margin: 18px 0 0; }
.frup-fold > summary { list-style: none; display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-family: var(--head); text-transform: uppercase; font-size: 11.5px; letter-spacing: .08em; color: var(--ink); padding: 11.5px 14px 6.5px; border: 1px solid #cfcac4; border-radius: 8px; background: #fff; }
.frup-fold > summary::-webkit-details-marker { display: none; }
.frup-fold > summary::before { content: "+"; font-family: var(--body); font-size: 15px; line-height: 1; color: var(--red); margin-top: -2px; }
.frup-fold > summary:hover { border-color: var(--ink); }
.frup-fold[open] > summary { margin-bottom: 16px; }
.frup-fold[open] > summary::before { content: "\2212"; }
.frup-body--office .frup-comp-form > summary { padding: 11.5px 14px 6.5px; }

/* Tables */
.frup-body--office .frup-table { font-size: 14.5px; border-color: var(--rule); }
.frup-body--office .frup-table th { padding: 12px 16px 11px; font-size: 10.5px; letter-spacing: .12em; background: var(--soft); border-bottom-color: var(--rule); white-space: nowrap; }
.frup-body--office .frup-table td { padding: 14px 16px; vertical-align: middle; border-top-color: var(--line2); }
.frup-body--office .frup-table small { font-size: 12.5px; margin-top: 2px; }
.frup-body--office .frup-table b { font-weight: 600; }
.frup-table--board th:nth-child(6), .frup-table--board td:nth-child(6), .frup-table--board th:nth-child(7), .frup-table--board td:nth-child(7),
.frup-table--pay th:nth-child(4), .frup-table--pay td:nth-child(4), .frup-table--pay th:nth-child(5), .frup-table--pay td:nth-child(5),
.frup-table--clients th:nth-child(4), .frup-table--clients td:nth-child(4), .frup-table--clients th:nth-child(5), .frup-table--clients td:nth-child(5) { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.frup-table--pay td:nth-child(4), .frup-table--board td:nth-child(7), .frup-table--clients td:nth-child(5) { font-weight: 600; }
.frup-table--pay td:nth-child(7) { color: var(--g3); font-size: 13px; font-variant-numeric: tabular-nums; }
.frup-table--mail td:first-child { white-space: nowrap; color: var(--g2); }

/* Forms */
.frup-body--office .frup-f label { font-size: 11px; letter-spacing: .1em; color: var(--g2); margin-bottom: 7px; }
.frup-body--office .frup-f input, .frup-body--office .frup-f select, .frup-body--office .frup-f textarea { border-color: var(--fline); font-size: 15px; padding: 11px 13px; }
.frup-body--office .frup-f input:focus, .frup-body--office .frup-f select:focus, .frup-body--office .frup-f textarea:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(203, 60, 32, .12); }
.frup-body--office .frup-grid { gap: 16px 18px; }
.frup-body--office .frup-actions { margin-top: 18px; }

/* Season board figures and filters */
.frup-body--office .frup-stat { padding: 16px 20px 15px; }
.frup-body--office .frup-filters { align-items: flex-end; }

@media (max-width: 860px) {
	.frup-body--office #frup { padding: 22px 16px 96px; }
	.frup-body--office #frup .frup-h1 { font-size: 27px; }
	.frup-head-row { flex-direction: column; align-items: flex-start; gap: 14px; }
	.frup-sumstrip { grid-template-columns: 1fr 1fr; }
	.frup-sumstrip > div:nth-child(3) { border-left: 0; }
	.frup-sumstrip > div:nth-child(n+3) { border-top: 1px solid var(--rule); }
	.frup-sumstrip b { font-size: 21px; }
	.frup-body--office .frup-card { padding: 18px; }
	.frup-meta { gap: 6px 16px; font-size: 14px; }
	.frup-body--office .frup-lineact input[type=text] { width: 100%; }
}

.frup-body--office #frup .frup-tcard-h .frup-h2 { margin: 0; line-height: 1.3; }
.frup-body--office .frup-tcount { line-height: 18px; padding: 1px 8px 0; }
.frup-body--office .frup-more--list > .frup-lines { margin-top: 0; }
.frup-sumstrip b.frup-sum-t { white-space: normal; overflow-wrap: anywhere; font-size: 16px; line-height: 1.3; }

/* Phones: stacked table rows, label left and value beside it */
@media (max-width: 760px) {
	.frup-body--office .frup-table.is-stack tr { padding: 14px 16px; }
	.frup-body--office .frup-table.is-stack tr:first-child { padding-top: 14px; }
	.frup-body--office .frup-table.is-stack td { padding: 3px 0; text-align: left; white-space: normal; font-weight: inherit; color: inherit; font-size: inherit; }
	.frup-body--office .frup-table.is-stack td:first-child { font-size: 16px; padding-bottom: 6px; }
	.frup-body--office .frup-table.is-stack td[data-label]:not(:first-child)::before { min-width: 104px; font-size: 10.5px; letter-spacing: .1em; }
	.frup-body--office .frup-table.is-stack td:empty { display: none; }
	/* Today rows wrap instead of overlapping when the amount and button do not fit */
	.frup-trow, .frup-tcard--side .frup-trow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; }
	.frup-trow > .frup-trow-main { flex: 1 1 100%; }
	.frup-trow > .frup-trow-acts { margin-left: auto; }
	.frup-trow > .frup-trow-meta:empty + .frup-trow-acts { margin-left: 0; }
}

/* 0.16.0 First and last name side by side on sign-up */
.frup-grid1 > .frup-name-pair { gap: 0 14px; }
@media (max-width: 560px) { .frup-grid1 > .frup-name-pair { grid-template-columns: 1fr 1fr; } }

/* Branding (logo) on the client's Account page */
.frup-logo-row { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 24px; align-items: start; margin-top: 18px; }
.frup-logo-box { width: 160px; height: 160px; display: grid; place-items: center; background: #fff; border: 1px solid var(--rule); padding: 14px; }
.frup-logo-box img { max-width: 100%; max-height: 100%; object-fit: contain; }
.frup-logo-box.is-empty { background: transparent; border-style: dashed; color: var(--g3); font-size: 13px; }
.frup-logo-acts .frup-actions { margin-top: 12px; }
.frup-logo-acts form + form { margin-top: 14px; }
@media (max-width: 560px) { .frup-logo-row { grid-template-columns: 1fr; } .frup-logo-box { width: 120px; height: 120px; } }

/* Office: the client's logo beside their name */
.frup-who { display: flex; align-items: center; gap: 12px; min-width: 0; }
.frup-who > div { min-width: 0; }
.frup-lmark { flex: none; width: 40px; height: 40px; display: grid; place-items: center; background: #fff; border: 1px solid var(--rule); border-radius: 8px; overflow: hidden; }
.frup-lmark img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.frup-lmark.is-empty { background: var(--soft, #f7f6f4); color: var(--g3); font-family: var(--head); font-size: 13px; letter-spacing: .04em; }
.frup-head-id { display: flex; align-items: center; gap: 18px; }
.frup-head-row > div { min-width: 0; }
.frup-meta--contact a, .frup-meta--contact span { overflow-wrap: anywhere; min-width: 0; }
.frup-head-logo { flex: none; width: 76px; height: 76px; display: grid; place-items: center; background: #fff; border: 1px solid var(--rule); border-radius: 12px; padding: 8px; }
@media (max-width: 560px) { .frup-head-logo { width: 56px; height: 56px; } .frup-head-id { gap: 14px; } }
.frup-head-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.frup-body--office .frup-logo-box { border-radius: 10px; }

/* 0.17.0 Account card at the foot of the office client page: close, reopen, delete */
.frup-acct-card { margin-top: 22px; }
.frup-acct-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 16px 0; }
.frup-acct-row + .frup-acct-row { border-top: 1px solid var(--line2, #eee); }
.frup-acct-row:first-child { padding-top: 4px; }
.frup-acct-row:last-child { padding-bottom: 0; }
.frup-acct-row > div:first-child { min-width: 0; max-width: 620px; }
.frup-acct-row b { display: block; font-weight: 600; }
.frup-acct-row small { display: block; margin-top: 3px; color: var(--g3); font-size: 13.5px; line-height: 1.5; }
.frup-acct-row form { margin: 0; flex: none; }
.frup-acct-row .frup-del { margin: 0; flex: none; }
.frup-acct-row .frup-del[open] { flex: 0 1 380px; }
.frup-acct-row .frup-del > summary { color: #b3261e; }
.frup-acct-row .frup-del > summary::before { color: #b3261e; }
#frup .frup-btn--danger { background: #b3261e; border-color: #b3261e; color: #fff; }
#frup .frup-btn--danger:hover { background: #8f1d17; border-color: #8f1d17; }
@media (max-width: 760px) { .frup-acct-row { flex-direction: column; gap: 12px; } .frup-acct-row .frup-del[open] { flex: none; width: 100%; } }


/* 0.18.0 Stallion owners: Your stallions strip, Stallions page, read-only contract */
.ow-switch { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 26px; }
.ow-switch a { font-family: var(--head); text-transform: uppercase; font-size: 12px; letter-spacing: .08em; color: var(--g2); text-decoration: none; border: 1px solid var(--rule); padding: 10px 16px 8px; }
.ow-switch a.is-on { color: #fff; border-color: var(--red); background: rgba(203, 60, 32, .12); }
.ow-stallion { display: grid; grid-template-columns: 220px minmax(0, 1fr); background: var(--panel); border: 1px solid var(--rule); border-top: 2px solid var(--red); margin: 0 0 18px; }
.ow-stallion-ph { background: #000; }
.ow-stallion-ph img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 1 / 1; }
.ow-stallion-tx { padding: 22px 26px; min-width: 0; }
.ow-stallion-tx .frup-eyebrow { margin: 0 0 6px; }
.ow-stallion-tx h2 { font-family: var(--name); font-weight: 500; font-size: 30px; letter-spacing: .03em; margin: 0; text-transform: uppercase; }
.ow-fee { margin: 6px 0 0; color: var(--g2); font-size: 15px; }
.ow-fee b { color: var(--red); font-weight: 600; }
.ow-figs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 20px 0 0; border-top: 1px solid var(--rule); }
.ow-figs div { padding: 14px 14px 0 0; }
.ow-figs div + div { padding-left: 14px; border-left: 1px solid var(--rule); }
.ow-figs span { display: block; font-family: var(--head); text-transform: uppercase; font-size: 10.5px; letter-spacing: .1em; color: var(--g3); }
.ow-figs b { display: block; margin-top: 6px; font-family: var(--name); font-weight: 400; font-size: 26px; line-height: 1.1; }
.ow-figs b.is-due { color: var(--red); }
.ow-sec-h { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 34px 0 14px; }
.ow-sec-h h2 { margin: 0; }
.ow-tools { display: flex; gap: 10px; align-items: center; }
.ow-tools select { background: var(--field); color: #fff; border: 1px solid var(--fline); padding: 9px 12px; font: inherit; font-size: 14px; }
.ow-table { width: 100%; border-collapse: collapse; background: var(--panel); border: 1px solid var(--rule); }
.ow-table th { text-align: left; font-family: var(--head); text-transform: uppercase; font-weight: 400; font-size: 10.5px; letter-spacing: .12em; color: var(--g3); padding: 14px 16px 12px; border-bottom: 1px solid var(--rule); white-space: nowrap; }
.ow-table td { padding: 16px; border-top: 1px solid #222; vertical-align: middle; font-size: 15px; }
.ow-table tr:first-child td { border-top: 0; }
.ow-table tr:hover td { background: #191919; }
.ow-mare { display: flex; gap: 12px; align-items: center; }
.ow-mare img, .ow-ini { width: 44px; height: 44px; object-fit: cover; flex: none; }
.ow-ini { display: grid; place-items: center; background: #1d1d1d; border: 1px solid var(--rule); color: var(--g3); font-family: var(--head); font-size: 13px; letter-spacing: .06em; }
.ow-mare a { color: #fff; font-weight: 600; text-decoration: none; border-bottom: 1px solid #5a2a20; }
.ow-table small { display: block; color: var(--g3); font-size: 13px; margin-top: 2px; }
.ow-table .frup-track { margin: 0; min-width: 300px; }
.ow-table .frup-track li { font-size: 10px; }
.ow-num { font-variant-numeric: tabular-nums; white-space: nowrap; }
.ow-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 20px; margin-top: 34px; }
.ow-list { list-style: none; margin: 0; padding: 0; }
.ow-list li { padding: 12px 0; border-top: 1px solid #222; display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.ow-list li > .frup-chip { flex: none; }
.ow-list li:first-child { border-top: 0; padding-top: 0; }
.ow-list b { font-weight: 600; }
.ow-list small { display: block; color: var(--g3); font-size: 13px; margin-top: 2px; }
.ow-list .ow-n { font-family: var(--name); font-size: 22px; color: #fff; }
.ow-wait { border-left: 3px solid var(--red); }
.ow-k { display: grid; grid-template-columns: 1fr 340px; gap: 20px; }
.ow-steps { list-style: none; margin: 0; padding: 0; }
@media (max-width: 900px) {
  .ow-figs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ow-figs div:nth-child(4) { border-left: 0; padding-left: 0; }
  .ow-figs div:nth-child(n+4) { border-top: 1px solid var(--rule); margin-top: 12px; }
  .ow-grid, .ow-k { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .ow-stallion { grid-template-columns: 104px minmax(0, 1fr); grid-template-rows: auto auto 1fr auto; }
  .ow-stallion-ph { grid-row: 1 / span 3; grid-column: 1; }
  .ow-stallion-tx > .frup-eyebrow { grid-row: 1; margin: 0; }
  .ow-stallion-tx > h2 { grid-row: 2; margin: 2px 0 0; }
  .ow-stallion-tx > .ow-fee { grid-row: 3; margin: 2px 0 0; }
  .ow-figs { grid-row: 4; }
  .ow-stallion-ph img { aspect-ratio: 1 / 1; height: auto; }
  .ow-stallion-tx { display: contents; }
  .ow-stallion-tx > .frup-eyebrow, .ow-stallion-tx > h2, .ow-stallion-tx > .ow-fee { grid-column: 2; padding-left: 16px; padding-right: 12px; }
  .ow-stallion-tx > .frup-eyebrow { padding-top: 14px; }
  .ow-stallion-tx h2 { font-size: 23px; }
  .ow-stallion-tx > .ow-fee { font-size: 14px; }
  .ow-figs { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; margin: 16px 0 0; padding: 0 16px 16px; }
  .ow-figs div, .ow-figs div + div, .ow-figs div:nth-child(4) { padding: 12px 0 0; border-left: 0; margin: 0; border-top: 0; }
  .ow-figs div:nth-child(n+3) { border-top: 1px solid var(--rule); margin-top: 12px; }
  .ow-figs div:nth-child(even) { padding-left: 14px; border-left: 1px solid var(--rule); }
  .ow-figs b { font-size: 22px; }
  .ow-table thead { display: none; }
  .ow-table, .ow-table tbody, .ow-table tr, .ow-table td { display: block; width: 100%; }
  .ow-table tr { padding: 14px 16px; border-top: 1px solid #222; }
  .ow-table tr:first-child { border-top: 0; }
  .ow-table td { padding: 4px 0; border: 0; }
  .ow-table .frup-track { min-width: 0; margin: 8px 0 4px; }
  .ow-sec-h { flex-direction: column; align-items: flex-start; }
}
.ys { margin: 0 0 40px; }
.ys-h { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0 0 14px; }
.ys-h h2 { margin: 0; }
.ys-h a { font-family: var(--head); text-transform: uppercase; font-size: 12px; letter-spacing: .08em; color: var(--red); text-decoration: none; }
.ys-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ys-card { display: grid; grid-template-columns: 120px minmax(0, 1fr); background: var(--panel); border: 1px solid var(--rule); border-left: 3px solid var(--red); color: #fff; text-decoration: none; }
.ys-card:hover { border-color: #444; border-left-color: var(--red); }
.ys-card img { width: 120px; height: 100%; min-height: 120px; object-fit: cover; display: block; }
.ys-tx { padding: 16px 18px; min-width: 0; }
.ys-tx h3 { font-family: var(--name); font-weight: 500; font-size: 21px; letter-spacing: .03em; text-transform: uppercase; margin: 0; }
.ys-figs { display: flex; gap: 22px; margin-top: 12px; }
.ys-figs span { display: block; font-family: var(--head); text-transform: uppercase; font-size: 10px; letter-spacing: .1em; color: var(--g3); }
.ys-figs b { display: block; font-family: var(--name); font-weight: 400; font-size: 22px; margin-top: 3px; }
.ys-figs b.is-due { color: var(--red); }
.ys-note { margin: 10px 0 0; font-size: 13px; color: var(--g2); }
.ys-note b { color: #fff; font-weight: 600; }
.ow-part { margin-top: 34px; }
@media (max-width: 760px) {
  .ys-cards { grid-template-columns: 1fr; }
  .ys-card { grid-template-columns: 96px minmax(0, 1fr); }
  .ys-card img { width: 96px; min-height: 0; aspect-ratio: 1 / 1; height: auto; }
  .ys-tx { padding: 12px 14px; }
  .ys-tx h3 { font-size: 18px; }
  .ys-figs { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 0 16px; margin-top: 8px; }
  .ys-figs span { min-height: 2.5em; display: flex; align-items: flex-end; line-height: 1.25; }
  .ys-h { flex-wrap: wrap; }
  .ys-figs b { font-size: 19px; }
}
.ow-table-wrap { overflow-x: auto; }
.ow-noph { display: block; width: 100%; height: 100%; min-height: 120px; background: #1a1a1a; }
.ow-line { margin: 10px 0 0; font-size: 14px; }
.ow-done { margin-top: 16px; }
.ow-part { margin-top: 34px; }
.frup-chips { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 6px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* Office: Stallions owned */
.frup-owns { margin-top: 22px; }
.frup-owns-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px 20px; margin: 16px 0 4px; }
.frup-owns-grid .frup-check { display: flex; align-items: center; gap: 10px; font-size: 15px; margin: 0; }

/* 0.18.1 Booking: the mare owner's City, State and ZIP code side by side */
.frup-place3 { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, .8fr); gap: 16px 20px; }
@media (max-width: 560px) { .frup-place3 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .frup-place3 > .frup-f:first-child { grid-column: 1 / -1; } }

/* 0.18.3 Top right: name and business, then the links, set apart */
.frup-nav-user .frup-nav-who { color: #d8d3cb; }
.frup-nav-user .frup-nav-who .frup-nav-firm { display: inline; margin-left: 10px; }
.frup-nav-user .frup-nav-links { display: inline-flex; gap: 14px; margin-left: 14px; padding-left: 14px; border-left: 1px solid #3a3a3a; }
.frup-nav .frup-nav-user .frup-nav-links a { text-decoration: none; color: #b8b3ab; }
.frup-nav .frup-nav-user .frup-nav-links a:hover { color: #fff; text-decoration: underline; }
@media (max-width: 760px) {
	.frup-nav-user .frup-nav-who .frup-nav-firm { display: block; margin: 2px 0 0; }
	.frup-nav-user .frup-nav-links { display: flex; margin: 8px 0 0; padding: 0; border: 0; }
}

/* 0.18.4 Hero: the business name sits right under the person's name */
.frup-body--portal #frup .frup-ident .frup-h1 { margin-bottom: 0; }
.frup-body--portal .frup-ident .frup-firm { margin-top: -.35em; line-height: 1.1; }


/* 0.19.0 Grouped menus: Contracts and Account open a short menu */
.frup-gn { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 26px; }
.frup-gn-item { position: relative; }
.frup-nav .frup-gn-top { display: inline-flex; align-items: center; gap: 6px; }
.frup-gn-top svg { transition: transform .15s ease; }
.frup-gn-item.is-open .frup-gn-top svg { transform: rotate(180deg); }
.frup-gn-menu { display: none; position: absolute; top: 100%; left: -18px; z-index: 40; width: 310px; padding-top: 12px; }
.frup-gn-item.is-open .frup-gn-menu { display: block; }
@media (hover: hover) { .frup-gn-item:hover .frup-gn-menu { display: block; } .frup-gn-item:hover .frup-gn-top svg { transform: rotate(180deg); } }
/* The menu a keyboard has opened, or the one under the mouse: never two at once. */
.frup-gn:hover .frup-gn-item.is-open:not(:hover) .frup-gn-menu { display: none; }
.frup-gn-menu::before { content: ""; display: block; height: 0; }
.frup-gn-menu > a:first-child { border-top: 2px solid var(--red); }
.frup-nav .frup-gn-menu a { display: block; background: #141414; border: 1px solid #2c2c2c; border-top: 0; padding: 12px 18px; color: #fff; text-decoration: none; text-transform: none; letter-spacing: 0; }
.frup-nav .frup-gn-menu a:hover, .frup-nav .frup-gn-menu a:focus-visible, .frup-nav .frup-gn-menu a.is-on { background: #1c1c1c; }
.frup-gn-menu b { display: flex; justify-content: space-between; gap: 10px; font-family: var(--head); text-transform: uppercase; font-size: 12px; letter-spacing: .06em; font-weight: 400; }
.frup-nav .frup-gn-menu a.is-on b { color: var(--red); }
.frup-gn-n { font-family: var(--name); color: var(--red); font-size: 14px; letter-spacing: 0; }
.frup-nav .frup-gn-menu small { display: block; margin-top: 4px; font-family: var(--body); font-size: 13px; color: #8a8782; line-height: 1.4; }
.frup-more-list .frup-more-group { padding: 16px 0 4px; font-family: var(--head); text-transform: uppercase; font-size: 10.5px; letter-spacing: .14em; color: var(--red); }
.frup-more-list li.frup-more-group, .frup-more-list li.frup-more-group + li { border-top: 0; }
.frup-more-list .frup-more-sub a { padding-left: 14px; }

.frup-nav .frup-gn-menu a.is-on, .frup-nav .frup-gn-menu a:hover { border-bottom-color: #2c2c2c; }

/* 0.19.0 Contracts: search, season, stage buttons, export */
.frup-ctbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin: 0 0 14px; }
.frup-ctsearch { flex: 1 1 320px; position: relative; margin: 0; }
.frup-ctsearch svg { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); color: var(--g3); }
.frup-ctsearch input { width: 100%; background: var(--field); border: 1px solid var(--fline); color: var(--ink); font: inherit; font-size: 15px; padding: 12px 14px 12px 40px; }
.frup-ctbar select { background: var(--field); border: 1px solid var(--fline); color: var(--ink); font: inherit; font-size: 14px; padding: 11px 12px; }
.frup-ctchips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.frup-ctchips a { font-family: var(--head); text-transform: uppercase; font-size: 11.5px; letter-spacing: .07em; color: var(--g2); text-decoration: none; border: 1px solid #333; padding: 10px 14px 6px; display: inline-flex; gap: 8px; align-items: baseline; }
.frup-ctchips a b { font-family: var(--name); font-weight: 400; color: var(--ink); font-size: 13px; letter-spacing: 0; line-height: 1; }
.frup-ctchips a:hover { border-color: #555; color: var(--ink); }
.frup-ctchips a.is-on { border-color: var(--red); color: var(--ink); background: rgba(203, 60, 32, .14); }
.frup-ctcount { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 0 0 12px; color: var(--g3); font-size: 14px; }
.frup-ctcount a { color: var(--g2); }


/* 0.19.0 Booking: what is due, beside the steps */
.frup-bk { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 28px; align-items: start; }
.frup-bk-main { min-width: 0; }
.frup-bk-main .frup-stallions { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
.frup-bk-sum { position: sticky; top: 20px; margin-top: 52px; background: #141414; border: 1px solid #2c2c2c; border-top: 2px solid var(--red); }
.frup-bk-who { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 14px; align-items: center; padding: 16px; border-bottom: 1px solid #262626; }
.frup-bk-ph { display: block; width: 72px; height: 72px; background: #1d1d1d; overflow: hidden; }
.frup-bk-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.frup-bk-who p { margin: 0; min-width: 0; }
.frup-bk-who .frup-eyebrow { margin: 0 0 3px; }
.frup-bk-who b { display: block; font-family: var(--name); font-weight: 500; font-size: 19px; letter-spacing: .03em; text-transform: uppercase; line-height: 1.15; }
.frup-bk-sum:not(.is-set) .frup-bk-who b { font-family: var(--body); text-transform: none; letter-spacing: 0; font-size: 15px; font-weight: 400; color: var(--g3); }
.frup-bk-who small { display: block; margin-top: 3px; color: var(--g3); font-size: 13px; line-height: 1.4; }
.frup-bk-due { padding: 16px 16px 4px; }
.frup-bk-due span { display: block; font-family: var(--head); text-transform: uppercase; font-size: 11px; letter-spacing: .12em; color: var(--red); }
.frup-bk-due strong { display: block; font-family: var(--name); font-weight: 400; font-size: 40px; line-height: 1.1; margin-top: 4px; }
.frup-bk-due small { display: block; color: var(--g3); font-size: 13px; margin-top: 2px; }
.frup-bk-sum .frup-bk-lines { margin: 8px 16px 0; }
.frup-bk-note { margin: 0; padding: 12px 16px 16px; color: var(--g3); font-size: 12.5px; line-height: 1.5; border-top: 1px solid #262626; }
.frup-bk-sum:not(.is-set) .frup-bk-due, .frup-bk-sum:not(.is-set) .frup-bk-note { display: none; }
.frup-bk-sum--phone { display: none; }
/* 0.35.10 The review step sits under the others; its own fee card only on phones (no side column). */
.frup-bk-phonedue { display: none; }
/* 0.36.6 Phones: no floating bar; the summary card sits under the stallion cards once one is chosen. */
@media (max-width: 900px) {
	.frup-bk { grid-template-columns: 1fr; }
	.frup-bk-sum { display: none; }
	.frup-bk-sum--phone.is-set { display: block; position: static; margin: 20px 0 0; }
	.frup-bk-phonedue { display: block; }
}

/* 0.19.2 Stallion cards: a long one-word name gets smaller to fit its card, never split mid-word */
.frup-stallions .frup-st { container-type: inline-size; }
.frup-stallions .frup-st .frup-h3 { overflow-wrap: normal; word-break: normal; font-size: min(19px, 8.4cqi); }
@media (max-width: 760px) { .frup-stallions .frup-st { container-type: normal; } .frup-stallions .frup-st .frup-h3 { font-size: 18px; } }

/* 0.19.5 Amount due card: Pay now as a small outlined button in the card's own lettering */
#frup a.frup-hstat-go { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; padding: 10px 12px 4px 13px; border: 1px solid var(--red); border-bottom-width: 1px; font-family: var(--head); text-transform: uppercase; font-size: 11.5px; letter-spacing: .1em; font-weight: 400; color: #fff; text-decoration: none; line-height: 1; transition: background .15s ease; }
#frup a.frup-hstat-go svg { flex: none; color: var(--red); position: relative; top: -3px; transition: transform .15s ease, color .15s ease; }
#frup a.frup-hstat-go:hover { background: var(--red); color: #fff; }
#frup a.frup-hstat-go:hover svg { color: #fff; transform: translateX(2px); }

/* 0.20.0 Add a card on the Account page */
.frup-addcard { margin-top: 18px; }
.frup-addcard[open] > summary { margin-bottom: 14px; }
.frup-addcard .frup-check { align-items: flex-start; line-height: 1.5; max-width: 680px; }
.frup-addcard .frup-check input { margin-top: 3px; }
.frup-addcard .frup-hint { margin-top: 10px; }
.frup-body--portal .frup-addcard > summary { background: transparent; border: 1px solid #555; border-radius: 0; color: #fff; padding: 12px 14px 7px; }
.frup-body--portal .frup-addcard > summary:hover { border-color: var(--red); }

/* 0.21.0: the breeding step asks two questions, the method and who carries the foal. */
#frup .frup-bk-q { margin: 4px 0 12px; font-size: 17px; letter-spacing: .06em; }
#frup .frup-opts + .frup-bk-q { margin-top: 26px; }

/* 0.23.0 Top right: one account item (logo or initials, name, business) opening a short menu */
@media (min-width: 1000px) {
	.frup-body--portal .frup-top-in { padding-top: 16px; }
	.frup-body--portal .frup-nav-user { position: static; margin-left: auto; display: flex; align-items: center; gap: 16px; }
}
.frup-nav .frup-acct-btn, .frup-nav .frup-acct-btn:hover, .frup-nav .frup-acct-btn.is-on { display: flex; align-items: center; gap: 12px; padding: 2px 0; border-bottom: 0; color: #8a8782; text-transform: none; letter-spacing: 0; }
.frup-acct-mark { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; overflow: hidden; background: var(--red); color: #fff; font-family: var(--head); font-size: 14px; letter-spacing: .04em; }
.frup-acct-mark.has-logo { background: #fff; }
.frup-acct-mark img { width: 100%; height: 100%; object-fit: contain; padding: 5px; box-sizing: border-box; }
.frup-acct-who { text-align: left; line-height: 1.25; }
.frup-acct-who b { display: block; font-family: var(--body); font-weight: 400; font-size: 14px; color: #d8d3cb; }
.frup-acct-who small { display: block; margin-top: 2px; font-family: var(--head); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: #8a8782; }
.frup-acct-btn:hover .frup-acct-who b, .frup-acct.is-open .frup-acct-who b { color: #fff; }
.frup-acct .frup-gn-menu { left: auto; right: 0; width: 290px; }
.frup-nav .frup-acct-menu a.frup-acct-out b { color: #b8b3ab; }
.frup-nav .frup-acct-menu a.frup-acct-out:hover b { color: #fff; }
.frup-nav .frup-nav-user .frup-acct a { text-decoration: none; text-align: left; }
.frup-top-tag { white-space: nowrap; }
@media (max-width: 999px) { .frup-body--portal .frup-top-tag { padding-left: 12px; font-size: 11px; } }
@media (max-width: 389px) { .frup-body--portal .frup-menu span { display: none; } .frup-body--portal .frup-top-in { gap: 14px; } }

/* 0.23.1 Account item: name only, a smaller mark, initials centered on their capitals */
.frup-nav .frup-acct-btn, .frup-nav .frup-acct-btn:hover, .frup-nav .frup-acct-btn.is-on { gap: 10px; }
.frup-acct-mark { width: 30px; height: 30px; box-sizing: border-box; font-size: 12px; line-height: 1; letter-spacing: 0; padding: 2px 0 0 1px; }
.frup-acct-mark img { padding: 3px; }
/* Up to 1279px the menu and the name do not both fit beside the logo: the circle and arrow stand alone there */
@media (min-width: 1000px) and (max-width: 1279px) {
	.frup-body--portal .frup-acct-who { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.frup-body--portal .frup-nav .frup-acct-btn, .frup-body--portal .frup-nav .frup-acct-btn:hover, .frup-body--portal .frup-nav .frup-acct-btn.is-on { gap: 6px; }
	.frup-body--portal .frup-top-in { gap: 22px; }
	.frup-body--portal .frup-nav { gap: 6px 18px; }
	.frup-body--portal .frup-gn { gap: 6px 20px; }
}
.frup-acct-head { display: none; }
.frup-acct-menu > a:first-of-type { border-top: 2px solid var(--red); }
@media (min-width: 1000px) and (max-width: 1279px) {
	.frup-body--portal .frup-acct-head { display: block; background: #141414; border: 1px solid #2c2c2c; border-top: 2px solid var(--red); padding: 12px 18px; font-family: var(--body); font-size: 14px; color: #fff; text-align: left; }
	.frup-body--portal .frup-acct-menu > a:first-of-type { border-top: 0; }
}

/* 0.23.2 Office figure strip: Rockwell's tall figures need a taller line, or overflow:hidden cuts their tops.
   The extra height is taken back above and below, so the numbers sit where they did. */
.frup-sumstrip b { line-height: 1.7; margin: -1px 0 -7px; }
.frup-sumstrip b.frup-sum-t { margin: 9px 0 0; }

/* 0.24.0 Breeder's Certificate attached to the request */
.frup-cert-file { margin-top: 14px; }
.frup-cert-att { margin: 0 0 8px; font-size: 14px; }
.frup-cert-open { margin: 12px 0 0; }

/* 0.24.1 Office top right: the same account menu as the client portal, and a label only when payments are in test mode or the portal is closed */
.frup-body--office .frup-top-acct { flex: none; margin-left: auto; display: flex; align-items: center; gap: 18px; }
.frup-top-warn { font-family: var(--head); text-transform: uppercase; font-size: 10.5px; letter-spacing: .12em; color: #e0a33a; border: 1px solid #5a4520; padding: 6px 10px 5px; white-space: nowrap; }
@media (max-width: 999px) { .frup-body--office .frup-top-acct { display: none; } }

/* 0.25.0 Collection calendar (client shipment form, office stallion page) */
.frup-cal { margin: 10px 0 0; max-width: 560px; }
.frup-cal-wk, .frup-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.frup-cal-wk span { font-family: var(--head); text-transform: uppercase; font-size: 10.5px; letter-spacing: .1em; color: var(--g3); text-align: center; padding: 0 0 6px; }
.frup-cal-d { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 66px; padding: 14px 2px 6px; border: 1px solid var(--rule); background: var(--field); text-align: center; line-height: 1.1; margin: 0; }
.frup-cal-d i { font-style: normal; font-family: var(--name); font-size: 22px; letter-spacing: .02em; }
.frup-cal-d em { position: absolute; top: 4px; left: 6px; font-style: normal; font-family: var(--head); text-transform: uppercase; font-size: 9.5px; letter-spacing: .08em; color: var(--g3); }
.frup-cal-d small { display: block; margin-top: 3px; font-size: 11px; color: var(--g3); }
.frup-cal-d.is-off { border-color: transparent; background: transparent; color: var(--g4); }
.frup-cal-d.is-off i { font-size: 17px; }
.frup-cal-d.is-na { color: var(--g3); background: transparent; border-style: dashed; }
.frup-cal-d.is-na small { color: var(--warn); }
.frup-cal-d.is-open { cursor: pointer; border-color: var(--fline); }
.frup-cal-d.is-open small { color: var(--ok); }
.frup-cal-d.is-open:hover { border-color: var(--g2); }
.frup-cal-d.is-open input { position: absolute; opacity: 0; pointer-events: none; }
.frup-cal-d.is-open:has(input:checked) { border-color: var(--red); background: var(--red); color: #fff; }
.frup-cal-d.is-open:has(input:checked) small, .frup-cal-d.is-open:has(input:checked) em { color: #fff; }
.frup-cal-d.is-open:has(input:focus-visible) { outline: 2px solid var(--red); outline-offset: 2px; }
.frup-cal-notes { list-style: none; margin: 12px 0 0; padding: 0; font-size: 14px; color: var(--g2); }
.frup-cal-notes li + li { margin-top: 4px; }
.frup-cal-notes li:first-child { color: var(--g3); }
.frup-cal + .frup-cal-notes + .frup-h3, .frup-cal-notes + .frup-h3 { margin-top: 22px; }
.frup-cal-grid .frup-cal-d[aria-hidden] em { color: var(--g4); }
/* The preview on the office page is not a form */
.frup-cal input[name="preview"] { display: none; }
@media (max-width: 480px) {
	.frup-cal-wk, .frup-cal-grid { gap: 4px; }
	.frup-cal-d { min-height: 58px; padding: 13px 1px 5px; }
	.frup-cal-d i { font-size: 19px; }
	.frup-cal-d small { font-size: 10px; }
	.frup-cal-d em { top: 3px; left: 4px; font-size: 8.5px; }
}

/* 0.25.0 Office Stallions page */
.frup-barn-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.frup-barn-grid > .frup-card { margin: 0; }
.frup-barn-rows { list-style: none; margin: 0; padding: 0; }
.frup-barn-rows li + li { border-top: 1px solid var(--rule); }
.frup-barn-rows a { display: flex; align-items: center; gap: 14px; padding: 10px 0; text-decoration: none; }
.frup-barn-rows a:hover b { color: var(--red); }
.frup-barn-ph { flex: none; width: 52px; height: 40px; background: #e9e6e2; overflow: hidden; }
.frup-barn-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.frup-barn-t { flex: 1; min-width: 0; }
.frup-barn-t b { display: block; font-weight: 600; }
.frup-barn-t small { display: block; color: var(--g3); font-size: 13px; }
.frup-barn-rows .frup-chip { flex: none; }
.frup-barn-off { list-style: none; margin: 0 0 4px; padding: 0; }
.frup-barn-off li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; }
.frup-barn-off li + li { border-top: 1px solid var(--rule); }
.frup-barn-off b { display: block; font-weight: 600; }
.frup-barn-off small { display: block; color: var(--g3); font-size: 13px; }
.frup-barn-off form { margin: 0; flex: none; }
.frup-barn-none { color: var(--g3); margin: 0; }
.frup-barn-head { display: flex; align-items: center; gap: 22px; }
.frup-barn-hph { flex: none; width: 132px; height: 96px; object-fit: cover; display: block; }
.frup-barn-head .frup-lead { margin-bottom: 10px; }
.frup-barn-alert { border-left: 3px solid var(--warn); margin-bottom: 20px; }
.frup-barn-alert .frup-log small { color: var(--warn); }
@media (max-width: 980px) { .frup-barn-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .frup-barn-hph { width: 88px; height: 66px; } .frup-barn-head { gap: 14px; align-items: flex-start; } }

/* 0.26.0 Barn sheet: one collection day, stallion by stallion */
.frup-card-hr { display: inline-flex; align-items: center; gap: 14px; flex: none; }
.frup-sheet-link { font-family: var(--head); text-transform: uppercase; font-size: 11px; letter-spacing: .08em; text-decoration: none; border-bottom: 1px solid var(--red); padding-bottom: 1px; }
.frup-sheet-head { position: relative; }
.frup-sheet-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.frup-sheet-sum { margin-bottom: 20px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1px; background: var(--rule); overflow: hidden; }
.frup-sheet-sum > div { background: var(--panel); }
.frup-sheet-sum > div + div { border-left: 0; }
.frup-sheet-wait { margin: 0 0 20px; }
.frup-sheet-st { margin-bottom: 20px; break-inside: avoid; }
.frup-sheet-n { font-family: var(--head); text-transform: uppercase; font-size: 11px; letter-spacing: .1em; color: var(--g3); white-space: nowrap; }
.frup-sheet-off { margin: -4px 0 10px; color: var(--warn); font-size: 14px; }
.frup-sheet-rows { list-style: none; margin: 0; padding: 0; counter-reset: sheet; }
.frup-sheet-rows > li { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.6fr) 120px minmax(0, 1.2fr); gap: 6px 22px; padding: 14px 0 14px 34px; position: relative; counter-increment: sheet; break-inside: avoid; }
.frup-sheet-rows > li + li { border-top: 1px solid var(--rule); }
.frup-sheet-rows > li::before { content: counter(sheet); position: absolute; left: 0; top: 14px; width: 22px; height: 22px; border-radius: 50%; background: var(--ink); color: var(--panel); font-size: 12px; font-weight: 600; display: grid; place-items: center; }
.frup-sheet-rows b { display: block; font-weight: 600; }
#frup .frup-sheet-rows b a { border-bottom: 0; text-decoration: none; }
#frup .frup-sheet-rows b a:hover { color: var(--red); }
.frup-sheet-rows small { display: block; color: var(--g3); font-size: 13px; line-height: 1.4; }
.frup-sheet-rows small.frup-sheet-note { color: var(--ink); margin-top: 4px; }
.frup-sheet-st-c .frup-chip { margin-bottom: 4px; }
.frup-sheet-tick { display: flex; flex-wrap: wrap; gap: 6px 14px; align-content: flex-start; font-size: 12.5px; color: var(--g2); }
.frup-sheet-tick span { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.frup-sheet-tick span::before { content: ""; width: 14px; height: 14px; border: 1.5px solid var(--g3); border-radius: 2px; flex: none; }
.frup-sheet-tick span.frup-sheet-line { flex: 1 1 100%; }
.frup-sheet-tick span.frup-sheet-line::before { display: none; }
.frup-sheet-tick span.frup-sheet-line::after { content: ""; flex: 1; border-bottom: 1px solid var(--g3); height: 14px; min-width: 120px; }
@media (max-width: 980px) {
	.frup-sheet-rows > li { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 560px) {
	.frup-sheet-rows > li { grid-template-columns: minmax(0, 1fr); padding-left: 32px; }
	.frup-sheet-tick { display: none; }
	.frup-card-hr { gap: 10px; }
}
@media print {
	@page { margin: 12mm; }
	html, body.frup-body, .frup-body--office { background: #fff !important; }
	.frup-body--office .frup-foot, .frup-body--office .frup-tabbar, .frup-body--office .frup-menu, .frup-sheet-nav, .frup-sheet-wait, .frup-body--office .frup-notice { display: none !important; }
	#frup { padding: 0; max-width: none; }
	.frup-sheet-head .frup-eyebrow { display: none; }
	.frup-sheet-head .frup-h1 { font-size: 24px; }
	.frup-sheet-head .frup-lead { margin: 4px 0 10px; font-size: 16px; color: #000; }
	.frup-card { border: 1px solid #bbb !important; box-shadow: none !important; padding: 12px 14px !important; border-radius: 0 !important; }
	.frup-sheet-sum { margin-bottom: 10px; grid-template-columns: repeat(6, minmax(0, 1fr)); border-radius: 0; }
	.frup-sheet-sum > div { padding: 6px 10px; }
	.frup-sheet-sum span { font-size: 8.5px; letter-spacing: .08em; }
	.frup-sheet-sum b { font-size: 18px; margin-top: 2px; }
	.frup-sheet-st { margin-bottom: 10px; }
	.frup-sheet-rows > li { grid-template-columns: 1.3fr 1.5fr 76px 1.3fr; gap: 4px 14px; padding: 8px 0 8px 26px; font-size: 12px; }
	.frup-sheet-rows > li::before { top: 8px; width: 18px; height: 18px; font-size: 10.5px; background: none; color: #000; border: 1.5px solid #000; }
	.frup-sheet-rows small { font-size: 11px; }
	.frup-sheet-tick { font-size: 11px; gap: 4px 10px; }
	.frup-sheet-tick span::before { width: 12px; height: 12px; }
	.frup-sheet-tick span.frup-sheet-line::after { height: 12px; min-width: 80px; }
	.frup-card-h { margin-bottom: 4px !important; }
	.frup-sheet-st .frup-h2 { font-size: 15px; }
	.frup-chip { border: 1px solid currentColor !important; background: none !important; }
	.frup-sheet-tick { display: flex !important; }
	.frup-sheet-rows small { color: #333; }
	#frup .frup-sheet-rows b a { color: #000; }
}

/* 0.27.0 Box labels: 4 x 6 inches, one to a page */
.frup-label-hint { margin: 6px 0 0; }
.frup-labels { display: flex; flex-wrap: wrap; gap: 24px; }
.frup-label { width: 4in; height: 6in; max-width: 100%; background: #fff; color: #000; border: 1px solid #bbb; padding: .22in .24in; display: flex; flex-direction: column; gap: .14in; font-family: var(--body); overflow: hidden; }
.frup-label span { display: block; font-family: var(--head); text-transform: uppercase; font-size: 9px; letter-spacing: .14em; color: #555; margin-bottom: 3px; }
.frup-label b { display: block; font-weight: 700; line-height: 1.2; }
.frup-label i { display: block; font-style: normal; line-height: 1.3; }
.frup-label-from { font-size: 11px; padding-bottom: .12in; border-bottom: 1px solid #000; }
.frup-label-to { font-size: 17px; flex: 1; }
.frup-label-to b { font-size: 22px; margin-bottom: 4px; }
.frup-label-band { font-family: var(--head); text-transform: uppercase; text-align: center; border: 3px solid #000; padding: 8px 6px 7px; }
.frup-label-band strong { display: block; font-weight: 400; font-size: 22px; letter-spacing: .16em; line-height: 1.1; }
.frup-label-band em { display: block; font-style: normal; font-size: 11px; letter-spacing: .14em; margin-top: 3px; }
.frup-label-facts { display: grid; grid-template-columns: auto 1fr; gap: 3px 12px; margin: 0; font-size: 12px; }
.frup-label-facts dt { font-family: var(--head); text-transform: uppercase; font-size: 9px; letter-spacing: .12em; color: #555; padding-top: 2px; }
.frup-label-facts dd { margin: 0; font-weight: 600; }
@media (max-width: 480px) {
	.frup-label { width: 100%; height: auto; aspect-ratio: 2 / 3; padding: 18px; }
	.frup-label-to b { font-size: 19px; }
	.frup-label-to { font-size: 15px; }
}
@page label { size: 4in 6in; margin: 0; }
@media print {
	.frup-label-hint { display: none; }
	.frup-labels { display: block; }
	.frup-label { page: label; break-after: page; break-inside: avoid; border: 0; width: 4in; height: 5.96in; margin: 0; }
	.frup-body--office:has(.frup-labels), .frup-body--office:has(.frup-labels) #frup, .frup-labels { page: label; }
	.frup-body--office:has(.frup-labels) #frup { padding: 0; margin: 0; }
	.frup-body--office { padding: 0 !important; }
	.frup-body--office:has(.frup-labels) .frup-switchbar, .frup-body--office:has(.frup-labels) .frup-errors { display: none !important; }
	.frup-label:last-child { break-after: auto; }
	.frup-labels ~ *, .frup-body--office .frup-head.frup-sheet-head:has(+ .frup-labels) { display: none !important; }
	.frup-label-band { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* 0.28.0 Health papers on a mare's page */
.frup-health-rows { list-style: none; margin: 0; padding: 0; }
.frup-health-rows li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 0; }
.frup-health-rows li + li { border-top: 1px solid var(--rule); }
.frup-health-rows b { display: block; font-weight: 600; }
.frup-health-rows small { display: block; color: var(--g3); font-size: 13px; margin-top: 2px; overflow-wrap: anywhere; }
.frup-health-rows .frup-chip { flex: none; }
.frup-health-all { margin-top: 12px; }
.frup-health-all > summary { cursor: pointer; font-size: 14px; color: var(--g2); }
.frup-health-all .frup-docs { margin-top: 8px; }
.frup-health .frup-fold { margin-top: 14px; }
.frup-ship-paper { margin: 0 0 4px; }

.frup-health .frup-grid { grid-template-columns: minmax(0, 1fr); }
.frup-body--portal .frup-fold > summary { background: transparent; color: var(--ink); border-color: var(--fline); border-radius: 0; }
.frup-body--portal .frup-fold > summary:hover { border-color: var(--g2); }

/* 0.30.0 Frozen semen inventory */
.frup-straws { grid-column: 1 / -1; }
.frup-straw-sum { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 10px; }
.frup-straw-sum small { display: block; color: var(--g3); font-size: 12.5px; margin-top: 2px; }
.frup-straw-rule { margin: 0 0 14px; font-size: 14px; }
.frup-straws .frup-h3 { margin: 18px 0 6px; }
.frup-straw-forms { display: flex; flex-wrap: wrap; gap: 0 12px; align-items: flex-start; }
.frup-straw-forms > .frup-fold { flex: 0 0 auto; margin-top: 10px; }
.frup-straw-forms > .frup-fold[open] { flex: 1 1 100%; }
.frup-straw-log td small { display: block; color: var(--g3); font-size: 12px; }
.frup-straw-client p { margin: 10px 0 0; }
@media (max-width: 560px) { .frup-straw-sum { grid-template-columns: repeat(3, minmax(0, 1fr)); } .frup-straw-sum > div { padding: 12px 10px; } .frup-straw-sum b { font-size: 20px; } }

/* 0.31.0 Book limits and the waitlist */
.frup-st.is-full .frup-fee { color: var(--g2); }
.frup-st-wait { display: inline-block; margin: 10px auto 0; font-family: var(--head); text-transform: uppercase; font-size: 11px; letter-spacing: .08em; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--red); padding-bottom: 2px; }
.frup-st-wait:hover { color: var(--red); }
.frup-book { grid-column: 1 / -1; }
.frup-wait { list-style: none; margin: 4px 0 0; padding: 0; counter-reset: wait; }
.frup-wait > li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 0 12px 34px; position: relative; counter-increment: wait; }
.frup-wait > li + li { border-top: 1px solid var(--rule); }
.frup-wait > li::before { content: counter(wait); position: absolute; left: 0; top: 13px; width: 22px; height: 22px; border-radius: 50%; background: var(--ink); color: var(--panel); font-size: 12px; font-weight: 600; display: grid; place-items: center; }
.frup-wait b { display: block; font-weight: 600; }
#frup .frup-wait b a { text-decoration: none; border-bottom: 0; }
.frup-wait small { display: block; color: var(--g3); font-size: 13px; }
.frup-wait-acts { display: flex; gap: 8px; flex: none; }
.frup-wait-acts form { margin: 0; }
@media (max-width: 640px) { .frup-wait > li { flex-direction: column; align-items: flex-start; } }
@media (max-width: 760px) { .frup-st.is-full .frup-st-wait { justify-self: start; margin: 4px 0 0; } .frup-st.is-full img { grid-row: 1 / span 4; } }

/* 0.32.0 Foaling report details and the foal crop */
.frup-foal-more { margin-top: 14px; }
.frup-crop { grid-column: 1 / -1; }
.frup-crop .frup-h3 { margin: 14px 0 8px; font-size: 18px; }
.frup-foals { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.frup-foal { display: flex; gap: 12px; align-items: flex-start; padding: 10px; border: 1px solid var(--rule); background: var(--field); }
.frup-foal-ph { flex: none; width: 64px; height: 64px; background: var(--rule); overflow: hidden; }
.frup-foal-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.frup-foal-t { min-width: 0; }
.frup-foal-t b { display: block; font-weight: 600; }
.frup-foal-t small { display: block; color: var(--g3); font-size: 13px; line-height: 1.4; }
@media (max-width: 560px) { .frup-foals { grid-template-columns: minmax(0, 1fr); } }
.frup-preg .frup-lines li > span, .frup-preg .frup-lines li > span:last-child { min-width: 0; flex-shrink: 1; white-space: normal; overflow-wrap: anywhere; }

/* 0.33.0 Return breedings and Book again */
.frup-return-acts { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; }
.frup-return-acts form { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin: 0; }
.frup-inline-check { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; cursor: pointer; }
.frup-return p, .frup-again p { margin: 10px 0 0; }

/* 0.34.0 Owner statement */
.frup-stmt-pick select { font-size: 14px; padding: 8px 10px; border: 1px solid var(--fline); background: var(--field); color: var(--ink); }
.frup-stmt-note { margin: -8px 0 18px; }
.frup-stmt-st { margin-bottom: 20px; break-inside: avoid; }
.frup-stmt-t th.frup-num, .frup-stmt-t td.frup-num { text-align: right; white-space: nowrap; }
.frup-stmt-t tr.is-neg td { color: var(--warn); }
.frup-stmt-t tr.is-pay td { font-style: italic; }
@media print { .frup-stmt-pick { display: none !important; } .frup-stmt-st { margin-bottom: 10px; } }
.frup-body--portal .frup-stmt-t { background: transparent; border-color: var(--rule); color: var(--ink); }
.frup-body--portal .frup-stmt-t th { background: transparent; color: var(--g3); border-bottom-color: var(--rule); }
.frup-body--portal .frup-stmt-t td { border-top-color: var(--rule); }
@media print { .frup-body--portal .frup-stmt-t, .frup-body--portal .frup-stmt-t td, .frup-body--portal .frup-stmt-t th { color: #000; } .frup-body--portal .frup-card { background: #fff !important; color: #000; } .frup-body--portal .frup-sumstrip { background: #fff; color: #000; } }
@media print { .frup-body--portal .frup-h1, .frup-body--portal .frup-h2, .frup-body--portal .frup-lead { color: #000 !important; } }

/* 0.35.0 Reports */
.frup-rep-tabs { margin: 0 0 22px; }
.frup-rep-t th.frup-num, .frup-rep-t td.frup-num { text-align: right; white-space: nowrap; }
.frup-rep-t td small { display: block; color: var(--g3); font-size: 12px; }
.frup-rep-t tr.is-tot td { font-weight: 600; border-top: 2px solid var(--ink); }
.frup-stmt-pick input[type=date] { font-size: 14px; padding: 7px 10px; border: 1px solid var(--fline); background: var(--field); color: var(--ink); }
.frup-body--portal .frup-rep-t { background: transparent; border-color: var(--rule); color: var(--ink); }
.frup-body--portal .frup-rep-t th { background: transparent; color: var(--g3); border-bottom-color: var(--rule); }
.frup-body--portal .frup-rep-t td { border-top-color: var(--rule); }
@media print { .frup-rep-tabs { display: none; } .frup-body--portal .frup-rep-t, .frup-body--portal .frup-rep-t td, .frup-body--portal .frup-rep-t th { color: #000; } }
@media (min-width: 1000px) and (max-width: 1279px) { .frup-body--office .frup-nav--office { gap: 6px 17px; } .frup-body--office .frup-nav--office a { letter-spacing: .04em; } }
.frup-cal-d.is-open input:checked ~ i, .frup-cal-d.is-open input:checked ~ em, .frup-cal-d.is-open input:checked ~ small { color: #fff; }

/* 0.35.1 Visual review fixes for this build's pages */
.frup-rep-tabs { display: flex; flex-wrap: wrap; gap: 6px 22px; }
.frup-rep-tabs a { white-space: nowrap; }
@media (max-width: 760px) { .frup-rep-t tr.is-tot td { border-top: 0; } .frup-rep-t tr.is-tot { border-top: 2px solid var(--ink); } }
.frup-straw-sum { gap: 1px; background: var(--rule); overflow: hidden; }
.frup-straw-sum > div { background: var(--panel); border: 0 !important; }
.frup-stmt-pick { align-items: stretch; }
.frup-stmt-pick select, .frup-stmt-pick input[type=date], .frup-stmt-pick .frup-btn { min-height: 38px; height: auto; display: inline-flex; align-items: center; padding-top: 0; padding-bottom: 0; }
.frup-stmt-pick select { display: inline-block; }
.frup-body--portal .frup-stmt-st .frup-log li { border-top-color: var(--rule); }
.frup-body--portal .frup-sheet-sum { border-radius: 0; }
#frup .frup-stmt-pick .frup-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding-top: 5px; padding-bottom: 0; }

/* 0.35.2 Older layout fixes from the visual review */
.ow-k .frup-track { max-width: none; }
.frup-ctbar { align-items: stretch; }
#frup .frup-ctbar .frup-btn { display: inline-flex; align-items: center; justify-content: center; padding-top: 3px; padding-bottom: 0; }
.ow-tools { flex-wrap: wrap; max-width: 100%; }
@media (max-width: 560px) { .ow-tools { width: 100%; } .ow-tools select { flex: 1 1 140px; min-width: 0; } }
/* Stacked tables on phones: the value keeps its own column, so a second line (a name, a long subject) lines up under the first */
@media (max-width: 760px) {
	.frup-table.is-stack td[data-label]:not(:first-child) { position: relative; padding-left: 116px; min-height: 22px; }
	.frup-table.is-stack td[data-label]:not(:first-child)::before { position: absolute; left: 0; top: 7px; width: 108px; min-width: 0; margin: 0; white-space: normal; line-height: 1.3; }
}
/* A dot sits just left of each item; one that wraps to a new line would start that line with a dot, so the row is clipped at its left edge */
.frup-meta { overflow: hidden; padding-bottom: 2px; }
/* Phones: the paid note form takes the full row, so its hint is never cut off */
@media (max-width: 560px) {
	.frup-lineact form:has(input[name="note"]) { flex: 1 1 100%; }
	.frup-lineact form:has(input[name="note"]) input[type=text] { flex: 1 1 auto; width: auto; min-width: 0; }
}
/* A long list of open charges to pick from scrolls in its own box instead of stretching the client page */
.frup-pick[data-office-charge] { max-height: 420px; overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--rule); border-radius: 8px; padding: 4px 12px; }
/* Remove buttons under a saved card or an authorized user line up with the text above them */
#saved-cards .frup-log li form, #people .frup-log li form { display: block; margin-left: 0; }
.frup-pick[data-office-charge] + .frup-f { margin-top: 16px; }
/* Office fact panels share one label width, so stacked panels (Owner, Mare) line their values up */
.frup-body--office .frup-facts { grid-template-columns: 112px minmax(0, 1fr); }
.frup-body--office .frup-facts dt { overflow-wrap: anywhere; }
@media (min-width: 421px) and (max-width: 760px) { .ys-figs > div:not(:last-child) span { white-space: nowrap; } }
@media (max-width: 420px) { .ys-figs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; } .ys-figs span { min-height: 0; white-space: nowrap; } .ys-figs > div:nth-child(3) { grid-column: 1 / -1; } .ys-figs b { font-size: 18px; } }
/* The home page figures never push a narrow phone sideways */
@media (max-width: 760px) { .frup-hstats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 359px) { .frup-hstat { padding: 16px 14px; } .frup-hstat b { font-size: 28px; overflow-wrap: anywhere; } .frup-hstat > span { letter-spacing: .08em; } }

/* 0.35.3 Button text measured centered: Rockwell capitals sit high, so the padding is weighted to the top by exactly that much */
.frup-body--portal #frup .frup-btn:not(.frup-btn--sm) { padding-top: 14.25px; padding-bottom: 9.75px; }

/* 0.36.0 Booking without an account: Sign in at the right end of the header, on phones too */
.frup-nav.frup-nav--guest { justify-content: flex-end; }
@media (max-width: 999px) {
	.frup-body--portal .frup-nav.frup-nav--guest { display: flex; flex: 1; flex-basis: auto; }
	.frup-body--portal .frup-nav.frup-nav--guest > a { display: inline-block; }
}

/* 0.36.7 From a stallion page: only his card, the others behind a plain text link */
.frup-stallions--one > :not(.is-pick) { display: none !important; }
.frup-allst { margin: 14px 0 0; }
#frup .frup-allst-btn { background: none; border: 0; padding: 6px 0; font-family: var(--body); font-size: 15px; color: var(--g2); text-decoration: none; cursor: pointer; }
#frup .frup-allst-btn:hover, #frup .frup-allst-btn:focus-visible { color: var(--red); }
/* 0.36.8 Desktop: his one card runs the width of the column, photo beside the name and fee */
@media (min-width: 761px) {
	.frup-bk-main .frup-stallions--one { display: block; }
	.frup-stallions--one .frup-st.is-pick { display: grid; grid-template-columns: 168px minmax(0, 1fr); column-gap: 28px; align-items: center; align-content: center; text-align: left; padding: 16px 24px 16px 16px; }
	.frup-stallions--one .frup-st.is-pick img, .frup-stallions--one .frup-st.is-pick .frup-noimg { grid-row: 1 / span 4; width: 168px; height: 168px; margin: 0; }
	.frup-stallions--one .frup-st.is-pick .frup-h3 { margin: 0; font-size: 30px; line-height: 1.1; }
	.frup-stallions--one .frup-st.is-pick .frup-x { margin: 6px 0 16px; font-size: 15px; }
	.frup-stallions--one .frup-st.is-pick > .frup-fee { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; padding: 0; margin: 0; font-size: 13px; }
	.frup-stallions--one .frup-st.is-pick .frup-fee b { display: inline; font-size: 26px; margin: 0; }
	.frup-stallions--one .frup-st.is-pick .frup-until { margin-top: 4px; font-size: 13px; }
	.frup-stallions--one .frup-st.is-pick .frup-until.is-empty { display: none; }
}
