/* Bootstrap component primitives remain available for forms, modals and tables. */
:root {
  color-scheme: light;
  --ink: #172b3d;
  --ink-2: #344b5c;
  --muted: #78868c;
  --line: #e3e9e7;
  --paper: #f4f6f3;
  --surface: #fff;
  --teal: #176b68;
  --teal-deep: #125552;
  --gold: #c3984e;
  --gold-pale: #f4eddf;
  --danger: #a64040;
  --sidebar-width: 256px;
  --sidebar-mini: 76px;
  --topbar-height: 76px;
  --radius: 14px;
  --shadow: 0 8px 30px rgba(23, 43, 61, .06);
}

*, *::before, *::after { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }
body.confradpar-app { min-width: 320px; min-height: 100vh; margin: 0; background: var(--paper); color: var(--ink); font: 15px/1.6 "DM Sans", sans-serif; }
body.confradpar-app h1, body.confradpar-app h2, body.confradpar-app h3, body.confradpar-app h4, body.confradpar-app h5 { color: var(--ink); font-family: "Manrope", sans-serif; font-weight: 700; letter-spacing: -.035em; }
body.confradpar-app a { color: var(--teal); }
body.confradpar-app a:hover { color: var(--teal-deep); }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 3px solid rgba(195,152,78,.7); outline-offset: 3px; }
.skip-link { position: fixed; z-index: 5000; top: 10px; left: 10px; padding: 10px 14px; transform: translateY(-160%); border-radius: 8px; background: var(--ink); color: white !important; }
.skip-link:focus { transform: translateY(0); }

