:root { --library-blue: #07101e; --library-panel: #0d1828; }
.library-page { background: radial-gradient(circle at 78% 8%, rgba(244,196,48,.09), transparent 28rem), var(--library-blue); }
.library-header { background: rgba(7,16,30,.92); }
.library-header .desktop-nav .active { color: var(--yellow-strong); }
.header-contribute { min-height: 40px; padding: .55rem 1rem; font-size: .76rem; }
.library-hero { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(340px,.65fr); gap:clamp(2rem,7vw,7rem); align-items:center; padding:clamp(4.5rem,7vw,7rem) clamp(1.25rem,6vw,6rem) clamp(3.5rem,6vw,5.5rem); max-width:1540px; margin:auto; }
.library-hero-copy h1 { margin:0; font-size:clamp(4rem,10vw,9rem); line-height:.82; letter-spacing:-.075em; }
.library-hero-copy h1 span { color:var(--yellow-strong); }
.library-hero-copy > p:last-of-type { max-width:720px; margin:2rem 0 0; color:#bcbcb5; font-size:clamp(1rem,1.6vw,1.22rem); }
.library-hero-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; }
.library-principle-card { position:relative; padding:clamp(1.6rem,4vw,2.7rem); overflow:hidden; border:1px solid rgba(244,196,48,.28); border-radius:30px; background:linear-gradient(145deg,rgba(244,196,48,.08),rgba(13,24,40,.94)); box-shadow:0 35px 90px rgba(0,0,0,.3); }
.principle-index { position:absolute; right:1.2rem; top:.4rem; color:rgba(244,196,48,.1); font-size:6rem; font-weight:900; line-height:1; }
.library-principle-card h2 { margin:.2rem 0 .6rem; font-size:clamp(2rem,4vw,3.4rem); letter-spacing:-.055em; }
.library-principle-card > p:not(.eyebrow) { color:var(--muted); }
.library-principle-card ol { display:grid; gap:.7rem; margin:1.5rem 0 0; padding:0; list-style:none; }
.library-principle-card li { display:flex; align-items:center; gap:.75rem; padding:.72rem; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.025); color:#d7d7d1; font-size:.83rem; }
.library-principle-card li span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:var(--yellow); color:#111; font-weight:900; }
.library-kpis { display:grid; grid-template-columns:repeat(4,1fr); max-width:1440px; margin:0 auto; border:1px solid var(--line); border-radius:24px; overflow:hidden; background:var(--line); }
.library-kpis article { display:flex; min-height:145px; flex-direction:column; justify-content:center; padding:1.5rem 2rem; background:rgba(13,24,40,.96); }
.library-kpis article+article { border-left:1px solid var(--line); }
.library-kpis strong { color:var(--yellow-strong); font-size:clamp(2rem,4vw,3.2rem); letter-spacing:-.05em; }
.library-kpis span { color:var(--muted); font-size:.78rem; }
.library-catalog { max-width:1540px; margin:auto; }
.library-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:2rem; }
.library-section-heading h2 { margin:0; font-size:clamp(2.2rem,5vw,4.5rem); line-height:1; letter-spacing:-.052em; }
.library-section-heading > p { max-width:520px; margin:0; color:var(--muted); font-size:.87rem; }
.library-section-heading.compact h2 { font-size:clamp(2rem,4vw,3.6rem); }
.library-filters { display:grid; grid-template-columns:minmax(260px,1.6fr) repeat(3,minmax(155px,.6fr)); gap:.75rem; align-items:end; padding:1rem; border:1px solid var(--line); border-radius:18px; background:rgba(13,24,40,.72); }
.library-filters .field { margin:0; }
.library-filters label { font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; }
.library-search-field { position:relative; align-self:end; }
.library-search-field span { position:absolute; left:.95rem; top:50%; transform:translateY(-50%); color:var(--yellow-strong); font-size:1.4rem; }
.library-search-field input { width:100%; min-height:48px; padding:.7rem .9rem .7rem 2.7rem; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); color:var(--text); }
.catalog-toolbar { display:flex; justify-content:space-between; gap:1rem; margin:1.3rem 0 .8rem; color:var(--muted); font-size:.78rem; }
.catalog-toolbar p { margin:0; }
.library-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.library-card { display:flex; min-width:0; flex-direction:column; overflow:hidden; border:1px solid var(--line); border-radius:20px; background:linear-gradient(150deg,rgba(255,255,255,.03),rgba(13,24,40,.92)); transition:transform .18s ease,border-color .18s ease; }
.library-card:hover { transform:translateY(-5px); border-color:rgba(244,196,48,.32); }
.book-cover { position:relative; min-height:218px; display:flex; flex-direction:column; justify-content:space-between; padding:1.25rem; overflow:hidden; background:linear-gradient(145deg,color-mix(in srgb,var(--cover-color) 68%,#07101e),#07101e 85%); }
.book-cover:after { content:""; position:absolute; width:220px; height:220px; right:-95px; top:-75px; border:1px solid rgba(255,255,255,.2); border-radius:50%; box-shadow:0 0 0 34px rgba(255,255,255,.035),0 0 0 68px rgba(255,255,255,.02); }
.book-cover-brand { position:relative; z-index:1; display:flex; align-items:center; gap:.55rem; font-size:.66rem; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }
.book-cover-brand img { width:31px; height:20px; object-fit:contain; }
.book-cover h3 { position:relative; z-index:1; max-width:13ch; margin:2.7rem 0 .6rem; font-size:1.55rem; line-height:1.02; letter-spacing:-.04em; }
.book-cover-meta { position:relative; z-index:1; color:rgba(255,255,255,.72); font-size:.68rem; }
.library-card-body { display:flex; flex:1; flex-direction:column; padding:1.15rem; }
.library-card-tags { display:flex; flex-wrap:wrap; gap:.4rem; }
.library-card-tags span { padding:.22rem .5rem; border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:.62rem; }
.library-card-status { color:var(--success)!important; border-color:rgba(99,210,157,.25)!important; }
.library-card-body > p { min-height:2.5rem; margin:.8rem 0; color:var(--muted); font-size:.76rem; }
.library-card-info { display:flex; justify-content:space-between; gap:.8rem; margin-top:auto; padding-top:.8rem; border-top:1px solid var(--line); color:#777; font-size:.64rem; }
.library-card-actions { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; margin-top:.85rem; }
.library-card-actions .button:last-child { grid-column:1 / -1; }
.library-card-actions .button { min-height:40px; padding:.55rem .7rem; font-size:.68rem; }
.library-empty { padding:4rem 1rem; border:1px dashed var(--line); border-radius:20px; text-align:center; }
.library-empty p { color:var(--muted); }
.contribution-banner { display:flex; align-items:center; justify-content:space-between; gap:2rem; max-width:1320px; margin:2rem auto 0; padding:clamp(2rem,5vw,4rem); border:1px solid rgba(244,196,48,.3); border-radius:30px; background:linear-gradient(135deg,rgba(244,196,48,.14),rgba(13,24,40,.9)); }
.contribution-banner h2 { max-width:820px; margin:0; font-size:clamp(2rem,4.5vw,4rem); line-height:1.03; letter-spacing:-.05em; }
.contribution-banner p:last-child { max-width:720px; color:var(--muted); }
.pending-contribution { display:flex; align-items:center; justify-content:space-between; gap:2rem; max-width:1320px; margin:2rem auto 0; padding:1.35rem 1.5rem; border:1px solid rgba(99,210,157,.32); border-radius:20px; background:rgba(99,210,157,.065); }
.pending-contribution h2 { margin:.1rem 0 .35rem; font-size:clamp(1.4rem,3vw,2.2rem); letter-spacing:-.035em; }
.pending-contribution p { margin:0; color:var(--muted); font-size:.78rem; }
.prototype-admin { max-width:1540px; margin:auto; }
.prototype-admin .library-section-heading h1 { margin:0; font-size:clamp(2.4rem,5vw,4.8rem); line-height:1; letter-spacing:-.052em; }
.admin-page .prototype-admin { min-height:calc(100svh - 150px); padding-top:clamp(6rem,10vw,9rem); }
.admin-summary { display:grid; grid-template-columns:repeat(5,1fr); gap:.75rem; margin-bottom:1rem; }
.admin-summary article { padding:1.2rem; border:1px solid var(--line); border-radius:14px; background:var(--library-panel); }
.admin-summary span,.admin-summary strong { display:block; }
.admin-summary span { color:var(--muted); font-size:.7rem; }
.admin-summary strong { margin-top:.2rem; color:var(--yellow-strong); font-size:1.8rem; }
.admin-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:18px; background:var(--library-panel); }
.admin-table { width:100%; border-collapse:collapse; min-width:850px; }
.admin-table th,.admin-table td { padding:.9rem 1rem; border-bottom:1px solid var(--line); text-align:left; font-size:.74rem; }
.admin-table th { color:#777; letter-spacing:.07em; text-transform:uppercase; }
.admin-status { display:inline-flex; padding:.24rem .55rem; border-radius:999px; background:rgba(244,196,48,.1); color:var(--yellow-strong); font-weight:800; }
.admin-status.approved { background:rgba(99,210,157,.1); color:var(--success); }
.admin-status.rejected { background:rgba(255,139,139,.1); color:var(--danger); }
.admin-status.changes_requested { background:rgba(96,165,250,.1); color:#93c5fd; }
.admin-actions { display:flex; gap:.4rem; }
.admin-actions button { padding:.35rem .55rem; border:1px solid var(--line); border-radius:8px; background:rgba(255,255,255,.03); color:var(--text); cursor:pointer; font-size:.66rem; }
.admin-actions button:hover { border-color:rgba(244,196,48,.35); }
.admin-file-name { display:inline-block; max-width:390px; margin-top:.25rem; overflow-wrap:anywhere; color:#718096; }
.admin-empty { padding:2rem; color:var(--muted); text-align:center; font-size:.8rem; }
.admin-security { display:grid; grid-template-columns:minmax(220px,1.15fr) minmax(180px,.75fr) minmax(210px,.9fr) auto; gap:.8rem; align-items:end; margin-bottom:1rem; padding:1rem; border:1px solid rgba(99,210,157,.24); border-radius:16px; background:rgba(99,210,157,.045); }
.admin-security > div { display:flex; align-items:center; gap:.7rem; align-self:center; }
.admin-security strong,.admin-security small { display:block; }
.admin-security small { margin-top:.15rem; color:var(--muted); font-size:.66rem; }
.admin-security label { color:var(--muted); font-size:.66rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.admin-security input { width:100%; min-height:42px; margin-top:.35rem; padding:.55rem .7rem; border:1px solid var(--line); border-radius:9px; color:var(--text); background:rgba(7,16,30,.82); }
.admin-live-dot { width:11px; height:11px; border-radius:50%; background:var(--success); box-shadow:0 0 0 5px rgba(99,210,157,.12); }
.admin-message { margin:0 0 1rem; padding:.8rem 1rem; border:1px solid var(--line); border-radius:12px; color:var(--muted); background:rgba(255,255,255,.03); font-size:.76rem; }
.admin-message.success { border-color:rgba(99,210,157,.25); color:var(--success); background:rgba(99,210,157,.06); }
.admin-message.error { border-color:rgba(255,139,139,.25); color:var(--danger); background:rgba(255,139,139,.06); }
.admin-hash { color:#93c5fd; font:700 .69rem ui-monospace,SFMono-Regular,Consolas,monospace; }
.admin-actions { align-items:center; }
.admin-actions .button { min-height:31px; padding:.35rem .55rem; }
.decision-complete { color:var(--muted); font-size:.67rem; }
.decision-dialog { width:min(780px,calc(100% - 1.5rem)); }
.decision-facts { display:grid; grid-template-columns:1fr .6fr 1.6fr; gap:.65rem; margin:1.2rem 0; }
.decision-facts div { min-width:0; padding:.7rem .8rem; border:1px solid var(--line); border-radius:10px; background:rgba(255,255,255,.025); }
.decision-facts dt { color:var(--muted); font-size:.58rem; letter-spacing:.08em; text-transform:uppercase; }
.decision-facts dd { margin:.3rem 0 0; overflow-wrap:anywhere; color:var(--text); font:750 .69rem ui-monospace,SFMono-Regular,Consolas,monospace; }
.decision-dialog textarea { width:100%; resize:vertical; padding:.75rem; border:1px solid var(--line); border-radius:10px; color:var(--text); background:rgba(7,16,30,.86); font:inherit; }
.decision-actions { display:grid; grid-template-columns:.65fr 1fr 1.2fr; gap:.65rem; margin-top:1rem; }
.decision-button { border:1px solid var(--line); color:var(--text); background:rgba(255,255,255,.04); cursor:pointer; }
.decision-button.is-reject { border-color:rgba(255,139,139,.3); color:#ffb0b0; }
.decision-button.is-changes { border-color:rgba(147,197,253,.3); color:#bfdbfe; }
.decision-warning { margin:1rem 0 0; color:var(--muted); font-size:.69rem; }
.library-footer { background:#050b14; }
.contribution-dialog { width:min(760px,calc(100% - 1.5rem)); max-height:calc(100vh - 2rem); margin:auto; padding:0; overflow:auto; border:1px solid rgba(244,196,48,.3); border-radius:26px; background:#0e1725; color:var(--text); box-shadow:var(--shadow); }
.contribution-shell,.success-shell { position:relative; padding:clamp(1.3rem,4vw,2.5rem); }
.contribution-close { position:absolute; right:1rem; top:1rem; }
.contribution-shell h2,.success-shell h2 { margin:.15rem 0 .5rem; font-size:clamp(1.8rem,4vw,2.8rem); letter-spacing:-.045em; }
.dialog-intro { max-width:620px; color:var(--muted); font-size:.82rem; }
.contribution-curriculum-fields { margin-top:.15rem; padding:0 1rem 1rem; border:1px solid rgba(244,196,48,.2); border-radius:16px; background:rgba(244,196,48,.035); }
.contribution-upload-section { margin-top:1rem; }
.canonical-file-preview { display:flex; flex-direction:column; gap:.22rem; padding:.85rem 1rem; border:1px solid rgba(99,210,157,.28); border-radius:13px; background:rgba(99,210,157,.055); }
.canonical-file-preview span { color:var(--success); font-size:.63rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.canonical-file-preview strong { overflow-wrap:anywhere; color:var(--text); font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.76rem; }
.canonical-file-preview small { color:var(--muted); font-size:.66rem; }
.file-drop { display:flex!important; min-height:110px; align-items:center; justify-content:center; flex-direction:column; gap:.2rem; border:1px dashed rgba(244,196,48,.4)!important; border-radius:14px; background:rgba(244,196,48,.045); cursor:pointer; }
.file-drop > span { color:var(--yellow-strong); font-size:.7rem; letter-spacing:.1em; }
.file-drop strong { font-size:.9rem; }
.file-drop small { color:var(--muted); font-size:.68rem; }
.contribution-shell #contribution-package { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.consent-field { margin:1rem 0 0; padding:0; border:0; }
.consent-field legend { margin-bottom:.55rem; font-size:.85rem; font-weight:800; }
.consent-field label { display:flex; align-items:flex-start; gap:.7rem; padding:.8rem; margin-top:.5rem; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.025); cursor:pointer; }
.consent-field input { margin-top:.22rem; accent-color:var(--yellow); }
.consent-field span { display:flex; flex-direction:column; }
.consent-field strong { font-size:.8rem; }
.consent-field small { color:var(--muted); font-size:.68rem; }
.privacy-check { display:flex; align-items:flex-start; gap:.65rem; margin-top:1rem; color:var(--muted); font-size:.75rem; }
.privacy-check input { margin-top:.22rem; accent-color:var(--yellow); }
.contribution-progress { width:100%; height:.65rem; margin-top:.9rem; accent-color:var(--success); }
.contribution-progress-status { min-height:1.4em; margin-top:.25rem; color:var(--muted); font-size:.7rem; }
.success-shell { text-align:center; }
.success-check { display:grid; place-items:center; width:62px; height:62px; margin:0 auto 1rem; border-radius:50%; background:var(--success); color:#06150f; font-size:1.7rem; font-weight:900; }
.success-shell > strong { display:inline-block; padding:.55rem .9rem; border:1px solid rgba(244,196,48,.3); border-radius:10px; color:var(--yellow-strong); font-family:ui-monospace,monospace; letter-spacing:.08em; }
.success-shell #contribution-saved-file-name { max-width:100%; overflow-wrap:anywhere; letter-spacing:0; font-size:.72rem; }
.success-note { color:var(--muted); font-size:.75rem; }
.html-library-hero code,.html-contribution-banner code { padding:.08rem .3rem; border:1px solid rgba(255,255,255,.12); border-radius:5px; color:var(--yellow-strong); background:rgba(0,0,0,.18); font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.78em; }
.html-library-filters { grid-template-columns:minmax(240px,1.5fr) repeat(3,minmax(150px,.7fr)); }
.preview-mode-banner { display:flex; flex-wrap:wrap; gap:.55rem 1rem; margin:0 0 1rem; padding:.85rem 1rem; border:1px solid rgba(244,196,48,.34); border-radius:12px; color:var(--muted); background:rgba(244,196,48,.07); font-size:.76rem; }
.preview-mode-banner strong { color:var(--yellow-strong); }
.lesson-library-card { display:grid; grid-template-columns:82px minmax(0,1fr); min-height:260px; }
.lesson-card-band { display:flex; align-items:center; flex-direction:column; gap:.25rem; padding:1.1rem .6rem; color:#fff; background:linear-gradient(180deg,var(--lesson-color),#07101e); }
.lesson-card-band span { writing-mode:vertical-rl; transform:rotate(180deg); margin:auto; font:800 1.05rem ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.09em; }
.lesson-card-band small { color:rgba(255,255,255,.68); font-size:.64rem; }
.lesson-library-card .library-card-body h3 { margin:.65rem 0 0; color:var(--text); font-size:1.25rem; line-height:1.15; letter-spacing:-.025em; }
.lesson-library-card .lesson-card-path { min-height:auto; margin:.75rem 0 0; color:var(--muted); font-size:.69rem; line-height:1.5; }
.lesson-library-card .library-card-body > p:last-of-type { min-height:auto; margin:.65rem 0 0; }
.library-card-status.is-preview { color:var(--yellow-strong)!important; border-color:rgba(244,196,48,.28)!important; }
.library-card-status.is-demo { color:#ffb4b4!important; border-color:rgba(255,139,139,.42)!important; background:rgba(255,139,139,.08); }
.admin-login { display:grid; min-height:calc(100svh - 150px); place-items:center; padding-top:clamp(7rem,12vw,10rem); }
.admin-login-card { width:min(520px,100%); padding:clamp(1.5rem,5vw,2.8rem); border:1px solid rgba(244,196,48,.3); border-radius:26px; background:linear-gradient(145deg,rgba(244,196,48,.08),rgba(13,24,40,.96)); box-shadow:0 35px 90px rgba(0,0,0,.32); }
.admin-login-card h1 { margin:.2rem 0 .75rem; font-size:clamp(2.2rem,6vw,3.8rem); line-height:.96; letter-spacing:-.055em; }
.admin-login-card > p:not(.eyebrow) { margin:0 0 1.3rem; color:var(--muted); }
.admin-login-card .button { width:100%; margin-top:.3rem; }
.admin-workflow { display:grid; grid-template-columns:minmax(260px,.75fr) minmax(380px,1.25fr); gap:clamp(1.5rem,5vw,4rem); margin:1.2rem 0 2.2rem; padding:clamp(1.2rem,4vw,2.2rem); border:1px solid rgba(244,196,48,.25); border-radius:22px; background:linear-gradient(135deg,rgba(244,196,48,.07),rgba(13,24,40,.9)); }
.admin-workflow h2,.admin-table-heading h2 { margin:.15rem 0 .6rem; font-size:clamp(1.7rem,3vw,2.6rem); letter-spacing:-.04em; }
.admin-workflow p:not(.eyebrow) { color:var(--muted); font-size:.78rem; }
.admin-import-form .field { margin-top:.7rem; }
.admin-import-form .file-drop { margin-top:.8rem; }
.admin-import-form > .button { width:100%; margin-top:.8rem; }
.admin-table-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin:1.5rem 0 .8rem; }
.admin-table-heading h2 { margin:0; }
.admin-demo-warning { margin:1rem 0 0; padding:1rem; border:1px solid rgba(255,139,139,.26); border-radius:12px; color:#d8b6b6; background:rgba(255,139,139,.055); font-size:.72rem; }
@media(max-width:900px){.admin-workflow{grid-template-columns:1fr}}
.lesson-library-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:980px){.html-library-filters{grid-template-columns:1fr 1fr}.lesson-library-grid{grid-template-columns:1fr}}
@media(max-width:1100px){.library-grid{grid-template-columns:repeat(2,1fr)}.library-filters{grid-template-columns:1fr 1fr}.library-hero{grid-template-columns:1fr}.library-principle-card{max-width:720px}.library-kpis{margin-inline:1.25rem}}
@media(max-width:1100px){.admin-security{grid-template-columns:1fr 1fr}.admin-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.header-contribute{display:none}.library-hero{padding-top:5rem}.library-kpis{grid-template-columns:1fr 1fr}.library-kpis article+article{border-left:0}.library-kpis article:nth-child(even){border-left:1px solid var(--line)}.library-kpis article:nth-child(n+3){border-top:1px solid var(--line)}.library-section-heading,.contribution-banner,.pending-contribution{align-items:flex-start;flex-direction:column}.admin-summary{grid-template-columns:1fr 1fr}.decision-facts,.decision-actions{grid-template-columns:1fr}}
@media(max-width:560px){.library-hero-copy h1{font-size:clamp(3.6rem,22vw,6.5rem)}.library-hero-actions{flex-direction:column}.library-hero-actions .button{width:100%}.library-grid,.library-filters{grid-template-columns:1fr}.library-kpis{grid-template-columns:1fr}.library-kpis article:nth-child(even){border-left:0}.library-kpis article+article{border-top:1px solid var(--line)}.admin-summary{grid-template-columns:1fr 1fr}.library-card-actions{grid-template-columns:1fr}.library-card-actions .button:last-child{grid-column:auto}}
@media(max-width:980px){.lesson-library-grid{grid-template-columns:1fr}}
@media(max-width:620px){.lesson-library-card{grid-template-columns:62px minmax(0,1fr)}.lesson-library-card .library-card-actions{grid-template-columns:1fr}}
@media(max-width:560px){.admin-security{grid-template-columns:1fr}}
