
:root{--bg:#0b0e1c;--panel:#15192d;--panel2:#1d213a;--line:#343a60;--text:#f5f2ff;--muted:#b9bdd3;--accent:#b89cff;--teal:#82e6de;--danger:#ff7f93;--success:#7de1ae}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55}a{color:var(--teal)}h1,h2,h3{font-family:Georgia,serif}.portal-shell{min-height:100vh;display:grid;place-items:center;padding:32px}.portal-card,.admin-panel{background:linear-gradient(145deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:20px;padding:26px;box-shadow:0 22px 60px rgba(0,0,0,.25)}.narrow{width:min(620px,100%)}.portal-grid,.blog-dynamic-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:30px}.portal-form{display:grid;gap:18px}.portal-form label{display:grid;gap:8px;font-weight:700}.portal-form input,.portal-form textarea,.portal-form select,.admin-filter input,.admin-filter select,.search-bar input,.search-bar select{width:100%;border:1px solid var(--line);border-radius:10px;background:#0f1325;color:var(--text);padding:13px 14px;font:inherit}.portal-form textarea{resize:vertical}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.check-row{grid-template-columns:auto 1fr!important;align-items:start}.check-row input{width:auto;margin-top:5px}.button,button{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:10px;background:var(--accent);color:#0b0e1c;padding:12px 18px;font-weight:800;text-decoration:none;cursor:pointer}.button.secondary{background:transparent;color:var(--text);border:1px solid var(--line)}.button-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.back-link{display:inline-block;margin-bottom:20px;text-decoration:none}.notice{padding:14px 16px;border-radius:12px;margin:16px 0}.notice.error{background:#421e2c;border:1px solid #8d4057}.notice.success{background:#123c30;border:1px solid #2c8d68}.honeypot{position:absolute!important;left:-9999px!important}.muted{color:var(--muted);font-weight:400}.published-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.published-card{overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:18px}.published-card img{width:100%;height:210px;object-fit:cover}.published-card-body{padding:22px}.published-card h2{font-size:1.45rem}.published-card h2 a{color:var(--text);text-decoration:none}.byline,.blog-date{color:var(--muted);font-size:.9rem}.search-bar,.admin-filter{display:grid;grid-template-columns:1fr 220px auto;gap:10px;margin-bottom:24px}.pagination{display:flex;gap:8px;flex-wrap:wrap;margin-top:25px}.pagination a{padding:8px 12px;border:1px solid var(--line);border-radius:8px;text-decoration:none}.pagination a.active{background:var(--accent);color:#111}.article-reading{max-width:900px;padding-top:55px;padding-bottom:80px}.article-reading h1{font-size:clamp(2.3rem,6vw,4.8rem);line-height:1.05}.article-summary{font-size:1.25rem;color:var(--muted)}.article-feature-image{width:100%;max-height:520px;object-fit:cover;border-radius:20px;margin:28px 0}.article-content{font-family:Georgia,serif;font-size:1.15rem;line-height:1.85}.article-content p{margin:1.4em 0}.sources-box{margin-top:50px;padding:25px;border:1px solid var(--line);border-radius:16px}.admin-body{background:#090c18}.admin-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:16px 28px;background:#111529;border-bottom:1px solid var(--line)}.admin-header nav{display:flex;gap:18px;flex-wrap:wrap}.admin-header a{text-decoration:none;color:var(--text)}.admin-brand{font-family:Georgia,serif;font-weight:800;font-size:1.15rem}.admin-main{max-width:1500px;margin:auto;padding:32px}.admin-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:25px}.admin-title h1{font-size:2.8rem;margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--accent);font-size:.78rem;font-weight:800}.stat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:28px}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px;text-decoration:none;color:var(--text)}.stat-card span{display:block;font-size:2.1rem;font-weight:900}.panel-heading{display:flex;justify-content:space-between;align-items:center}.responsive-table{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px;border-bottom:1px solid var(--line);vertical-align:top}td small{display:block;color:var(--muted);margin-top:5px}.status{display:inline-block;padding:5px 9px;border-radius:999px;background:#333a60;text-transform:capitalize}.status.published{background:#174e3a}.status.pending{background:#55421a}.status.rejected,.status.trash{background:#542637}.table-action{text-decoration:none;font-weight:800}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px}.sticky-panel{position:sticky;top:92px;height:max-content}.code-editor{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.publish-button{background:var(--success)}.danger-secondary{background:transparent;color:var(--danger);border:1px solid var(--danger)}.danger{background:var(--danger)}.admin-preview-image{width:100%;border-radius:12px}.admin-filter{grid-template-columns:minmax(240px,1fr) 170px 220px auto auto}
@media(max-width:950px){.portal-grid,.blog-dynamic-layout,.editor-layout{grid-template-columns:1fr}.sticky-panel{position:static}.stat-grid{grid-template-columns:repeat(3,1fr)}.published-grid{grid-template-columns:1fr}.admin-header{align-items:flex-start;flex-direction:column}.admin-filter,.search-bar{grid-template-columns:1fr}}
@media(max-width:600px){.form-two{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}.admin-main{padding:20px}.portal-shell{padding:16px}.portal-card,.admin-panel{padding:18px}.admin-title{align-items:flex-start;flex-direction:column}}


/* ===== v10.2 Blog integration ===== */
.blog-journal-hero .button-row{
  margin-top:28px;
}
.blog-topic-section{
  padding-bottom:10px;
}
.topic-chip-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-top:22px;
}
.topic-chip{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:16px 18px;
  border:1px solid var(--line);
  border-radius:14px;
  background:linear-gradient(145deg,var(--panel2),var(--panel));
  color:var(--text);
  text-decoration:none;
  font-weight:800;
}
.topic-chip span{
  min-width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#0f1325;
  color:var(--teal);
}
.topic-chip:hover{
  transform:translateY(-2px);
  border-color:var(--accent);
}
.contributor-callout-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:28px;
}
.contributor-callout-card h2{
  margin-top:4px;
}
@media(max-width:950px){
  .topic-chip-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:650px){
  .topic-chip-grid{
    grid-template-columns:1fr;
  }
  .contributor-callout-card{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* ===== v10.3 contributor preference, image tools, and published organization ===== */
.email-opt-status{
  padding:12px 14px;
  border-radius:10px;
  border:1px solid var(--line);
  background:#101427;
}
.email-opt-status.opted-in{
  border-color:#2c8d68;
  background:#123c30;
}
.email-opt-status.not-opted-in{
  border-color:#725f2a;
  background:#332b16;
}
.image-tools{
  display:grid;
  gap:10px;
}
.image-tool-buttons{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
}
.image-tool-buttons .button{
  padding:9px 8px;
  font-size:.85rem;
}
.published-topic-summary{
  margin-bottom:22px;
}
.topic-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-top:18px;
}
.topic-summary-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#101427;
  color:var(--text);
  text-decoration:none;
}
.topic-summary-card span{
  min-width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#242a49;
  color:var(--teal);
  font-weight:800;
}
.topic-summary-card.active{
  border-color:var(--accent);
  box-shadow:0 0 0 1px var(--accent);
}
@media(max-width:950px){
  .topic-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .topic-summary-grid{grid-template-columns:1fr}
  .image-tool-buttons{grid-template-columns:1fr}
}


