:root{
  --bg:#0E1116;
  --surface:#171B22;
  --surface2:#1E232C;
  --surface3:#252B36;
  --border:#2B313D;
  --border-soft:#20252E;
  --accent:#FFB020;
  --accent-dim:#4A3413;
  --accent-text:#FFC862;
  --red:#E8483C;
  --red-dim:#3D1815;
  --red-text:#FF7A6E;
  --green:#33C481;
  --green-dim:#123326;
  --green-text:#5FE0A6;
  --gray-text:#8A93A3;
  --text:#EDEFF3;
  --text-dim:#9BA3B2;
  --text-faint:#636B7A;
  --radius:10px;
  --font-head:'Chakra Petch',sans-serif;
  --font-body:'Inter',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:8px;}
::-webkit-scrollbar-track{background:transparent;}
a{color:inherit;text-decoration:none;}
button{font-family:var(--font-body);cursor:pointer;}
input,select,textarea{font-family:var(--font-body);}

/* ---------- Charge bar signature component ---------- */
.charge{display:inline-flex;align-items:center;gap:6px;}
.charge-bars{display:flex;gap:2px;align-items:flex-end;height:14px;}
.charge-bars i{display:block;width:3px;border-radius:1px;background:var(--border);}
.charge-bars i:nth-child(1){height:30%;}
.charge-bars i:nth-child(2){height:50%;}
.charge-bars i:nth-child(3){height:65%;}
.charge-bars i:nth-child(4){height:80%;}
.charge-bars i:nth-child(5){height:100%;}
.charge.lvl-5 .charge-bars i{background:var(--green);}
.charge.lvl-4 .charge-bars i:nth-child(-n+4){background:var(--green);}
.charge.lvl-3 .charge-bars i:nth-child(-n+3){background:var(--accent);}
.charge.lvl-2 .charge-bars i:nth-child(-n+2){background:var(--accent);}
.charge.lvl-1 .charge-bars i:nth-child(-n+1){background:var(--red);}
.charge.lvl-0 .charge-bars i{background:var(--red-dim);}
.charge-label{font-size:11.5px;font-weight:600;letter-spacing:.02em;}
.charge.status-active .charge-label{color:var(--green-text);}
.charge.status-expiring .charge-label{color:var(--accent-text);}
.charge.status-expired .charge-label{color:var(--text-faint);}
.charge.status-fault .charge-label{color:var(--red-text);}

/* ---------- App shell ---------- */
.shell, #appShell{min-height:100vh;position:relative;}
.shell-inner{display:flex;min-height:100vh;}

.sidebar{
  width:248px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border-soft);
  display:flex;flex-direction:column;height:100vh;position:sticky;top:0;z-index:10;
  transition:transform .3s cubic-bezier(0.16, 1, 0.3, 1);
}
.sidebar-head{padding:18px 18px 16px;border-bottom:1px solid var(--border-soft);}
.sidebar-head-top{display:flex;align-items:center;justify-content:space-between;}
.brand-mark{display:flex;align-items:center;gap:10px;position:relative;z-index:1;}
.brand-mark .cell{width:34px;height:20px;border:2px solid var(--accent);border-radius:4px;position:relative;display:flex;align-items:center;padding:2px;gap:2px;}
.brand-mark .cell::after{content:"";position:absolute;right:-6px;top:5px;width:4px;height:8px;background:var(--accent);border-radius:0 2px 2px 0;}
.brand-mark .cell i{flex:1;align-self:stretch;background:var(--accent);border-radius:1px;}
.brand-mark .cell i:nth-child(3){background:transparent;}
.brand-name{font-family:var(--font-head);font-weight:700;font-size:15px;letter-spacing:.03em;}
.brand-name span{color:var(--accent);}
.sidebar-head .brand-mark{gap:8px;}
.sidebar-head .brand-name{font-size:15px;}
.sidebar-head .role-pill{margin-top:10px;display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:20px;background:var(--accent-dim);color:var(--accent-text);}

