/**
 * Feeling Yachty — owner portal.
 *
 * The homepage look, not WooCommerce's: light, airy, pink-to-purple, cards
 * on a soft gradient. An owner opens this on a phone at the dock as often as
 * on a laptop, so every layout starts single-column and widens up.
 */

:root {
	--ow-pink: #E45C9C;
	--ow-pink-deep: #C94386;
	--ow-magenta: #d600d6;
	--ow-purple: #7C3AED;
	--ow-purple-deep: #5B21B6;
	--ow-ink: #1b1033;
	--ow-muted: #5b6478;
	--ow-line: rgba(124, 58, 237, .16);
	--ow-card: #ffffff;
	--ow-ok: #0e8c6a;
	--ow-warn: #b45309;
}

* { box-sizing: border-box; }

body.fy-own {
	margin: 0;
	min-height: 100vh;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif;
	color: var(--ow-ink);
	background:
		radial-gradient(1200px 420px at 50% -10%, rgba(214, 0, 214, .10), transparent 62%),
		linear-gradient(180deg, #ffffff 0%, #fdf6ff 42%, #f4eeff 100%);
	background-attachment: fixed;
	-webkit-font-smoothing: antialiased;
}

/* ---------------- sign in ---------------- */

.fy-own--login { display: grid; place-items: center; padding: 28px 18px; }
.fy-own-login {
	width: 100%;
	max-width: 400px;
	padding: 30px 26px 26px;
	border-radius: 26px;
	background: var(--ow-card);
	border: 1px solid var(--ow-line);
	box-shadow: 0 22px 50px rgba(27, 18, 64, .10);
	text-align: center;
}
.fy-own-login__logo { max-width: 150px; height: auto; margin: 0 auto 16px; display: block; }
.fy-own-login h1 {
	margin: 0 0 8px;
	font-size: 26px;
	font-weight: 900;
	letter-spacing: -.02em;
	background: linear-gradient(92deg, var(--ow-pink), var(--ow-magenta) 48%, var(--ow-purple));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.fy-own-login__sub { margin: 0 0 20px; font-size: 14.5px; line-height: 1.55; color: var(--ow-muted); }
.fy-own-login form { display: grid; gap: 6px; text-align: left; }
.fy-own-login label { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--ow-purple-deep); }
.fy-own-login input {
	width: 100%;
	padding: 12px 14px;
	margin-bottom: 8px;
	border-radius: 14px;
	border: 1.5px solid var(--ow-line);
	background: #fdfbff;
	font: inherit;
	font-size: 16px;
}
.fy-own-login input:focus { outline: 3px solid rgba(228, 92, 156, .28); outline-offset: 1px; border-color: var(--ow-pink); }
.fy-own-login button {
	margin-top: 6px;
	padding: 14px 18px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--ow-pink), var(--ow-pink-deep));
	color: #fff;
	font: inherit;
	font-size: 16px;
	font-weight: 800;
	cursor: pointer;
	box-shadow: 0 12px 26px rgba(228, 92, 156, .32);
}
.fy-own-login button:hover { transform: translateY(-1px); }
.fy-own-login__error {
	margin: 0 0 14px;
	padding: 11px 13px;
	border-radius: 14px;
	background: #fff1f2;
	border: 1px solid #fecdd3;
	color: #9f1239;
	font-size: 14px;
	font-weight: 700;
	text-align: left;
}
.fy-own-login__foot { margin: 18px 0 0; font-size: 13px; color: var(--ow-muted); display: flex; gap: 8px; justify-content: center; }
.fy-own-login__foot a { color: var(--ow-purple); font-weight: 700; text-decoration: none; }

/* ---------------- shell ---------------- */

