/* SerraForge Core component layer. Additive, mobile-first, and safe beside older CSS. */
:root {
  --forge-primary: #7c5cff;
  --forge-accent: #ffb35b;
  --forge-card-bg: rgba(255,255,255,.88);
  --forge-panel-bg: rgba(255,255,255,.72);
  --forge-text: #2e2540;
  --forge-muted: #706784;
  --forge-border: rgba(77,52,110,.18);
  --forge-radius: 18px;
  --forge-shadow: 0 14px 32px rgba(49,31,78,.12);
}
.forge-grid { display:grid; grid-template-columns:1fr; gap:1rem; }
@media (min-width: 820px) { .forge-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); } .forge-grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.forge-card { background:var(--forge-card-bg); border:1px solid var(--forge-border); border-radius:var(--forge-radius); box-shadow:var(--forge-shadow); padding:1rem; color:var(--forge-text); }
.forge-card-head { display:flex; align-items:center; gap:.65rem; justify-content:space-between; flex-wrap:wrap; margin-bottom:.75rem; }
.forge-card-head h2 { margin:0; font-size:1.15rem; }
.forge-card-icon { width:2.35rem; height:2.35rem; display:inline-grid; place-items:center; border-radius:999px; background:rgba(124,92,255,.12); }
.forge-card-body p:first-child { margin-top:0; }
.forge-actions { display:flex; gap:.55rem; flex-wrap:wrap; align-items:center; }
.forge-btn { display:inline-flex; align-items:center; justify-content:center; gap:.35rem; min-height:42px; padding:.65rem .9rem; border-radius:999px; border:1px solid var(--forge-border); text-decoration:none; font-weight:800; color:var(--forge-text); background:rgba(255,255,255,.78); }
.forge-btn-primary { background:linear-gradient(135deg,var(--forge-primary),#a68dff); color:white; border-color:transparent; }
.forge-btn-secondary { background:rgba(255,255,255,.78); }
.forge-btn-danger { background:#ffe8e8; color:#7c1c1c; border-color:#ffcaca; }
.forge-btn-soft { background:rgba(124,92,255,.11); color:#4e3475; }
.forge-badge { display:inline-flex; align-items:center; gap:.25rem; padding:.25rem .55rem; border-radius:999px; font-size:.78rem; font-weight:800; background:#eee8ff; color:#49336d; }
.forge-badge-good { background:#e7f8e9; color:#285f31; }
.forge-badge-warn { background:#fff4d8; color:#7a5316; }
.forge-badge-danger { background:#ffe4e4; color:#7d2222; }
.forge-notice { border-radius:16px; padding:.85rem 1rem; margin:.75rem 0; border:1px solid var(--forge-border); background:rgba(255,255,255,.85); }
.forge-notice-success { background:#ecfbef; border-color:#bee9c5; }
.forge-notice-error { background:#fff0f0; border-color:#ffc9c9; }
.forge-notice-warn { background:#fff7df; border-color:#ffe0a1; }
.forge-empty { text-align:center; border:1px dashed var(--forge-border); border-radius:var(--forge-radius); padding:1.2rem; color:var(--forge-muted); background:rgba(255,255,255,.48); }
.forge-empty strong { display:block; color:var(--forge-text); font-size:1.05rem; margin:.25rem 0; }
.forge-empty-icon { font-size:2rem; }
.forge-form { display:grid; gap:.85rem; }
.forge-field label { display:block; font-weight:800; margin-bottom:.3rem; }
.forge-field input, .forge-field select, .forge-field textarea { width:100%; box-sizing:border-box; min-height:42px; padding:.7rem .8rem; border-radius:14px; border:1px solid var(--forge-border); background:rgba(255,255,255,.92); color:var(--forge-text); font:inherit; }
.forge-field textarea { min-height:110px; resize:vertical; }
.forge-help { color:var(--forge-muted); font-size:.9rem; margin:.25rem 0 0; }
.forge-table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:var(--forge-radius); border:1px solid var(--forge-border); }
.forge-table { width:100%; border-collapse:collapse; min-width:680px; background:rgba(255,255,255,.78); }
.forge-table th, .forge-table td { padding:.75rem; border-bottom:1px solid var(--forge-border); text-align:left; vertical-align:top; }
.forge-table th { background:rgba(124,92,255,.09); }
.forge-pill-row { display:flex; gap:.5rem; flex-wrap:wrap; }

/* 018E Guestbook polish: no default browser-box goblin textarea. */
.forge-comment-form{
  display:grid;
  gap:.7rem;
  padding:1rem;
  border:1px solid rgba(123,92,63,.16);
  border-radius:22px;
  background:linear-gradient(135deg, rgba(255,251,242,.95), rgba(255,255,255,.82));
  box-shadow:0 12px 28px rgba(60,42,28,.07);
}
.forge-comment-form label{
  font-weight:800;
  color:var(--forge-text, #243c32);
}
.forge-comment-form textarea{
  width:100%;
  min-height:130px;
  box-sizing:border-box;
  border:1px solid rgba(122,93,60,.24);
  border-radius:18px;
  background:rgba(255,255,255,.86);
  color:var(--forge-text, #243c32);
  padding:1rem;
  font:inherit;
  line-height:1.5;
  resize:vertical;
  box-shadow:inset 0 2px 8px rgba(60,42,28,.04);
}
.forge-comment-form textarea:focus{
  outline:3px solid rgba(126,205,156,.28);
  border-color:rgba(80,160,112,.55);
}
.forge-comment-form button,
.forge-comment-form .btn{
  justify-self:start;
  border:0;
  border-radius:999px;
  padding:.72rem 1.15rem;
  font-weight:900;
  cursor:pointer;
  background:var(--forge-accent, #8f6b42);
  color:#fff;
  box-shadow:0 8px 18px rgba(80,53,31,.16);
}
.forge-guestbook-list{display:grid;gap:.85rem;margin-top:1rem;}
.forge-guestbook-list .comment-card{
  border:1px solid rgba(122,93,60,.14);
  border-radius:20px;
  padding:1rem;
  background:linear-gradient(135deg, rgba(255,255,255,.95), rgba(255,248,233,.72));
  box-shadow:0 10px 22px rgba(60,42,28,.06);
}
.forge-guestbook-list .campfire-author{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.55rem;
  margin-bottom:.55rem;
}
.forge-guestbook-list .campfire-author img{
  width:34px;
  height:34px;
  border-radius:12px;
  object-fit:cover;
  box-shadow:0 5px 12px rgba(60,42,28,.1);
}
.forge-guestbook-list .campfire-author span{
  color:var(--forge-muted, #6d7b70);
  font-size:.88rem;
}
@media (max-width: 640px){
  .forge-comment-form{padding:.85rem;border-radius:18px;}
  .forge-comment-form button,.forge-comment-form .btn{width:100%;}
}

/* Destination Manager / Forge Passport polish */
.destination-card { position:relative; overflow:hidden; }
.destination-card:before { content:""; position:absolute; inset:0 0 auto 0; height:6px; background:var(--destination-accent, var(--forge-accent, #7c5cff)); }
.destination-card .forge-card-head { align-items:flex-start; gap:.75rem; }
.destination-card-title { display:flex; flex-direction:column; gap:.25rem; min-width:0; }
.destination-card-title h2 { margin:0; }
.destination-card-status { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.25rem; }
.destination-community { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.9rem; }
.destination-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1rem; }
.destination-section-title { display:flex; align-items:center; gap:.55rem; margin:1.4rem 0 .8rem; }
.destination-section-title h2 { margin:0; }
.destination-summary { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:.75rem; }
.passport-stamps { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:.75rem; }
.passport-stamp { width:42px; height:42px; border-radius:999px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.72); border:1px solid rgba(90,70,130,.16); box-shadow:0 8px 18px rgba(40,25,70,.08); filter:grayscale(.8); opacity:.7; }
.passport-stamp.visited { filter:none; opacity:1; background:linear-gradient(135deg, rgba(255,255,255,.94), rgba(250,244,255,.82)); }
.destination-manager-row { display:grid; grid-template-columns:minmax(0,1.4fr) auto; gap:1rem; align-items:center; padding:1rem; border-radius:18px; background:rgba(255,255,255,.64); border:1px solid rgba(90,70,130,.13); margin-bottom:.75rem; }
.destination-manager-meta { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.35rem; }
.destination-admin-tabs { display:flex; gap:.5rem; flex-wrap:wrap; margin:1rem 0; }
.destination-admin-tabs a { text-decoration:none; }
.forge-badge-beta { background:#ece4ff; color:#5b3baa; border-color:#d8c8ff; }
.forge-badge-legacy { background:#efe8dc; color:#6b4a2f; border-color:#dfcfb7; }
.forge-badge-error { background:#ffe5e5; color:#a43232; border-color:#ffc7c7; }
.forge-grid.three { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1rem; }
@media (max-width: 900px) { .forge-grid.three { grid-template-columns:1fr; } .destination-manager-row { grid-template-columns:1fr; } }
@media (max-width: 640px) { .destination-actions, .destination-community { flex-direction:column; } .destination-actions .forge-btn, .destination-community .forge-btn { width:100%; justify-content:center; } .passport-stamp { width:38px; height:38px; } }

/* Patch 022 */
.forge-title-link { color: inherit; text-decoration: none; }
.forge-title-link:hover, .forge-title-link:focus { text-decoration: underline; }
.destination-card input[type="password"] { width: 100%; }
