:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#e9eef3;background:#090d11;font-synthesis:none}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;min-height:100vh;background:radial-gradient(circle at 85% 0%,#14262b 0,transparent 35%),linear-gradient(145deg,#0d1217,#090d11 65%)}
body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.13;background-image:linear-gradient(#5c8288 1px,transparent 1px),linear-gradient(90deg,#5c8288 1px,transparent 1px);background-size:66px 66px;mask-image:linear-gradient(90deg,transparent,black 70%)}
.shell{width:min(1040px,calc(100% - 44px));margin:0 auto;position:relative}
.masthead{min-height:86px;display:flex;align-items:center;gap:15px;border-bottom:1px solid #26333a}
.mark{display:grid;place-items:center;height:34px;width:34px;color:#071115;background:#8ad8d2;border-radius:8px;font-weight:900;font-size:20px}
.brand{letter-spacing:.16em;font-size:12px;font-weight:800;color:#f7fbfd}
.brand span{color:#788b94;font-weight:600}
.local-badge,.header-link{margin-left:auto;font-size:10px;letter-spacing:.12em;color:#a4d7d3;border:1px solid #315a5b;border-radius:100px;padding:9px 13px;white-space:nowrap}
.header-link{text-decoration:none;font-size:11px}
.header-link:hover{background:#183036}
.dot{display:inline-block;width:6px;height:6px;background:#78d8b7;border-radius:50%;margin-right:7px;box-shadow:0 0 8px #78d8b7}
.intro{padding:78px 0 56px;max-width:770px}
.admin-intro{padding-bottom:40px}
.eyebrow,.info-number{color:#84c6c4;font-size:11px;font-weight:800;letter-spacing:.2em}
h1{font-size:clamp(52px,8vw,88px);letter-spacing:-.065em;line-height:.99;margin:20px 0 25px;font-weight:800}
h1 em{font-style:normal;color:#8ad8d2}
.lead{color:#9fafb6;max-width:610px;line-height:1.7;font-size:16px}
.workspace{background:#111a20;border:1px solid #2a3c43;border-radius:16px;box-shadow:0 28px 75px #0007;overflow:hidden}
.panel-heading{display:flex;justify-content:space-between;align-items:center;padding:27px 38px 25px;border-bottom:1px solid #293a41;background:linear-gradient(90deg,#132127,#121a20);gap:16px}
.panel-heading .eyebrow{margin:0 0 8px}
h2{font-size:25px;margin:0;letter-spacing:-.03em}
.panel-icon{color:#7dc9c4;font-size:30px}
form{padding:30px 38px 38px}
.field-label{display:block;color:#cbd7dc;font-size:13px;font-weight:700;margin-bottom:11px}
.version-fieldset{border:0;margin:0;padding:0}
.version-fieldset legend{padding:0}
.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.guide-choice{appearance:none;width:100%;min-height:89px;display:flex;align-items:center;gap:14px;text-align:left;background:#0d171c;border:1px solid #34474e;border-radius:10px;color:#edf7f7;padding:15px;cursor:pointer;font:inherit}
.guide-choice:hover:not(:disabled){border-color:#80cfc9;background:#15282d}
.guide-choice[aria-pressed="true"]{border-color:#8ad8d2;background:#183238;box-shadow:inset 0 0 0 1px #8ad8d2}
.guide-choice:disabled{opacity:.48;cursor:not-allowed}
.choice-symbol{display:grid;place-items:center;flex:none;width:43px;height:43px;border-radius:8px;background:#1b3338;color:#9be2dc;font-size:20px;font-weight:800}
.choice-text{display:grid;gap:5px;min-width:0}
.choice-text strong{font-size:14px}
.choice-text small{color:#8da4ac;font-size:11px}
.choice-indicator{margin-left:auto;color:#8fd4cc;font-size:19px}
.tag-field{margin-top:29px}
input[type="text"],input[type="password"],select,textarea{width:100%;background:#0c1419;border:1px solid #34474e;border-radius:8px;color:#f0f8f9;font:inherit;font-size:15px;padding:14px 15px;outline:none}
input:focus,select:focus,textarea:focus{border-color:#84d7d1;box-shadow:0 0 0 3px #84d7d11c}
input::placeholder,textarea::placeholder{color:#667981}
textarea{resize:vertical;min-height:112px;line-height:1.5}
select{color-scheme:dark}
input[type="file"]{display:block;width:100%;border:1px dashed #4e7176;background:#142328;border-radius:9px;color:#cbd7dc;padding:16px;font:inherit;font-size:13px}
input[type="file"]::file-selector-button{background:#29484d;border:1px solid #537a7d;color:#e5f6f3;border-radius:6px;padding:7px 11px;margin-right:12px;cursor:pointer}
.hint{color:#82959d;font-size:12px;margin:9px 0 0;line-height:1.5}
.primary-button{width:100%;border:0;background:#91dad4;color:#082025;border-radius:9px;padding:16px 20px;margin-top:29px;font:inherit;font-weight:800;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:space-between}
.primary-button:hover:not(:disabled){background:#b4ece7}
.primary-button:disabled{cursor:not-allowed;opacity:.58}
.primary-button span{font-size:21px;line-height:14px}
.status{margin:15px 0 0;min-height:20px;font-size:13px}
.status.error{color:#ffad9f}
.status.success{color:#9ae2bd}
.status.working{color:#9ed5d2}
.result{margin-top:12px;background:#152e2b;border:1px solid #3b786a;border-radius:10px;padding:15px 17px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.result strong,.result span{display:block}
.result strong{font-size:14px}
.result span{color:#9dbaa9;font-size:12px;margin-top:4px;line-height:1.4}
.download-button{color:#e0fff1;white-space:nowrap;border:1px solid #5ca68a;text-decoration:none;padding:10px 13px;border-radius:7px;font-size:12px;font-weight:700}
.download-button:hover{background:#24493d}
.info{padding:46px 4px 55px;display:grid;grid-template-columns:220px 1fr;gap:30px;border-bottom:1px solid #26333a}
.info p{color:#94a5ad;max-width:720px;margin:0;line-height:1.8;font-size:14px}
footer{color:#71838b;padding:27px 0 45px;font-size:10px;letter-spacing:.08em;display:flex;justify-content:space-between;gap:15px}
.narrow-panel{max-width:680px}
.stacked-form{display:grid;gap:11px}
.stacked-form .primary-button{margin-top:14px}
.stacked-form .fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.admin-upload{margin-top:22px}
.source-list{padding:12px 38px}
.source-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 0;border-bottom:1px solid #26383e}
.source-row:last-child{border-bottom:0}
.source-row strong,.source-row small{display:block}
.source-row strong{font-size:14px}
.source-row small{font-size:12px;color:#8ba0a7;margin-top:6px;line-height:1.5;overflow-wrap:anywhere}
.subtle-button{border:1px solid #497075;background:#1c3035;color:#c9e8e4;border-radius:7px;padding:9px 13px;font:inherit;font-size:12px;white-space:nowrap;cursor:pointer}
.subtle-button:hover{background:#2b4a4f}
.preview-body{padding:25px 38px}
.preview-body textarea{min-height:220px;font:12px/1.55 Consolas,monospace}
.loading-note{color:#8ca4aa}
.owner-actions{display:flex;gap:10px;align-items:center}
.owner-actions a{text-decoration:none}
.stats-intro{padding-top:58px;padding-bottom:20px}
.stats-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:7px 0 18px}
.stats-toolbar .hint{margin:0}
.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.stats-card{padding:23px}
.stats-card .eyebrow{margin:0 0 20px}
.stats-card dl{margin:0;display:grid;gap:15px}
.stats-card dl div{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.stats-card dt{color:#9fafb6;font-size:13px}
.stats-card dd{margin:0;color:#e8f8f5;font-size:23px;font-weight:800;letter-spacing:-.03em}
.stats-history{margin-top:20px}
.stats-table-wrap{overflow-x:auto;padding:9px 25px 22px}
.stats-history table{width:100%;border-collapse:collapse;font-size:13px}
.stats-history th,.stats-history td{padding:13px 12px;border-bottom:1px solid #26383e;text-align:right;white-space:nowrap}
.stats-history th:first-child,.stats-history td:first-child{text-align:left}
.stats-history th{color:#9fafb6;font-weight:700}
.stats-history tr:last-child td{border-bottom:0}
.stats-note{color:#82959d;font-size:12px;line-height:1.65;margin:17px 2px 0}
@media(max-width:760px){.stats-grid{grid-template-columns:1fr}.stats-card dl{grid-template-columns:repeat(3,1fr)}.stats-card dl div{display:block}.stats-card dd{margin-top:5px}}
@media(max-width:500px){.stats-card dl{grid-template-columns:1fr}.stats-card dl div{display:flex}.owner-actions{flex-direction:column;align-items:stretch}.owner-actions .subtle-button{text-align:center}}
@media(max-width:650px){.shell{width:min(100% - 28px,1040px)}.brand span{display:none}.local-badge{font-size:0;padding:9px}.local-badge .dot{margin:0}.intro{padding:60px 0 39px}.panel-heading{padding:24px 21px}form{padding:24px 21px 29px}.guide-grid,.stacked-form .fields,.info{grid-template-columns:1fr}.info{gap:13px;padding:35px 4px}.source-list,.preview-body{padding-left:21px;padding-right:21px}.result{align-items:flex-start;flex-direction:column}footer{flex-direction:column}}


/* Minimal WoW Forever visitor page; owner library styles above remain intact. */
body.public-page {
  background: #080e15;
  color: #f1f6f7;
}
body.public-page::before { display: none; }
.public-shell {
  width: min(760px, calc(100% - 32px));
  margin: 0 auto;
  padding: 28px 0 56px;
}
.forever-art {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 15px;
}
.generator-card {
  margin-top: 22px;
  padding: 32px;
  background: #121d27;
  border: 1px solid #2b414d;
  border-radius: 15px;
}
.generator-card h1 {
  margin: 0;
  font-size: clamp(28px, 5vw, 42px);
  line-height: 1.1;
  letter-spacing: -.045em;
}
.public-explanation {
  margin: 14px 0 0;
  color: #adbdc7;
  font-size: 15px;
  line-height: 1.65;
}
.public-form {
  padding: 0;
  margin-top: 28px;
}
.public-form label,
.public-result label {
  display: block;
  margin-bottom: 10px;
  color: #e6f0f1;
  font-size: 14px;
  font-weight: 700;
}
.entry-row {
  display: flex;
  gap: 10px;
}
.entry-row input {
  min-width: 0;
  flex: 1;
  background: #0a141c;
  border: 1px solid #45606c;
  border-radius: 9px;
  color: #fff;
  font-size: 17px;
  padding: 15px 16px;
}
.entry-row button,
.result-actions button,
.result-actions a {
  border: 0;
  border-radius: 9px;
  background: #91dad4;
  color: #092125;
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  padding: 0 20px;
  cursor: pointer;
  white-space: nowrap;
}
.entry-row button:hover:not(:disabled),
.result-actions button:hover,
.result-actions a:hover { background: #b5ebe7; }
.entry-row button:disabled { opacity: .52; cursor: not-allowed; }
.public-hint {
  margin: 10px 0 0;
  color: #8197a2;
  font-size: 12px;
  line-height: 1.5;
}
.public-status {
  min-height: 21px;
  margin: 15px 0 0;
  font-size: 13px;
}
.public-status.error { color: #ffad9f; }
.public-status.success { color: #9ae2bd; }
.public-status.notice { color: #adc4ca; }
.public-result {
  border-top: 1px solid #2b414d;
  margin-top: 21px;
  padding-top: 25px;
}
.public-result textarea {
  width: 100%;
  min-height: 130px;
  background: #08131b;
  border: 1px solid #45606c;
  border-radius: 9px;
  color: #d8f1ec;
  font: 13px/1.55 Consolas, "Courier New", monospace;
  padding: 13px;
  overflow-wrap: anywhere;
}
.result-actions {
  display: flex;
  gap: 10px;
  margin-top: 13px;
}
.result-actions button,
.result-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  text-decoration: none;
}
.result-actions a { background: #223c44; color: #dbf4f1; border: 1px solid #4c777d; }
.result-actions a:hover { background: #30515a; }
@media (max-width: 620px) {
  .public-shell { width: min(100% - 24px, 760px); padding-top: 12px; }
  .forever-art { border-radius: 10px; }
  .generator-card { padding: 24px 20px; margin-top: 14px; }
  .entry-row { flex-direction: column; }
  .entry-row button { min-height: 48px; }
}
