/* =========================================================
   FirstMarket Experience System V9
   Premium palette, responsive polish, accessible UX
   Loaded last; preserves page structure and behavior.
   ========================================================= */
:root{
  --fm-v9-navy-950:#06111f;
  --fm-v9-navy-900:#0a1b2d;
  --fm-v9-navy-800:#102a43;
  --fm-v9-emerald:#00a884;
  --fm-v9-emerald-2:#16c79a;
  --fm-v9-indigo:#5b5bd6;
  --fm-v9-blue:#2f6bff;
  --fm-v9-cyan:#10b7c9;
  --fm-v9-amber:#f59e0b;
  --fm-v9-red:#ef476f;
  --fm-v9-canvas:#f3f6fb;
  --fm-v9-card:#ffffff;
  --fm-v9-text:#10233f;
  --fm-v9-muted:#66758a;
  --fm-v9-border:#e2e8f0;
  --fm-v9-shadow-sm:0 4px 14px rgba(14,30,52,.055);
  --fm-v9-shadow:0 16px 42px rgba(14,30,52,.09);
  --fm-v9-shadow-lg:0 28px 80px rgba(7,20,38,.16);
  --fm-v9-radius-sm:11px;
  --fm-v9-radius:16px;
  --fm-v9-radius-lg:22px;
  --fm-v9-font:Tahoma,"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:var(--fm-v9-font)!important;color:var(--fm-v9-text);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body[data-role="customer"]{--primary:var(--fm-v9-emerald)!important;--primary-dark:#08755f!important;--primary-soft:#eafbf6!important;--blue:var(--fm-v9-blue)!important;--text:var(--fm-v9-text)!important;--muted:var(--fm-v9-muted)!important;--line:var(--fm-v9-border)!important;--bg:var(--fm-v9-canvas)!important}
body[data-role="seller"]{--primary:#00a878!important;--primary-dark:#08765a!important;--primary-soft:#e9fbf4!important;--blue:#316bff!important;--text:#10233f!important;--muted:#66758a!important;--line:#e2e8f0!important;--bg:#f3f7f7!important}
body[data-role="courier"]{--primary:#2f6bff!important;--primary-dark:#1f4fd1!important;--primary-soft:#edf3ff!important;--blue:#2f6bff!important;--text:#10233f!important;--muted:#66758a!important;--line:#e2e8f0!important;--bg:#f2f6fc!important}
body[data-role="admin"]{--primary:var(--fm-v9-indigo)!important;--primary-dark:#4444b8!important;--primary-soft:#eeeeff!important;--blue:#2f6bff!important;--violet:var(--fm-v9-indigo)!important;--violet-soft:#eeeeff!important;--text:#10233f!important;--muted:#66758a!important;--line:#e2e8f0!important;--bg:#f3f5fa!important;--sidebar:#071526!important;--sidebar2:#0a2238!important}

body{font-size:15.5px!important;line-height:1.68!important}
body :where(p,span,label,li,td,th,input,select,textarea,button,a,small){line-height:1.6}
body :where(small,.muted,.helper,.hint,.caption,.sub,.subtitle,.meta,.card-sub,.row-sub){font-size:13.5px!important}
body :where(button,.btn,.primary,.secondary,.ghost-btn,.primary-btn,.danger-btn,.warning-soft,.danger-soft,.action-btn){font-size:14.5px!important;font-weight:700}
body :where(input,select,textarea){font-size:15px!important}
body :where(h1,.page-title h1,.page-title h2,.top-title h1){font-size:clamp(23px,2.1vw,30px)!important;letter-spacing:-.02em;line-height:1.35}
body :where(h2){font-size:clamp(19px,1.7vw,24px)!important;line-height:1.42}
body :where(h3){font-size:18px!important;line-height:1.48}
body :where(h4,.card-head strong,.section-title>strong,.column-head strong){font-size:16px!important;line-height:1.5}
body .page-title p{font-size:13.5px!important;color:#7b8da4!important;line-height:1.6!important;margin-top:4px!important}

body[data-role="admin"],body[data-role="seller"],body[data-role="courier"]{background:radial-gradient(circle at 90% -5%,rgba(91,91,214,.08),transparent 34%),radial-gradient(circle at -10% 15%,rgba(0,168,132,.07),transparent 28%),var(--bg)!important}
body[data-role="customer"]{background:radial-gradient(circle at 88% -8%,rgba(0,168,132,.075),transparent 30%),var(--bg,#f3f6fb)!important}
body[data-role="admin"] .sidebar,body[data-role="seller"] .sidebar{background:radial-gradient(circle at 50% -4%,rgba(47,107,255,.24),transparent 28%),radial-gradient(circle at 10% 42%,rgba(0,168,132,.14),transparent 25%),linear-gradient(180deg,var(--fm-v9-navy-950),var(--fm-v9-navy-900) 52%,#0b2236)!important;box-shadow:12px 0 34px rgba(6,17,31,.15)}
body[data-role="admin"] .brand-logo,body[data-role="seller"] .brand-logo,body[data-role="courier"] .brand-logo{background:linear-gradient(145deg,var(--primary),#16334a)!important;box-shadow:0 14px 34px rgba(31,73,108,.25)!important}

body :where(.card,.panel,.widget,.kpi,.stat,.task,.info,.order-card,.mission,.tx,.address-card,.shop-card,.product,.category-card,.ticket,.summary-card,.map-card){border-color:rgba(203,213,225,.72)!important;box-shadow:var(--fm-v9-shadow-sm)!important}
body :where(.card,.panel,.widget,.summary-card){background:linear-gradient(180deg,#fff 0%,#fcfdff 100%)!important;border-radius:var(--fm-v9-radius)!important}
body :where(.card,.panel,.widget,.order-card,.mission,.tx,.shop-card,.product,.ticket){transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
body :where(.order-card,.mission,.tx,.shop-card,.product,.ticket):hover{transform:translateY(-2px);border-color:rgba(91,91,214,.3)!important;box-shadow:var(--fm-v9-shadow)!important}

body :where(.topbar,.mobile-header,.top,.header-row,.page-head){backdrop-filter:saturate(145%) blur(12px)}
body[data-role="admin"] .topbar,body[data-role="seller"] .topbar{background:rgba(255,255,255,.88)!important;border-bottom:1px solid rgba(226,232,240,.9)!important}

button,.btn,[role="button"]{border-radius:12px;transition:transform .14s ease,box-shadow .18s ease,filter .18s ease,background .18s ease}
button:not(:disabled):active,.btn:not(:disabled):active{transform:translateY(1px) scale(.99)}
body :where(.primary,.primary-btn,.pay-btn,.checkout-btn,.save,.track-btn){background:linear-gradient(135deg,var(--primary),#163e5c)!important;border:0!important;color:#fff!important;box-shadow:0 10px 24px rgba(31,73,108,.22)!important}
body :where(.primary,.primary-btn,.pay-btn,.checkout-btn,.save,.track-btn):hover{filter:brightness(1.035);box-shadow:0 14px 30px rgba(31,73,108,.28)!important}
body :where(.secondary,.ghost-btn,.desktop-btn,.small-btn,.action-btn,.icon-btn,.back,.top-btn,.map-control){background:rgba(255,255,255,.94)!important;border-color:#dbe3ed!important;color:#334155!important}
body :where(.secondary,.ghost-btn,.desktop-btn,.small-btn,.action-btn,.icon-btn,.back,.top-btn,.map-control):hover{background:var(--primary-soft)!important;color:var(--primary-dark)!important;border-color:#bccce0!important}
button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none!important}

input,select,textarea{border-color:#d9e2ec!important;background:#fbfdff!important;color:var(--fm-v9-text)!important;border-radius:12px!important;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
input:focus,select:focus,textarea:focus{outline:0!important;border-color:var(--primary)!important;box-shadow:0 0 0 4px rgba(47,107,255,.1)!important;background:#fff!important}
:focus-visible{outline:3px solid rgba(47,107,255,.35)!important;outline-offset:2px!important}

.table-wrap{border:1px solid #e2e8f0;border-radius:15px;overflow:auto!important;background:#fff;box-shadow:var(--fm-v9-shadow-sm)}
table{border-collapse:separate!important;border-spacing:0!important;width:100%}
thead th{position:sticky;top:0;z-index:3;background:linear-gradient(180deg,#f9fbfd,#f3f6fa)!important;color:#475569!important;font-size:13.5px!important;font-weight:800!important;border-bottom:1px solid #dfe6ee!important}
tbody td{font-size:14px!important;color:#27364a!important;border-bottom-color:#edf1f5!important}
tbody tr{transition:background .15s ease}tbody tr:hover{background:#f8fbff!important}tbody tr:last-child td{border-bottom:0!important}

.badge,.status,.status-pill,.nav-badge,.chip{border-radius:999px!important;font-weight:800!important;letter-spacing:-.01em}
.badge.success,.status.success,.good,.doneB{background:#e8faf3!important;color:#08765a!important;border-color:#c7efdf!important}
.badge.warn,.status.pending,.warning,.activeB{background:#fff7df!important;color:#9a6200!important;border-color:#fde7a2!important}
.badge.failed,.status.failed,.danger,.failedB{background:#fff0f3!important;color:#bf294b!important;border-color:#ffcdd8!important}

.sidebar .nav-item{border-radius:12px!important;margin:3px 8px!important;transition:background .16s ease,color .16s ease,transform .16s ease}
.sidebar .nav-item:hover{background:rgba(255,255,255,.075)!important;transform:translateX(-2px)}
.sidebar .nav-item.active{background:linear-gradient(135deg,var(--primary),#1a3f5a)!important;color:#fff!important;box-shadow:0 10px 25px rgba(31,73,108,.2)!important}
.bottom-nav{background:rgba(255,255,255,.94)!important;backdrop-filter:blur(14px);border-top-color:#e2e8f0!important}.bottom-nav .nav-item.active{color:var(--primary)!important}

.fm-admin-create{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 15px;border:0;border-radius:13px;background:linear-gradient(135deg,var(--primary),#3434a7);color:#fff;font:800 14px/1.2 var(--fm-v9-font);box-shadow:0 12px 28px rgba(91,91,214,.25);cursor:pointer;white-space:nowrap;z-index:50}
.fm-admin-create::before{content:"＋";font-size:18px;line-height:1}.fm-admin-create:hover{filter:brightness(1.05);transform:translateY(-1px)}.fm-admin-create.fm-floating{position:fixed;left:22px;bottom:24px;z-index:1200}

.fm-modal-backdrop{position:fixed;inset:0;z-index:5000;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(4,14,27,.62);backdrop-filter:blur(8px)}
.fm-modal-backdrop.is-open{display:flex;animation:fmFade .18s ease}
.fm-modal-card{width:min(760px,100%);max-height:min(88vh,820px);overflow:auto;background:linear-gradient(180deg,#fff,#fbfdff);border:1px solid rgba(255,255,255,.75);border-radius:24px;box-shadow:var(--fm-v9-shadow-lg);animation:fmRise .22s ease}
.fm-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 22px;border-bottom:1px solid #e8edf3;position:sticky;top:0;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);z-index:3}
.fm-modal-title h3{margin:0 0 5px;font-size:20px!important;color:#10233f}.fm-modal-title p{margin:0;color:#718096;font-size:13.5px!important}.fm-modal-close{width:38px;height:38px;border:1px solid #dbe3ed;background:#fff;color:#475569;border-radius:12px;font-size:22px;cursor:pointer}
.fm-modal-body{padding:20px 22px}.fm-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.fm-form-field{display:grid;gap:7px}.fm-form-field.fm-full{grid-column:1/-1}.fm-form-field label{font-size:13.5px!important;font-weight:800;color:#475569}.fm-form-field input,.fm-form-field select,.fm-form-field textarea{width:100%;min-height:44px;padding:10px 12px}.fm-form-field textarea{min-height:96px;resize:vertical}.fm-form-help{font-size:12.5px;color:#8491a3}.fm-form-error{color:#c72f50;font-size:12.5px;min-height:18px}
.fm-modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid #e8edf3;position:sticky;bottom:0;background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}.fm-modal-actions button{min-width:110px;min-height:43px}
.fm-added-panel{margin:14px 0;padding:14px 16px;background:linear-gradient(135deg,#f4f3ff,#f8fbff);border:1px solid #dedcff;border-radius:15px;box-shadow:var(--fm-v9-shadow-sm)}.fm-added-panel h3{margin:0 0 5px!important}.fm-added-panel p{margin:0;color:#66758a}.fm-new-row{animation:fmHighlight 1.35s ease}

.fm-map-host{position:relative!important;overflow:hidden!important;background:#dfe9ee!important;isolation:isolate}.fm-map-surface{position:absolute!important;inset:0!important;z-index:1!important;width:100%!important;height:100%!important}.fm-map-host>.road,.fm-map-host>.route-line,.fm-map-host>.marker:not(.leaflet-marker-icon){display:none!important}.fm-map-host .leaflet-control-container{position:relative;z-index:40}.fm-map-host .leaflet-control-attribution{font-size:10px!important;background:rgba(255,255,255,.88)!important}.fm-map-host .leaflet-popup-content-wrapper{border-radius:13px;box-shadow:0 14px 40px rgba(15,23,42,.18)}
.fm-map-pin{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;color:#fff;border:3px solid #fff;box-shadow:0 9px 24px rgba(15,23,42,.25);font-size:19px}.fm-map-pin.shop{background:#5b5bd6}.fm-map-pin.customer{background:#ef476f}.fm-map-pin.courier{background:#00a884}.fm-map-pin.selected{background:#2f6bff}.fm-map-status{position:absolute;right:12px;left:12px;bottom:12px;z-index:60;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border:1px solid #e1e8ef;border-radius:13px;padding:10px 12px;box-shadow:0 12px 32px rgba(15,23,42,.12);pointer-events:none}.fm-map-status strong{display:block;font-size:13.5px}.fm-map-status span{display:block;font-size:12.5px;color:#66758a;margin-top:3px}

.fm-hub-tools{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-top:16px}.fm-hub-tools button{min-height:40px;padding:9px 13px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.09);color:#fff;border-radius:12px;font:800 13px var(--fm-v9-font);cursor:pointer}.fm-hub-tools button:hover{background:rgba(255,255,255,.16);transform:translateY(-1px)}.fm-hub-tools .danger-soft{background:rgba(239,71,111,.16)!important;border-color:rgba(255,160,180,.22)!important}

@media(max-width:1100px){body[data-role="admin"] :where(.content,.main,.main-content),body[data-role="seller"] :where(.content,.main,.main-content){max-width:100%;min-width:0}.table-wrap{max-width:calc(100vw - 28px)}table{min-width:880px}.fm-admin-create:not(.fm-floating){position:fixed;left:18px;bottom:18px;z-index:1500}}
@media(max-width:760px){body{font-size:15px!important}body :where(h1,.page-title h1,.page-title h2,.top-title h1){font-size:23px!important}body :where(h2){font-size:19px!important}body :where(h3){font-size:17px!important}body :where(button,.btn,.primary,.secondary,.ghost-btn,.primary-btn,.danger-btn,.warning-soft,.danger-soft,.action-btn){font-size:14px!important;min-height:42px}body :where(input,select,textarea){font-size:16px!important}.fm-modal-backdrop{padding:0;align-items:flex-end}.fm-modal-card{width:100%;max-height:94vh;border-radius:22px 22px 0 0}.fm-modal-head{padding:17px 16px}.fm-modal-body{padding:16px}.fm-modal-actions{padding:13px 16px}.fm-form-grid{grid-template-columns:1fr}.fm-form-field.fm-full{grid-column:auto}.fm-admin-create{left:14px!important;bottom:84px!important}.card,.panel,.widget{border-radius:15px!important}.table-wrap{max-width:calc(100vw - 20px);border-radius:13px}table{min-width:820px}.fm-hub-tools{display:grid;grid-template-columns:1fr 1fr;width:100%}.fm-hub-tools button{width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
@keyframes fmFade{from{opacity:0}to{opacity:1}}@keyframes fmRise{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}@keyframes fmHighlight{0%{background:#fff8c9}100%{background:transparent}}
