/* ===== Bakery login update: use Inter for English UI text and retain Shabnam for Persian ===== */
@font-face{font-family:"Inter";src:url("../fonts/Inter-Variable.woff2?v=1") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}
/* ===== ERP Update Start: Bundle Shabnam as the accounting system's Persian typeface ===== */
@font-face{font-family:"Shabnam";src:url("../fonts/Shabnam-Regular.woff2?v=1") format("woff2");font-style:normal;font-weight:400;font-display:block}
@font-face{font-family:"Shabnam";src:url("../fonts/Shabnam-Bold.woff2?v=1") format("woff2");font-style:normal;font-weight:700;font-display:block}
/* ===== ERP Update End ===== */

/* ===== ERP Update Start: Desktop-only collapsible navigation rail ===== */
.sidebar-collapse-row{display:none}
@media(min-width:992px){
    .erp-body .sidebar,.erp-body .app-shell{transition:width .2s ease,margin-inline-start .2s ease}
    .sidebar-collapse-row{display:flex;justify-content:flex-end;padding:0 8.5px 5.1px}
    .sidebar-collapse-btn{width:26px;height:26px;display:grid;place-items:center;padding:0;border:1px solid rgba(255,255,255,.14);border-radius:6.8px;background:var(--sidebar-bg-elevated);color:var(--sidebar-ink);transition:background-color .15s ease,color .15s ease,transform .2s ease}
    .sidebar-collapse-btn:hover{background:#22262e;color:#fff}
    .sidebar-collapse-btn:focus-visible{outline:2.6px solid rgba(40,120,232,.35);outline-offset:2px}
    .sidebar-collapse-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
    /* ===== ERP Update Start: Point the collapse control toward the sidebar edge in each writing direction. ===== */
    html[dir=ltr] .sidebar-collapse-btn{transform:rotate(180deg)}
    html[dir=rtl] .sidebar-collapse-btn{transform:none}
    .erp-body.sidebar-collapsed{--sidebar:65px}
    .sidebar-collapsed .sidebar .brand-lockup{justify-content:center;padding-inline:8.5px}
    .sidebar-collapsed .sidebar .brand-lockup>span:last-child,.sidebar-collapsed .sidebar .nav-section-label,.sidebar-collapsed .sidebar .nav-link-erp>span:last-child,.sidebar-collapsed .sidebar .business-chip>div,.sidebar-collapsed .sidebar .brand-footer-credit-full{display:none}
    .sidebar-collapsed .sidebar-collapse-row{justify-content:center;padding-inline:6.8px}
    html[dir=ltr] .sidebar-collapsed .sidebar-collapse-btn{transform:none}
    html[dir=rtl] .sidebar-collapsed .sidebar-collapse-btn{transform:rotate(180deg)}
    .sidebar-collapsed .sidebar-nav{padding-inline:8.5px}
    .sidebar-collapsed .sidebar .nav-section{margin-block:3.4px 6.8px}
    .sidebar-collapsed .sidebar .nav-link-erp{justify-content:center;gap:0;padding-inline:6.8px}
    .sidebar-collapsed .sidebar-footer{padding-inline:8.5px}
    .sidebar-collapsed .sidebar .business-chip{justify-content:center;padding:8.5px}
    .sidebar-collapsed .sidebar .status-dot{margin-top:0}
}
/* ===== ERP Update End ===== */

/* ===== SaaS redesign: split login layout — dark storytelling aside (left) + white form panel (right) ===== */
.password-field{position:relative}
.password-field .form-control{padding-inline-end:41px}
.password-toggle{position:absolute;inset-block:0;inset-inline-end:6.8px;width:29px;border:0;background:transparent;color:var(--muted);display:grid;place-items:center;padding:0;border-radius:6.8px;cursor:pointer}
.password-toggle:hover{background:var(--brand-soft);color:var(--brand-dark)}
.password-toggle:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.password-icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}

