.appeal{max-width:720px;margin:0 auto;padding:8px 22px 60px;}
.panel{background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--border);
  border-radius:var(--radius);padding:26px 26px 28px;box-shadow:var(--shadow);margin-bottom:20px;}
.panel h2{color:var(--gold);font-size:1.35rem;margin:0 0 12px;letter-spacing:.4px;}
.panel p{color:var(--ink-dim);margin:0 0 12px;}
.panel p:last-child{margin-bottom:0;}
.muted{color:var(--ink-faint);font-size:.9rem;}

.center{text-align:center;}
.center .btn{margin-top:6px;}

.discord-btn{display:inline-flex;align-items:center;gap:10px;padding:13px 26px;border-radius:10px;font-weight:700;
  border:1px solid #7a86e0;background:linear-gradient(180deg,#5865f2,#4551d4);color:#fff;cursor:pointer;
  transition:transform .12s,box-shadow .12s,filter .12s;font-family:var(--font);font-size:1rem;}
.discord-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow);filter:brightness(1.06);text-decoration:none;color:#fff;}
.discord-btn:disabled{opacity:.6;cursor:default;transform:none;box-shadow:none;filter:none;}
.discord-btn .glyph{width:22px;height:22px;display:inline-block;}

.spin{display:inline-block;width:18px;height:18px;border:2px solid var(--border-lit);border-top-color:var(--rose-glow);
  border-radius:50%;animation:appeal-spin .8s linear infinite;vertical-align:-3px;margin-right:8px;}
@keyframes appeal-spin{to{transform:rotate(360deg);}}

.ban-banner{border:1px solid var(--rose-deep);border-left:4px solid var(--rose);border-radius:12px;
  background:radial-gradient(circle at 0 0,rgba(156,79,115,.22),transparent 70%),var(--panel);
  padding:18px 20px;margin-bottom:22px;}
.ban-banner .eyebrow{display:inline-block;font-size:.7rem;letter-spacing:2px;text-transform:uppercase;font-weight:700;
  color:var(--rose-glow);margin-bottom:8px;}
.ban-banner .reason{color:var(--ink);font-size:1.05rem;line-height:1.5;word-break:break-word;}
.ban-banner .timer{margin-top:12px;font-size:.9rem;color:var(--ink-dim);}
.ban-banner .timer b{color:var(--gold);font-variant-numeric:tabular-nums;}
.ban-banner.perma .timer b{color:var(--rose-glow);}

.plea-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:6px 0 20px;}
.plea{all:unset;cursor:pointer;display:block;background:linear-gradient(180deg,var(--panel-2),var(--panel));
  border:1px solid var(--border);border-top:3px solid var(--border-lit);border-radius:12px;padding:18px 18px 16px;
  transition:transform .14s,border-color .14s,box-shadow .14s;box-sizing:border-box;}
.plea:hover{transform:translateY(-2px);border-color:var(--border-lit);box-shadow:var(--shadow);}
.plea:focus-visible{outline:2px solid var(--rose-glow);outline-offset:2px;}
.plea .pt{display:block;font-size:1.1rem;font-weight:700;color:var(--ink);margin-bottom:6px;}
.plea .pd{display:block;color:var(--ink-dim);font-size:.9rem;line-height:1.5;}
.plea.sel{border-color:var(--rose);border-top-color:var(--rose);
  box-shadow:0 0 0 1px var(--rose) inset,var(--shadow);}
.plea.sel .pt{color:var(--rose-glow);}
.plea .tick{float:right;color:var(--rose-glow);font-weight:700;opacity:0;}
.plea.sel .tick{opacity:1;}

.field{margin:0 0 18px;}
.field label{display:block;color:var(--ink);font-weight:600;margin-bottom:8px;font-size:.98rem;}
.field-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px;}
.field-head label{margin-bottom:0;}
.appeal textarea{width:100%;min-height:150px;resize:vertical;box-sizing:border-box;padding:12px 14px;
  border-radius:10px;border:1px solid var(--border);background:var(--bg-2);color:var(--ink);
  font-family:var(--font);font-size:1rem;line-height:1.55;}
