@font-face{font-family:IRANSansX;src:url('../fonts/IRANSansWeb_UltraLight.woff2') format('woff2');font-weight:200;font-style:normal;font-display:swap}
@font-face{font-family:IRANSansX;src:url('../fonts/IRANSansWeb_Light.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:IRANSansX;src:url('../fonts/IRANSansWeb.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:IRANSansX;src:url('../fonts/IRANSansWeb_Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:IRANSansX;src:url('../fonts/IRANSansWeb_Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:IRANSansX;src:url('../fonts/IRANSansWeb_Black.woff2') format('woff2');font-weight:900;font-style:normal;font-display:swap}
/* v2.8 official Sadr themes. Semantic colors intentionally follow the company logo. */
[data-theme="sadr"],[data-theme="sadr-light"]{
  color-scheme:light;
  --color-base-100:#ffffff;--color-base-200:#f5f8f9;--color-base-300:#e3eaed;--color-base-content:#17242a;
  --color-primary:#179bc4;--color-primary-content:#ffffff;
  --color-secondary:#18bd94;--color-secondary-content:#062b23;
  --color-accent:#d4a45f;--color-accent-content:#281b09;
  --color-neutral:#24343b;--color-neutral-content:#f7fafb;
  --color-info:#168aad;--color-info-content:#ffffff;
  --color-success:#15956f;--color-success-content:#ffffff;
  --color-warning:#c58722;--color-warning-content:#211404;
  --color-error:#c2414d;--color-error-content:#ffffff;
  --radius-selector:.65rem;--radius-field:.7rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0;
}
[data-theme="sadr-dark"]{
  color-scheme:dark;
  --color-base-100:#152126;--color-base-200:#101a1f;--color-base-300:#27363d;--color-base-content:#e8f0f2;
  --color-primary:#42b8dc;--color-primary-content:#052933;
  --color-secondary:#35d3aa;--color-secondary-content:#052b22;
  --color-accent:#dfb873;--color-accent-content:#281b09;
  --color-neutral:#dbe6e9;--color-neutral-content:#17242a;
  --color-info:#51b7d3;--color-info-content:#062a34;
  --color-success:#43c69b;--color-success-content:#052a20;
  --color-warning:#e3b45a;--color-warning-content:#2c1c05;
  --color-error:#ed7c86;--color-error-content:#36070c;
  --radius-selector:.65rem;--radius-field:.7rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0;
}
:root{font-family:IRANSansX,Tahoma,Arial,sans-serif;--sadr-radius:.8rem;--sadr-page-max:1440px;--sadr-page-gap:1rem;--sadr-control-height:2.75rem}
html{font-family:IRANSansX,Tahoma,Arial,sans-serif;scroll-behavior:smooth}
html[dir="rtl"],body,button,input,select,textarea{font-family:IRANSansX,Tahoma,Arial,sans-serif}
body{margin:0;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;background:var(--color-base-200);color:var(--color-base-content)}
[x-cloak]{display:none!important}
.sadr-container{width:min(calc(100% - 2rem),var(--sadr-page-max));margin-inline:auto}
.sadr-page{padding-block:1.25rem}
.sadr-page-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.sadr-page-title{font-size:1.25rem;font-weight:700;line-height:1.8}
.sadr-page-subtitle{font-size:.875rem;opacity:.7;margin-top:.15rem}
.sadr-card{border:1px solid color-mix(in oklab,var(--color-base-content) 10%,transparent);border-radius:var(--sadr-radius);background:var(--color-base-100);box-shadow:0 1px 3px rgb(0 0 0/.05)}
.sadr-card-body{padding:1rem}
.sadr-form-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem}
.sadr-field{grid-column:span 12;display:flex;flex-direction:column;gap:.4rem}
.sadr-field-label{font-size:.875rem;font-weight:600}
.sadr-field-error{font-size:.75rem;color:var(--color-error)}
.sadr-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}
.sadr-table-wrap{width:100%;overflow-x:auto;border-radius:var(--sadr-radius)}
.sadr-empty{display:grid;place-items:center;min-height:12rem;text-align:center;padding:2rem;opacity:.7}
.sadr-modal-host:empty{display:none}
.htmx-indicator{opacity:0;transition:opacity .15s ease}.htmx-request .htmx-indicator,.htmx-request.htmx-indicator{opacity:1}
@media(min-width:640px){.sadr-field-sm-6{grid-column:span 6}.sadr-field-sm-4{grid-column:span 4}.sadr-field-sm-3{grid-column:span 3}}
@media(min-width:1024px){.sadr-page{padding-block:1.5rem}.sadr-card-body{padding:1.25rem}.sadr-field-lg-6{grid-column:span 6}.sadr-field-lg-4{grid-column:span 4}.sadr-field-lg-3{grid-column:span 3}}

