:root{
  --ds-space-1:4px;--ds-space-2:8px;--ds-space-3:12px;--ds-space-4:16px;--ds-space-5:20px;--ds-space-6:24px;--ds-space-7:32px;--ds-space-8:40px;--ds-space-9:48px;--ds-space-10:64px;
  --ds-radius-xs:8px;--ds-radius-sm:10px;--ds-radius-md:14px;--ds-radius-lg:18px;--ds-radius-xl:24px;--ds-radius-2xl:32px;--ds-radius-pill:999px;
  --ds-control-sm:34px;--ds-control-md:42px;--ds-control-lg:48px;
  --ds-shadow-xs:0 1px 2px rgba(7,16,11,.04);--ds-shadow-sm:0 6px 18px rgba(9,71,43,.055);--ds-shadow-md:0 14px 38px rgba(9,71,43,.09);--ds-shadow-lg:0 24px 64px rgba(7,30,18,.14);
  --ds-focus:0 0 0 4px rgba(32,168,92,.14);
  --ds-duration-fast:120ms;--ds-duration:180ms;--ds-ease:cubic-bezier(.2,.8,.2,1);
  --ds-text-xs:11px;--ds-text-sm:12px;--ds-text-md:14px;--ds-text-lg:16px;--ds-text-xl:20px;--ds-text-2xl:28px;--ds-text-3xl:36px;
  --ds-surface-subtle:#F9FCFA;--ds-surface-muted:#F2F7F4;--ds-overlay:rgba(5,22,15,.52);
}

/* Global product polish */
html{scroll-behavior:smooth}body{background:radial-gradient(circle at 88% -10%,rgba(88,199,128,.08),transparent 28%),var(--oilora-surface)}
::selection{background:var(--oilora-primary-200);color:var(--oilora-primary-950)}
:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:none;box-shadow:var(--ds-focus);border-color:var(--oilora-primary-400)!important}
button,.btn,.icon-btn,.nav-item,.card,.stat,.list-item,.profile{transition:background var(--ds-duration) var(--ds-ease),border-color var(--ds-duration) var(--ds-ease),box-shadow var(--ds-duration) var(--ds-ease),transform var(--ds-duration) var(--ds-ease),color var(--ds-duration) var(--ds-ease)}
button:active,.btn:active,.icon-btn:active{transform:translateY(1px)}

