:root{
  --ui-font:clamp(12px,calc(10.8px + .18vw),15px);
  --ui-gap:clamp(8px,.75vw,14px);
  --ui-pad:clamp(12px,1.25vw,20px);
  --ui-radius:clamp(10px,.85vw,15px);
  --ui-icon:clamp(32px,3vw,44px);
}

html{font-size:var(--ui-font);scroll-behavior:smooth}
body{font-size:1rem;overflow-x:hidden}
button,input,select,textarea{max-width:100%;font-size:1em}
button{padding:clamp(8px,.75vw,12px) clamp(11px,1vw,17px);border-radius:clamp(8px,.65vw,10px)}
input,select,textarea{padding:clamp(9px,.75vw,12px);border-radius:clamp(8px,.65vw,10px)}

#app{grid-template-columns:clamp(195px,16vw,248px) minmax(0,1fr)}
aside{padding:clamp(18px,1.8vw,28px) clamp(13px,1.35vw,20px)}
.brand{font-size:clamp(20px,1.7vw,27px)}
.brand span{font-size:clamp(12px,.95vw,16px)}
nav{gap:clamp(5px,.55vw,9px);margin-top:clamp(22px,2.5vw,40px)}
nav button{min-height:clamp(37px,3.2vw,46px)}
main{padding:clamp(18px,2vw,32px);min-width:0;max-width:100%}
header{gap:var(--ui-gap);margin-bottom:clamp(17px,1.7vw,26px)}
header h1{font-size:clamp(20px,1.75vw,28px)}
header p{font-size:clamp(11px,.9vw,14px)}

.stats,.smart-stats{grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr));gap:var(--ui-gap)}
.stat{padding:var(--ui-pad);border-radius:var(--ui-radius);min-width:0}
.stat b{font-size:clamp(23px,2.1vw,32px);margin-top:clamp(6px,.7vw,11px)}
.grid2{grid-template-columns:minmax(0,1.6fr) minmax(250px,1fr);gap:clamp(12px,1.2vw,18px)}
.panel{padding:var(--ui-pad);border-radius:var(--ui-radius);overflow:visible;min-width:0}
.panel h2{font-size:clamp(14px,1.1vw,17px);margin-bottom:clamp(11px,1.1vw,17px)}
.toolbar{gap:var(--ui-gap);flex-wrap:wrap}
.toolbar input{min-width:min(280px,100%);flex:1 1 260px}
.toolbar select{flex:0 1 220px}