/* v1.3 behaviors */
.sadr-busy { cursor: progress; }
.sadr-htmx-indicator { display:none; }
.htmx-request .sadr-htmx-indicator, .htmx-request.sadr-htmx-indicator { display:inline-flex; }
dialog.sadr-modal::backdrop { background:rgb(15 23 42 / .45); backdrop-filter:blur(2px); }

/* v1.6 full-demo refinements */
.sadr-section{scroll-margin-top:5.5rem}
.sadr-demo-code{direction:ltr;text-align:left;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;white-space:pre;overflow:auto}
.sadr-toast{border-radius:.75rem!important;box-shadow:0 12px 36px rgb(0 0 0/.18)!important;font-family:IRANSansX,Tahoma,Arial,sans-serif!important}
.sadr-toast-success{background:#166534!important}.sadr-toast-error{background:#991b1b!important}.sadr-toast-warning{background:#92400e!important}.sadr-toast-info{background:#075985!important}
.sadr-busy body{cursor:progress}
.sadr-busy body::before{content:"";position:fixed;z-index:2147482500;inset-inline:0;top:0;height:3px;pointer-events:none;background:linear-gradient(90deg,transparent,var(--color-primary),transparent);background-size:45% 100%;background-repeat:no-repeat;animation:sadr-busy-line 1s ease-in-out infinite}
@keyframes sadr-busy-line{0%{background-position:-55% 0}100%{background-position:155% 0}}
@media(max-width:768px){.sadr-demo-sticky-nav{position:static!important}}

/* dependency diagnostics */
.sadr-dependency-error{position:relative;z-index:10000;padding:.75rem 1rem;background:#991b1b;color:#fff;text-align:center;font-weight:700}
[data-sadr-health]{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}

/* v2.5 Persian date picker */
.sadr-persian-date-picker{position:relative}
.sadr-persian-date-picker [data-sadr-persian-display]{direction:rtl;text-align:right}
.sadr-persian-calendar{position:absolute;z-index:70;inset-inline-start:0;top:calc(100% + .4rem);width:min(20rem,calc(100vw - 2rem))}
.sadr-persian-calendar[hidden]{display:none!important}
.sadr-persian-calendar-card{background:var(--color-base-100);border:1px solid var(--color-base-300);border-radius:1rem;padding:.75rem;box-shadow:0 18px 50px rgb(0 0 0/.16)}
.sadr-persian-calendar-head{display:grid;grid-template-columns:2.25rem 1fr 2.25rem;align-items:center;text-align:center;gap:.25rem;margin-bottom:.5rem}
.sadr-persian-calendar-week,.sadr-persian-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.2rem;text-align:center}
.sadr-persian-calendar-week{font-size:.72rem;opacity:.55;margin-bottom:.25rem}
.sadr-persian-calendar-days>span,.sadr-persian-day{aspect-ratio:1;display:grid;place-items:center;border-radius:.65rem}
.sadr-persian-day{border:0;background:transparent;cursor:pointer;font:inherit;color:inherit}
.sadr-persian-day:hover{background:var(--color-base-200)}
.sadr-persian-day.is-today{outline:1px solid var(--color-primary);outline-offset:-2px}
.sadr-persian-day.is-selected{background:var(--color-primary);color:var(--color-primary-content);font-weight:800}
.sadr-persian-calendar-foot{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--color-base-300)}

