:root{
  --bg:#050814;
  --bg-alt:#0c1020;
  --card-bg:#111627;
  --accent:#4f46e5;
  --accent-soft:rgba(79,70,229,.12);
  --text:#e5e7eb;
  --muted:#9ca3af;
  --border:rgba(148,163,184,.16);
  --radius-lg:18px;
  --radius-xl:24px;
  --shadow-soft:0 18px 45px rgba(0,0,0,.45);
  --font-main:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

*,
*::before,
*::after{ box-sizing:border-box; }

html,body{ margin:0; padding:0; }

body{
  font-family:var(--font-main);
  background: radial-gradient(circle at top, #111827 0, #020617 55%);
  color:var(--text);
  min-height:100vh;
}

a{ color:inherit; }

/* ===================== Layout ===================== */

.container{
  width:100%;
  max-width:1100px;
  margin:0 auto;
  padding:0 1.4rem;
}

.panel-main{
  padding: 1.6rem 0 2.2rem;
}

/* ===================== Header ===================== */

.site-header{
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(12px);
  background: linear-gradient(to bottom, rgba(15,23,42,.95), rgba(15,23,42,.85));
  border-bottom: 1px solid var(--border);
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 0.75rem 0;
}

.logo{
  display:inline-flex;
  align-items:center;
  gap:.65rem;
  text-decoration:none;
  font-weight:800;
  letter-spacing:.02em;
}

.logo-mark{
  width:34px;
  height:34px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background: rgba(79,70,229,.20);
  border: 1px solid rgba(79,70,229,.40);
  box-shadow: 0 12px 30px rgba(79,70,229,.25);
}

.logo-text{ opacity:.95; }

.nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap: 10px;
  font-size: 0.92rem;
}

.nav-link{
  color: var(--muted);
  text-decoration:none;
  padding:.5rem .7rem;
  border-radius: 999px;
  border: 1px solid transparent;
}

.nav-link:hover{
  color: var(--text);
  border-color: rgba(148,163,184,.18);
  background: rgba(255,255,255,.04);
}

/* ===================== Cards / Hero ===================== */

.hero-card{
  background: radial-gradient(circle at top left, #1e293b, #020617);
  border-radius: var(--radius-xl);
  padding: 1.5rem 1.6rem;
  box-shadow: var(--shadow-soft);
  border: 1px solid rgba(148,163,184,.25);
}

.panel-title{
  margin:0;
  font-size: 1.25rem;
}

.panel-header--row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.status-hint{
  margin-top:.9rem;
  font-size:.88rem;
  color: var(--muted);
}

/* ===================== Messages ===================== */

.auth-message{
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(148,163,184,.20);
  background: rgba(2,6,23,.35);
  color: rgba(229,231,235,.95);
}

/* ===================== Inputs ===================== */

.auth-input{
  width:100%;
  padding: .70rem .85rem;
  border-radius: 12px;
  border: 1px solid rgba(148,163,184,.25);
  background: rgba(2,6,23,.45);
  color: var(--text);
  outline: none;
}

.auth-input::placeholder{ color: rgba(148,163,184,.85); }

.auth-input:focus{
  border-color: rgba(79,70,229,.65);
  box-shadow: 0 0 0 4px rgba(79,70,229,.18);
}

/* ===================== Buttons ===================== */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  border:none;
  cursor:pointer;
  text-decoration:none;
  font-size:.9rem;
  font-weight:600;
  transition: transform .08s ease, box-shadow .1s ease, background .1s ease, color .1s ease;
}

.btn-small{
  padding: .45rem .95rem;
  font-size: .84rem;
  border-radius: 999px;
}

.btn-primary{
  padding:.55rem 1.15rem;
  border-radius: 999px;
  background: var(--accent);
  color:white;
  box-shadow: 0 12px 30px rgba(79,70,229,.45);
}

.btn-primary:hover{
  transform: translateY(-1px);
  box-shadow: 0 16px 40px rgba(79,70,229,.6);
}

.btn-outline{
  background: transparent;
  border: 1px solid rgba(148,163,184,.45);
  color: var(--text);
}

.btn-outline:hover{
  background: rgba(255,255,255,.06);
}

.btn-secondary{
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(148,163,184,.25);
  color: var(--text);
  padding: .50rem .95rem;
  border-radius: 12px;
  cursor:pointer;
  font: inherit;
}

.btn-secondary:hover{
  background: rgba(255,255,255,.12);
}

.btn-danger{
  background: rgba(255,107,107,.12);
  border: 1px solid rgba(255,107,107,.35);
  color: #ff9a9a;
  padding: .50rem .95rem;
  border-radius: 12px;
  cursor:pointer;
  font: inherit;
}

.btn-danger:hover{
  background: rgba(255,107,107,.18);
}

/* ===================== Addresses ===================== */

.addr-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 14px;
}

.addr-card{
  padding: 14px;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  background: rgba(2,6,23,.25);
}

.addr-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.addr-head{
  display:flex;
  align-items:center;
  gap:10px;
}

.status-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  background: rgba(255,255,255,0.25);
  display:inline-block;
}

.status-dot--ok{ background:#22c55e; }

.addr-lines{
  margin-top:10px;
  line-height:1.55;
  color: rgba(229,231,235,.95);
}

.addr-actions{
  display:flex;
  flex-direction:column;
  gap:8px;
  align-items:flex-end;
  flex: 0 0 auto;
}

/* ===================== Modal ===================== */

/* užrakina background scroll */
body.modal-open{ overflow:hidden; }

.modal-backdrop{
  position:fixed;
  inset:0;
  z-index: 2000;
  display:none;
  align-items:center;
  justify-content:center;
  padding: 6vh 14px 14px;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(6px);
}

.modal-backdrop.is-open{ display:flex; }

.modal-dialog{
  width:100%;
  max-width: 760px;
}

.modal-card{ padding: 18px; }

.modal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom: 10px;
}

.modal-title{ margin:0; }

.modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top: 14px;
}

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

.col-span-2{ grid-column: 1 / -1; }

.check-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin: 8px 0 14px;
}

/* ===================== Footer ===================== */

.site-footer{
  border-top: 1px solid rgba(148,163,184,.25);
  padding: 1.3rem 0 1.7rem;
  background: #020617;
  margin-top: 2rem;
}

.footer-inner{
  text-align:center;
  font-size: .8rem;
  color: var(--muted);
}

.footer-note{ margin-top:.25rem; }

/* ===================== Responsive ===================== */

@media (max-width: 900px){
  .addr-grid{ grid-template-columns: 1fr; }
}

@media (max-width: 600px){
  .header-inner{
    flex-wrap: wrap;
    gap: 10px;
  }
  .nav{
    width: 100%;
    justify-content: flex-end;
    flex-wrap: wrap;
  }
  .form-grid{
    grid-template-columns: 1fr;
  }
  .col-span-2{ grid-column: auto; }
}
.status-ok {
  color: #2ecc71;
}

.status-off {
  color: #f39c12;
}

.status-error {
  color: #e74c3c;
}

.panel-actions {
  margin-top: 16px;
  display: flex;
  gap: 10px;
}
