:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e8edf5;background:#0d1117}*{box-sizing:border-box}body{margin:0;background:#0d1117;color:#e8edf5}.shell{max-width:1180px;margin:auto;padding:24px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding:14px 0}.topbar>div{display:flex;gap:10px;align-items:baseline}.card,.stat{background:#151b23;border:1px solid #273142;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.12)}.card{padding:22px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.stat{padding:18px;display:flex;flex-direction:column;gap:8px}.stat span,.muted{color:#8f9bad}.stat strong{font-size:29px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}h1,h2{margin-top:0}h2{font-size:18px}label{display:block;margin:14px 0;color:#cbd5e1;font-size:14px}input,select{width:100%;margin-top:7px;background:#0d1117;color:#e8edf5;border:1px solid #344155;border-radius:9px;padding:11px 12px;outline:none}input:focus,select:focus{border-color:#6ea8fe}button{border:0;border-radius:9px;padding:10px 14px;font-weight:700;cursor:pointer}.primary{background:#f0f6fc;color:#0d1117}.ghost{background:#202938;color:#dbe5f0}.danger{background:#3a1d22;color:#ffb8c1}.notice p{line-height:1.55}.section-head{display:flex;justify-content:space-between;align-items:center}.table-card{padding:0;overflow:hidden}.table-card .section-head{padding:20px 22px 10px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 16px;border-top:1px solid #273142;vertical-align:middle}th{font-size:12px;color:#8f9bad;text-transform:uppercase;letter-spacing:.05em}.badge{display:inline-block;padding:5px 8px;border-radius:999px;font-size:12px;font-weight:700}.badge.active{background:#173527;color:#91e2b5}.badge.deleted{background:#352226;color:#efa8b1}.urlbox{min-width:300px;margin:0;padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.empty{text-align:center;color:#8f9bad;padding:30px}.flash{padding:12px 14px;border-radius:10px;margin-bottom:16px}.flash.success{background:#173527;color:#a6e8c1}.flash.error{background:#3a1d22;color:#ffc0c7}.login-wrap{min-height:80vh;display:grid;place-items:center}.login-card{width:min(430px,100%)}.login-card button{width:100%;margin-top:8px}@media(max-width:760px){.shell{padding:14px}.stats,.grid-2{grid-template-columns:1fr}.topbar>div{display:block}.stat strong{font-size:24px}}

.subscription-copy{
  display:flex;
  gap:8px;
  align-items:center;
  min-width:0;
}

.subscription-copy .urlbox{
  flex:1;
  min-width:180px;
  width:100%;
}

.copy-btn{
  white-space:nowrap;
}

.copy-btn:disabled{
  opacity:.8;
  cursor:default;
}

@media(max-width:760px){

  .table-card{
    background:transparent;
    border:0;
    box-shadow:none;
    padding:0;
  }

  .table-card .section-head{
    padding:10px 0 12px;
  }

  .table-wrap{
    overflow:visible;
  }

  .keys-table,
  .keys-table tbody{
    display:block;
    width:100%;
  }

  .keys-table thead{
    display:none;
  }

  .keys-table tr{
    display:block;
    width:100%;
    margin-bottom:14px;
    padding:14px;
    background:#151b23;
    border:1px solid #273142;
    border-radius:14px;
  }

  .keys-table td{
    display:grid;
    grid-template-columns:90px minmax(0,1fr);
    gap:10px;
    align-items:center;
    width:100%;
    padding:9px 0;
    border-top:1px solid #273142;
  }

  .keys-table td:first-child{
    border-top:0;
  }

  .keys-table td::before{
    content:attr(data-label);
    color:#8f9bad;
    font-size:12px;
    font-weight:600;
  }

  .keys-table .subscription-cell{
    display:block;
    padding-top:12px;
  }

  .keys-table .subscription-cell::before{
    display:block;
    margin-bottom:8px;
  }

  .subscription-copy{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    width:100%;
  }

  .subscription-copy .urlbox{
    width:100%;
    min-width:0;
    font-size:13px;
    padding:12px;
  }

  .copy-btn{
    width:100%;
    min-height:46px;
    font-size:15px;
  }

  .key-actions{
    display:block !important;
  }

  .key-actions::before{
    display:none;
  }

  .key-actions form,
  .key-actions button{
    width:100%;
  }

  .key-actions button{
    min-height:44px;
  }
}


/* admin-stats-v2 */

.stats-filter-card{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}

.month-filter{
  display:flex;
  align-items:end;
  gap:10px;
}

.month-filter label{
  margin:0;
  min-width:190px;
}