/* Buttons */
.btn{min-height:var(--ds-control-md);display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--ds-radius-md);padding:0 16px;font-size:13px;font-weight:var(--oilora-font-semibold);line-height:1;white-space:nowrap;box-shadow:var(--ds-shadow-xs)}
.btn:hover{transform:translateY(-1px)}
.btn:disabled,.btn.is-disabled{opacity:.46;cursor:not-allowed;pointer-events:none;transform:none;box-shadow:none}
.btn-sm{min-height:var(--ds-control-sm);padding-inline:12px;border-radius:11px;font-size:12px}.btn-lg{min-height:var(--ds-control-lg);padding-inline:20px;font-size:14px}.btn-block{width:100%}
.btn-primary{background:var(--oilora-gradient-brand);color:#fff;border-color:var(--oilora-primary-700);box-shadow:0 8px 18px rgba(23,138,74,.18)}
.btn-primary:hover{background:linear-gradient(145deg,var(--oilora-primary-500),var(--oilora-primary-700));box-shadow:0 12px 26px rgba(23,138,74,.22)}
.btn-secondary{background:var(--oilora-graphite-900);color:#fff;border-color:var(--oilora-graphite-900)}.btn-secondary:hover{background:var(--oilora-graphite-800)}
.btn-soft{background:var(--oilora-primary-50);color:var(--oilora-primary-700);border-color:var(--oilora-primary-100);box-shadow:none}.btn-soft:hover{background:var(--oilora-primary-100)}
.btn-ghost{background:#fff;color:var(--oilora-graphite-700);border-color:var(--oilora-border);box-shadow:var(--ds-shadow-xs)}.btn-ghost:hover{border-color:var(--oilora-primary-200);color:var(--oilora-primary-700);background:var(--oilora-primary-50)}
.btn-danger{background:#FFF5F4;color:#B83229;border-color:#F7D3D0}.btn-danger:hover{background:#FDEAE8;border-color:#F0B8B3}
.btn-success{background:#EAF9F0;color:#126E3D;border-color:#CBEFD8}.btn-success:hover{background:#DDF6E7}
.btn-icon{width:var(--ds-control-md);padding:0}.btn-icon.btn-sm{width:var(--ds-control-sm)}.btn-icon.btn-lg{width:var(--ds-control-lg)}
.btn.is-loading{position:relative;color:transparent!important;pointer-events:none}.btn.is-loading:after{content:"";position:absolute;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;color:#fff;animation:ds-spin .65s linear infinite}@keyframes ds-spin{to{transform:rotate(360deg)}}

/* Icon button */
.icon-btn{width:40px;height:40px;border:1px solid var(--oilora-border);background:#fff;border-radius:12px;color:var(--oilora-graphite-700);display:grid;place-items:center;box-shadow:var(--ds-shadow-xs)}.icon-btn:hover{background:var(--oilora-primary-50);border-color:var(--oilora-primary-200);color:var(--oilora-primary-700)}

/* Fields */
.field{gap:8px}.field label,.ds-label{font-size:12px;font-weight:var(--oilora-font-semibold);color:var(--oilora-graphite-700)}
.field-help,.ds-help{font-size:11px;line-height:1.8;color:var(--oilora-text-muted)}
.field input,.field select,.field textarea,.ds-input,.ds-select,.ds-textarea{width:100%;min-height:var(--ds-control-md);border:1px solid var(--oilora-border);background:#fff;border-radius:var(--ds-radius-md);padding:0 13px;color:var(--oilora-text);box-shadow:var(--ds-shadow-xs);transition:border-color var(--ds-duration),box-shadow var(--ds-duration),background var(--ds-duration)}
.field textarea,.ds-textarea{min-height:100px;padding-block:12px;resize:vertical}.field input:hover,.field select:hover,.field textarea:hover,.ds-input:hover,.ds-select:hover,.ds-textarea:hover{border-color:var(--oilora-graphite-300)}
.field input:focus,.field select:focus,.field textarea:focus,.ds-input:focus,.ds-select:focus,.ds-textarea:focus{outline:none;border-color:var(--oilora-primary-400);box-shadow:var(--ds-focus)}
.field.is-error input,.ds-input.is-error{border-color:#E6847C;background:#FFFBFA}.field-error{font-size:11px;color:var(--oilora-danger)}
.input-wrap{position:relative}.input-wrap .input-icon{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:var(--oilora-graphite-400);pointer-events:none}.input-wrap .ds-input{padding-right:38px}
.search{min-height:var(--ds-control-md);border-radius:var(--ds-radius-md);border-color:var(--oilora-border);box-shadow:var(--ds-shadow-xs)}

/* Selection controls */
.ds-check,.ds-radio{display:inline-flex;align-items:center;gap:9px;font-size:13px;color:var(--oilora-graphite-700);cursor:pointer}.ds-check input,.ds-radio input{accent-color:var(--oilora-primary-600);width:17px;height:17px;margin:0}
.ds-switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:13px;color:var(--oilora-graphite-700)}.ds-switch input{position:absolute;opacity:0;pointer-events:none}.ds-switch-track{width:42px;height:24px;padding:3px;background:var(--oilora-graphite-200);border-radius:999px;transition:.18s}.ds-switch-track:after{content:"";display:block;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.16);transition:.18s}.ds-switch input:checked+.ds-switch-track{background:var(--oilora-primary-600)}.ds-switch input:checked+.ds-switch-track:after{transform:translateX(-18px)}.ds-switch input:focus-visible+.ds-switch-track{box-shadow:var(--ds-focus)}

/* Tabs */
.ds-tabs{display:flex;gap:4px;padding:4px;background:var(--ds-surface-muted);border:1px solid var(--oilora-border);border-radius:var(--ds-radius-md);width:max-content;max-width:100%;overflow:auto}.ds-tab{border:0;background:transparent;color:var(--oilora-text-muted);padding:8px 13px;border-radius:10px;font-size:12px;font-weight:var(--oilora-font-semibold);white-space:nowrap}.ds-tab:hover{color:var(--oilora-primary-700)}.ds-tab.active{background:#fff;color:var(--oilora-primary-700);box-shadow:var(--ds-shadow-sm)}.ds-tab-panel{display:none}.ds-tab-panel.active{display:block}

/* Cards */
.card,.ds-card{background:rgba(255,255,255,.96);border:1px solid var(--oilora-border);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-sm);overflow:hidden}.card:hover,.ds-card.is-hoverable:hover{border-color:#CFE0D6;box-shadow:var(--ds-shadow-md)}
.card-head,.ds-card-head{min-height:58px;padding:16px 18px;border-bottom:1px solid #EAF0EC;display:flex;align-items:center;justify-content:space-between;gap:12px}.card-body,.ds-card-body{padding:18px}.ds-card-foot{padding:14px 18px;border-top:1px solid #EAF0EC;background:#FCFDFC}
.stat{border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-sm);position:relative;overflow:hidden}.stat:before{content:"";position:absolute;inset:0 auto auto 0;width:74px;height:74px;background:radial-gradient(circle,rgba(32,168,92,.09),transparent 70%);pointer-events:none}.stat:hover{transform:translateY(-2px);box-shadow:var(--ds-shadow-md);border-color:#CFE0D6}.stat-icon{border:1px solid var(--oilora-primary-100)}

/* Badges / status */
.badge,.ds-badge{display:inline-flex;align-items:center;gap:6px;min-height:25px;padding:4px 9px;border:1px solid transparent;border-radius:var(--ds-radius-pill);font-size:11px;font-weight:var(--oilora-font-semibold);line-height:1.25;background:var(--oilora-graphite-100);color:var(--oilora-graphite-600)}
.badge.green,.ds-badge.success{background:#ECF9F1;color:#126E3D;border-color:#D5F1DF}.badge.red,.ds-badge.danger{background:#FFF3F2;color:#B83229;border-color:#F8D8D5}.badge.orange,.ds-badge.warning{background:#FFF8EA;color:#9A5D00;border-color:#F6E4BA}.badge.blue,.ds-badge.info{background:#EFF6FF;color:#1D5FAE;border-color:#D8E9FC}.ds-badge.neutral{background:#F2F5F3;color:#53655B;border-color:#E3E9E5}.ds-status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}

/* Alerts */
.ds-alert{display:grid;grid-template-columns:auto 1fr;gap:11px;padding:13px 14px;border:1px solid;border-radius:var(--ds-radius-md);font-size:12px;line-height:1.8}.ds-alert strong{display:block;margin-bottom:2px}.ds-alert.info{background:#F4F8FE;border-color:#D8E8FA;color:#245C9D}.ds-alert.success{background:#F1FBF5;border-color:#CEEDD9;color:#126E3D}.ds-alert.warning{background:#FFF9EE;border-color:#F2DFB6;color:#88530A}.ds-alert.danger{background:#FFF5F4;border-color:#F2D0CD;color:#A6372E}

/* Tooltip + dropdown */
.ds-tooltip{position:relative;display:inline-flex}.ds-tooltip[data-tip]:hover:after,.ds-tooltip[data-tip]:focus-within:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);right:50%;transform:translateX(50%);background:var(--oilora-graphite-900);color:#fff;padding:6px 9px;border-radius:8px;font-size:10px;white-space:nowrap;z-index:100;box-shadow:var(--ds-shadow-md)}
.ds-dropdown{position:relative;display:inline-block}.ds-dropdown summary{list-style:none}.ds-dropdown summary::-webkit-details-marker{display:none}.ds-dropdown-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:30;min-width:190px;padding:6px;background:#fff;border:1px solid var(--oilora-border);border-radius:var(--ds-radius-md);box-shadow:var(--ds-shadow-lg)}.ds-menu-item{display:flex;width:100%;align-items:center;gap:9px;border:0;background:transparent;padding:9px 10px;border-radius:9px;color:var(--oilora-graphite-700);font-size:12px;text-align:right}.ds-menu-item:hover{background:var(--oilora-primary-50);color:var(--oilora-primary-700)}

/* Table / list */
.table-wrap{border-radius:0 0 var(--ds-radius-lg) var(--ds-radius-lg)}.table{min-width:760px}.table th{height:44px;background:#FAFCFB;color:var(--oilora-graphite-500);font-size:11px;font-weight:var(--oilora-font-semibold);border-bottom-color:#E7EEEA}.table td{height:52px;color:var(--oilora-graphite-800);border-bottom-color:#EDF2EF}.table tbody tr:last-child td{border-bottom:0}.table tr:hover td{background:#F8FCF9}.list-item{border-color:#E8EFEB;background:#fff}.list-item:hover{border-color:#D2E4D9;background:#FBFDFB;transform:translateY(-1px)}

/* Empty / skeleton / pagination */
.ds-empty{min-height:220px;display:grid;place-items:center;text-align:center;padding:32px}.ds-empty-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;margin:0 auto 12px;background:var(--oilora-primary-50);border:1px solid var(--oilora-primary-100);font-size:24px}.ds-empty h3{margin:0 0 6px;font-size:16px}.ds-empty p{margin:0 auto 14px;max-width:390px;color:var(--oilora-text-muted);font-size:12px;line-height:1.9}
.ds-skeleton{position:relative;overflow:hidden;background:#EAF0EC;border-radius:8px;min-height:12px}.ds-skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.62),transparent);transform:translateX(100%);animation:ds-shimmer 1.25s infinite}@keyframes ds-shimmer{to{transform:translateX(-100%)}}
.ds-pagination{display:flex;gap:5px;align-items:center}.ds-page{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--oilora-border);background:#fff;border-radius:10px;font-size:11px;color:var(--oilora-graphite-600)}.ds-page:hover{border-color:var(--oilora-primary-200);color:var(--oilora-primary-700)}.ds-page.active{background:var(--oilora-primary-600);border-color:var(--oilora-primary-600);color:#fff}

/* Avatar / vehicle / product / membership primitives */
.ds-avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(145deg,var(--oilora-primary-50),var(--oilora-primary-100));color:var(--oilora-primary-700);font-weight:var(--oilora-font-bold);border:1px solid var(--oilora-primary-100)}.ds-avatar.sm{width:30px;height:30px;border-radius:9px;font-size:11px}.ds-avatar.lg{width:54px;height:54px;border-radius:17px;font-size:17px}.ds-avatar-stack{display:flex;direction:ltr}.ds-avatar-stack .ds-avatar{margin-left:-8px;border:2px solid #fff}
.ds-vehicle{display:flex;align-items:center;gap:11px}.ds-vehicle-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#F1F5F3;color:var(--oilora-graphite-700);border:1px solid #E1E9E4;font-size:20px}.ds-vehicle small{display:block;color:var(--oilora-text-muted);margin-top:3px}
.ds-product{border:1px solid var(--oilora-border);border-radius:var(--ds-radius-lg);padding:14px;background:#fff}.ds-product-media{height:118px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,#F3FAF6,#E3F3E9);font-size:38px;margin-bottom:12px}.ds-product-price{color:var(--oilora-primary-700);font-weight:var(--oilora-font-bold);margin-top:8px}.ds-membership{position:relative;padding:18px;border:1px solid var(--oilora-border);border-radius:var(--ds-radius-lg);background:#fff;overflow:hidden}.ds-membership.featured{border-color:var(--oilora-primary-300);box-shadow:0 14px 36px rgba(23,138,74,.12)}.ds-membership.featured:before{content:"پیشنهادی";position:absolute;top:12px;left:-32px;width:120px;text-align:center;transform:rotate(-36deg);background:var(--oilora-primary-600);color:#fff;font-size:9px;padding:4px}.ds-membership .plan-name{font-size:16px;font-weight:var(--oilora-font-bold)}.ds-membership .plan-price{font-size:25px;font-weight:var(--oilora-font-extrabold);margin:10px 0 3px}.ds-membership ul{padding-right:18px;margin:14px 0;color:var(--oilora-text-muted);font-size:12px;line-height:2}

/* Progress / chart card */
.progress{height:8px;background:#EDF3EF;border-radius:999px}.progress>span{background:linear-gradient(90deg,var(--oilora-primary-600),var(--oilora-primary-400))}.ds-progress-lg{height:11px}.ds-chart{height:160px;display:flex;align-items:flex-end;gap:7px;padding-top:16px;border-bottom:1px solid #EDF2EF}.ds-chart span{flex:1;min-width:7px;background:linear-gradient(180deg,var(--oilora-primary-400),var(--oilora-primary-700));border-radius:6px 6px 2px 2px;opacity:.9;transition:.18s}.ds-chart span:hover{opacity:1;filter:saturate(1.15);transform:translateY(-2px)}

/* Modal and toast */
.modal-backdrop{background:var(--ds-overlay);backdrop-filter:blur(4px);animation:ds-fade .16s ease}.modal{border:1px solid rgba(255,255,255,.5);box-shadow:var(--ds-shadow-lg);animation:ds-pop .2s var(--ds-ease)}@keyframes ds-fade{from{opacity:0}}@keyframes ds-pop{from{opacity:0;transform:translateY(8px) scale(.985)}}
.toast{left:22px;bottom:22px;min-width:220px;max-width:min(420px,calc(100vw - 44px));background:var(--oilora-graphite-900);border:1px solid rgba(255,255,255,.09);box-shadow:var(--ds-shadow-lg);animation:ds-toast-in .22s var(--ds-ease)}@keyframes ds-toast-in{from{opacity:0;transform:translateY(10px)}}

/* Shell refinements */
.sidebar{width:auto;padding:18px 12px;background:linear-gradient(180deg,#0A1811 0%,#06110C 100%);border-left:1px solid rgba(255,255,255,.035)}.side-brand{padding:7px 9px 18px}.nav-section{padding:17px 11px 6px;color:#668676;letter-spacing:.015em}.nav-item{min-height:42px;padding:10px 11px;border:1px solid transparent}.nav-item:hover{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.035)}.nav-item.active{background:linear-gradient(90deg,rgba(32,168,92,.30),rgba(13,90,52,.55));border-color:rgba(88,199,128,.16);box-shadow:inset 3px 0 0 var(--oilora-primary-400)}
.topbar{height:72px;background:rgba(255,255,255,.90);box-shadow:0 1px 0 rgba(8,24,15,.02)}.content{max-width:1680px;width:100%;margin:0 auto;padding:26px 28px 40px}.page-head{margin-bottom:20px}.page-head h1{font-size:26px}.page-head p{font-size:12px;line-height:1.8}.profile:hover{border-color:#D1E1D7;box-shadow:var(--ds-shadow-sm)}

/* Design system showcase */
.ds-showcase{display:flex;flex-direction:column;gap:18px}.ds-hero{padding:24px;border-radius:var(--ds-radius-xl);background:linear-gradient(135deg,#07160F,#0D5A34 62%,#178A4A);color:#fff;position:relative;overflow:hidden}.ds-hero:after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;left:-60px;top:-90px;background:rgba(88,199,128,.13)}.ds-hero h2{margin:0;font-size:26px}.ds-hero p{margin:8px 0 0;color:#CEE9D8;max-width:720px;line-height:1.9;font-size:13px}.ds-hero-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px}.ds-section{background:#fff;border:1px solid var(--oilora-border);border-radius:var(--ds-radius-xl);box-shadow:var(--ds-shadow-sm);overflow:hidden}.ds-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 19px;border-bottom:1px solid #EAF0EC}.ds-section-head h3{margin:0;font-size:15px}.ds-section-head p{margin:3px 0 0;font-size:11px;color:var(--oilora-text-muted)}.ds-section-body{padding:19px}.ds-demo-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.ds-demo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.ds-demo-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.ds-token-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.ds-swatch{min-height:88px;border:1px solid var(--oilora-border);border-radius:14px;overflow:hidden;background:#fff}.ds-swatch-color{height:48px}.ds-swatch-label{padding:8px;font-size:10px;color:var(--oilora-graphite-600);direction:ltr;text-align:left}.ds-demo-note{padding:11px 12px;background:var(--ds-surface-muted);border-radius:12px;font-size:11px;color:var(--oilora-text-muted);line-height:1.8}

@media(max-width:1100px){.ds-demo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ds-token-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.content{padding:17px 13px 32px}.ds-demo-grid,.ds-demo-grid.two{grid-template-columns:1fr}.ds-token-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ds-section-body{padding:14px}.ds-hero{padding:20px}.ds-hero h2{font-size:22px}.ds-dropdown-menu{left:auto;right:0}.btn{min-height:44px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