/* v2.7 full Persian monthly calendar */
.sadr-month-calendar-card{background:var(--color-base-100);border:1px solid var(--color-base-300);border-radius:1rem;overflow:hidden}
.sadr-month-calendar-head{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.75rem;padding:1rem;border-bottom:1px solid var(--color-base-300)}
.sadr-month-calendar-nav{display:flex;align-items:center;gap:.25rem;justify-self:start}
.sadr-month-calendar-title{text-align:center;display:flex;flex-direction:column;line-height:1.5}
.sadr-month-calendar-title strong{font-size:1.05rem}.sadr-month-calendar-title span{font-size:.75rem;opacity:.55}
.sadr-month-calendar-range{justify-self:end;font-size:.72rem;opacity:.5;white-space:nowrap}
.sadr-month-calendar-week,.sadr-month-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.sadr-month-calendar-week{background:var(--color-base-200);border-bottom:1px solid var(--color-base-300)}
.sadr-month-calendar-week>span{padding:.6rem .35rem;text-align:center;font-size:.75rem;font-weight:700;opacity:.65}
.sadr-month-calendar-week>span.is-friday{color:var(--color-error);opacity:1}
.sadr-month-calendar-grid{background:var(--color-base-300);gap:1px}
.sadr-month-day{position:relative;min-width:0;min-height:7rem;padding:.45rem;background:var(--color-base-100);border:0;color:inherit;text-align:start;cursor:pointer;display:flex;flex-direction:column;gap:.35rem;transition:background-color .12s ease,box-shadow .12s ease}
.sadr-month-day:not(.is-empty):hover{background:color-mix(in oklab,var(--color-primary) 6%,var(--color-base-100))}
.sadr-month-day.is-empty{cursor:default;background:color-mix(in oklab,var(--color-base-200) 70%,var(--color-base-100))}
.sadr-month-day.is-friday .sadr-month-day-number{color:var(--color-error)}
.sadr-month-day.is-today{box-shadow:inset 0 0 0 2px var(--color-primary)}
.sadr-month-day.is-selected{background:color-mix(in oklab,var(--color-primary) 11%,var(--color-base-100));box-shadow:inset 0 0 0 2px var(--color-primary)}
.sadr-month-day-number{width:1.9rem;height:1.9rem;display:grid;place-items:center;border-radius:999px;font-weight:800;font-size:.86rem;flex:0 0 auto}
.sadr-month-day.is-today .sadr-month-day-number{background:var(--color-primary);color:var(--color-primary-content)}
.sadr-month-day-events{display:flex;flex-direction:column;gap:.25rem;min-width:0;width:100%}
.sadr-month-event{display:flex;align-items:center;justify-content:space-between;gap:.3rem;min-width:0;padding:.18rem .35rem;border-radius:.45rem;font-size:.68rem;line-height:1.5;background:var(--color-base-200)}
.sadr-month-event>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sadr-month-event>strong{font-size:.66rem;flex:0 0 auto}
.sadr-month-event.is-primary{background:color-mix(in oklab,var(--color-primary) 18%,transparent);color:var(--color-primary)}
.sadr-month-event.is-secondary{background:color-mix(in oklab,var(--color-secondary) 18%,transparent);color:var(--color-secondary)}
.sadr-month-event.is-accent{background:color-mix(in oklab,var(--color-accent) 18%,transparent);color:var(--color-accent)}
.sadr-month-event.is-info{background:color-mix(in oklab,var(--color-info) 18%,transparent);color:var(--color-info)}
.sadr-month-event.is-success{background:color-mix(in oklab,var(--color-success) 18%,transparent);color:var(--color-success)}
.sadr-month-event.is-warning{background:color-mix(in oklab,var(--color-warning) 20%,transparent);color:color-mix(in oklab,var(--color-warning) 75%,var(--color-base-content))}
.sadr-month-event.is-error{background:color-mix(in oklab,var(--color-error) 18%,transparent);color:var(--color-error)}
.sadr-month-event.is-neutral{background:color-mix(in oklab,var(--color-neutral) 14%,transparent);color:var(--color-base-content)}
.sadr-month-more{font-size:.65rem;opacity:.55;padding-inline:.3rem}
@media(max-width:767px){
  .sadr-month-calendar-head{grid-template-columns:1fr auto;padding:.75rem}.sadr-month-calendar-title{grid-column:1/-1;grid-row:1}.sadr-month-calendar-nav{grid-column:1;grid-row:2}.sadr-month-calendar-range{grid-column:2;grid-row:2;font-size:.62rem}
  .sadr-month-day{min-height:4.75rem;padding:.25rem}.sadr-month-day-number{width:1.55rem;height:1.55rem;font-size:.74rem}.sadr-month-event{padding:.12rem .2rem;font-size:.58rem}.sadr-month-event>strong{font-size:.56rem}.sadr-month-event>span{max-width:3.2rem}
}
@media(max-width:480px){.sadr-month-calendar-range{display:none}.sadr-month-calendar-head{grid-template-columns:1fr}.sadr-month-calendar-nav{grid-column:1;justify-self:center}.sadr-month-day{min-height:3.8rem}.sadr-month-event>span{display:none}.sadr-month-event{justify-content:center}.sadr-month-calendar-week>span{padding:.45rem .15rem;font-size:.68rem}}