.sidebar-close-btn{
  display:none;width:32px;height:32px;border-radius:8px;background:var(--surface2);border:1px solid var(--border);
  color:var(--text-dim);align-items:center;justify-content:center;cursor:pointer;transition:.15s;flex-shrink:0;
}
.sidebar-close-btn:hover{background:var(--surface3);color:var(--text);border-color:var(--accent-dim);}
.sidebar-close-btn svg{width:16px;height:16px;}

.sidebar-nav{flex:1;overflow-y:auto;padding:14px 12px;}
.nav-group{margin-bottom:6px;}
.nav-group-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);font-weight:700;padding:14px 10px 6px;}
.nav-item{
  display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;font-size:13.5px;
  color:var(--text-dim);font-weight:500;cursor:pointer;transition:.12s;margin-bottom:1px;
}
.nav-item:hover{background:var(--surface2);color:var(--text);}
.nav-item.active{background:var(--accent-dim);color:var(--accent-text);}
.nav-item svg{width:17px;height:17px;flex-shrink:0;}
.sidebar-foot{padding:14px 18px;border-top:1px solid var(--border-soft);}
.foot-user{display:flex;align-items:center;gap:10px;}
.avatar{width:32px;height:32px;border-radius:8px;background:var(--surface3);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--accent-text);flex-shrink:0;}
.foot-user div p{font-size:13px;font-weight:600;}
.foot-user div span{font-size:11.5px;color:var(--text-faint);}
.logout-btn{margin-top:12px;width:100%;display:flex;align-items:center;justify-content:center;gap:7px;background:var(--surface2);border:1px solid var(--border);color:var(--text-dim);padding:8px;border-radius:8px;font-size:12.5px;font-weight:600;cursor:pointer;transition:.15s;}
.logout-btn:hover{color:var(--red-text);border-color:var(--red-dim);background:var(--surface3);}

/* Mobile backdrop */
.sidebar-backdrop{
  display:none;position:fixed;inset:0;background:rgba(10,13,18,0.72);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  z-index:998;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;
  cursor:pointer;
}

.main{flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{
  height:62px;flex-shrink:0;border-bottom:1px solid var(--border-soft);display:flex;align-items:center;
  justify-content:space-between;padding:0 24px;background:var(--bg);position:sticky;top:0;z-index:50;
}
.topbar-left{display:flex;align-items:center;gap:12px;min-width:0;}
.topbar-title{font-family:var(--font-head);font-size:16.5px;font-weight:600;white-space:nowrap;}
.topbar-title span{color:var(--text-faint);font-family:var(--font-body);font-weight:400;font-size:12.5px;display:block;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.topbar-right{display:flex;align-items:center;gap:12px;flex-shrink:0;}
.search-mini{display:flex;align-items:center;gap:8px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:7px 12px;width:230px;transition:width .2s ease;}
.search-mini input{background:none;border:none;outline:none;color:var(--text);font-size:12.5px;width:100%;}
.search-mini input::placeholder{color:var(--text-faint);}
.search-mini svg{width:15px;height:15px;color:var(--text-faint);flex-shrink:0;}
.icon-btn{width:34px;height:34px;border-radius:8px;background:var(--surface2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-dim);position:relative;cursor:pointer;}
.icon-btn:hover{color:var(--text);background:var(--surface3);}
.icon-btn svg{width:16px;height:16px;}
.icon-btn .dot{position:absolute;top:6px;right:7px;width:6px;height:6px;border-radius:50%;background:var(--red);border:1.5px solid var(--bg);}

.content{padding:26px 28px 60px;overflow-y:auto;flex:1;}
.page{display:block;animation:fadeIn .2s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:none;}}

.page-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:20px;flex-wrap:wrap;gap:12px;}
.page-header h1{font-family:var(--font-head);font-size:21px;font-weight:600;}
.page-header p{color:var(--text-dim);font-size:13px;margin-top:4px;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:9px 14px;border-radius:8px;font-size:13px;font-weight:600;transition:.12s;cursor:pointer;}
.btn:hover{background:var(--surface3);}
.btn svg{width:15px;height:15px;}
.btn-accent{background:var(--accent);border-color:var(--accent);color:#241800;}
.btn-accent:hover{background:#ffc247;}
.btn-ghost{background:none;border:1px solid var(--border);}
.btn-sm{padding:6px 10px;font-size:12px;}
.btn-danger{border-color:var(--red-dim);color:var(--red-text);}

/* stat cards */
.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:24px;}
.stat-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px;}
.stat-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:16px 18px;}
.stat-card .top{display:flex;justify-content:space-between;align-items:flex-start;}
.stat-card .icn{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;}
.stat-card .icn svg{width:15px;height:15px;}
.stat-card .label{font-size:12px;color:var(--text-dim);margin-top:14px;font-weight:500;}
.stat-card .value{font-family:var(--font-head);font-size:26px;font-weight:600;margin-top:2px;}
.stat-card .delta{font-size:11.5px;margin-top:6px;font-weight:600;}
.icn-amber{background:var(--accent-dim);color:var(--accent-text);}
.icn-green{background:var(--green-dim);color:var(--green-text);}
.icn-red{background:var(--red-dim);color:var(--red-text);}
.icn-blue{background:#122335;color:#6FB4E8;}
.icn-gray{background:var(--surface3);color:var(--text-dim);}

.grid-2{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin-bottom:24px;}
.grid-2.equal{grid-template-columns:1fr 1fr;}
.panel{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:18px 20px;}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:8px;}
.panel-head h3{font-size:14.5px;font-weight:600;}
.panel-head a{font-size:12px;color:var(--accent-text);font-weight:600;}