/* ===== v10.4 Compact dashboard and denser publisher grid ===== */

/* Dashboard: smaller panels and rows so summaries stay compact. */
.admin-body .admin-panel{
  padding:20px;
  border-radius:16px;
}
.admin-body .admin-panel + .admin-panel{
  margin-top:18px;
}
.admin-body .panel-heading{
  gap:16px;
}
.admin-body .panel-heading h2{
  margin:0;
  font-size:1.65rem;
}
.admin-body .panel-heading p{
  margin:.25rem 0 0;
  font-size:.88rem;
}
.admin-body table th,
.admin-body table td{
  padding:10px 12px;
}
.admin-body table th{
  font-size:.85rem;
}
.admin-body table td{
  font-size:.92rem;
}
.admin-body table td small{
  margin-top:3px;
  font-size:.8rem;
}
.admin-body .status{
  padding:4px 8px;
  font-size:.78rem;
}
.admin-body .table-action{
  font-size:.88rem;
}
.admin-body .responsive-table{
  max-height:430px;
}

/* Public blog: more article cards across each row. */
.published-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.published-card{
  border-radius:14px;
}
.published-card img{
  height:160px;
}
.published-card-body{
  padding:16px;
}
.published-card h2{
  font-size:1.15rem;
  line-height:1.25;
  margin:.45rem 0 .6rem;
}
.published-card p{
  font-size:.9rem;
  line-height:1.45;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.published-card .byline,
.published-card .blog-date{
  font-size:.78rem;
}
.blog-dynamic-layout{
  grid-template-columns:minmax(0,1fr) 285px;
  gap:22px;
}

@media(min-width:1450px){
  .published-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}

@media(max-width:1100px){
  .published-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:700px){
  .published-grid{
    grid-template-columns:1fr;
  }
  .published-card img{
    height:190px;
  }
}


/* ===== v10.5 Published admin grid ===== */
.admin-published-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:20px;
}
.admin-published-card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:16px;
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.admin-published-card h3{
  font-size:1.05rem;
  line-height:1.35;
  margin:0;
}
.admin-published-card .summary{
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
  font-size:.9rem;
}
.admin-published-card .meta{
  font-size:.82rem;
  color:var(--muted);
}
@media (max-width:1200px){
  .admin-published-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:700px){
  .admin-published-grid{grid-template-columns:1fr;}
}


