/* ==========================================================
   ShullBooks Global Styles
   ========================================================== */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root{
    --primary:#1c3d5a;
    --primary-dark:#122a3f;
    --primary-light:#2f5a82;
    --danger:#b91c1c;
    --danger-dark:#991b1b;
    --success-bg:#dcfce7;
    --success-text:#166534;
    --danger-bg:#fee2e2;
    --danger-text:#991b1b;
    --warning-bg:#fef3c7;
    --warning-text:#92400e;
    --background:#f4f6f9;
    --white:#ffffff;
    --border:#e2e8f0;
    --text:#1f2937;
    --muted:#64748b;
    --shadow-sm:0 1px 2px rgba(15,23,42,.06);
    --shadow:0 2px 8px rgba(15,23,42,.08);
    --shadow-lg:0 8px 20px rgba(15,23,42,.12);
    --radius:6px;
    --radius-sm:4px;
}

body{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    -webkit-font-smoothing:antialiased;
    background:var(--background);
    color:var(--text);
    line-height:1.5;
}

h1, h2, h3{
    font-weight:700;
    letter-spacing:-.01em;
}

/* Layout */

.wrapper{
    display:flex;
    min-height:100vh;
}

.sidebar{
    width:230px;
    flex-shrink:0;
    position:sticky;
    top:0;
    height:100vh;
    background:var(--primary-dark);
    color:white;
}

.logo{
    padding:14px 20px;
    text-align:center;
    background:var(--white);
    border-bottom:1px solid rgba(255,255,255,.12);
}

.logo-img{
    display:inline-block;
    height:50px;
    width:auto;
    max-width:100%;
}

.menu-title{
    padding:18px 25px 6px;
    font-size:10.5px;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.07em;
    opacity:.5;
}

.menu-group{
    display:block;
}

summary.menu-title{
    cursor:pointer;
    user-select:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    list-style:none;
}

summary.menu-title::-webkit-details-marker{
    display:none;
}

summary.menu-title::marker{
    content:"";
}

summary.menu-title::after{
    content:"";
    width:5px;
    height:5px;
    margin-right:2px;
    border-right:1.5px solid rgba(255,255,255,.5);
    border-bottom:1.5px solid rgba(255,255,255,.5);
    transform:rotate(45deg);
    transition:transform .15s;
}

.menu-group[open] summary.menu-title::after{
    transform:rotate(-135deg);
}

summary.menu-title:hover{
    opacity:.75;
}

.sidebar a{
    display:block;
    padding:9px 25px;
    margin:0 8px;
    border-radius:2px;
    color:rgba(255,255,255,.78);
    text-decoration:none;
    font-size:13.5px;
    transition:background-color .1s, color .1s;
}

.sidebar a:hover{
    background:rgba(255,255,255,.08);
    color:white;
}

.sidebar a.active{
    background:rgba(255,255,255,.14);
    color:white;
    font-weight:600;
}

.sidebar a.sidebar-sublink{
    padding-left:40px;
    font-size:13px;
}

.main{
    flex:1;
    min-width:0;
}

.header{
    min-height:70px;
    background:white;
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    padding:0 30px;
    border-bottom:1px solid var(--border);
}

.header h2{
    font-size:19px;
    font-weight:700;
}

.header-title{
    display:flex;
    align-items:center;
    gap:12px;
}

.header-actions{
    display:flex;
    align-items:center;
    gap:15px;
    flex-wrap:wrap;
    justify-content:flex-end;
    font-size:14px;
    color:var(--muted);
}

.mobile-nav-toggle{
    display:none;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    border:none;
    border-radius:var(--radius-sm);
    background:var(--background);
    color:var(--primary);
    font-size:20px;
    cursor:pointer;
    flex-shrink:0;
}

.sidebar-backdrop{
    display:none;
}

.content{
    padding:32px;
    position:relative;
    min-height:calc(100vh - 70px);
    background-image:url(../img/watermark.png);
    background-repeat:no-repeat;
    background-position:right -40px bottom -40px;
    background-size:420px auto;
    background-attachment:fixed;
}

/* Cards */

.card{
    background:white;
    border-radius:var(--radius);
    padding:28px;
    box-shadow:var(--shadow-sm);
    border:1px solid var(--border);
    margin-bottom:24px;
}

.card:last-child{
    margin-bottom:0;
}

.card h2{
    font-size:18px;
}

.card h3{
    font-size:15px;
    letter-spacing:.01em;
}

.card ul{
    list-style:none;
    max-height:260px;
    overflow-y:auto;
    border:1px solid var(--border);
    border-radius:var(--radius-sm);
    padding:10px 14px;
    margin-top:5px;
}

.card ul li{
    padding:4px 0;
    font-size:14px;
}

/* Dashboard */

.dashboard-hero{
    background:var(--primary-dark);
    color:white;
    border:none;
}

.dashboard-hero h1{
    margin-bottom:8px;
    font-size:24px;
}

.dashboard-hero p{
    opacity:.8;
}

.stat-tiles{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
    gap:20px;
    margin-bottom:24px;
}

.stat-tile{
    background:white;
    border-radius:var(--radius);
    box-shadow:var(--shadow-sm);
    border:1px solid var(--border);
    padding:22px;
    text-align:center;
}

.stat-tile-value{
    font-size:30px;
    font-weight:700;
    color:var(--primary);
    letter-spacing:-.02em;
}

.stat-tile-label{
    color:var(--muted);
    margin-top:6px;
    font-size:13px;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.stat-tile-link{
    display:block;
    text-decoration:none;
    transition:.15s;
}

.stat-tile-link:hover{
    box-shadow:var(--shadow);
    border-color:var(--primary);
}

.stat-tile-danger .stat-tile-value{
    color:var(--danger);
}

.stat-tile-success .stat-tile-value{
    color:var(--success-text);
}

.quick-actions-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
    gap:14px;
    margin-top:16px;
}

.quick-action-tile{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:14px 15px;
    background:var(--background);
    border:1px solid var(--border);
    border-radius:var(--radius-sm);
    text-decoration:none;
    color:var(--text);
    font-weight:600;
    font-size:13.5px;
    text-align:center;
    transition:background-color .1s, color .1s, border-color .1s;
}

.quick-action-tile:hover{
    background:var(--primary);
    border-color:var(--primary);
    color:white;
}

/* Dashboard charts */

.dashboard-charts{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px;
    align-items:start;
}

@media (max-width: 900px){
    .dashboard-charts{
        grid-template-columns:1fr;
    }
}

.bar-chart-columns{
    display:flex;
    align-items:flex-end;
    gap:12px;
    height:160px;
    margin-top:20px;
    padding-bottom:10px;
    border-bottom:1px solid var(--border);
}

.bar-chart-col{
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-end;
    height:100%;
    gap:8px;
}

.bar-chart-bar{
    width:100%;
    max-width:34px;
    border-radius:3px 3px 0 0;
    min-height:2px;
}

.bar-chart-label{
    font-size:11.5px;
    color:var(--muted);
    text-transform:uppercase;
    letter-spacing:.03em;
}

.hbar-row{
    display:flex;
    align-items:center;
    gap:14px;
    margin-top:16px;
}

.hbar-row:first-of-type{
    margin-top:20px;
}

.hbar-label{
    width:130px;
    flex-shrink:0;
    font-size:13px;
    color:var(--text);
}

.hbar-track{
    flex:1;
    background:var(--background);
    border-radius:3px;
    height:12px;
}

.hbar-fill{
    height:100%;
    border-radius:3px;
    min-width:3px;
}

.hbar-value{
    width:100px;
    flex-shrink:0;
    text-align:right;
    font-size:13px;
    font-weight:600;
    color:var(--text);
}

.status-badges{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:16px;
}

.status-badge{
    padding:4px 10px;
    border-radius:3px;
    font-size:12.5px;
    font-weight:600;
}

.status-ok{
    background:var(--success-bg);
    color:var(--success-text);
}

.status-pending{
    background:var(--warning-bg);
    color:var(--warning-text);
}

.status-danger{
    background:var(--danger-bg);
    color:var(--danger-text);
}

/* Buttons */

.btn{
    display:inline-block;
    padding:8px 16px;
    border:1px solid transparent;
    border-radius:var(--radius-sm);
    cursor:pointer;
    text-decoration:none;
    color:white;
    background:var(--primary);
    font-size:13.5px;
    font-weight:600;
    transition:background-color .1s;
}

.btn:hover{
    background:var(--primary-dark);
}

.btn:active{
    background:var(--primary-dark);
}

.btn-danger{
    background:var(--primary);
}

.btn-danger:hover{
    background:var(--primary-dark);
}

.btn-secondary{
    background:var(--primary);
    color:white;
    border:none;
    box-shadow:var(--shadow-sm);
}

.btn-secondary:hover{
    background:var(--primary-dark);
    box-shadow:var(--shadow);
}

/* Tables */

table{
    width:100%;
    margin-top:20px;
    border-collapse:collapse;
    font-size:14.5px;
}

table th{
    background:var(--background);
    padding:12px 14px;
    text-align:left;
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:var(--muted);
    border-bottom:1px solid var(--border);
}

table td{
    padding:14px;
    border-bottom:1px solid var(--border);
}

table tbody tr:hover td,
table tr:hover td{
    background:var(--background);
}

table tr.clickable-row{
    cursor:pointer;
}

/* Settings Tabs */

.settings-tabs{
    display:flex;
    gap:5px;
    margin-bottom:20px;
    border-bottom:1px solid var(--border);
}

.settings-tab{
    display:inline-block;
    padding:12px 20px;
    text-decoration:none;
    color:var(--muted);
    font-weight:600;
    font-size:14.5px;
    border-bottom:3px solid transparent;
    transition:.15s;
}

.settings-tab:hover{
    color:var(--primary);
}

.settings-tab.active{
    color:var(--primary);
    border-bottom-color:var(--primary);
}

.settings-subtabs{
    display:flex;
    gap:5px;
    margin-bottom:16px;
}

.settings-subtab{
    display:inline-block;
    padding:6px 14px;
    text-decoration:none;
    color:var(--muted);
    font-weight:600;
    font-size:13px;
    border-radius:16px;
    background:var(--background);
    transition:.15s;
}

.settings-subtab:hover{
    color:var(--primary);
}

.settings-subtab.active{
    color:#fff;
    background:var(--primary);
}

/* Forms */

.form-card{
    max-width:800px;
}

.form-card-wide{
    max-width:1100px;
}

.bulk-aliya-table .searchable-select-wrapper{
    max-width:260px;
}

.bulk-aliya-table input[type=number]{
    max-width:120px;
}

.bulk-aliya-table .misheberach-field input[type=number]{
    max-width:70px;
}

.form-group{
    margin-bottom:20px;
}

.form-group label{
    display:block;
    margin-bottom:8px;
    font-weight:600;
    font-size:14px;
}

.form-section-title{
    font-size:12.5px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:var(--muted);
    margin:30px 0 15px;
    padding-bottom:8px;
    border-bottom:1px solid var(--border);
}

.status-section-summary{
    cursor:pointer;
    list-style:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin:0;
}

