/* ============================================================
   PUBBLISOLUTION — DESIGN SYSTEM (Grafica C · "Modern Visual")
   admin/admin.css — skin della dashboard amministratore
   (rail, topbar e shell sono in ../shared/layout.css)
   ============================================================ */

/* ============================================================
   LOGIN (split-screen scuro)
   ============================================================ */
.ps-ui .ps-login {
  min-height: 100vh;
  display: grid; grid-template-columns: 1fr 1fr;
  background: var(--ps-color-primary-dark);
  position: relative;
  overflow: hidden;
}
.ps-ui .ps-login::before {
  content: "";
  position: absolute;
  width: 700px; height: 700px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(46,107,255,.4), transparent 65%);
  top: -200px; right: -150px;
  pointer-events: none;
}
.ps-ui .ps-login-brand {
  background: var(--ps-color-primary);
  color: #fff;
  display: flex; flex-direction: column; justify-content: space-between;
  padding: var(--ps-space-7) var(--ps-space-6);
  position: relative;
  border-right: 1px solid rgba(255,255,255,.1);
}
.ps-ui .ps-login-brand .ps-vertical { display: none; }
.ps-ui .ps-login-brand .ps-brand-big {
  font-family: var(--ps-font-display);
  font-weight: 800;
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1.05;
  letter-spacing: -.01em;
}
.ps-ui .ps-login-brand .ps-brand-big em {
  font-style: normal;
  background: linear-gradient(90deg, var(--ps-color-accent), var(--ps-color-accent-2));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.ps-ui .ps-login-brand .ps-tagline {
  font-family: var(--ps-font-mono);
  font-size: 11px;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
}
.ps-ui .ps-login-main { display: grid; place-items: center; padding: var(--ps-space-6); position: relative; z-index: 1; }
.ps-ui .ps-login-card {
  width: min(420px, 100%);
  background: var(--ps-color-surface);
  border-radius: var(--ps-radius-lg);
  padding: var(--ps-space-7) var(--ps-space-6);
  display: flex; flex-direction: column; gap: var(--ps-space-4);
  box-shadow: var(--ps-shadow-lg);
}
.ps-ui .ps-login-card h1 { font-family: var(--ps-font-display); font-weight: 800; font-size: 26px; }
.ps-ui .ps-login-hint {
  font-family: var(--ps-font-mono);
  font-size: 12px;
  color: var(--ps-color-muted);
  background: var(--ps-color-panel);
  border-radius: var(--ps-radius-md);
  padding: 10px 14px;
  text-align: center;
}

/* ============================================================
   HOME / ORDINI: KPI + ricerca
   ============================================================ */
.ps-ui .ps-kpi-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--ps-space-5); margin-bottom: var(--ps-space-6); }
.ps-ui .ps-admin-search { display: flex; gap: 10px; margin-bottom: var(--ps-space-5); max-width: 560px; }
.ps-ui .ps-admin-search .ps-input { flex: 1; border-radius: 999px; }

/* ============================================================
   DETTAGLIO ORDINE
   ============================================================ */
.ps-ui .ps-detail-head { display: flex; align-items: center; gap: var(--ps-space-4); flex-wrap: wrap; margin-bottom: var(--ps-space-5); }
.ps-ui .ps-detail-head h2 { font-family: var(--ps-font-display); font-weight: 800; font-size: 28px; letter-spacing: -.01em; }
.ps-ui .ps-backlink { display: inline-flex; align-items: center; gap: 8px; color: var(--ps-color-accent); font-weight: 700; font-size: 14px; min-height: 44px; }
.ps-ui .ps-backlink:hover { text-decoration: underline; }
.ps-ui .ps-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ps-space-5); margin-bottom: var(--ps-space-5); }
.ps-ui .ps-infolist { display: flex; flex-direction: column; gap: 12px; font-size: 14px; }
.ps-ui .ps-infolist .ps-info-row { display: flex; gap: 12px; }
.ps-ui .ps-infolist b { min-width: 150px; color: var(--ps-color-muted); font-weight: 500; }

.ps-ui .ps-model-card {
  background: var(--ps-color-surface);
  border: 1px solid var(--ps-color-border);
  border-radius: var(--ps-radius-lg);
  overflow: hidden;
  margin-bottom: var(--ps-space-5);
  box-shadow: var(--ps-shadow-sm);
}
.ps-ui .ps-model-head {
  display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: var(--ps-space-4) var(--ps-space-5);
  border-bottom: 1px solid var(--ps-color-border);
}
.ps-ui .ps-model-head h3 { font-family: var(--ps-font-display); font-size: 16px; font-weight: 700; }
.ps-ui .ps-actions-row { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: var(--ps-space-6); }

/* ============================================================
   NOTE INTERNE (area riservata)
   ============================================================ */
.ps-ui .ps-notes {
  background: var(--ps-color-surface);
  border: 1.5px dashed var(--ps-color-accent-2);
  border-radius: var(--ps-radius-lg);
  padding: var(--ps-space-5);
  display: flex; flex-direction: column; gap: var(--ps-space-3);
}
.ps-ui .ps-notes-title { display: flex; align-items: center; gap: 10px; }
.ps-ui .ps-notes-title .ps-badge { background: rgba(56,189,248,.15); color: #0284C7; }

/* ============================================================
   COUPON
   ============================================================ */
.ps-ui .ps-coupon-code {
  font-family: var(--ps-font-mono); font-weight: 500;
  background: var(--ps-color-accent-soft);
  color: var(--ps-color-accent);
  padding: 5px 14px;
  border-radius: 999px; font-size: 13px;
}
.ps-ui .ps-switch-row { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; color: var(--ps-color-muted); }

/* ---------- Modal coupon ---------- */
.ps-ui .ps-coupon-modal {
  top: 50%; left: 50%;
  transform: translate(-50%, -46%);
  width: min(540px, calc(100vw - 32px));
  border-radius: var(--ps-radius-lg);
  padding: var(--ps-space-7) var(--ps-space-6);
}
.ps-ui .ps-coupon-modal.is-open { transform: translate(-50%, -50%); }
.ps-ui .ps-coupon-modal h2 { font-family: var(--ps-font-display); font-size: 22px; font-weight: 800; margin-bottom: var(--ps-space-5); }
.ps-ui .ps-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ps-space-4); }
.ps-ui .ps-form-grid .ps-span-2 { grid-column: span 2; }

/* ---------- Snapshot hint ---------- */
.ps-ui .ps-snapshot-note {
  display: flex; gap: 10px; align-items: center;
  background: var(--ps-color-accent-soft);
  border-radius: var(--ps-radius-md);
  padding: 12px 16px;
  font-size: 13px;
  color: var(--ps-color-primary);
  margin-bottom: var(--ps-space-5);
  border-left: 4px solid var(--ps-color-accent);
}

/* ============================================================
   RESPONSIVE ADMIN
   ============================================================ */
@media (max-width: 1100px) {
  .ps-ui .ps-detail-grid { grid-template-columns: 1fr; }
  .ps-ui .ps-kpi-row { grid-template-columns: repeat(3, 1fr); gap: 12px; }
}
@media (max-width: 860px) {
  .ps-ui .ps-form-grid { grid-template-columns: 1fr; }
  .ps-ui .ps-form-grid .ps-span-2 { grid-column: span 1; }
}
@media (max-width: 640px) {
  .ps-ui .ps-login { grid-template-columns: 1fr; }
  .ps-ui .ps-login-brand { min-height: 200px; }
}
