/* FirstPhone performance + UI hardening layer v20260513
   Purpose: unify spacing/color behavior across public, client, and admin screens without changing templates. */
:root{
  --ff-primary:#0E5A45;
  --ff-primary-700:#157254;
  --ff-primary-900:#093B2D;
  --ff-accent:#C29A5B;
  --ff-accent-700:#9A7A45;
  --ff-bg:#F6F8F6;
  --ff-surface:#FFFFFF;
  --ff-text:#183228;
  --ff-muted:#66756E;
  --ff-border:#D8E2DB;
  --ff-danger:#DC2626;
  --ff-warning:#D97706;
  --ff-success:#157254;
  --ff-info:#2C7A9B;
  --ff-radius:16px;
  --ff-radius-lg:24px;
  --ff-shadow:0 14px 36px rgba(9,59,45,.09);
  --ff-shadow-soft:0 8px 22px rgba(9,59,45,.06);
  --ff-focus:0 0 0 4px rgba(14,90,69,.14);
  color-scheme:light;
}
html{scroll-padding-top:88px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{accent-color:var(--ff-primary)}
body.scope-admin,body.front-theme{min-height:100svh}
body.scope-admin,body.front-theme,body.scope-client{background-color:var(--ff-bg)}
body.scope-admin img,body.front-theme img{max-width:100%;height:auto}
body.scope-admin svg,body.front-theme svg{max-width:100%}
button,a,input,select,textarea{touch-action:manipulation}
button,input,select,textarea{font:inherit}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:none!important;box-shadow:var(--ff-focus)!important}
:where(.btn,.front-btn,.page-btn,.copy-btn,.topbar-logout-btn,.client-menu-btn,.client-logout-btn,.client-notif-btn){min-height:42px}
:where(.btn,.front-btn,.page-btn,.copy-btn,.alert,.badge,.card,.admin-card,.cl-card,.stat-card){overflow-wrap:anywhere}
:where(.card,.admin-card,.cl-card,.stat-card,.auth-card,.front-section__card){content-visibility:auto;contain-intrinsic-size:1px 420px}
:where(table){width:100%;border-collapse:separate;border-spacing:0}
:where(.table-responsive,.table-wrap,.dt-table-wrap){overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;border-radius:var(--ff-radius)}
:where(table) th{white-space:nowrap}
:where(table) td{vertical-align:middle}
:where(input,select,textarea){max-width:100%}
:where(input[type='number'],input[inputmode='numeric'],input[inputmode='decimal'],input[name*='phone'],input[name*='iban'],input[name*='tracking'],input[name*='awb']){direction:ltr;text-align:left}
:where(.form-grid,.filter-grid,.stats-grid,.dashboard-grid,.cards-grid){gap:clamp(.75rem,1.6vw,1.25rem)}
:where(.action-bar,.form-actions,.card-actions,.dt-actions,.toolbar){display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}
:where(.action-bar,.form-actions,.card-actions,.dt-actions,.toolbar)>*{min-width:0}
:where(.alert){line-height:1.65}
:where(.badge){white-space:nowrap}
:where(.text-danger,.badge-danger,.alert-danger){--ff-current-state:var(--ff-danger)}
:where(.text-warning,.badge-warning,.alert-warning){--ff-current-state:var(--ff-warning)}
:where(.text-success,.badge-success,.alert-success){--ff-current-state:var(--ff-success)}
:where(.text-info,.badge-info,.alert-info){--ff-current-state:var(--ff-info)}
.scope-admin .admin-content,.scope-admin .page-header{padding-inline:clamp(.9rem,2vw,1.6rem)!important}
.scope-admin .topbar{backdrop-filter:saturate(140%) blur(14px)}
.scope-admin .admin-card,.scope-admin .card{border-color:rgba(14,90,69,.11)!important;box-shadow:var(--ff-shadow-soft)!important}
.scope-admin .card-title,.scope-admin .page-title{letter-spacing:-.01em}
.scope-admin .sidebar a,.scope-admin .nav-link{min-height:42px}
.scope-admin .sidebar .nav-link.active,.scope-admin .sidebar a.active{box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.scope-admin .admin-flash{position:relative;z-index:5}
.scope-admin .table-responsive,.scope-admin .dt-table-wrap{border:1px solid rgba(14,90,69,.09);background:#fff;box-shadow:0 8px 18px rgba(9,59,45,.04)}
body.front-theme .front-shell,body.front-theme .container,body.scope-client .client-nav-wrapper{width:min(calc(100% - clamp(1rem,3vw,2rem)),var(--aw-container,1180px))}
body.front-theme .card,body.front-theme .cl-card,body.front-theme .auth-card,body.front-theme .stat-card{box-shadow:var(--ff-shadow-soft);border-color:rgba(14,90,69,.10)}
body.front-theme .btn,body.front-theme .front-btn,body.front-theme .page-btn{will-change:transform}
body.front-theme .btn:hover,body.front-theme .front-btn:hover,body.front-theme .page-btn:hover{transform:translateY(-1px)}
body.scope-client{padding-bottom:max(72px,env(safe-area-inset-bottom))}
body.scope-client .client-bottom-nav{padding-bottom:max(.45rem,env(safe-area-inset-bottom))}
body.scope-client .client-shell-nav{backdrop-filter:saturate(140%) blur(14px)}
.toast-container{position:fixed;top:1rem;left:1rem;z-index:9999;display:grid;gap:.65rem;width:min(360px,calc(100vw - 2rem));pointer-events:none}
.toast-msg{pointer-events:auto;display:flex;align-items:flex-start;gap:.65rem;padding:.85rem 1rem;border-radius:16px;background:#fff;color:var(--ff-text);border:1px solid var(--ff-border);box-shadow:var(--ff-shadow);animation:ff-toast-in .18s ease-out both}
.toast-msg span{flex:1}.toast-close{appearance:none;border:0;background:transparent;color:inherit;font-size:1.2rem;line-height:1;cursor:pointer;opacity:.65}.toast-close:hover{opacity:1}
@keyframes ff-toast-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media (max-width:768px){
  :where(.action-bar,.form-actions,.card-actions,.dt-actions,.toolbar){align-items:stretch}
  :where(.action-bar,.form-actions,.card-actions,.dt-actions,.toolbar) :where(.btn,button,a.btn){flex:1 1 auto}
  :where(.card,.admin-card,.cl-card,.stat-card,.auth-card){border-radius:18px!important}
  .scope-admin .admin-content{padding-bottom:5rem!important}
  .toast-container{inset-inline:1rem;top:auto;bottom:1rem;width:auto}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}
  :where(.btn,.front-btn,.page-btn):hover{transform:none!important}
}
@media print{
  .toast-container,.client-bottom-nav,.client-shell-nav,.sidebar,.topbar,.admin-flash,.no-print{display:none!important}
  :where(.card,.admin-card,.cl-card,.stat-card){box-shadow:none!important;break-inside:avoid;content-visibility:visible!important}
  body{background:#fff!important;color:#000!important}
}