.admin-stats-primary{
  grid-template-columns:repeat(4,1fr);
}

.admin-stats-secondary{
  grid-template-columns:repeat(4,1fr);
}

.stat small{
  color:#8f9bad;
  font-size:14px;
}

.comparison-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:16px 0;
}

.comparison-grid>div{
  background:#0d1117;
  border:1px solid #273142;
  border-radius:10px;
  padding:14px;
  display:flex;
  flex-direction:column;
  gap:6px;
}

.comparison-grid strong{
  font-size:22px;
}

.positive{
  color:#91e2b5;
}

.duration-list{
  display:grid;
  gap:8px;
}

.duration-row{
  display:grid;
  grid-template-columns:1fr auto auto;
  gap:16px;
  padding:10px 0;
  border-bottom:1px solid #273142;
}

.duration-row:last-child{
  border-bottom:0;
}

.empty.compact{
  padding:12px 0;
}

.admin-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}

.admin-actions form{
  margin:0;
}

.stats-bottom-grid{
  align-items:start;
}

.daily-table-wrap{
  max-height:550px;
}

.admin-partners-table{
  min-width:1180px;
}


@media(max-width:760px){

  .stats-filter-card{
    display:block;
  }

  .month-filter{
    margin-top:14px;
    display:grid;
    grid-template-columns:1fr auto;
  }

  .month-filter label{
    min-width:0;
  }

  .admin-stats-primary,
  .admin-stats-secondary{
    grid-template-columns:1fr 1fr;
  }

  .comparison-grid{
    grid-template-columns:1fr;
  }

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

  .duration-row span:last-child{
    grid-column:1/-1;
    color:#8f9bad;
  }

  .stats-bottom-grid{
    grid-template-columns:1fr;
  }

}

/* ===== clean admin dashboard ===== */

main,
.container {
  max-width: 1440px;
  margin-left: auto;
  margin-right: auto;
}

.stats-filter-card {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px;
  padding: 22px 26px;
  margin-bottom: 18px;
}

.stats-filter-card h2 {
  margin: 0 0 4px;
}

.month-filter {
  display: flex !important;
  align-items: end;
  gap: 10px;
  margin: 0;
}

.month-filter label {
  margin: 0;
  min-width: 180px;
}

.month-filter input[type="month"] {
  min-height: 44px;
}

.month-filter button {
  min-height: 44px;
  margin: 0;
}

/* Главные показатели — всегда 4 одинаковые карточки */
.stats.admin-stats-primary {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
  margin-bottom: 16px;
}

/* Дополнительные показатели */
.stats.admin-stats-secondary {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
  margin-bottom: 20px;
}

.admin-stats-primary .stat,
.admin-stats-secondary .stat {
  min-width: 0;
  padding: 22px 24px;
  border-radius: 16px;
}

.admin-stats-primary .stat {
  min-height: 132px;
}

.admin-stats-secondary .stat {
  min-height: 118px;
}

.admin-stats-primary .stat span,
.admin-stats-secondary .stat span {
  display: block;
  margin-bottom: 12px;
}

.admin-stats-primary .stat strong {
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1.05;
}

.admin-stats-secondary .stat strong {
  display: block;
  font-size: 30px;
  line-height: 1.1;
  margin-bottom: 8px;
}

.admin-stats-secondary .stat small {
  display: block;
  font-size: 16px;
}

/* Нижние блоки */
.grid-2 {
  gap: 18px;
}

.duration-row {
  min-height: 44px;
  align-items: center;
}

.comparison-grid > div {
  min-height: 94px;
  justify-content: center;
}

.table-card {
  margin-top: 18px;
}

.admin-partners-table th {
  white-space: nowrap;
}

.admin-partners-table td {
  vertical-align: middle;
}

/* Планшет */
@media (max-width: 1100px) {
  .stats.admin-stats-primary,
  .stats.admin-stats-secondary {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Телефон */
@media (max-width: 700px) {
  .stats-filter-card {
    display: block !important;
    padding: 18px;
  }

  .month-filter {
    margin-top: 16px;
    display: grid !important;
    grid-template-columns: 1fr;
  }

  .month-filter label {
    min-width: 0;
  }

  .month-filter button {
    width: 100%;
  }

  .stats.admin-stats-primary,
  .stats.admin-stats-secondary {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }

  .admin-stats-primary .stat,
  .admin-stats-secondary .stat {
    min-height: 105px;
    padding: 16px;
  }

  .admin-stats-primary .stat strong {
    font-size: 28px;
  }

  .admin-stats-secondary .stat strong {
    font-size: 24px;
  }
}