/* ===== v10.6 Complete published-card archive ===== */
.admin-published-card{
  overflow:hidden;
  padding:0;
  min-width:0;
}
.admin-published-thumb{
  width:100%;
  height:150px;
  display:block;
  object-fit:cover;
  background:#101427;
  border-bottom:1px solid var(--line);
}
.admin-published-thumb.placeholder{
  display:grid;
  place-items:center;
  font-size:2rem;
  color:var(--teal);
}
.admin-published-card-body{
  display:grid;
  gap:11px;
  padding:16px;
}
.admin-published-topline{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
.featured-badge{
  padding:4px 8px;
  border-radius:999px;
  background:#4c376f;
  color:#f1e8ff;
  font-size:.75rem;
  font-weight:800;
}
.admin-published-card h3{
  min-height:2.7em;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.admin-published-card .summary{
  min-height:5.2em;
  margin:0;
}
.meta-list{
  display:grid;
  gap:7px;
  padding-top:4px;
  border-top:1px solid var(--line);
}
.meta-list div{
  display:flex;
  justify-content:space-between;
  gap:12px;
  font-size:.82rem;
}
.meta-list strong{
  color:var(--muted);
}
.meta-list span{
  text-align:right;
}
.admin-published-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  margin-top:3px;
}
.admin-published-actions .button{
  padding:9px 10px;
  font-size:.83rem;
}
@media(max-width:700px){
  .admin-published-actions{
    grid-template-columns:1fr;
  }
}


/* ===== v10.7 All Articles compact card layout ===== */
.admin-article-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:20px;
}

.admin-article-card{
  min-width:0;
  display:grid;
  gap:11px;
  padding:17px;
  background:linear-gradient(145deg,var(--panel2),var(--panel));
  border:1px solid var(--line);
  border-radius:16px;
}

.admin-article-card-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}

.admin-article-date{
  color:var(--muted);
  font-size:.78rem;
}

.admin-article-card h3{
  margin:0;
  font-size:1.05rem;
  line-height:1.35;
  min-height:2.7em;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.admin-article-card .summary{
  margin:0;
  min-height:5.2em;
  font-size:.9rem;
  line-height:1.45;
  color:var(--muted);
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.admin-article-card .meta-list{
  margin-top:2px;
}

.admin-article-card .meta-list span{
  max-width:68%;
  overflow-wrap:anywhere;
}

.admin-article-card .admin-published-actions{
  grid-template-columns:1fr;
}

@media(max-width:1200px){
  .admin-article-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:700px){
  .admin-article-grid{
    grid-template-columns:1fr;
  }
}


/* ===== v10.8 Empty state ===== */
.empty-state{
  margin-top:20px;
  text-align:center;
  padding:34px;
}
.empty-state h2{
  margin:0 0 8px;
}
.empty-state p{
  margin:0;
  color:var(--muted);
}


/* ===== v10.9 Submission callout button overflow fix ===== */
.blog-dynamic-layout aside{
  min-width:0;
}

.blog-dynamic-layout aside .portal-card{
  min-width:0;
  overflow:hidden;
}

.blog-dynamic-layout aside .button{
  width:100%;
  max-width:100%;
  white-space:normal;
  text-align:center;
  line-height:1.25;
  padding:12px 14px;
  overflow-wrap:anywhere;
}

@media(max-width:1200px){
  .blog-dynamic-layout{
    grid-template-columns:minmax(0,1fr) 250px;
  }
}

@media(max-width:950px){
  .blog-dynamic-layout{
    grid-template-columns:1fr;
  }

  .blog-dynamic-layout aside .button{
    width:auto;
    min-width:220px;
  }
}


/* ===== v11.0 Definitive blog submission card overflow fix ===== */
.blog-dynamic-layout{
  align-items:start;
}

.blog-submit-aside{
  min-width:0;
  width:100%;
  max-width:100%;
}

.blog-submit-card{
  min-width:0;
  width:100%;
  max-width:100%;
  padding:24px;
  overflow:hidden;
}

.blog-submit-card h2{
  margin:0 0 16px;
  max-width:100%;
  font-size:clamp(2rem,3.1vw,3.35rem);
  line-height:.96;
  overflow-wrap:anywhere;
  word-break:normal;
  hyphens:auto;
}

.blog-submit-card p{
  max-width:100%;
  overflow-wrap:anywhere;
}

.blog-submit-card .button{
  display:flex;
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  white-space:normal;
  text-align:center;
  line-height:1.2;
  padding:12px 14px;
  overflow-wrap:anywhere;
}

@media(min-width:951px){
  .blog-dynamic-layout{
    grid-template-columns:minmax(0,1fr) minmax(260px,320px);
  }
}

@media(max-width:950px){
  .blog-submit-card{
    width:min(100%,520px);
  }
}


/* ===== v11.2 Editorial header logo ===== */
.admin-logo-mark{
  width:28px;
  height:28px;
  display:inline-grid;
  place-items:center;
  border:1px solid var(--teal);
  border-radius:50%;
  overflow:hidden;
  vertical-align:middle;
  margin-right:8px;
}
.admin-logo-mark img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