.status-section-summary::-webkit-details-marker{
    display:none;
}

.status-section-summary::after{
    content:"\25B8";
    font-size:11px;
    color:var(--muted);
    transition:transform .15s;
}

details.status-section[open] > .status-section-summary::after{
    transform:rotate(90deg);
}

details.status-section table{
    margin-top:15px;
}

.form-section-title:first-child{
    margin-top:0;
}

.filter-bar{
    display:flex;
    align-items:flex-end;
    flex-wrap:wrap;
    gap:16px;
    margin:20px 0;
}

.filter-bar-inline{
    margin:0;
}

.filter-bar .form-group{
    margin-bottom:0;
    min-width:200px;
}

.filter-bar .searchable-select-wrapper{
    min-width:200px;
}

.filter-actions{
    display:flex;
    gap:8px;
    min-width:0 !important;
}

.form-row{
    display:flex;
    gap:20px;
    flex-wrap:wrap;
}

.form-row .form-group{
    flex:1;
    min-width:200px;
}

.form-subfield{
    margin-left:15px;
    padding-left:15px;
    border-left:3px solid var(--primary-light);
}

input,
select,
textarea{
    width:100%;
    max-width:450px;
    padding:10px 12px;
    border:1px solid var(--border);
    border-radius:var(--radius-sm);
    font-size:14.5px;
    font-family:inherit;
    color:var(--text);
    background:white;
}

input:focus,
select:focus,
textarea:focus{
    outline:none;
    border-color:var(--primary-light);
    box-shadow:0 0 0 3px rgba(28,61,90,.12);
}

input[readonly]{
    background:var(--background);
    color:var(--muted);
    cursor:not-allowed;
}

input[type=checkbox]{
    width:auto;
    margin-right:8px;
}

input[type=number]{
    -moz-appearance:textfield;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button{
    -webkit-appearance:none;
    margin:0;
}

.amount-field{
    display:flex;
    align-items:center;
    gap:6px;
}

.amount-field .amount-prefix{
    font-weight:600;
    color:var(--muted);
}

small{
    display:block;
    color:var(--muted);
    margin-top:5px;
    font-size:13px;
}

.field-error{
    color:var(--danger-dark);
    margin-top:5px;
    font-size:13px;
}

/* Alerts */

.alert-success,
.alert-error{
    padding:12px 16px;
    border-radius:var(--radius-sm);
    margin-bottom:20px;
    font-size:14.5px;
    border-left:3px solid transparent;
}

.alert-success{
    background:var(--success-bg);
    color:var(--success-text);
    border-left-color:#22c55e;
}

.alert-error{
    background:var(--danger-bg);
    color:var(--danger-text);
    border-left-color:var(--danger);
}

/* Searchable Select */

.searchable-select-wrapper{
    position:relative;
    max-width:450px;
}

select.searchable-select-hidden{
    display:none;
}

.searchable-select-dropdown{
    position:absolute;
    top:calc(100% + 4px);
    left:0;
    right:0;
    z-index:20;
    background:var(--white);
    border:1px solid var(--border);
    border-radius:var(--radius-sm);
    box-shadow:var(--shadow-lg);
    max-height:220px;
    overflow-y:auto;
}

.searchable-select-option{
    padding:10px 12px;
    cursor:pointer;
    font-size:14.5px;
}

.searchable-select-option:hover,
.searchable-select-option.active{
    background:var(--background);
}

.searchable-select-add-option{
    color:var(--primary);
    font-weight:600;
    border-top:1px solid var(--border);
}

/* Modal */

.modal-backdrop{
    display:none;
    position:fixed;
    inset:0;
    align-items:center;
    justify-content:center;
    background:rgba(15,23,42,.5);
    z-index:200;
}

.modal-backdrop:not([hidden]){
    display:flex;
}

.modal{
    background:var(--white);
    border-radius:var(--radius);
    box-shadow:var(--shadow-lg);
    padding:28px;
    width:90%;
    max-width:400px;
}

.modal h3{
    margin-bottom:20px;
    font-size:17px;
}

.modal-wide{
    max-width:480px;
}

.export-column-list{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px 16px;
    margin-top:8px;
}

/* Bulk Aliya Table */

.bulk-aliya-table th,
.bulk-aliya-table td{
    padding:10px 12px;
    vertical-align:middle;
}

.bulk-aliya-table .col-aliya{
    width:60px;
}

.bulk-aliya-table .col-amount{
    width:90px;
}

.guest-toggle,
.no-misheberach-toggle,
.checkbox-toggle{
    display:flex;
    align-items:center;
    gap:5px;
    font-weight:normal;
    font-size:13px;
    color:var(--muted);
    white-space:nowrap;
    cursor:pointer;
}

.guest-toggle input[type=checkbox],
.no-misheberach-toggle input[type=checkbox],
.checkbox-toggle input[type=checkbox]{
    margin:0;
}

.member-field-wrapper{
    display:flex;
    align-items:center;
    gap:8px;
}

.recipient-field{
    display:flex;
    align-items:center;
    gap:10px;
}

.misheberach-field{
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:8px;
}

/* Parnes Hashabbos board */

.parnes-board-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
    gap:16px;
    direction:rtl;
}

.parnes-card{
    display:flex;
    flex-direction:column;
    gap:10px;
    background:white;
    border:1px solid var(--border);
    border-radius:var(--radius);
    box-shadow:var(--shadow-sm);
    padding:18px;
    direction:ltr;
}

.parnes-card-assigned{
    border-color:var(--primary);
}

.parnes-card-dates{
    display:flex;
    justify-content:space-between;
    font-size:12.5px;
    color:var(--muted);
}

.parnes-card-label{
    font-size:16px;
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:0;
}

.parnes-card-label-en{
    font-size:12.5px;
    color:var(--muted);
    margin-top:-6px;
}

.parnes-card-tag{
    font-size:11px;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:var(--muted);
    background:var(--background);
    border:1px solid var(--border);
    border-radius:20px;
    padding:2px 8px;
}

.parnes-card-body{
    flex:1;
}

.parnes-card-member a{
    font-weight:600;
}

.parnes-card-reason{
    font-size:13px;
    color:var(--muted);
}

.parnes-card-amount{
    display:flex;
    align-items:center;
    gap:8px;
    font-weight:600;
}

.parnes-card-unassigned p{
    color:var(--muted);
    font-style:italic;
}

.parnes-card-actions{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}

.parnes-card-actions .btn{
    padding:7px 12px;
    font-size:13px;
}

/* Reports */

.report-totals{
    display:flex;
    flex-wrap:wrap;
    gap:24px;
}

.report-total-item{
    display:flex;
    flex-direction:column;
    gap:2px;
}

.report-total-item strong{
    font-size:20px;
}

.report-total-item span{
    font-size:12.5px;
    color:var(--muted);
}

/* Responsive */

@media (max-width:900px){

    .mobile-nav-toggle{
        display:inline-flex;
    }

    .sidebar{
        position:fixed;
        top:0;
        left:0;
        bottom:0;
        width:260px;
        max-width:80%;
        overflow-y:auto;
        transform:translateX(-100%);
        transition:transform .25s ease;
        z-index:110;
    }

    .wrapper.sidebar-open .sidebar{
        transform:translateX(0);
    }

    .sidebar-backdrop{
        display:none;
        position:fixed;
        inset:0;
        background:rgba(15,23,42,.5);
        z-index:100;
    }

    .wrapper.sidebar-open .sidebar-backdrop{
        display:block;
    }

    .header{
        padding:15px;
    }

    .content{
        padding:20px;
    }

    table{
        display:block;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
    }

    .bulk-aliya-table .searchable-select-wrapper{
        max-width:180px;
    }

    .bulk-aliya-table input[type=number]{
        max-width:90px;
    }

}

@media (max-width:480px){

    .card{
        padding:20px;
    }

    .content{
        padding:15px;
    }

    .header-welcome{
        display:none;
    }

    .btn{
        padding:10px 14px;
        font-size:14px;
    }

    table th,
    table td{
        padding:10px;
        font-size:14px;
    }

}

/* ==========================================================
   2026 interface refresh
   Shared visual system for the application and public screens
   ========================================================== */

:root{
    --primary:#123c4a;
    --primary-dark:#0b2c37;
    --primary-light:#1d6977;
    --accent:#b8893f;
    --accent-soft:#f8f1e5;
    --danger:#b83a45;
    --danger-dark:#912b35;
    --success:#27795d;
    --success-bg:#e8f5ef;
    --success-text:#1f684f;
    --danger-bg:#fcecee;
    --danger-text:#9b303a;
    --warning-bg:#fff5dd;
    --warning-text:#8a631b;
    --background:#f4f7f7;
    --surface-subtle:#f8faf9;
    --white:#ffffff;
    --border:#dce5e5;
    --border-strong:#cbd8d9;
    --text:#172b31;
    --muted:#687b80;
    --shadow-sm:0 1px 2px rgba(10,43,53,.04);
    --shadow:0 8px 24px rgba(10,43,53,.07);
    --shadow-lg:0 22px 55px rgba(10,43,53,.16);
    --radius:12px;
    --radius-sm:8px;
}

html{
    color-scheme:light;
}

body{
    font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    font-size:15px;
    font-weight:400;
    line-height:1.55;
    background:var(--background);
}

button,
input,
select,
textarea{
    font-weight:400;
}

table{
    font-weight:400;
}

a{
    color:var(--primary-light);
    text-underline-offset:2px;
}

a:hover{
    color:var(--primary);
}

h1,h2,h3{
    color:var(--text);
    line-height:1.2;
    letter-spacing:-.025em;
}

hr{
    height:1px;
    border:0;
    background:var(--border);
}

/* App shell */

