:root{
  --bg:#0f1115;
  --card:#151922;
  --card2:#111521;
  --text:#e6e9ef;
  --muted:#a7b0c0;
  --border:rgba(255,255,255,.08);
  --accent:#27d17f;
  --accent2:#20b86f;
  --danger:#ff5c5c;
  --warn:#ffcc66;
  --shadow:0 10px 34px rgba(0,0,0,.38);
}

/*
  Ensure the HTML `hidden` attribute always wins over component styles.
  Without this, elements like the loader overlay (which sets `display:flex`)
  will remain visible even when `hidden` is present, causing a permanent
  "Загрузка…" screen.
*/
[hidden]{
  display: none !important;
}
*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0;
  font-family:system-ui,Segoe UI,Roboto,Arial;
  color:var(--text);
  background:radial-gradient(1200px 500px at 50% -10%, rgba(39,209,127,.16), transparent 60%), var(--bg);
}

.page{min-height:100%;}
.wrap{max-width:1100px;margin:0 auto;padding:18px 12px 28px;}

.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 12px;
  border-bottom:1px solid var(--border);
  background:rgba(0,0,0,.25);
  backdrop-filter: blur(8px);
}
.brand{display:flex;align-items:center;gap:12px;}
.logo{
  width:36px;height:36px;border-radius:12px;
  display:grid;place-items:center;
  background:rgba(39,209,127,.14);
  border:1px solid rgba(39,209,127,.35);
  color:var(--text);
  font-weight:800;
  letter-spacing:.4px;
}
.brand-title{font-weight:750;}
.brand-sub{color:var(--muted);font-size:12px;margin-top:1px;}

.card{
  background:linear-gradient(180deg,var(--card),var(--card2));
  border:1px solid var(--border);
  border-radius:16px;
  padding:16px;
  box-shadow:var(--shadow);
}

.h1{margin:0 0 10px;font-size:28px;letter-spacing:.2px;}
.h2{margin:0 0 8px;font-size:20px;}
.muted{color:var(--muted);}
.small{font-size:12px;}

.form{margin-top:14px;}
.label{display:block;font-size:12px;color:var(--muted);margin:12px 0 6px;}

.input{
  width:90%;
  padding:12px 12px;
  border-radius:12px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.04);
  color:var(--text);
  outline:none;
}
.input:focus{border-color:rgba(39,209,127,.55);box-shadow:0 0 0 4px rgba(39,209,127,.12);}
select.input{padding-right:32px;}

.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.between{justify-content:space-between;align-items:flex-start;}
.grow{flex:1;min-width:220px;}
.mt12{margin-top:12px;}
.mt16{margin-top:16px;}

.btn{
  padding:12px 14px;
  border-radius:12px;
  border:1px solid rgba(39,209,127,.35);
  background:rgba(39,209,127,.12);
  color:var(--text);
  cursor:pointer;
  transition:transform .08s ease, background .15s ease, border-color .15s ease, opacity .15s ease;
  white-space:nowrap;
}
.btn:hover{background:rgba(39,209,127,.18);border-color:rgba(39,209,127,.55);}
.btn:active{transform:translateY(1px);}
.btn:disabled{opacity:.55;cursor:not-allowed;}

.btn-primary{background:linear-gradient(180deg, rgba(39,209,127,.24), rgba(32,184,111,.18));border-color:rgba(39,209,127,.62);}
.btn-primary:hover{background:linear-gradient(180deg, rgba(39,209,127,.30), rgba(32,184,111,.22));}

.btn-ghost{background:rgba(255,255,255,.04);border-color:var(--border);}
.btn-ghost:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16);}

.error{color:var(--danger);white-space:pre-wrap;}

.layout{
  display:grid;
  grid-template-columns: 1fr 1.2fr;
  gap:16px;
}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}

/* Accounts list */
.accounts{display:flex;flex-direction:column;gap:10px;}
.account{
  border:1px solid var(--border);
  background:rgba(255,255,255,.03);
  border-radius:14px;
  padding:12px;
}
.account-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;}
.account-name{font-weight:700;}
.account-meta{color:var(--muted);font-size:12px;margin-top:2px;}
.account-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}

.badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.03);
  font-size:12px;
  color:var(--muted);
}
.badge.ok{border-color:rgba(39,209,127,.5);color:rgba(39,209,127,.95);}
.badge.wait{border-color:rgba(255,204,102,.55);color:rgba(255,204,102,.95);}
.badge.err{border-color:rgba(255,92,92,.55);color:rgba(255,92,92,.95);}

/* Loader overlay */
.overlay{
  position:fixed;inset:0;
  background:rgba(0,0,0,.45);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  backdrop-filter: blur(6px);
  z-index:9999;
}
.spinner{width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.18);border-top-color:var(--accent);animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

/* Toasts */
.toasts{position:fixed;right:14px;bottom:14px;display:flex;flex-direction:column;gap:10px;z-index:99999;}
.toast{
  min-width:240px;
  max-width:380px;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid var(--border);
  background:rgba(20,24,33,.92);
  box-shadow:var(--shadow);
  color:var(--text);
}
.toast .t-title{font-weight:700;margin-bottom:4px;}
.toast.ok{border-color:rgba(39,209,127,.45);}
.toast.err{border-color:rgba(255,92,92,.45);}

@media (max-width: 980px){
  .layout{grid-template-columns:1fr;}
  .grid2{grid-template-columns:1fr;}
}

select {
  background: #0f141b;
  color: #e6eef8;
  border: 1px solid #263241;
}

select:focus {
  outline: none;
  border-color: #1f8f5f;
  box-shadow: 0 0 0 3px rgba(31, 143, 95, 0.25);
}

select option {
  background: #0f141b;
  color: #e6eef8;
}

:root {
  color-scheme: dark;
}

select {
  width: 100%;
  min-width: 260px;          /* чтобы не был узким на десктопе */
  height: 44px;              /* приятная высота */
  padding: 0 44px 0 14px;    /* место под стрелку справа */
  border-radius: 14px;       /* округлость */
  border: 1px solid rgba(60, 80, 100, 0.55);

  background: linear-gradient(180deg, #121a24, #0e141d);
  color: #e6eef8;

  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.2px;

  /* важное: даём рисовать кастомную стрелку */
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;

  transition: border-color .15s ease, box-shadow .15s ease, transform .05s ease;
}

select:hover {
  border-color: rgba(31, 143, 95, 0.65);
}

select:focus {
  outline: none;
  border-color: #1f8f5f;
  box-shadow: 0 0 0 3px rgba(31, 143, 95, 0.22);
}

select:active {
  transform: translateY(1px);
}

select option {
  background: #0f141b;
  color: #e6eef8;
}

.select-wrap {
  position: relative;
  width: 100%;
  max-width: 520px; 
}

.select-wrap::after {
  content: "";
  position: absolute;
  right: 14px;
  top: 50%;
  width: 10px;
  height: 10px;
  border-right: 2px solid rgba(230, 238, 248, 0.75);
  border-bottom: 2px solid rgba(230, 238, 248, 0.75);
  transform: translateY(-60%) rotate(45deg);
  pointer-events: none;
  opacity: 0.9;
}

@media (max-width: 640px){
  .layout{grid-template-columns:1fr;}
  .layout2{grid-template-columns:1fr;}
  .grid2{grid-template-columns:1fr;}
}


.status-meta{
  font-size: 12px;
  color: rgba(230, 238, 248, 0.75);
  padding: 8px 10px;
  border: 1px solid rgba(230, 238, 248, 0.15);
  border-radius: 10px;
  background: rgba(15, 20, 27, 0.35);
}

.debug{
  border: 1px solid rgba(230, 238, 248, 0.15);
  border-radius: 12px;
  padding: 10px 12px;
  background: rgba(15, 20, 27, 0.25);
}

.debug > summary{
  cursor: pointer;
  user-select: none;
  color: rgba(230, 238, 248, 0.85);
}

.debug pre{
  margin: 10px 0 0;
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 12px;
  color: rgba(230, 238, 248, 0.85);
}
