
:root{
  --gpdm-bg:#ffffff;
  --gpdm-surface:#ffffff;
  --gpdm-surface-2:#faf9ff;
  --gpdm-line:rgba(84,65,148,.12);
  --gpdm-text:#231942;
  --gpdm-muted:#6f6887;
  --gpdm-primary:#6f8fe8;
  --gpdm-primary-2:#a67be8;
  --gpdm-primary-3:#f09cff;
  --gpdm-primary-soft:rgba(111,143,232,.12);
  --gpdm-button-gradient:linear-gradient(135deg,#6f8fe8 0%,#a67be8 50%,#f09cff 100%);
  --gpdm-shadow:0 24px 60px rgba(45,28,94,.12);
  --gpdm-shadow-soft:0 16px 36px rgba(45,28,94,.08);
}

.gpdm-launch-btn,
.gpdm-launch-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 22px;
  border-radius:999px;
  background:var(--gpdm-button-gradient);
  color:#fff !important;
  font-size:16px;
  font-weight:800;
  text-decoration:none;
  border:0;
  cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 12px 30px rgba(111,143,232,.24);
  transition:transform .15s ease,opacity .15s ease,filter .15s ease;
}
.gpdm-launch-btn:hover,
.gpdm-launch-link:hover{opacity:.96;transform:translateY(-1px);filter:saturate(1.04)}

.gpdm-overlay[hidden]{display:none !important}
.gpdm-overlay{
  position:fixed;
  inset:0;
  z-index:999999;
  padding:18px;
  background:rgba(35,25,66,.30);
  backdrop-filter:blur(4px);
  display:flex;
  align-items:center;
  justify-content:center;
}

.gpdm-modal{
  width:min(1120px,100%);
  max-height:75vh;
  display:flex;
  flex-direction:column;
  overflow-y:auto;
  overflow-x:hidden;
  -ms-overflow-style:none;
  scrollbar-width:none;
  border:1px solid var(--gpdm-line);
  border-radius:32px;
  background:var(--gpdm-bg);
  box-shadow:var(--gpdm-shadow);
  position:relative;
}

.gpdm-modal::-webkit-scrollbar{width:0;height:0;display:none}

.gpdm-close{
  position:absolute;
  top:18px;
  right:18px;
  width:48px;
  height:48px;
  border:1px solid var(--gpdm-line);
  border-radius:999px;
  background:#fff;
  color:var(--gpdm-text);
  font-size:32px;
  line-height:1;
  cursor:pointer;
  z-index:5;
  box-shadow:var(--gpdm-shadow-soft);
}

.gpdm-head{
  padding:22px 28px 14px;
  flex:0 0 auto;
}

.gpdm-title{
  margin:0 70px 18px 0;
  color:var(--gpdm-text);
  text-align:center;
  font-size:clamp(28px,4vw,40px);
  line-height:1.05;
  font-weight:800;
  letter-spacing:-.03em;
}

.gpdm-topgrid{
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:16px;
  margin-bottom:14px;
}

.gpdm-topgrid--single{grid-template-columns:1fr}
.gpdm-field label{
  display:block;
  margin:0 0 8px;
  color:var(--gpdm-text);
  font-size:14px;
  font-weight:700;
}

.gpdm-input{
  box-sizing:border-box;
  width:100%;
  min-height:58px;
  padding:14px 18px;
  background:#fff !important;
  border:1px solid var(--gpdm-line) !important;
  border-radius:18px !important;
  color:var(--gpdm-text) !important;
  font-size:16px;
  outline:none;
  box-shadow:none;
}
.gpdm-input:focus{
  border-color:rgba(111,143,232,.45) !important;
  box-shadow:0 0 0 4px rgba(111,143,232,.12);
}
.gpdm-input::placeholder{color:var(--gpdm-muted) !important}
.gpdm-input option{background:#fff;color:var(--gpdm-text)}

.gpdm-letters{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:10px 0 14px;
}

.gpdm-letter{
  min-width:42px;
  height:42px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid var(--gpdm-line);
  background:#fff;
  color:var(--gpdm-muted);
  font-size:14px;
  font-weight:700;
  cursor:pointer;
}
.gpdm-letter.is-active{
  background:var(--gpdm-button-gradient);
  color:#fff;
  border-color:transparent;
}

.gpdm-count{
  color:var(--gpdm-text);
  font-size:18px;
  font-weight:800;
}

.gpdm-body{
  padding:0 28px 28px;
  overflow:visible;
  min-height:auto;
}

.gpdm-category{margin-top:18px}
.gpdm-category-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-end;
  margin:0 0 12px;
}
.gpdm-category-title{
  margin:0;
  color:var(--gpdm-text);
  font-size:18px;
  font-weight:800;
}
.gpdm-category-count{
  color:var(--gpdm-muted);
  font-size:14px;
  font-weight:700;
}