/* battery mini bars chart */
.mini-bars{display:flex;align-items:flex-end;gap:8px;height:110px;padding-top:10px;}
.mini-bars .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;}
.mini-bars .bar{width:100%;background:var(--accent);border-radius:4px 4px 0 0;opacity:.85;}
.mini-bars .col span{font-size:10.5px;color:var(--text-faint);}

.dist-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--border-soft);font-size:13px;gap:8px;flex-wrap:wrap;}
.dist-row:last-child{border:none;}
.dist-row .bar-bg{flex:1;min-width:60px;height:6px;background:var(--surface3);border-radius:4px;margin:0 12px;overflow:hidden;}
.dist-row .bar-bg i{display:block;height:100%;background:var(--accent);border-radius:4px;}

/* Tables */
.table-wrap{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);overflow-x:auto;-webkit-overflow-scrolling:touch;}
.table-toolbar{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border-soft);gap:12px;flex-wrap:wrap;}
table{width:100%;border-collapse:collapse;font-size:12.8px;min-width:550px;}
thead th{text-align:left;padding:11px 16px;color:var(--text-faint);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-soft);white-space:nowrap;}
tbody td{padding:12px 16px;border-bottom:1px solid var(--border-soft);white-space:nowrap;color:var(--text);}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:var(--surface2);}
.tcode{color:var(--text-dim);font-family:monospace;font-size:12px;}
.row-actions{display:flex;gap:6px;}
.row-actions button{width:26px;height:26px;border-radius:6px;background:var(--surface2);border:1px solid var(--border);color:var(--text-dim);display:flex;align-items:center;justify-content:center;cursor:pointer;}
.row-actions button svg{width:13px;height:13px;}
.row-actions button:hover{color:var(--accent-text);border-color:var(--accent-dim);}
.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;}
.badge-green{background:var(--green-dim);color:var(--green-text);}
.badge-red{background:var(--red-dim);color:var(--red-text);}
.badge-gray{background:var(--surface3);color:var(--text-dim);}
.pagination{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;font-size:12px;color:var(--text-faint);flex-wrap:wrap;gap:8px;}
.pagination .pages{display:flex;gap:5px;}
.pagination .pages button{width:26px;height:26px;border-radius:6px;background:var(--surface2);border:1px solid var(--border);color:var(--text-dim);font-size:12px;}
.pagination .pages button.active{background:var(--accent-dim);color:var(--accent-text);border-color:var(--accent-dim);}

/* Forms */
.form-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:24px;max-width:900px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;}
.form-grid .full{grid-column:1/-1;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:12.5px;color:var(--text-dim);margin-bottom:6px;font-weight:500;}
.field input,.field select,.field textarea{
  width:100%;background:var(--surface2);border:1px solid var(--border);color:var(--text);
  padding:10px 12px;border-radius:8px;font-size:13.5px;outline:none;transition:.15s;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);background:var(--surface3);}