.auth-body{background:var(--bg)}
.auth-shell{grid-template-columns:minmax(0,1fr) minmax(400px,540px)}
.auth-panel{background:var(--surface)}
.auth-brand{gap:12px;margin-bottom:37px}
.auth-logo{width:44px;height:44px;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line)}
.auth-wordmark{height:27px;width:auto;object-fit:contain;display:block}
.auth-brand strong{font-size:14px;letter-spacing:-.02em;color:var(--ink)}
.auth-brand small{font-size:8.5px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-top:4.3px}
.auth-heading .eyebrow{color:var(--brand);font-weight:800}
.auth-heading h1{color:var(--ink);font-size:24px}
.auth-panel .form-label{color:var(--muted)}
.auth-panel .form-control:focus{border-color:var(--brand);box-shadow:0 0 0 .2rem var(--brand-soft)}
.auth-panel .btn-primary{box-shadow:0 6.8px 14px rgba(40,120,232,.18)}
.auth-panel .btn-primary:hover{transform:translateY(-1px);box-shadow:0 8.5px 17px rgba(40,120,232,.25)}
.auth-footer-credit{margin-top:22px;display:flex;align-items:center;gap:6px;font-size:9.4px;color:var(--muted-2);text-decoration:none}
.auth-footer-credit img{height:11px;width:auto;object-fit:contain;opacity:.85}
.auth-footer-credit:hover{color:var(--brand)}
.auth-footer-credit:hover img{opacity:1}
.auth-brand a{display:inline-flex;text-decoration:none}
.auth-brand a:hover .auth-wordmark{opacity:.85}
.auth-aside{padding:60px;display:flex;align-items:flex-end;background:radial-gradient(circle at 12% 12%,#1B2A45,var(--sidebar-bg) 55%);color:#fff;position:relative;overflow:hidden}
.auth-aside:before{content:"";position:absolute;width:560px;height:560px;border:1px solid rgba(255,255,255,.12);border-radius:50%;top:-260px;inset-inline-end:-170px;box-shadow:0 0 0 77px rgba(255,255,255,.025),0 0 0 180px rgba(255,255,255,.018)}
.auth-aside:after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;inset-inline-start:-140px;bottom:-160px;background:rgba(40,120,232,.28);filter:blur(46px)}
.auth-aside>div{position:relative;max-width:640px}
.auth-kicker{font-size:9.4px;text-transform:uppercase;letter-spacing:.15em;color:var(--accent-cyan);font-weight:800}
.auth-aside h2{font-size:31px;line-height:1.16;letter-spacing:-.03em;margin:12px 0 19px;color:#fff}
.auth-aside ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:11px;color:#cdd3dd}
.auth-aside ul li{display:flex;align-items:center;gap:8.5px;font-size:11px}
.auth-aside ul li svg{width:22px;height:22px;flex:none;stroke:var(--accent-cyan);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;background:rgba(255,255,255,.07);border-radius:7.7px;padding:4.3px;box-sizing:border-box}
.auth-aside-footer{position:relative;margin-top:29px;font-size:9.4px;color:#7d859a}
html[dir=rtl] .auth-brand{direction:rtl}
html[dir=rtl] .auth-brand small{text-transform:none}
@media(max-width:991.98px){.auth-panel{max-width:600px}.auth-logo{width:44px;height:44px}}
:root{--bg:#F2F4F7;--surface:#FFFFFF;--surface-2:#F7F8FA;--ink:#15171A;--muted:#68707D;--muted-2:#9AA1AC;--line:#E7E9ED;--line-soft:#EEF0F3;--brand:#2878E8;--brand-dark:#1668D8;--brand-soft:#E9F2FF;--accent-cyan:#67D9F3;--tint-cyan:#DDF7FC;--tint-lavender:#EEE8FF;--tint-pink:#F8E4FA;--success:#22A06B;--success-soft:#E4F5EC;--success-strong:#15794E;--warning:#F3A712;--warning-soft:#FDF1DA;--warning-strong:#96690A;--danger:#E5484D;--danger-soft:#FBE4E5;--danger-strong:#B0272C;--sidebar-bg:#121417;--sidebar-bg-elevated:#1A1D21;--sidebar-ink:#C7CBD1;--sidebar-ink-muted:#767C86;--sidebar:223px;--topbar:58px;--radius:10px;--radius-lg:19px;--radius-xl:24px;--shadow:0 1px 2px rgba(21,23,26,.04),0 1px 1px rgba(21,23,26,.03);--shadow-floating:0 12px 32px rgba(21,23,26,.14),0 2px 8px rgba(21,23,26,.06)}
*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-size:12px;background:var(--bg)}html[dir=rtl] body{font-family:"Shabnam",Tahoma,"Segoe UI",Arial,sans-serif}.erp-body{overflow-x:hidden}.sidebar{position:fixed;inset-block:0;inset-inline-start:0;width:var(--sidebar);background:#fbfcfc;border-inline-end:1px solid var(--line);z-index:1030;flex-direction:column}.brand-lockup{min-height:var(--topbar);display:flex;align-items:center;gap:8.5px;padding:10px 15px;color:var(--ink);text-decoration:none}.brand-lockup>span:last-child{display:flex;flex-direction:column;line-height:1.15}.brand-lockup strong{font-size:13px}.brand-lockup small{font-size:8.5px;color:var(--muted);margin-top:2.6px;letter-spacing:.04em;text-transform:uppercase}.brand-mark{display:grid;place-items:center;width:27px;height:27px;border-radius:7.7px;background:var(--brand);color:#fff;font-weight:800;font-size:13px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}.sidebar-nav{padding:5.1px 8.5px;overflow-y:auto}.nav-section{margin:3.4px 0 12px}.nav-section-label{padding:3.4px 8.5px 5.1px;font-size:8.5px;line-height:1;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:#89938f}.nav-link-erp{display:flex;align-items:center;gap:8.5px;min-height:31px;padding:6px 8.5px;border-radius:6.8px;color:#46524f;text-decoration:none;font-weight:550;font-size:11px;margin:1px 0}.nav-link-erp:hover{background:#f0f3f2;color:var(--ink)}.nav-link-erp.active{background:var(--brand-soft);color:var(--brand-dark);font-weight:700}.nav-icon{width:17px;height:17px;display:grid;place-items:center;border-radius:5.1px;border:1px solid transparent;font-size:9.4px;font-weight:800}.active>.nav-icon{background:#fff;border-color:#cbe1da}.sidebar-footer{margin-top:auto;border-top:1px solid var(--line);padding:10px}.business-chip{display:flex;align-items:flex-start;gap:7.7px;padding:7.7px;border-radius:7.7px;background:#f5f7f6}.business-chip>div{display:flex;flex-direction:column;min-width:0}.business-chip strong{font-size:9.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.business-chip small{font-size:8.5px;color:var(--muted);text-transform:capitalize}.status-dot{width:6px;height:6px;border-radius:50%;background:#24a36f;margin-top:3.4px;box-shadow:0 0 0 2.6px #dff3eb}.app-shell{min-height:100vh;margin-inline-start:var(--sidebar)}.topbar{height:var(--topbar);position:sticky;inset-block-start:0;z-index:1020;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 19px}.topbar-left,.topbar-actions{display:flex;align-items:center;gap:7.7px;min-width:0}.page-context{display:flex;flex-direction:column;min-width:0}.page-context small{font-size:8.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.page-context strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-icon{width:31px;height:31px;padding:0;display:grid;place-items:center}.btn-quiet{border:1px solid var(--line);background:#fff;color:var(--ink);min-width:32px}.user-button{display:flex;align-items:center;gap:6.8px;border:0;background:transparent;padding:3.4px;border-radius:7.7px;color:var(--ink)}.user-button:hover{background:#f2f4f3}.user-button>span:nth-child(2){display:flex;flex-direction:column;text-align:start;line-height:1.15}.user-button strong{font-size:9.4px}.user-button small{font-size:7.7px;color:var(--muted)}.avatar{width:26px;height:26px;border-radius:7.7px;background:#e7ecea;color:var(--brand-dark);display:grid;place-items:center;font-weight:800}.content-area{padding:17px 19px 37px;max-width:1720px;margin:0 auto}.app-alert{border-radius:8.5px;border-width:1px;padding:8.5px 12px;font-size:11px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.page-head h1{font-size:17px;letter-spacing:-.02em;margin:0}.page-head p{margin:3.4px 0 0;color:var(--muted);font-size:10px}.page-actions{display:flex;gap:6.8px;flex-wrap:wrap}.btn{font-weight:600;border-radius:6.8px;font-size:11px}.btn-primary,.btn-success{--bs-btn-bg:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:var(--brand-dark);--bs-btn-hover-border-color:var(--brand-dark)}.btn-outline-primary{--bs-btn-color:var(--brand);--bs-btn-border-color:#8ebdb1;--bs-btn-hover-bg:var(--brand)}.card,.panel{border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius);background:var(--surface)}.panel{padding:14px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line-soft)}.panel-head h2{font-size:12px;margin:0}.panel-body{padding:14px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8.5px;margin-bottom:12px}.metric-card{background:var(--surface);border:1px solid var(--line);border-radius:8.5px;padding:11px 12px;min-width:0}.metric-card .label{font-size:9.4px;color:var(--muted);font-weight:650}.metric-card .value{font-size:18px;font-weight:760;letter-spacing:-.03em;margin-top:4.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-card .meta{font-size:8.5px;color:var(--muted);margin-top:2.6px}.metric-card.accent{border-color:#b9d9d1;background:#f8fcfb}.metric-card.danger{border-color:#efd1d4}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.8fr);gap:10px}.dashboard-stack{display:grid;gap:10px}.table-panel{overflow:hidden}.table-responsive{scrollbar-width:thin}.table{--bs-table-bg:transparent;margin:0;font-size:10px;vertical-align:middle}.table>:not(caption)>*>*{padding:7.7px 10px;border-bottom-color:var(--line-soft)}.table thead th{font-size:8.5px;text-transform:uppercase;letter-spacing:.05em;color:#707c78;background:#fafbfb;font-weight:750;white-space:nowrap}.table tbody tr:hover{background:#fbfcfc}.table .primary-cell{font-weight:700;color:var(--ink)}.table .secondary-cell{display:block;color:var(--muted);font-size:8.5px;margin-top:2px}.table .amount-cell{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:end}.badge{font-size:7.7px;border-radius:999px;padding:4.3px 6.8px;font-weight:750;letter-spacing:.01em}.text-bg-success{background:#dff3e9!important;color:#176643!important}.text-bg-warning{background:#fff0d3!important;color:#88510b!important}.text-bg-danger{background:#fbe0e3!important;color:#9f2836!important}.text-bg-secondary{background:#e9edeb!important;color:#53605c!important}.text-bg-primary{background:#dceaf7!important;color:#204f73!important}.text-bg-info{background:#e2f0f5!important;color:#23637a!important}.filter-bar{display:flex;align-items:end;gap:6.8px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:8.5px;padding:8.5px;margin-bottom:10px}.filter-bar .form-control,.filter-bar .form-select{min-width:150px}.filter-search{min-width:240px!important}.form-label{font-size:9.4px;font-weight:700;color:#53605c;margin-bottom:4.3px}.form-control,.form-select{border-color:#cfd8d4;border-radius:6.8px;font-size:11px;min-height:31px}.form-control:focus,.form-select:focus{border-color:#6aa998;box-shadow:0 0 0 .2rem rgba(22,114,95,.1)}.form-text{font-size:8.5px}.section-title{font-size:10px;font-weight:800;margin:0 0 10px;letter-spacing:.01em}.form-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:10px}.col-span-2{grid-column:span 2}.col-span-3{grid-column:span 3}.col-span-4{grid-column:span 4}.col-span-6{grid-column:span 6}.col-span-8{grid-column:span 8}.col-span-12{grid-column:span 12}.form-section{padding:14px;border-bottom:1px solid var(--line-soft)}.form-section:last-child{border-bottom:0}.form-actions{position:sticky;bottom:0;z-index:10;display:flex;justify-content:flex-end;gap:6.8px;background:rgba(255,255,255,.96);border-top:1px solid var(--line);padding:10px 14px;border-radius:0 0 var(--radius) var(--radius)}.line-editor{border:1px solid var(--line);border-radius:8.5px;overflow:hidden}.line-editor .table-responsive{max-height:460px}.line-editor table{min-width:1050px}.line-editor .form-control,.line-editor .form-select{min-height:27px;padding:3.4px 6px;font-size:10px}.line-editor .line-total{font-weight:750;text-align:end;min-width:77px}.totals-box{margin-inline-start:auto;width:min(100%,390px);padding:12px 14px}.total-row{display:flex;justify-content:space-between;gap:17px;padding:4.3px 0;font-size:10px}.total-row.grand{font-size:13px;font-weight:800;border-top:1px solid var(--line);padding-top:8.5px;margin-top:4.3px}.document{background:#fff;border:1px solid var(--line);border-radius:10px;padding:24px;max-width:1100px;margin:auto}.document-head{display:flex;justify-content:space-between;gap:20px;padding-bottom:17px;border-bottom:1px solid var(--line)}.document-brand h1{font-size:17px;margin:0}.document-brand p,.document-meta p{font-size:9.4px;color:var(--muted);margin:2.6px 0}.document-title{text-align:end}.document-title h2{font-size:20px;margin:0}.document-parties{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:15px 0}.document-block{border:1px solid var(--line-soft);border-radius:6.8px;padding:10px}.document-block label{display:block;font-size:7.7px;text-transform:uppercase;color:var(--muted);font-weight:800;margin-bottom:4.3px}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6.8px}.summary-item{background:var(--surface-2);border:1px solid var(--line-soft);padding:8.5px;border-radius:6.8px}.summary-item span{display:block;color:var(--muted);font-size:7.7px;text-transform:uppercase}.summary-item strong{display:block;margin-top:2.6px;font-size:11px}.timeline{display:flex;align-items:flex-start;gap:0;margin:17px 0}.timeline-step{flex:1;position:relative;padding-top:15px;font-size:8.5px;color:var(--muted)}.timeline-step:before{content:"";position:absolute;top:3.4px;inset-inline-start:0;width:7.7px;height:7.7px;border-radius:50%;background:#cbd4d1;z-index:1}.timeline-step:after{content:"";position:absolute;top:6.8px;inset-inline-start:7.7px;inset-inline-end:0;height:1px;background:#dce3e0}.timeline-step.done:before{background:var(--brand)}.timeline-step.done:after{background:#8cc2b5}.timeline-step:last-child:after{display:none}.timeline-step strong{display:block;color:var(--ink);font-size:8.5px}.empty-state{text-align:center;padding:60px 17px;background:#fff;border:1px dashed #cfd8d4;border-radius:10px}.empty-state h1{font-size:17px}.empty-state p{color:var(--muted);max-width:440px;margin:6.8px auto 15px}.empty-code{font-size:36px;font-weight:850;color:#c3ceca}.auth-body{background:var(--bg);min-height:100vh}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(400px,540px)}.auth-panel{background:var(--surface);padding:36px clamp(24px,6vw,61px);display:flex;flex-direction:column;justify-content:center}.auth-brand{display:flex;align-items:center;gap:8.5px}.auth-brand>span:last-child{display:flex;flex-direction:column}.auth-brand small{font-size:7.7px;color:var(--muted);text-transform:uppercase}.auth-heading .eyebrow{font-size:9.4px;text-transform:uppercase;letter-spacing:.12em;color:var(--brand);font-weight:800;margin-bottom:6.8px}.auth-heading h1{font-size:26px;letter-spacing:-.04em}.auth-heading>p:last-child{color:var(--muted);line-height:1.6;margin-bottom:22px}.demo-credentials{margin-top:24px;padding:8.5px 10px;border:1px dashed var(--line);border-radius:6.8px;display:flex;flex-direction:column;font-size:8.5px;color:var(--muted)}.mobile-nav{max-width:280px}.mobile-nav .offcanvas-header{border-bottom:1px solid rgba(255,255,255,.08)}
/* ===== USD display update: a muted secondary line under any AFN amount, in tables, metric cards, and form inputs. ===== */
.usd-hint{display:block;color:var(--muted);font-size:8.9px;font-weight:500;margin-top:2px;white-space:nowrap}
.metric-card .usd-hint{font-size:9.4px;white-space:normal}
.amount-input-group{display:flex;flex-direction:column;gap:2px}
.total-row-value{display:flex;flex-direction:column;align-items:flex-end}.total-row-value .usd-hint{margin-top:1px}
.usd-rate-history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3.4px;max-height:180px;overflow-y:auto}.usd-rate-history li{display:flex;justify-content:space-between;gap:8.5px;font-size:9.4px;padding:3.4px 0;border-bottom:1px solid var(--line-soft)}.usd-rate-history li:last-child{border-bottom:0}.usd-rate-history li span{color:var(--muted)}
.exchange-rate-badge{display:inline-flex;align-items:center;gap:4.3px;padding:4.3px 8.5px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:9.4px;font-weight:650;color:var(--muted);white-space:nowrap;text-decoration:none}
.exchange-rate-badge:hover{color:var(--brand-dark);border-color:#8ebdb1}
@media (max-width:767.98px){.exchange-rate-badge{display:none}}
@media(max-width:1199.98px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:991.98px){.app-shell{margin-inline-start:0}.content-area{padding:14px}.topbar{padding:0 12px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-shell{grid-template-columns:1fr}.auth-aside{display:none}.auth-panel{max-width:560px;width:100%;margin:auto;min-height:100vh}.form-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.col-span-2,.col-span-3{grid-column:span 3}.col-span-4,.col-span-6{grid-column:span 6}.col-span-8,.col-span-12{grid-column:span 6}}
@media(max-width:575.98px){body{font-size:11px}.content-area{padding:10px 8.5px 31px}.topbar{height:49px}.page-context small{max-width:130px}.user-button>span:last-child{display:none}.page-head{align-items:stretch;flex-direction:column;margin-bottom:10px}.page-actions>*{flex:1}.metric-grid{gap:6.8px}.metric-card{padding:9.4px}.metric-card .value{font-size:15px}.filter-bar{align-items:stretch}.filter-bar>*{width:100%}.filter-bar .form-control,.filter-bar .form-select,.filter-search{width:100%;min-width:0!important}.form-grid{display:block}.form-grid>div{margin-bottom:10px}.panel,.card{border-radius:8.5px}.form-section{padding:11px}.form-actions{margin:0 -13px -13px;padding:8.5px}.form-actions .btn{flex:1}.document{border:0;border-radius:0;padding:14px;margin:0 -10px}.document-head,.document-parties{grid-template-columns:1fr;display:grid}.document-title{text-align:start}.summary-grid{grid-template-columns:repeat(2,1fr)}.auth-panel{padding:26px 19px}.auth-brand{margin-bottom:34px}.table>:not(caption)>*>*{padding:6.8px 7.7px}.totals-box{width:100%}}
@media(max-width:340px){.metric-grid{grid-template-columns:1fr}.topbar-actions{gap:2.6px}.content-area{padding-inline:6.8px}}
@media print{body{background:#fff!important}.sidebar,.topbar,.page-head,.app-alert,.no-print,.form-actions{display:none!important}.app-shell{margin:0!important}.content-area{padding:0!important;max-width:none}.document{border:0!important;padding:0!important;max-width:none}.panel,.card{box-shadow:none!important}.table{font-size:8.5px}.table>:not(caption)>*>*{padding:4.3px 5.1px}@page{size:A4;margin:12mm}}
.report-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.report-link{display:flex;align-items:center;justify-content:space-between;gap:6.8px;padding:7.7px 8.5px;border:1px solid var(--line-soft);border-radius:6.8px;color:var(--ink);text-decoration:none;background:var(--surface-2)}.report-link:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.report-link::after{content:'\2192';color:var(--muted)}html[dir=rtl] .report-link::after{content:'\2190'}.report-total{position:sticky;bottom:0;background:#f2f6f4;box-shadow:0 -1px 0 var(--line)}.report-total th{font-weight:700}@media(max-width:575.98px){.report-links{grid-template-columns:1fr}}

/* ===== ERP Update Start: Increase all visible UI typography by 15 percent ===== */
/* The root scale covers Bootstrap/rem-based text; these overrides cover the app's explicit pixel sizes. */
html{font-size:98%}
body{font-size:13.7px}
.brand-lockup strong,.brand-mark{font-size:14.7px}
.brand-lockup small,.nav-section-label,.business-chip small,.page-context small,.metric-card .meta,.table .secondary-cell,.form-text,.timeline-step,.timeline-step strong,.auth-brand small,.demo-credentials{font-size:9.8px}
.nav-link-erp,.app-alert,.btn,.form-control,.form-select{font-size:12.7px}
.nav-icon{font-size:10.8px}
.business-chip strong,.user-button strong,.metric-card .label,.form-label,.document-brand p,.document-meta p,.auth-heading .eyebrow,.auth-kicker{font-size:10.8px}
.page-context strong,.panel-head h2,.table,.section-title,.total-row{font-size:13.7px}
.page-head h1,.document-brand h1,.empty-state h1{font-size:19.6px}
.page-head p{font-size:11.7px}
.metric-card .value{font-size:20.5px}
.table thead th{font-size:9.8px}
.badge{font-size:8.8px}
.line-editor .form-control,.line-editor .form-select{font-size:11.7px}
.total-row.grand{font-size:14.7px}
.document-title h2{font-size:23.5px}
.document-block label,.summary-item span{font-size:8.8px}
.summary-item strong{font-size:12.7px}
.empty-code{font-size:41.1px}
.auth-heading h1{font-size:29.3px}
.auth-aside h2{font-size:37.1px}
@media(max-width:575.98px){
    body{font-size:12.7px}
    .metric-card .value{font-size:17.6px}
    .table{font-size:9.8px}
}
@media print{.table{font-size:9.8px}}

/* ===== Header update: give language selection a clear globe control and protect the username on small screens. ===== */
.language-switch{display:flex;align-items:center;gap:4.3px;border:1px solid var(--line);background:#fff;border-radius:6.8px;min-height:31px;padding:0 6.8px;color:var(--ink)}
.language-icon{display:grid;place-items:center;color:var(--brand-dark);flex:0 0 auto}
.language-icon svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.language-select{border:0;background:transparent;color:var(--ink);font-size:10px;font-weight:650;min-height:26px;padding:2px 15px 2px 2px;cursor:pointer;outline:0}
.language-select:focus-visible{outline:2px solid rgba(22,114,95,.3);outline-offset:2px;border-radius:3.4px}
.user-name{min-width:0;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-button small{display:none!important}
@media(max-width:767.98px){.topbar-actions{gap:5.1px}.language-switch{padding-inline:5.1px}.language-select{max-width:78px}.user-button>span:nth-child(2){display:flex!important;max-width:110px}.user-button{gap:5.1px}}
@media(max-width:575.98px){.topbar{padding-inline:6.8px}.topbar-left{gap:4.3px}.topbar-actions{gap:3.4px}.language-switch{min-height:29px;padding-inline:4.3px}.language-icon svg{width:14px;height:14px}.language-select{max-width:61px;font-size:9.4px;padding-inline-end:11px}.user-button>span:nth-child(2){max-width:71px}.avatar{width:24px;height:24px}.user-button{padding-inline:2px}}
@media(max-width:360px){.page-context{display:none}.language-select{max-width:53px}.user-button>span:nth-child(2){max-width:61px}}
@media(max-width:575.98px){.language-switch{position:relative;width:29px;min-width:29px;height:29px;padding:0;justify-content:center}.language-switch .language-icon{pointer-events:none}.language-switch .language-select{position:absolute;inset:0;width:100%;height:100%;max-width:none;opacity:0;cursor:pointer;padding:0}}

/* ===== Mobile top bar: keep the compact action order profile, language, refresh, and remove the duplicated user label. ===== */
@media(max-width:767.98px){
    .topbar-actions .user-menu{order:1}
    .topbar-actions .language-switch{order:2}
    .topbar-actions .page-refresh-mobile{order:3}
    .topbar-actions .user-name,.topbar-actions .user-chevron{display:none!important}
    .topbar-actions .user-button{gap:0}
}
/* Persian UI text uses the bundled Shabnam typeface consistently across every RTL element. */
html[dir=rtl]{--bs-body-font-family:"Shabnam",Tahoma,"Segoe UI",Arial,sans-serif;font-family:"Shabnam",Tahoma,"Segoe UI",Arial,sans-serif!important}
html[dir=rtl] body,html[dir=rtl] body *{font-family:"Shabnam",Tahoma,"Segoe UI",Arial,sans-serif!important}
/* ===== ERP Update End ===== */

/* ===== SaaS redesign: shared button, sidebar, and navigation palette on the new blue brand tokens ===== */
/* ===== Sidebar daytime update: use the requested sky-blue rail while restoring the existing night palette unchanged in dark mode. ===== */
:root{--sidebar-bg:#168FD8;--sidebar-bg-elevated:#0E7FC4;--sidebar-ink:#fff;--sidebar-ink-muted:#D8F3FF}
html[data-theme="dark"]{--sidebar-bg:#121417;--sidebar-bg-elevated:#1A1D21;--sidebar-ink:#C7CBD1;--sidebar-ink-muted:#767C86}
/* ===== Sidebar daytime update end ===== */
.brand-logo{width:29px;height:29px;object-fit:cover;border-radius:8.5px;border:1px solid var(--line);box-shadow:var(--shadow)}
.brand-lockup small{font-size:7.7px!important;letter-spacing:.04em!important;text-transform:uppercase!important;color:var(--sidebar-ink-muted)!important}
.brand-lockup strong{color:#fff}
.btn-primary,.btn-success{--bs-btn-bg:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:var(--brand-dark);--bs-btn-hover-border-color:var(--brand-dark);--bs-btn-active-bg:var(--brand-dark);--bs-btn-active-border-color:var(--brand-dark);--bs-btn-color:#fff;--bs-btn-hover-color:#fff}
.btn-outline-primary{--bs-btn-color:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:var(--brand);--bs-btn-hover-border-color:var(--brand);--bs-btn-hover-color:#fff}
.btn-outline-secondary,.btn-quiet{--bs-btn-color:var(--muted);--bs-btn-border-color:var(--line);--bs-btn-hover-bg:var(--surface-2);--bs-btn-hover-border-color:var(--muted-2);--bs-btn-hover-color:var(--ink);background:var(--surface)}
.btn-danger{--bs-btn-bg:var(--danger);--bs-btn-border-color:var(--danger);--bs-btn-hover-bg:var(--danger-strong);--bs-btn-hover-border-color:var(--danger-strong)}
.btn-outline-danger{--bs-btn-color:var(--danger);--bs-btn-border-color:var(--danger);--bs-btn-hover-bg:var(--danger);--bs-btn-hover-border-color:var(--danger);--bs-btn-hover-color:#fff!important}
.sidebar,.mobile-nav{background:var(--sidebar-bg);color:var(--sidebar-ink)}
.sidebar{border-inline-end:1px solid rgba(255,255,255,.06)}
.sidebar .nav-section-label,.mobile-nav .nav-section-label{color:var(--sidebar-ink-muted)}
.sidebar .nav-link-erp,.mobile-nav .nav-link-erp{color:var(--sidebar-ink)}
.sidebar .nav-link-erp:hover,.mobile-nav .nav-link-erp:hover{background:var(--sidebar-bg-elevated);color:#fff}
.sidebar-nav{scrollbar-width:thin;scrollbar-color:var(--sidebar-bg-elevated) transparent}
.sidebar-nav::-webkit-scrollbar{width:6.8px}
.sidebar-nav::-webkit-scrollbar-track{background:transparent}
.sidebar-nav::-webkit-scrollbar-thumb{background:var(--sidebar-bg-elevated);border-radius:999px}
.sidebar-nav:hover::-webkit-scrollbar-thumb{background:#33383f}
.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#454b54}
.nav-link-erp.active{background:#fff!important;color:var(--brand)!important;font-weight:750;box-shadow:var(--shadow)}
.nav-link-erp.active .nav-icon{color:var(--brand);background:transparent;border-color:transparent}
.lucide-nav-icon{width:14px;height:14px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.product-actions{display:inline-flex;align-items:center;gap:5.1px}.product-pagination{display:flex;align-items:center;justify-content:center;gap:10px;margin:14px 0 3.4px;flex-wrap:wrap}.product-pagination>span{font-size:10px;color:var(--muted);min-width:80px;text-align:center}.product-pagination .disabled{pointer-events:none;opacity:.45}
@media(max-width:575.98px){.product-actions{display:flex;flex-direction:column;align-items:stretch}.product-actions .btn{width:100%}.product-pagination{justify-content:space-between;gap:6.8px}.product-pagination>span{order:-1;width:100%}.product-pagination .btn{flex:1}}

/* ===== Responsive list update: replace wide finance/operations tables with labeled, touch-friendly records on phones. ===== */
@media(max-width:575.98px){
    .table-responsive:has(> .mobile-record-table){overflow:visible}
    .mobile-record-table{display:block;min-width:0!important;width:100%;border-collapse:separate;border-spacing:0}
    .mobile-record-table thead{display:none}
    .mobile-record-table tbody,.mobile-record-table tbody tr{display:block;width:100%}
    .mobile-record-table tbody tr{margin:0 0 10px;padding:8px 10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface);box-shadow:0 2px 8px rgba(20,40,35,.04)}
    .mobile-record-table tbody tr:last-child{margin-bottom:0}
    .mobile-record-table tbody td{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;width:100%;padding:7px 0;border:0;text-align:start!important;white-space:normal!important;overflow-wrap:anywhere}
    .mobile-record-table tbody td[data-label]::before{content:attr(data-label);flex:0 0 40%;color:var(--muted);font-size:8.5px;font-weight:750;line-height:1.45;text-transform:uppercase;letter-spacing:.03em}
    .mobile-record-table tbody td[data-label]>*{max-width:60%;min-width:0;text-align:end}
    .mobile-record-table tbody td[data-label]>.product-actions{max-width:none;margin-inline-start:auto}
    .mobile-record-table tbody td:first-child{padding-top:2px}
    .mobile-record-table tbody td:last-child{padding-bottom:2px;border-top:1px solid var(--line-soft);margin-top:3px;padding-top:9px}
    .mobile-record-table tbody td:last-child .product-actions{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:6px}
    .mobile-record-table tbody td:last-child .product-actions .btn{width:34px;min-width:34px}
    .mobile-record-table tbody td[colspan]{display:block;text-align:center!important}
    .mobile-record-table .primary-cell{font-size:11px}
    .mobile-record-table .secondary-cell{max-width:none!important}
    .mobile-record-table .employee-countdown-chip{white-space:normal;text-align:end}
    .mobile-record-table .employee-salary-date{justify-content:flex-end;flex-wrap:wrap;white-space:normal}
    .employee-table{min-width:0!important}
    .asset-record-table tfoot{display:block;width:100%;margin-top:8px;border-top:1px solid var(--line)}
    .asset-record-table tfoot tr{display:flex;flex-wrap:wrap;width:100%}
    .asset-record-table tfoot td{display:block;flex:1 1 50%;padding:7px 0;border:0}
    .asset-record-table tfoot td:first-child{flex-basis:100%;padding-bottom:2px}
}
.mobile-nav .offcanvas-header{border-bottom-color:rgba(255,255,255,.08)!important}
.mobile-nav .btn-close{filter:invert(1) grayscale(1) brightness(1.8)}
/* ===== SaaS redesign: confirm-action dialog styled as a soft rounded card ===== */
.modal-content{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-floating);background:var(--surface)}
.modal-header{border-bottom:1px solid var(--line-soft);padding:15px 17px 12px}
.modal-title{font-size:14px;font-weight:750;color:var(--ink)}
.modal-body{padding:14px 17px;color:var(--muted);font-size:11px;line-height:1.6}
.modal-footer{border-top:1px solid var(--line-soft);padding:12px 17px;gap:6.8px}
.modal-backdrop.show{opacity:.5}
html[data-theme="dark"] .modal-backdrop.show{opacity:.66}
.theme-toggle-row{border-bottom-color:rgba(255,255,255,.08)!important}
.theme-toggle-row>span{color:var(--sidebar-ink-muted)}
.mobile-nav .theme-toggle{background:var(--sidebar-bg-elevated);border-color:rgba(255,255,255,.14);color:var(--sidebar-ink)}
.mobile-nav .theme-toggle:hover{background:#22262e;color:#fff}
.sidebar-footer{border-top-color:rgba(255,255,255,.08)!important}
.brand-footer-credit{display:flex;align-items:center;justify-content:center;padding:10px;color:var(--sidebar-ink-muted);text-decoration:none}
.brand-footer-credit span{font-size:9px;font-weight:600;letter-spacing:.02em;opacity:.9;transition:opacity .15s ease}
.brand-footer-credit:hover span{opacity:1}
.brand-footer-credit-short{display:none}
.sidebar-collapsed .brand-footer-credit-short{display:inline}
.sidebar-collapsed .brand-footer-credit{padding-inline:6.8px}
.content-area{background:var(--surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-floating)}
/* ===== SaaS redesign: icon-only row action buttons shared by every list/detail table ===== */
.row-action-icon{width:16px;height:16px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;line-height:1;border-radius:8px}
.icon-btn.btn-quiet{color:var(--muted)}
.icon-btn.btn-quiet:hover{color:var(--brand);border-color:var(--brand);background:var(--brand-soft)}
.icon-btn.btn-outline-danger:hover .row-action-icon{color:inherit}
html[data-theme="dark"] .icon-btn.btn-quiet{color:#aeb4c2}
html[data-theme="dark"] .icon-btn.btn-quiet:hover{color:#4f95f0;border-color:#4f95f0;background:var(--brand-soft)}
.toast-stack{position:fixed;top:15px;left:50%;transform:translateX(-50%);z-index:2000;display:flex;flex-direction:column;gap:6.8px;width:min(92vw,420px);pointer-events:none}
.app-toast{display:flex;align-items:center;gap:8.5px;width:100%;margin:0;padding:9.4px 12px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-floating);border:1px solid var(--line);font-size:11px;color:var(--ink);pointer-events:auto;animation:app-toast-in .22s ease-out}
.app-toast.is-leaving{animation:app-toast-out .18s ease-in forwards}
@keyframes app-toast-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
@keyframes app-toast-out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}
.app-toast-icon{display:grid;place-items:center;width:17px;height:17px;flex:none}
.app-toast-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.app-toast-message{flex:1;min-width:0;line-height:1.4}
.app-toast-close{flex:none;border:0;background:transparent;color:var(--muted);width:17px;height:17px;display:grid;place-items:center;font-size:14px;line-height:1;cursor:pointer;border-radius:5.1px}
.app-toast-close:hover{background:var(--surface-2);color:var(--ink)}
.app-toast-success{border-inline-start:2.6px solid var(--success)}.app-toast-success .app-toast-icon{color:var(--success)}
.app-toast-danger{border-inline-start:2.6px solid var(--danger)}.app-toast-danger .app-toast-icon{color:var(--danger)}
.app-toast-warning{border-inline-start:2.6px solid var(--warning)}.app-toast-warning .app-toast-icon{color:var(--warning-strong)}
@media(max-width:575.98px){.toast-stack{top:8.5px;width:calc(100vw - 17px)}}
/* Keep module headers focused on the client-facing title; internal template descriptors stay out of the UI. */
.page-head p{display:none}

/* ===== ERP Update Start: Keep tall module pages inside the branded ERP scroll area ===== */
@media screen{
    .erp-body{height:100vh;height:100dvh;overflow:hidden}
    .erp-body .app-shell{height:100vh;height:100dvh;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--brand) var(--surface-2)}
    .erp-body .app-shell::-webkit-scrollbar{width:8.5px}
    .erp-body .app-shell::-webkit-scrollbar-track{background:var(--surface-2);border-inline-start:1px solid var(--line)}
    .erp-body .app-shell::-webkit-scrollbar-thumb{background:var(--brand);border:2px solid var(--surface-2);border-radius:999px}
.erp-body .app-shell::-webkit-scrollbar-thumb:hover{background:var(--brand-dark)}
}
/* ===== ERP Update End ===== */

/* ===== Android standalone PWA guard: keep the final page controls above the mobile system navigation area while retaining the normal page padding. ===== */
@media screen and (display-mode: standalone) and (max-width:991.98px){
    .erp-body .app-shell{padding-block-end:max(20px,env(safe-area-inset-bottom,0px));scroll-padding-block-end:max(20px,env(safe-area-inset-bottom,0px))}
    .erp-body .form-actions{bottom:max(20px,env(safe-area-inset-bottom,0px))}
}

/* ===== ERP Update Start: Responsive secondary city-management workspace ===== */
.city-management-grid{grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr)}
@media(max-width:991.98px){.city-management-grid{grid-template-columns:1fr}}
/* ===== ERP Update End ===== */

/* ===== Employees module: compact payable-first tables and touch-friendly attendance controls. ===== */
/* ===== Settings phone input: keep phone numbers LTR for correct digit and country-code order while matching the page alignment. ===== */
html[dir=rtl] form[action$="/settings/update"] input[name=phone]{direction:ltr;text-align:right}
html[dir=ltr] form[action$="/settings/update"] input[name=phone]{direction:ltr;text-align:left}
.employee-balance-positive{color:#9a5a13;font-weight:800}.employee-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.employee-table-panel,.employee-period-panel{overflow:hidden}.employee-period-panel .panel-body{padding:0}.salary-period-form{margin:10px}.salary-period-form .form-select{min-width:130px}.attendance-toolbar{display:flex;align-items:end;gap:8.5px;flex-wrap:wrap}.attendance-toolbar>div{min-width:190px}.attendance-default-note{color:var(--muted);font-size:10px;padding-bottom:7.7px}.attendance-choice{display:flex;gap:6.8px;flex-wrap:wrap}.attendance-choice label{position:relative}.attendance-choice input{position:absolute;opacity:0}.attendance-choice span{display:inline-flex;align-items:center;min-height:27px;padding:4.3px 9.4px;border:1px solid var(--line);border-radius:999px;font-size:10px;font-weight:700;cursor:pointer}.attendance-choice input:checked+span{box-shadow:0 0 0 2px rgba(22,114,95,.12)}.attendance-choice input:checked+.attendance-present{background:#e1f3e9;border-color:#8fc9ad;color:#176643}.attendance-choice input:checked+.attendance-absent{background:#fbe4e4;border-color:#e1a5aa;color:#9f2836}.compact{padding:20px;border:0;background:transparent}.employee-table{min-width:760px}.attendance-table{min-width:620px}
/* ===== Attendance basis tabs: segmented pill control to filter the roster by pay basis. ===== */
.attendance-basis-tabs{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:0 0 16px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.attendance-basis-tab{flex:1 1 auto;min-width:96px;display:inline-flex;align-items:center;justify-content:center;padding:9px 16px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:12.5px;font-weight:750;letter-spacing:.01em;cursor:pointer;transition:background .15s,color .15s}
.attendance-basis-tab:hover{color:var(--ink)}
.attendance-basis-tab.is-active{background:var(--brand);color:#fffaf2;box-shadow:0 3px 10px rgba(169,109,36,.25)}
.attendance-basis-tab:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.attendance-basis-tabs:last-child{margin-bottom:0}
.attendance-basis-hint{margin:14px 2px 2px;color:var(--muted);font-size:13px}
@media(max-width:575.98px){.attendance-basis-tabs{width:100%}.attendance-basis-tab{min-width:0;padding:9px 8px}}
@media(max-width:575.98px){.employee-metrics{grid-template-columns:1fr}.employee-table-panel .panel-head{align-items:flex-start;flex-direction:column}.salary-period-form{align-items:stretch;margin:8.5px}.salary-period-form>*{width:100%!important}.attendance-toolbar{align-items:stretch}.attendance-toolbar>div{min-width:0;width:100%}.attendance-toolbar .btn{width:100%}.attendance-default-note{padding-bottom:0}.attendance-choice{flex-direction:column;align-items:stretch}.attendance-choice span{justify-content:center}.employee-table-panel .table-responsive,.employee-period-panel .table-responsive{margin-inline:-1px}.employee-period-panel .panel-body{padding-bottom:1px}}

/* ===== Employee directory polish: make the identity, salary countdown, and financial state easy to scan. ===== */
.employee-table{min-width:1220px}.attendance-row-locked{opacity:.55}.attendance-locked-note{font-size:12px;color:var(--muted);font-weight:700}.employee-name-trigger{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:0;padding:0;background:transparent;color:var(--ink);text-align:start;cursor:pointer}.employee-name-trigger .primary-cell{color:var(--brand-dark);font-weight:800}.employee-name-trigger:hover .primary-cell,.employee-name-trigger:focus-visible .primary-cell{color:var(--brand);text-decoration:underline;text-underline-offset:2.6px}.employee-name-trigger:focus-visible{outline:2px solid var(--brand);outline-offset:3.4px;border-radius:3.4px}.employee-countdown-chip{display:inline-flex;align-items:center;gap:3.4px;padding:3.4px 6.8px;border:1px solid #c8ddd5;border-radius:999px;background:#eef8f4;color:#176643;font-size:9.4px;white-space:nowrap}.employee-countdown-chip strong{font-size:12px}.employee-countdown-chip.is-due{border-color:#e1c27c;background:#fff8e8;color:#8a5a0a}.employee-balance-negative{color:#a43c37;font-weight:800}.employee-table td .secondary-cell{display:block;margin-top:2.6px}.employee-salary-date{display:inline-flex;align-items:center;gap:3.4px;unicode-bidi:isolate;white-space:nowrap}.employee-modal-hero .employee-salary-date{display:inline-flex}.employee-modal-open{overflow:hidden}.employee-modal-backdrop{position:fixed;inset:0;z-index:2050;display:grid;place-items:center;padding:14px;background:rgba(26,20,15,.48);backdrop-filter:blur(3.4px)}.employee-modal-backdrop[hidden]{display:none}.employee-modal{width:min(680px,calc(100vw - 20px));max-height:calc(100vh - 27px);overflow:auto;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 20px 60px rgba(36,25,15,.28);color:var(--ink);outline:0}.employee-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:19px 20px 15px;border-bottom:1px solid var(--line-soft);background:linear-gradient(135deg,var(--surface),var(--brand-soft))}.employee-modal-identity{display:flex;align-items:center;gap:11px;min-width:0}.employee-avatar{display:grid;place-items:center;width:41px;height:41px;flex:0 0 41px;border-radius:13px;background:var(--brand);color:#fff;font-size:18px;font-weight:800;box-shadow:0 6.8px 15px rgba(40,120,232,.24)}.employee-modal-kicker{display:block;margin-bottom:2.6px;color:var(--muted);font-size:8.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.employee-modal-header h2{margin:0;color:var(--ink);font-size:19px}.employee-modal-close{display:grid;place-items:center;width:27px;height:27px;border:1px solid var(--line);border-radius:7.7px;background:var(--surface);color:var(--muted);font-size:20px;line-height:1;cursor:pointer}.employee-modal-close:hover,.employee-modal-close:focus-visible{border-color:var(--brand);color:var(--brand)}.employee-modal-body{padding:17px 20px 20px}.employee-modal-hero{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;padding:14px 15px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(135deg,var(--brand-soft),var(--surface))}.employee-modal-hero strong{display:block;color:var(--brand-dark);font-size:17px}.employee-modal-hero [data-modal-days-label]{display:block;margin-top:2.6px;color:var(--brand);font-size:10px;font-weight:750}.employee-modal-status{padding:5.1px 8.5px;border:1px solid #c8ddd5;border-radius:999px;background:#eef8f4;color:#176643;font-size:9.4px;font-weight:800}.employee-finance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:15px}.employee-finance-card{display:flex;align-items:center;gap:9.4px;min-width:0;padding:12px;border:1px solid var(--line-soft);border-radius:11px;background:var(--surface-2)}.employee-finance-card .finance-icon{display:grid;place-items:center;width:26px;height:26px;border-radius:8.5px;font-size:15px;font-weight:900}.employee-finance-card span:not(.finance-icon){display:block;color:var(--muted);font-size:8.5px;font-weight:750}.employee-finance-card strong{display:block;margin-top:2px;font-size:13px;overflow-wrap:anywhere}.employee-finance-card.is-positive .finance-icon{background:#e1f3e9;color:#176643}.employee-finance-card.is-positive strong{color:#176643}.employee-finance-card.is-negative .finance-icon{background:#fbe4e4;color:#9f2836}.employee-finance-card.is-negative strong{color:#9f2836}.employee-finance-card.is-neutral .finance-icon{background:#eaf1fb;color:#2a5ba8}.employee-finance-card.is-neutral strong{color:#2a5ba8}.employee-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 15px;margin:0;border-top:1px solid var(--line-soft)}.employee-detail-grid>div{padding:10px 0;border-bottom:1px solid var(--line-soft)}.employee-detail-grid dt{margin-bottom:3.4px;color:var(--muted);font-size:8.5px;font-weight:750}.employee-detail-grid dd{margin:0;color:var(--ink);font-size:11px;font-weight:700;overflow-wrap:anywhere}.employee-modal-note{margin:14px 0 0;padding:8.5px 10px;border-inline-start:2.6px solid var(--brand);background:var(--surface-2);color:var(--muted);font-size:9.4px;line-height:1.6}.employee-modal-actions{display:flex;justify-content:flex-end;margin-top:12px}.employee-payments-modal-backdrop{z-index:2060}.employee-payments-modal{width:min(480px,calc(100vw - 20px));max-height:calc(100vh - 27px)}.employee-payments-table{min-width:0;width:100%}.employee-payments-empty{text-align:center}
@media(max-width:767.98px){.employee-finance-grid{grid-template-columns:1fr}}
@media(max-width:575.98px){.employee-modal-backdrop{padding:6.8px}.employee-modal{width:100%;max-height:calc(100vh - 14px);border-radius:12px}.employee-modal-header{padding:14px 14px 13px}.employee-modal-body{padding:13px 14px 15px}.employee-modal-header h2{font-size:16px}.employee-finance-grid,.employee-detail-grid{grid-template-columns:1fr}.employee-modal-hero{align-items:flex-start;flex-direction:column}.employee-modal-status{align-self:flex-start}.employee-modal-actions{justify-content:stretch}.employee-modal-actions .btn{width:100%}}
html[data-theme="dark"] .employee-name-trigger .primary-cell{color:#d8a754}html[data-theme="dark"] .employee-countdown-chip{border-color:#2f5a4d;background:#173123;color:#7fe0a8}html[data-theme="dark"] .employee-countdown-chip.is-due{border-color:#5c4a27;background:#332914;color:#e3bd69}html[data-theme="dark"] .employee-modal-backdrop{background:rgba(0,0,0,.64)}html[data-theme="dark"] .employee-modal-header{background:linear-gradient(135deg,var(--surface),var(--brand-soft))}html[data-theme="dark"] .employee-modal-hero{border-color:var(--line);background:linear-gradient(135deg,var(--brand-soft),var(--surface))}html[data-theme="dark"] .employee-modal-hero strong{color:#9cc2f5}html[data-theme="dark"] .employee-modal-hero [data-modal-days-label]{color:#7ab4f5}html[data-theme="dark"] .employee-modal-status{border-color:#2f5a4d;background:#173123;color:#7fe0a8}html[data-theme="dark"] .employee-finance-card.is-positive .finance-icon{background:#173123;color:#7fe0a8}html[data-theme="dark"] .employee-finance-card.is-positive strong{color:#7fe0a8}html[data-theme="dark"] .employee-finance-card.is-negative .finance-icon{background:#3a1c20;color:#f39aa1}html[data-theme="dark"] .employee-finance-card.is-negative strong{color:#f39aa1}html[data-theme="dark"] .employee-finance-card.is-neutral .finance-icon{background:#1c2c42;color:#8fb6ec}html[data-theme="dark"] .employee-finance-card.is-neutral strong{color:#8fb6ec}
/* ===== Users layout update: the creation panel is hidden, so the users table uses the full row. ===== */
.dashboard-grid.users-grid{grid-template-columns:minmax(0,1fr)!important}
/* ===== Rastovar recipe layout: give the product selector the width its long names need. ===== */
.col-span-7{grid-column:span 7}
@media(max-width:991.98px){.col-span-7{grid-column:span 6}}
/* ===== Rastovar recipe layout end ===== */
/* ===== Rastovar recipe guide: explain the sample values before the user submits anything. ===== */
.recipe-example-guide{display:flex;flex-wrap:wrap;gap:3.4px 15px;margin:-4px 0 12px;padding:8.5px 10px;border:1px solid #ead8b7;border-radius:6.8px;background:#fff9ed;color:#6b4b1d;font-size:10px}.recipe-example-guide strong{width:100%;font-size:11px}.recipe-example-guide span{line-height:1.5}
@media(max-width:575.98px){.recipe-example-guide{display:block}.recipe-example-guide span{display:block;margin-top:2.6px}}
/* ===== Rastovar recipe guide end ===== */
/* ===== Rastovar recipe costing UI: keep gross input costing visible while retaining legacy fields in storage. ===== */
form[action$="/recipes/store"] .form-grid > div:has(> input[name="expected_waste_percent"]),form[action$="/recipes/store"] .form-grid > div:has(> input[name="labour_cost"]),form[action$="/recipes/store"] .form-grid > div:has(> input[name="overhead_cost"]){display:none}
form[action$="/recipes/store"] .line-editor th:nth-child(3),form[action$="/recipes/store"] .line-editor td:nth-child(3){display:none}
/* ===== Rastovar recipe costing UI end ===== */
/* ===== Rastovar recipe preview: distinguish the calculation step from final formula saving. ===== */
.recipe-generate-error{margin:0 14px 8.5px;padding:7.7px 10px;border:1px solid #e1a5aa;border-radius:6.8px;background:#fbe4e4;color:#9f2836;font-size:10px;font-weight:700}
.recipe-cost-preview{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 14px 10px;padding:10px 12px;border:1px solid #b8d8ce;border-radius:8.5px;background:#f1faf6;color:var(--brand-dark)}.recipe-cost-preview>div{display:flex;align-items:baseline;gap:10px}.recipe-cost-preview strong{font-size:11px}.recipe-cost-preview span{font-size:18px;font-weight:800}.recipe-cost-preview p{margin:0;color:var(--muted);font-size:9.4px}.recipe-generate-button{--bs-btn-color:#8a5a0a;--bs-btn-border-color:#d5a24d;--bs-btn-hover-bg:#fff0d2;--bs-btn-hover-color:#6e4706;--bs-btn-hover-border-color:#c18a38}
@media(max-width:575.98px){.recipe-cost-preview{display:block;margin:0 11px 10px}.recipe-cost-preview p{margin-top:4.3px}.recipe-cost-preview>div{justify-content:space-between}}
/* ===== Rastovar recipe preview end ===== */

/* ===== SaaS redesign: brand-blue field borders, focus rings, and header controls ===== */
input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),select,textarea,.form-control,.form-select{border-color:var(--line)}
.form-control:focus,.form-select:focus,input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 .2rem var(--brand-soft)}
.language-select:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.language-switch{border-color:var(--line)!important}.language-switch:focus-within{border-color:var(--brand)!important;box-shadow:0 0 0 .2rem var(--brand-soft)!important}.language-icon{color:var(--brand)!important}.language-select:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.user-button:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:7.7px}.avatar{background:var(--brand)!important;color:#fff!important}
/* ===== Bakery formula table update: make status actions visually clear on hover. ===== */
.recipe-gross-cost small{display:block;color:var(--muted);font-size:8.5px;font-weight:500;text-align:end;cursor:help}.recipe-enable-button:hover{background:#e5f7ec!important;border-color:#83c99d!important;color:#176643!important}.recipe-disable-button:hover{background:#fde8e8!important;border-color:#e4a1a1!important;color:#9f2836!important}

/* ===== Dark mode update: toggle control shown beside the language dropdown on wide screens, and below the brand lockup on phones. ===== */
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:31px;height:31px;padding:0;border:1px solid var(--line);border-radius:6.8px;background:var(--surface);color:var(--ink);cursor:pointer;flex:0 0 auto}
.theme-toggle:hover{background:var(--surface-2)}
.theme-toggle:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.theme-toggle-icon{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle .icon-moon{display:none}
html[data-theme="dark"] .theme-toggle .icon-sun{display:none}
html[data-theme="dark"] .theme-toggle .icon-moon{display:block}
.theme-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:8.5px;padding:8.5px 14px;border-bottom:1px solid var(--line)}
.theme-toggle-row>span{font-size:9.4px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.mobile-nav .theme-toggle-row>span{color:var(--sidebar-ink-muted)}

/* ===== Dark mode update: a refined slate-and-violet palette (not the brand gold) covering every themed surface in the app shell. ===== */
html[data-theme="dark"]{color-scheme:dark}
html[data-theme="dark"]{--bg:#12141a;--surface:#1a1d24;--surface-2:#20242c;--ink:#e7e9ef;--muted:#9aa1b0;--muted-2:#767c86;--line:#2c3038;--line-soft:#242730;--brand:#4f95f0;--brand-dark:#2878E8;--brand-soft:rgba(40,120,232,.16);--danger:#f16a75;--warning:#e0a53f;--shadow:0 1px 2.6px rgba(0,0,0,.5)}
/* Bootstrap sets its own body/table/border color variables independently of our tokens above, so without this override every Bootstrap-driven element (table cells, dropdowns, form text) stays black-on-dark. */
html[data-theme="dark"]{--bs-body-color:#e7e9ef;--bs-body-color-rgb:231,233,239;--bs-body-bg:#12141a;--bs-body-bg-rgb:18,20,26;--bs-emphasis-color:#f4f5f8;--bs-secondary-color:#9aa1b0;--bs-secondary-bg:#20242c;--bs-tertiary-color:#9aa1b0;--bs-tertiary-bg:#1a1d24;--bs-border-color:#2c3038;--bs-border-color-translucent:#2c3038;--bs-heading-color:#e7e9ef;--bs-link-color:#4f95f0;--bs-link-hover-color:#7ab4f5}
html[data-theme="dark"] body{background:var(--bg);color:var(--ink)}
html[data-theme="dark"] .table,html[data-theme="dark"] .table>:not(caption)>*>*{color:var(--ink)}
html[data-theme="dark"] h1,html[data-theme="dark"] h2,html[data-theme="dark"] h3,html[data-theme="dark"] h4,html[data-theme="dark"] h5,html[data-theme="dark"] h6,html[data-theme="dark"] strong,html[data-theme="dark"] label{color:inherit}
html[data-theme="dark"] .page-context strong,html[data-theme="dark"] .page-head h1,html[data-theme="dark"] .panel-head h2,html[data-theme="dark"] .section-title,html[data-theme="dark"] .document-brand h1,html[data-theme="dark"] .document-title h2,html[data-theme="dark"] .metric-card .value,html[data-theme="dark"] .summary-item strong,html[data-theme="dark"] .total-row{color:var(--ink)}
html[data-theme="dark"] .metric-card .label,html[data-theme="dark"] .metric-card .meta,html[data-theme="dark"] .document-brand p,html[data-theme="dark"] .document-meta p,html[data-theme="dark"] .document-block label,html[data-theme="dark"] .summary-item span,html[data-theme="dark"] .form-text,html[data-theme="dark"] .page-head p{color:var(--muted)}
html[data-theme="dark"] .sidebar{background:#15171d;border-inline-end-color:var(--line)}
html[data-theme="dark"] .brand-mark{box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
html[data-theme="dark"] .brand-lockup strong{color:var(--ink)!important}
html[data-theme="dark"] .brand-lockup small{color:var(--muted)!important}
html[data-theme="dark"] .nav-section-label{color:#6b7180}
html[data-theme="dark"] .nav-link-erp{color:#aeb4c2}
html[data-theme="dark"] .nav-link-erp:hover{background:#1f232c!important;color:var(--ink)!important}
html[data-theme="dark"] .nav-link-erp.active{background:#fff!important;color:var(--brand-dark)!important}
html[data-theme="dark"] .nav-link-erp.active .nav-icon{color:var(--brand-dark)}
html[data-theme="dark"] .sidebar-footer{border-top-color:var(--line)}
html[data-theme="dark"] .business-chip{background:var(--surface-2)}
html[data-theme="dark"] .status-dot{background:var(--brand)!important;box-shadow:0 0 0 2.6px rgba(40,120,232,.22)!important}
html[data-theme="dark"] .sidebar-collapse-btn{border-color:var(--line);background:var(--surface);color:#aeb4c2}
html[data-theme="dark"] .sidebar-collapse-btn:hover{background:var(--surface-2);color:var(--ink)}
html[data-theme="dark"] .sidebar-collapse-btn:focus-visible{outline-color:rgba(40,120,232,.4)}
html[data-theme="dark"] .topbar{background:rgba(18,20,26,.92);border-bottom-color:var(--line)}
html[data-theme="dark"] .btn-icon,html[data-theme="dark"] .btn-quiet{background:var(--surface);color:var(--ink)}
html[data-theme="dark"] .user-button{color:var(--ink)}
html[data-theme="dark"] .user-button:hover{background:var(--surface-2)}
html[data-theme="dark"] .user-button small{color:var(--muted)}
html[data-theme="dark"] .avatar{background:var(--brand)!important;color:#fff!important}
html[data-theme="dark"] .page-context small{color:var(--muted)}
html[data-theme="dark"] .language-switch{background:var(--surface);color:var(--ink);border-color:var(--line)!important}
html[data-theme="dark"] .language-switch:focus-within{border-color:var(--brand)!important;box-shadow:0 0 0 .2rem var(--brand-soft)!important}
html[data-theme="dark"] .language-icon{color:var(--brand-dark)!important}
html[data-theme="dark"] .language-select{color:var(--ink);background:transparent}
html[data-theme="dark"] .language-select option{background:var(--surface);color:var(--ink)}
html[data-theme="dark"] .language-select:focus-visible{outline-color:var(--brand)}
html[data-theme="dark"] .user-button:focus-visible{outline-color:var(--brand)}
html[data-theme="dark"] .dropdown-menu{background:var(--surface);border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .dropdown-item{color:var(--ink)}
html[data-theme="dark"] .dropdown-item:hover,html[data-theme="dark"] .dropdown-item:focus{background:var(--surface-2);color:var(--ink)}
html[data-theme="dark"] .dropdown-item.text-danger{color:var(--danger)!important}
html[data-theme="dark"] .text-secondary{color:var(--muted)!important}
html[data-theme="dark"] .offcanvas{background:var(--surface);color:var(--ink)}
html[data-theme="dark"] .offcanvas-header{border-bottom-color:var(--line)}
html[data-theme="dark"] .btn-close{filter:invert(1) grayscale(1) brightness(1.8)}
html[data-theme="dark"] .card,html[data-theme="dark"] .panel{background:var(--surface);border-color:var(--line)}
html[data-theme="dark"] .panel-head{border-bottom-color:var(--line-soft)}
html[data-theme="dark"] .metric-card{background:var(--surface);border-color:var(--line)}
html[data-theme="dark"] .metric-card.accent{border-color:#2c4a44;background:#182420}
html[data-theme="dark"] .metric-card.danger{border-color:#4a2c30}
html[data-theme="dark"] .table thead th{background:#181b21;color:#8b93a3}
html[data-theme="dark"] .table>:not(caption)>*>*{border-bottom-color:var(--line-soft)}
html[data-theme="dark"] .table tbody tr:hover{background:#1c2029}
html[data-theme="dark"] .table .primary-cell{color:var(--ink)}
html[data-theme="dark"] .text-bg-success{background:#173123!important;color:#7fe0a8!important}
html[data-theme="dark"] .text-bg-warning{background:#332510!important;color:#f0bd6b!important}
html[data-theme="dark"] .text-bg-danger{background:#3a1c20!important;color:#f39aa1!important}
html[data-theme="dark"] .text-bg-secondary{background:#262a33!important;color:#b7bcc8!important}
html[data-theme="dark"] .text-bg-primary{background:#15294a!important;color:#9cc2f5!important}
html[data-theme="dark"] .text-bg-info{background:#122f38!important;color:#7fd0e6!important}
html[data-theme="dark"] .filter-bar{background:var(--surface);border-color:var(--line)}
html[data-theme="dark"] .form-label{color:#aeb4c2}
html[data-theme="dark"] input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] .form-control,html[data-theme="dark"] .form-select{background:var(--surface);color:var(--ink);border-color:#383c47}
html[data-theme="dark"] .form-control::placeholder{color:#6b7180}
html[data-theme="dark"] .form-control:focus,html[data-theme="dark"] .form-select:focus,html[data-theme="dark"] input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):focus,html[data-theme="dark"] select:focus,html[data-theme="dark"] textarea:focus{border-color:var(--brand)!important;box-shadow:0 0 0 .2rem var(--brand-soft)!important}
html[data-theme="dark"] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%239aa1b0' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}
html[data-theme="dark"] .section-title{color:var(--ink)}
html[data-theme="dark"] .form-section{border-bottom-color:var(--line-soft)}
html[data-theme="dark"] .form-actions{background:rgba(18,20,26,.96);border-top-color:var(--line)}
html[data-theme="dark"] .line-editor{border-color:var(--line)}
html[data-theme="dark"] .totals-box .total-row.grand{border-top-color:var(--line)}
html[data-theme="dark"] .document{background:var(--surface);border-color:var(--line)}
html[data-theme="dark"] .document-head{border-bottom-color:var(--line)}
html[data-theme="dark"] .document-block{border-color:var(--line-soft)}
html[data-theme="dark"] .summary-item{background:var(--surface-2);border-color:var(--line-soft)}
html[data-theme="dark"] .timeline-step:before{background:#3a3f4a}
html[data-theme="dark"] .timeline-step:after{background:var(--line)}
html[data-theme="dark"] .timeline-step.done:after{background:var(--brand-dark)}
html[data-theme="dark"] .timeline-step strong{color:var(--ink)}
html[data-theme="dark"] .empty-state{background:var(--surface);border-color:#383c47}
html[data-theme="dark"] .empty-code{color:#3a3f4a}
html[data-theme="dark"] .btn-primary,html[data-theme="dark"] .btn-success{--bs-btn-bg:#4f95f0!important;--bs-btn-border-color:#4f95f0!important;--bs-btn-hover-bg:#7ab4f5!important;--bs-btn-hover-border-color:#7ab4f5!important;--bs-btn-active-bg:#2878E8!important;--bs-btn-active-border-color:#2878E8!important;--bs-btn-color:#fff!important;--bs-btn-hover-color:#fff!important}
html[data-theme="dark"] .btn-outline-primary{--bs-btn-color:#9cc2f5!important;--bs-btn-border-color:#2c4a6e!important;--bs-btn-hover-bg:#4f95f0!important;--bs-btn-hover-border-color:#4f95f0!important;--bs-btn-hover-color:#fff!important}
html[data-theme="dark"] .btn-outline-secondary,html[data-theme="dark"] .btn-quiet{--bs-btn-color:#c3c7d1!important;--bs-btn-border-color:#383c47!important;--bs-btn-hover-bg:#242832!important;--bs-btn-hover-border-color:#4f95f0!important;--bs-btn-hover-color:var(--ink)!important;background:var(--surface)}
html[data-theme="dark"] .btn-danger{--bs-btn-bg:#c94750!important;--bs-btn-border-color:#c94750!important;--bs-btn-hover-bg:#a83940!important;--bs-btn-hover-border-color:#a83940!important}
html[data-theme="dark"] .btn-outline-danger{--bs-btn-color:#f0838c!important;--bs-btn-border-color:#5c3237!important;--bs-btn-hover-bg:#c94750!important;--bs-btn-hover-border-color:#c94750!important;--bs-btn-hover-color:#fff!important}
html[data-theme="dark"] .report-links .report-link{border-color:var(--line-soft);color:var(--ink);background:var(--surface-2)}
html[data-theme="dark"] .report-total{background:#1c2129}
html[data-theme="dark"] .erp-body .app-shell{scrollbar-color:#2c4a6e #181b21}
html[data-theme="dark"] .erp-body .app-shell::-webkit-scrollbar-track{background:#181b21;border-inline-start-color:var(--line)}
html[data-theme="dark"] .erp-body .app-shell::-webkit-scrollbar-thumb{background:#2c4a6e;border-color:#181b21}
html[data-theme="dark"] .erp-body .app-shell::-webkit-scrollbar-thumb:hover{background:#4f95f0}
html[data-theme="dark"] .employee-balance-positive{color:#e0a53f}
html[data-theme="dark"] .attendance-choice span{border-color:var(--line);background:var(--surface)}
html[data-theme="dark"] .attendance-choice input:checked+.attendance-present{background:#173123;border-color:#2f5a3d;color:#7fe0a8}
html[data-theme="dark"] .attendance-choice input:checked+.attendance-absent{background:#3a1c20;border-color:#5c3237;color:#f39aa1}
html[data-theme="dark"] .attendance-default-note{color:var(--muted)}
html[data-theme="dark"] .recipe-example-guide{background:#231d10;border-color:#4a3f1c;color:#dcc482}
html[data-theme="dark"] .recipe-cost-preview{background:#141c2e;border-color:#2c3a55;color:#9cc2f5}
html[data-theme="dark"] .recipe-generate-button{--bs-btn-color:#9cc2f5!important;--bs-btn-border-color:#2c4a6e!important;--bs-btn-hover-bg:#242832!important;--bs-btn-hover-color:#cfe3fb!important;--bs-btn-hover-border-color:#4f95f0!important}
html[data-theme="dark"] .recipe-generate-error{background:#3a1c20;border-color:#5c3237;color:#f39aa1}
html[data-theme="dark"] .recipe-enable-button:hover{background:#173123!important;border-color:#2f5a3d!important;color:#7fe0a8!important}
html[data-theme="dark"] .recipe-disable-button:hover{background:#3a1c20!important;border-color:#5c3237!important;color:#f39aa1!important}
html[data-theme="dark"] .app-toast{box-shadow:0 10px 26px rgba(0,0,0,.5);background:var(--surface);border-color:var(--line)}
@media print{html[data-theme="dark"] body{background:#fff!important;color:#000!important}}
/* ===== Expense list update: give the summary and filter controls a stable responsive composition. ===== */
.expense-overview{display:grid;grid-template-columns:minmax(245px,340px) minmax(0,1fr);gap:10px;align-items:stretch;margin-bottom:12px}
.expense-total-card{display:flex;flex-direction:column;justify-content:center;min-height:124px;padding:15px 17px}
.expense-total-card .value{font-size:clamp(19px,2.2vw,26px)}
.expense-filter-bar{margin:0;align-content:center}
.expense-filter-field{flex:1 1 190px;min-width:0}
.expense-filter-field .form-control,.expense-filter-field .form-select{width:100%}
.expense-filter-actions{display:flex;align-items:end;gap:6.8px;flex:0 0 auto}
.expense-filter-actions .btn{min-height:31px;white-space:nowrap}
@media(max-width:991.98px){.expense-overview{grid-template-columns:1fr}.expense-total-card{min-height:0}}
@media(max-width:575.98px){.expense-filter-actions{width:100%}.expense-filter-actions .btn{flex:1}.expense-filter-actions .btn-link{flex:0 1 auto}}
.jalali-date-input{cursor:pointer;background:var(--surface);text-align:start}
.jalali-datepicker-popup{z-index:2000;background:var(--surface);border:1px solid var(--line);border-radius:8.5px;box-shadow:0 10px 26px rgba(0,0,0,.18);padding:8.5px;width:260px;font-size:10px;direction:rtl}
.jalali-datepicker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6.8px;font-weight:700;color:var(--ink)}
.jalali-datepicker-nav{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:5.1px;width:22px;height:22px;line-height:1;cursor:pointer}
.jalali-datepicker-nav:hover{background:var(--brand-soft);border-color:var(--brand)}
.jalali-datepicker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:3.4px;color:var(--muted);font-size:8.5px;text-align:center}
.jalali-datepicker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.jalali-datepicker-day{border:1px solid transparent;background:transparent;color:var(--ink);border-radius:5.1px;height:24px;cursor:pointer;font-size:10px}
.jalali-datepicker-day:hover{background:var(--surface-2)}
.jalali-datepicker-day.is-selected{background:var(--brand);color:#fff;font-weight:700}
.jalali-datepicker-footer{display:flex;justify-content:space-between;margin-top:6.8px;padding-top:6.8px;border-top:1px solid var(--line-soft)}
.jalali-datepicker-today,.jalali-datepicker-clear{border:0;background:transparent;color:var(--brand);font-weight:700;font-size:9.4px;cursor:pointer;padding:2px 3.4px}
.jalali-datepicker-clear{color:var(--muted)}

/* ===== Header account menu update: a compact account card makes Settings and sign-out feel like intentional ERP actions. ===== */
.user-menu .user-button{min-height:34px;padding:4.3px 6.8px;gap:7.7px;border:1px solid transparent;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.user-menu .user-button:hover,.user-menu.show .user-button{background:var(--surface-2);border-color:var(--line)}.user-menu.show .user-button{box-shadow:0 2px 8px rgba(19,38,33,.08)}.user-chevron{display:grid;place-items:center;width:14px;height:14px;color:var(--muted);transition:transform .18s ease,color .18s ease}.user-chevron svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.user-menu.show .user-chevron{color:var(--brand);transform:rotate(180deg)}.user-menu-panel{width:min(292px,calc(100vw - 17px));margin-top:7px!important;padding:6.8px!important;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(19,38,33,.16);background:var(--surface);overflow:hidden}.user-menu-profile{display:flex;align-items:center;gap:8.5px;padding:7.7px 8.5px 9.4px}.user-menu-avatar{display:grid;place-items:center;flex:0 0 auto;width:33px;height:33px;border-radius:9.4px;background:var(--brand-soft);color:var(--brand-dark);font-size:12px;font-weight:800}.user-menu-profile>div{min-width:0;display:flex;flex-direction:column;gap:1.7px}.user-menu-profile strong{overflow:hidden;color:var(--ink);font-size:10.8px;font-weight:780;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.user-menu-profile span:last-child{overflow:hidden;color:var(--muted);font-size:9.4px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap;direction:ltr;text-align:start}.user-menu-divider{height:1px;margin:0 5.1px 5.1px;background:var(--line-soft)}.user-menu-item{display:flex;align-items:center;gap:8.5px;width:100%;min-height:32px;padding:6.8px 8.5px;border-radius:6.8px;color:var(--ink);font-size:10.8px;font-weight:680;text-align:start;transition:background-color .15s ease,color .15s ease}.user-menu-item:hover,.user-menu-item:focus{background:var(--brand-soft);color:var(--brand-dark)}.user-menu-icon{display:grid;place-items:center;flex:0 0 auto;width:18px;height:18px;border-radius:5.1px;background:var(--surface-2);color:var(--muted)}.user-menu-icon svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.user-menu-signout{margin-top:1.7px;color:var(--danger)!important}.user-menu-signout .user-menu-icon{background:#fff0f1;color:var(--danger)}.user-menu-signout:hover,.user-menu-signout:focus{background:#fff1f2;color:var(--danger)!important}.user-menu-signout:hover .user-menu-icon,.user-menu-signout:focus .user-menu-icon{background:#ffdfe2}.user-menu-signout:focus-visible{outline:2px solid var(--danger);outline-offset:-2px}@media(max-width:575.98px){.user-menu-panel{margin-top:5.1px!important}.user-menu .user-button{padding-inline:3.4px}.user-menu-profile{padding:7.7px}.user-menu-item{min-height:34px}}
html[data-theme="dark"] .user-menu .user-button:hover,html[data-theme="dark"] .user-menu.show .user-button{background:var(--surface-2);border-color:var(--line)}html[data-theme="dark"] .user-menu.show .user-button{box-shadow:0 12px 30px rgba(0,0,0,.3)}html[data-theme="dark"] .user-menu-panel{background:var(--surface);border-color:var(--line);box-shadow:0 12px 30px rgba(0,0,0,.45)}html[data-theme="dark"] .user-menu-avatar{background:var(--brand-soft);color:#9cc2f5}html[data-theme="dark"] .user-menu-icon{background:#242832;color:#aeb4c2}html[data-theme="dark"] .user-menu-item:hover,html[data-theme="dark"] .user-menu-item:focus{background:var(--brand-soft);color:#9cc2f5}html[data-theme="dark"] .user-menu-signout{color:#f0838c!important}html[data-theme="dark"] .user-menu-signout .user-menu-icon{background:#3a1c20;color:#f0838c}html[data-theme="dark"] .user-menu-signout:hover,html[data-theme="dark"] .user-menu-signout:focus{background:#3a1c20;color:#f39aa1!important}

/* ===== App loader: branded overlay shown during page navigation and form submits. ===== */
.app-loader{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:rgba(247,248,250,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility 0s linear .18s}
.app-loader.is-active{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .12s ease}
.app-loader-inner{display:flex;flex-direction:column;align-items:center;gap:15px}
.app-loader-logo{height:34px;width:auto;object-fit:contain;animation:app-loader-pulse 1.5s ease-in-out infinite}
.app-loader-logo-dark{display:none}
.app-loader-bar{width:140px;height:3px;border-radius:999px;background:var(--line);overflow:hidden;position:relative}
.app-loader-bar span{position:absolute;inset-block:0;inset-inline-start:0;width:40%;border-radius:999px;background:var(--brand);animation:app-loader-slide 1.1s ease-in-out infinite}
@keyframes app-loader-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.94)}}
@keyframes app-loader-slide{0%{transform:translateX(-110%)}50%{transform:translateX(60%)}100%{transform:translateX(220%)}}
html[data-theme="dark"] .app-loader{background:rgba(15,17,21,.8)}
html[data-theme="dark"] .app-loader-logo{display:none}
html[data-theme="dark"] .app-loader-logo-dark{display:block}
/* ===== Header account menu update end ===== */

/* ===== Sales form simplification: keep the fixed AFN rate internal and give the invoice header a single compact row. ===== */
form[action*="route=sales%2Fstore"] .form-grid > div:has(> input[name="exchange_rate"]),
form[action*="route=sales%2Fstore"] #simple-invoice-currency-note{display:none}
form[action*="route=sales%2Fstore"] .form-grid > div:has(> select[name="customer_id"]){grid-column:span 3}
form[action*="route=sales%2Fstore"] .form-grid > div:has(> select[name="warehouse_id"]){grid-column:span 2}
form[action*="route=sales%2Fstore"] .form-grid > div:has(> select[aria-describedby="simple-invoice-currency-note"]){grid-column:span 2}
form[action*="route=sales%2Fstore"] .form-grid > div:has(> input[name="discount_amount"]){grid-column:span 3}
form[action*="route=sales%2Fstore"] .form-grid > div:has(> input[name="notes"]){grid-column:span 12}
form[action*="route=sales%2Fstore"] .form-grid > div:has(> select[aria-describedby="simple-invoice-currency-note"]) > select{display:none}
form[action*="route=sales%2Fstore"] .form-grid > div:has(> select[aria-describedby="simple-invoice-currency-note"])::after{content:"AFN";display:flex;align-items:center;min-height:31px;padding:0 10px;border:1px solid var(--line);border-radius:6.8px;background:#e9ecef;color:var(--ink);font-size:11px}
html[data-theme="dark"] form[action*="route=sales%2Fstore"] .form-grid > div:has(> select[aria-describedby="simple-invoice-currency-note"])::after{background:var(--surface-2);border-color:var(--line);color:var(--ink)}
@media(max-width:991.98px){form[action*="route=sales%2Fstore"] .form-grid > div:has(> select[name="customer_id"]),form[action*="route=sales%2Fstore"] .form-grid > div:has(> select[name="warehouse_id"]),form[action*="route=sales%2Fstore"] .form-grid > div:has(> select[aria-describedby="simple-invoice-currency-note"]),form[action*="route=sales%2Fstore"] .form-grid > div:has(> input[name="discount_amount"]){grid-column:span 3}}
@media(max-width:575.98px){form[action*="route=sales%2Fstore"] .form-grid > div:has(> select[name="customer_id"]),form[action*="route=sales%2Fstore"] .form-grid > div:has(> select[name="warehouse_id"]),form[action*="route=sales%2Fstore"] .form-grid > div:has(> select[aria-describedby="simple-invoice-currency-note"]),form[action*="route=sales%2Fstore"] .form-grid > div:has(> input[name="discount_amount"]),form[action*="route=sales%2Fstore"] .form-grid > div:has(> input[name="notes"]){grid-column:1/-1}}

/* ===== Payment form simplification: balance the four active entry fields and give notes its own full row. ===== */
form[data-payment-form] .form-grid > div:has(> select[name="payment_type"]),form[data-payment-form] .form-grid > div:has(> select[name="party_id"]),form[data-payment-form] .form-grid > div:has(> input[name="payment_date"]),form[data-payment-form] .form-grid > div:has(> input[name="amount"]){grid-column:span 3}
form[data-payment-form] .form-grid > div:has(> input[name="notes"]){grid-column:1/-1}

/* ===== Page refresh control: keep the icon compact in the shell and animate only while this page reloads. ===== */
.page-refresh-button{color:var(--muted);border-color:var(--line);background:var(--surface);flex:none}
.page-refresh-mobile{display:none}
.page-refresh-desktop{display:grid}
.page-refresh-button:hover{color:var(--brand);border-color:var(--brand);background:var(--brand-soft)}
.page-refresh-icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.page-refresh-button.is-refreshing .page-refresh-icon{animation:page-refresh-spin .7s linear infinite}
@keyframes page-refresh-spin{to{transform:rotate(360deg)}}
@media(max-width:767.98px){.page-refresh-desktop{display:none}.page-refresh-mobile{display:grid}}

/* ===== Shareholders list: its row actions mix icon buttons with text buttons, so on phones they wrap instead of
   being squeezed into the 34px icon-button width. ===== */
.mobile-record-table tbody td:last-child .product-actions.shareholder-actions{flex-wrap:wrap}
.mobile-record-table tbody td:last-child .product-actions.shareholder-actions .btn:not(.icon-btn){width:auto;min-width:0;white-space:nowrap}

/* ===== ERP Update: every native select gets a consistent writable search surface while
   the original select stays in the form for server-side values and existing workflows. ===== */
.searchable-select{position:relative;width:100%;min-width:0}.searchable-select-input{width:100%;min-height:31px;padding-inline-end:30px;background:var(--surface);color:var(--ink);cursor:text}.searchable-select-input:disabled{cursor:not-allowed;opacity:.7}.searchable-select::after{content:"⌄";position:absolute;inset-inline-end:10px;top:50%;z-index:2;color:var(--muted);font-size:14px;line-height:1;pointer-events:none;transform:translateY(-58%);transition:transform .15s ease,color .15s ease}.searchable-select.is-open::after{color:var(--brand);transform:translateY(-42%) rotate(180deg)}.searchable-select-native{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;border:0!important;opacity:0!important;pointer-events:none!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important}.searchable-select-menu{position:absolute;inset-inline:0;top:calc(100% + 4px);z-index:2100;max-height:240px;overflow-y:auto;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 12px 28px rgba(19,38,33,.16)}.searchable-select-option{display:block;width:100%;padding:7px 9px;border:0;border-radius:5px;background:transparent;color:var(--ink);font:inherit;font-size:11px;line-height:1.45;text-align:start;cursor:pointer}.searchable-select-option:hover,.searchable-select-option:focus,.searchable-select-option.is-active{background:var(--brand-soft);color:var(--brand-dark);outline:0}.searchable-select-option[aria-selected="true"]{font-weight:750}.searchable-select-empty{padding:8px 9px;color:var(--muted);font-size:10px;text-align:center}.searchable-select.is-open{z-index:2110}.table-responsive:has(.searchable-select.is-open){overflow:visible}html[data-theme="dark"] .searchable-select-input{background:var(--surface);color:var(--ink);border-color:#383c47}html[data-theme="dark"] .searchable-select-menu{background:var(--surface);border-color:var(--line);box-shadow:0 12px 28px rgba(0,0,0,.45)}html[data-theme="dark"] .searchable-select-option:hover,html[data-theme="dark"] .searchable-select-option:focus,html[data-theme="dark"] .searchable-select-option.is-active{background:var(--brand-soft);color:#9cc2f5}
@media(max-width:767.98px){.searchable-select-input{font-size:16px!important;line-height:1.35}.searchable-select-menu{max-height:45vh}.searchable-select-option{font-size:14px;padding-block:9px}}

.form-grid [hidden]{display:none!important}

/* ===== iOS login focus: keep mobile credential fields at 16px so Safari does not auto-zoom the page. ===== */
@media(max-width:767.98px){.auth-panel input.form-control{font-size:16px!important}}

/* ===== iOS zoom fix: every mobile form control uses 16px text so Safari never auto-zooms on focus. ===== */
@media(max-width:767.98px){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea,.form-control,.form-select,.language-select,.searchable-select-input{font-size:16px!important}}