.fy-own-top {
	position: sticky;
	top: 0;
	z-index: 5;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	padding: 12px clamp(14px, 3vw, 30px);
	background: rgba(255, 255, 255, .86);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--ow-line);
}
.fy-own-top::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	background: linear-gradient(92deg, var(--ow-pink), var(--ow-magenta) 48%, var(--ow-purple));
}
.fy-own-top__brand { display: flex; align-items: center; gap: 10px; margin-right: auto; }
.fy-own-top__brand img { width: 42px; height: auto; }
.fy-own-top__brand strong { display: block; font-size: 15px; font-weight: 900; letter-spacing: -.01em; }
.fy-own-top__brand span { display: block; font-size: 12.5px; color: var(--ow-muted); }

.fy-own-tabs { display: flex; flex-wrap: wrap; gap: 6px; order: 3; width: 100%; }
.fy-own-tab {
	padding: 9px 15px;
	border: 1.5px solid transparent;
	border-radius: 999px;
	background: rgba(124, 58, 237, .07);
	color: var(--ow-purple-deep);
	font: inherit;
	font-size: 13.5px;
	font-weight: 800;
	cursor: pointer;
}
.fy-own-tab:hover { background: rgba(124, 58, 237, .13); }
.fy-own-tab:focus-visible, .fy-own-chip:focus-visible, .fy-own-btn:focus-visible { outline: 3px solid rgba(228, 92, 156, .35); outline-offset: 2px; }
.fy-own-tab.on {
	background: linear-gradient(135deg, var(--ow-pink), var(--ow-pink-deep));
	color: #fff;
	box-shadow: 0 8px 18px rgba(228, 92, 156, .28);
}
.fy-own-out { font-size: 13px; font-weight: 800; color: var(--ow-muted); text-decoration: none; }
.fy-own-out:hover { color: var(--ow-pink-deep); }

@media (max-width: 859px) {
	.fy-own-tabs { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
	.fy-own-tabs::-webkit-scrollbar { display: none; }
	.fy-own-tab { flex: 0 0 auto; }
}
@media (min-width: 860px) {
	.fy-own-tabs { order: 0; width: auto; }
}

.fy-own-main {
	max-width: 1180px;
	margin: 0 auto;
	padding: clamp(16px, 3vw, 30px) clamp(14px, 3vw, 30px) 60px;
	display: grid;
	gap: clamp(14px, 2vw, 20px);
}

/* ---------------- filters ---------------- */

.fy-own-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.fy-own-filter > span { font-size: 11.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; color: var(--ow-muted); margin-right: 2px; }
.fy-own-chip {
	padding: 7px 13px;
	border-radius: 999px;
	border: 1.5px solid var(--ow-line);
	background: #fff;
	color: var(--ow-ink);
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
}
.fy-own-chip.on { background: var(--ow-purple); border-color: var(--ow-purple); color: #fff; }

/* ---------------- hero ---------------- */

.fy-own-hero {
	display: grid;
	gap: 0;
	border-radius: 26px;
	overflow: hidden;
	background: var(--ow-card);
	border: 1px solid var(--ow-line);
	box-shadow: 0 18px 44px rgba(27, 18, 64, .08);
}
.fy-own-hero__photo { background: #f4eeff; }
.fy-own-hero__photo img { display: block; width: 100%; height: 100%; max-height: 300px; object-fit: cover; }
.fy-own-hero__body { padding: 20px 22px 22px; }
.fy-own-hero__when {
	display: inline-block;
	margin-bottom: 8px;
	padding: 5px 12px;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--ow-pink), var(--ow-magenta));
	color: #fff;
	font-size: 11.5px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .09em;
}
.fy-own-hero h2 { margin: 0 0 8px; font-size: clamp(21px, 3vw, 28px); font-weight: 900; letter-spacing: -.02em; }
.fy-own-hero__line { margin: 0 0 5px; font-size: 14.5px; color: var(--ow-muted); }
.fy-own-hero__money { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--ow-line); }
.fy-own-hero__money span { font-size: 12px; font-weight: 700; color: var(--ow-muted); }
.fy-own-hero__money em { display: block; font-size: 20px; font-weight: 900; font-style: normal; color: var(--ow-ink); }
.fy-own-hero--empty { padding: 30px 24px; text-align: center; }
.fy-own-hero--empty h2 { margin: 0 0 6px; }
.fy-own-hero--empty p { margin: 0; color: var(--ow-muted); }