.field input::placeholder{color:var(--text-faint);}
.form-actions{display:flex;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid var(--border-soft);flex-wrap:wrap;}
.hint{font-size:11.5px;color:var(--text-faint);margin-top:5px;}
.section-label{grid-column:1/-1;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-text);font-weight:700;margin:10px 0 -4px;padding-top:14px;border-top:1px solid var(--border-soft);}
.section-label:first-child{border-top:none;padding-top:0;margin-top:0;}

/* master list layout */
.master-layout{display:flex;flex-direction:column;gap:20px;}

/* upload dropzone */
.dropzone{border:1.5px dashed var(--border);border-radius:var(--radius);padding:36px 20px;text-align:center;background:var(--surface2);}
.dropzone svg{width:34px;height:34px;color:var(--text-faint);margin-bottom:10px;}
.dropzone p{font-size:13.5px;font-weight:600;}
.dropzone span{font-size:11.5px;color:var(--text-faint);display:block;margin-top:4px;}
.dropzone .btn{margin-top:14px;}
.steps-row{display:flex;gap:10px;margin-bottom:20px;}
.step-pill{flex:1;background:var(--surface);border:1px solid var(--border-soft);border-radius:8px;padding:10px 14px;display:flex;align-items:center;gap:10px;}
.step-pill .num{width:22px;height:22px;border-radius:50%;background:var(--surface3);color:var(--text-dim);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.step-pill.done .num{background:var(--green-dim);color:var(--green-text);}
.step-pill.now .num{background:var(--accent);color:#241800;}
.step-pill p{font-size:12.5px;font-weight:600;}
.step-pill span{font-size:11px;color:var(--text-faint);}

/* fault lookup */
.lookup-hero{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:34px;text-align:center;max-width:640px;margin:0 auto;}
.lookup-hero h2{font-family:var(--font-head);font-size:19px;margin-bottom:6px;}
.lookup-hero p{color:var(--text-dim);font-size:13px;margin-bottom:20px;}
.lookup-box{display:flex;gap:10px;max-width:440px;margin:0 auto;}
.lookup-box input{flex:1;}
.result-card{max-width:640px;margin:22px auto 0;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:22px 24px;}
.result-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;flex-wrap:wrap;gap:10px;}
.result-top h3{font-family:var(--font-head);font-size:17px;}
.result-top span{font-size:12px;color:var(--text-faint);}
.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;font-size:13px;}
.result-grid div b{display:block;color:var(--text-faint);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px;}

/* alerts */
.alert{padding:12px 16px;border-radius:8px;font-size:13px;margin-bottom:16px;}
.alert-success{background:var(--green-dim);color:var(--green-text);border:1px solid var(--green);}
.alert-error{background:var(--red-dim);color:var(--red-text);border:1px solid var(--red);}

/* Mobile Toggle */
.mobile-toggle{display:none;background:var(--surface2);border:1px solid var(--border);color:var(--text);}
.mobile-toggle:hover{background:var(--surface3);color:var(--accent-text);}

/* ===================================================
   RESPONSIVE MEDIA QUERIES (DESKTOP, TABLET, MOBILE)
   =================================================== */

