diff --git a/frontend/textbooks/geometry_9_hub.html b/frontend/textbooks/geometry_9_hub.html index fab9172..9a87adf 100644 --- a/frontend/textbooks/geometry_9_hub.html +++ b/frontend/textbooks/geometry_9_hub.html @@ -140,6 +140,65 @@ main{max-width:1100px;margin:0 auto;padding:32px 24px 60px} .boss-overall-bar .lab{font-weight:700;font-size:.95rem;color:var(--text);min-width:200px} .boss-overall-bar .bar{flex:1;min-width:160px;height:9px;background:rgba(225,29,72,.12);border-radius:5px;overflow:hidden} .boss-overall-bar .fill{height:100%;background:linear-gradient(90deg,#e11d48,#fb7185,#f59e0b);transition:width .5s;border-radius:5px} + +/* CHEAT SHEET */ +.cheat-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:28px} +@media(min-width:680px){.cheat-grid{grid-template-columns:1fr 1fr}} +.cheat-card{border:1.5px solid var(--border);border-radius:13px;padding:14px 16px;background:var(--card);position:relative;overflow:hidden} +.cheat-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px} +.cheat-card.c1::before{background:linear-gradient(180deg,var(--ch1),var(--ch1-d))} +.cheat-card.c2::before{background:linear-gradient(180deg,var(--ch2),var(--ch2-d))} +.cheat-card.c3::before{background:linear-gradient(180deg,var(--ch3),var(--ch3-d))} +.cheat-card.c4::before{background:linear-gradient(180deg,var(--ch4),var(--ch4-d))} +.cheat-head{display:flex;align-items:center;gap:9px;margin-bottom:9px;padding-left:6px} +.cheat-badge{font-size:.7rem;font-weight:800;padding:2px 8px;border-radius:99px;color:#fff;letter-spacing:.05em;text-transform:uppercase} +.cheat-card.c1 .cheat-badge{background:var(--ch1)} +.cheat-card.c2 .cheat-badge{background:var(--ch2)} +.cheat-card.c3 .cheat-badge{background:var(--ch3)} +.cheat-card.c4 .cheat-badge{background:var(--ch4)} +.cheat-title{font-weight:800;color:var(--text);font-size:.98rem} +.cheat-list{list-style:none;padding-left:6px;margin:0} +.cheat-list li{padding:6px 0;border-bottom:1px dashed var(--border);font-size:.92rem;line-height:1.5;color:var(--text)} +.cheat-list li:last-child{border-bottom:0} + +/* BOSS CARDS */ +.boss-card{background:var(--card);border:2px solid var(--border);border-radius:14px;padding:16px;margin-bottom:14px;transition:border-color .35s,box-shadow .35s,transform .2s} +.boss-card.solved{border-color:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.18)} +.boss-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap} +.boss-tag{font-size:.7rem;font-weight:800;padding:3px 9px;border-radius:99px;background:rgba(225,29,72,.12);color:var(--pri-d);letter-spacing:.04em;text-transform:uppercase} +html.dark .boss-tag{color:#fecdd3} +.boss-title{font-family:'Outfit',sans-serif;font-weight:800;color:var(--text);font-size:1.02rem;flex:1;min-width:0} +.boss-q{padding:12px 14px;background:rgba(225,29,72,.06);border-radius:10px;font-size:.96rem;line-height:1.55;margin-bottom:10px;color:var(--text)} +.boss-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px} +.boss-input{padding:8px 12px;border:1.5px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);font-family:'JetBrains Mono',monospace;width:130px;text-align:center;font-size:.95rem;transition:border-color .15s} +.boss-input:focus{outline:0;border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-soft)} +.boss-btn{padding:8px 16px;border-radius:9px;background:var(--card);color:var(--text);border:1.5px solid var(--border);font-weight:700;font-size:.88rem;cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s,transform .1s} +.boss-btn:hover{background:var(--pri-soft);border-color:var(--pri)} +.boss-btn:active{transform:scale(.96)} +.boss-btn.primary{background:linear-gradient(135deg,var(--pri),#fb7185);color:#fff;border-color:transparent} +.boss-btn.primary:hover{filter:brightness(1.08)} +.boss-fb{padding:10px 14px;border-radius:9px;font-weight:600;font-size:.88rem;margin-top:8px;display:none;line-height:1.45} +.boss-fb.ok{display:block;background:#d1fae5;color:#065f46;border-left:4px solid #10b981} +.boss-fb.fail{display:block;background:#fee2e2;color:#7f1d1d;border-left:4px solid #dc2626} +html.dark .boss-fb.ok{background:rgba(16,185,129,.18);color:#a7f3d0} +html.dark .boss-fb.fail{background:rgba(220,38,38,.18);color:#fecaca} +.boss-hint-txt{margin-top:8px;padding:9px 13px;background:rgba(245,158,11,.12);border-left:3px solid #f59e0b;border-radius:6px;font-size:.86rem;color:var(--text);display:none;line-height:1.5} +.boss-hint-txt.show{display:block} + +/* FINAL CTA */ +.final-cta{margin-top:24px;padding:18px 20px;border-radius:14px;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1.5px solid #fbbf24;display:none;align-items:center;gap:14px;flex-wrap:wrap} +.final-cta.show{display:flex} +html.dark .final-cta{background:linear-gradient(135deg,rgba(245,158,11,.18),rgba(217,119,6,.15));border-color:#d97706} +.final-cta-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,#fbbf24,#f59e0b);display:flex;align-items:center;justify-content:center;flex-shrink:0} +.final-cta-icon svg{width:28px;height:28px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round} +.final-cta-txt{flex:1;min-width:180px} +.final-cta-title{font-weight:800;color:#92400e;font-size:1.05rem;font-family:'Outfit',sans-serif} +html.dark .final-cta-title{color:#fde68a} +.final-cta-sub{font-size:.86rem;color:#78350f;margin-top:2px} +html.dark .final-cta-sub{color:#fcd34d} +.final-cta-btn{padding:10px 18px;border-radius:10px;background:linear-gradient(135deg,var(--pri),#fb7185);color:#fff;text-decoration:none;font-weight:800;font-size:.9rem;display:inline-flex;align-items:center;gap:7px;transition:filter .15s} +.final-cta-btn:hover{filter:brightness(1.1)} +.final-cta-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@@ -276,14 +335,86 @@ main{max-width:1100px;margin:0 auto;padding:32px 24px 60px}