.appeal textarea:focus{outline:none;border-color:var(--rose-deep);box-shadow:0 0 0 1px var(--rose-deep);}
.appeal textarea:disabled{opacity:.55;cursor:not-allowed;}
.counter{margin-top:6px;font-size:.82rem;color:var(--ink-faint);text-align:right;font-variant-numeric:tabular-nums;}
.counter.bad{color:var(--rose-glow);}

.photo-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.photo-pick{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:10px;font-weight:600;
  border:1px dashed var(--border-lit);background:var(--panel-2);color:var(--ink-dim);cursor:pointer;
  transition:border-color .12s,color .12s;font-family:var(--font);font-size:.92rem;}
.photo-pick:hover{border-color:var(--rose-deep);color:var(--ink);}
.photo-pick input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;}
.photo-thumb{display:flex;align-items:center;gap:12px;}
.photo-thumb img{width:66px;height:66px;object-fit:cover;border-radius:10px;border:1px solid var(--border-lit);}
.photo-thumb .ok{color:var(--good);font-weight:600;font-size:.9rem;}
.photo-status{color:var(--ink-faint);font-size:.86rem;}
.photo-status.err{color:var(--rose-glow);}
.link-btn{all:unset;cursor:pointer;color:var(--ink-dim);font-size:.86rem;text-decoration:underline;}
.link-btn:hover{color:var(--rose-glow);}

.submit-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:6px;}
.btn.primary:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none;}
.form-note{color:var(--rose-glow);font-size:.9rem;}
.form-note.ok{color:var(--good);}

.status-line{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;margin:0 0 14px;}
.chip{display:inline-block;font-size:.72rem;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;
  padding:4px 12px;border-radius:999px;}
.chip.pending{background:rgba(216,181,143,.16);border:1px solid var(--gold);color:var(--gold);}
.chip.denied{background:rgba(156,79,115,.18);border:1px solid var(--rose-deep);color:var(--rose-glow);}
.chip.approved{background:rgba(140,199,158,.16);border:1px solid var(--good);color:var(--good);}
.chip.good{background:rgba(140,199,158,.16);border:1px solid var(--good);color:var(--good);}

.echo{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:14px 16px;
  color:var(--ink-dim);white-space:pre-wrap;word-break:break-word;line-height:1.55;font-size:.95rem;}
.echo-label{color:var(--ink-faint);font-size:.78rem;letter-spacing:1px;text-transform:uppercase;font-weight:700;margin:16px 0 7px;}
.admin-note{background:radial-gradient(circle at 0 0,rgba(156,79,115,.16),transparent 70%),var(--bg-2);
  border:1px solid var(--rose-deep);border-radius:10px;padding:14px 16px;color:var(--ink);white-space:pre-wrap;
  word-break:break-word;line-height:1.55;font-size:.95rem;}

.modal-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;
  padding:22px;background:rgba(8,8,12,.72);}
.modal-box{max-width:440px;width:100%;background:linear-gradient(180deg,var(--panel-2),var(--panel));
  border:1px solid var(--border);border-top:3px solid var(--rose);border-radius:var(--radius);
  padding:24px 24px 22px;box-shadow:var(--shadow);}
.modal-box h2{color:var(--gold);font-size:1.2rem;margin:0 0 12px;letter-spacing:.4px;}
.modal-box p{color:var(--ink-dim);margin:0 0 20px;line-height:1.55;}
.modal-actions{display:flex;justify-content:flex-end;gap:12px;}

.foot a{color:var(--ink-dim);}

@media(max-width:560px){
  .plea-grid{grid-template-columns:1fr;}
  .appeal{padding:8px 16px 44px;}
  .panel{padding:20px 18px 22px;}
}