/* Tablet & Mobile Breakpoint (<= 1024px) */
@media(max-width:1024px){
  .shell-inner{display:block;}
  .mobile-toggle{display:inline-flex;}
  .sidebar-close-btn{display:inline-flex;}
  .sidebar-backdrop{display:block;}

  .sidebar{
    position:fixed;
    top:0;
    left:0;
    bottom:0;
    width:280px;
    max-width:85vw;
    height:100vh;
    height:100dvh;
    z-index:999;
    transform:translateX(-100%);
    box-shadow:4px 0 24px rgba(0,0,0,0.6);
  }

  body.sidebar-open .sidebar,
  .sidebar.open{
    transform:translateX(0);
  }

  body.sidebar-open .sidebar-backdrop{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }

  body.sidebar-open{
    overflow:hidden;
  }

  .main{width:100%;min-width:0;}
  .topbar{padding:0 20px;}
  .content{padding:22px 20px 40px;}

  .stat-grid{grid-template-columns:repeat(3,1fr);}
  .stat-grid-4{grid-template-columns:repeat(2,1fr);}
  .grid-2, .grid-2.equal{grid-template-columns:1fr;}
  .master-layout{grid-template-columns:1fr;}
  .steps-row{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
}

/* Small Tablet & Large Phone Breakpoint (<= 768px) */
@media(max-width:768px){
  .topbar{padding:0 16px;}
  .topbar-right{gap:10px;}
  .search-mini{width:160px;}
  .content{padding:18px 16px 36px;}

  .stat-grid{grid-template-columns:repeat(2,1fr);gap:12px;}
  .stat-card{padding:14px 16px;}
  .stat-card .value{font-size:22px;}

  .form-grid{grid-template-columns:1fr;gap:12px;}
  .form-card{padding:20px 16px;}

  .page-header{flex-direction:column;align-items:flex-start;gap:10px;}
  .page-header h1{font-size:19px;}
  .page-header .btn{align-self:stretch;justify-content:center;}

  .table-toolbar{padding:12px 14px;gap:10px;}
  .table-toolbar form{width:100%;}
}

/* Mobile Phone Breakpoint (<= 600px) */
@media(max-width:600px){
  .stat-grid{grid-template-columns:1fr;}
  .stat-grid-4{grid-template-columns:1fr;}
  .search-mini{display:none;}
  .topbar-title{font-size:15px;}
  .topbar-title span{
    font-size:11px;
    max-width:170px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .steps-row{grid-template-columns:1fr;}

  .lookup-hero{padding:24px 16px;}
  .lookup-box{flex-direction:column;}
  .lookup-box input{width:100%;}
  .lookup-box button{width:100%;justify-content:center;}

  .result-card{padding:16px;}
  .result-grid{grid-template-columns:1fr;gap:10px;}

  .pagination{flex-direction:column;align-items:flex-start;gap:10px;}
  .pagination .pages{align-self:flex-end;}

  .table-toolbar input[type="text"],
  .table-toolbar select{
    width:100% !important;
  }

  .form-actions{flex-direction:column;width:100%;}
  .form-actions button,
  .form-actions .btn{
    width:100%;
    justify-content:center;
  }
}

/* ==========================================================================
   TomSelect / DynamicSearchableDropdown Dark Theme Alignment
   ========================================================================== */

.ts-wrapper.form-select,
.form-select.ts-wrapper {
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
}

.ts-wrapper,
.ts-wrapper * {
    box-sizing: border-box !important;
}

.ts-wrapper {
    width: 100% !important;
    position: relative;
    font-family: var(--font-body);
}

.form-select.ts-wrapper .ts-control,
.form-select.ts-wrapper.single .ts-control,
.ts-wrapper.form-select .ts-control,
.ts-wrapper.single .ts-control,
.ts-wrapper .ts-control {
    width: 100% !important;
    background: var(--surface2) !important;
    background-color: var(--surface2) !important;
    border: 1px solid var(--border) !important;
    color: var(--text) !important;
    padding: 10px 36px 10px 12px !important;
    border-radius: 8px !important;
    font-size: 13.5px !important;
    min-height: 42px !important;
    line-height: 1.4 !important;
    display: flex !important;
    align-items: center !important;
    cursor: pointer !important;
    box-shadow: none !important;
    transition: border-color .15s, background .15s, box-shadow .15s !important;
}

.form-select.ts-wrapper.focus .ts-control,
.form-select.ts-wrapper.dropdown-active .ts-control,
.ts-wrapper.focus .ts-control,
.ts-wrapper.dropdown-active .ts-control {
    border-color: var(--accent) !important;
    background: var(--surface3) !important;
    background-color: var(--surface3) !important;
    box-shadow: 0 0 0 2px rgba(255, 176, 32, 0.25) !important;
}

.ts-wrapper .ts-control > .item {
    color: var(--text) !important;
    font-size: 13.5px !important;
    font-weight: 500 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: calc(100% - 24px) !important;
}

.ts-wrapper .ts-control > input::placeholder,
.ts-wrapper .ts-control .placeholder {
    color: var(--text-dim) !important;
    font-size: 13.5px !important;
}

.ts-wrapper .ts-control > input {
    color: var(--text) !important;
    font-size: 13.5px !important;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    cursor: inherit !important;
}

/* Caret / chevron arrow */
.ts-wrapper.single .ts-control::after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    top: 50% !important;
    right: 14px !important;
    transform: translateY(-50%) !important;
    width: 14px !important;
    height: 14px !important;
    border: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239BA3B2' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 14px 14px !important;
    transition: transform .2s ease, opacity .2s ease !important;
    pointer-events: none !important;
    opacity: 0.8 !important;
}

.ts-wrapper.single.dropdown-active .ts-control::after {
    transform: translateY(-50%) rotate(180deg) !important;
    opacity: 1 !important;
}

/* Dropdown Menu Container */
.ts-dropdown {
    background: var(--surface) !important;
    border: 1px solid var(--border) !important;
    border-radius: 8px !important;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.65), 0 4px 10px rgba(0, 0, 0, 0.35) !important;
    margin-top: 4px !important;
    padding: 6px !important;
    z-index: 99999 !important;
    color: var(--text) !important;
    overflow: hidden !important;
}

