/* FIRSTCODE 1.11.1 — global visual hardening layer. Additive UI-only rules. */
html,body{max-width:100%;overflow-x:hidden}
body{min-height:100dvh}
.admin-content,.client-nav-wrapper,.container,.card,.modal-box,.table-wrapper,form,fieldset{min-width:0}
input,select,textarea,button{max-width:100%}
input,select,textarea{background:var(--bg-card);color:var(--text)}
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--bg-card) inset;transition:background-color 9999s ease-out 0s}
select option{background:var(--bg-card);color:var(--text)}
textarea{resize:vertical}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 24%,transparent);outline-offset:2px}
.table-wrapper{max-width:100%;overflow:auto;overscroll-behavior-inline:contain}
table{max-width:100%}
td,th{overflow-wrap:anywhere}
td .btn,th .btn{vertical-align:middle}
.card,.client-section,.settings-section,.det-card{min-width:0}
.modal-overlay{padding:max(1rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left));overflow:auto}
.modal-box{max-height:calc(100dvh - 2rem);overflow:auto}
.badge{max-width:100%;overflow:hidden;text-overflow:ellipsis}
[dir="ltr"]{unicode-bidi:plaintext}
.sar-money,.text-nowrap{white-space:nowrap}
.empty-state{border:1px dashed var(--border);border-radius:14px;background:var(--fc-surface-subtle)}






.admin-topbar,.client-topbar{isolation:isolate}
.topbar-left,.topbar-right,.client-topbar-actions,.client-topbar-links{min-width:0}
.page-header{min-width:0}
.page-title{overflow-wrap:anywhere}
.btn{max-width:100%}
.btn i{flex:0 0 auto}

/* migrated static styles must not defeat theme colors in dark mode */



