/* RoboThink Classes — portal skin.
   Same design concept as the staff app (robothink_erp_ui, "The Navy Brand
   Frame"): navy owns the chrome (top bar, header bands, the portal sidebar),
   everything else is white 1px-bordered panels over a near-white ground, one
   sans (Inter), no resting shadows. The four code colours appear only as
   status: badge dots and the yellow active-nav marker. */

@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("/assets/classes/fonts/Inter.var.woff2") format("woff2");
}

:root {
	--rt-navy: #13305c;
	--rt-navy-hover: #0f2649;
	--rt-steel: #b6c2d6;
	--rt-ground: #fafafa;
	--rt-surface: #ffffff;
	--rt-ink: #111827;
	--rt-ink-2: #374151;
	--rt-muted: #6b7280;
	--rt-faint: #9ca3af;
	--rt-border: #e5e7eb;
	--rt-hair: #f3f4f6;
	--rt-inset: #f9fafb;
	--rt-green: #77b843;
	--rt-yellow: #ffcb09;
	--rt-orange: #f8ac1c;
	--rt-red: #eb2227;
	--rt-font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--rt-max: 1240px;
}

/* ---------- ground ---------- */
body.rt-body { background: var(--rt-ground); color: var(--rt-ink); font-family: var(--rt-font); font-size: 14px; line-height: 1.45; }
body.rt-body h1, body.rt-body h2, body.rt-body h3, body.rt-body h4,
.page_content h1, .page_content h2, .page_content h3 { font-family: var(--rt-font); font-weight: 600; color: var(--rt-ink); letter-spacing: -0.01em; }
body.rt-body a { color: var(--rt-navy); }
body.rt-body a:hover { color: var(--rt-navy-hover); }
.page-breadcrumbs, .navbar, footer.web-footer, .web-footer { display: none !important; }
::selection { background: var(--rt-navy); color: #ffffff; }
:focus-visible { outline: 2px solid var(--rt-navy); outline-offset: 2px; }
.rt-header :focus-visible, .rt-band :focus-visible, .rt-side :focus-visible, .rt-btn:focus-visible { outline-color: var(--rt-yellow); }
* { scrollbar-width: thin; scrollbar-color: #d1d5db transparent; }
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 999px; }
::-webkit-scrollbar-track { background: transparent; }
.tnum { font-variant-numeric: tabular-nums; }
.rt-muted { color: var(--rt-muted); }
.rt-faint { color: var(--rt-faint); }
.rt-small { font-size: 13px; }
.rt-xs { font-size: 12px; }
.rt-strong { font-weight: 500; color: var(--rt-ink); }

/* ---------- top bar (navy chrome) ---------- */
.rt-header { background: var(--rt-navy); color: #ffffff; font-family: var(--rt-font); }
.rt-header-inner { max-width: var(--rt-max); margin: 0 auto; padding: 0 24px; height: 60px; display: flex; align-items: center; gap: 12px; }
.rt-brand { display: flex; align-items: center; margin-right: 12px; }
.rt-brand img { height: 30px; width: auto; display: block; }
.rt-nav { display: flex; align-items: center; gap: 4px; }
.rt-nav a, .rt-tool, .rt-menu summary {
	position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 6px;
	color: var(--rt-steel) !important; text-decoration: none !important; font-size: 14px; font-weight: 500; line-height: 1;
	background: transparent; border: none; cursor: pointer; font-family: inherit; white-space: nowrap;
}
.rt-nav a:hover, .rt-tool:hover, .rt-menu[open] summary { background: rgba(255, 255, 255, 0.08); color: #ffffff !important; }
.rt-nav a.active { background: rgba(255, 255, 255, 0.12); color: #ffffff !important; }
.rt-nav a.active::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 2px; height: 3px; border-radius: 999px; background: var(--rt-yellow); }
.rt-tools { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.rt-tool svg { width: 18px; height: 18px; stroke: currentColor; }
.rt-tool-outline { border: 1px solid rgba(255, 255, 255, 0.25); color: #ffffff !important; }
.rt-tool-outline:hover { background: rgba(255, 255, 255, 0.12); }
.rt-avatar { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 999px; background: rgba(255, 255, 255, 0.15); color: #ffffff; font-size: 13px; font-weight: 500; flex: 0 0 auto; }
.rt-menu { position: relative; }
.rt-menu summary { list-style: none; padding: 5px 8px 5px 5px; }
.rt-menu summary::-webkit-details-marker { display: none; }
.rt-menu summary .chev { width: 14px; height: 14px; }
.rt-menu-pop {
	position: absolute; right: 0; top: calc(100% + 6px); min-width: 210px; background: #ffffff; color: var(--rt-ink);
	border: 1px solid var(--rt-border); border-radius: 8px; box-shadow: 0 4px 12px rgba(17, 24, 39, 0.08); padding: 6px; z-index: 40;
}
.rt-menu-who { padding: 8px 10px 8px; font-size: 12px; color: var(--rt-muted); border-bottom: 1px solid var(--rt-hair); margin-bottom: 4px; }
.rt-menu-who b { display: block; color: var(--rt-ink); font-size: 13px; font-weight: 500; }
.rt-menu-pop a, .rt-menu-pop button {
	display: block; width: 100%; text-align: left; padding: 8px 10px; border-radius: 6px; font-size: 14px;
	color: var(--rt-ink) !important; text-decoration: none !important; background: none; border: none; cursor: pointer; font-family: inherit;
}
.rt-menu-pop a:hover, .rt-menu-pop button:hover { background: var(--rt-inset); }
.rt-burger { display: none; position: relative; }
.rt-burger summary { list-style: none; }
.rt-burger summary::-webkit-details-marker { display: none; }
.rt-burger .rt-menu-pop { min-width: 220px; }
@media (max-width: 860px) {
	.rt-header-inner { padding: 0 16px; height: 56px; }
	.rt-nav, .rt-tool-label, .rt-menu { display: none; }
	.rt-burger { display: block; }
}

/* ---------- page frame ---------- */
.rt-page { max-width: var(--rt-max); margin: 0 auto; padding: 24px 24px 48px; font-family: var(--rt-font); color: var(--rt-ink); }
.rt-page-narrow { max-width: 760px; }
@media (max-width: 860px) { .rt-page { padding: 16px 16px 40px; } }

/* header band */
.rt-band { background: var(--rt-navy); color: #ffffff; border-radius: 12px; padding: 20px 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; }
.rt-band h1, .rt-band .rt-band-title, .page_content .rt-band h1, .page_content .rt-band h2 { font-size: 24px; line-height: 1.25; font-weight: 600; color: #ffffff; margin: 0; }
/* anything set in a heading tag on navy is white — beats the theme's and the
   base template's `.page_content h1` rules whatever their order */
.rt-band h1, .rt-band h2, .rt-band h3, .rt-band h4, .rt-band .rt-band-title,
.rt-side h1, .rt-side h2, .rt-side h3,
body .page_content .rt-band h1, body .page_content .rt-band h2, body .page_content .rt-band h3, body .page_content .rt-band h4,
body .page_content .rt-side h2, body .page_content .rt-side h3 { color: #ffffff !important; }
.rt-band p, .rt-band .rt-band-sub { color: var(--rt-steel); }
.rt-band .band-chip, .rt-band .band-chip * { color: #ffffff; }
.rt-band-sub { color: var(--rt-steel); font-size: 14px; margin: 2px 0 0; }
.rt-band-sub a { color: #ffffff; text-decoration: underline; }
.rt-band-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.band-chip { display: inline-flex; align-items: center; gap: 8px; border-radius: 6px; background: rgba(255, 255, 255, 0.1); padding: 6px 12px; font-size: 14px; color: #ffffff; white-space: nowrap; }
.band-chip svg { width: 15px; height: 15px; stroke: currentColor; }
.band-chip .dot { width: 6px; height: 6px; border-radius: 999px; background: var(--rt-steel); flex: 0 0 auto; }
.band-chip .dot.green { background: var(--rt-green); } .band-chip .dot.yellow { background: var(--rt-yellow); }
.band-chip .dot.orange { background: var(--rt-orange); } .band-chip .dot.red { background: var(--rt-red); }
.rt-band .rt-btn { background: #ffffff; color: var(--rt-navy) !important; }
.rt-band .rt-btn:hover { background: #eef1f5; }
.rt-band .rt-btn-outline { background: transparent; color: #ffffff !important; border-color: rgba(255, 255, 255, 0.3); }
.rt-band .rt-btn-outline:hover { background: rgba(255, 255, 255, 0.1); }
@media (max-width: 860px) { .rt-band { padding: 16px 18px; border-radius: 10px; } .rt-band h1, .rt-band .rt-band-title { font-size: 20px; } }

/* ---------- panels ---------- */
.rt-panel { background: var(--rt-surface); border: 1px solid var(--rt-border); border-radius: 8px; overflow: hidden; }
.rt-panel + .rt-panel, .rt-band + .rt-panel, .rt-band + .rt-grid, .rt-panel + .rt-grid, .rt-grid + .rt-panel, .rt-band + .rt-shell, .rt-alert + .rt-panel { margin-top: 20px; }
.rt-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 20px; border-bottom: 1px solid var(--rt-hair); }
.rt-panel-title, .page_content h2.rt-panel-title, .page_content h3.rt-panel-title { font-size: 15px; font-weight: 600; color: var(--rt-ink); margin: 0; }
.rt-panel-sub { font-size: 13px; color: var(--rt-muted); margin: 1px 0 0; }
.rt-panel-more { font-size: 13px; color: var(--rt-muted); text-decoration: none; white-space: nowrap; }
.rt-panel-more:hover { color: var(--rt-ink); text-decoration: underline; }
.rt-panel-body { padding: 20px; }
.rt-panel-foot { padding: 12px 20px; border-top: 1px solid var(--rt-hair); background: var(--rt-inset); font-size: 13px; color: var(--rt-muted); }
.rt-rows > .rt-row + .rt-row { border-top: 1px solid var(--rt-hair); }
.rt-row { display: flex; align-items: center; gap: 14px; padding: 12px 20px; }
a.rt-row { text-decoration: none; color: inherit; }
a.rt-row:hover, .rt-row.is-link:hover { background: var(--rt-inset); }
.rt-row-main { flex: 1 1 auto; min-width: 0; }
.rt-row-title { font-size: 14px; font-weight: 500; color: var(--rt-ink); }
.rt-row-meta { font-size: 13px; color: var(--rt-muted); margin-top: 1px; }
.rt-row-end { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; white-space: nowrap; }
.rt-row-amt { font-size: 14px; font-weight: 500; color: var(--rt-ink); font-variant-numeric: tabular-nums; }
.rt-grid { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.rt-grid > .rt-panel { margin-top: 0; }
.rt-stack > * + * { margin-top: 20px; }
.rt-sub-strip { background: var(--rt-inset); padding: 8px 20px; font-size: 12px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.04em; color: var(--rt-muted); border-top: 1px solid var(--rt-hair); border-bottom: 1px solid var(--rt-hair); }
.rt-dl { display: grid; grid-template-columns: max-content 1fr; gap: 8px 20px; margin: 0; font-size: 14px; }
.rt-dl dt { color: var(--rt-muted); font-weight: 400; }
.rt-dl dd { margin: 0; color: var(--rt-ink); }
.rt-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1px; background: var(--rt-border); border: 1px solid var(--rt-border); border-radius: 8px; overflow: hidden; }
.rt-kpi { background: #ffffff; padding: 12px 16px; }
.rt-kpi-label { font-size: 12px; color: var(--rt-muted); }
.rt-kpi-value { font-size: 18px; font-weight: 600; color: var(--rt-ink); margin-top: 2px; font-variant-numeric: tabular-nums; }

/* ---------- status badges ---------- */
.rt-badge { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; border-radius: 999px; padding: 2px 10px; font-size: 12px; font-weight: 500; line-height: 1.4; background: var(--rt-hair); color: #4b5563; vertical-align: middle; }
.rt-badge::before { content: ""; width: 6px; height: 6px; border-radius: 999px; background: var(--rt-faint); flex: 0 0 auto; }
.rt-badge-green { background: #f0fdf4; color: #166534; } .rt-badge-green::before { background: var(--rt-green); }
.rt-badge-yellow { background: #fefce8; color: #854d0e; } .rt-badge-yellow::before { background: var(--rt-yellow); }
.rt-badge-orange { background: #fff7ed; color: #9a3412; } .rt-badge-orange::before { background: var(--rt-orange); }
.rt-badge-red { background: #fef2f2; color: #991b1b; } .rt-badge-red::before { background: var(--rt-red); }
.rt-badge-blue { background: #eff6ff; color: #1e40af; } .rt-badge-blue::before { background: #3b82f6; }
.rt-badge-navy { background: #eef1f5; color: var(--rt-navy); } .rt-badge-navy::before { background: var(--rt-navy); }
.rt-dot { display: inline-block; width: 6px; height: 6px; border-radius: 999px; background: var(--rt-faint); vertical-align: middle; margin-right: 6px; }
.rt-dot.green { background: var(--rt-green); } .rt-dot.yellow { background: var(--rt-yellow); } .rt-dot.orange { background: var(--rt-orange); } .rt-dot.red { background: var(--rt-red); }

/* ---------- buttons ---------- */
.rt-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 34px; padding: 0 14px; border-radius: 6px;
	background: var(--rt-navy); color: #ffffff !important; text-decoration: none !important; font-family: inherit; font-size: 14px; font-weight: 500; line-height: 1;
	border: 1px solid transparent; cursor: pointer; white-space: nowrap; transition: background-color 0.15s ease;
}
.rt-btn:hover { background: var(--rt-navy-hover); }
.rt-btn svg { width: 16px; height: 16px; stroke: currentColor; }
.rt-btn-outline { background: #ffffff; color: var(--rt-ink) !important; border-color: var(--rt-border); }
.rt-btn-outline:hover { background: var(--rt-inset); }
.rt-btn-ghost { background: transparent; color: var(--rt-ink-2) !important; }
.rt-btn-ghost:hover { background: var(--rt-hair); }
.rt-btn-sm { height: 28px; padding: 0 10px; font-size: 13px; }
.rt-btn-lg { height: 42px; padding: 0 18px; font-size: 15px; border-radius: 8px; }
.rt-btn-block { display: flex; width: 100%; }
.rt-btn[disabled], .rt-btn.is-disabled { opacity: 0.5; pointer-events: none; }
.rt-link { color: var(--rt-navy); font-weight: 500; text-decoration: none; }
.rt-link:hover { text-decoration: underline; }
.rt-link-muted { color: var(--rt-muted); text-decoration: none; }
.rt-link-muted:hover { color: var(--rt-ink); text-decoration: underline; }
.rt-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* ---------- forms ---------- */
.rt-field { margin-bottom: 16px; }
.rt-field:last-child { margin-bottom: 0; }
.rt-field > label, .rt-label { display: block; margin: 0 0 6px; font-size: 12px; font-weight: 500; color: #4b5563; }
.rt-input, select.rt-input, textarea.rt-input {
	display: block; width: 100%; height: 36px; border: 1px solid var(--rt-border); border-radius: 6px; background: #ffffff; color: var(--rt-ink);
	font-family: inherit; font-size: 14px; padding: 0 10px; transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
textarea.rt-input { height: auto; padding: 8px 10px; min-height: 90px; }
select.rt-input { padding-right: 30px; appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; background-size: 14px; }
.rt-input:hover { border-color: #d1d5db; }
.rt-input:focus { outline: none; border-color: var(--rt-navy); box-shadow: 0 0 0 3px rgba(19, 48, 92, 0.12); }
.rt-input[disabled], .rt-input[readonly] { background: var(--rt-inset); color: var(--rt-muted); }
.rt-input::placeholder { color: var(--rt-faint); }
.rt-help { font-size: 12px; color: var(--rt-muted); margin-top: 6px; }
.rt-help a { color: var(--rt-navy); }
.rt-field-row { display: flex; gap: 12px; }
.rt-field-row > .rt-field { flex: 1 1 0; min-width: 0; }
.rt-check { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--rt-ink); cursor: pointer; }
.rt-check input { width: 16px; height: 16px; accent-color: var(--rt-navy); margin: 0; }
/* selectable option rows (fee options, booking choices) */
.rt-opts { border: 1px solid var(--rt-border); border-radius: 8px; overflow: hidden; background: #ffffff; }
.rt-opt { position: relative; display: flex; align-items: center; gap: 12px; padding: 12px 14px; cursor: pointer; background: #ffffff; }
.rt-opt + .rt-opt { border-top: 1px solid var(--rt-hair); }
.rt-opt:hover { background: var(--rt-inset); }
.rt-opt.is-picked { background: var(--rt-inset); box-shadow: inset 3px 0 0 var(--rt-navy); }
.rt-opt input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.rt-opt-pip { width: 16px; height: 16px; border: 1px solid #d1d5db; border-radius: 999px; background: #ffffff; flex: 0 0 auto; position: relative; }
.rt-opt.is-picked .rt-opt-pip { border-color: var(--rt-navy); }
.rt-opt.is-picked .rt-opt-pip::after { content: ""; position: absolute; inset: 3px; border-radius: 999px; background: var(--rt-navy); }
.rt-opt input:focus-visible + .rt-opt-pip { outline: 2px solid var(--rt-navy); outline-offset: 2px; }
.rt-opt-main { flex: 1 1 auto; min-width: 0; }
.rt-opt-name { display: block; font-size: 14px; font-weight: 500; color: var(--rt-ink); }
.rt-opt-sub { display: block; font-size: 13px; color: var(--rt-muted); margin-top: 1px; }
.rt-opt-amt { font-size: 14px; font-weight: 600; color: var(--rt-ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
.rt-opt-amt small { font-weight: 400; color: var(--rt-muted); font-size: 12px; }
/* a read-only fact inset (prefilled account details, fee notes) */
.rt-inset { background: var(--rt-inset); border: 1px solid var(--rt-border); border-radius: 6px; padding: 10px 14px; font-size: 14px; }
.rt-inset .rt-row-meta { margin-top: 2px; }

/* ---------- tables ---------- */
.rt-table-wrap { overflow-x: auto; }
table.rt-table { width: 100%; margin: 0; border-collapse: collapse; font-size: 14px; color: var(--rt-ink); }
.rt-table th { font-size: 12px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.04em; color: var(--rt-faint); text-align: left; padding: 10px 20px; border-bottom: 1px solid var(--rt-hair); white-space: nowrap; }
.rt-table td { padding: 12px 20px; border-top: 1px solid var(--rt-hair); vertical-align: middle; }
.rt-table tbody tr:first-child td { border-top: none; }
.rt-table tbody tr:hover td { background: var(--rt-inset); }
.rt-table .num, .rt-table th.num { text-align: right; font-variant-numeric: tabular-nums; }
.rt-table .id { font-weight: 500; }
.rt-table .muted { color: var(--rt-muted); }
@media (max-width: 860px) { .rt-table th, .rt-table td { padding-left: 14px; padding-right: 14px; } .rt-table .hide-sm { display: none; } }

/* ---------- alerts, empty states, date chips ---------- */
.rt-alert { display: flex; align-items: flex-start; gap: 10px; background: #ffffff; border: 1px solid var(--rt-border); border-radius: 8px; padding: 12px 16px; font-size: 14px; color: var(--rt-ink); margin-bottom: 20px; }
.rt-band + .rt-alert, .rt-panel + .rt-alert { margin-top: 20px; }
.rt-alert::before { content: ""; width: 6px; height: 6px; border-radius: 999px; background: var(--rt-faint); flex: 0 0 auto; margin-top: 7px; }
.rt-alert-error::before { background: var(--rt-red); }
.rt-alert-warn::before { background: var(--rt-yellow); }
.rt-alert-ok::before { background: var(--rt-green); }
.rt-alert-info::before { background: var(--rt-navy); }
.rt-alert b { font-weight: 600; }
.rt-alert .rt-btn { margin-left: auto; }
.rt-empty { background: #ffffff; border: 1px dashed var(--rt-border); border-radius: 8px; padding: 36px 20px; text-align: center; color: var(--rt-muted); font-size: 14px; }
.rt-empty b { display: block; color: var(--rt-ink); font-size: 15px; font-weight: 600; margin-bottom: 4px; }
.rt-empty .rt-btn { margin-top: 14px; }
.rt-panel .rt-empty { border: none; border-radius: 0; }
.rt-date { width: 56px; flex: 0 0 56px; text-align: center; border: 1px solid var(--rt-border); border-radius: 8px; background: #ffffff; overflow: hidden; }
.rt-date .m { display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--rt-muted); background: var(--rt-inset); padding: 3px 0; border-bottom: 1px solid var(--rt-hair); }
.rt-date .d { display: block; font-size: 18px; font-weight: 600; color: var(--rt-ink); padding: 4px 0 5px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.rt-date .w { display: block; font-size: 11px; color: var(--rt-muted); padding: 0 0 5px; }
.rt-icon-sq { width: 38px; height: 38px; border-radius: 8px; background: var(--rt-inset); border: 1px solid var(--rt-hair); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; color: var(--rt-muted); }
.rt-icon-sq svg { width: 18px; height: 18px; stroke: currentColor; }
.rt-thumb { width: 44px; height: 44px; border-radius: 8px; background: var(--rt-navy); color: #ffffff; display: inline-flex; align-items: center; justify-content: center; font-weight: 600; font-size: 16px; overflow: hidden; flex: 0 0 auto; }
.rt-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rt-segment { display: inline-flex; border: 1px solid var(--rt-border); border-radius: 6px; overflow: hidden; background: #ffffff; }
.rt-segment a, .rt-segment button { padding: 6px 12px; font-size: 14px; color: #4b5563; text-decoration: none; background: #ffffff; border: none; cursor: pointer; font-family: inherit; }
.rt-segment a + a, .rt-segment button + button { border-left: 1px solid var(--rt-border); }
.rt-segment a:hover, .rt-segment button:hover { background: var(--rt-inset); color: var(--rt-ink); }
.rt-segment .active { background: var(--rt-navy); color: #ffffff; font-weight: 500; }

/* ---------- logged-in portal shell: navy sidebar + main column ---------- */
.rt-shell { display: flex; gap: 24px; align-items: flex-start; margin-top: 20px; }
.rt-side { width: 240px; flex: 0 0 240px; background: var(--rt-navy); border-radius: 12px; padding: 10px; position: sticky; top: 16px; font-family: var(--rt-font); }
.rt-side-user { display: flex; align-items: center; gap: 12px; padding: 8px 8px 14px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); margin-bottom: 6px; }
.rt-side-user .rt-avatar { width: 34px; height: 34px; font-size: 14px; }
.rt-side-name { display: block; font-size: 14px; font-weight: 500; color: #ffffff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rt-side-role { display: block; font-size: 12px; color: var(--rt-steel); }
.rt-side-nav { display: flex; flex-direction: column; gap: 2px; }
.rt-side-link, .rt-side-btn {
	position: relative; display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 6px; font-size: 14px; font-weight: 500;
	color: var(--rt-steel) !important; text-decoration: none !important; background: transparent; border: none; cursor: pointer; font-family: inherit; text-align: left; width: 100%;
	transition: background-color 0.15s ease, color 0.15s ease;
}
.rt-side-link:hover, .rt-side-btn:hover { background: rgba(255, 255, 255, 0.05); color: #ffffff !important; }
.rt-side-link.active { background: rgba(255, 255, 255, 0.1); color: #ffffff !important; }
.rt-side-link.active::before { content: ""; position: absolute; left: 0; top: 6px; bottom: 6px; width: 3px; border-radius: 999px; background: var(--rt-yellow); }
.rt-side-link svg, .rt-side-btn svg { width: 16px; height: 16px; stroke: currentColor; flex: 0 0 auto; }
.rt-side-foot { margin-top: 6px; padding-top: 6px; border-top: 1px solid rgba(255, 255, 255, 0.1); }
.rt-shell-main { flex: 1 1 auto; min-width: 0; }
@media (max-width: 900px) {
	.rt-shell { flex-direction: column; gap: 16px; }
	.rt-shell-main { width: 100%; }
	.rt-side { width: 100%; flex-basis: auto; position: static; border-radius: 10px; }
	.rt-side-user { padding-bottom: 10px; }
	.rt-side-nav { flex-direction: row; flex-wrap: wrap; }
	.rt-side-link { padding: 7px 10px; font-size: 13px; }
	.rt-side-link.active::before { display: none; }
	.rt-side-foot { display: flex; }
	.rt-side-foot .rt-side-btn { width: auto; }
}

/* ---------- two-column form + summary (register, pay) ---------- */
.rt-cols { display: flex; gap: 24px; align-items: flex-start; }
.rt-cols-main { flex: 1 1 auto; min-width: 0; }
.rt-cols-side { width: 340px; flex: 0 0 340px; position: sticky; top: 16px; }
@media (max-width: 900px) { .rt-cols { flex-direction: column; } .rt-cols-side { width: 100%; flex-basis: auto; position: static; } }
.rt-summary-total { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 14px 20px; border-top: 1px solid var(--rt-hair); background: var(--rt-inset); }
.rt-summary-total .k { font-size: 13px; color: var(--rt-muted); }
.rt-summary-total .v { font-size: 20px; font-weight: 600; color: var(--rt-ink); font-variant-numeric: tabular-nums; }
.rt-lines { padding: 6px 20px; }
.rt-line { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; font-size: 14px; }
.rt-line .k { color: var(--rt-muted); }
.rt-line .v { color: var(--rt-ink); font-variant-numeric: tabular-nums; text-align: right; }

/* ---------- footer ---------- */
.rt-footer { border-top: 1px solid var(--rt-border); background: #ffffff; margin-top: 40px; font-family: var(--rt-font); }
.rt-footer-inner { max-width: var(--rt-max); margin: 0 auto; padding: 20px 24px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 13px; color: var(--rt-muted); }
.rt-footer a { color: var(--rt-muted) !important; text-decoration: none; margin-right: 18px; }
.rt-footer a:hover { color: var(--rt-ink) !important; }

/* ---------- motion: one entrance, reduced-motion gated ---------- */
@media (prefers-reduced-motion: no-preference) {
	.rise { opacity: 0; transform: translateY(8px); animation: rt-rise 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
	.rise-1 { animation-delay: 0.05s; } .rise-2 { animation-delay: 0.1s; } .rise-3 { animation-delay: 0.15s; }
	@keyframes rt-rise { to { opacity: 1; transform: translateY(0); } }
}
/* frappe alerts rendered inside pages */
.page_content .alert { border: 1px solid var(--rt-border); border-radius: 8px; background: #ffffff; color: var(--rt-ink); font-size: 14px; }
@media print { .rt-header, .rt-footer, .rt-side { display: none !important; } .rt-band { background: #ffffff; color: var(--rt-ink); border: 1px solid var(--rt-border); } .rt-band h1 { color: var(--rt-ink); } }
