:root{
  --bg:#070812;
  --fg:rgba(234,240,255,.94);
  --muted:rgba(234,240,255,.64);
  --stroke:rgba(255,255,255,.12);
  --glass:rgba(255,255,255,.06);
  --ok:rgba(90,240,180,.92);
  --ko:rgba(255,80,130,.92);
  --warn:rgba(255,210,90,.92);
}

*{ box-sizing:border-box; }
html,body{ height:100%; margin:0; }

body{
  background:
    radial-gradient(1000px 700px at 15% 10%, rgba(140,90,255,.16), transparent 60%),
    radial-gradient(900px 650px at 85% 30%, rgba(80,220,255,.12), transparent 60%),
    radial-gradient(900px 650px at 40% 110%, rgba(255,90,170,.10), transparent 60%),
    var(--bg);
  color:var(--fg);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;
}

.wrap{
  max-width: 1100px;
  margin: 0 auto;
  padding: 22px;
  display:flex;
  flex-direction:column;
  gap: 14px;
}

.top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap: 14px;
}

.brand{
  display:flex;
  align-items:center;
  gap: 12px;
}

.dot{
  width:10px; height:10px; border-radius:999px;
  background: rgba(255,255,255,.25);
  box-shadow: 0 0 0 6px rgba(255,255,255,.05);
}

.title{ font-weight:650; letter-spacing:.2px; }
.subtitle{ color:var(--muted); font-size: 12.5px; }

.chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
}

.chip{
  display:flex;
  align-items:center;
  gap:8px;
  padding: 7px 10px;
  border:1px solid var(--stroke);
  border-radius:999px;
  background: rgba(255,255,255,.05);
  font-size: 12px;
  color: var(--fg);
  user-select:none;
}

.c-dot{ width:8px; height:8px; border-radius:999px; background: rgba(255,255,255,.25); }
.chip.ok .c-dot{ background: var(--ok); }
.chip.warn .c-dot{ background: var(--warn); }
.chip.ko .c-dot{ background: var(--ko); }

.card{
  border: 1px solid var(--stroke);
  background: var(--glass);
  backdrop-filter: blur(14px);
  border-radius: 18px;
  padding: 14px 14px 12px;
  box-shadow: 0 18px 70px rgba(0,0,0,.45);
}

.cardhead{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap: 12px;
  margin-bottom: 10px;
}

.actions{
  display:flex;
  gap: 8px;
}

.poemTitle{ font-weight:650; }
.timestamp{ color:var(--muted); font-size: 12px; margin-top: 3px; }

.btn{
  appearance:none;
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.05);
  color: var(--fg);
  padding: 8px 10px;
  border-radius: 12px;
  cursor:pointer;
}
.btn:hover{ background: rgba(255,255,255,.08); }
.btn.subtle{ background: rgba(0,0,0,.12); }

.poem{
  margin:0;
  padding: 10px 10px 14px;
  white-space:pre-wrap;
  line-height:1.65;
  font-size: 14px;
  color: rgba(234,240,255,.92);
}

.panel{
  border-top: 1px solid rgba(255,255,255,.08);
  padding-top: 10px;
  margin-top: 10px;
}

.hidden{ display:none; }

.h{ color: var(--muted); font-size: 12px; margin: 0 0 6px; }

.checksList{
  display:flex;
  flex-direction:column;
  gap: 8px;
  margin-bottom: 10px;
}

.checkRow{
  display:flex;
  align-items:flex-start;
  gap: 10px;
  padding: 10px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(0,0,0,.14);
}

.checkLeft{
  display:flex;
  gap: 10px;
  align-items:flex-start;
}

.checkIcon{ width: 22px; }
.checkLabel{ font-weight:650; font-size: 13px; }
.checkSummary{ color: rgba(234,240,255,.72); font-size: 12.5px; margin-top: 2px; }

.checkRow.ok{ border-color: rgba(90,240,180,.18); }
.checkRow.warn{ border-color: rgba(255,210,90,.18); }
.checkRow.ko{ border-color: rgba(255,80,130,.18); }

.dump{
  margin:0;
  padding: 10px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(0,0,0,.16);
  overflow:auto;
  max-height: 360px;
  font-size: 12px;
  line-height: 1.45;
}

/* Toasts */
.toasts{
  position: fixed;
  top: 14px;
  right: 14px;
  display:flex;
  flex-direction:column;
  gap: 10px;
  z-index: 1000;
  pointer-events:none;
}

.toast{
  width: 320px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(20,22,38,.86);
  backdrop-filter: blur(10px);
  padding: 10px 12px;
  box-shadow: 0 18px 60px rgba(0,0,0,.5);
  opacity:0;
  transform: translateY(-6px);
  transition: opacity 180ms ease, transform 180ms ease;
}

.toast.show{ opacity:1; transform: translateY(0); }

.toast .t-title{ font-weight:650; margin-bottom: 4px; }
.toast .t-msg{ color: rgba(234,240,255,.74); font-size: 12.5px; line-height:1.4; }

.toast.ok{ border-color: rgba(90,240,180,.35); }
.toast.warn{ border-color: rgba(255,210,90,.35); }
.toast.ko{ border-color: rgba(255,80,130,.35); }