@font-face{font-family:Vazirmatn;src:url(fonts/vazirmatn-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(fonts/vazirmatn-700.woff2) format("woff2");font-weight:700;font-display:swap}
:root{--brand:#8500b4;--brand-dark:#5d0878;--ink:#17212b;--muted:#657281;--line:#dce3e9;--bg:#f4f6f8;--panel:#fff;--nav:#171c23;--ok:#087f5b;--warn:#b05a00;--danger:#b42318;--soft-purple:#f7eefb;--radius:8px}
*{box-sizing:border-box}
html{font-size:16px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Vazirmatn,Tahoma,sans-serif;letter-spacing:0}
button,input,select,textarea{font:inherit;letter-spacing:0}
a{color:inherit;text-decoration:none}
.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}
.sidebar{background:var(--nav);color:#eef1f4;padding:20px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:30}
.brand{display:flex;gap:12px;align-items:center;padding:0 8px 20px;border-bottom:1px solid #303742}
.brand strong,.brand small{display:block}
.brand small{color:#aeb7c1;font-size:.75rem;margin-top:4px}
.brand-mark{display:grid;place-items:center;width:42px;height:42px;background:var(--brand);color:#fff;font-weight:700;border-radius:6px;flex:none}
.sidebar nav{display:grid;gap:3px;margin-top:16px;overflow:auto}
.sidebar nav a{padding:10px 12px;border-radius:6px;color:#cbd2d9;font-size:.9rem}
.sidebar nav a:hover{background:#242b34;color:#fff}
.sidebar nav a.active{background:var(--brand);color:#fff;font-weight:700}
.sidebar-foot{margin-top:auto;border-top:1px solid #303742;padding:15px 8px 0;display:grid;gap:6px;font-size:.8rem;color:#b9c1c9}
.sidebar-foot span{color:#fff;font-weight:700}
.main{min-width:0}
.topbar{min-height:82px;background:#fff;border-bottom:1px solid var(--line);padding:14px 26px;display:flex;align-items:center;gap:18px;position:sticky;top:0;z-index:20}
.topbar h1{font-size:1.22rem;margin:0 0 5px}
.status-dot{font-size:.73rem;color:var(--ok)}
.status-dot:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;margin-left:6px}
.status-dot.closed{color:var(--muted)}
.period-picker{margin-right:auto}
.period-picker label{display:flex;align-items:center;gap:8px;font-size:.78rem;color:var(--muted)}
.period-picker select{min-width:120px;padding:8px}
.menu-toggle{display:none;background:none;border:0;font-size:1.4rem}
.content{padding:24px;max-width:1600px;margin:auto}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin:0 0 18px;box-shadow:0 5px 16px rgba(25,38,52,.04)}
.panel h2{font-size:1rem;margin:0 0 18px}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px}
.panel-head h2{margin:0}
.panel summary{cursor:pointer;font-weight:700;padding:2px 0;list-style:none}
.panel summary:after{content:"+";float:left;color:var(--brand);font-size:1.25rem}
.panel[open] summary{margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.panel[open] summary:after{content:"−"}
.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.action-grid>.panel{margin:0}
.form-stack{display:grid;gap:18px}
.login-form label{display:grid;gap:7px;font-size:.82rem;font-weight:700;color:#344150}
.login-form input,.period-picker select{width:100%;border:1px solid #cbd5de;background:#fff;border-radius:6px;min-height:44px;padding:9px 11px;color:var(--ink)}
.login-form input:focus{border-color:var(--brand);outline:3px solid rgba(133,0,180,.1)}
.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:6px;padding:10px 16px;min-height:44px;font-weight:700;cursor:pointer}
.button.primary{background:var(--brand);color:#fff}
.button.primary:hover{background:var(--brand-dark)}
.button.danger{background:var(--danger);color:#fff}
.button:disabled{opacity:.45;cursor:not-allowed}
.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}
.metric-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}
.metric{background:#fff;border:1px solid var(--line);border-top:3px solid #4a5968;border-radius:var(--radius);padding:17px;min-height:104px;display:flex;flex-direction:column;justify-content:space-between}
.metric:nth-child(3n+2){border-top-color:var(--brand)}
.metric:nth-child(3n){border-top-color:var(--ok)}
.metric.accent{background:var(--soft-purple);border-color:#d9b6e5}
.metric span{font-size:.78rem;color:var(--muted)}
.metric strong{font-size:1.18rem;line-height:1.5}
.summary-row{display:grid;grid-template-columns:repeat(6,auto);gap:14px;align-items:center;margin-top:18px}
.summary-row span{color:var(--muted);font-size:.78rem}
.summary-row b{font-size:.9rem}
.table-wrap{overflow:auto}
.table-wrap table{width:100%;border-collapse:collapse;min-width:720px}
.table-wrap th,.table-wrap td{text-align:right;border-bottom:1px solid var(--line);padding:12px 10px;white-space:nowrap;font-size:.8rem}
.table-wrap th{background:#f7f8fa;color:#4b5967;font-weight:700}
.table-wrap tbody tr:hover{background:#faf7fc}
.table-wrap tfoot th{background:#eef2f5;color:var(--ink)}
.badge{display:inline-flex;border-radius:999px;padding:4px 10px;font-size:.72rem}
.badge.ok{background:#e8f7f1;color:var(--ok)}
.badge.danger{background:#fff0ef;color:var(--danger)}
.alert{border-radius:6px;padding:12px 15px;margin:0 0 18px;border:1px solid}
.alert.success{background:#ecfdf5;border-color:#a7f3d0;color:#067647}
.alert.danger{background:#fff1f0;border-color:#f7b4ae;color:#9b1c13}
.tabs{display:flex;gap:6px;overflow:auto;margin-bottom:18px;border-bottom:1px solid var(--line)}
.tabs a{padding:10px 14px;white-space:nowrap;font-size:.82rem}
.tabs a.active{color:var(--brand);border-bottom:3px solid var(--brand);font-weight:700}
.login-page,.install-page{min-height:100vh;background:#eef1f4;display:grid;place-items:center;padding:24px}
.login-shell{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:8px;padding:32px;box-shadow:0 18px 50px rgba(20,27,35,.1)}
.login-shell .brand-mark{margin:auto}
.login-shell h1{font-size:1.25rem;text-align:center;margin:18px 0 8px}
.login-shell>p{text-align:center;color:var(--muted);font-size:.8rem}
.login-form{display:grid;gap:16px;margin-top:24px}
.install-shell{width:min(1050px,100%);margin:auto}
.install-head{background:var(--nav);color:#fff;padding:18px 22px;border-radius:8px 8px 0 0;display:flex;justify-content:space-between}
.install-head span{color:#d2a9df}
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.check{display:flex;justify-content:space-between;padding:10px;background:#f6f8fa;border-radius:6px;font-size:.8rem}
.check.ok span{color:var(--ok)}
.check.bad span{color:var(--danger)}
.jalali-date-view,.jalali-datetime-view{display:inline-block;white-space:nowrap;direction:rtl}
.jalali-preview{color:var(--brand)!important}
.attachment-link{display:block;color:var(--brand);font-size:.75rem;text-decoration:underline;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.page-actions{display:flex;justify-content:flex-end;margin-bottom:12px}
.top-actions{gap:8px;flex-wrap:wrap}
.employer-overview{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:18px;align-items:stretch;margin-bottom:18px}
.employer-overview .panel,.employer-overview .metric{margin:0}
.employer-balance-card{min-height:100%;justify-content:center;gap:16px}
.form-panel{border-top:3px solid var(--brand)}
.subsection-title{padding:14px 20px;margin-bottom:12px;background:#fbfcfd}
.subsection-title h2{margin:0}
.subaccount-sections{display:grid;gap:18px}
.subaccount-sections .panel{margin:0}
.hint,.empty-state{color:var(--muted);font-size:.8rem}
.empty-state{padding:28px;text-align:center}
.row-actions{display:flex;gap:8px;align-items:center}
.reject-form{display:flex;gap:6px}
.reject-form input{min-height:40px;border:1px solid var(--line);border-radius:6px;padding:6px}
.confirm-import{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px}
.export-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.export-item{border:1px solid var(--line);padding:14px;border-radius:6px;display:grid;gap:4px}
.export-item span{color:var(--muted);font-size:.75rem}
.detail-grid{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:10px 16px;margin:18px 0}
.detail-grid span{color:var(--muted);font-size:.78rem}
.attachments{margin-top:15px;display:flex;gap:10px;align-items:center}
.form-help,.insurance-intro p,.account-explainer p{color:var(--muted);font-size:.82rem;line-height:1.9}
.insurance-intro{display:flex;align-items:center;justify-content:space-between;gap:20px}
.date-picker-field{position:relative}
.jalali-date-input{cursor:pointer;background:#fff!important}
.jalali-calendar{position:absolute;z-index:60;top:calc(100% - 20px);right:0;width:290px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;box-shadow:0 18px 45px rgba(23,33,43,.18)}
.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.calendar-head button,.calendar-today,.calendar-days button{border:0;background:transparent;cursor:pointer;border-radius:5px}
.calendar-head button{font-size:1.4rem;width:34px;height:34px}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;gap:3px}
.calendar-week{color:var(--muted);font-size:.7rem;margin-bottom:5px}
.calendar-days button{height:34px;color:var(--ink)}
.calendar-days button:hover{background:var(--soft-purple)}
.calendar-days button.selected{background:var(--brand);color:#fff}
.calendar-today{width:100%;margin-top:8px;padding:7px;color:var(--brand);background:var(--soft-purple)}
.sample-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.sample-grid>div{border:1px solid var(--line);border-radius:6px;padding:14px;background:#fafbfc}
.sample-grid b{font-size:.86rem}
.sample-grid .form-help{margin:5px 0 10px}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.metric-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}
.action-grid{grid-template-columns:1fr}
.summary-row{grid-template-columns:repeat(2,auto)}
.employer-overview{grid-template-columns:1fr}}
@media(max-width:760px){.app-shell{display:block}
.sidebar{position:fixed;right:0;top:0;width:min(82vw,300px);transform:translateX(110%);transition:transform .2s}
.sidebar.open{transform:none}
.topbar{padding:11px 14px;min-height:70px}
.topbar h1{font-size:1rem}
.menu-toggle{display:block}
.period-picker label{font-size:0}
.period-picker select{min-width:95px}
.content{padding:14px}
.metric-grid,.metric-grid.compact{grid-template-columns:1fr 1fr;gap:9px}
.metric{padding:13px;min-height:92px}
.metric strong{font-size:.95rem}
.panel{padding:15px}
.table-wrap{overflow:visible}
.table-wrap table{min-width:0}
.table-wrap thead{display:none}
.table-wrap tbody,.table-wrap tr,.table-wrap td{display:block}
.table-wrap tr{border:1px solid var(--line);border-radius:6px;margin-bottom:10px;padding:8px}
.table-wrap td{display:flex;justify-content:space-between;gap:12px;border:0;padding:6px;white-space:normal}
.table-wrap td:before{content:attr(data-label);color:var(--muted);font-size:.72rem}
.table-wrap tfoot{display:none}
.check-grid{grid-template-columns:1fr}
.install-head{display:grid;gap:5px}
.login-shell{padding:24px 18px}}
@media(max-width:420px){.metric-grid,.metric-grid.compact{grid-template-columns:1fr}
.topbar>div{max-width:120px}
.topbar h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media(max-width:760px){.export-grid,.sample-grid{grid-template-columns:1fr}
.row-actions,.reject-form,.confirm-import{align-items:stretch;flex-direction:column}
.detail-grid{grid-template-columns:auto 1fr}
.page-actions{justify-content:stretch}
.page-actions .button{width:100%}}
@media(max-width:760px){.insurance-intro{align-items:stretch;flex-direction:column}
.jalali-calendar{position:fixed;top:50%;right:50%;transform:translate(50%,-50%);width:min(92vw,340px)}}
.action-grid{grid-template-columns:1fr}
.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.permission-status{grid-column:1/-1;border:1px solid var(--line);border-radius:10px;background:#f8fafc;color:var(--muted);padding:10px 12px;font-size:.82rem;line-height:1.8}
.permission-status b{color:var(--ink)}
.notification-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.notification-row p{margin:4px 0;color:var(--muted);font-size:.8rem}
.inline-danger{display:flex;gap:8px}
.inline-danger input{min-height:40px;border:1px solid var(--line);border-radius:6px;padding:7px}
@media(max-width:760px){.permission-grid{grid-template-columns:1fr}
.notification-row,.inline-danger{align-items:stretch;flex-direction:column}}
.badge.warning{background:#fff4e6;color:var(--warn)}
.alert.info{background:#eef6ff;border-color:#bfd8f8;color:#24527a}
.review-list{display:grid;gap:14px}
.review-card{border:1px solid var(--line);border-radius:7px;padding:16px;background:#fbfcfd}
.review-card .detail-grid{margin-top:0}
.selected-files{display:grid;gap:6px;margin-top:5px}
.selected-file{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f4f6f8;border:1px solid var(--line);border-radius:5px;padding:7px 9px;font-size:.75rem}
.selected-file button{border:0;background:#fff0ef;color:var(--danger);border-radius:4px;padding:4px 9px;cursor:pointer}
.account-link{color:var(--brand);font-weight:700;border-bottom:1px dashed currentColor}
.dashboard-alert{display:flex;justify-content:space-between;align-items:center}
.dashboard-alert span{font-size:.8rem}
.settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.settings-card{display:grid;gap:6px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.settings-card:hover{border-color:var(--brand);box-shadow:0 6px 18px rgba(133,0,180,.08)}
.settings-card span{color:var(--muted);font-size:.78rem}
.pager{margin-top:14px;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.pager span{color:var(--muted);font-size:.82rem;background:#f7f8fa;border:1px solid var(--line);border-radius:999px;padding:9px 14px}
.button.disabled{opacity:.42;pointer-events:none;background:#eef2f5;color:#697685}
.plan-summary{background:var(--soft-purple);padding:14px;border-radius:6px}
@media(max-width:760px){.dashboard-alert{align-items:flex-start;flex-direction:column}
.settings-grid{grid-template-columns:1fr}}
.compact-form{max-width:1180px}
.login-form input,.period-picker select{min-height:38px;padding:8px 10px}
.login-form label{gap:5px}
.button{min-height:40px;padding:9px 14px}
.panel{padding:16px;margin-bottom:14px}
.panel h2{margin-bottom:12px}
.panel[open] summary{margin-bottom:14px;padding-bottom:10px}
.metric{min-height:86px;padding:14px}
.summary-card-compact{min-height:86px;padding:14px}
.summary-card-compact strong{font-size:1.25rem}
.employer-overview{grid-template-columns:minmax(260px,1fr) minmax(320px,1fr);gap:14px;margin-bottom:14px}
.employer-overview .account-explainer{display:flex;flex-direction:column;justify-content:center}
.employer-overview .account-explainer p{margin:0}
.page-action-bar{display:flex;justify-content:flex-start;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.page-action-bar .button,.compact-actions .button{white-space:nowrap}
.compact-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.summary-dashboard{display:grid;gap:14px;margin-bottom:18px;direction:ltr;align-items:stretch}
.summary-dashboard>*{direction:rtl}
.summary-actions{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px;min-height:86px}
.summary-actions .button,.summary-actions .export-menu{min-width:160px}
.insurance-dashboard{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(240px,auto);grid-template-areas:"insurance-base insurance-supp insurance-collected insurance-open insurance-actions" "insurance-partial insurance-open-count . . ."}
.insurance-action-area{grid-area:insurance-actions}
.insurance-base{grid-area:insurance-base}
.insurance-supp{grid-area:insurance-supp}
.insurance-collected{grid-area:insurance-collected}
.insurance-open{grid-area:insurance-open}
.insurance-open-count{grid-area:insurance-open-count}
.insurance-partial{grid-area:insurance-partial}
.suppliers-dashboard{grid-template-columns:minmax(250px,auto) repeat(3,minmax(0,1fr));grid-template-areas:"suppliers-actions suppliers-open-debt suppliers-month-debt suppliers-payments"}
.suppliers-action-area{grid-area:suppliers-actions}
.suppliers-open-debt{grid-area:suppliers-open-debt}
.suppliers-month-debt{grid-area:suppliers-month-debt}
.suppliers-payments{grid-area:suppliers-payments}
.export-menu{position:relative;display:inline-block;z-index:12}
.export-menu summary{list-style:none;cursor:pointer}
.export-menu summary::-webkit-details-marker{display:none}
.export-menu .button{background:#fff;border:1px solid var(--line);color:var(--ink)}
.export-menu[open] .button{border-color:var(--brand);box-shadow:0 0 0 3px rgba(133,0,180,.08)}
.export-menu-panel{position:absolute;top:calc(100% + 6px);right:0;min-width:150px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 18px 45px rgba(23,33,43,.16);padding:6px;display:grid;gap:4px;z-index:80}
.export-menu-panel a{padding:9px 10px;border-radius:6px;font-weight:700;font-size:.82rem}
.export-menu-panel a:hover{background:var(--soft-purple);color:var(--brand)}
.section-spaced{margin-top:22px}
.separated-panel{margin-top:16px}
.subaccount-sections{margin-top:14px}
@media(max-width:1100px){.employer-overview{grid-template-columns:1fr}}
@media(max-width:1100px){.insurance-dashboard{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"insurance-actions insurance-actions" "insurance-base insurance-supp" "insurance-collected insurance-open" "insurance-partial insurance-open-count"}
.suppliers-dashboard{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"suppliers-actions suppliers-actions" "suppliers-open-debt suppliers-month-debt" "suppliers-payments suppliers-payments"}}
@media(max-width:760px){.page-action-bar,.compact-actions{justify-content:stretch}
.page-action-bar .button,.compact-actions .button,.summary-actions .button,.summary-actions .export-menu,.export-menu,.export-menu summary{width:100%}
.export-menu-panel{position:static;margin-top:6px;box-shadow:none}
.employer-overview{grid-template-columns:1fr}
.metric-grid,.metric-grid.compact,.summary-dashboard{grid-template-columns:1fr}
.insurance-dashboard,.suppliers-dashboard{grid-template-areas:none}
.summary-dashboard>*{grid-area:auto!important}
.summary-card-compact strong{font-size:1.08rem}}
/* R2.8 layout fixes */
.grouped-nav{display:grid;gap:6px;margin-top:16px;overflow:auto}
.grouped-nav>a,.nav-group>a{padding:10px 12px;border-radius:6px;color:#cbd2d9;font-size:.9rem}
.grouped-nav>a:hover,.nav-group>a:hover{background:#242b34;color:#fff}
.grouped-nav>a.active,.nav-group>a.active{background:var(--brand);color:#fff;font-weight:700}
.nav-group{border:1px solid #2b333d;border-radius:8px;padding:4px}
.nav-group summary{list-style:none;cursor:pointer;color:#fff;font-weight:700;font-size:.82rem;padding:8px 10px}
.nav-group summary::-webkit-details-marker{display:none}
.nav-group summary:after{content:"+";float:left;color:#b8c1ca}
.nav-group[open] summary:after{content:"−"}
.nav-group a{display:block;margin:2px 0}
.insurance-dashboard{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:"insurance-open insurance-collected insurance-supp insurance-base" "insurance-actions . insurance-partial insurance-open-count";direction:ltr}
.insurance-action-area{grid-area:insurance-actions;justify-content:flex-start}
.suppliers-dashboard{grid-template-columns:minmax(240px,auto) repeat(3,minmax(0,1fr));grid-template-areas:"suppliers-actions suppliers-payments suppliers-month-debt suppliers-open-debt";direction:ltr}
.suppliers-action-area{grid-area:suppliers-actions;justify-content:flex-start}
.summary-actions:empty{display:none}
.module-export-grid{grid-template-columns:repeat(3,minmax(220px,1fr));margin-bottom:18px}
.module-export-grid .button-row{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:1100px){.module-export-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}
.insurance-dashboard,.suppliers-dashboard{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:none}
.insurance-dashboard>*,.suppliers-dashboard>*{grid-area:auto!important}}
@media(max-width:760px){.grouped-nav{gap:8px}
.nav-group{padding:6px}
.module-export-grid{grid-template-columns:1fr}
.insurance-dashboard,.suppliers-dashboard{grid-template-columns:1fr}}
/* R2.9 sidebar,compact forms and import/export cleanup */
.sidebar{direction:rtl;text-align:right;overflow:hidden}
.brand{flex-direction:row-reverse;justify-content:flex-start;text-align:right}
.grouped-nav{display:flex;flex-direction:column;gap:8px;margin-top:16px;overflow-y:auto;overflow-x:hidden;padding-left:2px}
.grouped-nav>a,.nav-group>a{display:block;width:100%;white-space:normal;line-height:1.65;text-align:right}
.grouped-nav>a{border:1px solid transparent}
.nav-group{display:block;width:100%;border:1px solid #303945;border-radius:10px;background:#1d242d;padding:6px}
.nav-group summary{display:flex;align-items:center;justify-content:space-between;gap:10px;line-height:1.6;padding:9px 10px}
.nav-group summary:after{float:none;content:"⌄";font-size:.95rem;transition:transform .15s ease}
.nav-group[open] summary:after{content:"⌃"}
.nav-group a{margin:4px 0;padding:9px 12px 9px 10px;border-radius:8px;background:transparent;border-right:2px solid transparent}
.nav-group a.active{border-right-color:#fff;box-shadow:inset -3px 0 0 rgba(255,255,255,.24)}
.sidebar-foot{text-align:right}
.content{overflow-x:hidden}
.compact-form{max-width:1080px}
.login-form label{font-size:.8rem;line-height:1.55}
.login-form input,.period-picker select{min-height:36px;padding:7px 10px;border-radius:7px}
textarea{width:100%;min-height:80px;border:1px solid #cbd5de;border-radius:7px;padding:8px 10px}
.panel{padding:15px 16px}
.panel h2{line-height:1.7}
.panel[open] summary{margin-bottom:12px}
.action-grid{gap:14px}
.summary-dashboard{display:grid;gap:12px;margin-bottom:18px;direction:ltr;align-items:stretch}
.summary-dashboard>*{direction:rtl}
.summary-dashboard .metric{min-height:100px;display:flex;flex-direction:column;justify-content:space-between;background:#fff;border:1px solid var(--line);border-top:4px solid #4a5968;border-radius:var(--radius);box-shadow:0 6px 18px rgba(25,38,52,.035)}
.summary-dashboard .metric span{font-size:.78rem}
.summary-dashboard .metric strong{font-size:1.15rem}
.summary-actions{min-height:100px;align-items:center;justify-content:center}
.insurance-dashboard{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:"insurance-open insurance-collected insurance-supp insurance-base" "insurance-actions . insurance-partial insurance-open-count"}
.insurance-action-area{grid-area:insurance-actions;justify-content:flex-start}
.suppliers-dashboard{grid-template-columns:minmax(240px,auto) repeat(3,minmax(0,1fr));grid-template-areas:"suppliers-actions suppliers-payments suppliers-month-debt suppliers-open-debt"}
.suppliers-action-area{grid-area:suppliers-actions;justify-content:flex-start}
.import-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px;margin-bottom:18px}
.import-guide-card{background:#fff;min-height:150px}
.import-guide-card .button-row{display:flex;gap:6px;flex-wrap:wrap}
.import-guide-card .button{min-height:36px;padding:8px 10px}
@media(max-width:1100px){.app-shell{grid-template-columns:240px minmax(0,1fr)}
.insurance-dashboard,.suppliers-dashboard{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:none}
.insurance-dashboard>*,.suppliers-dashboard>*{grid-area:auto!important}
.import-guide-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}}
@media(max-width:760px){.sidebar{width:min(86vw,310px);max-width:310px;height:100dvh}
.grouped-nav{gap:7px}
.import-guide-grid{grid-template-columns:1fr}
.button{width:auto}
.summary-dashboard{grid-template-columns:1fr}
.insurance-dashboard,.suppliers-dashboard{grid-template-columns:1fr;grid-template-areas:none}
.summary-dashboard>*{grid-area:auto!important}}
/* R2.10 UI cleanup: reports popup,period badge,users/roles and settlement cards */
.topbar{flex-wrap:wrap}
.topbar-title{min-width:170px}
.active-period-pill{display:flex;align-items:center;gap:9px;background:#f7eefb;border:1px solid #dfc4ec;border-radius:999px;padding:8px 12px;white-space:nowrap}
.active-period-pill span{color:var(--muted);font-size:.72rem}
.active-period-pill strong{color:var(--brand);font-size:.95rem}
.active-period-pill em{font-style:normal;color:#344150;font-size:.75rem}
.report-trigger{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;min-height:38px;padding:8px 14px;font-weight:700;cursor:pointer}
.report-trigger:before{content:"📄";margin-left:7px}
.report-trigger:hover{border-color:var(--brand);color:var(--brand);box-shadow:0 0 0 3px rgba(133,0,180,.08)}
.report-modal[hidden]{display:none}
.report-modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:20px}
.report-modal__overlay{position:absolute;inset:0;border:0;background:rgba(20,27,35,.45);cursor:pointer}
.report-modal__panel{position:relative;width:min(680px,100%);max-height:88vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 30px 80px rgba(16,24,36,.28)}
.report-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.report-option{display:grid;gap:4px;border:1px solid var(--line);border-radius:10px;padding:14px;background:#fbfcfd}
.report-option:hover{border-color:var(--brand);background:var(--soft-purple)}
.report-option span{color:var(--muted);font-size:.78rem;line-height:1.8}
.modal-open{overflow:hidden}
.grouped-nav>a{background:#202833;border-color:#303945;font-weight:700}
.grouped-nav>a.active{box-shadow:inset -3px 0 0 rgba(255,255,255,.24)}
.nav-group summary{background:#111820;border-radius:8px}
.nav-group a{padding-right:18px;color:#d8dee5}
.nav-group a:not(.active){background:#202832}
.nav-group a:not(.active):hover{background:#2a3340}
.employer-overview{grid-template-columns:minmax(320px,1fr) minmax(360px,1.25fr)}
.employer-overview .account-explainer{order:2}
.employer-overview .employer-balance-card{order:1}
.insurance-dashboard{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:"insurance-open insurance-collected insurance-supp insurance-base" "insurance-actions insurance-actions insurance-partial insurance-open-count"}
.insurance-action-area{grid-area:insurance-actions;justify-content:flex-start}
.suppliers-dashboard{grid-template-columns:minmax(240px,auto) repeat(3,minmax(0,1fr));grid-template-areas:"suppliers-actions suppliers-payments suppliers-month-debt suppliers-open-debt"}
.suppliers-action-area{grid-area:suppliers-actions;justify-content:flex-start}
.import-guide-panel .panel-head{margin-bottom:6px}
.import-guide-card{min-height:118px}
.import-guide-card span{line-height:1.8}
.users-roles-panel .tabs{margin-top:6px}
.user-toolbar{display:flex;justify-content:flex-start;margin-bottom:14px}
.user-drawer,.row-drawer,.role-editor,.nested-role-editor{border:1px solid var(--line);border-radius:10px;padding:8px;background:#fff}
.user-drawer>summary,.row-drawer>summary{list-style:none}
.user-drawer[open],.row-drawer[open],.role-editor[open],.nested-role-editor[open]{background:#fbfcfd}
.users-table td{vertical-align:top}
.permission-matrix th,.permission-matrix td{text-align:center}
.permission-matrix th:first-child,.permission-matrix td:first-child{text-align:right}
.permission-matrix td:not(:first-child){font-weight:700;color:var(--brand)}
.role-editor{margin-top:16px}
.nested-role-editor{margin-top:10px}
.settlement-pdf-actions{display:flex;gap:8px;flex-wrap:wrap}
.settlement-budget-card>.detail-grid{background:#fbfcfd;border:1px solid var(--line);border-radius:10px;padding:12px}
.settlement-subcards{display:grid;grid-template-columns:1fr;gap:12px;margin-top:14px}
.settlement-subcard{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff}
.settlement-subcard summary{font-weight:700;cursor:pointer;list-style:none}
.settlement-subcard[open] summary{padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid var(--line)}
@media(max-width:1100px){.report-list{grid-template-columns:1fr}
.employer-overview{grid-template-columns:1fr}
.insurance-dashboard,.suppliers-dashboard{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:none}
.insurance-dashboard>*,.suppliers-dashboard>*{grid-area:auto!important}}
@media(max-width:760px){.topbar{gap:10px}
.topbar-title{min-width:0;flex:1}
.active-period-pill{order:5;width:100%;justify-content:space-between;border-radius:10px}
.period-picker{margin-right:0;flex:1}
.report-trigger{flex:none}
.report-modal{padding:12px}
.report-modal__panel{max-height:92vh;padding:14px}
.settlement-pdf-actions,.user-toolbar{align-items:stretch;flex-direction:column}
.settlement-pdf-actions .button,.user-toolbar .button{width:100%}}
/* R2.11 UI cleanup final card layouts */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.topbar{align-items:center}
.active-period-pill{min-height:38px;justify-content:center;box-shadow:0 4px 14px rgba(133,0,180,.06)}
.active-period-pill em{display:none!important}
.period-picker select{height:38px}
.grouped-nav>a{font-size:.93rem;font-weight:800;background:#111820;color:#fff;border:1px solid #343e4a}
.nav-group summary{font-size:.9rem;font-weight:800;color:#fff;border:1px solid #2c3540}
.nav-group a{font-size:.82rem;font-weight:500;color:#d7dee6;padding-right:22px;border-right:2px solid transparent}
.nav-group a.active{background:var(--brand);color:#fff;border-right-color:#fff;box-shadow:none}
.nav-group a:not(.active){background:#222b35;color:#c7d0da}
.login-form label{display:flex;flex-direction:column;justify-content:flex-start;gap:6px;min-height:70px;font-size:.81rem;font-weight:800;color:#344150}
.login-form input,.period-picker select{min-height:40px;border-radius:9px;border:1px solid #cbd5de;background:#fff;box-shadow:inset 0 1px 0 rgba(23,33,43,.02)}
.selected-files{grid-column:1/-1}
.compact-form{max-width:none}
.panel.form-panel{padding:18px 20px}
.panel.form-panel>summary{font-size:1rem}
.button-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.report-trigger.settlement-report-icon{width:42px;height:42px;min-height:42px;padding:0;border-radius:12px;font-size:1.08rem}
.report-trigger.settlement-report-icon:before{content:none}
.settlement-pdf-actions{display:none!important}
.summary-dashboard{gap:14px}
.summary-dashboard .metric{min-height:104px;padding:16px;box-shadow:0 6px 18px rgba(25,38,52,.035)}
.summary-dashboard .metric strong{font-size:1.2rem}
.summary-actions{min-height:104px;box-shadow:0 6px 18px rgba(25,38,52,.035)}
.insurance-dashboard{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:"insurance-open insurance-collected insurance-supp insurance-base" "insurance-actions insurance-actions insurance-partial insurance-open-count";direction:ltr}
.insurance-action-area{grid-area:insurance-actions;justify-content:flex-start}
.suppliers-dashboard{grid-template-columns:minmax(240px,auto) repeat(3,minmax(0,1fr));grid-template-areas:"suppliers-actions suppliers-payments suppliers-month-debt suppliers-open-debt";direction:ltr}
.suppliers-action-area{grid-area:suppliers-actions;justify-content:flex-start}
.separated-panel{margin-top:18px}
.subsection-title{margin-top:18px;margin-bottom:14px;border-top:3px solid var(--brand)}
.subaccount-sections{display:grid;gap:18px;margin-top:18px}
.month-finance-card{border-top:3px solid var(--brand)}
.month-finance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:12px}
.month-finance-item{border:1px solid var(--line);border-radius:12px;background:#fbfcfd;padding:16px;display:grid;gap:8px;align-content:start}
.month-finance-item span{font-size:.8rem;color:var(--muted);font-weight:800}
.month-finance-item strong{font-size:1.18rem;line-height:1.7}
.month-finance-item p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.8}
.month-inline-form,.month-settings-form,.month-delete-form{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.month-settings-form{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:16px}
.month-finance-flow{background:#fbfcfd;border:1px solid var(--line);border-radius:12px;padding:12px;margin-top:16px}
.users-tabs a{font-weight:800}
.user-toolbar{justify-content:flex-start}
.user-drawer>summary,.row-drawer>summary,.role-editor>summary,.nested-role-editor>summary{list-style:none;gap:6px}
.user-drawer>summary::-webkit-details-marker,.row-drawer>summary::-webkit-details-marker,.role-editor>summary::-webkit-details-marker,.nested-role-editor>summary::-webkit-details-marker{display:none}
.user-drawer>summary:before,.row-drawer>summary:before,.role-editor>summary:before,.nested-role-editor>summary:before{content:"+";color:var(--brand);font-size:1.35rem;font-weight:900;line-height:1}
.user-drawer[open]>summary:before,.row-drawer[open]>summary:before,.role-editor[open]>summary:before,.nested-role-editor[open]>summary:before{content:"−"}
.manager-fund-metrics{grid-template-columns:repeat(3,minmax(0,1fr))!important}
@media(max-width:1100px){.manager-fund-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:760px){.manager-fund-metrics{grid-template-columns:1fr!important}}
.permission-matrix td,.permission-matrix th{white-space:normal}
.import-guide-panel .panel-head{margin-bottom:10px}
.import-guide-grid{grid-template-columns:repeat(4,minmax(200px,1fr))}
.import-guide-card{display:grid;align-content:space-between;gap:10px;min-height:132px;border-radius:12px}
.import-guide-card b{font-size:.9rem}
.import-guide-card span{font-size:.76rem;color:var(--muted)}
@media(max-width:1100px){.month-finance-grid{grid-template-columns:1fr}
.import-guide-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}
.insurance-dashboard{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"insurance-open insurance-collected" "insurance-supp insurance-base" "insurance-actions insurance-actions" "insurance-partial insurance-open-count"}
.suppliers-dashboard{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"suppliers-actions suppliers-actions" "suppliers-payments suppliers-month-debt" "suppliers-open-debt suppliers-open-debt"}}
@media(max-width:760px){.grouped-nav>a,.nav-group a,.nav-group summary{white-space:normal}
.import-guide-grid{grid-template-columns:1fr}
.summary-dashboard,.insurance-dashboard,.suppliers-dashboard,.month-finance-grid{grid-template-columns:1fr;grid-template-areas:none}
.summary-dashboard>*{grid-area:auto!important}
.summary-actions{justify-content:stretch}
.summary-actions .button{width:100%}
.active-period-pill{align-items:center}}
/* R2.12 blocking UI fixes: real form grid,centered active period,settlement PDF modal and monthly settings accordion */
.topbar{display:grid!important;grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr);grid-template-areas:"title active-period picker";align-items:center;gap:14px;flex-wrap:nowrap}
.topbar-title{grid-area:title;justify-self:start;min-width:0;text-align:right}
.topbar-title h1{margin:0}
.active-period-pill{grid-area:active-period;justify-self:center;min-width:190px;text-align:center}
.period-picker{grid-area:picker;justify-self:end;margin-right:0}
.period-picker label{justify-content:flex-end}
.menu-toggle{grid-area:menu}
.compact-form{max-width:none}
.report-trigger.settlement-report-icon{margin-right:auto}
.origin-button{padding:6px 10px;font-size:.78rem;min-height:34px}
.origin-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}
.origin-modal[hidden]{display:none}
.origin-modal__overlay{position:absolute;inset:0;border:0;background:rgba(10,18,26,.45);cursor:pointer}
.origin-modal__panel{position:relative;width:min(680px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;border:1px solid var(--line);box-shadow:0 24px 80px rgba(10,18,26,.28);padding:18px}
.origin-modal__panel .detail-grid{margin-top:12px}
.month-finance-card{padding:0;overflow:hidden}
.month-finance-card>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;list-style:none;background:#fff;cursor:pointer}
.month-finance-card>summary::-webkit-details-marker{display:none}
.month-finance-card>summary:after{content:none!important}
.month-finance-card[open]>summary{margin-bottom:0;border-bottom:1px solid var(--line)}
.month-finance-card .accordion-chevron{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:999px;color:var(--brand);font-size:1.05rem;transition:transform .18s ease}
.month-finance-card[open] .accordion-chevron{transform:rotate(180deg)}
.month-finance-body{padding:18px 20px}
.month-opening-body{display:grid;gap:14px}
.opening-balance-compact{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;border:1px solid var(--line);border-radius:14px;background:#fbfcfd;padding:16px}
.opening-balance-copy{display:grid;gap:6px}
.opening-balance-copy span{color:var(--muted);font-size:.82rem;font-weight:800}
.opening-balance-copy strong{font-size:1.35rem;line-height:1.7}
.opening-balance-copy p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.9}
.opening-edit-drawer,.opening-delete-drawer{display:grid;gap:12px}
.opening-edit-drawer>summary,.opening-delete-drawer>summary{list-style:none}
.opening-edit-drawer>summary::-webkit-details-marker,.opening-delete-drawer>summary::-webkit-details-marker{display:none}
.opening-edit-drawer[open]>summary,.opening-delete-drawer[open]>summary{margin-bottom:8px}
.opening-delete-drawer{justify-self:start}
.month-finance-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 16px}
.month-finance-item{min-height:134px}
.month-finance-item p,.month-settings-section .form-help{line-height:1.8}
.month-settings-section{border:1px solid var(--line);border-radius:12px;background:#fbfcfd;padding:14px;margin-top:14px}
.month-settings-section h3{margin:0 0 6px;font-size:.95rem}
.month-settings-section .form-help{margin:0 0 12px;color:var(--muted);font-size:.78rem}
.month-inline-form,.month-settings-form,.month-delete-form{margin-top:0;padding-top:0;border-top:0;background:transparent}
@media(max-width:1100px){.topbar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title picker" "active-period active-period";align-items:center}
.active-period-pill{width:auto;min-width:0}
.month-finance-grid{grid-template-columns:1fr}}
@media(max-width:760px){.topbar{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"menu title" "active-period active-period" "picker picker";gap:10px}
.menu-toggle{display:block}
.period-picker{justify-self:stretch;width:100%}
.period-picker label{font-size:.78rem;width:100%}
.active-period-pill{justify-self:stretch;width:100%;border-radius:10px}
.month-finance-card>summary{align-items:flex-start}
.opening-balance-compact{grid-template-columns:1fr}
.opening-edit-drawer,.opening-edit-drawer>summary,.opening-delete-drawer,.opening-delete-drawer>summary{width:100%}}

/* R2.12 Form Design System: one clean global form layout */
.lf-form{width:100%;margin:0}
.lf-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 18px;align-items:start;direction:rtl;width:100%;max-width:none}
.lf-form-field,.lf-form-grid label{display:flex;flex-direction:column;justify-content:flex-start;gap:7px;min-width:0;font-size:.82rem;font-weight:800;line-height:1.65;color:#344150}
.lf-form-field input,.lf-form-field select,.lf-form-field textarea,.lf-form-grid label input,.lf-form-grid label select,.lf-form-grid label textarea{display:block;width:100%;min-height:42px;border:1px solid #cbd5de;border-radius:9px;background:#fff;color:var(--ink);padding:8px 11px;box-shadow:inset 0 1px 0 rgba(23,33,43,.02)}
.lf-form-field textarea,.lf-form-grid label textarea{min-height:92px;resize:vertical}
.lf-form-field input:focus,.lf-form-field select:focus,.lf-form-field textarea:focus,.lf-form-grid label input:focus,.lf-form-grid label select:focus,.lf-form-grid label textarea:focus{border-color:var(--brand);outline:3px solid rgba(133,0,180,.1)}
.lf-field-short{max-width:260px}
.lf-field-medium{max-width:360px}
.lf-span-2{grid-column:span 2;max-width:none}
.lf-span-full{grid-column:1/-1;max-width:none}
.lf-file-field{grid-column:span 2;max-width:none}
.lf-file-field input[type=file],.lf-form-grid input[type=file]{padding:8px;background:#fbfcfd;border-style:dashed;min-height:44px}
.lf-help-text,.lf-form-field small,.lf-form-grid label small{font-size:.72rem;font-weight:400;color:var(--muted);line-height:1.7;min-height:1em}
.lf-form-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap;margin-top:6px;width:100%}
.lf-form-actions .button{min-width:220px}
.lf-form-actions .button:not(.primary):not(.danger){background:#fff;border:1px solid var(--line);color:var(--ink)}
.lf-form-grid .check-row,.check-row{min-height:0;display:flex!important;flex-direction:row!important;align-items:center;justify-content:flex-start;gap:8px;font-weight:700;line-height:1.7}
.lf-form-grid .check-row input,.check-row input{width:auto!important;min-height:auto!important;flex:none}
[data-receipt-upload].lf-span-2>.lf-file-field,[data-receipt-upload].lf-span-full>.lf-file-field{grid-column:1/-1}
@media(min-width:1101px) and (max-width:1399px){.lf-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.lf-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lf-field-short,.lf-field-medium{max-width:none}}
@media(max-width:760px){.lf-form-grid{grid-template-columns:1fr}.lf-span-2,.lf-span-full,.lf-file-field,[data-receipt-upload],.lf-form-actions{grid-column:1/-1}.lf-form-field,.lf-form-grid label{min-height:auto}.lf-form-actions{align-items:stretch}.lf-form-actions .button{width:100%;min-width:0}.lf-field-short,.lf-field-medium{max-width:none}}

/* R2.13 correction workflow readability */
.correction-panel .form-help{margin-top:8px}
.correction-candidates{max-height:460px;overflow:auto;border:1px solid var(--line);border-radius:12px}
.correction-candidates table{margin:0}
.correction-candidates th,.correction-candidates td{white-space:nowrap}
.correction-candidates td:nth-child(6){white-space:normal;min-width:280px;line-height:1.8}
.correction-candidates input[type=radio]{width:18px;height:18px;accent-color:var(--brand)}
.correction-action-grid{margin-top:16px}