/* نوار حرکت افقیِ بالای جدول و قیف فروش؛ همیشه در دسترس می‌ماند. */
.scroll-shell{position:relative;min-width:0;max-width:100%}
.scroll-toolbar{position:sticky;top:0;z-index:18;display:grid;grid-template-columns:clamp(30px,2.7vw,38px) minmax(80px,1fr) clamp(30px,2.7vw,38px);align-items:center;gap:6px;height:clamp(35px,3vw,43px);margin:0 0 8px;padding:4px 6px;background:linear-gradient(180deg,#fff 72%,#f3f6f8);border:1px solid #e3e9ed;border-radius:10px;box-shadow:0 4px 12px #10243d0d;direction:ltr}
.scroll-toolbar.no-overflow{display:none}
.scroll-step{display:grid;place-items:center;width:100%;height:100%;padding:0;background:#edf4f6;color:var(--blue);border:1px solid #d5e4e8;font-size:clamp(16px,1.5vw,22px);line-height:1}
.scroll-step:hover{background:#dfeff1}
.top-scrollbar{height:20px;overflow-x:auto;overflow-y:hidden;direction:ltr;scrollbar-color:#78a9b4 #e7eef0;scrollbar-width:auto}
.top-scrollbar>div{height:1px}
.top-scrollbar::-webkit-scrollbar{height:13px}
.top-scrollbar::-webkit-scrollbar-track{background:#e7eef0;border-radius:9px}
.top-scrollbar::-webkit-scrollbar-thumb{background:#78a9b4;border:3px solid #e7eef0;border-radius:9px}
.scroll-content{max-width:100%;overflow-x:auto;overflow-y:visible;direction:ltr;scrollbar-color:#78a9b4 #e7eef0}
.scroll-content>*{direction:rtl}
.table-scroll-shell .table{min-width:780px}
.activity-report .table-scroll-shell .table{min-width:1120px}
.table{font-size:clamp(11px,.9vw,14px)}
.table th,.table td{padding:clamp(9px,.85vw,13px) clamp(7px,.65vw,10px)}
.kanban-scroll-shell{max-width:100%}
.kanban{overflow:visible;width:max-content;min-width:100%;gap:clamp(9px,.9vw,14px);padding-bottom:10px}
.column{min-width:clamp(215px,20vw,270px);border-radius:var(--ui-radius);padding:clamp(9px,.8vw,13px)}
.deal{padding:clamp(9px,.8vw,13px);border-radius:clamp(8px,.7vw,11px)}

dialog{max-width:calc(100vw - clamp(12px,2vw,32px));padding:0}
.modal-wide{width:min(1180px,calc(100vw - clamp(16px,3vw,48px)))}
.modal-card{padding:clamp(18px,1.8vw,28px);padding-top:clamp(54px,4.2vw,66px);border-radius:clamp(13px,1.2vw,19px);min-width:0}
.modal-wide .modal-card{max-height:calc(100vh - clamp(24px,5vh,70px));overflow-y:auto;overflow-x:hidden}
.close{left:clamp(12px,1.2vw,18px);top:clamp(11px,1.1vw,17px);z-index:30;display:grid;place-items:center;width:clamp(34px,3vw,42px);height:clamp(34px,3vw,42px);padding:0;border:1px solid #dfe6ea;border-radius:50%;background:#fff;color:#647382;font-size:clamp(22px,2vw,29px);box-shadow:0 4px 14px #10243d18}
.modal-card>h2,.modal-card form>h2{padding-left:clamp(44px,4.5vw,60px);font-size:clamp(17px,1.45vw,22px);margin-top:0}
.form-section{padding:clamp(12px,1.4vw,20px);margin:clamp(12px,1.3vw,19px) 0;border-radius:var(--ui-radius)}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--ui-gap)}
.form-actions{position:sticky;bottom:0;z-index:12;padding:10px 0 2px;background:linear-gradient(0deg,#fff 72%,#ffffffd9);flex-wrap:wrap}

/* سربرگ پرونده مرتب شده و تلفن از دکمه بستن جداست. */
.detail-header{display:block;padding:0 0 clamp(11px,1vw,15px);padding-left:clamp(48px,5vw,68px)}
.detail-header h2{font-size:clamp(19px,1.8vw,27px)}
.detail-actions{gap:clamp(6px,.65vw,10px);margin:clamp(12px,1.2vw,18px) 0}
.detail-summary{grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:var(--ui-gap);margin-bottom:clamp(12px,1.2vw,18px)}
.detail-summary>div{padding:clamp(10px,1vw,14px);border-radius:clamp(9px,.75vw,12px);min-width:0}
.detail-summary .factory-phone{display:grid;gap:7px;text-align:right;background:#eef6f7;border:1px solid #d5e7e9;color:var(--muted);font-size:inherit}
.detail-summary .factory-phone b{margin:0;text-align:right;color:var(--ink);font-size:clamp(14px,1.25vw,18px);unicode-bidi:plaintext}
.wide-summary{grid-column:auto}
.detail-grid{grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);gap:clamp(12px,1.3vw,19px)}
.detail-grid>section,.detail-side{padding:clamp(12px,1.25vw,18px);border-radius:var(--ui-radius);min-width:0}
.timeline{max-height:min(540px,56vh)}
.timeline-item{padding:clamp(10px,1vw,14px);border-radius:clamp(9px,.75vw,12px)}

.contact-row{grid-template-columns:var(--ui-icon) minmax(120px,1fr) minmax(150px,1.25fr) minmax(120px,1fr) minmax(120px,1fr) minmax(70px,.6fr) clamp(34px,3vw,40px);gap:clamp(6px,.6vw,9px);padding:clamp(9px,.9vw,13px);min-width:0}
.contact-role-icon,.contact-avatar{width:var(--ui-icon);height:var(--ui-icon);font-size:clamp(18px,1.7vw,24px)}
.contact-card{grid-template-columns:var(--ui-icon) minmax(0,1fr)}
.model-row{grid-template-columns:minmax(0,1fr) clamp(34px,3vw,40px)}
.icon-button{width:clamp(34px,3vw,40px);height:clamp(34px,3vw,40px)}
.smart-banner{padding:clamp(11px,1.1vw,16px);border-radius:var(--ui-radius)}
.smart-banner>span{font-size:clamp(22px,2.1vw,30px)}
.task-card{grid-template-columns:clamp(115px,12vw,150px) minmax(0,1fr) clamp(62px,6vw,78px);gap:var(--ui-gap);padding:clamp(10px,1vw,15px)}

@media(max-width:1120px){
  .grid2,.detail-grid{grid-template-columns:1fr}
  .contact-row{grid-template-columns:var(--ui-icon) repeat(3,minmax(0,1fr))}
  .contact-row .small-field{grid-column:auto}
}

@media(max-width:900px){
  #app{grid-template-columns:1fr}
  aside{height:auto;position:static;display:block;padding:16px}
  nav{display:flex;overflow-x:auto;margin-top:14px;padding-bottom:6px}
  nav button{white-space:nowrap;min-height:38px}
  .aside-foot{display:none}
  main{padding:clamp(13px,2.5vw,22px)}
  .contact-row{grid-template-columns:var(--ui-icon) repeat(2,minmax(0,1fr))}
}

@media(max-width:650px){
  header{align-items:flex-start;flex-wrap:wrap}
  header>button{width:100%}
  .stats,.smart-stats{grid-template-columns:1fr 1fr}
  .form-grid{grid-template-columns:1fr}
  .wide{grid-column:auto}
  .contact-row{grid-template-columns:var(--ui-icon) minmax(0,1fr)}
  .contact-row label{grid-column:1/-1}
  .task-card{grid-template-columns:1fr}
  .task-score{text-align:right}
  .detail-header{padding-left:45px}
  .detail-actions button{flex:1 1 145px}
  .scroll-toolbar{grid-template-columns:31px minmax(60px,1fr) 31px}
  .table-scroll-shell .table{min-width:720px}
  .model-list,.jalali-picker{grid-template-columns:1fr}
}

@media(min-width:1600px){
  main{padding-left:clamp(32px,4vw,68px);padding-right:clamp(32px,4vw,68px)}
  .modal-wide{width:min(1320px,calc(100vw - 70px))}
}