.sidebar{
    width:264px;
    display:flex;
    flex-direction:column;
    overflow-y:auto;
    background:
        radial-gradient(circle at 10% 0%,rgba(58,128,137,.24),transparent 28%),
        linear-gradient(180deg,#103b48 0%,#0b2c37 100%);
    box-shadow:8px 0 32px rgba(7,35,43,.08);
}

.logo{
    display:flex;
    align-items:center;
    gap:12px;
    min-height:84px;
    padding:17px 20px;
    text-align:left;
    background:rgba(255,255,255,.98);
    border-bottom:1px solid rgba(10,43,53,.09);
    text-decoration:none;
}

.logo-mark-wrap{
    width:44px;
    height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    overflow:hidden;
    border-radius:11px;
    background:var(--surface-subtle);
    border:1px solid var(--border);
}

.logo-img{
    width:38px;
    height:38px;
    object-fit:contain;
}

.brand-copy{
    display:flex;
    flex-direction:column;
    min-width:0;
}

.brand-copy strong{
    color:var(--primary-dark);
    font-size:17px;
    letter-spacing:-.02em;
}

.brand-copy span{
    color:var(--muted);
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.sidebar-nav{
    flex:1;
    padding:10px 0 18px;
}

.menu-title{
    padding:17px 20px 7px;
    font-size:10px;
    font-weight:700;
    letter-spacing:.13em;
    color:rgba(255,255,255,.48);
    opacity:1;
}

.sidebar a{
    display:flex;
    align-items:center;
    gap:11px;
    min-height:42px;
    padding:9px 13px;
    margin:2px 10px;
    border:1px solid transparent;
    border-radius:9px;
    color:rgba(255,255,255,.76);
    font-size:13.5px;
    font-weight:500;
}

.sidebar a:hover{
    color:#fff;
    background:rgba(255,255,255,.075);
}

.sidebar a.active{
    color:#fff;
    background:rgba(255,255,255,.13);
    border-color:rgba(255,255,255,.09);
    box-shadow:0 4px 14px rgba(0,0,0,.08);
}

.sidebar a.active::after{
    content:"";
    width:4px;
    height:4px;
    margin-left:auto;
    border-radius:50%;
    background:#d7b36f;
    box-shadow:0 0 0 4px rgba(215,179,111,.12);
}

.sidebar a.sidebar-sublink{
    padding-left:13px;
    font-size:13.5px;
}

.nav-icon{
    width:23px;
    height:23px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    border-radius:6px;
    color:rgba(255,255,255,.66);
    background:rgba(255,255,255,.06);
    font-size:14px;
    line-height:1;
}

.sidebar a.active .nav-icon,
.sidebar a:hover .nav-icon{
    color:#fff;
    background:rgba(255,255,255,.1);
}

.sidebar-footer{
    display:flex;
    align-items:center;
    gap:10px;
    margin:0 14px 16px;
    padding:14px 8px 0;
    border-top:1px solid rgba(255,255,255,.1);
    text-decoration:none;
    border-radius:8px;
    transition:background .15s ease;
}

a.sidebar-footer:hover{
    background:rgba(255,255,255,.06);
}

.sidebar-avatar{
    width:34px;
    height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    border-radius:9px;
    color:var(--primary-dark);
    background:#dcebed;
    font-size:13px;
    font-weight:800;
}

.sidebar-user-copy{
    display:flex;
    flex-direction:column;
    min-width:0;
}

.sidebar-user-copy strong{
    overflow:hidden;
    color:#fff;
    font-size:12.5px;
    font-weight:600;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.sidebar-user-copy span{
    color:rgba(255,255,255,.48);
    font-size:11px;
}

.sidebar-credit{
    display:block;
    margin:4px 14px 14px;
    text-align:center;
    color:rgba(255,255,255,.3);
    font-size:11px;
    font-weight:600;
    letter-spacing:.06em;
    text-decoration:none;
}

.sidebar-credit:hover{
    color:rgba(255,255,255,.6);
}

.main{
    background:var(--background);
}

.header{
    min-height:76px;
    padding:0 36px;
    position:sticky;
    top:0;
    z-index:40;
    background:rgba(255,255,255,.92);
    border-bottom:1px solid rgba(203,216,217,.85);
    backdrop-filter:blur(12px);
}

.header h2{
    font-size:21px;
    color:var(--primary-dark);
}

.header-welcome{
    display:inline-flex;
    padding:5px 9px;
    border-radius:20px;
    color:var(--muted);
    background:var(--surface-subtle);
    border:1px solid var(--border);
    font-size:11px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.mobile-nav-toggle{
    flex-direction:column;
    gap:4px;
}

.mobile-nav-toggle span{
    width:18px;
    height:2px;
    border-radius:2px;
    background:currentColor;
}

.content{
    width:100%;
    max-width:1600px;
    min-height:calc(100vh - 76px);
    padding:34px 38px 48px;
    margin:0 auto;
    background-image:
        linear-gradient(rgba(244,247,247,.93),rgba(244,247,247,.93)),
        url(../img/watermark.png);
    background-size:auto,480px auto;
}

/* Surfaces and typography */

.card{
    padding:25px 27px;
    margin-bottom:22px;
    border:1px solid rgba(203,216,217,.82);
    border-radius:var(--radius);
    box-shadow:var(--shadow-sm);
}

.card:hover{
    border-color:var(--border-strong);
}

.card h2{
    font-size:19px;
}

.card h3{
    font-size:16px;
}

.eyebrow{
    display:block;
    margin-bottom:6px;
    color:var(--primary-light);
    font-size:10.5px;
    font-weight:800;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.section-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-bottom:18px;
}

.text-link{
    color:var(--primary-light);
    font-size:13px;
    font-weight:700;
    text-decoration:none;
}

/* Dashboard */

.dashboard-hero{
    min-height:150px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    padding:30px 32px;
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at 88% 8%,rgba(215,179,111,.25),transparent 28%),
        linear-gradient(125deg,#0c303b,#185564);
    box-shadow:0 14px 34px rgba(11,44,55,.16);
}

.dashboard-hero::after{
    content:"";
    width:190px;
    height:190px;
    position:absolute;
    right:-65px;
    top:-100px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:50%;
}

.dashboard-hero h1{
    margin-bottom:7px;
    color:#fff;
    font-size:27px;
}

.dashboard-hero .eyebrow{
    color:#d8bd86;
}

.dashboard-hero p{
    color:rgba(255,255,255,.7);
    opacity:1;
}

.hero-date{
    padding:7px 14px;
    position:relative;
    z-index:1;
    border:1px solid rgba(255,255,255,.15);
    border-radius:12px;
    color:rgba(255,255,255,.78);
    background:rgba(255,255,255,.07);
    font-size:12px;
    text-align:center;
}

.hero-date-hebrew{
    display:block;
    margin-top:2px;
    direction:rtl;
    color:rgba(255,255,255,.55);
    font-size:12px;
}

.attention-banner{
    display:flex;
    align-items:center;
    gap:13px;
    padding:14px 17px;
    margin-bottom:14px;
    border:1px solid #efd7a8;
    border-radius:10px;
    color:var(--text);
    background:#fffbf1;
    text-decoration:none;
}

.attention-banner:hover{
    color:var(--text);
    border-color:#dfbd78;
    box-shadow:var(--shadow-sm);
}

.attention-icon{
    width:28px;
    height:28px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    color:#805b16;
    background:#f4dfb4;
    font-weight:800;
}

.attention-banner div{
    display:flex;
    flex:1;
    flex-direction:column;
}

.attention-banner strong{
    font-size:13.5px;
}

.attention-banner div span{
    color:var(--muted);
    font-size:12px;
}

.attention-arrow{
    color:#9a722c;
    font-size:18px;
}

.stat-tiles{
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
    gap:14px;
    margin-bottom:22px;
}

.stat-tile{
    padding:20px 18px;
    position:relative;
    overflow:hidden;
    text-align:left;
    border-color:rgba(203,216,217,.82);
    border-radius:11px;
}

.stat-tile::before{
    content:"";
    width:3px;
    position:absolute;
    inset:16px auto 16px 0;
    border-radius:0 3px 3px 0;
    background:#aec5c9;
}

.stat-tile-value{
    color:var(--primary-dark);
    font-size:27px;
}

.stat-tile-label{
    margin-top:5px;
    color:var(--muted);
    font-size:10.5px;
    letter-spacing:.08em;
}

.stat-tile-link:hover{
    border-color:#9ebcc1;
    box-shadow:var(--shadow);
    transform:translateY(-1px);
}

.stat-tile-danger::before{
    background:#d36b73;
}

.stat-tile-success::before{
    background:#58a488;
}

.financial-tiles{
    margin:0;
}

.quick-actions-grid{
    grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
    gap:10px;
    margin-top:0;
}

.quick-action-tile{
    justify-content:space-between;
    padding:13px 14px;
    color:var(--primary-dark);
    background:var(--surface-subtle);
    border-color:var(--border);
    border-radius:9px;
    text-align:left;
}

.quick-action-tile::after{
    content:"→";
    color:#8aa4a8;
    font-size:16px;
}

.quick-action-tile:hover{
    color:#fff;
    background:var(--primary);
    border-color:var(--primary);
}

.quick-action-tile:hover::after{
    color:#fff;
}

.dashboard-charts{
    gap:22px;
}

.bar-chart-columns{
    border-bottom-color:var(--border-strong);
}

.hbar-track{
    height:10px;
    background:#edf2f1;
}

/* Actions */

.btn{
    min-height:36px;
    padding:8px 14px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    border:1px solid var(--primary);
    border-radius:7px;
    background:var(--primary);
    box-shadow:0 1px 2px rgba(11,44,55,.09);
    font-size:12.5px;
    line-height:1.2;
    transition:background-color .15s,border-color .15s,box-shadow .15s,transform .15s;
}

.btn:hover{
    color:#fff;
    background:var(--primary-light);
    border-color:var(--primary-light);
    box-shadow:0 4px 10px rgba(18,60,74,.14);
    transform:translateY(-1px);
}

.btn:active{
    transform:translateY(0);
}

.btn-secondary{
    color:var(--primary);
    background:#fff;
    border:1px solid var(--border-strong);
    box-shadow:none;
}

.btn-secondary:hover{
    color:var(--primary-dark);
    background:#f2f7f6;
    border-color:#9eb8bc;
}

.btn-danger{
    color:var(--danger-text);
    background:#fff;
    border-color:#efc8cc;
}

.btn-danger:hover{
    color:#fff;
    background:var(--danger);
    border-color:var(--danger);
}

.btn-compact{
    min-height:32px;
    padding:6px 11px;
}

/* Data tables */

.card > table,
.card > form + table{
    margin-right:-27px;
    margin-left:-27px;
    width:calc(100% + 54px);
}

table{
    margin-top:18px;
    font-size:13.5px;
}

table th{
    padding:11px 13px;
    color:#6b7e82;
    background:#f7f9f9;
    border-top:1px solid var(--border);
    border-bottom:1px solid var(--border);
    font-size:10px;
    letter-spacing:.08em;
}

table td{
    padding:13px;
    border-bottom:1px solid #e7eded;
    vertical-align:middle;
}

table tr:last-child td{
    border-bottom:0;
}

table tbody tr:hover td,
table tr:hover td{
    background:#f9fbfa;
}

.clickable-row{
    cursor:pointer;
}

table td .btn{
    min-height:30px;
    padding:6px 10px;
    font-size:11.5px;
}

.status-badge{
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:3px 9px;
    border-radius:20px;
    font-size:10.5px;
    letter-spacing:.02em;
}

/* Forms */

.form-card{
    max-width:880px;
}

.form-group{
    margin-bottom:19px;
}

.form-group label{
    margin-bottom:6px;
    color:#31484e;
    font-size:12.5px;
}

.form-section-title{
    margin:31px 0 18px;
    padding-bottom:9px;
    color:var(--primary-light);
    border-bottom-color:var(--border);
    font-size:10.5px;
    letter-spacing:.11em;
}

input,
select,
textarea{
    min-height:42px;
    padding:9px 11px;
    border-color:var(--border-strong);
    border-radius:7px;
    color:var(--text);
    background:#fff;
    font-size:13.5px;
    transition:border-color .15s,box-shadow .15s,background-color .15s;
}

textarea{
    min-height:105px;
    resize:vertical;
}

input:hover,
select:hover,
textarea:hover{
    border-color:#aac0c3;
}

input:focus,
select:focus,
textarea:focus{
    border-color:var(--primary-light);
    box-shadow:0 0 0 3px rgba(29,105,119,.11);
}

input[type=checkbox],
input[type=radio]{
    min-height:auto;
    accent-color:var(--primary-light);
}

small{
    color:#77898d;
    font-size:11.5px;
}

.filter-bar{
    padding:17px;
    margin:18px 0 0;
    gap:13px;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--surface-subtle);
}

.settings-tabs{
    gap:2px;
    padding:5px;
    margin-bottom:22px;
    overflow-x:auto;
    border:1px solid var(--border);
    border-radius:10px;
    background:#fff;
}

.settings-tab{
    padding:9px 15px;
    border:0;
    border-radius:7px;
    font-size:12.5px;
    white-space:nowrap;
}

.settings-tab.active{
    color:#fff;
    background:var(--primary);
}

.settings-subtabs{
    gap:7px;
}

/* Feedback and overlays */

.alert-success,
.alert-error,
.alert-warning,
.alert-info{
    padding:13px 15px;
    border:1px solid transparent;
    border-left-width:4px;
    border-radius:9px;
    box-shadow:var(--shadow-sm);
    font-size:13px;
}

.alert-success{
    border-color:#bfe1d2;
}

.alert-error{
    border-color:#efc5ca;
}

.alert-warning{
    color:var(--warning-text);
    background:var(--warning-bg);
    border-color:#ecd79b;
}

.alert-info{
    color:var(--primary);
    background:#eaf3f4;
    border-color:#bfd6d9;
}

.modal-backdrop{
    padding:20px;
    background:rgba(7,31,38,.62);
    backdrop-filter:blur(4px);
}

.modal{
    padding:26px;
    border:1px solid rgba(255,255,255,.7);
    border-radius:14px;
}

.modal h3{
    margin-bottom:18px;
    color:var(--primary-dark);
    font-size:18px;
}

.searchable-select-dropdown{
    padding:5px;
    border-radius:9px;
}

.searchable-select-option{
    border-radius:6px;
}

/* Auth and public pages */

.auth-page{
    min-height:100vh;
    display:grid;
    grid-template-columns:minmax(320px,44%) 1fr;
    background:#fff;
}

.auth-panel{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:42px;
}

.auth-card{
    width:100%;
    max-width:410px;
}

.auth-brand{
    display:flex;
    align-items:center;
    gap:11px;
    margin-bottom:38px;
}

.auth-brand img{
    width:44px;
    height:44px;
    padding:3px;
    object-fit:contain;
    border:1px solid var(--border);
    border-radius:11px;
}

.auth-brand-copy{
    display:flex;
    flex-direction:column;
}

.auth-brand-copy strong{
    color:var(--primary-dark);
    font-size:18px;
}

.auth-brand-copy span{
    color:var(--muted);
    font-size:11px;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.auth-card h1{
    margin-bottom:8px;
    font-size:28px;
}

.auth-card > .subtitle{
    margin-bottom:28px;
    color:var(--muted);
}

.auth-card label{
    display:block;
    margin:15px 0 6px;
    color:#31484e;
    font-size:12.5px;
    font-weight:700;
}

.auth-card input:not([type=checkbox]){
    max-width:none;
}

.auth-submit{
    width:100%;
    min-height:44px;
    margin-top:22px;
}

.auth-link,
.forgot-link,
.back-link{
    display:block;
    margin-top:18px;
    color:var(--primary-light);
    font-size:13px;
    font-weight:600;
    text-align:center;
}

.auth-visual{
    display:flex;
    align-items:flex-end;
    padding:60px;
    position:relative;
    overflow:hidden;
    color:#fff;
    background:
        radial-gradient(circle at 75% 25%,rgba(215,179,111,.24),transparent 24%),
        linear-gradient(145deg,#0b2c37,#185968);
}

.auth-visual::before,
.auth-visual::after{
    content:"";
    position:absolute;
    border:1px solid rgba(255,255,255,.1);
    border-radius:50%;
}

.auth-visual::before{
    width:460px;
    height:460px;
    right:-150px;
    top:-170px;
}

.auth-visual::after{
    width:260px;
    height:260px;
    right:30px;
    top:-55px;
}

.auth-visual-copy{
    max-width:470px;
    position:relative;
    z-index:1;
}

.auth-visual-copy span{
    color:#d8bd86;
    font-size:11px;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.auth-visual-copy h2{
    margin:9px 0 12px;
    color:#fff;
    font-size:34px;
}

.auth-visual-copy p{
    color:rgba(255,255,255,.66);
}

.checkbox-row{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:17px;
}

.checkbox-row label{
    margin:0;
    font-weight:500;
}

.resend-form{
    margin-top:17px;
    text-align:center;
}

.resend-form button{
    border:0;
    color:var(--primary-light);
    background:transparent;
    font:inherit;
    font-size:13px;
    font-weight:600;
    cursor:pointer;
}

.public-page{
    min-height:100vh;
    padding:56px 20px;
    background:
        radial-gradient(circle at 90% 5%,rgba(184,137,63,.1),transparent 22%),
        var(--background);
}

.public-shell{
    max-width:760px;
    margin:0 auto;
}

/* Responsive refinements */

@media (max-width:1100px){
    .sidebar{
        width:240px;
    }

    .content{
        padding-right:26px;
        padding-left:26px;
    }
}

@media (max-width:900px){
    .sidebar{
        width:280px;
    }

    .header{
        min-height:68px;
        padding:12px 20px;
    }

    .content{
        padding:22px 20px 38px;
    }

    .auth-page{
        display:block;
        background:var(--background);
    }

    .auth-panel{
        min-height:100vh;
        padding:28px 20px;
    }

    .auth-card{
        padding:27px;
        border:1px solid var(--border);
        border-radius:14px;
        background:#fff;
        box-shadow:var(--shadow);
    }

    .auth-visual{
        display:none;
    }
}

@media (max-width:640px){
    .card{
        padding:20px 18px;
    }

    .card > table,
    .card > form + table{
        margin-right:-18px;
        margin-left:-18px;
        width:calc(100% + 36px);
    }

    .dashboard-hero{
        min-height:170px;
        align-items:flex-start;
        flex-direction:column;
    }

    .dashboard-hero h1{
        font-size:23px;
    }

    .section-heading{
        align-items:flex-start;
        flex-direction:column;
    }

    .stat-tiles{
        grid-template-columns:1fr 1fr;
    }

    .form-row{
        gap:0;
    }

    .form-row .form-group{
        flex-basis:100%;
    }

    .report-totals{
        gap:16px;
    }
}

@media (max-width:420px){
    .stat-tiles{
        grid-template-columns:1fr;
    }

    .header-actions{
        gap:7px;
    }

    .header-welcome{
        display:none;
    }
}

/* ==========================================================
   Mobile workflow optimisation
   ========================================================== */

.page-toolbar,
.account-summary{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
}

.page-toolbar{
    align-items:center;
    margin-bottom:20px;
}

.toolbar-actions,
.action-bar{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
}

.metric-strip{
    display:flex;
    flex-wrap:wrap;
    gap:30px;
    margin-bottom:25px;
}

.metric-strip > div{
    min-width:110px;
}

.metric-strip strong{
    color:var(--muted);
    font-size:11px;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.balance-panel{
    flex:0 0 auto;
    text-align:right;
}

@media (max-width:900px){
    body.nav-open{
        overflow:hidden;
        touch-action:none;
    }

    .sidebar{
        max-width:min(86vw,300px);
        box-shadow:18px 0 48px rgba(4,27,34,.3);
    }

    .sidebar-backdrop{
        background:rgba(5,28,35,.58);
        backdrop-filter:blur(3px);
    }

    .wrapper.sidebar-open .sidebar-backdrop{
        animation:mobile-fade-in .18s ease-out;
    }

    .mobile-nav-toggle{
        min-width:42px;
        min-height:42px;
        border:1px solid var(--border);
        background:#fff;
    }

    .header-title{
        min-width:0;
    }

    .header-title h2{
        overflow:hidden;
        font-size:18px;
        text-overflow:ellipsis;
        white-space:nowrap;
    }

    .header-actions form{
        margin:0;
    }

    .content{
        max-width:100vw;
        overflow-x:hidden;
    }

    table{
        max-width:calc(100vw - 40px);
        overflow-x:auto;
        overflow-y:hidden;
        overscroll-behavior-inline:contain;
        scrollbar-color:#afc2c5 #edf2f1;
        scrollbar-width:thin;
        -webkit-overflow-scrolling:touch;
    }

    table::-webkit-scrollbar{
        height:7px;
    }

    table::-webkit-scrollbar-track{
        background:#edf2f1;
    }

    table::-webkit-scrollbar-thumb{
        border-radius:10px;
        background:#afc2c5;
    }

    table th,
    table td{
        min-width:max-content;
        white-space:nowrap;
    }

    table td:nth-child(n+2){
        max-width:270px;
        overflow:hidden;
        text-overflow:ellipsis;
    }

    table td .btn{
        min-height:36px;
    }

    .bulk-aliya-table{
        min-width:980px;
    }

    .filter-bar{
        align-items:stretch;
    }

    .filter-bar .form-group,
    .filter-bar .searchable-select-wrapper{
        flex:1 1 220px;
    }

    .modal{
        max-height:calc(100dvh - 32px);
        overflow-y:auto;
        overscroll-behavior:contain;
    }
}

@media (max-width:640px){
    .header{
        min-height:62px;
        padding:9px 14px;
        flex-wrap:nowrap;
    }

    .header-title{
        gap:9px;
    }

    .header h2{
        max-width:58vw;
        font-size:17px;
    }

    .header-actions .btn{
        min-height:38px;
        padding:7px 10px;
    }

    .content{
        min-height:calc(100vh - 62px);
        padding:16px 12px 32px;
        background-image:none;
    }

    .card{
        padding:18px 15px;
        margin-bottom:14px;
        border-radius:11px;
    }

    .card:hover{
        border-color:rgba(203,216,217,.82);
    }

    .card > table,
    .card > form + table{
        max-width:calc(100vw - 24px);
        width:calc(100% + 30px);
        margin-right:-15px;
        margin-left:-15px;
    }

    .card > table::after{
        content:"";
        display:block;
        width:14px;
        height:1px;
    }

    .card h2{
        font-size:18px;
    }

    .card h3{
        font-size:15px;
    }

    .page-toolbar,
    .account-summary{
        align-items:stretch;
        flex-direction:column;
        gap:15px;
    }

    .page-toolbar{
        margin-bottom:16px;
    }

    .toolbar-actions,
    .action-bar{
        display:grid;
        width:100%;
        grid-template-columns:1fr 1fr;
        gap:8px;
    }

    .toolbar-actions .btn,
    .action-bar > .btn,
    .action-bar > button,
    .action-bar > form,
    .action-bar > form .btn{
        width:100%;
    }

    .action-bar > form{
        display:block !important;
        margin:0;
    }

    .metric-strip{
        display:grid;
        grid-template-columns:repeat(3,1fr);
        gap:0;
        margin-bottom:20px;
        overflow:hidden;
        border:1px solid var(--border);
        border-radius:9px;
        background:var(--surface-subtle);
    }

    .metric-strip > div{
        min-width:0;
        padding:12px 10px;
        border-right:1px solid var(--border);
    }

    .metric-strip > div:last-child{
        border-right:0;
    }

    .metric-strip strong{
        display:block;
        overflow:hidden;
        font-size:9px;
        text-overflow:ellipsis;
        white-space:nowrap;
    }

    .balance-panel{
        padding:13px 14px;
        text-align:left;
        border:1px solid var(--border);
        border-radius:9px;
        background:var(--surface-subtle);
    }

    .balance-panel h3{
        color:var(--muted);
        font-size:10px;
        letter-spacing:.07em;
        text-transform:uppercase;
    }

    .card > div[style*="display:flex"],
    .card > div[style*="display: flex"]{
        align-items:stretch !important;
        flex-direction:column;
        gap:14px !important;
    }

    .card div[style*="text-align:right"],
    .card div[style*="text-align: right"]{
        text-align:left !important;
    }

    .card h1[style]{
        font-size:26px;
    }

    .dashboard-hero{
        min-height:156px;
        padding:23px 20px;
        margin-bottom:14px;
    }

    .dashboard-hero p{
        max-width:270px;
        font-size:13px;
    }

    .hero-date{
        padding:5px 9px;
        font-size:11px;
    }

    .attention-banner{
        margin-bottom:10px;
    }

    .stat-tiles{
        gap:10px;
        margin-bottom:14px;
    }

    .stat-tile{
        min-height:100px;
        padding:16px 14px;
    }

    .stat-tile-value{
        font-size:24px;
    }

    .quick-actions-grid{
        grid-template-columns:1fr;
    }

    .quick-action-tile{
        min-height:46px;
    }

    .dashboard-charts{
        gap:14px;
    }

    .bar-chart-columns{
        gap:7px;
        height:145px;
        overflow-x:auto;
    }

    .bar-chart-col{
        min-width:40px;
    }

    .hbar-row{
        display:grid;
        grid-template-columns:minmax(90px,1fr) auto;
        gap:5px 10px;
    }

    .hbar-label,
    .hbar-value{
        width:auto;
    }

    .hbar-track{
        grid-column:1 / -1;
        grid-row:2;
    }

    .form-card,
    .form-card-wide{
        max-width:none;
    }

    .form-group,
    .filter-bar .form-group{
        min-width:0;
        width:100%;
    }

    input,
    select,
    textarea,
    .searchable-select-wrapper{
        width:100%;
        max-width:none;
        font-size:16px;
    }

    input,
    select{
        min-height:46px;
    }

    input[type=checkbox],
    input[type=radio]{
        width:18px;
        height:18px;
        min-height:18px;
        flex:0 0 18px;
    }

    .checkbox-toggle,
    .guest-toggle,
    .no-misheberach-toggle{
        min-height:38px;
        gap:8px;
        white-space:normal;
    }

    .recipient-field,
    .member-field-wrapper,
    .misheberach-field{
        align-items:stretch;
        flex-direction:column;
    }

    .filter-bar{
        padding:14px;
        gap:11px;
        flex-direction:column;
    }

    .filter-actions{
        width:100%;
        display:grid;
        grid-template-columns:1fr 1fr;
    }

    .filter-actions .btn{
        width:100%;
    }

    .settings-tabs{
        margin-right:-12px;
        margin-left:-12px;
        padding:5px 12px;
        border-right:0;
        border-left:0;
        border-radius:0;
        scroll-snap-type:x proximity;
    }

    .settings-tab{
        min-height:40px;
        display:flex;
        align-items:center;
        scroll-snap-align:start;
    }

    .report-totals{
        display:grid;
        width:100%;
        grid-template-columns:1fr 1fr;
    }

    .report-total-item{
        padding:11px;
        border:1px solid var(--border);
        border-radius:8px;
        background:var(--surface-subtle);
    }

    .parnes-board-grid{
        grid-template-columns:1fr;
    }

    .parnes-card{
        padding:16px;
    }

    .modal-backdrop{
        padding:0;
        align-items:flex-end;
    }

    .modal{
        width:100%;
        max-width:none;
        max-height:92dvh;
        padding:22px 18px calc(20px + env(safe-area-inset-bottom));
        border-radius:16px 16px 0 0;
        animation:mobile-sheet-in .22s ease-out;
    }

    .modal .btn{
        min-height:44px;
    }

    .export-column-list{
        grid-template-columns:1fr;
    }

    .auth-panel{
        padding:18px 12px;
    }

    .auth-card{
        padding:24px 20px;
    }

    .auth-brand{
        margin-bottom:30px;
    }

    .auth-card h1{
        font-size:25px;
    }

    .public-page{
        padding:20px 12px;
    }
}

@media (max-width:420px){
    .header h2{
        max-width:52vw;
    }

    .stat-tiles{
        grid-template-columns:1fr 1fr;
    }

    .financial-tiles{
        grid-template-columns:1fr;
    }

    .stat-tile-label{
        line-height:1.35;
    }

    .attention-banner{
        padding:12px 13px;
    }

    .attention-arrow{
        display:none;
    }

    .report-totals{
        grid-template-columns:1fr;
    }

    .toolbar-actions,
    .action-bar{
        grid-template-columns:1fr;
    }

    .metric-strip{
        grid-template-columns:1fr;
    }

    .metric-strip > div{
        border-right:0;
        border-bottom:1px solid var(--border);
    }

    .metric-strip > div:last-child{
        border-bottom:0;
    }
}

@keyframes mobile-fade-in{
    from{opacity:0}
    to{opacity:1}
}

@keyframes mobile-sheet-in{
    from{transform:translateY(24px);opacity:.6}
    to{transform:translateY(0);opacity:1}
}

@media (prefers-reduced-motion:reduce){
    *,
    *::before,
    *::after{
        scroll-behavior:auto !important;
        animation-duration:.01ms !important;
        animation-iteration-count:1 !important;
        transition-duration:.01ms !important;
    }
}

/* ==========================================================
   Member account workflow
   ========================================================== */

.member-overview-card{
    padding:0;
    overflow:hidden;
}

.member-overview{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:26px;
    padding:27px;
}

.member-identity{
    display:flex;
    align-items:center;
    gap:15px;
    min-width:0;
}

.member-avatar{
    width:52px;
    height:52px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    border:1px solid #bcd2d5;
    border-radius:14px;
    color:var(--primary);
    background:#e7f1f2;
    font-size:16px;
    font-weight:800;
    letter-spacing:.03em;
}

.member-identity-copy{
    min-width:0;
}

.member-name-row{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:9px;
}

.member-name-row h2{
    font-size:22px;
}

.member-contact-list{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    margin-top:7px;
    color:var(--muted);
    font-size:12.5px;
}

.member-contact-list a{
    color:var(--muted);
    text-decoration:none;
}

.member-contact-list a:hover{
    color:var(--primary-light);
    text-decoration:underline;
}

.contact-divider{
    width:3px;
    height:3px;
    border-radius:50%;
    background:#a8b9bc;
}

.member-balance{
    min-width:195px;
    padding:14px 17px;
    display:flex;
    align-items:flex-end;
    flex-direction:column;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--surface-subtle);
}

.member-balance > span{
    color:var(--muted);
    font-size:10px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.member-balance > strong{
    margin:2px 0;
    color:var(--text);
    font-size:27px;
    line-height:1.15;
}

.member-balance.has-balance{
    border-color:#efcdd0;
    background:#fff9f9;
}

.member-balance.has-balance > strong,
.text-danger{
    color:var(--danger-text);
}

.member-balance.is-clear{
    border-color:#c9e2d7;
    background:#f7fcf9;
}

.member-balance.is-clear > strong,
.text-success{
    color:var(--success-text);
}

.member-metrics{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    border-top:1px solid var(--border);
    border-bottom:1px solid var(--border);
    background:#fbfcfc;
}

.member-metrics > div{
    padding:16px 27px;
    display:flex;
    flex-direction:column;
    border-right:1px solid var(--border);
}

.member-metrics > div:last-child{
    border-right:0;
}

.member-metrics span{
    color:var(--muted);
    font-size:10px;
    font-weight:700;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.member-metrics strong{
    margin-top:3px;
    font-size:17px;
}

.member-preferences{
    padding:20px 27px 23px;
    display:grid;
    align-items:center;
    grid-template-columns:minmax(180px,.7fr) minmax(480px,2fr);
    gap:24px;
}

.member-preferences-heading .eyebrow{
    margin-bottom:4px;
}

.preference-controls{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.preference-controls form{
    min-width:0;
}

.preference-control{
    width:100%;
    min-height:66px;
    padding:11px 13px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    border:1px solid var(--border);
    border-radius:9px;
    color:var(--text);
    background:#fff;
    font:inherit;
    text-align:left;
    cursor:pointer;
    transition:border-color .15s,background-color .15s,box-shadow .15s;
}

.preference-control:hover{
    border-color:#a9c0c3;
    background:#fbfdfc;
    box-shadow:var(--shadow-sm);
}

.preference-control:focus-visible,
.workflow-button:focus-visible{
    outline:3px solid rgba(29,105,119,.18);
    outline-offset:2px;
}

.preference-copy{
    display:flex;
    min-width:0;
    flex-direction:column;
}

.preference-copy strong{
    font-size:12.5px;
}

.preference-copy small{
    overflow:hidden;
    margin:2px 0 0;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.toggle-switch{
    width:38px;
    height:22px;
    padding:2px;
    display:flex;
    align-items:center;
    flex:0 0 auto;
    border-radius:20px;
    background:#c7d2d4;
    transition:background-color .18s;
}

.toggle-switch span{
    width:18px;
    height:18px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 1px 3px rgba(12,44,53,.25);
    transition:transform .18s;
}

.toggle-switch.is-on{
    background:var(--success);
}

.toggle-switch.is-on span{
    transform:translateX(16px);
}

.section-hint{
    color:var(--muted);
    font-size:12px;
}

.member-action-groups{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(245px,1fr));
    gap:13px;
}

.member-action-group{
    padding:15px;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--surface-subtle);
}

.action-group-collect{
    border-color:#ead5aa;
    background:#fffbf3;
}

.action-group-heading{
    display:flex;
    margin-bottom:11px;
    flex-direction:column;
}

.action-group-heading > span{
    color:var(--text);
    font-size:12px;
    font-weight:800;
    letter-spacing:.055em;
    text-transform:uppercase;
}

.action-group-heading small{
    margin-top:2px;
}

.action-group-buttons{
    display:flex;
    flex-direction:column;
    gap:7px;
}

.action-group-buttons form{
    width:100%;
}

.workflow-button{
    width:100%;
    min-height:54px;
    padding:9px 10px;
    display:flex;
    align-items:center;
    gap:10px;
    border:1px solid var(--border);
    border-radius:8px;
    color:var(--text);
    background:#fff;
    box-shadow:none;
    font:inherit;
    text-align:left;
    text-decoration:none;
    cursor:pointer;
    transition:border-color .15s,background-color .15s,transform .15s,box-shadow .15s;
}

.workflow-button:hover{
    color:var(--text);
    border-color:#a9c0c3;
    background:#fbfdfc;
    box-shadow:0 4px 12px rgba(10,43,53,.06);
    transform:translateY(-1px);
}

.workflow-button-primary{
    color:#fff;
    border-color:var(--primary);
    background:var(--primary);
}

.workflow-button-primary:hover{
    color:#fff;
    border-color:var(--primary-light);
    background:var(--primary-light);
}

.workflow-icon{
    width:30px;
    height:30px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    border-radius:7px;
    color:var(--primary-light);
    background:#edf4f4;
    font-size:15px;
    font-weight:700;
}

.workflow-button-primary .workflow-icon{
    color:#fff;
    background:rgba(255,255,255,.13);
}

.workflow-button > span:last-child{
    display:flex;
    min-width:0;
    flex-direction:column;
}

.workflow-button strong{
    font-size:12.5px;
    line-height:1.25;
}

.workflow-button small{
    margin:2px 0 0;
    font-size:10.5px;
    line-height:1.25;
}

.workflow-button-primary small{
    color:rgba(255,255,255,.7);
}

@media (max-width:900px){
    .member-preferences{
        grid-template-columns:1fr;
        gap:13px;
    }
}

@media (max-width:640px){
    .member-overview{
        padding:20px 16px;
        align-items:stretch;
        flex-direction:column;
    }

    .member-avatar{
        width:44px;
        height:44px;
        border-radius:11px;
    }

    .member-name-row{
        align-items:flex-start;
    }

    .member-name-row h2{
        font-size:19px;
    }

    .member-contact-list{
        align-items:flex-start;
        flex-direction:column;
        gap:3px;
    }

    .contact-divider{
        display:none;
    }

    .member-balance{
        min-width:0;
        align-items:flex-start;
    }

    .member-metrics{
        grid-template-columns:1fr 1fr;
    }

    .member-metrics > div{
        padding:13px 16px;
    }

    .member-metrics > div:nth-child(2){
        border-right:0;
    }

    .member-metrics > div:last-child{
        grid-column:1 / -1;
        border-top:1px solid var(--border);
    }

    .member-preferences{
        padding:18px 16px;
    }

    .preference-controls{
        grid-template-columns:1fr;
    }

    .preference-copy small{
        white-space:normal;
    }

    .member-workflow-card .section-heading{
        margin-bottom:14px;
    }

    .section-hint{
        margin-top:-8px;
    }

    .member-action-groups{
        grid-template-columns:1fr;
    }

    .workflow-button{
        min-height:58px;
    }
}

@media (max-width:390px){
    .member-identity{
        align-items:flex-start;
    }

    .member-avatar{
        display:none;
    }
}

/* ==========================================================
   Member export dialog
   ========================================================== */

body.modal-open{
    overflow:hidden;
}

.export-modal{
    width:min(94vw,660px);
    max-width:660px;
    padding:0;
    overflow:hidden;
}

.export-modal-header{
    padding:21px 23px 18px;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    border-bottom:1px solid var(--border);
    background:#fbfcfc;
}

.export-modal-heading{
    display:flex;
    align-items:flex-start;
    gap:12px;
}

.export-modal-heading h3{
    margin:0 0 4px;
    font-size:19px;
}

.export-modal-heading p{
    max-width:430px;
    color:var(--muted);
    font-size:12.5px;
}

.export-modal-icon{
    width:37px;
    height:37px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    border-radius:9px;
    color:#fff;
    background:var(--primary);
    font-size:17px;
    font-weight:700;
}

.modal-close{
    width:34px;
    height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    border:1px solid transparent;
    border-radius:8px;
    color:var(--muted);
    background:transparent;
    font-size:24px;
    line-height:1;
    cursor:pointer;
}

.modal-close:hover{
    color:var(--text);
    border-color:var(--border);
    background:#fff;
}

.modal-close:focus-visible,
.text-button:focus-visible,
.export-column-option:focus-within,
.export-format-option:focus-within{
    outline:3px solid rgba(29,105,119,.16);
    outline-offset:2px;
}

.export-modal form{
    padding:0;
}

.export-step{
    padding:20px 23px 22px;
    border-bottom:1px solid var(--border);
}

.export-step-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:14px;
}

.export-step-heading > div{
    display:flex;
    align-items:center;
    gap:10px;
}

.export-step-heading > div > span:last-child{
    display:flex;
    flex-direction:column;
}

.export-step-heading strong{
    font-size:13px;
}

.export-step-heading small{
    margin:1px 0 0;
}

.export-step-number{
    width:25px;
    height:25px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    border-radius:50%;
    color:var(--primary);
    background:#e7f1f2;
    font-size:11px;
    font-weight:800;
}

.text-button{
    padding:5px 7px;
    border:0;
    border-radius:6px;
    color:var(--primary-light);
    background:transparent;
    font:inherit;
    font-size:11.5px;
    font-weight:700;
    cursor:pointer;
}

.text-button:hover{
    color:var(--primary);
    background:#edf4f4;
}

.export-column-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:0;
}

.export-column-option{
    min-height:42px;
    padding:8px 10px;
    display:flex;
    align-items:center;
    gap:9px;
    border:1px solid var(--border);
    border-radius:8px;
    color:#40565b;
    background:#fff;
    font-size:12.5px;
    cursor:pointer;
    transition:border-color .15s,background-color .15s;
}

.export-column-option:hover{
    border-color:#abc0c3;
    background:#fafcfc;
}

.export-column-option:has(input:checked){
    color:var(--primary-dark);
    border-color:#a9c8cc;
    background:#f3f9f9;
}

.export-column-option input,
.export-format-option input{
    width:1px;
    height:1px;
    position:absolute;
    overflow:hidden;
    opacity:0;
    pointer-events:none;
}

.export-check{
    width:20px;
    height:20px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    border:1px solid #bccacc;
    border-radius:5px;
    color:transparent;
    background:#fff;
    font-size:12px;
    font-weight:800;
}

.export-column-option input:checked + .export-check{
    color:#fff;
    border-color:var(--primary-light);
    background:var(--primary-light);
}

.export-format-options{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
}

.export-format-option{
    min-height:68px;
    padding:11px;
    display:grid;
    align-items:center;
    grid-template-columns:auto 1fr auto;
    gap:10px;
    border:1px solid var(--border);
    border-radius:9px;
    background:#fff;
    cursor:pointer;
    transition:border-color .15s,background-color .15s,box-shadow .15s;
}

.export-format-option:hover{
    border-color:#abc0c3;
}

.export-format-option:has(input:checked){
    border-color:var(--primary-light);
    background:#f4f9f9;
    box-shadow:0 0 0 1px rgba(29,105,119,.08);
}

.format-icon{
    width:38px;
    height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:8px;
    color:#a3363e;
    background:#fbecee;
    font-size:9px;
    font-weight:800;
    letter-spacing:.03em;
}

.format-icon-excel{
    color:#267354;
    background:#e8f5ef;
}

.export-format-option > span:nth-of-type(2){
    display:flex;
    min-width:0;
    flex-direction:column;
}

.export-format-option strong{
    font-size:12.5px;
}

.export-format-option small{
    margin:2px 0 0;
    font-size:10.5px;
}

.format-radio{
    width:18px;
    height:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid #b9c7c9;
    border-radius:50%;
    background:#fff;
}

.format-radio::after{
    content:"";
    width:8px;
    height:8px;
    border-radius:50%;
    background:transparent;
}

.export-format-option input:checked ~ .format-radio{
    border-color:var(--primary-light);
}

.export-format-option input:checked ~ .format-radio::after{
    background:var(--primary-light);
}

.export-modal-footer{
    padding:15px 23px;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    background:#fbfcfc;
}

.export-modal-footer .btn{
    min-width:100px;
}

.export-submit{
    min-width:155px !important;
}

@media (max-width:640px){
    .export-modal{
        width:100%;
        max-width:none;
    }

    .export-modal-header{
        padding:19px 17px 15px;
    }

    .export-modal-heading p{
        font-size:11.5px;
    }

    .export-step{
        padding:17px;
    }

    .export-column-list,
    .export-format-options{
        grid-template-columns:1fr;
    }

    .export-column-list{
        max-height:34dvh;
        padding:2px;
        overflow-y:auto;
        overscroll-behavior:contain;
    }

    .export-column-option{
        min-height:46px;
    }

    .export-modal-footer{
        padding:13px 17px calc(13px + env(safe-area-inset-bottom));
        display:grid;
        grid-template-columns:1fr 1.4fr;
    }

    .export-modal-footer .btn{
        width:100%;
        min-width:0 !important;
    }
}

@media (max-width:390px){
    .export-modal-icon{
        display:none;
    }

    .export-step-heading{
        align-items:flex-start;
    }
}

/* Softer global typography */

body,
button,
input,
select,
textarea,
table{
    font-weight:400;
}

strong,
b,
label,
.btn,
.sidebar a,
.menu-title,
.eyebrow,
.form-section-title,
.stat-tile-label,
.status-badge,
.settings-tab,
.settings-subtab,
.text-button,
.workflow-button strong,
.action-group-heading > span,
.export-step-heading strong,
.format-icon,
.export-check,
.sidebar-suggestion-btn{
    font-weight:500 !important;
}

/* ==========================================================
   Sidebar suggestion button
   ========================================================== */

.sidebar-suggestion-btn{
    display:flex;
    align-items:center;
    gap:10px;
    width:calc(100% - 16px);
    margin:2px 8px 10px;
    padding:9px 25px 9px 9px;
    border:0;
    border-top:1px dashed rgba(255,255,255,.14);
    border-radius:2px;
    color:rgba(255,255,255,.66);
    background:transparent;
    font:inherit;
    font-size:13.5px;
    text-align:left;
    cursor:pointer;
    transition:background-color .1s, color .1s;
}

.sidebar-suggestion-btn:hover{
    color:#fff;
    background:rgba(255,255,255,.08);
}

.sidebar-suggestion-btn .nav-icon{
    background:rgba(255,255,255,.06);
}

.system-message-screenshot-preview{
    display:block;
    width:100%;
    margin-top:6px;
    border:1px solid var(--border);
    border-radius:var(--radius-sm);
}

h1,
h2,
h3,
h4,
h5,
h6,
.stat-tile-value,
.member-balance > strong,
.report-total-item strong{
    font-weight:600 !important;
}

/* Bulk Aliyos entry workflow */

.bulk-aliya-form{
    width:100%;
    max-width:1420px;
    padding-bottom:88px;
}

.bulk-form-alert{
    margin-bottom:18px;
}

.bulk-event-card,
.bulk-aliyos-card{
    padding:0;
    overflow:visible;
}

.bulk-section-heading{
    display:flex;
    align-items:center;
    gap:13px;
    padding:14px 18px;
    border-bottom:1px solid var(--border);
}

.bulk-section-heading h3{
    margin:0 0 3px;
    color:var(--primary-dark);
    font-size:16px;
}

.bulk-section-heading p{
    margin:0;
    color:var(--muted);
    font-size:12.5px;
}

.bulk-step-number{
    width:30px;
    height:30px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 30px;
    border-radius:50%;
    color:#fff;
    background:var(--primary-light);
    font-size:12px;
    font-weight:600;
}

.bulk-event-grid{
    display:grid;
    grid-template-columns:minmax(170px,.7fr) minmax(280px,1.4fr) minmax(190px,.8fr);
    gap:12px;
    padding:13px 18px 0;
}

.bulk-event-grid .form-group{
    min-width:0;
}

.bulk-event-grid input,
.bulk-event-grid select,
.bulk-event-grid .searchable-select-wrapper{
    width:100%;
    max-width:none;
}

.bulk-aliyos-heading > div:nth-child(2){
    flex:1;
}

.bulk-selection-count{
    min-width:70px;
    padding:7px 12px;
    text-align:center;
    border:1px solid var(--border);
    border-radius:8px;
    background:var(--surface-subtle,#f4f7f7);
}

.bulk-selection-count strong,
.bulk-selection-count span{
    display:block;
}

.bulk-selection-count strong{
    color:var(--primary-dark);
    font-size:17px;
    line-height:1.1;
}

.bulk-selection-count span{
    margin-top:2px;
    color:var(--muted);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.06em;
}

.bulk-aliya-list{
    padding:0 12px 12px;
}

.bulk-add-custom-btn{
    margin:0 12px 16px;
}

.bulk-aliya-row{
    position:relative;
    margin-top:7px;
    border:1px solid var(--border);
    border-radius:9px;
    background:#fbfcfc;
    transition:border-color .15s,box-shadow .15s,background-color .15s;
}

.bulk-aliya-row.is-filled{
    border-color:#9fc4bd;
    background:#fff;
    box-shadow:0 3px 12px rgba(21,74,73,.06);
}

.bulk-row-heading{
    min-height:44px;
    display:flex;
    align-items:center;
    gap:10px;
    padding:8px 12px;
    border-bottom:1px solid #e7eded;
}

.bulk-aliya-name{
    display:flex;
    align-items:center;
    gap:9px;
    margin-right:auto;
    color:var(--primary-dark);
    font-size:14px;
}

.bulk-row-number{
    width:24px;
    height:24px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:6px;
    color:var(--muted);
    background:#edf2f1;
    font-size:10.5px;
}

.bulk-row-status{
    padding:3px 8px;
    border-radius:20px;
    color:var(--muted);
    background:#edf2f1;
    font-size:10.5px;
}

.is-filled .bulk-row-status{
    color:#17624f;
    background:#dff3ec;
}

.bulk-row-clear{
    padding:3px 2px;
    border:0;
    color:var(--muted);
    background:transparent;
    font:inherit;
    font-size:11px;
    text-decoration:underline;
    text-underline-offset:2px;
    cursor:pointer;
}

.bulk-row-clear:hover{
    color:var(--danger);
}

.bulk-row-fields{
    display:grid;
    grid-template-columns:minmax(220px,1.4fr) minmax(210px,1.2fr) minmax(120px,.55fr) minmax(190px,.9fr);
    gap:16px;
    padding:14px 12px 16px;
}

.bulk-field{
    min-width:0;
}

.bulk-field > label,
.bulk-field-label > label:first-child{
    display:block;
    margin-bottom:6px;
    color:#31484e;
    font-size:11.5px;
}

.bulk-field-label{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}

.bulk-field-label .guest-toggle{
    margin:0 0 6px;
}

.bulk-field .searchable-select-wrapper,
.bulk-field input[type=number]{
    width:100%;
    max-width:none;
}

.bulk-field small{
    display:block;
    margin-top:5px;
}

.optional-label{
    margin-left:4px;
    color:var(--muted);
    font-size:9.5px;
    font-weight:400 !important;
    text-transform:uppercase;
}

.bulk-aliya-row .recipient-field,
.bulk-aliya-row .member-field-wrapper{
    display:block;
}

.bulk-aliya-row .misheberach-field{
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    margin:0;
}

.bulk-aliya-row .amount-field{
    position:relative;
}

.bulk-aliya-row .amount-prefix{
    position:absolute;
    left:11px;
    top:50%;
    z-index:1;
    color:var(--muted);
    transform:translateY(-50%);
    pointer-events:none;
}

.bulk-aliya-row .amount-field input{
    padding-left:25px;
}

.bulk-misheberach-column .amount-field{
    flex:0 1 105px;
}

.bulk-misheberach-column .no-misheberach-toggle{
    flex:1 0 auto;
}

.bulk-save-bar{
    position:fixed;
    z-index:30;
    right:38px;
    bottom:18px;
    left:302px;
    max-width:1366px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:13px 16px;
    border:1px solid rgba(177,196,198,.95);
    border-radius:11px;
    background:rgba(255,255,255,.96);
    box-shadow:0 10px 30px rgba(15,54,62,.15);
    backdrop-filter:blur(12px);
}

.bulk-save-summary strong,
.bulk-save-summary span{
    display:block;
}

.bulk-save-summary strong{
    color:var(--primary-dark);
    font-size:13px;
}

.bulk-save-summary span{
    margin-top:2px;
    color:var(--muted);
    font-size:11px;
}

.bulk-save-actions{
    display:flex;
    gap:8px;
}

.bulk-save-actions .btn{
    min-width:110px;
}

.bulk-save-actions .btn:disabled{
    opacity:.48;
    cursor:not-allowed;
}

@media (max-width:1180px){
    .bulk-row-fields{
        grid-template-columns:minmax(220px,1.2fr) minmax(210px,1fr) minmax(130px,.6fr);
    }

    .bulk-misheberach-column{
        grid-column:2 / -1;
    }
}

@media (max-width:900px){
    .bulk-save-bar{
        left:20px;
        right:20px;
    }
}

@media (max-width:720px){
    .bulk-event-grid,
    .bulk-row-fields{
        grid-template-columns:1fr 1fr;
    }

    .bulk-parsha-field,
    .bulk-recipient-column{
        grid-column:1 / -1;
    }

    .bulk-misheberach-column{
        grid-column:auto;
    }
}

@media (max-width:560px){
    .bulk-aliya-form{
        padding-bottom:124px;
    }

    .bulk-section-heading{
        align-items:flex-start;
        padding:16px;
    }

    .bulk-selection-count{
        margin-left:auto;
    }

    .bulk-aliyos-heading p{
        display:none;
    }

    .bulk-event-grid,
    .bulk-row-fields{
        grid-template-columns:1fr;
        gap:13px;
        padding:16px;
    }

    .bulk-parsha-field,
    .bulk-recipient-column,
    .bulk-misheberach-column{
        grid-column:auto;
    }

    .bulk-aliya-list{
        padding:0 10px 12px;
    }

    .bulk-row-fields{
        padding:14px 12px;
    }

    .bulk-row-clear{
        font-size:0;
    }

    .bulk-row-clear::after{
        content:"Clear";
        font-size:11px;
    }

    .bulk-save-bar{
        right:10px;
        bottom:10px;
        left:10px;
        align-items:stretch;
        flex-direction:column;
        gap:9px;
        padding:11px;
    }

    .bulk-save-summary{
        text-align:center;
    }

    .bulk-save-actions .btn{
        flex:1;
        min-width:0;
    }
}

/* Member create and edit workflow */

.member-editor-form{
    width:100%;
    max-width:1320px;
    padding-bottom:14px;
}

.member-editor-alert{
    margin-bottom:16px;
}

.member-editor-intro{
    display:flex;
    align-items:center;
    gap:14px;
    padding:4px 2px 18px;
}

.member-editor-intro .member-avatar{
    width:48px;
    height:48px;
    flex:0 0 48px;
    font-size:14px;
}

.member-editor-intro h2{
    margin:0;
    color:var(--primary-dark);
    font-size:19px;
}

.member-editor-intro p{
    margin-top:3px;
    color:var(--muted);
    font-size:11.5px;
}

.member-editor-intro p span{
    margin:0 5px;
}

.member-editor-intro .text-link{
    margin-left:auto;
}

.member-editor-intro-new{
    padding-top:0;
}

.member-editor-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 280px;
    align-items:start;
    gap:16px;
}

.member-editor-main{
    min-width:0;
}

.member-editor-section,
.member-editor-side-card{
    padding:0;
    overflow:hidden;
}

.member-editor-section{
    margin-bottom:14px;
}

.member-editor-section-heading{
    display:flex;
    align-items:center;
    gap:11px;
    padding:13px 16px;
    border-bottom:1px solid var(--border);
    background:#fbfcfc;
}

.member-editor-section-heading h3,
.member-editor-side-heading h3{
    margin:0;
    color:var(--primary-dark);
    font-size:14px;
}

.member-editor-section-heading p{
    margin-top:2px;
    color:var(--muted);
    font-size:11px;
}

.member-editor-step{
    width:25px;
    height:25px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 25px;
    border-radius:50%;
    color:#fff;
    background:var(--primary-light);
    font-size:10.5px;
}

.member-name-grid,
.member-form-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:11px;
    padding:13px 16px 0;
}

.member-name-grid{
    grid-template-columns:100px repeat(2,minmax(0,1fr));
}

.member-form-grid-three{
    grid-template-columns:repeat(3,minmax(0,1fr));
}

.member-editor-section .form-group,
.member-editor-side-card .form-group{
    min-width:0;
    margin-bottom:13px;
}

.member-editor-section input,
.member-editor-section select,
.member-editor-section textarea,
.member-editor-side-card input,
.member-editor-side-card select{
    width:100%;
    max-width:none;
}

.member-address-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) minmax(140px,.65fr) minmax(105px,.4fr);
}


.member-notes-field{
    padding:0 16px 15px;
}

.member-notes-field textarea{
    min-height:82px;
}

.member-notes-field small{
    display:block;
    margin-top:3px;
}

.member-editor-sidebar{
    position:sticky;
    top:92px;
}

.member-editor-side-card{
    margin-bottom:14px;
}

.member-editor-side-heading{
    padding:14px 15px 11px;
    border-bottom:1px solid var(--border);
    background:#fbfcfc;
}

.member-editor-side-heading .eyebrow{
    margin-bottom:3px;
}

.member-editor-side-card > .form-group{
    margin:13px 15px 0;
}

.member-editor-side-card > .form-group:last-child{
    margin-bottom:15px;
}

.member-editor-side-card .form-group small{
    display:block;
    margin-top:3px;
    font-size:10px;
}

.member-editor-choice{
    display:flex;
    align-items:flex-start;
    gap:9px;
    padding:12px 14px;
    border-bottom:1px solid var(--border);
    cursor:pointer;
}

.member-editor-choice:last-of-type{
    border-bottom:0;
}

.member-editor-choice input{
    width:17px;
    height:17px;
    min-height:17px;
    flex:0 0 17px;
    margin-top:2px;
}

.member-editor-choice span,
.member-editor-choice strong,
.member-editor-choice small{
    display:block;
}

.member-editor-choice strong{
    color:var(--text);
    font-size:11.5px;
}

.member-editor-choice small{
    margin-top:2px;
    color:var(--muted);
    font-size:10px;
    line-height:1.4;
}

.member-editor-actions{
    position:sticky;
    z-index:25;
    bottom:12px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:11px 13px;
    border:1px solid rgba(177,196,198,.95);
    border-radius:10px;
    background:rgba(255,255,255,.97);
    box-shadow:0 9px 28px rgba(15,54,62,.14);
    backdrop-filter:blur(12px);
}

.member-editor-action-copy strong,
.member-editor-action-copy span{
    display:block;
}

.member-editor-action-copy strong{
    color:var(--primary-dark);
    font-size:12px;
}

.member-editor-action-copy span{
    margin-top:1px;
    color:var(--muted);
    font-size:10px;
}

.member-editor-action-buttons{
    display:flex;
    gap:7px;
}

.member-editor-action-buttons .btn{
    min-width:110px;
}

@media (max-width:1080px){
    .member-editor-layout{
        grid-template-columns:1fr;
    }

    .member-editor-sidebar{
        position:static;
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:14px;
    }
}

@media (max-width:760px){
    .member-form-grid,
    .member-form-grid-three,
    .member-address-grid{
        grid-template-columns:1fr 1fr;
    }

    .member-address-line{
        grid-column:1 / -1;
    }

}

@media (max-width:560px){
    .member-editor-intro{
        align-items:flex-start;
        padding-bottom:13px;
    }

    .member-editor-intro .text-link{
        display:none;
    }

    .member-editor-layout{
        gap:10px;
    }

    .member-editor-section-heading{
        align-items:flex-start;
        padding:11px 12px;
    }

    .member-editor-section-heading p{
        display:none;
    }

    .member-name-grid,
    .member-form-grid,
    .member-form-grid-three,
    .member-address-grid{
        grid-template-columns:1fr;
        gap:0;
        padding:11px 12px 0;
    }

    .member-name-grid{
        grid-template-columns:90px 1fr;
        gap:9px;
    }

    .member-name-grid .form-group:last-child{
        grid-column:1 / -1;
    }

    .member-address-line{
        grid-column:auto;
    }


    .member-notes-field{
        padding:0 12px 12px;
    }

    .member-editor-sidebar{
        grid-template-columns:1fr;
        gap:10px;
    }

    .member-editor-actions{
        align-items:stretch;
        flex-direction:column;
        gap:8px;
        bottom:8px;
        padding:9px;
    }

    .member-editor-action-copy{
        text-align:center;
    }

    .member-editor-action-buttons .btn{
        flex:1;
        min-width:0;
    }
}

/* Compact bulk recipient selector: one search field, two data sources. */

.sr-only{
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    padding:0 !important;
    margin:-1px !important;
    overflow:hidden !important;
    clip:rect(0,0,0,0) !important;
    white-space:nowrap !important;
    border:0 !important;
}

.bulk-primary-entry{
    min-height:50px;
    display:grid;
    grid-template-columns:minmax(105px,.35fr) minmax(260px,1fr) auto auto auto;
    align-items:center;
    gap:8px;
    padding:5px 8px;
}

.bulk-primary-entry .bulk-aliya-name{
    margin:0;
}

.bulk-primary-entry .bulk-recipient-column,
.bulk-primary-entry .recipient-field,
.bulk-primary-entry .member-field-wrapper,
.bulk-primary-entry .searchable-select-wrapper{
    width:100%;
    max-width:none;
}

.recipient-type-toggle{
    display:block;
    margin:0;
}

.recipient-type-toggle > input{
    position:absolute;
    width:1px;
    height:1px;
    opacity:0;
    pointer-events:none;
}

.recipient-type-track{
    display:grid;
    grid-template-columns:1fr 1fr;
    padding:2px;
    border:1px solid var(--border);
    border-radius:8px;
    background:#edf2f1;
}

.recipient-type-track > span{
    min-width:54px;
    padding:4px 7px;
    border-radius:5px;
    text-align:center;
    color:var(--muted);
    font-size:11px;
    transition:.15s;
}

.recipient-type-track > span:first-child,
.recipient-type-toggle > input:checked + .recipient-type-track > span:last-child{
    color:var(--primary-dark);
    background:#fff;
    box-shadow:var(--shadow-sm);
}

.recipient-type-toggle > input:checked + .recipient-type-track > span:first-child{
    color:var(--muted);
    background:transparent;
    box-shadow:none;
}

.recipient-type-toggle > input:focus-visible + .recipient-type-track{
    outline:2px solid var(--primary-light);
    outline-offset:2px;
}

.bulk-recipient-errors{
    padding:0 8px 5px 118px;
}

.bulk-billing-details{
    border-top:1px solid #e7eded;
}

.bulk-billing-details > summary{
    width:max-content;
    padding:4px 8px;
    color:var(--primary-light);
    font-size:11px;
    cursor:pointer;
    user-select:none;
}

.bulk-billing-details > summary span{
    margin-left:4px;
    color:var(--muted);
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.bulk-billing-details .bulk-row-fields{
    grid-template-columns:minmax(230px,1.4fr) minmax(130px,.55fr) minmax(220px,1fr);
    gap:10px;
    padding:3px 8px 8px;
}

.bulk-aliya-row input,
.bulk-aliya-row select,
.bulk-aliya-row .searchable-select-input{
    min-height:36px;
    padding-top:6px;
    padding-bottom:6px;
    font-size:12.5px;
}

.bulk-aliya-row .amount-field input{
    padding-left:24px;
}

.bulk-aliya-row .bulk-field > label{
    margin-bottom:3px;
}

.bulk-aliya-row .bulk-field small{
    margin-top:2px;
    font-size:10px;
}

@media (max-width:1180px){
    .bulk-billing-details .bulk-row-fields{
        grid-template-columns:minmax(220px,1fr) minmax(120px,.5fr) minmax(200px,1fr);
    }

    .bulk-billing-details .bulk-misheberach-column{
        grid-column:auto;
    }
}

@media (max-width:760px){
    .bulk-primary-entry{
        grid-template-columns:minmax(95px,.3fr) minmax(210px,1fr) auto;
    }

    .bulk-primary-entry .bulk-row-status{
        display:none;
    }

    .bulk-billing-details .bulk-row-fields{
        grid-template-columns:1fr 1fr;
    }

    .bulk-billing-details .bulk-misheberach-column{
        grid-column:1 / -1;
    }
}

@media (max-width:560px){
    .bulk-primary-entry{
        grid-template-columns:1fr auto;
        gap:8px;
        padding:10px;
    }

    .bulk-primary-entry .bulk-aliya-name{
        grid-column:1;
    }

    .bulk-primary-entry .recipient-type-toggle{
        grid-column:2;
        grid-row:1;
    }

    .bulk-primary-entry .bulk-recipient-column{
        grid-column:1 / -1;
    }

    .bulk-primary-entry .bulk-row-clear{
        position:absolute;
        right:20px;
        margin-top:58px;
    }

    .recipient-type-track > span{
        min-width:52px;
        padding:4px 6px;
    }

    .bulk-recipient-errors{
        padding:0 10px 8px;
    }

    .bulk-billing-details .bulk-row-fields{
        grid-template-columns:1fr;
    }

    .bulk-billing-details .bulk-misheberach-column{
        grid-column:auto;
    }
}

.cookie-banner[hidden]{
    display:none;
}

.cookie-banner{
    position:fixed;
    left:16px;
    right:16px;
    bottom:16px;
    z-index:1000;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    max-width:720px;
    margin:0 auto;
    padding:14px 18px;
    background:var(--primary-dark);
    color:#fff;
    border-radius:10px;
    box-shadow:var(--shadow-lg);
}

.cookie-banner p{
    margin:0;
    font-size:13px;
    line-height:1.5;
    color:#eef2f5;
}

.cookie-banner .btn{
    flex-shrink:0;
    background:#fff;
    color:var(--primary-dark);
}

.cookie-banner .btn:hover{
    background:#eef2f5;
}

@media (max-width:600px){
    .cookie-banner{
        flex-direction:column;
        align-items:stretch;
        text-align:center;
    }
}

/* Multi-tenancy: shul selection, developer control panel */

.shul-select-list{
    display:flex;
    flex-direction:column;
    gap:10px;
    margin-top:8px;
}

.shul-select-item{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:14px 16px;
    border:1px solid var(--border);
    border-radius:var(--radius);
    background:var(--white);
    text-decoration:none;
    color:var(--text);
    transition:box-shadow .15s ease, border-color .15s ease;
}

.shul-select-item:hover{
    border-color:var(--primary-light);
    box-shadow:var(--shadow-sm);
}

.shul-select-item strong{
    font-size:15px;
}

.shul-select-item span{
    font-size:13px;
    color:var(--muted);
}

.danger-zone{
    border:1px solid var(--danger);
    border-radius:var(--radius);
    padding:16px;
    margin-top:16px;
    background:var(--danger-bg);
}

.developer-viewing-banner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:10px 20px;
    background:var(--warning-bg);
    color:var(--warning-text);
    font-size:13px;
    border-bottom:1px solid var(--border);
}

.developer-viewing-banner form{
    flex-shrink:0;
}

.danger-zone h3{
    color:var(--danger-dark);
    margin-top:0;
}

/* App-wide finishing pass: accessibility, responsive data and empty states. */

:focus-visible{
    outline:3px solid rgba(29,105,119,.28);
    outline-offset:2px;
}

.skip-link{
    position:fixed;
    top:10px;
    left:10px;
    z-index:2000;
    padding:9px 13px;
    border-radius:7px;
    color:#fff;
    background:var(--primary-dark);
    font-size:13px;
    font-weight:700;
    text-decoration:none;
    transform:translateY(-150%);
    transition:transform .15s ease;
}

.skip-link:focus{
    color:#fff;
    transform:translateY(0);
}

.page-description{
    max-width:64ch;
    margin-top:5px;
    color:var(--muted);
    font-size:13px;
}

.card{
    min-width:0;
    overflow-x:auto;
    scrollbar-color:#afc2c5 #edf2f1;
    scrollbar-width:thin;
}

.card::-webkit-scrollbar{
    height:7px;
}

.card::-webkit-scrollbar-track{
    background:#edf2f1;
}

.card::-webkit-scrollbar-thumb{
    border-radius:10px;
    background:#afc2c5;
}

table{
    min-width:100%;
}

table td.empty-state{
    padding:42px 20px;
    color:var(--muted);
    background:linear-gradient(180deg,#fff,#fbfcfc);
    text-align:center;
    white-space:normal;
}

.empty-state strong,
.empty-state span{
    display:block;
}

.empty-state strong{
    margin-bottom:5px;
    color:var(--text);
    font-size:15px;
}

.empty-state span{
    margin:0 auto 14px;
    max-width:440px;
    font-size:13px;
}

.empty-state .btn{
    display:inline-flex;
}

.toolbar-actions form,
table td form{
    margin:0;
}

@media (max-width:900px){
    .page-toolbar{
        align-items:flex-start;
        flex-direction:column;
    }

    .page-toolbar > form,
    .page-toolbar > form input[type=search]{
        width:100%;
        min-width:0 !important;
    }
}

@media (max-width:640px){
    .toolbar-actions{
        width:100%;
    }

    .toolbar-actions .btn{
        flex:1 1 auto;
    }

    table td.empty-state{
        padding:32px 16px;
    }
}