@media (min-width: 760px) {
	.fy-own-hero { grid-template-columns: 320px 1fr; }
}

/* ---------------- stats ---------------- */

.fy-own-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.fy-own-stats.inline { margin-bottom: 16px; }
.fy-own-stat {
	position: relative;
	overflow: hidden;
	padding: 15px 16px;
	border-radius: 20px;
	background: var(--ow-card);
	border: 1px solid var(--ow-line);
	box-shadow: 0 10px 26px rgba(27, 18, 64, .05);
}
.fy-own-stat::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	background: linear-gradient(92deg, var(--ow-pink), var(--ow-purple));
}
.fy-own-stat.warn::before { background: var(--ow-warn); }
.fy-own-stat__label { display: block; font-size: 11.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .09em; color: var(--ow-purple-deep); }
.fy-own-stat__value { display: block; margin: 5px 0 3px; font-size: 26px; font-weight: 900; letter-spacing: -.02em; }
.fy-own-stat__hint { display: block; font-size: 12.5px; color: var(--ow-muted); }
.fy-own-stat.warn .fy-own-stat__value { color: var(--ow-warn); }

/* ---------------- cards ---------------- */

.fy-own-card {
	padding: 18px 18px 16px;
	border-radius: 22px;
	background: var(--ow-card);
	border: 1px solid var(--ow-line);
	box-shadow: 0 12px 30px rgba(27, 18, 64, .06);
	transition: box-shadow .16s ease;
}
.fy-own-card:hover { box-shadow: 0 16px 36px rgba(27, 18, 64, .09); }
.fy-own-card__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; margin-bottom: 14px; }
.fy-own-card__head h3 { margin: 0; font-size: 16.5px; font-weight: 900; letter-spacing: -.01em; }
.fy-own-card__head span { font-size: 12.5px; color: var(--ow-muted); font-weight: 600; }
.fy-own-empty { text-align: center; padding: 30px 22px; }
.fy-own-empty h3 { margin: 0 0 6px; }
.fy-own-empty p { margin: 0 0 14px; color: var(--ow-muted); }

.fy-own-btn {
	display: inline-flex;
	align-items: center;
	transition: transform .14s ease, box-shadow .14s ease;
	padding: 11px 20px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--ow-pink), var(--ow-pink-deep));
	color: #fff;
	font: inherit;
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 10px 22px rgba(228, 92, 156, .28);
}
.fy-own-btn:hover { transform: translateY(-1px); box-shadow: 0 14px 26px rgba(228, 92, 156, .34); }
.fy-own-link { font-size: 13.5px; font-weight: 800; color: var(--ow-purple); text-decoration: none; }
.fy-own-table tbody tr { transition: background .12s ease; }

/* ---------------- chart ---------------- */

.fy-own-chart { display: flex; align-items: flex-end; gap: 6px; height: 190px; padding-top: 8px; }
.fy-own-bar { position: relative; flex: 1 1 0; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; height: 100%; }
.fy-own-bar__fill {
	width: 100%;
	max-width: 46px;
	border-radius: 8px 8px 3px 3px;
	background: linear-gradient(180deg, var(--ow-pink), var(--ow-purple));
	transition: height .25s ease;
}
.fy-own-bar.zero .fy-own-bar__fill { background: var(--ow-line); }
.fy-own-bar__n { position: absolute; top: -2px; font-size: 11px; font-weight: 800; color: var(--ow-purple-deep); }
.fy-own-bar__m { margin-top: 6px; font-size: 10.5px; font-weight: 700; color: var(--ow-muted); white-space: nowrap; }

