Replace chatbot with Q&A and add archived series management

This commit is contained in:
nmemmert
2026-04-16 08:25:04 -04:00
parent 50459b7234
commit 287fa72462
5 changed files with 1259 additions and 2132 deletions
+386 -194
View File
@@ -427,6 +427,143 @@
padding: 0;
}
.section-archive-series {
background: #0b0b0b;
border-top: 1px solid rgba(200, 134, 10, 0.12);
padding: 4.5rem 0;
}
.archive-series-rotator {
display: grid;
grid-template-columns: auto 1fr auto;
gap: 0.75rem;
align-items: center;
}
.archive-rotate-btn {
width: 2.3rem;
height: 2.3rem;
border-radius: 999px;
border: 1px solid rgba(200, 134, 10, 0.4);
background: rgba(200, 134, 10, 0.08);
color: #c8860a;
font-size: 1.4rem;
line-height: 1;
cursor: pointer;
}
.archive-rotate-btn:hover {
background: rgba(200, 134, 10, 0.16);
}
.archive-series-list {
overflow: hidden;
}
.archive-series-track {
display: flex;
transition: transform 450ms ease;
}
.archive-series-card {
min-width: 100%;
display: grid;
grid-template-columns: 180px 1fr;
gap: 1.5rem;
background: #121212;
border: 1px solid rgba(200, 134, 10, 0.18);
border-radius: 18px;
padding: 1.5rem;
}
.archive-series-art {
width: 100%;
border-radius: 12px;
box-shadow: 0 8px 28px rgba(200, 134, 10, 0.16);
}
.archive-series-copy h3 {
font-family: 'Playfair Display', Georgia, serif;
color: #f0e6d0;
margin: 0 0 0.75rem;
font-size: clamp(1.3rem, 2.2vw, 1.7rem);
}
.archive-series-copy p {
font-family: 'Barlow Condensed', sans-serif;
color: #a89060;
font-size: 1rem;
line-height: 1.7;
margin: 0 0 1rem;
}
.archive-series-actions {
display: flex;
flex-wrap: wrap;
gap: 0.8rem;
margin: 1rem 0;
}
.archive-series-study-guide {
color: #b7a27a;
}
.archive-series-resources,
.archive-series-notes {
margin-top: 1.25rem;
}
.archive-series-resources h4,
.archive-series-note h4 {
margin: 0 0 0.6rem;
font-family: 'Barlow Condensed', sans-serif;
font-size: 0.9rem;
letter-spacing: 0.14em;
text-transform: uppercase;
color: #c8860a;
}
.archive-series-notes {
display: grid;
gap: 0.9rem;
}
.archive-series-note {
background: rgba(255, 255, 255, 0.03);
border: 1px solid rgba(200, 134, 10, 0.12);
border-radius: 12px;
padding: 1rem;
}
.archive-rotator-dots {
margin-top: 1rem;
display: flex;
justify-content: center;
gap: 0.45rem;
}
.archive-rotator-dot {
width: 0.52rem;
height: 0.52rem;
border: none;
border-radius: 999px;
background: rgba(168, 144, 96, 0.5);
cursor: pointer;
}
.archive-rotator-dot--active {
background: #c8860a;
}
.archive-rotator-count {
margin-top: 0.55rem;
text-align: center;
font-family: 'Barlow Condensed', sans-serif;
color: #a89060;
letter-spacing: 0.1em;
font-size: 0.8rem;
}
/* ── QR / Share ── */
.section-qr {
background: #0a0a0a;
@@ -1515,6 +1652,29 @@
gap: 0.4rem;
}
.admin-archive-helper {
background: #0d0d0d;
border: 1px solid rgba(200, 134, 10, 0.18);
border-radius: 10px;
padding: 1rem;
margin-bottom: 1rem;
}
.admin-archive-helper h3 {
margin: 0;
font-family: 'Playfair Display', Georgia, serif;
font-size: 1.15rem;
color: #f0e6d0;
}
.admin-archive-helper p {
margin: 0.55rem 0 0.9rem;
font-family: 'Barlow Condensed', sans-serif;
font-size: 0.95rem;
color: #a89060;
line-height: 1.55;
}
.admin-field label {
font-family: 'Barlow Condensed', sans-serif;
font-weight: 500;
@@ -1675,6 +1835,119 @@
gap: 0.75rem;
}
.admin-content-summary {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 0.75rem;
margin-top: 1rem;
}
.admin-summary-card {
background: #111;
border: 1px solid rgba(200, 134, 10, 0.16);
border-radius: 10px;
padding: 0.85rem 1rem;
}
.admin-summary-card h3 {
margin: 0;
font-family: 'Barlow Condensed', sans-serif;
font-size: 0.8rem;
letter-spacing: 0.16em;
text-transform: uppercase;
color: #c8860a;
}
.admin-summary-card p {
margin: 0.4rem 0 0;
font-family: 'Playfair Display', Georgia, serif;
font-size: 1.5rem;
color: #f0e6d0;
}
.admin-archive-card {
background: #0d0d0d;
border: 1px solid rgba(200, 134, 10, 0.15);
border-radius: 12px;
padding: 1rem;
margin-bottom: 1rem;
}
.admin-archive-card-head {
display: flex;
justify-content: space-between;
gap: 1rem;
align-items: flex-start;
margin-bottom: 1rem;
}
.admin-archive-card-head h4 {
margin: 0;
font-family: 'Playfair Display', Georgia, serif;
color: #f0e6d0;
font-size: 1.2rem;
}
.admin-archive-card-head p {
margin: 0.25rem 0 0;
font-family: 'Barlow Condensed', sans-serif;
color: #a89060;
letter-spacing: 0.12em;
text-transform: uppercase;
font-size: 0.78rem;
}
.admin-archive-subsection {
margin-top: 1.25rem;
padding-top: 1rem;
border-top: 1px solid rgba(200, 134, 10, 0.12);
}
.admin-archive-subsection-head {
display: flex;
justify-content: space-between;
gap: 1rem;
align-items: center;
flex-wrap: wrap;
margin-bottom: 0.85rem;
}
.admin-archive-subsection-head h5 {
margin: 0;
font-family: 'Barlow Condensed', sans-serif;
color: #c8860a;
font-size: 0.86rem;
letter-spacing: 0.14em;
text-transform: uppercase;
}
.admin-archive-subsection-actions {
display: flex;
gap: 0.55rem;
align-items: center;
flex-wrap: wrap;
}
.admin-archive-subsection-actions select {
background: #111;
border: 1px solid rgba(200, 134, 10, 0.22);
border-radius: 6px;
color: #f0e6d0;
font-family: 'Barlow Condensed', sans-serif;
font-size: 0.95rem;
font-weight: 300;
padding: 0.45rem 0.65rem;
outline: none;
}
.admin-archive-subsection-actions select:focus {
border-color: rgba(200, 134, 10, 0.65);
}
.admin-array-row--nested {
margin-bottom: 0.75rem;
}
.btn-admin-add {
background: transparent;
color: #c8860a;
@@ -1758,11 +2031,28 @@
gap: 1.5rem;
}
.archive-series-card {
grid-template-columns: 1fr;
}
.archive-series-rotator {
grid-template-columns: 1fr;
}
.archive-rotate-btn {
display: none;
}
.series-art {
max-width: 200px;
margin: 0 auto;
}
.archive-series-art {
max-width: 220px;
margin: 0 auto;
}
.guide-inner {
grid-template-columns: 1fr;
gap: 1.5rem;
@@ -1773,6 +2063,14 @@
margin: 0 auto;
}
.admin-content-summary {
grid-template-columns: 1fr;
}
.admin-archive-card-head {
flex-direction: column;
}
.qr-inner {
grid-template-columns: 1fr;
gap: 2.5rem;
@@ -1859,8 +2157,45 @@
border-top: 1px solid rgba(200, 134, 10, 0.15);
}
.qa-filters {
display: flex;
flex-direction: column;
gap: 1rem;
margin-bottom: 2rem;
}
.qa-topics {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.qa-topic-btn {
background: none;
border: 1px solid rgba(200, 134, 10, 0.35);
color: #a89060;
padding: 0.35rem 0.9rem;
border-radius: 2rem;
cursor: pointer;
font-size: 0.875rem;
font-family: 'Barlow', sans-serif;
transition: background 0.18s, border-color 0.18s, color 0.18s;
}
.qa-topic-btn:hover {
background: rgba(200, 134, 10, 0.1);
border-color: rgba(200, 134, 10, 0.6);
color: #e8d8b0;
}
.qa-topic-btn--active {
background: rgba(200, 134, 10, 0.18);
border-color: #c8860a;
color: #c8860a;
font-weight: 600;
}
.qa-search {
margin-bottom: 2.5rem;
display: flex;
gap: 1rem;
align-items: flex-end;
@@ -1873,10 +2208,16 @@
gap: 0.5rem;
}
.qa-search label span {
font-size: 0.95rem;
font-weight: 600;
color: #c8860a;
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
white-space: nowrap;
border: 0;
}
.qa-search input {
@@ -1895,91 +2236,79 @@
}
.qa-cards {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 1.75rem;
}
/* ── 3D flip card ── */
.qa-card-scene {
perspective: 1000px;
height: 260px;
}
.qa-card-inner {
position: relative;
width: 100%;
height: 100%;
transform-style: preserve-3d;
transition: transform 0.6s cubic-bezier(0.45, 0, 0.55, 1);
cursor: pointer;
border-radius: 0.5rem;
}
.qa-card-inner.flipped {
transform: rotateY(180deg);
}
.qa-card-face {
position: absolute;
inset: 0;
backface-visibility: hidden;
-webkit-backface-visibility: hidden;
border-radius: 0.5rem;
padding: 1.75rem;
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: center;
gap: 0.75rem;
border: 1px solid rgba(200, 134, 10, 0.25);
transition: border-color 0.2s ease;
}
.qa-card-inner:hover .qa-card-face {
/* ── Accordion card ── */
.qa-card-scene {
border: 1px solid rgba(200, 134, 10, 0.25);
border-radius: 0.5rem;
background: rgba(35, 30, 20, 0.85);
transition: border-color 0.2s ease;
overflow: hidden;
}
.qa-card-scene:hover {
border-color: rgba(200, 134, 10, 0.55);
}
.qa-card-inner {
width: 100%;
cursor: pointer;
}
.qa-card-face {
padding: 1.25rem 1.5rem;
}
.qa-card-front {
background: rgba(35, 30, 20, 0.85);
display: flex;
align-items: center;
gap: 1rem;
user-select: none;
}
.qa-card-back {
background: rgba(20, 30, 20, 0.92);
transform: rotateY(180deg);
overflow-y: auto;
border-top: 1px solid rgba(200, 134, 10, 0.2);
background: rgba(20, 28, 20, 0.7);
display: none;
}
.qa-card-inner.flipped .qa-card-back {
display: block;
}
.qa-face-label {
font-size: 2rem;
font-size: 1.3rem;
font-weight: 700;
color: #c8860a;
line-height: 1;
flex-shrink: 0;
width: 1.75rem;
}
.qa-question-text {
margin: 0;
font-size: 1rem;
line-height: 1.55;
font-size: 1.08rem;
line-height: 1.6;
color: #e8d8b0;
font-weight: 600;
flex: 1;
}
.qa-answer-text {
margin: 0;
font-size: 0.95rem;
line-height: 1.6;
color: #c8d8b0;
flex: 1;
overflow-y: auto;
font-size: 1.04rem;
line-height: 1.75;
color: #d4e8c8;
}
.qa-flip-hint {
font-size: 0.75rem;
color: #a89060;
margin-top: auto;
opacity: 0.75;
margin-left: auto;
flex-shrink: 0;
font-style: italic;
}
@@ -2456,140 +2785,3 @@
.chatbot-send:hover:not(:disabled) { background: #e8a91a; }
.chatbot-send:disabled { opacity: 0.35; cursor: default; }
/* ══════════════════════════════════════════════════════════
ADMIN — CHATBOT TAB
══════════════════════════════════════════════════════════ */
.admin-chatbot {
padding: 2rem;
}
.admin-chatbot-actions {
margin: 1.25rem 0;
}
.btn-admin-primary {
background: #c8860a;
color: #fff;
border: none;
border-radius: 0.35rem;
padding: 0.55rem 1.25rem;
font-size: 0.9rem;
cursor: pointer;
transition: background 0.2s;
}
.btn-admin-primary:hover:not(:disabled) { background: #e8a91a; }
.btn-admin-primary:disabled { opacity: 0.4; cursor: default; }
.admin-chatbot-editor {
background: rgba(50, 50, 50, 0.5);
border: 1px solid rgba(200, 134, 10, 0.25);
border-radius: 0.5rem;
padding: 1.5rem;
margin-bottom: 1.5rem;
display: flex;
flex-direction: column;
gap: 1rem;
}
.admin-chatbot-editor h3 {
margin: 0 0 0.5rem;
color: #c8860a;
font-size: 1rem;
}
.admin-chatbot-editor label {
display: flex;
flex-direction: column;
gap: 0.35rem;
font-size: 0.88rem;
color: #b0a080;
}
.admin-chatbot-editor input,
.admin-chatbot-editor select,
.admin-chatbot-editor textarea {
background: rgba(255,255,255,0.06);
border: 1px solid rgba(200, 134, 10, 0.3);
border-radius: 0.35rem;
color: #e8d8b0;
padding: 0.5rem 0.75rem;
font-size: 0.9rem;
outline: none;
transition: border-color 0.2s;
font-family: inherit;
}
.admin-chatbot-editor input:focus,
.admin-chatbot-editor select:focus,
.admin-chatbot-editor textarea:focus {
border-color: #c8860a;
}
.admin-chatbot-editor textarea {
resize: vertical;
min-height: 100px;
}
.admin-field-hint {
font-size: 0.78rem;
color: #7a6a50;
}
.admin-chatbot-editor-btns {
display: flex;
gap: 0.75rem;
flex-wrap: wrap;
}
.admin-chatbot-list {
display: flex;
flex-direction: column;
gap: 1rem;
}
.admin-chatbot-card {
background: rgba(50, 50, 50, 0.45);
border: 1px solid rgba(200, 134, 10, 0.18);
border-radius: 0.45rem;
padding: 1rem 1.25rem;
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.admin-chatbot-card-head {
display: flex;
align-items: center;
gap: 0.65rem;
flex-wrap: wrap;
}
.admin-chatbot-title {
font-size: 0.95rem;
color: #e8d8b0;
font-weight: 500;
}
.admin-badge--topic { background: rgba(30,100,180,0.3); color: #88aaff; border: 1px solid rgba(100,160,255,0.3); }
.admin-badge--episode { background: rgba(100,60,180,0.3); color: #cc99ff; border: 1px solid rgba(160,100,255,0.3); }
.admin-chatbot-preview {
font-size: 0.85rem;
color: #9a8a6a;
margin: 0;
line-height: 1.5;
}
.admin-chatbot-keywords {
font-size: 0.78rem;
color: #7a6a50;
margin: 0;
}
.admin-empty-msg {
color: #7a6a50;
font-style: italic;
padding: 1rem 0;
}