/* ms-pages.css — shared look for multiversesocial.com status/error pages and CGI panels.
   Palette matches home.c / cgi_utils.c / tvcell.css. No fonts, images, CDNs or scripts.
   Everything is prefixed .ms- ; page-level rules apply only to body.ms-page. */

body.ms-page{
  --ms-accent:#89b4fa; --ms-edge:#3344aa; --ms-bg:#05060f; --ms-panel:rgba(17,17,27,.94);
  --ms-panel2:rgba(30,30,46,.95); --ms-text:#cdd6f4; --ms-dim:#a6adc8; --ms-ok:#00ff88; --ms-bad:#ff6666; --ms-warn:#f9e2af;
  margin:0; min-height:100vh; box-sizing:border-box; padding:24px 14px;
  display:flex; align-items:center; justify-content:center;
  color:var(--ms-text); font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; line-height:1.5;
  background-color:var(--ms-bg);
  /* CSS-only starfield + nebula */
  background-image:
    radial-gradient(1.5px 1.5px at 12% 18%,#fff,transparent 60%),
    radial-gradient(1px 1px at 28% 72%,#cdd6f4,transparent 60%),
    radial-gradient(1.5px 1.5px at 44% 34%,#89b4fa,transparent 60%),
    radial-gradient(1px 1px at 63% 12%,#fff,transparent 60%),
    radial-gradient(2px 2px at 78% 58%,#fff,transparent 60%),
    radial-gradient(1px 1px at 90% 86%,#cdd6f4,transparent 60%),
    radial-gradient(1px 1px at 8% 90%,#fff,transparent 60%),
    radial-gradient(1.5px 1.5px at 55% 88%,#89b4fa,transparent 60%),
    radial-gradient(1px 1px at 95% 22%,#fff,transparent 60%),
    radial-gradient(ellipse 60% 45% at 85% 10%,rgba(51,68,170,.45),transparent 70%),
    radial-gradient(ellipse 55% 50% at 10% 95%,rgba(137,180,250,.18),transparent 70%),
    radial-gradient(ellipse at 50% 50%,#0d0f24 0%,#05060f 75%);
  background-attachment:fixed;
}
body.ms-page *,body.ms-page *::before,body.ms-page *::after{box-sizing:border-box}
body.ms-page a{color:var(--ms-accent)}
body.ms-page [hidden]{display:none !important}

/* ---------- shell / panel ---------- */
.ms-shell{width:min(100%,720px); margin:0 auto}
.ms-panel{
  position:relative; overflow:hidden; background:var(--ms-panel);
  border:1px solid var(--ms-edge); border-radius:16px; padding:0;
  box-shadow:0 0 40px rgba(137,180,250,.28), inset 0 0 0 1px rgba(137,180,250,.08);
}
.ms-panel + .ms-panel{margin-top:16px}
.ms-body{padding:28px 32px 32px; position:relative; z-index:1}

/* brand bar */
.ms-bar{display:flex; align-items:center; gap:10px; padding:12px 18px; background:linear-gradient(90deg,rgba(51,68,170,.55),rgba(137,180,250,.1),transparent); border-bottom:1px solid rgba(137,180,250,.22)}
.ms-brand{display:flex; align-items:center; gap:9px; min-height:44px; margin:-11.4px 0 -11.4px -4px; padding:0 4px; color:#fff !important; text-decoration:none; font:700 .95rem/1 ui-monospace,"Courier New",monospace; letter-spacing:.14em}
.ms-brand b{background:var(--ms-edge); color:#fff; padding:3px 6px; border-radius:4px}
.ms-brand span{color:var(--ms-accent)}
.ms-led{width:9px; height:9px; border-radius:50%; background:var(--ms-accent); box-shadow:0 0 9px var(--ms-accent)}
.ms-led.ms-bad{background:var(--ms-bad); box-shadow:0 0 9px var(--ms-bad)}
.ms-led.ms-ok{background:var(--ms-ok); box-shadow:0 0 9px var(--ms-ok)}
.ms-spacer{flex:1 1 auto}
.ms-tag{white-space:nowrap; font:600 .72rem/1 ui-monospace,monospace; letter-spacing:.16em; color:var(--ms-dim); text-transform:uppercase}

/* ---------- hero (error pages) ---------- */
.ms-hero{display:flex; align-items:center; gap:28px}
.ms-hero-text{flex:1 1 auto; min-width:0}
.ms-code{
  margin:0 0 4px; font:800 clamp(3.4rem,11vw,5.6rem)/1 ui-monospace,"Courier New",monospace; letter-spacing:.04em;
  background:linear-gradient(180deg,#fff,var(--ms-accent) 60%,var(--ms-edge)); -webkit-background-clip:text; background-clip:text;
  color:transparent; -webkit-text-fill-color:transparent; text-shadow:none; filter:drop-shadow(0 0 14px rgba(137,180,250,.45));
}
.ms-title{margin:0 0 10px; font-size:1.6rem; line-height:1.2; color:#fff; font-weight:700}
.ms-msg{margin:0 0 22px; color:var(--ms-text); font-size:1.05rem; max-width:44ch}
.ms-hint{margin:18px 0 0; color:var(--ms-dim); font-size:.88rem}
.ms-actions{display:flex; flex-wrap:wrap; gap:10px}

/* ---------- planet / orbit motif (CSS only, decorative) ---------- */
.ms-orbit{position:relative; flex:0 0 150px; width:150px; height:150px}
.ms-orbit::before{ /* ring */
  content:""; position:absolute; left:-18px; right:-18px; top:50%; height:44px; margin-top:-22px; border-radius:50%;
  border:2px solid rgba(137,180,250,.55); transform:rotate(-18deg); box-shadow:0 0 12px rgba(137,180,250,.35);
}
.ms-planet{
  position:absolute; inset:18px; border-radius:50%;
  background:radial-gradient(circle at 32% 28%,#b4c9ff 0%,#6d86e0 28%,#3344aa 62%,#0e1030 100%);
  box-shadow:0 0 34px rgba(137,180,250,.5), inset -14px -10px 24px rgba(0,0,0,.55);
}
.ms-planet::after{ /* front half of ring crossing the planet */
  content:""; position:absolute; left:-20px; right:-20px; top:50%; height:44px; margin-top:-22px; border-radius:50%;
  border:2px solid rgba(205,214,244,.7); border-top-color:transparent; border-left-color:transparent; border-right-color:transparent; transform:rotate(-18deg);
}
.ms-moon{position:absolute; width:14px; height:14px; border-radius:50%; right:2px; top:8px; background:radial-gradient(circle at 35% 30%,#fff,#a6adc8 60%,#45475a); box-shadow:0 0 8px rgba(205,214,244,.6)}
@media (prefers-reduced-motion:no-preference){
  .ms-moon{animation:ms-float 6s ease-in-out infinite}
  .ms-planet{animation:ms-glow 5s ease-in-out infinite}
}
@keyframes ms-float{0%,100%{transform:translate(0,0)}50%{transform:translate(-6px,8px)}}
@keyframes ms-glow{0%,100%{box-shadow:0 0 28px rgba(137,180,250,.4), inset -14px -10px 24px rgba(0,0,0,.55)}50%{box-shadow:0 0 44px rgba(137,180,250,.7), inset -14px -10px 24px rgba(0,0,0,.55)}}

/* ---------- buttons ---------- */
.ms-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:44px; padding:10px 22px;
  border:2px solid var(--ms-accent); border-radius:9999px; background:transparent; color:var(--ms-accent) !important;
  font:700 .95rem/1 system-ui,sans-serif; text-decoration:none; cursor:pointer;
  transition:background .2s,color .2s,box-shadow .2s,transform .15s;
}
.ms-btn:hover,.ms-btn:focus-visible{background:rgba(137,180,250,.16); box-shadow:0 0 16px rgba(137,180,250,.55); transform:translateY(-1px)}
.ms-btn:focus-visible{outline:2px solid #fff; outline-offset:3px}
.ms-btn.ms-primary{background:var(--ms-accent); color:#11111b !important; box-shadow:0 4px 14px rgba(0,0,0,.4),0 0 14px rgba(137,180,250,.4)}
.ms-btn.ms-primary:hover,.ms-btn.ms-primary:focus-visible{background:#a9c7ff; box-shadow:0 0 22px rgba(137,180,250,.8)}
.ms-btn.ms-edge{background:var(--ms-edge); border-color:var(--ms-edge); color:#fff !important}
.ms-btn.ms-edge:hover{background:#4455cc; box-shadow:0 0 16px rgba(68,85,204,.8)}
.ms-btn.ms-danger{border-color:var(--ms-bad); color:var(--ms-bad) !important}
.ms-btn[disabled]{opacity:.45; cursor:not-allowed; transform:none; box-shadow:none}

/* ---------- cards / notices ---------- */
.ms-card{background:var(--ms-panel2); border:1px solid rgba(137,180,250,.25); border-radius:12px; padding:16px 18px; margin:0 0 14px}
.ms-card h2,.ms-card h3{margin:0 0 8px; color:#fff; font-size:1.1rem}
.ms-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px}
.ms-note{border-left:4px solid var(--ms-accent); background:rgba(137,180,250,.08); padding:10px 14px; border-radius:0 8px 8px 0; margin:0 0 14px}
.ms-note.ms-bad{border-left-color:var(--ms-bad); background:rgba(255,102,102,.09)}
.ms-note.ms-ok{border-left-color:var(--ms-ok); background:rgba(0,255,136,.07)}
.ms-note.ms-warn{border-left-color:var(--ms-warn); background:rgba(249,226,175,.08)}

/* ---------- tables ---------- */
.ms-table{width:100%; border-collapse:separate; border-spacing:0; background:var(--ms-panel2); border:1px solid rgba(137,180,250,.25); border-radius:10px; overflow:hidden; font-size:.95rem}
.ms-table th{background:rgba(51,68,170,.5); color:#fff; text-align:left; padding:10px 12px; font-weight:700; letter-spacing:.03em}
.ms-table td{padding:9px 12px; border-top:1px solid rgba(137,180,250,.12); color:var(--ms-text)}
.ms-table tbody tr:hover td{background:rgba(137,180,250,.07)}

/* ---------- forms ---------- */
.ms-form{display:flex; flex-direction:column; gap:12px}
.ms-label{display:block; margin:0 0 4px; font-size:.85rem; color:var(--ms-dim); letter-spacing:.04em}
.ms-input,.ms-select,.ms-textarea{
  width:100%; padding:12px 16px; background:#11111b; color:var(--ms-text); border:2px solid var(--ms-edge); border-radius:10px;
  font:1rem/1.3 system-ui,sans-serif; outline:none; transition:border-color .2s,box-shadow .2s;
}
.ms-input:focus,.ms-select:focus,.ms-textarea:focus{border-color:var(--ms-accent); box-shadow:0 0 14px rgba(137,180,250,.45)}
.ms-textarea{min-height:110px; resize:vertical}

/* ---------- footer ---------- */
.ms-foot{display:flex; flex-wrap:wrap; gap:6px 16px; padding:12px 18px; border-top:1px solid rgba(137,180,250,.15); background:rgba(0,0,0,.25); font-size:.8rem; color:var(--ms-dim)}
.ms-foot a{color:var(--ms-dim); text-decoration:none}
.ms-foot a:hover{color:var(--ms-accent); text-decoration:underline}

/* ---------- small screens ---------- */
@media (max-width:560px){
  .ms-bar{padding:12px 12px; gap:8px}
  .ms-brand{letter-spacing:.06em; font-size:.8rem; min-width:0}
  .ms-brand span{overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
  .ms-tag{font-size:.62rem; letter-spacing:.08em}
  .ms-body{padding:22px 18px 24px}
  .ms-hero{flex-direction:column-reverse; align-items:flex-start; gap:12px}
  .ms-orbit{flex-basis:auto; width:110px; height:110px; margin:0 0 6px 14px}
  .ms-actions .ms-btn{flex:1 1 100%}
  .ms-foot{gap:0 8px}
  .ms-foot a{display:inline-flex; align-items:center; min-height:44px; padding:0 6px}
}