.gpdm-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.gpdm-grid--brands{grid-template-columns:repeat(3,minmax(0,1fr))}

.gpdm-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-width:0;
  min-height:74px;
  padding:14px 18px;
  border-radius:18px;
  border:1px solid var(--gpdm-line);
  background:linear-gradient(180deg,#fff 0%,#faf9ff 100%);
  color:var(--gpdm-text);
  text-decoration:none;
  box-shadow:var(--gpdm-shadow-soft);
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
}
.gpdm-card:hover{
  transform:translateY(-2px);
  border-color:rgba(111,143,232,.28);
  box-shadow:0 12px 30px rgba(45,28,94,.10);
}
.gpdm-card-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--gpdm-text);
  font-size:14px;
  font-weight:700;
}
.gpdm-badge{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:38px;
  height:38px;
  padding:0 10px;
  border-radius:999px;
  background:var(--gpdm-primary-soft);
  color:var(--gpdm-primary);
  font-size:14px;
  font-weight:800;
}
.gpdm-empty{color:var(--gpdm-muted);font-size:15px;padding:12px 0}

.gpdm-modal-open{overflow:hidden}

@media (max-width: 1024px){
  .gpdm-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media (max-width: 767px){
  .gpdm-overlay{padding:12px}
  .gpdm-modal{max-height:75vh;border-radius:24px}
  .gpdm-head{padding:18px 16px 12px}
  .gpdm-body{padding:0 16px 18px}
  .gpdm-topgrid{grid-template-columns:1fr}
  .gpdm-grid,
  .gpdm-grid--brands{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gpdm-close{top:12px;right:12px;width:44px;height:44px;font-size:28px}
}


/* Visual polish override: keep functionality intact */
.gpdm-overlay,
.gpdm-modal,
.gpdm-head,
.gpdm-body,
.gpdm-topgrid,
.gpdm-field,
.gpdm-category,
.gpdm-category-head,
.gpdm-grid,
.gpdm-grid--brands {
  background:#ffffff !important;
}

.gpdm-input,
.gpdm-input[type="text"],
.gpdm-input[type="search"],
select.gpdm-input {
  background:#ffffff !important;
  background-color:#ffffff !important;
  color:var(--gpdm-text) !important;
  border:1px solid rgba(84,65,148,.14) !important;
  box-shadow:0 8px 20px rgba(45,28,94,.05) !important;
  -webkit-appearance:none;
  appearance:none;
}

select.gpdm-input {
  padding-right:48px;
  background-image:linear-gradient(45deg, transparent 50%, var(--gpdm-text) 50%), linear-gradient(135deg, var(--gpdm-text) 50%, transparent 50%);
  background-position:calc(100% - 24px) calc(50% - 3px), calc(100% - 18px) calc(50% - 3px);
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
}

.gpdm-input:hover,
select.gpdm-input:hover {
  border-color:rgba(111,143,232,.30) !important;
}

.gpdm-modal {
  background:#ffffff !important;
}

.gpdm-card {
  border:1px solid rgba(84,65,148,.10);
  box-shadow:0 10px 28px rgba(45,28,94,.06);
}

.gpdm-card:hover {
  box-shadow:0 16px 34px rgba(45,28,94,.10);
}

.gpdm-letter {
  background:#ffffff;
}

.gpdm-empty,
.gpdm-category-count {
  color:var(--gpdm-muted);
}


/* Cache-safe visual hardening: keep popup/page surfaces white */
.gpdm-overlay,
.gpdm-modal,
.gpdm-head,
.gpdm-body,
.gpdm-topgrid,
.gpdm-field,
.gpdm-category,
.gpdm-category-head,
.gpdm-grid,
.gpdm-grid--brands,
.gpdm-admin-wrap,
.gpdm-admin-panel {
  background:#ffffff !important;
}

.gpdm-input,
.gpdm-input[type="text"],
.gpdm-input[type="search"],
select.gpdm-input,
.gpdm-field .gpdm-input,
.gpdm-field select {
  background:#ffffff !important;
  background-color:#ffffff !important;
  color:var(--gpdm-text) !important;
}

.gpdm-modal select,
.gpdm-modal input,
.gpdm-modal option {
  background-color:#ffffff !important;
  color:var(--gpdm-text) !important;
}