/* Application frame */
.app-shell { min-height: 100vh; }
.app-workspace { min-height: 100vh; margin-left: var(--sidebar-width); transition: margin-left .22s ease; }
.app-main { width: min(100%, 1500px); min-height: calc(100vh - var(--topbar-height) - 66px); margin: 0 auto; padding: 36px clamp(20px, 4vw, 56px) 54px; }
.main-content { min-height: 48vh; }
.app-footer { padding: 18px 24px 22px; color: #8a9699; font-size: 10px; font-weight: 600; letter-spacing: .12em; text-align: center; }
.app-footer span { margin: 0 5px; color: var(--gold); }

/* Sidebar */
.app-sidebar { position: fixed; z-index: 1030; inset: 0 auto 0 0; display: flex; width: var(--sidebar-width); flex-direction: column; overflow-x: hidden; overflow-y: auto; padding: 20px 15px 18px; background: var(--ink); color: white; transition: width .22s ease, transform .22s ease; }
.sidebar-header { display: flex; min-height: 52px; align-items: center; justify-content: space-between; padding: 0 8px; }
.brand-lockup { display: inline-flex; min-width: 0; align-items: center; gap: 11px; text-decoration: none !important; }
.brand-symbol { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border: 1px solid rgba(226,197,142,.72); border-radius: 50%; color: #e2c58e; font: 700 19px "Manrope", sans-serif; }
.brand-name { color: white; font: 700 12px/1.3 "Manrope", sans-serif; letter-spacing: .14em; white-space: nowrap; }
.brand-name small { display: block; padding-top: 3px; color: #aebdc2; font: 500 9px/1.2 "DM Sans", sans-serif; letter-spacing: .22em; }
.sidebar-close { display: none; width: 40px; height: 40px; border: 0; border-radius: 9px; background: transparent; color: #d7e0e1; }
.sidebar-motto { margin: 22px 3px 29px; padding: 16px 15px; border: 1px solid rgba(255,255,255,.12); border-radius: 11px; background: rgba(255,255,255,.045); }
.sidebar-motto span { display: block; margin-bottom: 7px; color: #dfc285; font-size: 9px; font-weight: 700; letter-spacing: .17em; }
.sidebar-motto strong { display: block; color: #fff; font: 600 14px/1.5 "Manrope", sans-serif; }
.sidebar-nav { display: flex; flex-direction: column; gap: 4px; }
.nav-section-label { margin: 0 11px 8px; color: #8da1a9; font-size: 9px; font-weight: 700; letter-spacing: .16em; white-space: nowrap; }
.nav-section-spaced { margin-top: 27px; }
.sidebar-link { position: relative; display: flex; min-height: 46px; align-items: center; gap: 13px; padding: 10px 12px; border-radius: 9px; color: #c3cfd2 !important; font-size: 12px; font-weight: 500; text-decoration: none !important; white-space: nowrap; transition: color .16s ease, background .16s ease; }
.sidebar-link > i { display: grid; width: 20px; flex: 0 0 20px; place-items: center; color: #91a8aa; font-size: 14px; }
.sidebar-link:hover, .sidebar-link.is-current { background: rgba(255,255,255,.09); color: white !important; }
.sidebar-link:hover > i, .sidebar-link.is-current > i { color: #e2c58e; }
.sidebar-link.is-current::before { position: absolute; top: 11px; bottom: 11px; left: -15px; width: 3px; border-radius: 0 3px 3px 0; background: #d3b16e; content: ""; }
.sidebar-bottom { margin: auto 4px 0; padding: 28px 11px 5px; color: #a8b8bb; }
.sidebar-bottom-mark { display: block; width: 29px; height: 1px; margin-bottom: 12px; background: #c3984e; }
.sidebar-bottom p { margin: 0 0 8px; font: italic 11px/1.7 "DM Sans", sans-serif; }
.sidebar-bottom small { color: #d4bd8e; font-size: 8px; font-weight: 700; letter-spacing: .15em; }

/* Top bar */
.app-topbar { position: sticky; z-index: 1020; top: 0; display: flex; height: var(--topbar-height); align-items: center; gap: 19px; padding: 0 clamp(18px, 3vw, 42px); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(12px); }
.nav-toggle { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--ink-2); cursor: pointer; transition: background .16s ease, border-color .16s ease; }
.nav-toggle:hover { border-color: #c5d2ce; background: #f7f9f6; }
.nav-toggle-lines { display: flex; width: 16px; flex-direction: column; gap: 4px; }
.nav-toggle-lines i { display: block; width: 16px; height: 1.5px; border-radius: 2px; background: currentColor; }
.topbar-context { display: flex; flex: 1; flex-direction: column; gap: 2px; }
.topbar-context > span { color: #8b989b; font-size: 8px; font-weight: 700; letter-spacing: .16em; }
.topbar-context > strong { color: var(--ink); font: 700 12px "Manrope", sans-serif; letter-spacing: .02em; }
.topbar-context i { padding: 0 5px; color: #b4c0be; font-style: normal; }
.topbar-user { position: relative; }
.user-trigger { display: flex; min-height: 46px; align-items: center; gap: 10px; padding: 4px 2px 4px 8px; border: 0; background: transparent; color: var(--ink); text-align: left; cursor: pointer; }
.user-trigger::after { display: none !important; }
.user-avatar { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border: 1px solid #e5eae7; border-radius: 50%; object-fit: cover; }
.user-avatar-fallback { background: var(--gold-pale); color: #806332; font: 700 13px "Manrope", sans-serif; }
.user-name { display: flex; flex-direction: column; line-height: 1.3; }
.user-name small { color: var(--muted); font-size: 9px; }
.user-name strong { max-width: 180px; overflow: hidden; color: var(--ink); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.user-chevron { margin-left: 2px; color: #829092; font-size: 9px; }
.user-menu { min-width: 210px; margin-top: 8px; padding: 7px; border: 1px solid var(--line); border-radius: 11px; box-shadow: var(--shadow); }
.user-menu .dropdown-item { display: flex; min-height: 40px; align-items: center; gap: 10px; border-radius: 7px; color: var(--ink-2); font-size: 12px; }
.user-menu .dropdown-item i { width: 16px; color: #89979a; }

/* Shared controls and content */
.btn { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 8px; padding: 9px 16px; border-radius: 8px; font-size: 12px; font-weight: 700; line-height: 1.3; text-decoration: none; transition: background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease; }
.btn-primary, .btn-primary:disabled, .btn-primary.disabled { border-color: var(--teal) !important; background: var(--teal) !important; color: white !important; }
.btn-primary:hover, .btn-primary:focus, .btn-primary.focus { border-color: var(--teal-deep) !important; background: var(--teal-deep) !important; color: white !important; }
.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle { border-color: #104c49 !important; background: #104c49 !important; color: white !important; }
.btn-outline-secondary { border-color: #cbd6d5; background: white; color: var(--ink-2); }
.btn-outline-secondary:hover { border-color: var(--ink); background: var(--ink); color: white; }
.btn-sm { min-height: 36px; padding: 7px 12px; font-size: 11px; }
.btn:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(195,152,78,.68); outline-offset: 2px; box-shadow: none; }
.form-control, .custom-select { min-height: 43px; border: 1px solid #dce4e2; border-radius: 8px; color: var(--ink); font-size: 13px; }
.form-control:focus, .custom-select:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(23,107,104,.12); }
label { margin-bottom: 6px; color: var(--ink-2); font-size: 11px; font-weight: 700; }
.card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 3px 16px rgba(23,43,61,.035) !important; }
.card-header { padding: 16px 20px; border-bottom: 1px solid var(--line); background: white; }
.card-body { padding: 20px; }
.table { margin-bottom: 0; color: var(--ink-2); }
.table thead th { border-top: 0; border-bottom: 1px solid var(--line); background: #f7f9f7; color: #738286; font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.table td, .table th { padding: 12px 14px; border-color: var(--line); vertical-align: middle; }
.table tbody tr:hover { background: #fafbf9; }
.table-responsive { border-radius: 9px; }
.badge { padding: 5px 8px; border-radius: 20px; font-size: 9px; font-weight: 700; }
.bg-primary, .badge-primary, .progress-bar.bg-primary { background-color: var(--teal) !important; }
.text-primary { color: var(--teal) !important; }
.border-primary { border-color: var(--teal) !important; }
.bg-gradient-primary { background: var(--ink) !important; }
.alert { border: 0; border-left: 3px solid var(--teal); border-radius: 9px; box-shadow: 0 3px 14px rgba(23,43,61,.04); font-size: 13px; }
.alert-warning { border-left-color: var(--gold); }
.alert-danger { border-left-color: var(--danger); }
.flash-alert { margin-bottom: 22px; }
.modal-content { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 18px 54px rgba(23,43,61,.18); }
.modal-header { border-bottom-color: var(--line); }
.modal-footer { border-top-color: var(--line); }
.pagination .page-link { border-color: var(--line); color: var(--teal); }
.pagination .active .page-link { border-color: var(--teal); background: var(--teal); }
.page-header { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 25px; }
.page-header h1 { margin: 0 0 5px; font-size: clamp(25px, 3vw, 34px); }
.page-header p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 12px; }
.page-header-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.surface-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: 0 3px 16px rgba(23,43,61,.035); }
.surface-card > .table-responsive { border-radius: 0; }
.surface-card .table td:first-child, .surface-card .table th:first-child { padding-left: 20px; }
.surface-card .table td:last-child, .surface-card .table th:last-child { padding-right: 20px; }
.table-action { display: inline-grid; width: 34px; height: 34px; place-items: center; border: 1px solid var(--line); border-radius: 8px; color: var(--ink-2) !important; text-decoration: none !important; }
.admin-users-actions button.table-action { padding: 0; background: transparent; cursor: pointer; }
.table-action:hover { border-color: #c8d8d2; background: #eff5f2; color: var(--teal) !important; }
.admin-orders-table-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.admin-orders-table-heading .card-kicker { display: block; margin-bottom: 4px; }
.admin-orders-table-heading h2 { margin: 0; font-size: 17px; }
.admin-orders-count { padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-2); font-size: 11px; font-weight: 600; white-space: nowrap; }
.admin-orders-table thead th { white-space: nowrap; }
.table-sort-button { display: inline-flex; min-height: 32px; align-items: center; gap: 8px; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; }
.table-sort-button i { color: var(--teal); font-size: 12px; }
.table-sort-button:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; border-radius: 3px; }
.admin-order-participant { display: inline-flex; align-items: center; gap: 11px; }
.admin-order-participant strong { color: var(--ink); font-size: 12px; }
.admin-order-avatar { display: inline-grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border: 1px solid #dbe8e2; border-radius: 50%; background: #eff5f2; color: var(--teal); font-size: 10px; font-weight: 700; }
.admin-order-method { display: inline-flex; align-items: center; gap: 8px; color: var(--ink-2); font-size: 11px; }
.admin-order-method i { color: #849391; }
.admin-order-empty { color: #98a3a4; }
.admin-order-status { display: inline-flex; min-height: 27px; align-items: center; gap: 6px; padding: 4px 9px; border: 1px solid transparent; border-radius: 999px; font-size: 10px; font-weight: 700; white-space: nowrap; }
.admin-order-status-paid { border-color: #cfe7d8; background: #edf7f0; color: #28734d; }
.admin-order-status-pending { border-color: #efdfbd; background: #fbf5e8; color: #8b682b; }
.admin-order-status-unstarted { border-color: #e2e7e7; background: #f3f5f5; color: #687579; }
.admin-order-actions { text-align: right; }
.admin-orders-empty-state { padding: 32px 20px !important; color: var(--muted) !important; text-align: center; }
.admin-order-action { display: inline-flex; min-height: 36px; align-items: center; justify-content: center; gap: 7px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink-2); font-size: 10px; font-weight: 700; text-decoration: none !important; white-space: nowrap; }
.admin-order-action:hover { border-color: #c8d8d2; background: #eff5f2; color: var(--teal) !important; }
.admin-order-action:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
.admin-orders-table tbody tr { transition: background-color .15s ease; }
.admin-orders-table tbody tr:hover { background: #f8fbf9; }
.admin-orders-pagination { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 20px; border-top: 1px solid var(--line); }
.admin-orders-page-summary { color: var(--muted); font-size: 11px; }
.admin-orders-pagination nav.pagination { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; }
.admin-orders-pagination nav.pagination > span { display: inline-flex; }
.admin-orders-pagination nav.pagination a, .admin-orders-pagination nav.pagination .page.current { display: inline-flex; min-height: 34px; align-items: center; justify-content: center; padding: 0 9px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink-2); font-size: 11px; font-weight: 600; text-decoration: none; }
.admin-orders-pagination nav.pagination a:hover { border-color: #c8d8d2; background: #eff5f2; color: var(--teal); }
.admin-orders-pagination nav.pagination a:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
.admin-orders-pagination nav.pagination .page.current { border-color: var(--teal); background: var(--teal); color: white; }
.admin-orders-pagination nav.pagination .page.gap { display: inline-flex; min-height: 34px; align-items: center; padding: 0 3px; color: var(--muted); }
.admin-users-table-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.admin-users-table-heading .card-kicker { display: block; margin-bottom: 4px; }
.admin-users-table-heading h2 { margin: 0; font-size: 17px; }
.admin-users-count { padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-2); font-size: 11px; font-weight: 600; white-space: nowrap; }
.admin-users-table thead th { white-space: nowrap; }
.admin-users-table tbody tr { transition: background-color .15s ease; }
.admin-users-table tbody tr:hover { background: #f8fbf9; }
.admin-user-name { display: inline-flex; align-items: center; gap: 11px; }
.admin-user-name strong { color: var(--ink); font-size: 12px; }
.admin-user-avatar { display: inline-grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border: 1px solid #dbe8e2; border-radius: 50%; background: #eff5f2; color: var(--teal); font-size: 10px; font-weight: 700; }
.admin-user-muted { color: var(--muted); }
.admin-user-card-status { display: inline-flex; min-height: 27px; align-items: center; gap: 6px; padding: 4px 9px; border: 1px solid transparent; border-radius: 999px; font-size: 10px; font-weight: 700; white-space: nowrap; }
.admin-user-card-status.is-printed { border-color: #cfe7d8; background: #edf7f0; color: #28734d; }
.admin-user-card-status.is-pending { border-color: #efdfbd; background: #fbf5e8; color: #8b682b; }
.admin-users-actions { text-align: right; white-space: nowrap; }
.admin-users-actions .table-action + .table-action { margin-left: 4px; }
.admin-users-empty-state { padding: 36px 20px !important; color: var(--muted) !important; text-align: center; }
.admin-users-empty-state i, .admin-users-empty-state strong, .admin-users-empty-state span { display: block; }
.admin-users-empty-state i { margin-bottom: 10px; color: var(--teal); font-size: 21px; }
.admin-users-empty-state strong { margin-bottom: 4px; color: var(--ink); font-size: 13px; }
.admin-users-empty-state span { font-size: 11px; }
.admin-users-pagination { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 20px; border-top: 1px solid var(--line); }
.admin-users-page-summary { color: var(--muted); font-size: 11px; }
.admin-users-pagination nav.pagination { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; }
.admin-users-pagination nav.pagination > span { display: inline-flex; }
.admin-users-pagination nav.pagination a, .admin-users-pagination nav.pagination .page.current { display: inline-flex; min-height: 34px; align-items: center; justify-content: center; padding: 0 9px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink-2); font-size: 11px; font-weight: 600; text-decoration: none; }
.admin-users-pagination nav.pagination a:hover { border-color: #c8d8d2; background: #eff5f2; color: var(--teal); }
.admin-users-pagination nav.pagination a:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
.admin-users-pagination nav.pagination .page.current { border-color: var(--teal); background: var(--teal); color: white; }
.admin-users-pagination nav.pagination .page.gap { display: inline-flex; min-height: 34px; align-items: center; padding: 0 3px; color: var(--muted); }
.admin-products-table-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.admin-products-table-heading .card-kicker { display: block; margin-bottom: 4px; }
.admin-products-table-heading h2 { margin: 0; font-size: 17px; }
.admin-products-count { padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-2); font-size: 11px; font-weight: 600; white-space: nowrap; }
.admin-products-table thead th { white-space: nowrap; }
.admin-products-table tbody tr { transition: background-color .15s ease; }
.admin-products-table tbody tr:hover { background: #f8fbf9; }
.admin-product-title { display: inline-flex; align-items: center; gap: 11px; }
.admin-product-title strong { color: var(--ink); font-size: 12px; }
.admin-product-icon { display: inline-grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border: 1px solid #dbe8e2; border-radius: 10px; background: #eff5f2; color: var(--teal); font-size: 12px; }
.admin-product-value { color: var(--ink); font-size: 12px; white-space: nowrap; }
.admin-product-status { display: inline-flex; min-height: 27px; align-items: center; gap: 6px; padding: 4px 9px; border: 1px solid transparent; border-radius: 999px; font-size: 10px; font-weight: 700; white-space: nowrap; }
.admin-product-status.is-open { border-color: #cfe7d8; background: #edf7f0; color: #28734d; }
.admin-product-status.is-closed { border-color: #e2e7e7; background: #f3f5f5; color: #687579; }
.admin-products-actions { text-align: right; white-space: nowrap; }
.admin-products-actions .table-action + .table-action { margin-left: 4px; }
.admin-products-empty-state { padding: 36px 20px !important; color: var(--muted) !important; text-align: center; }
.admin-products-empty-state i, .admin-products-empty-state strong, .admin-products-empty-state span { display: block; }
.admin-products-empty-state i { margin-bottom: 10px; color: var(--teal); font-size: 21px; }
.admin-products-empty-state strong { margin-bottom: 4px; color: var(--ink); font-size: 13px; }
.admin-products-empty-state span { font-size: 11px; }
.admin-products-pagination { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 20px; border-top: 1px solid var(--line); }
.admin-products-page-summary { color: var(--muted); font-size: 11px; }
.admin-products-pagination nav.pagination { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; }
.admin-products-pagination nav.pagination > span { display: inline-flex; }
.admin-products-pagination nav.pagination a, .admin-products-pagination nav.pagination .page.current { display: inline-flex; min-height: 34px; align-items: center; justify-content: center; padding: 0 9px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink-2); font-size: 11px; font-weight: 600; text-decoration: none; }
.admin-products-pagination nav.pagination a:hover { border-color: #c8d8d2; background: #eff5f2; color: var(--teal); }
.admin-products-pagination nav.pagination a:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
.admin-products-pagination nav.pagination .page.current { border-color: var(--teal); background: var(--teal); color: white; }
.admin-products-pagination nav.pagination .page.gap { display: inline-flex; min-height: 34px; align-items: center; padding: 0 3px; color: var(--muted); }
.order-status { display: inline-flex; align-items: center; padding: 5px 9px; border-radius: 30px; font-size: 10px; font-weight: 700; }
.order-status-paid { background: #e7f2ed; color: #28654b; }
.order-status-pending { background: #f7efdf; color: #896829; }
.empty-state { display: flex; min-height: 280px; flex-direction: column; align-items: center; justify-content: center; padding: 32px 20px; text-align: center; }
.empty-state-icon { display: grid; width: 52px; height: 52px; place-items: center; margin-bottom: 14px; border-radius: 15px; background: #e7f1ee; color: var(--teal); }
.empty-state h2 { margin: 0 0 5px; font-size: 18px; }
.empty-state p { margin: 0 0 18px; color: var(--muted); font-size: 12px; }
.summary-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-bottom: 18px; }
.summary-card { position: relative; display: flex; min-height: 95px; flex-direction: column; justify-content: center; padding: 16px 20px; border: 1px solid var(--line); border-radius: 12px; background: white; }
.summary-card span { color: var(--muted); font-size: 10px; font-weight: 600; }
.summary-card strong { margin-top: 2px; font: 700 24px "Manrope",sans-serif; }
.summary-card > i { position: absolute; top: 22px; right: 20px; color: #81aaa0; font-size: 17px; }
.summary-card-warm > i { color: #c3984e; }
.detail-card { width: 100%; overflow: hidden; padding: clamp(20px, 4vw, 32px); border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: 0 3px 16px rgba(23,43,61,.035); }
.detail-card-heading { display: flex; align-items: center; gap: 14px; padding-bottom: 21px; border-bottom: 1px solid var(--line); }
.detail-icon { display: grid; width: 46px; height: 46px; flex: 0 0 46px; place-items: center; border-radius: 13px; background: #e7f1ee; color: var(--teal); }
.detail-icon-warm { background: var(--gold-pale); color: #98713a; }
.detail-card-heading .card-kicker { display: block; margin-bottom: 3px; }
.detail-card-heading h2 { margin: 0; font-size: 19px; }
.detail-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 20px; margin: 0; }
.detail-list > div { padding: 17px 0; border-bottom: 1px solid #edf0ee; }
.detail-list dt { margin-bottom: 4px; color: var(--muted); font-size: 10px; font-weight: 600; }
.detail-list dd { margin: 0; color: var(--ink); font-size: 13px; font-weight: 700; }
.detail-extra, .payment-instructions { margin-top: 20px; padding: 18px; border-radius: 10px; background: #f6f8f6; color: var(--ink-2); font-size: 12px; }
.detail-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 20px; padding: 16px; border-radius: 10px; background: #f6f8f6; }
.detail-footer p { margin: 0; color: var(--muted); font-size: 11px; }
.payment-instructions h3 { margin: 0 0 5px; font-size: 15px; }
.payment-instructions p { margin: 0 0 12px; color: var(--muted); font-size: 11px; }
.pix-key { display: inline-flex; flex-direction: column; padding: 9px 13px; border: 1px solid #e4e9e7; border-radius: 8px; background: white; }
.pix-key span { color: var(--muted); font-size: 8px; font-weight: 700; letter-spacing: .1em; }
.pix-key strong { color: var(--ink); font-size: 13px; }
.receipt-form { margin-top: 18px; }
.receipt-form .form-control-file { width: 100%; padding: 11px; border: 1px dashed #cbd7d3; border-radius: 8px; background: #fbfcfa; font-size: 11px; }
.receipt-form .form-text { font-size: 10px; }
.receipt-preview { margin: 5px 0; color: var(--teal); font-size: 11px; font-weight: 600; }
.compact-detail { max-width: 610px; }
.profile-card { max-width: 1100px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: 0 3px 16px rgba(23,43,61,.035); }
.profile-card-top { display: flex; align-items: center; gap: 16px; padding: 24px; border-bottom: 1px solid var(--line); background: #fbfcfa; }
.profile-photo { display: grid; width: 74px; height: 74px; flex: 0 0 74px; place-items: center; border: 3px solid white; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 1px var(--line); }
.profile-photo-fallback { background: var(--gold-pale); color: #98713a; font-size: 20px; }
.profile-card-top .card-kicker { color: var(--teal); }
.profile-card-top h2 { margin: 4px 0 2px; font-size: 20px; }
.profile-card-top p { margin: 0; color: var(--muted); font-size: 11px; }
.profile-data { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0 20px; padding: 9px 24px; }
.profile-data > div { display: flex; min-width: 0; flex-direction: column; gap: 3px; padding: 13px 0; border-bottom: 1px solid #edf0ee; }
.profile-data span, .profile-document span { color: var(--muted); font-size: 9px; font-weight: 600; }
.profile-data strong { overflow-wrap: anywhere; color: var(--ink); font-size: 11px; font-weight: 600; }
.profile-document { display: flex; align-items: center; gap: 18px; padding: 16px 24px; }
.profile-document a { font-size: 11px; font-weight: 700; }

/* Participant welcome page */
.welcome-panel { position: relative; display: grid; min-height: 322px; grid-template-columns: 1.15fr .85fr; overflow: hidden; margin-bottom: 42px; border-radius: 18px; background: #e7efeb; }
.welcome-copy { position: relative; z-index: 1; align-self: center; padding: 40px clamp(25px, 4vw, 54px); }
.eyebrow { margin: 0 0 8px; color: var(--teal); font-size: 11px; font-weight: 700; letter-spacing: .18em; }
.welcome-copy h1 { margin: 0 0 14px; font-size: clamp(34px, 4vw, 49px); line-height: 1.08; }
.welcome-copy h1 span { color: var(--teal); }
.welcome-description { max-width: 450px; margin: 0 0 21px; color: #607176; font-size: 13px; }
.welcome-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.welcome-art { position: relative; min-height: 280px; overflow: hidden; background: linear-gradient(145deg,#d9e6df,#b8cec4); }
.welcome-art::before, .welcome-art::after { position: absolute; top: -190px; right: -30px; width: 430px; height: 430px; border: 1px solid rgba(23,67,67,.12); border-radius: 50%; content: ""; }
.welcome-art::after { top: -145px; right: -75px; }
.sun-disc { position: absolute; top: 48px; left: 50%; width: 170px; height: 170px; transform: translateX(-40%); border-radius: 50%; background: linear-gradient(145deg,#e8d3a4,#c69a55); box-shadow: 0 18px 40px rgba(114,87,39,.14); }
.cross-mark { position: absolute; top: 83px; left: 50%; width: 72px; height: 114px; transform: translateX(-32%); }
.cross-mark span, .cross-mark i { position: absolute; display: block; border-radius: 3px; background: #fcfaf3; box-shadow: 0 8px 18px rgba(67,57,39,.12); }
.cross-mark span { left: 30px; width: 12px; height: 114px; }
.cross-mark i { top: 27px; left: 9px; width: 54px; height: 12px; }
.art-caption { position: absolute; right: 25px; bottom: 22px; color: #496566; font-size: 8px; font-weight: 700; letter-spacing: .17em; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 14px; margin-bottom: 17px; }
.section-heading .eyebrow { margin-bottom: 3px; }
.section-heading h2 { margin: 0; font-size: 22px; }
.section-note { color: var(--muted); font-size: 11px; }
.journey-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.journey-card { display: flex; min-height: 220px; flex-direction: column; align-items: flex-start; padding: 22px; border: 1px solid var(--line); border-radius: 14px; background: white; transition: transform .18s ease, box-shadow .18s ease; }
.journey-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.journey-icon { display: grid; width: 41px; height: 41px; place-items: center; margin-bottom: 16px; border-radius: 11px; background: #e7f1ee; color: var(--teal); }
.journey-icon-warm { background: var(--gold-pale); color: #98713a; }
.card-kicker { color: #839094; font-size: 8px; font-weight: 700; letter-spacing: .16em; }
.journey-card h3 { margin: 4px 0 5px; font-size: 16px; }
.journey-card p { margin: 0 0 14px; color: var(--muted); font-size: 11px; }
.text-link { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; font-size: 11px; font-weight: 700; text-decoration: none; }
.updates-section { margin-top: 36px; }
.update-row { display: flex; align-items: center; gap: 13px; padding: 13px 16px; border-bottom: 1px solid var(--line); background: white; }
.update-row:first-of-type { border-radius: 11px 11px 0 0; }
.update-row:last-child { border-bottom: 0; border-radius: 0 0 11px 11px; }
.status-dot { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: #cf7954; box-shadow: 0 0 0 4px #f8ece6; }
.status-dot-gold { background: var(--gold); box-shadow: 0 0 0 4px var(--gold-pale); }
.status-dot-gray { background: #8b969a; box-shadow: 0 0 0 4px #edf0f0; }
.status-dot-green { background: #34815b; box-shadow: 0 0 0 4px #e6f2eb; }
.update-row > div { flex: 1; min-width: 0; }
.update-row strong { color: var(--ink); font-size: 11px; }
.update-row p { margin: 1px 0 0; color: var(--muted); font-size: 10px; }
.payment-status { font-weight: 700; }
.payment-status-pending { color: #98713a; }
.payment-status-paid { color: #28734d; }
.payment-status-available { color: #707d81; }
.auth-panel { max-width: 720px; margin: 22px auto; padding: clamp(23px, 4vw, 38px); border: 1px solid var(--line); border-radius: 16px; background: white; box-shadow: 0 8px 30px rgba(23,43,61,.045); }
.auth-panel h1 { margin: 0 0 7px; font-size: 28px; }
.auth-intro { margin-bottom: 25px; color: var(--muted); font-size: 12px; }
.auth-panel .row { margin-right: -8px; margin-left: -8px; }
.auth-panel .form-group { padding-right: 8px; padding-left: 8px; }
.auth-panel .actions { margin: 0 8px 16px; }
.auth-panel .actions .btn { min-width: 128px; }
.auth-panel-wide { max-width: 1080px; }
.auth-panel-wide .row > .form-group { flex: 1 1 205px; max-width: 275px; }
.auth-panel-wide .row > .form-group[class*="col-md-8"] { flex: 2 1 380px; max-width: 560px; }
.auth-panel input:not([type="checkbox"]), .auth-panel select, .auth-panel textarea { width: 100%; min-height: 43px; padding: 8px 11px; border: 1px solid #dce4e2; border-radius: 8px; color: var(--ink); font-size: 13px; }
.auth-panel input[type="checkbox"] { width: auto; min-height: 0; }
.auth-panel input:focus { border-color: var(--teal); }
.main-content form > .row > .form-group { flex: 1 1 210px; max-width: 330px; }
.main-content form > .row > .form-group[class*="col-md-8"] { flex: 2 1 380px; max-width: 560px; }
.main-content form .actions { margin-top: 17px; }
body[data-authenticated="false"] .main-content > h2 { max-width: 700px; margin: 22px auto 0; padding: 30px 32px 0; border: 1px solid var(--line); border-bottom: 0; border-radius: 16px 16px 0 0; background: white; font-size: 25px; }
body[data-authenticated="false"] .main-content > form { max-width: 700px; margin: 0 auto 8px; padding: 22px 32px 30px; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 16px 16px; background: white; box-shadow: 0 8px 30px rgba(23,43,61,.045); }
body[data-authenticated="false"] .main-content > form .field { margin-bottom: 15px; }
body[data-authenticated="false"] .main-content > form input:not([type="checkbox"]) { width: 100%; min-height: 43px; padding: 8px 11px; border: 1px solid #dce4e2; border-radius: 8px; }
body[data-authenticated="false"] .main-content > form input[type="submit"] { width: auto; padding: 9px 18px; border-color: var(--teal); background: var(--teal); color: white; font-weight: 700; }

/* Sidebar collapse and mobile drawer */
.app-shell--sidebar-collapsed .app-workspace { margin-left: var(--sidebar-mini); }
.app-shell--sidebar-collapsed .app-sidebar { width: var(--sidebar-mini); padding-right: 10px; padding-left: 10px; }
.app-shell--sidebar-collapsed .brand-lockup { justify-content: center; width: 100%; }
.app-shell--sidebar-collapsed .brand-name, .app-shell--sidebar-collapsed .sidebar-motto, .app-shell--sidebar-collapsed .nav-section-label, .app-shell--sidebar-collapsed .sidebar-link span, .app-shell--sidebar-collapsed .sidebar-bottom { display: none; }
.app-shell--sidebar-collapsed .sidebar-link { justify-content: center; padding: 10px 0; }
.app-shell--sidebar-collapsed .sidebar-link > i { width: 100%; flex: 1; }
.app-shell--sidebar-collapsed .sidebar-link.is-current::before { left: -10px; }
.sidebar-scrim { display: none; }

@media (max-width: 1000px) and (min-width: 768px) {
  :root { --sidebar-width: 228px; }
  .app-main { padding-right: 28px; padding-left: 28px; }
  .welcome-panel { grid-template-columns: 1.1fr .9fr; }
}
@media (max-width: 767px) {
  :root { --topbar-height: 64px; }
  .app-workspace, .app-shell--sidebar-collapsed .app-workspace { margin-left: 0; }
  .app-sidebar, .app-shell--sidebar-collapsed .app-sidebar { z-index: 1200; width: min(310px, 86vw); padding: 18px 15px; transform: translateX(-105%); box-shadow: 12px 0 36px rgba(12,30,40,.18); }
  .app-shell--menu-open .app-sidebar { transform: translateX(0); }
  .app-shell--sidebar-collapsed .brand-name, .app-shell--sidebar-collapsed .sidebar-motto, .app-shell--sidebar-collapsed .nav-section-label, .app-shell--sidebar-collapsed .sidebar-link span, .app-shell--sidebar-collapsed .sidebar-bottom { display: initial; }
  .app-shell--sidebar-collapsed .sidebar-motto { display: block; }
  .app-shell--sidebar-collapsed .nav-section-label { display: block; }
  .app-shell--sidebar-collapsed .sidebar-bottom { display: block; }
  .app-shell--sidebar-collapsed .brand-lockup { justify-content: flex-start; width: auto; }
  .app-shell--sidebar-collapsed .sidebar-link { justify-content: flex-start; padding: 10px 12px; }
  .app-shell--sidebar-collapsed .sidebar-link > i { width: 20px; flex: 0 0 20px; }
  .app-shell--sidebar-collapsed .sidebar-link.is-current::before { left: -15px; }
  .sidebar-close { display: grid; place-items: center; }
  .sidebar-scrim { position: fixed; z-index: 1190; inset: 0; display: block; visibility: hidden; border: 0; background: rgba(12,25,35,.48); opacity: 0; transition: opacity .2s ease, visibility .2s ease; }
  .app-shell--menu-open .sidebar-scrim { visibility: visible; opacity: 1; }
  .app-topbar { gap: 12px; padding: 0 15px; }
  .nav-toggle { width: 40px; height: 40px; flex-basis: 40px; }
  .topbar-context > span { font-size: 7px; }
  .topbar-context > strong { font-size: 10px; }
  .user-trigger { gap: 0; padding-right: 0; }
  .user-avatar { width: 36px; height: 36px; flex-basis: 36px; }
  .user-name, .user-chevron { display: none; }
  .app-main { min-height: calc(100vh - var(--topbar-height) - 60px); padding: 24px 17px 36px; }
  .app-footer { padding-bottom: 17px; }
  .welcome-panel { grid-template-columns: 1fr; margin-bottom: 31px; }
  .welcome-copy { padding: 29px 23px 24px; }
  .welcome-copy h1 { font-size: 37px; }
  .welcome-art { min-height: 174px; }
  .sun-disc { top: 1px; width: 145px; height: 145px; }
  .cross-mark { top: 26px; transform: translateX(-32%) scale(.78); transform-origin: top left; }
  .art-caption { right: 14px; bottom: 14px; font-size: 7px; }
  .journey-grid { grid-template-columns: 1fr; gap: 11px; }
  .journey-card { min-height: 195px; padding: 19px; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 3px; }
  .section-heading h2 { font-size: 20px; }
  .page-header { align-items: flex-start; flex-direction: column; gap: 14px; margin-bottom: 19px; }
  .page-header-actions { width: 100%; }
  .page-header-actions > .btn { flex: 1; }
  .summary-grid { gap: 9px; }
  .admin-orders-table-heading { align-items: flex-start; padding: 15px; }
  .admin-orders-table-heading h2 { font-size: 15px; }
  .admin-order-action { padding: 7px 8px; }
  .admin-orders-pagination { align-items: flex-start; flex-direction: column; padding: 13px 15px; }
  .admin-users-table-heading { align-items: flex-start; padding: 15px; }
  .admin-users-table-heading h2 { font-size: 15px; }
  .admin-users-pagination { align-items: flex-start; flex-direction: column; padding: 13px 15px; }
  .admin-products-table-heading { align-items: flex-start; padding: 15px; }
  .admin-products-table-heading h2 { font-size: 15px; }
  .admin-products-pagination { align-items: flex-start; flex-direction: column; padding: 13px 15px; }
  .summary-card { min-height: 82px; padding: 13px; }
  .summary-card > i { top: 13px; right: 13px; font-size: 14px; }
  .summary-card strong { font-size: 20px; }
  .detail-list { grid-template-columns: 1fr; }
  .detail-footer { align-items: flex-start; flex-direction: column; }
  .profile-data { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 13px; padding: 8px 17px; }
  .profile-card-top { padding: 18px; }
  .profile-document { padding: 14px 17px; }
  .update-row { flex-wrap: wrap; padding: 12px; }
  .update-row .btn { margin-left: 20px; }
  .card-body { padding: 15px; }
  .table td, .table th { padding: 10px 9px; }
  body[data-authenticated="false"] .app-main { padding-top: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
