.service-hours-checking body>:not(#service-hours-status){visibility:hidden!important}
body.sabbath-locked{margin:0;overflow:auto!important;background:#edf3f4}
body.sabbath-locked>:not(#sabbath-lock-screen):not(#service-hours-status){display:none!important}
#sabbath-lock-screen{position:fixed;inset:0;z-index:2147483647;overflow:auto;display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box;background:linear-gradient(145deg,#edf3f4,#faf7ef);font-family:Arial,sans-serif;color:#123847;direction:rtl;text-align:center}
.sabbath-card{box-sizing:border-box;width:min(100%,680px);padding:clamp(18px,4vw,32px);border:1px solid #cbd8dc;border-top:5px solid #a78037;border-radius:24px;background:#fff;box-shadow:0 18px 55px #092b3b20;line-height:1.7}
.sabbath-card h1{font-size:clamp(1.5rem,5vw,2.3rem);font-weight:800;margin:8px 0 18px;color:inherit}.sabbath-card p{margin:12px 0;font-size:1.1rem}.sabbath-card [data-service-opening]{font-weight:800;color:#155d67}.sabbath-card small{display:block;margin-top:24px;color:#4e626b;font-size:.88rem}.sabbath-emblem{font-size:3rem;color:#a78037}
html[data-theme=dark] #sabbath-lock-screen{background:linear-gradient(145deg,#101c24,#1e2f35);color:#e6eef0}html[data-theme=dark] .sabbath-card{background:#172a32;border-color:#40545e;border-top-color:#c8a359}html[data-theme=dark] .sabbath-card [data-service-opening]{color:#8ed9dd}html[data-theme=dark] .sabbath-card small{color:#b5c7ce}
@media(prefers-color-scheme:dark){html:not([data-theme=light]) #sabbath-lock-screen{background:#101c24;color:#e6eef0}html:not([data-theme=light]) .sabbath-card{background:#172a32;border-color:#40545e;border-top-color:#c8a359}html:not([data-theme=light]) .sabbath-card [data-service-opening]{color:#8ed9dd}html:not([data-theme=light]) .sabbath-card small{color:#b5c7ce}}

.sabbath-logo{display:block;max-width:85%;width:230px;height:100px;object-fit:contain;margin:0 auto 6px;background:#fff;border-radius:12px;padding:8px;box-sizing:border-box}.sabbath-table{display:block;width:min(100%,460px);height:auto;margin:0 auto}.sabbath-card h1{margin:0 0 12px}body.sabbath-locked #sabbath-lock-screen{align-items:safe center}

.sabbath-admin{margin-top:22px;border-top:1px solid #91a5ad;padding-top:16px;text-align:right}.sabbath-admin summary{cursor:pointer;font-weight:800;min-height:44px;display:list-item;line-height:44px}.sabbath-admin form{display:grid;gap:12px}.sabbath-admin label{display:grid;gap:6px;font-weight:700}.sabbath-admin input{box-sizing:border-box;width:100%;min-height:46px;padding:10px 12px;border:1px solid #718d99;border-radius:9px;background:#fff;color:#123847;font:inherit}.sabbath-admin button{background:#0d5662;color:#fff;border:0;border-radius:10px;min-height:48px;padding:10px 16px;font:inherit;font-weight:800;cursor:pointer}.sabbath-admin button:disabled{opacity:.6}.sabbath-admin p{font-size:.88rem}.sabbath-admin [data-override-error]{color:#b22c32;font-weight:700;margin:0}.sabbath-admin :focus-visible{outline:3px solid #c5a45f;outline-offset:3px}#service-override-banner{padding:12px 20px;background:#fff1cb;color:#493100;text-align:center;font-weight:800;line-height:1.6;direction:rtl}
html[data-theme=dark] .sabbath-admin [data-override-error]{color:#ffacae}@media(prefers-color-scheme:dark){html:not([data-theme=light]) .sabbath-admin [data-override-error]{color:#ffacae}}

.sabbath-admin[hidden]{display:none!important}.sabbath-admin h2{font-size:1.1rem}.sabbath-admin-toggle{position:fixed;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));z-index:1;display:grid;place-items:center;width:44px;height:44px;border:1px solid #b79a5b;border-radius:12px;background:#fff;color:#123847;cursor:pointer;box-shadow:0 3px 10px #092b3b20}.sabbath-admin-toggle:hover{background:#f4ecd9}.sabbath-admin-toggle:focus-visible{outline:3px solid #0d7181;outline-offset:3px}.sabbath-locked #sabbath-lock-screen{padding-top:70px;padding-bottom:24px}html[data-theme=dark] .sabbath-admin-toggle{background:#20353e;color:#ead395}@media(prefers-color-scheme:dark){html:not([data-theme=light]) .sabbath-admin-toggle{background:#20353e;color:#ead395}}

/* A calendar screen is visible only after the current server state is confirmed. */
#sabbath-lock-screen{display:none}body.service-lock-confirmed #sabbath-lock-screen{display:flex}
#service-hours-status{position:fixed;inset:0;z-index:2147483647;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;background:#edf3f4;color:#19323c;font:18px/1.7 Arial,sans-serif;direction:rtl;text-align:center;box-sizing:border-box}
#service-hours-status button{padding:12px 20px;border:1px solid #526c79;border-radius:10px;background:#0b5269;color:white;font:inherit;cursor:pointer}#service-hours-status button[hidden]{display:none}
html[data-theme=dark] #service-hours-status{background:#101b22;color:#edf3f5}
@media(prefers-color-scheme:dark){html:not([data-theme=light]) #service-hours-status{background:#101b22;color:#edf3f5}}

/* 1.47: shared, local-only design system. Existing controls and behavior remain. */
html:root{
 --bg:#f2f5f8;--surface:#fff;--surface-subtle:#f5f8fa;--surface-hover:#edf4f5;--input-bg:#fff;
 --ink:#173346;--text:var(--ink);--muted:#526777;--line:#c7d5de;--border:var(--line);--panel:var(--surface);
 --navy:#173346;--navy2:#234b63;--primary-bg:#086c72;--on-brand:#fff;--gold:#b47c2e;--cream:#fcf5e9;--accent:#81551c;
 --success:#11694c;--green:var(--success);--success-bg:#e9f6ef;--success-border:#6c9d87;
 --warning:#85520c;--warning-bg:#fff4df;--warning-border:#b79158;--danger:#a72236;--red:var(--danger);--danger-bg:#fff0f2;--danger-border:#b87681;
 --info:#145d83;--info-bg:#e9f4fa;--info-border:#6f9db4;--focus:#147b84;--empty-chart:#dbe5eb;--code-bg:#edf2f6;--code-ink:var(--ink);
 --sidebar-ink:var(--ink);--sidebar-accent:#08736f;--sidebar-bg:#fff;--nav-active:#e0efef;--nav-active-ink:#075f61;
 --action-neutral-bg:#eef3f7;--action-neutral-ink:var(--ink);--action-neutral-border:var(--line);
 --print-bg:#a9530b;--email-bg:#2556a5;--wa-bg:#16713f;--thermal-bg:#075e67;--a4-bg:#3d527a;
 --quick-bg:#d7a14f;--quick-ink:#172b3b;--shadow:0 5px 22px #18364708;--modal-shadow:0 20px 90px #0c1d3633;
 color-scheme:light;background:var(--bg);color:var(--ink)
}
html:root[data-theme=dark]{
 --bg:#0c1722;--surface:#142432;--surface-subtle:#192d3d;--surface-hover:#20394a;--input-bg:#10202d;
 --ink:#edf3f7;--muted:#b0c0cd;--line:#3f596b;--navy:#173346;--navy2:#224a60;--primary-bg:#126d76;
 --gold:#d6ac70;--cream:#30291e;--accent:#e4bd82;--success:#84dbb6;--success-bg:#153c32;--success-border:#528e77;
 --warning:#efc48b;--warning-bg:#392d1d;--warning-border:#9f8159;--danger:#ffb1bc;--danger-bg:#3c2530;--danger-border:#a46a79;
 --info:#9acde8;--info-bg:#19384a;--info-border:#648b9f;--focus:#61cbc6;--empty-chart:#2b4658;--code-bg:#203746;--code-ink:#edf3f7;
 --sidebar-bg:#101f2c;--nav-active:#16474c;--nav-active-ink:#c2f3ed;--sidebar-accent:#63c9c1;
 --action-neutral-bg:#203747;--action-neutral-ink:var(--ink);--action-neutral-border:var(--line);
 --print-bg:#a9530b;--email-bg:#285ba6;--wa-bg:#16713f;--thermal-bg:#075e67;--a4-bg:#3d527a;
 --quick-bg:#d8a45e;--quick-ink:#172b3b;--shadow:0 6px 24px #00000018;--modal-shadow:0 20px 90px #0008;
 color-scheme:dark
}
html body{background:var(--bg);color:var(--ink);font-family:Arial,"Noto Sans Hebrew",sans-serif;line-height:1.55}
html body button,html body input,html body select,html body textarea{font:inherit}
html body :where(input,select,textarea){background:var(--input-bg)!important;color:var(--ink)!important;border:1px solid var(--line);border-radius:11px;min-height:48px;padding:11px 13px;max-width:100%}
html body :where(input,select,textarea):disabled{background:var(--surface-subtle)!important;color:var(--muted)!important}
html body input::placeholder,html body textarea::placeholder{color:var(--muted);opacity:1}
html body input[type=checkbox],html body input[type=radio]{min-height:22px;accent-color:var(--primary-bg)}
html body :where(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--focus);outline-offset:3px;box-shadow:none}
html body button{line-height:1.4;touch-action:manipulation}
html body :where(.panel,.summary,.delivery-card,.auth-card,dialog,.admin-subsection,.settings-fold){background:var(--surface);color:var(--ink);border-color:var(--line);box-shadow:var(--shadow);border-radius:16px}
html body :where(.inline-form,.user-edit-form,.donor-card-stats article,.donor-picker-results button,.donor-picker-new,.field-setting,.device-row,.mfa-secret){background:var(--surface-subtle);color:var(--ink);border-color:var(--line)}
html body .panel{padding:24px}
html body :where(h1,h2,h3,h4){letter-spacing:-.025em;line-height:1.35}
html body :where(.panel-head h3,.panel h3){font-size:1.14rem}
html body :where(.panel-head p,.muted,small){color:var(--muted)}
html body :where(.primary,.secondary,.quick,button[data-gui-icon]){border-radius:10px;box-shadow:none;min-height:46px;font-weight:700}
html body .primary{background:var(--primary-bg);color:var(--on-brand);border:1px solid var(--info-border)}
html body :where(.secondary,.quick:not(.topbar .quick)){background:var(--surface-subtle);color:var(--ink);border:1px solid var(--line)}
html body :where(.primary,.secondary,.quick,button[data-gui-icon]):hover:not(:disabled){filter:brightness(.97);box-shadow:none}
html body button:disabled{opacity:.55;cursor:not-allowed}
html body .app-shell{grid-template-columns:248px minmax(0,1fr)}
html #app .sidebar{background:var(--sidebar-bg);color:var(--ink);border-inline-end:1px solid var(--line);padding:22px 14px;height:100dvh;box-shadow:none}
html #app .sidebar .brand{padding:0 8px 20px;border-color:var(--line)}
html #app .sidebar .brand img{width:64px;height:64px}
html #app .sidebar :where(.brand strong,.brand small,.user-box){color:var(--ink)!important}
html #app .sidebar #nav{gap:5px;padding-block:18px}
html #app .sidebar #nav button[data-view]{background:transparent!important;color:var(--ink)!important;border:1px solid transparent!important;box-shadow:none;border-radius:10px;padding:11px 14px;min-height:48px;font-size:.94rem;gap:12px}
html #app .sidebar #nav button[data-view] .gui-svg-icon{color:var(--muted)!important;opacity:1}
html #app .sidebar #nav button[data-view]:hover{background:var(--surface-hover)!important}
html #app .sidebar #nav button[data-view].active{background:var(--nav-active)!important;color:var(--nav-active-ink)!important;border-inline-start:3px solid var(--sidebar-accent)!important;box-shadow:none}
html #app .sidebar #nav button[data-view].active .gui-svg-icon{color:var(--nav-active-ink)!important}
html #app .sidebar .user-box{border-color:var(--line);padding:15px 8px;gap:8px;flex-wrap:wrap}
html #app .sidebar :is(#logout,#close-menu,#whats-new-button)[data-gui-icon],html #app .sidebar #whats-new-button,html #app .sidebar #logout,html #app .sidebar #close-menu{background:var(--surface-subtle)!important;color:var(--ink)!important;border:1px solid var(--line)!important}
html #app .sidebar :is(#whats-new-button,#logout) .gui-svg-icon{color:var(--ink)!important}
html #app .sidebar #whats-new-button{margin-block-start:10px;padding:10px;min-height:64px;border-radius:12px}
html #app .sidebar .release-notice-trigger small{color:var(--muted)}
html body .topbar{background:var(--surface);border-color:var(--line);height:auto;min-height:84px;padding:16px 28px;gap:14px;box-shadow:none}
html body .topbar h2{font-size:1.42rem}
html body .topbar .quick,html body #issue-receipt{background:var(--quick-bg)!important;color:var(--quick-ink)!important;border:1px solid transparent!important;font-size:.95rem;font-weight:800}
html body .topbar .quick:after{content:none}
html body .topbar :is(#menu,#theme-toggle){color:var(--ink);background:var(--surface-subtle);border:1px solid var(--line);min-width:44px;min-height:44px;border-radius:10px}
html body .global-search input{background:var(--input-bg);min-height:44px}
html body .global-search-results{background:var(--surface);color:var(--ink);border-color:var(--line);box-shadow:var(--modal-shadow)}
html body .content{max-width:1540px;padding:28px;margin-inline:auto}
html body .summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
html body .summary{padding:20px;border:1px solid var(--line);background:var(--surface)!important;color:var(--ink)!important}
html body .summary.primary-card{border-inline-start:3px solid var(--sidebar-accent)}
html body .summary.primary-card:after{display:none}
html body .summary :is(span,small){color:var(--muted)!important}
html body .summary strong{color:var(--ink)!important;font-size:clamp(1.45rem,2.05vw,2rem);font-variant-numeric:tabular-nums;line-height:1.35;margin-block:10px 6px;overflow-wrap:anywhere}
html body .summary-grid .summary{min-width:0}
html body table{color:var(--ink)}
html body th{background:var(--surface-subtle);color:var(--muted);font-size:.84rem;font-weight:700;border-color:var(--line);padding:13px 12px}
html body td{padding:15px 12px;border-color:var(--line);font-size:.9rem;vertical-align:middle}
html body tbody tr:hover{background:var(--surface-hover)}
html body .row-actions{align-items:center;gap:8px;flex-wrap:wrap}
html body .table-sort-button{color:var(--muted);background:transparent;box-shadow:none}
html body :where(.status,.print-job-state){border-radius:7px;background:var(--success-bg);color:var(--success)}
html body :where(.status.cancelled,.state-failed){background:var(--danger-bg);color:var(--danger)}
html body :where(.notice,.sequence-note,#service-override-banner){background:var(--warning-bg);color:var(--warning)!important;border-color:var(--warning-border)}
html body :where(.error,[role=alert],.phone-validation-error){color:var(--danger)}
html body :where(.settings-fold,.admin-subsection,.admin-user-details,.donor-picker-summary,.donor-picker-family){border:1px solid var(--line);background:var(--surface);border-radius:12px;box-shadow:none}
html body :where(.settings-fold>summary,.admin-subsection>summary,.admin-user-details>summary){color:var(--ink);background:var(--surface);padding:15px 18px;min-height:50px}
html body #admin-settings-tabs .admin-tabs{background:var(--surface-subtle);border-color:var(--line);gap:6px;padding:7px;border-radius:12px}
html body #admin-settings-tabs .admin-tabs button{background:transparent!important;color:var(--ink)!important;white-space:normal;min-height:48px;border:1px solid transparent!important}
html body #admin-settings-tabs .admin-tabs button[aria-selected=true]{background:var(--nav-active)!important;color:var(--nav-active-ink)!important;border-color:var(--line)!important}
html body .settings-section-icon{color:var(--sidebar-accent)!important}
html body #admin-data-health-banner{background:var(--surface);border:1px solid var(--line);border-inline-start:3px solid var(--sidebar-accent);box-shadow:none}
html body :where(.reason-choice,.donation-reason-choice,.toggle-card,.donor-management-actions){background:var(--surface-subtle);color:var(--ink);border-color:var(--line)}
html body :where(.donor-management-actions,.device-row,.security-key-row,.print-file-row){overflow-wrap:anywhere}
html body :where(.report-action-dialog,.pledge-payment-dialog,.security-dialog,.family-dialog,.duplicates-dialog,.release-notice,.reason-editor-dialog){background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--line);box-shadow:var(--modal-shadow);max-width:calc(100vw - 24px);max-height:calc(100dvh - 32px);overflow:auto}
html body dialog::backdrop{background:#071322b3;backdrop-filter:blur(3px)}
html body .delivery-modal{background:#071322b3;backdrop-filter:blur(3px);padding:24px;overflow:auto}
html body .delivery-card{background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:var(--modal-shadow);width:min(620px,100%);max-height:calc(100dvh - 48px);overflow:auto;padding:26px;border-radius:18px}
html body .delivery-dialog-header{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:14px;align-items:start;padding:0;margin-block-end:16px}
html body .delivery-dialog-header h2{margin:0;padding:0;font-size:1.35rem;overflow-wrap:anywhere}
html body .delivery-dialog-header .delivery-close{position:static!important;inset:auto!important;transform:none!important;margin:0;width:44px;height:44px;min-width:44px;padding:0;background:var(--surface-subtle)!important;color:var(--ink)!important;border:1px solid var(--line)!important;display:grid;place-items:center}
html body .delivery-card:not(:has(.delivery-dialog-header)){padding-block-start:72px}
html body .delivery-actions{display:flex;flex-wrap:wrap;gap:10px;margin-block:22px}
html body .delivery-actions button{flex:1 1 150px;min-width:0;min-height:56px;white-space:normal;justify-content:center;gap:8px;font-size:.96rem}
html body :is(button,a)[data-email],html body button[data-gui-icon=mail],html body a[href^="mailto:"]{background:var(--email-bg)!important;color:#fff!important;border:1px solid #718fb6!important}
html body :is(button,a)[data-wa],html body button[data-gui-icon=whatsapp],html body a[href*="wa.me"],html body #batch-send-whatsapp,html body #send-reminder{background:var(--wa-bg)!important;color:#fff!important;border:1px solid #649d7b!important}
html body :is(button,a)[data-print],html body button[data-gui-icon=printer],html body [data-format=print],html body #batch-print-receipts{background:var(--print-bg)!important;color:#fff!important;border:1px solid #c79a6b!important}
html body :is([data-email],[data-wa],[data-print],[data-format=print],#batch-print-receipts,#batch-send-whatsapp) .gui-svg-icon{color:inherit!important}
html:root body .receipt-printer-choices{background:var(--surface-subtle);border:1px solid var(--line);border-radius:14px;padding:16px;gap:10px}
html:root body .receipt-printer-choices button.receipt-printer-option.thermal-printer{background:var(--thermal-bg)!important;color:#fff!important;border:1px solid #6faaaa!important}
html:root body .receipt-printer-choices button.receipt-printer-option.a4-printer{background:var(--a4-bg)!important;color:#fff!important;border:1px solid #90a2bf!important}
html:root body .receipt-printer-choices button.receipt-printer-option{display:flex;gap:16px;align-items:center;min-height:84px;width:100%;padding:17px;text-align:start;box-shadow:none;border-radius:11px;white-space:normal}
html:root body .receipt-printer-choices :where(b,small,svg,.gui-svg-icon){color:inherit!important}
html:root body .receipt-printer-choices small{opacity:.92;font-size:.83rem;line-height:1.5}
html body .receipt-printer-option svg{width:34px;height:44px;flex:0 0 34px}
html body button[data-gui-icon=trash]{background:var(--danger-bg)!important;color:var(--danger)!important;border-color:var(--danger-border)!important}
html body button[data-gui-icon=close]{background:var(--surface-subtle)!important;color:var(--ink)!important;border-color:var(--line)!important}
html body .auth-shell{background:var(--bg);padding:30px 18px}
html body .auth-card{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--sidebar-accent);width:min(480px,100%);padding:32px;box-shadow:var(--modal-shadow);border-radius:20px}
html body .auth-logo{width:120px;height:110px;margin-block:0 16px}
html body .auth-card h1{font-size:1.6rem}
html body .auth-card .eyebrow{color:var(--accent)}
html body .password-toggle{color:var(--info);background:var(--surface-subtle)}
html body .release-notice{border-top:3px solid var(--sidebar-accent)}
html body .release-notice header{background:var(--surface-subtle);color:var(--ink)}
html body .release-notice-version{color:var(--accent)}
html body :where(.dual-calendar,.calendar-panel,.calendar-popup){background:var(--surface)!important;color:var(--ink)!important;border-color:var(--line)!important;box-shadow:var(--modal-shadow)}
html body .calendar-day{color:var(--ink);background:var(--surface-subtle)}
html body .calendar-day[aria-selected=true]{background:var(--primary-bg);color:#fff}
html body #chart{display:block;height:auto;padding:0;border:0}
.dashboard-trend svg{width:100%;height:auto;display:block;direction:ltr;min-height:190px}
.dashboard-trend svg line{stroke:var(--line);stroke-width:1}.dashboard-trend svg text{fill:var(--muted);font-size:12px}
.dashboard-trend polyline{fill:none;stroke-width:3}.dashboard-trend .trend-income{stroke:var(--success)}.dashboard-trend .trend-expenses{stroke:var(--warning)}
.dashboard-trend circle.trend-income{fill:var(--success)}.dashboard-trend circle.trend-expenses{fill:var(--warning)}.dashboard-trend polyline.trend-expenses{stroke-dasharray:7 4}
.dashboard-chart-legend{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-block:8px 14px;color:var(--muted);font-size:.9rem}
.dashboard-chart-legend span{display:flex;align-items:center;gap:6px}.dashboard-chart-legend i{width:10px;height:10px;display:inline-block;border-radius:50%}
.legend-income{background:var(--success)}.legend-expenses{background:var(--warning)}
.dashboard-payment-layout{display:grid;grid-template-columns:minmax(160px,.85fr) minmax(0,1fr);gap:24px;align-items:center}
.dashboard-payment-donut{width:min(220px,100%);aspect-ratio:1;border-radius:50%;padding:25px;margin:auto;display:grid;place-items:center}
.dashboard-payment-donut>div{border-radius:50%;background:var(--surface);width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;padding:6px}
.dashboard-payment-donut small{font-size:.76rem}.dashboard-payment-donut b{font-size:1.05rem;font-variant-numeric:tabular-nums}
.dashboard-payment-legend{display:grid;gap:12px;margin:0;padding:0;list-style:none}.dashboard-payment-legend li{display:grid;grid-template-columns:1fr auto;gap:6px;padding-block:8px;border-block-end:1px solid var(--line)}
.dashboard-payment-legend li>span{display:flex;gap:7px;align-items:center;font-size:.9rem}.dashboard-payment-legend li i{width:10px;height:10px;flex:0 0 10px;border-radius:3px}.dashboard-payment-legend li small{grid-column:1/-1}
.dashboard-payment-legend li strong{font-size:.95rem;white-space:nowrap}
html body #sabbath-lock-screen,html body #service-hours-status{background:var(--bg)!important;color:var(--ink)!important}
html body .sabbath-card{background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--line)!important;border-top:3px solid var(--gold)!important;box-shadow:var(--modal-shadow);border-radius:22px;width:min(680px,100%);padding:clamp(20px,4vw,36px)}
html body .sabbath-logo{width:150px;height:130px;background:transparent;padding:5px;margin-block-end:12px}
html body .sabbath-table{max-width:340px;margin:auto}
html body .sabbath-card h1{font-size:clamp(1.8rem,5vw,2.5rem);letter-spacing:0}
html body .sabbath-card [data-service-opening]{color:var(--sidebar-accent)!important;padding:16px;background:var(--surface-subtle);border:1px solid var(--line);border-radius:12px;font-size:1.03rem}
html body .sabbath-card :is(p,small){color:var(--muted)}
html body .sabbath-admin{border-color:var(--line)}
html body .sabbath-admin label{color:var(--ink)}
html body .sabbath-admin button{background:var(--primary-bg);color:var(--on-brand);border:1px solid var(--info-border)}
html body .sabbath-admin [data-service-key]{background:var(--surface-subtle);color:var(--ink);border-color:var(--line)}
html body .sabbath-admin [data-override-error]{color:var(--danger)!important}
html body .sabbath-admin-toggle{background:var(--surface)!important;color:var(--accent)!important;border-color:var(--line)!important;box-shadow:none}
html body #service-hours-status button{background:var(--primary-bg);color:#fff;border-color:var(--info-border)}
@media(min-width:761px){html body .topbar .global-search{max-width:420px;flex:1}.sidebar #nav{overflow-y:auto;min-height:0}.sidebar .brand,.sidebar .user-box,.sidebar #whats-new-button{flex-shrink:0}}
@media(max-width:1100px){.dashboard-payment-layout{grid-template-columns:minmax(0,1fr)}html body .content{padding:22px}.dashboard-payment-donut{width:190px}}
@media(max-width:760px){
 html body .app-shell{display:block}html #app .sidebar{width:min(86vw,310px);max-width:310px;padding:18px 12px;box-shadow:0 0 0 100vmax #06121e88;height:100dvh;overflow:auto}
 html #app .sidebar:not(.open){box-shadow:none}html body .content{padding:16px 12px}html body .panel{padding:18px 14px}
 html body .topbar{padding:12px;gap:9px;flex-wrap:wrap;min-height:70px}.topbar>div:first-of-type{flex:1;min-width:0}html body .topbar h2{font-size:1.13rem}
 html body .topbar .global-search{order:5;width:100%;max-width:none;margin:0}html body .topbar .quick{font-size:.83rem!important;min-height:44px;padding:10px 13px;margin-inline-start:auto;white-space:nowrap}
 html body .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}html body .summary{padding:16px 12px}html body .summary strong{font-size:1.45rem}
 html body .summary small{font-size:.75rem}.panel-head{flex-wrap:wrap}.panel-head>div{min-width:0}.form-grid>*,.inline-form>*{min-width:0}
 html body .range-fields{grid-template-columns:minmax(0,1fr)}html body .row-actions{width:auto;max-width:100%;gap:6px}
 html body .row-actions button,html body .row-actions a{white-space:normal;overflow-wrap:anywhere}
 html body .delivery-modal{padding:12px}html body .delivery-card{padding:20px 16px;max-height:calc(100dvh - 24px)}
 html body .delivery-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}html body .delivery-actions button{width:100%;min-height:52px}
 html body .delivery-dialog-header h2{font-size:1.2rem}html body .receipt-printer-option{min-width:0}.receipt-printer-option span{min-width:0}
 html body :where(.family-dialog,.security-dialog,.reason-editor-dialog,.release-notice){width:calc(100vw - 24px);margin:12px auto;max-height:calc(100dvh - 24px)}
 html body .auth-card{padding:26px 20px}.dashboard-payment-layout{grid-template-columns:minmax(0,1fr)}.dashboard-payment-donut{width:190px}
 html body .sabbath-card{padding:22px 16px}.sabbath-card p{overflow-wrap:anywhere}.sabbath-admin-toggle{width:46px;height:46px}
}
@media(max-width:380px){html body .summary strong{font-size:1.25rem}html body .summary{padding:14px 10px}html body .topbar h2{font-size:1.04rem}html body .topbar .quick{font-size:.78rem!important;padding:10px}.dashboard-payment-legend li{grid-template-columns:1fr}.dashboard-payment-legend li small{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html body *,html body *:before,html body *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(forced-colors:active){html body button{border:1px solid ButtonText!important;forced-color-adjust:auto}}
@media print{html body{background:white;color:black}html body .panel,html body .summary{box-shadow:none;background:white!important;color:black!important}.dashboard-payment-donut{print-color-adjust:exact}.sidebar,.topbar{display:none!important}}

.sabbath-theme-toggle{position:fixed;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));z-index:2;display:grid;place-items:center;width:46px;height:46px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;font-size:24px;cursor:pointer}

.gui-icon-depth{display:none}

html[data-view=dashboard] #daily-summary{margin-block:22px}html[data-view=dashboard] #daily-summary .summary{padding:14px}html[data-view=dashboard] #daily-summary .summary strong{font-size:1.35rem}html[data-view=dashboard] #daily-summary .summary-grid{gap:10px}
.dashboard-primary-row{align-items:stretch}.dashboard-primary-row .dashboard-payment-layout{grid-template-columns:minmax(0,1fr)}.dashboard-primary-row .dashboard-payment-donut{width:170px;padding:20px}.dashboard-primary-row .dashboard-payment-legend{gap:6px}.dashboard-primary-row .dashboard-payment-legend li{padding-block:4px}

@media(max-width:760px){html #app .topbar .quick{width:auto!important;min-width:108px!important;max-width:100%;height:auto;line-height:1.4;flex-shrink:0}html #app .topbar .quick::first-letter{font-size:inherit!important}html #app .topbar #theme-toggle{width:46px;min-width:46px;padding:10px;font-size:0}html #app .topbar #theme-toggle .gui-svg-icon{font-size:20px;margin:0}}

/* 1.47.1: fixed mobile slots keep the theme control separate from the receipt action. */
@media(max-width:760px){
 html #app .topbar{display:grid;grid-template-columns:44px minmax(0,1fr) 48px 112px;grid-template-areas:"menu title theme receipt" "search search search search";column-gap:14px;row-gap:10px;align-items:center}
 html #app .topbar #menu{grid-area:menu;width:44px;min-width:44px!important;padding:6px}
 html #app .topbar>div:first-of-type{grid-area:title;min-width:0;overflow:hidden}
 html #app .topbar .global-search{grid-area:search;width:100%;max-width:none;margin:0}
 html #app .topbar #theme-toggle{grid-area:theme;width:48px;min-width:48px!important;height:48px;padding:10px!important;margin:0;font-size:0!important;line-height:0!important;overflow:hidden;display:grid;place-items:center;white-space:nowrap;gap:0}
 html #app .topbar #theme-toggle::first-letter{font-size:0!important}
 html #app .topbar #theme-toggle>.gui-svg-icon{width:22px;height:22px;min-width:22px;margin:0;display:block}
 html #app .topbar .quick{grid-area:receipt;width:112px!important;min-width:112px!important;max-width:112px;padding:10px 7px!important;margin:0;height:48px;min-height:48px;font-size:.8rem!important;line-height:1.3;display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}
 html #app .topbar .quick>.gui-svg-icon{width:18px;height:18px;flex:0 0 18px;margin:0}
 html #app .topbar h2{max-width:none!important}
}
@media(max-width:360px){html #app .topbar{grid-template-columns:44px minmax(0,1fr) 48px 104px;column-gap:10px}html #app .topbar .quick{width:104px!important;min-width:104px!important;max-width:104px;font-size:.74rem!important}}


/* Modern seasonal calendar gate; shared tokens retain light/dark accessibility. */
html body #sabbath-lock-screen{--lock-accent:#146f79;--lock-tint:#e4f0f2;--lock-edge:#8db9be;background:radial-gradient(ellipse at 14% 5%,var(--lock-tint),transparent 56%),var(--bg)!important;padding:84px 22px 30px;align-items:safe center}
html[data-theme=dark] body #sabbath-lock-screen{--lock-accent:#7ed4d2;--lock-tint:#15323d;--lock-edge:#426b79}
html body #sabbath-lock-screen[data-lock-kind=rosh],html body #sabbath-lock-screen[data-lock-kind=hanukkah]{--lock-accent:#82551a;--lock-tint:#f7efdf;--lock-edge:#c6a775}
html[data-theme=dark] body #sabbath-lock-screen:is([data-lock-kind=rosh],[data-lock-kind=hanukkah]){--lock-accent:#edc588;--lock-tint:#332b23;--lock-edge:#8c754e}
html body #sabbath-lock-screen:is([data-lock-kind=sukkot],[data-lock-kind=fruit]){--lock-accent:#35664a;--lock-tint:#e7f1e8;--lock-edge:#8cad94}
html[data-theme=dark] body #sabbath-lock-screen:is([data-lock-kind=sukkot],[data-lock-kind=fruit]){--lock-accent:#a3d6ad;--lock-tint:#1c342d;--lock-edge:#567560}
html body #sabbath-lock-screen:is([data-lock-kind=purim],[data-lock-kind=shavuot],[data-lock-kind=torah]){--lock-accent:#725386;--lock-tint:#efe9f5;--lock-edge:#b29bc5}
html[data-theme=dark] body #sabbath-lock-screen:is([data-lock-kind=purim],[data-lock-kind=shavuot],[data-lock-kind=torah]){--lock-accent:#d4b7ed;--lock-tint:#2b283e;--lock-edge:#75648c}
html body #sabbath-lock-screen[data-lock-kind=pesach]{--lock-accent:#74602b;--lock-tint:#f4efdf;--lock-edge:#b4a36c}
html[data-theme=dark] body #sabbath-lock-screen[data-lock-kind=pesach]{--lock-accent:#e5ce8e;--lock-tint:#302e24;--lock-edge:#8d8053}
html body #sabbath-lock-screen[data-lock-kind=kippur]{--lock-accent:#4d6a80;--lock-tint:#e9eff5;--lock-edge:#99adbe}
html[data-theme=dark] body #sabbath-lock-screen[data-lock-kind=kippur]{--lock-accent:#b8d0e4;--lock-tint:#23313f;--lock-edge:#647f96}
html body .sabbath-card[data-modern-lock]{width:min(960px,100%);border:1px solid var(--line)!important;border-top:1px solid var(--lock-edge)!important;border-radius:26px;padding:28px 34px;box-shadow:0 20px 70px #081b3020;text-align:start;background:var(--surface)!important}
html body .lock-brand{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding-bottom:18px}
html body .lock-brand .sabbath-logo{width:64px;height:64px;margin:0;padding:0;object-fit:contain;flex:none}
html body .lock-brand-copy{display:flex;flex-direction:column;gap:3px}html body .lock-brand-copy strong{font-size:1.15rem;color:var(--ink)}html body .lock-brand-copy span{font-size:.78rem;color:var(--muted)}
html body .lock-status{margin-inline-start:auto;display:flex;align-items:center;gap:7px;padding:9px 12px;background:var(--lock-tint);color:var(--lock-accent);border:1px solid var(--lock-edge);border-radius:30px;font-size:.77rem;font-weight:700;line-height:1.5}
html body .lock-status svg{width:17px;height:17px;flex:none}
html body .lock-hero{display:grid;grid-template-columns:1.05fr 1fr;gap:30px;align-items:center;padding:34px 0}
html body .lock-message .lock-occasion{font-size:.83rem;color:var(--lock-accent);font-weight:700;margin:0 0 10px;letter-spacing:.035em}
html body .lock-message h1{font-size:clamp(1.9rem,3.1vw,2.7rem);line-height:1.35;margin:0 0 14px;letter-spacing:-.025em;color:var(--ink)}html body .lock-message>p:last-child{font-size:1rem;line-height:1.85;color:var(--muted);margin:0}
html body .lock-art{background:radial-gradient(ellipse,var(--lock-tint) 25%,transparent 73%);border:1px solid var(--lock-edge);border-radius:24px;padding:18px 8px;min-width:0}
html body .lock-art .sabbath-table{width:100%;max-width:none;height:205px;object-fit:contain;display:block;margin:0}
html body .lock-facts{display:grid;grid-template-columns:1.25fr 1fr;gap:16px}
html body .lock-facts>section{background:var(--surface-subtle);border:1px solid var(--line);border-radius:16px;padding:18px 20px;min-width:0}
html body .lock-fact-label{display:block;font-size:.77rem;color:var(--muted);margin-bottom:8px}
html body .lock-facts [data-service-opening]{font-size:.99rem;line-height:1.75;padding:0;margin:0;border:0;background:transparent;color:var(--lock-accent)!important}
html body .lock-facts [data-lock-parasha]{font-size:1.11rem;font-weight:700;line-height:1.6;color:var(--ink);margin:0}
html body .lock-footer{margin-top:22px;padding-top:16px;border-top:1px solid var(--line);text-align:center}html body .lock-footer small{font-size:.76rem;line-height:1.7;margin:0;color:var(--muted)}
html body .sabbath-card[data-modern-lock] .sabbath-admin{margin-top:20px;text-align:start}html body .sabbath-card[data-modern-lock] .sabbath-admin h2{font-size:1.1rem}
html body .sabbath-admin-toggle,html body .sabbath-theme-toggle{background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--line)!important;border-radius:13px}
@media(max-width:660px){
 html body #sabbath-lock-screen{padding:76px 14px 22px;align-items:safe flex-start}
 html body .sabbath-card[data-modern-lock]{padding:18px;border-radius:21px}
 html body .lock-brand{gap:9px;flex-wrap:wrap;padding-bottom:14px}html body .lock-brand .sabbath-logo{width:52px;height:52px}html body .lock-brand-copy strong{font-size:1.04rem}html body .lock-status{font-size:.65rem;padding:7px 9px;max-width:175px}
 html body .lock-hero{display:flex;flex-direction:column-reverse;gap:20px;padding:22px 0;text-align:center}html body .lock-art{width:100%;padding:6px}html body .lock-art .sabbath-table{height:165px}
 html body .lock-message h1{font-size:1.85rem;margin-bottom:10px}html body .lock-message>p:last-child{font-size:.9rem}
 html body .lock-facts{grid-template-columns:1fr;gap:10px}html body .lock-facts>section{padding:14px 16px}html body .lock-facts [data-service-opening]{font-size:.93rem}html body .lock-facts [data-lock-parasha]{font-size:1.06rem}
}
@media(max-width:380px){html body .lock-status{margin-inline-start:0;max-width:none;width:100%;justify-content:center}html body .lock-hero{padding:16px 0}html body .lock-art .sabbath-table{height:140px}}