/* v2.8 theme helpers */
.sadr-theme-swatch{display:flex;align-items:center;gap:.65rem;padding:.65rem;border:1px solid var(--color-base-300);border-radius:.8rem;background:var(--color-base-100)}
.sadr-theme-swatch-color{width:2rem;height:2rem;border-radius:.65rem;flex:0 0 auto;border:1px solid color-mix(in oklab,var(--color-base-content) 12%,transparent)}
.sadr-theme-swatch-label{font-size:.78rem;font-weight:700}.sadr-theme-swatch-value{font-size:.68rem;opacity:.55;direction:ltr;text-align:left}

/* v2.9 Razor patterns */
.sadr-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.sadr-page-eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.02em;color:var(--color-primary);margin-bottom:.3rem}
.sadr-page-icon{width:2.6rem;height:2.6rem;border-radius:.85rem;display:grid;place-items:center;flex:0 0 auto;background:color-mix(in oklab,var(--color-primary) 13%,transparent);color:var(--color-primary);font-size:1.1rem;font-weight:900}
.sadr-page-header-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-inline-start:auto}
.sadr-pattern-surface{display:flex;flex-direction:column;gap:1rem;padding:1rem;border:1px solid var(--color-base-300);border-radius:1rem;background:var(--color-base-100)}
.sadr-filter-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.sadr-empty-state{display:flex;min-height:11rem;flex-direction:column;align-items:center;justify-content:center;gap:.65rem;text-align:center;padding:1.5rem}
.sadr-empty-state-icon{width:3rem;height:3rem;border-radius:1rem;display:grid;place-items:center;background:var(--color-base-200);color:var(--color-primary);font-size:1.35rem;font-weight:900}
.sadr-pagination{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding-top:.25rem}
@media(max-width:639px){.sadr-page-header-actions{width:100%;margin-inline-start:0}.sadr-page-header-actions>.btn{flex:1}.sadr-filter-bar>*{width:100%}.sadr-filter-bar .btn{width:auto;flex:1}.sadr-pagination{justify-content:center}.sadr-pagination>span{width:100%;text-align:center}}

/* v2.11 Persian date picker floating layer: escapes modal-box/table overflow and flips above when needed. */
.sadr-persian-calendar.is-floating{
  position:fixed;
  inset:auto;
  z-index:2147483000;
  overflow:auto;
  overscroll-behavior:contain;
  margin:0;
  isolation:isolate;
}
.sadr-persian-calendar.is-floating .sadr-persian-calendar-card{width:100%}
.sadr-persian-calendar.is-floating.is-above{transform-origin:bottom center}
dialog.sadr-modal[open]{overflow:visible}

/* v3.0.2 runtime hardening */
html.sadr-modal-open,
body.sadr-modal-open{overflow:hidden!important}
dialog.sadr-modal:not([open]){pointer-events:none}
dialog.sadr-modal[open]{pointer-events:auto}

/* v3.0.3: HTMX global busy feedback is non-blocking and never dims page content. */

/* v6.0.0 stable modal layout. Use these classes for HTMX-loaded forms so spacing
   does not depend on runtime Tailwind utility discovery. */
.sadr-modal-form{display:flex;max-height:min(88vh,56rem);min-height:0;flex-direction:column;background:var(--color-base-100);color:var(--color-base-content)}
.sadr-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.15rem 1.25rem;border-bottom:1px solid var(--color-base-300);flex:0 0 auto}
.sadr-modal-header-main{min-width:0}
.sadr-modal-title{margin:0;font-size:1.15rem;font-weight:900;line-height:1.7}
.sadr-modal-subtitle{margin:.25rem 0 0;font-size:.78rem;line-height:1.8;opacity:.65}
.sadr-modal-content{display:grid;gap:1rem;padding:1.25rem;overflow:auto;overscroll-behavior:contain;min-height:0}
.sadr-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.sadr-modal-field{min-width:0}
.sadr-modal-field>.fieldset{padding:0}
.sadr-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:wrap;padding:1rem 1.25rem;border-top:1px solid var(--color-base-300);flex:0 0 auto;background:color-mix(in oklab,var(--color-base-100) 96%,var(--color-base-200))}
.sadr-modal-validation:empty{display:none}
@media(max-width:639px){.sadr-modal-grid{grid-template-columns:1fr}.sadr-modal-header,.sadr-modal-content,.sadr-modal-footer{padding-inline:1rem}.sadr-modal-footer>.btn{flex:1}}