/* Search input inside dropdown (plugin dropdown_input) */
.ts-dropdown .dropdown-input-wrap {
    padding: 4px 4px 8px 4px !important;
    border-bottom: 1px solid var(--border-soft) !important;
    margin-bottom: 4px !important;
}

.ts-dropdown .dropdown-input {
    width: 100% !important;
    background: var(--surface2) !important;
    border: 1px solid var(--border) !important;
    color: var(--text) !important;
    padding: 8px 12px !important;
    border-radius: 6px !important;
    font-size: 13px !important;
    outline: none !important;
    box-sizing: border-box !important;
    transition: border-color .15s, background .15s !important;
}

.ts-dropdown .dropdown-input:focus {
    border-color: var(--accent) !important;
    background: var(--surface3) !important;
    box-shadow: 0 0 0 2px rgba(255, 176, 32, 0.2) !important;
}

.ts-dropdown .dropdown-input::placeholder {
    color: var(--text-faint) !important;
}

/* Content List (Options) */
.ts-dropdown .ts-dropdown-content {
    max-height: 220px !important;
    overflow-y: auto !important;
    padding: 2px 0 !important;
}

.ts-dropdown .ts-dropdown-content::-webkit-scrollbar {
    width: 6px !important;
}
.ts-dropdown .ts-dropdown-content::-webkit-scrollbar-thumb {
    background: var(--border) !important;
    border-radius: 4px !important;
}
.ts-dropdown .ts-dropdown-content::-webkit-scrollbar-track {
    background: transparent !important;
}

/* Individual Option */
.ts-dropdown .option {
    display: block !important;
    text-align: left !important;
    padding: 8px 12px !important;
    border-radius: 6px !important;
    color: var(--text) !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    cursor: pointer !important;
    transition: background .12s, color .12s !important;
    white-space: normal !important;
    word-break: break-word !important;
}

/* Matching search highlight */
.ts-dropdown .highlight {
    background: rgba(255, 176, 32, 0.25) !important;
    color: var(--accent-text) !important;
    border-radius: 2px !important;
    padding: 0 2px !important;
    font-weight: 600 !important;
    display: inline !important;
}

.ts-dropdown .option:hover,
.ts-dropdown .option.active {
    background: var(--surface2) !important;
    color: var(--accent-text) !important;
}

.ts-dropdown .option.selected {
    background: var(--accent-dim) !important;
    color: var(--accent-text) !important;
    font-weight: 600 !important;
}

.ts-dropdown .no-results {
    padding: 12px !important;
    color: var(--text-faint) !important;
    font-size: 12.5px !important;
    text-align: center !important;
}

.ts-dropdown .optgroup-header {
    color: var(--text-faint) !important;
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: .06em !important;
    font-weight: 700 !important;
    padding: 8px 10px 4px !important;
}
