/* Shared menus follow the notification category picker. */
/* Settings open as a category list, then a single focused detail page. */
.settings-page { width:100%; }
.settings-category-list { display:grid; gap:2px; padding:8px; border:1px solid var(--ui-line); border-radius:22px; background:var(--ui-solid); overflow:hidden; }
.settings-category-list>a { position:relative; display:flex; align-items:center; gap:14px; min-height:78px; padding:14px; border:0; border-radius:14px; color:var(--ui-text); text-decoration:none; }
.settings-category-list>a:not(:last-child)::after { content:""; position:absolute; inset:auto 14px -1px 64px; height:1px; background:var(--ui-line); pointer-events:none; }
.settings-category-list>a:is(:hover,:focus-visible) { background:var(--ui-tint); }
.settings-category-icon { display:grid; place-items:center; flex:none; width:36px; height:36px; border-radius:11px; color:var(--ui-tint-text); background:var(--ui-tint); }
.settings-category-icon svg { width:20px; height:20px; stroke-width:1.7; }
.settings-category-copy { display:grid; gap:3px; flex:1; min-width:0; }
.settings-category-copy b { font-size:17px; font-weight:600; }
.settings-category-copy small { color:var(--ui-muted); font-size:13px; line-height:1.4; }
.settings-category-chevron { color:var(--ui-caption); flex:none; width:18px; }
.settings-page .settings-back { display:inline-flex; align-items:center; gap:4px; margin:0 0 8px -6px; padding:6px; min-height:44px; border-radius:10px; color:var(--ui-tint-text); text-decoration:none; font-size:14px; border:0; background:transparent; }
.settings-back:is(:hover,:focus-visible) { background:var(--ui-tint); }
.settings-page h1:focus { outline:none; }

/* A readable caption, centered independently of the barcode's scroll area. */
.loyalty-page .loy-number,.loy-detail .loy-number,.loy-cashier .loy-number {
  width:100%; margin:16px auto 0; text-align:center; font-size:16px; font-weight:500;
  line-height:1.5; letter-spacing:.04em; font-variant-numeric:tabular-nums; overflow-wrap:anywhere;
}
.loy-cashier-content>.loy-number { margin:0; justify-self:center; }
/* The two useful facts stay balanced in both task layouts. */
.partner-task-card .partner-task-details { grid-template-columns:repeat(2,minmax(0,1fr)); }

/* Autofilled text follows the selected theme in both Chromium and Safari. */
input:autofill { color:var(--ui-text) !important; caret-color:var(--ui-text); }
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
.login-input input:-webkit-autofill,
.login-input input:-webkit-autofill:hover,
.login-input input:-webkit-autofill:focus {
  -webkit-text-fill-color:var(--ui-text) !important; caret-color:var(--ui-text);
  -webkit-box-shadow:0 0 0 1000px var(--ui-opaque-solid) inset !important;
  box-shadow:0 0 0 1000px var(--ui-opaque-solid) inset !important;
}
.login-options .remember-option { position:relative; display:inline-flex; gap:8px; align-items:center; min-height:44px; }
.login-options .remember-option input { position:static; margin:0; opacity:1; }
.login-options .remember-option input:disabled { opacity:1; }
.login-options .remember-option .remember-label,
.login-options .remember-option input:checked+.remember-label {
  display:inline; width:auto; height:auto; border:0; border-radius:0; color:var(--ui-muted); background:none; box-shadow:none; white-space:normal;
}
.login-options .remember-option input:focus-visible { border-color:var(--ui-tint-text) !important; }