@media(max-width:768px){
  .admin-content{padding-inline:.8rem}
  .page-header{padding-inline:.8rem}
  .admin-topbar{padding-inline:.75rem}
  .topbar-user-pill>span{display:none}
  .breadcrumb-nav{max-width:min(62vw,360px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .card{padding:1rem;border-radius:14px}
  .btn{min-height:42px}
  .table-wrapper.mobile-card-wrapper{overflow:visible;border:0;background:transparent}
}
@media(max-width:420px){
  .admin-content,.page-header{padding-inline:.65rem}
  .admin-topbar{padding-inline:.55rem}
  .topbar-left{gap:.35rem}
  .topbar-action,.hamburger-btn{width:36px;height:36px;min-width:36px}
  .btn{padding-inline:1rem}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* Dynamic state classes replacing legacy inline colors/sizing. */
.email-test-result{margin-bottom:1rem;border-width:2px}
.email-test-result.is-success{border-color:var(--success);background:var(--accent-light)}
.email-test-result.is-success .card-title{color:var(--accent-dark)}
.email-test-result.is-error{border-color:var(--danger);background:#FEF0EF}
.email-test-result.is-error .card-title{color:#B42318}


.ledger-amount{white-space:nowrap;font-weight:var(--fw-semibold)}
.ledger-amount.is-credit{color:var(--success)}
.ledger-amount.is-debit{color:var(--danger)}
.is-hidden-review,.is-deleted-row{opacity:.5}
.is-hidden-review td,.is-deleted-row td{background:color-mix(in srgb,var(--danger) 3%,var(--bg-card))}
.payment-age{font-size:var(--fs-sm);color:var(--muted)}
.payment-age.is-overdue{color:var(--danger);font-weight:var(--fw-semibold)}
.progress-fill--success{background:var(--success)}
.audit-action-label{font-weight:var(--fw-semibold);font-size:var(--fs-sm)}
.text-info{color:var(--info)}

.payment-result-hero{padding:2.35rem 1.5rem;text-align:center;position:relative;border-bottom:1px solid var(--border)}
.payment-result-icon{width:78px;height:78px;border-radius:50%;margin:0 auto 1rem;display:grid;place-items:center;color:#fff;box-shadow:0 10px 28px rgba(16,24,40,.12)}
.payment-result-title{margin:0 0 .45rem;font-size:var(--fs-3xl);font-weight:var(--fw-extrabold);line-height:1.25}
.payment-result-hero--success{background:color-mix(in srgb,var(--accent-light) 78%,var(--bg-card))}
.payment-result-hero--success .payment-result-icon{background:var(--success)}
.payment-result-hero--success .payment-result-title{color:var(--success)}
.payment-result-hero--pending{background:#FFF7E8}
.payment-result-hero--pending .payment-result-icon{background:#D97706}
.payment-result-hero--pending .payment-result-title{color:#B45309}
.payment-result-hero--failed{background:#FEF0EF}
.payment-result-hero--failed .payment-result-icon{background:var(--danger)}
.payment-result-hero--failed .payment-result-title{color:var(--danger)}
.payment-result-hero--error{background:#FFF1E8}
.payment-result-hero--error .payment-result-icon{background:#9A3412}
.payment-result-hero--error .payment-result-title{color:#9A3412}




@media(max-width:640px){
  .payment-result-hero{padding:1.8rem 1rem}
  .payment-result-icon{width:66px;height:66px}
  .payment-result-title{font-size:var(--fs-2xl)}
}

/* Page-level dark/RTL corrections discovered by visual crawl. */












.product-filter-panel{--card:var(--bg-card)}

/* Contract is intentionally a print/document surface. Keep the paper white; theme only the surrounding actions. */
.cdoc{color:#182230}
.cdoc a{color:#1B3A6B}



/* Better mobile table fallback for dense admin data. */
@media(max-width:700px){
  table.mobile-card-table:not(.cdoc-tbl){min-width:0;background:transparent}
  table.mobile-card-table:not(.cdoc-tbl) thead{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
  table.mobile-card-table:not(.cdoc-tbl) tbody{display:grid;gap:.7rem}
  table.mobile-card-table:not(.cdoc-tbl) tr{display:block;border:1px solid var(--border);border-radius:12px;background:var(--bg-card);box-shadow:var(--shadow-xs);overflow:hidden}
  table.mobile-card-table:not(.cdoc-tbl) td{display:grid;grid-template-columns:minmax(92px,36%) minmax(0,1fr);align-items:start;gap:.65rem;width:100%;padding:.62rem .75rem;border-bottom:1px solid var(--border);background:transparent!important;text-align:right!important;min-height:0}
  table.mobile-card-table:not(.cdoc-tbl) td:last-child{border-bottom:0}
  table.mobile-card-table:not(.cdoc-tbl) td::before{content:attr(data-label);color:var(--muted);font-size:var(--fs-xs);font-weight:var(--fw-bold);line-height:1.55}
  table.mobile-card-table:not(.cdoc-tbl) td[colspan]{display:block;text-align:center!important}
  table.mobile-card-table:not(.cdoc-tbl) td[colspan]::before{display:none}
}


/* FIRSTCODE 1.11.1 — product form interaction states */
.catalog-type-option { transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease; }
.catalog-type-option.is-selected { border-color: var(--primary) !important; background: color-mix(in srgb, var(--primary) 7%, transparent) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 10%, transparent); }
#drop-zone.is-dragover { border-color: var(--primary) !important; background: color-mix(in srgb, var(--primary) 5%, transparent); }
#drop-zone.has-file { border-color: var(--accent) !important; }
#upload-placeholder.is-hidden { display: none !important; }
#image-preview.is-visible { display: block !important; }
#catalog-history-warning.is-visible { display: block !important; }


/* FIRSTCODE 1.11.3 — shared public/partial/error presentation hardening */
.fc-legal-nav{background:var(--primary-dark);padding:.8rem 0;position:sticky;top:0;z-index:100}
.fc-legal-nav__inner{max-width:900px;margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.fc-legal-nav__brand{color:#fff;font-weight:var(--fw-extrabold);font-size:var(--fs-base);text-decoration:none;display:flex;align-items:center;gap:.5rem}
.fc-legal-nav__logo{height:30px;filter:brightness(0) invert(1)}
.fc-legal-nav__links{display:flex;gap:.3rem;flex-wrap:wrap}
.fc-legal-nav__link{padding:.4rem .7rem;border-radius:6px;font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-decoration:none;color:rgba(255,255,255,.65)}
.fc-legal-nav__link:hover,.fc-legal-nav__link.is-active{background:rgba(91,187,71,.2);color:#fff}
.fc-legal-nav__link i{margin-inline-end:.25rem}
.sidebar-brand-logo{height:38px;filter:brightness(0) invert(1)}
.client-notif-badge.is-hidden,.client-pwa-banner.is-hidden{display:none!important}
.print-doc-logo{height:36px}
.fc-error-code{font-size:var(--fs-hero)}
.fc-error-code--danger{color:var(--danger)}
.fc-error-code--primary{color:var(--primary)}
.fc-error-copy{margin:1rem 0}
.fc-error-request{margin:.5rem 0 1rem}
.fc-error-action{display:inline-block;width:auto;padding:.6rem 2rem}
@media(max-width:700px){.fc-legal-nav__inner{align-items:flex-start;flex-direction:column}.fc-legal-nav__links{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:.15rem}.fc-legal-nav__link{white-space:nowrap}}