/* ---------------- lists, boats, tables ---------------- */

.fy-own-list { list-style: none; margin: 0; padding: 0; }
.fy-own-list li {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 2px 10px;
	padding: 11px 0;
	border-bottom: 1px solid rgba(124, 58, 237, .09);
	font-size: 14px;
}
.fy-own-list li:last-child { border-bottom: 0; }
.fy-own-list__day { font-weight: 800; }
.fy-own-list__boat { grid-column: 1; color: var(--ow-muted); font-size: 13px; }
.fy-own-list__meta { grid-column: 1; color: var(--ow-muted); font-size: 12.5px; }
.fy-own-list__money { grid-row: 1; grid-column: 2; font-weight: 900; }
.fy-own-list__in { grid-column: 2; font-size: 12px; color: var(--ow-muted); text-align: right; }

.fy-own-boats { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.fy-own-boat {
	border-radius: 22px;
	overflow: hidden;
	background: var(--ow-card);
	border: 1px solid var(--ow-line);
	box-shadow: 0 12px 30px rgba(27, 18, 64, .06);
}
.fy-own-boat__photo { aspect-ratio: 16 / 10; background: #f4eeff; display: grid; place-items: center; }
.fy-own-boat__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fy-own-boat__nophoto { font-size: 13px; color: var(--ow-muted); font-weight: 700; }
.fy-own-boat__body { padding: 15px 16px 16px; }
.fy-own-boat__body h3 { margin: 0 0 8px; font-size: 16px; font-weight: 900; }
.fy-own-boat__meta { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.fy-own-pill {
	padding: 4px 10px;
	border-radius: 999px;
	background: rgba(124, 58, 237, .09);
	color: var(--ow-purple-deep);
	font-size: 11.5px;
	font-weight: 800;
}
.fy-own-pill.ok { background: rgba(14, 140, 106, .12); color: var(--ow-ok); }
.fy-own-pill.wait { background: rgba(180, 83, 9, .12); color: var(--ow-warn); text-transform: capitalize; }
.fy-own-boat__nums { display: flex; flex-wrap: wrap; gap: 14px; margin: 0 0 12px; }
.fy-own-boat__nums dt { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--ow-muted); }
.fy-own-boat__nums dd { margin: 2px 0 0; font-size: 17px; font-weight: 900; }

.fy-own-scroll { overflow-x: auto; }
.fy-own-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.fy-own-table th {
	text-align: left;
	padding: 9px 10px;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--ow-purple-deep);
	border-bottom: 1.5px solid var(--ow-line);
	white-space: nowrap;
}
.fy-own-table td { padding: 10px; border-bottom: 1px solid rgba(124, 58, 237, .08); white-space: nowrap; }
.fy-own-table tr:hover td { background: #fdf9ff; }
.fy-own-table tr.dead td { color: #9ca3af; text-decoration: line-through; }

.fy-own-note { margin: 14px 0 12px; font-size: 12.5px; line-height: 1.55; color: var(--ow-muted); }

.fy-own-foot { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; padding: 10px 0 0; font-size: 13px; }
.fy-own-foot a { color: var(--ow-purple); font-weight: 700; text-decoration: none; }

@media print {
	.fy-own-top, .fy-own-filter, .fy-own-foot, .fy-own-btn { display: none !important; }
	body.fy-own { background: #fff; }
	.fy-own-card { box-shadow: none; border-color: #ddd; }
}

/* ---------------- guest portal additions ---------------- */

.fy-own-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.fy-own-saved {
	margin: 0;
	padding: 11px 15px;
	border-radius: 16px;
	background: rgba(14, 140, 106, .10);
	border: 1px solid rgba(14, 140, 106, .25);
	color: var(--ow-ok);
	font-size: 14px;
	font-weight: 800;
}
.fy-own-card--dead { opacity: .72; }
.fy-own-docs { list-style: none; margin: 0; padding: 0; }
.fy-own-docs li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 12px 0;
	border-bottom: 1px solid rgba(124, 58, 237, .09);
}
.fy-own-docs li:last-child { border-bottom: 0; }
.fy-own-docs strong { display: block; font-size: 14.5px; }
.fy-own-docs span { display: block; font-size: 12.5px; color: var(--ow-muted); }
.fy-own-form { display: grid; gap: 6px; }
.fy-own-form label { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; color: var(--ow-purple-deep); }
.fy-own-form input,
.fy-own-form textarea {
	width: 100%;
	padding: 12px 14px;
	margin-bottom: 8px;
	border-radius: 14px;
	border: 1.5px solid var(--ow-line);
	background: #fdfbff;
	font: inherit;
	font-size: 16px;
	resize: vertical;
}
.fy-own-form input:focus,
.fy-own-form textarea:focus { outline: 3px solid rgba(228, 92, 156, .26); outline-offset: 1px; border-color: var(--ow-pink); }
.fy-own-form button { justify-self: start; }
.fy-own-saved-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 12px; }
.fy-own-saved-boat { display: block; text-decoration: none; color: inherit; }
.fy-own-saved-boat img,
.fy-own-saved-boat__nophoto {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 14px;
	background: #f4eeff;
	border: 1px solid var(--ow-line);
}
.fy-own-saved-boat__name { display: block; margin-top: 6px; font-size: 13px; font-weight: 800; line-height: 1.35; }
.fy-own-saved-boat:hover .fy-own-saved-boat__name { color: var(--ow-pink-deep); }

/* ---------------- needs attention ----------------
   Loud enough to be seen above the fold, quiet enough that a page with
   three of them is not a wall of red. Urgent is the only thing that gets
   the strong colour. */
.fy-own-alerts { display: grid; gap: 8px; }
.fy-own-alert {
	display: grid;
	gap: 2px;
	padding: 13px 15px;
	border-radius: 16px;
	border: 1px solid var(--ow-line);
	background: #fff;
	border-left-width: 5px;
}
.fy-own-alert strong { font-size: 14.5px; font-weight: 800; }
.fy-own-alert span { font-size: 13px; color: var(--ow-muted); }
.fy-own-alert.urgent { border-left-color: #e11d48; background: #fff5f7; }
.fy-own-alert.urgent strong { color: #9f1239; }
.fy-own-alert.warn { border-left-color: var(--ow-warn); background: #fffbf3; }
.fy-own-alert.warn strong { color: #92400e; }
.fy-own-alert.info { border-left-color: var(--ow-purple); background: #fbf8ff; }
.fy-own-alert.info strong { color: var(--ow-purple-deep); }

/* ---------------- owner: days the boat is not available ---------------- */
.fy-own-dates { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--ow-line); }
.fy-own-dates > strong {
	display: block;
	margin-bottom: 4px;
	font-size: 11.5px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--ow-purple-deep);
}
.fy-own-datechips { display: flex; flex-wrap: wrap; gap: 7px; margin: 8px 0 10px; }
.fy-own-datechip { display: inline-flex; margin: 0; }
.fy-own-datechip span {
	display: inline-flex;
	align-items: center;
	padding: 6px 4px 6px 12px;
	border-radius: 999px 0 0 999px;
	background: #FFF1F7;
	color: #9D2463;
	font-size: 12.5px;
	font-weight: 800;
}
.fy-own-datechip button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	border: 0;
	border-radius: 0 999px 999px 0;
	background: #FFF1F7;
	color: #9D2463;
	font-size: 15px;
	line-height: 1;
	cursor: pointer;
}
.fy-own-datechip button:hover { background: #9D2463; color: #fff; }
.fy-own-dateadd { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.fy-own-dateadd input[type="date"] {
	flex: 1 1 150px;
	min-height: 40px;
	padding: 8px 12px;
	border: 1.5px solid var(--ow-line);
	border-radius: 12px;
	background: #fdfbff;
	font: inherit;
	font-size: 15px;
}
.fy-own-dateadd .fy-own-btn { padding: 10px 16px; font-size: 13.5px; }

.fy-own-payout {
	display: grid;
	gap: 3px;
	margin: 14px 0 12px;
	padding: 14px 16px;
	border-radius: 16px;
	background: linear-gradient(135deg, rgba(228, 92, 156, .10), rgba(124, 58, 237, .10));
	border: 1px solid var(--ow-line);
}
.fy-own-payout span { font-size: 11.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--ow-purple-deep); }
.fy-own-payout strong { font-size: 28px; font-weight: 900; letter-spacing: -.02em; }
.fy-own-payout em { font-style: normal; font-size: 12.5px; color: var(--ow-muted); }

/* ---------------- guest: change the guest count ---------------- */
.fy-own-guestform { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--ow-line); }
.fy-own-guestform label {
	display: block;
	margin-bottom: 6px;
	font-size: 11.5px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--ow-purple-deep);
}
.fy-own-guestrow { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.fy-own-guestrow input {
	width: 96px;
	min-height: 42px;
	padding: 8px 12px;
	border: 1.5px solid var(--ow-line);
	border-radius: 12px;
	background: #fdfbff;
	font: inherit;
	font-size: 16px;
	font-weight: 800;
}
.fy-own-guestrow .fy-own-btn { padding: 11px 18px; font-size: 13.5px; }
.fy-own-payout.is-paid { background: linear-gradient(135deg, rgba(14,140,106,.12), rgba(124,58,237,.08)); border-color: rgba(14,140,106,.3); }
.fy-own-paidmark { font-weight: 800; color: var(--ow-ok); }
.fy-own-extrasform textarea { width: 100%; }
.fy-own-switch {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 7px 14px;
	border-radius: 999px;
	background: rgba(124, 58, 237, .09);
	border: 1.5px solid rgba(124, 58, 237, .22);
	color: var(--ow-purple-deep);
	font-size: 13px;
	font-weight: 800;
	text-decoration: none;
}
.fy-own-switch:hover { background: rgba(124, 58, 237, .16); border-color: var(--ow-purple); }
.fy-own-login__or {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 18px 0 14px;
	font-size: 12px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--ow-muted);
}
.fy-own-login__or::before,
.fy-own-login__or::after { content: ''; flex: 1 1 auto; height: 1px; background: var(--ow-line); }
.fy-own-login__social .nsl-container { margin: 0 !important; }
.fy-own-login__social .nsl-container-buttons { justify-content: center; }
.fy-own-login__social .nsl-separator { display: none !important; }
.fy-own-btn--quiet { background: #fff; color: var(--ow-purple-deep); border: 1.5px solid var(--ow-line); box-shadow: none; }
.fy-own-btn--quiet:hover { border-color: var(--ow-purple); }

/* ---------------- owner: calendar, 30 days at a time ---------------- */

.fy-own-cal__head { align-items: center; }
.fy-own-cal__nav { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; width: 100%; margin-top: 4px; }
.fy-own-cal__jump { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; font-size: 12.5px; font-weight: 800; color: var(--ow-purple-deep); }
.fy-own-cal__jump input {
	padding: 6px 9px;
	border-radius: 10px;
	border: 1.5px solid var(--ow-line);
	font: inherit;
	font-size: 13px;
	color: var(--ow-ink);
	background: #fff;
}
.fy-own-cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.fy-own-cal__wd { padding: 4px 0 6px; text-align: center; font-size: 10.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--ow-muted); }
.fy-own-cal__cell {
	min-height: 74px;
	padding: 6px 6px 7px;
	border-radius: 12px;
	border: 1px solid rgba(124, 58, 237, .10);
	background: #fbf9ff;
	font-size: 11px;
	line-height: 1.3;
	display: flex;
	flex-direction: column;
	gap: 3px;
	cursor: pointer;
	overflow: hidden;
}
.fy-own-cal__cell.blank { border: 0; background: transparent; cursor: default; }
.fy-own-cal__cell.past { opacity: .55; }
.fy-own-cal__cell.today { border-color: var(--ow-pink); box-shadow: 0 0 0 2px rgba(228, 92, 156, .22); }
.fy-own-cal__cell.busy { background: linear-gradient(160deg, rgba(228, 92, 156, .12), rgba(124, 58, 237, .14)); border-color: rgba(124, 58, 237, .28); }
.fy-own-cal__cell.blocked {
	background-image: repeating-linear-gradient(135deg, rgba(91, 33, 182, .07) 0 6px, transparent 6px 12px);
}
.fy-own-cal__cell.busy.blocked {
	background-image: repeating-linear-gradient(135deg, rgba(91, 33, 182, .10) 0 6px, transparent 6px 12px), linear-gradient(160deg, rgba(228, 92, 156, .12), rgba(124, 58, 237, .14));
}
.fy-own-cal__day { font-weight: 900; font-size: 12px; color: var(--ow-purple-deep); }
.fy-own-cal__cell.today .fy-own-cal__day { color: var(--ow-pink-deep); }
.fy-own-cal__trip {
	display: block;
	padding: 3px 6px;
	border-radius: 7px;
	background: var(--ow-purple);
	color: #fff;
	font-weight: 700;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.fy-own-cal__trip em { font-style: normal; opacity: .85; margin-right: 4px; }
.fy-own-cal__block { display: block; font-weight: 800; color: var(--ow-purple-deep); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fy-own-cal-next { display: grid; gap: 14px; }
.fy-own-cal-next__day { padding-top: 10px; border-top: 1px dashed var(--ow-line); }
.fy-own-cal-next__day:first-child { padding-top: 0; border-top: 0; }
.fy-own-cal-next__date { display: flex; align-items: baseline; gap: 10px; margin-bottom: 4px; }
.fy-own-cal-next__date strong { font-size: 15px; }
.fy-own-cal-next__date span { font-size: 12px; color: var(--ow-muted); font-weight: 700; }
@media (max-width: 560px) {
	.fy-own-cal { gap: 3px; }
	.fy-own-cal__cell { min-height: 56px; padding: 4px 4px 5px; border-radius: 9px; font-size: 10px; }
	.fy-own-cal__trip em { display: none; }
	.fy-own-cal__jump { margin-left: 0; }
}

/* ---------------- owner: payouts and the ledger ---------------- */

.fy-own-stripe p { margin: 0 0 12px; font-size: 14.5px; line-height: 1.55; }
.fy-own-stripe.is-on { border-color: rgba(14, 140, 106, .35); }
.fy-own-stripeform { margin: 0; }
.fy-own-stripe .fy-own-pill.ok { margin-right: 6px; vertical-align: 1px; }
.fy-own-ledger td small { display: block; font-size: 11.5px; color: var(--ow-muted); white-space: nowrap; }
.fy-own-ledger tr.is-upcoming td { color: var(--ow-muted); }
.fy-own-ledger tr.is-norate td { color: #9ca3af; }
.fy-own-due {
	display: inline-block;
	padding: 2px 9px;
	border-radius: 999px;
	background: rgba(180, 83, 9, .12);
	color: var(--ow-warn);
	font-size: 11.5px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .06em;
}
@media print {
	.fy-own-stripe, .fy-own-cal__nav { display: none !important; }
}

/* ---------------- the sign-in form on a page of its own ----------------
   [fy_portal_login] / the Elementor widget: the same form, inside whatever
   theme the page wears, so it carries its own type, colour and ground. */
.fy-own--embed {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif;
	color: var(--ow-ink);
	background:
		radial-gradient(900px 320px at 50% -10%, rgba(214, 0, 214, .10), transparent 62%),
		linear-gradient(180deg, #ffffff 0%, #fdf6ff 60%, #f4eeff 100%);
	border-radius: 28px;
	padding: 36px 18px;
	-webkit-font-smoothing: antialiased;
}
.fy-own--embed .fy-own-login { margin: 0 auto; }
.fy-own--embed .fy-own-login h1 { font-family: inherit; }
.fy-own--embed .fy-own-login input,
.fy-own--embed .fy-own-login button { font-family: inherit; }

/* ---------------- owner: the view before an approved listing ---------------- */
.fy-own-lock { max-width: 760px; margin: 0 auto; padding: 26px 24px 22px; }
.fy-own-lock__head { display: flex; gap: 16px; align-items: flex-start; }
.fy-own-lock__icon {
	flex: 0 0 auto;
	width: 52px; height: 52px;
	display: grid; place-items: center;
	border-radius: 16px;
	font-size: 26px;
	background: linear-gradient(135deg, rgba(228, 92, 156, .16), rgba(124, 58, 237, .16));
}
.fy-own-lock__head h2 { margin: 2px 0 6px; font-size: 21px; font-weight: 900; letter-spacing: -.02em; }
.fy-own-lock__head p { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--ow-muted); }
.fy-own-lock__status {
	display: grid; gap: 3px;
	margin: 18px 0 16px;
	padding: 13px 16px;
	border-radius: 16px;
	background: #fbf9ff;
	border: 1px solid var(--ow-line);
}
.fy-own-lock__status.is-pending { background: rgba(180, 83, 9, .08); border-color: rgba(180, 83, 9, .25); }
.fy-own-lock__status strong { font-size: 14.5px; }
.fy-own-lock__status.is-pending strong { color: var(--ow-warn); }
.fy-own-lock__status span { font-size: 13px; line-height: 1.55; color: var(--ow-muted); }
.fy-own-lock__steps { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 10px; counter-reset: step; }
.fy-own-lock__steps li {
	position: relative;
	padding: 10px 12px 10px 48px;
	border-radius: 14px;
	border: 1px solid var(--ow-line);
	counter-increment: step;
}
.fy-own-lock__steps li::before {
	content: counter(step);
	position: absolute; left: 12px; top: 11px;
	width: 26px; height: 26px;
	display: grid; place-items: center;
	border-radius: 999px;
	background: rgba(124, 58, 237, .10);
	color: var(--ow-purple-deep);
	font-size: 12.5px; font-weight: 900;
}
.fy-own-lock__steps li.done::before { content: "✓"; background: var(--ow-ok); color: #fff; }
.fy-own-lock__steps li.now { border-color: var(--ow-pink); box-shadow: 0 0 0 2px rgba(228, 92, 156, .18); }
.fy-own-lock__steps li.now::before { background: linear-gradient(135deg, var(--ow-pink), var(--ow-pink-deep)); color: #fff; }
.fy-own-lock__steps strong { display: block; font-size: 14px; }
.fy-own-lock__steps span { display: block; font-size: 12.5px; color: var(--ow-muted); }
.fy-own-lock__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.fy-own-lock__actions .fy-own-link { flex: 1 1 100%; }
.fy-own-listform .fy-sub { font-family: inherit; }
.fy-own-listform .fy-sub-card { box-shadow: none; }
.fy-own-listform .fy-sub-card:last-child { margin-bottom: 0; }

/* ---------------- print: the statement and the ledger on paper ---------------- */
@media print {
	.fy-own-scroll { overflow: visible; }
	.fy-own-table th, .fy-own-table td { white-space: normal; font-size: 11px; padding: 6px 6px; }
	.fy-own-ledger td small { white-space: normal; }
	.fy-own-printhead { display: block !important; margin: 0 0 10px; font-size: 12px; color: #444; }
	.fy-own-cal__cell { cursor: default; }
}
.fy-own-printhead { display: none; }
.fy-own-cal__cell:not([data-day]) { cursor: default; }