/* Shared primary actions: a solid surface, consistent corners and no glow. */
body :is(.eg-primary,.settings-primary,.settings-page .account-settings-form footer button.primary,
  .cal-primary,.loy-primary,.partner-task-create,.partner-task-actions button.primary,
  .partner-task-modal footer button.primary,.partner-task-empty button,.store-section-heading>button,
  .root-modal-submit,.root-panel-heading button,.pair-link-issue,.pair-invite-accept,
  .support-reply-form button,.support-create-card>footer button.primary,.wishlist-button.primary,
  .rbac-primary-button,.primary-button,.home-primary-action,.login-card button[type=submit],.login-submit,
  .ln-pwa-button:not(.is-connected),.ln-install-card [data-action=install-pwa],.ln-note-primary) {
  background:#8050c8; color:#fff; border:1px solid transparent; border-radius:12px;
  box-shadow:none; text-shadow:none; min-height:44px; font-weight:600;
  transition:background-color 160ms ease,opacity 160ms ease; transform:none;
}
body :is(.eg-primary,.settings-primary,.settings-page .account-settings-form footer button.primary,
  .cal-primary,.loy-primary,.partner-task-create,.partner-task-actions button.primary,
  .partner-task-modal footer button.primary,.partner-task-empty button,.store-section-heading>button,
  .root-modal-submit,.root-panel-heading button,.pair-link-issue,.pair-invite-accept,
  .support-reply-form button,.support-create-card>footer button.primary,.wishlist-button.primary,
  .rbac-primary-button,.primary-button,.home-primary-action,.login-card button[type=submit],.login-submit,
  .ln-pwa-button:not(.is-connected),.ln-install-card [data-action=install-pwa],.ln-note-primary):is(:hover,:focus-visible):not(:disabled):not([aria-disabled=true]) { background:#7040b8; box-shadow:none; transform:none; }
body :is(.eg-primary,.settings-primary,.cal-primary,.loy-primary,.partner-task-create,
  .partner-task-actions button.primary,.login-submit,.ln-pwa-button,.ln-install-card [data-action=install-pwa]):disabled { opacity:.55; box-shadow:none; transform:none; }
.lunelly-select .lunelly-select-trigger {
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  min-height:44px; width:100%; padding:10px 13px; border:1px solid var(--ui-input-line);
  border-radius:14px; color:var(--ui-text); background:var(--ui-solid); box-shadow:none;
  font:400 16px/1.4 var(--ui-font); text-align:left;
}
.lunelly-select .lunelly-select-value { color:inherit; font:inherit; letter-spacing:normal; text-transform:none; }
.lunelly-select-menu {
  background:var(--ui-opaque-solid); border:1px solid var(--ui-line); border-radius:16px;
  padding:6px; box-shadow:var(--ui-shadow-float); animation:none; backdrop-filter:none; -webkit-backdrop-filter:none;
}
body .lunelly-select-menu .lunelly-select-option {
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  width:100%; min-height:44px; padding:10px 12px; margin:0; border:0; border-radius:10px;
  background:transparent; color:var(--ui-text); box-shadow:none; font:400 14px/1.4 var(--ui-font); text-align:left;
}
body .lunelly-select-menu .lunelly-select-option>span { color:inherit; font:inherit; letter-spacing:normal; text-transform:none; overflow-wrap:anywhere; }
body .lunelly-select-menu .lunelly-select-option.is-selected { color:var(--ui-tint-text); background:var(--ui-tint); }
body .lunelly-select-menu .lunelly-select-option:is(:hover,.is-active):not(:disabled) { background:var(--ui-fill); }
body .lunelly-select-menu .lunelly-select-option.is-selected:is(:hover,.is-active) { background:var(--ui-tint); }
.loy-sort .lunelly-select,.cal-toolbar .lunelly-select { min-width:0; }
.cal-toolbar>.lunelly-select { width:auto; min-width:170px; }

/* Settings: a compact section switch and one content column. */
.settings-page { max-width:960px; padding:0 0 24px; }
.settings-page .settings-page-header { padding-bottom:18px; gap:12px; }
.settings-page .settings-page-header h1 { font-size:30px; margin:4px 0 8px; }
.settings-layout { grid-template-columns:180px minmax(0,1fr); align-items:start; gap:20px; }
.settings-navigation { position:static; top:auto; align-self:start; grid-template-columns:minmax(0,1fr); gap:4px; padding:4px; border-radius:16px; }
.settings-navigation a { display:flex; align-items:center; justify-content:flex-start; gap:10px; min-height:44px; padding:10px 12px; border-radius:12px; }
.settings-navigation a svg { flex:none; }
.settings-content { min-width:0; width:100%; }
.settings-navigation a:hover,.settings-navigation a[aria-current=page] { background:var(--ui-tint); }
.settings-card,.account-settings-card { padding:20px; border-radius:20px; box-shadow:none; }
.settings-card h2,.account-settings-card h2 { font-size:20px; margin:0 0 10px; }
.account-settings-card>header { margin-bottom:16px; }
.settings-room-form,.account-settings-card form { gap:14px; }
.settings-page .eg-theme-picker { margin-top:14px; }
.settings-page .eg-theme-hint { margin:8px 0 16px; }
.settings-page .eg-appearance-card .eg-appearance { padding-top:14px; }

/* Notification preferences use short rows and optional details. */
.ln-notification-settings.ln-settings-compact { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; padding:0; min-width:0; background:transparent; border:0; box-shadow:none; }
.ln-settings-compact>*,.ln-settings-compact .ln-install-card>div { min-width:0; }
.settings-notifications { background:transparent; }
.ln-settings-compact .ln-pwa-card {
  display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center;
  gap:12px; min-height:0; margin:0; padding:16px; border-radius:18px; background:var(--ui-solid); box-shadow:none;
}
.ln-settings-compact .ln-pwa-card__icon { position:static; display:grid; place-items:center; width:36px; height:36px; border-radius:12px; background:var(--ui-tint); color:var(--ui-tint-text); box-shadow:none; }
.ln-settings-compact .ln-pwa-card__icon svg { width:20px; height:20px; }
.ln-settings-compact .ln-pwa-card__copy { min-width:0; }
.ln-settings-compact .ln-pwa-card__copy h3 { margin:0 0 4px; font-size:16px; line-height:1.3; }
.ln-settings-compact .ln-pwa-card__copy>span { display:block; padding:0; margin:0; background:none; font-size:13px; color:var(--ui-muted); line-height:1.4; }
.ln-settings-compact .ln-pwa-button { grid-column:3; width:auto; min-height:44px; padding:10px 14px; margin:0; border-radius:12px; font-size:14px; }
.ln-settings-compact .ln-push-hint { grid-column:1/-1; margin:0; font-size:13px; line-height:1.5; color:var(--ui-muted); }
.ln-settings-compact .ln-notification-settings-card { padding:0 16px; border-radius:18px; box-shadow:none; }
.ln-settings-compact .ln-notification-setting-row { min-height:60px; margin:0; padding:8px 0; gap:12px; border-top:0; border-bottom:1px solid var(--ui-line); }
.ln-settings-compact .ln-notification-setting-row>span { min-width:0; }
.ln-settings-compact .ln-notification-setting-row b { font-size:14px; line-height:1.4; }
.ln-settings-compact .ln-notification-setting-row small { margin-top:2px; font-size:12px; line-height:1.4; }
.ln-settings-compact .ln-notification-setting-row .ln-switch { flex:0 0 44px; width:44px; height:44px; min-height:44px; padding:0; border:0; }
.ln-settings-compact .ln-switch.is-on i { transform:translateX(14px); }
.ln-settings-compact .ln-quiet-hours { display:flex; align-items:center; gap:12px; padding:12px 0; margin:0; }
.ln-settings-compact .ln-quiet-hours label { display:flex; flex:1; flex-direction:row; align-items:center; gap:8px; min-width:0; }
.ln-settings-compact .ln-quiet-hours input { width:100%; min-width:0; min-height:44px; height:44px; padding:8px; font-size:16px; }
.ln-notification-disclosure>summary { display:flex; align-items:center; gap:10px; min-height:52px; padding:8px 0; cursor:pointer; list-style:none; font-size:14px; font-weight:550; }
.ln-notification-disclosure>summary::-webkit-details-marker { display:none; }
.ln-notification-disclosure>summary>span { flex:1; }
.ln-notification-disclosure>summary>small { color:var(--ui-muted); font-size:12px; white-space:nowrap; font-weight:400; }
.ln-notification-disclosure>summary>i { font-style:normal; font-size:18px; color:var(--ui-muted); }
.ln-notification-disclosure[open]>summary>i { transform:rotate(180deg); }
.ln-settings-compact .ln-notification-category-settings { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }
.ln-settings-compact .ln-notification-category-settings .ln-notification-setting-row { min-height:48px; padding:2px 0; }
.ln-settings-compact .ln-settings-hint { margin:10px 0 14px; color:var(--ui-muted); font-size:13px; line-height:1.5; }
.ln-settings-compact .ln-install-card { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:0; padding:10px 0; border:0; background:none; box-shadow:none; }
.ln-settings-compact .ln-install-card>div { display:flex; align-items:center; gap:10px; }
.ln-settings-compact .ln-install-card button { min-height:44px; padding:8px 12px; border-radius:12px; }
.ln-settings-compact .ln-pwa-card { background:linear-gradient(125deg,var(--ui-tint),var(--ui-solid)); border-color:var(--ui-tint-text); border-color:color-mix(in srgb,var(--ui-tint-text) 30%,var(--ui-line)); }
.ln-settings-compact .ln-pwa-card__icon { width:36px; height:36px; background:var(--ui-tint-text); color:var(--ui-solid); }
.ln-settings-compact .ln-pwa-card__copy>span { font-weight:400; }
.ln-settings-compact .ln-pwa-card.is-invitation .ln-pwa-button { background:var(--ui-tint-text); color:var(--ui-solid); border:0; font-weight:600; }
.ln-settings-compact .ln-pwa-card.is-connected .ln-pwa-button { background:var(--ui-fill); color:var(--ui-text); }
.ln-settings-compact .ln-install-card { flex-wrap:wrap; }
.ln-settings-compact .ln-install-card small { display:block; margin-top:4px; font-size:12px; color:var(--ui-muted); }
.ln-settings-compact .ln-install-card button { width:auto; flex:none; min-height:44px; padding:10px 16px; font:600 14px/1.4 var(--ui-font); white-space:nowrap; color:var(--ui-tint-text); background:var(--ui-tint); border:0; box-shadow:none; }
.ln-install-guide>details { border-top:1px solid var(--ui-line); }
.ln-install-guide summary { display:flex; align-items:center; flex-wrap:wrap; gap:6px; padding:13px 0; min-height:44px; cursor:pointer; list-style:none; font-size:14px; }
.ln-install-guide summary::-webkit-details-marker { display:none; }
.ln-install-guide summary small { font-size:11px; color:var(--ui-muted); }
.ln-install-guide summary i { margin-left:auto; font-style:normal; }
.ln-install-guide details[open]>summary i { transform:rotate(180deg); }
.ln-install-guide ol { margin:0 0 14px; padding-left:22px; color:var(--ui-muted); font-size:13px; line-height:1.6; }
.ln-install-guide li+li { margin-top:8px; }
.ln-pair-timezone { display:grid; gap:8px; min-width:0; }
.ln-pair-timezone label { display:grid; gap:8px; min-width:0; }
.ln-pair-timezone small { color:var(--ui-muted); line-height:1.5; }
.ln-screen-toast { position:fixed; inset:auto 24px 24px auto; display:flex; align-items:center; gap:14px; width:max-content; max-width:min(440px,calc(100vw - 32px)); margin:0; padding:14px 16px; color:var(--ui-text); background:var(--ui-opaque-solid); border:1px solid var(--ui-line); border-radius:18px; box-shadow:var(--ui-shadow-float); font:400 14px/1.5 var(--ui-font); z-index:2147483647; }
.ln-screen-toast::backdrop { background:transparent; pointer-events:none; }
.ln-screen-toast>span { min-width:0; overflow-wrap:anywhere; }
.ln-screen-toast>button { display:grid; place-items:center; flex:none; width:32px; height:32px; padding:0; border:0; border-radius:10px; font-size:22px; color:var(--ui-muted); background:transparent; cursor:pointer; }

/* Tasks default to rows; all operations and the card view remain available. */
.ln-task-tools-row { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.ln-task-view { display:flex; gap:4px; padding:4px; border:1px solid var(--ui-line); border-radius:16px; background:var(--ui-raised); }
.ln-task-view button { display:grid; place-items:center; min-width:44px; height:44px; padding:8px; border:0; border-radius:12px; color:var(--ui-muted); background:transparent; cursor:pointer; }
.ln-task-view button[aria-pressed=true] { color:var(--ui-tint-text); background:var(--ui-tint); }
.partner-tasks-page .partner-task-summary { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:0; }
.partner-tasks-page .partner-task-summary>article { min-height:0; padding:14px 16px; display:flex; flex-direction:row; justify-content:flex-start; align-items:center; gap:12px; border-radius:18px; }
.partner-tasks-page .partner-task-summary>article>span { width:32px; height:32px; min-width:32px; margin:0; border-radius:10px; background:var(--ui-tint); box-shadow:none; }
.partner-tasks-page .partner-task-summary>article>span svg { width:18px; height:18px; }
.partner-tasks-page .partner-task-summary small { font-size:13px; }
.partner-tasks-page .partner-task-summary b { display:block; font-size:24px; margin:2px 0 0; line-height:1.2; }
.partner-tasks-page .partner-task-summary p { font-size:12px; margin:4px 0 0; }
.partner-tasks-page .partner-task-toolbar { margin:16px 0 10px; gap:10px; }
.partner-task-grid.is-list { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
.partner-task-grid.is-list .partner-task-card {
  display:grid; grid-template-columns:minmax(0,1fr) 180px minmax(170px,220px); column-gap:20px; row-gap:8px;
  align-content:start; min-height:0; padding:16px 18px; border-radius:18px; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none;
}
.partner-task-grid.is-list .partner-task-card-top { grid-column:1; grid-row:1; justify-content:flex-start; flex-wrap:wrap; gap:6px 12px; }
.partner-task-grid.is-list .partner-task-status,.partner-task-grid.is-list .partner-task-category { font-size:12px; padding:0; background:none; }
.partner-task-grid.is-list .partner-task-card h2 { grid-column:1; grid-row:2; margin:0; font-size:17px; line-height:1.4; }
.partner-task-grid.is-list .partner-task-description { grid-column:1; grid-row:3; min-height:0; margin:0; font-size:14px; line-height:1.5; }
.partner-task-grid.is-list .partner-task-details { grid-column:2; grid-row:1/span 3; display:grid; grid-template-columns:minmax(0,1fr); align-content:center; gap:8px; padding:0; margin:0; border:0; }
.partner-task-grid.is-list .partner-task-details>span { display:flex; align-items:center; gap:6px; grid-column:auto; padding:0; border:0; }
.partner-task-grid.is-list .partner-task-details svg { flex-shrink:0; margin:0; width:15px; height:15px; }
.partner-task-grid.is-list .partner-task-details small { display:none; }
.partner-task-grid.is-list .partner-task-details b { margin:0; font-size:13px; }
.partner-task-grid.is-list .partner-task-actions { grid-column:3; grid-row:1/span 3; align-self:center; display:flex; align-items:stretch; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin:0; padding:0; }
.partner-task-grid.is-list .partner-task-actions button { flex:1; min-height:44px; padding:9px 12px; font-size:13px; border-radius:12px; }
.partner-task-grid.is-list .partner-task-waiting { font-size:13px; line-height:1.5; }
.partner-task-grid.is-list .partner-card-history { grid-column:1/-1; padding-top:6px; margin:2px 0 0; }
.partner-task-grid.is-list .partner-card-history-toggle { min-height:36px; font-size:12px; }
.partner-task-grid.is-list .partner-task-reason { grid-column:1/-1; grid-row:4; margin:0; padding:10px 12px; }
@media(max-width:1100px) {
  .partner-task-grid.is-list .partner-task-card { grid-template-columns:minmax(0,1fr) 160px; gap:8px 16px; }
  .partner-task-grid.is-list .partner-task-actions { grid-column:1/-1; grid-row:auto; justify-content:flex-start; }
  .partner-task-grid.is-list .partner-task-actions button { flex:0 1 auto; }
}
@media(max-width:600px) {
  .settings-page .settings-page-header h1 { font-size:28px; }
  .settings-layout { grid-template-columns:48px minmax(0,1fr); gap:10px; }
  .settings-navigation { grid-template-columns:minmax(0,1fr); padding:2px; }
  .settings-navigation a { justify-content:center; gap:0; padding:10px; }
  .settings-navigation a b { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .settings-card,.account-settings-card { padding:16px; }
  .ln-settings-compact .ln-pwa-card { grid-template-columns:28px minmax(0,1fr); padding:14px 12px; gap:10px; }
  .ln-settings-compact .ln-pwa-card__icon { width:28px; height:28px; }
  .ln-settings-compact .ln-pwa-card__copy h3 { font-size:14px; }
  .ln-settings-compact .ln-pwa-button { grid-column:1/-1; width:100%; padding:10px; font-size:14px; }
  .ln-settings-compact .ln-notification-settings-card { padding:0 12px; }
  .ln-settings-compact .ln-notification-category-settings { grid-template-columns:minmax(0,1fr); }
  .ln-settings-compact .ln-quiet-hours { gap:8px; }
  .settings-notifications .ln-quiet-hours { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .settings-notifications .ln-quiet-hours label { flex-direction:column; align-items:stretch; gap:4px; }
  .settings-notifications .ln-quiet-hours>i { display:none; }
  .settings-notifications .ln-quiet-hours input { padding:4px; }
  .partner-tasks-page .partner-task-summary { gap:8px; }
  .partner-tasks-page .partner-task-summary>article { grid-column:auto; padding:12px 10px; flex-direction:column; align-items:flex-start; gap:8px; }
  .partner-tasks-page .partner-task-summary>article>span { display:grid; place-items:center; }
  .partner-tasks-page .partner-task-summary small { font-size:12px; line-height:1.4; display:block; }
  .partner-tasks-page .partner-task-summary b { font-size:20px; }
  .partner-tasks-page .partner-task-summary p { display:none; }
  .partner-tasks-page .partner-task-tabs { flex-wrap:nowrap; }
  .partner-tasks-page .partner-task-tabs button { flex:1 1 auto; min-width:0; min-height:44px; white-space:nowrap; padding:8px 6px; gap:4px; font-size:13px; }
  .partner-tasks-page .partner-task-tabs button>span { min-width:20px; height:20px; padding:2px 4px; font-size:11px; }
  .partner-tasks-page .partner-task-tabs button>svg { display:none; }
  .partner-task-grid.is-list .partner-task-card { grid-template-columns:minmax(0,1fr); padding:14px; gap:8px; }
  .partner-task-grid.is-list .partner-task-card-top,.partner-task-grid.is-list .partner-task-card h2,.partner-task-grid.is-list .partner-task-description { grid-column:1; }
  .partner-task-grid.is-list .partner-task-details { grid-column:1; grid-row:4; display:flex; flex-wrap:wrap; gap:8px 14px; }
  .partner-task-grid.is-list .partner-task-actions { grid-column:1; grid-row:auto; }
  .partner-task-grid.is-list .partner-task-actions button { flex:1; }
  .partner-task-grid.is-list .partner-task-reason { grid-row:5; }
}
@media(max-width:767px) {
  .ln-screen-toast { right:max(12px,env(safe-area-inset-right,0px)); left:max(12px,env(safe-area-inset-left,0px)); bottom:var(--ln-toast-bottom,calc(100px + env(safe-area-inset-bottom,0px))); width:auto; max-width:none; }
  .ln-screen-toast>span { flex:1; }
}
