:root{--bg:#fff;--text:#1a1a2e;--muted:#6b7280;--brand:#7c5cbf;--brand-600:#6448a8;--secondary:#a8902a;--surface:#f4f2f9;--surface-2:#ede9f5;--border:#d1d5db;--shadow:0 1px 2px #0000000f, 0 4px 12px #0000000d;--radius:8px;--sidebar-width:220px;--space-1:.5rem;--space-2:.75rem;--space-3:1rem;--space-4:1.5rem;--space-5:2rem;color:var(--text);background-color:var(--bg);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.6}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);min-width:320px;min-height:100vh;color:var(--text);margin:0}a{color:var(--text);text-decoration:none;transition:color .15s}a:hover{color:var(--brand-600)}ol,ul{list-style:none}.app-container{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;min-height:100vh;transition:width .25s;display:flex;position:relative}.sidebar.closed{width:40px}.sidebar-toggle{border:1px solid var(--border);background:var(--bg);cursor:pointer;z-index:10;width:28px;height:28px;color:var(--text);border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:14px;display:flex;position:absolute;top:12px;right:-14px;box-shadow:0 1px 3px #0000001a}.sidebar-toggle:hover{background:var(--surface)}.sidebar-nav{padding:var(--space-3) 0;gap:var(--space-1);flex-direction:column;flex:1;display:flex}.sidebar-section{border-bottom:1px solid var(--border);padding-bottom:var(--space-2)}.sidebar-section-btn{width:100%;padding:var(--space-2) var(--space-3);color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:center;font-size:.85rem;font-weight:700;display:flex}.sidebar-section-btn:hover{background:var(--surface)}.sidebar-section-btn .chevron{color:var(--muted);font-size:.75rem}.sidebar-links{margin:0;padding:0}.sidebar-links li a{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-4);color:var(--text);font-size:.85rem;transition:background .1s;display:flex}.sidebar-links li a:hover{background:var(--surface)}.sidebar-top{flex:1}.sidebar-bottom{border-top:1px solid #ddd;max-height:20rem;padding:1rem}.link-icon{text-align:center;width:20px;font-size:1rem}.accessibility-fab{background:var(--brand);color:#fff;cursor:pointer;z-index:999;border:none;border-radius:50%;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;font-size:1.4rem;transition:background .2s,transform .2s;display:flex;position:fixed;bottom:1.5rem;left:1.5rem;box-shadow:0 4px 14px #00000040}.accessibility-fab:hover{background:var(--brand-600);transform:scale(1.1)}.modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg);border-radius:8px;width:400px;max-width:90%;padding:2rem;box-shadow:0 10px 30px #0003}.modal-options{flex-direction:column;gap:1rem;margin:1rem 0;display:flex}.close-btn{margin-top:1rem}html{font-size:1rem}html.large-text{font-size:1.5rem}body.dark{--bg:#0f172a;--text:#e5e7eb;--muted:#9ca3af;--surface:#111827;--surface-2:#0b1220;--border:#1f2937;--shadow:0 1px 2px #0006, 0 6px 18px #0000004d}body.dark .card{color:#fff;background-color:#1e1e1e}.main-area{flex-direction:column;flex:1;min-height:100vh;display:flex;overflow-x:hidden}.header{background:var(--bg);border-bottom:1px solid var(--border);padding:0}.header-top{padding:6px var(--space-4);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.header-logo{flex-shrink:0}.logo-placeholder svg{display:block}.header-actions{align-items:center;gap:var(--space-4);display:flex}.header-links{gap:var(--space-4);display:flex}.header-links a{color:var(--text);font-size:1.1rem;font-weight:600}.header-links a:hover{color:var(--brand)}.search-bar{border:1px solid var(--border);background:var(--bg);border-radius:7px;align-items:center;gap:9px;width:330px;min-width:180px;padding:6px 10px;display:flex}.search-bar input{color:var(--text);background:0 0;border:none;outline:none;width:100%;font-size:1.1rem}.search-icon{color:var(--muted);font-size:1.1rem}.page-title{padding:var(--space-1) var(--space-2);color:#fff;background:#b3a5cd;margin:0;font-size:1.75rem;font-weight:700}.header-greeting{color:var(--brand);font-size:1.1rem;font-weight:600}.header-logout{cursor:pointer;color:var(--secondary);background:0 0;border:none;padding:0;font-size:1.1rem;font-weight:600}.header-logout:hover{text-decoration:underline}.content{padding:var(--space-4) var(--space-5);flex:1;width:100%;max-width:1400px;margin:0 auto}main.content:has(.fullpage){max-width:100%;padding:0}main.content:has(.auth-page){flex-direction:column;max-width:100%;padding:0;display:flex}main.content:has(.centered){max-width:100%}.hero-section{text-align:center;padding:var(--space-5) 0;border-bottom:1px solid var(--border);margin-bottom:var(--space-5);background:linear-gradient(135deg, var(--surface) 0%, #fff 100%);border-radius:var(--radius)}.hero-section h1{margin-bottom:var(--space-1);color:var(--brand);font-size:2rem;font-weight:700}.hero-section p{color:var(--muted);font-size:1rem}.features-section{margin-bottom:var(--space-5)}.features-section h2{text-align:center;margin-bottom:var(--space-4);color:var(--text);font-size:1.5rem;font-weight:700}.features-grid{gap:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}.feature-card{border:1px solid var(--border);border-top:3px solid var(--brand);border-radius:var(--radius);padding:var(--space-4);text-align:center;align-items:center;gap:var(--space-2);background:var(--surface);flex-direction:column;display:flex}.feature-icon{width:64px;height:64px;margin-bottom:var(--space-1);justify-content:center;align-items:center;display:flex}.feature-card h3{margin:0;font-size:1rem;font-weight:600}.feature-card p{color:var(--muted);margin:0;font-size:.8rem;line-height:1.5}.feature-btn{border:2px solid var(--brand);background:var(--brand);color:#fff;cursor:pointer;border-radius:6px;margin-top:auto;padding:8px 28px;font-size:.85rem;font-weight:600;transition:background .15s,color .15s}.feature-btn:hover{background:var(--brand-600);border-color:var(--brand-600);color:#fff}.trending-section{margin-bottom:var(--space-5)}.trending-section h2{text-align:center;margin-bottom:var(--space-4);color:var(--secondary);font-size:1.75rem;font-weight:700}.wikis-grid{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.wiki-card{border:1px solid var(--border);border-left:4px solid var(--secondary);border-radius:var(--radius);padding:var(--space-4);background:var(--bg);transition:transform .2s,box-shadow .2s,border-left-color .2s}.wiki-card:hover{border-left-color:var(--brand);transform:translateY(-4px);box-shadow:0 8px 24px #0000001a}.wiki-card-header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.heart-icon{cursor:pointer;color:var(--text);font-size:1.4rem;line-height:1}.wiki-card h3{margin:0;font-size:1rem;font-weight:700}.wiki-card p{color:var(--muted);margin:0;font-size:.8rem;line-height:1.6}.footer{color:#1a1a2e;padding:var(--space-5) var(--space-3) var(--space-2);background:#dcdada}.footer-content{margin-bottom:var(--space-1);justify-content:space-between;align-items:flex-end;display:flex}.footer-links{gap:var(--space-4);flex-wrap:wrap;display:flex}.footer-links a{color:#361f62;white-space:nowrap;font-size:.8rem}.footer-links a:hover{color:#bc9c22}.footer-copyright{text-align:center;color:#361f62;margin:0;font-size:.75rem;font-weight:700}main.content:has(.about-page){justify-content:center;max-width:100%;display:flex}.about-page{width:100%;max-width:1100px;padding:0 var(--space-5)}.about-hero{text-align:center;padding:var(--space-5) var(--space-4);margin-bottom:var(--space-5)}.about-hero-label{color:var(--brand);text-underline-offset:5px;margin-bottom:var(--space-3);letter-spacing:.04em;font-size:1.4rem;font-weight:700;text-decoration:underline;text-decoration-thickness:2px}.about-hero-badge{background:var(--brand);color:#fff;letter-spacing:.08em;text-transform:uppercase;margin-bottom:var(--space-3);border-radius:999px;padding:4px 14px;font-size:.75rem;font-weight:700;display:inline-block}.about-hero-title{margin-bottom:var(--space-3);color:var(--text);font-size:2.75rem;font-weight:800;line-height:1.2}.about-hero-accent{color:var(--brand)}.about-hero-sub{color:var(--muted);max-width:620px;margin:0 auto;font-size:1.15rem;line-height:1.7}.about-section{margin-bottom:var(--space-5)}.about-section--last{margin-bottom:0}.about-section-title{color:var(--text);margin-bottom:var(--space-2);padding-bottom:var(--space-2);border-bottom:2px solid var(--brand);font-size:1.9rem;font-weight:700;display:inline-block}.about-section-sub{color:var(--muted);margin-top:var(--space-2);margin-bottom:var(--space-4);font-size:1.1rem}.about-who-grid{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:1fr 1fr;align-items:start;display:grid}.about-who-text p{color:var(--text);margin-bottom:var(--space-3);font-size:1.15rem;line-height:1.75}.about-values-heading{font-weight:600;color:var(--text)!important;margin-bottom:var(--space-2)!important}.about-values-list{margin:0 0 var(--space-4);gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.about-values-list li{color:var(--muted);padding-left:var(--space-3);border-left:3px solid var(--brand);font-size:1.05rem;line-height:1.6}.about-value-label{color:var(--brand);margin-right:4px;font-weight:700}.about-who-closing{border-top:1px solid var(--border);padding-top:var(--space-3);margin-top:var(--space-2);font-style:italic;color:var(--text)!important}.about-who-stats{gap:var(--space-3);flex-direction:column;display:flex}.about-stat{padding:var(--space-2) 0;border-bottom:1px solid var(--border);flex-direction:column;gap:2px;display:flex}.about-stat-value{color:var(--brand);font-size:1.4rem;font-weight:800;line-height:1}.about-stat-label{color:var(--muted);font-size:.8rem;font-weight:500}.team-grid{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}.team-card{background:var(--bg);border:1px solid var(--border);border-radius:calc(var(--radius) * 1.5);padding:var(--space-4);text-align:center;align-items:center;gap:var(--space-2);box-shadow:var(--shadow);flex-direction:column;transition:transform .18s,box-shadow .18s;display:flex}.team-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #7c5cbf26}.team-avatar{background:linear-gradient(135deg, var(--brand) 0%, #a07de0 100%);color:#fff;width:90px;height:90px;margin-bottom:var(--space-1);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.6rem;font-weight:700;display:flex}.team-name{color:var(--text);margin:0;font-size:1.1rem;font-weight:700}.team-role{color:var(--muted);margin:0;font-size:.95rem}.team-github-link{margin-top:var(--space-2);border:1px solid var(--border);color:var(--text);background:var(--surface);border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:.8rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.team-github-link:hover{background:var(--brand);border-color:var(--brand);color:#fff}.contact-grid{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.contact-card{padding:var(--space-2) 0;align-items:flex-start;gap:var(--space-3);border-bottom:1px solid var(--border);flex-direction:row;display:flex}.contact-card-icon{flex-shrink:0;margin-top:2px;font-size:1.5rem;line-height:1}.contact-card h3{color:var(--text);margin:0;font-size:1.1rem;font-weight:700}.contact-card p{color:var(--muted);flex:1;margin:0;font-size:1rem;line-height:1.6}.contact-email-footer{margin-top:var(--space-4);color:var(--muted);text-align:center;font-size:1.3rem}.contact-link{font-size:1.rem;color:var(--brand);margin-top:auto;font-weight:600;text-decoration:none;display:inline-block}.contact-link:hover{color:var(--brand-600);text-decoration:underline}.legal-updated{margin-top:var(--space-3);color:var(--muted);letter-spacing:.02em;font-size:.85rem}.legal-grid{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.legal-card{background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) * 1.5);padding:var(--space-4);gap:var(--space-2);box-shadow:var(--shadow);flex-direction:column;transition:transform .18s,box-shadow .18s;display:flex}.legal-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #7c5cbf1f}.legal-card-number{color:var(--brand);opacity:.25;font-size:2rem;font-weight:800;line-height:1}.legal-card-title{color:var(--text);font-size:1.1rem;font-weight:700}.legal-card-body{color:var(--muted);font-size:.95rem;line-height:1.75}.legal-contact-box{margin-top:var(--space-5);padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) * 1.5);text-align:center;align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.legal-contact-box p{color:var(--muted);font-size:1.05rem}@media (max-width:1024px){.team-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.about-hero-title{font-size:1.6rem}.about-who-grid{grid-template-columns:1fr}.team-grid{grid-template-columns:repeat(2,1fr)}.contact-grid,.legal-grid{grid-template-columns:1fr}}@media (max-width:480px){.team-grid{grid-template-columns:1fr}}.help-step-list{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.help-step{align-items:flex-start;gap:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) * 1.5);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow);display:flex}.help-step-num{background:var(--brand);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.85rem;font-weight:700;line-height:1;display:flex}.help-step-text{color:var(--text);margin:0;padding-top:4px;font-size:1rem;line-height:1.65}.help-feature-grid{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.help-feature-card{background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) * 1.5);padding:var(--space-4);gap:var(--space-2);box-shadow:var(--shadow);flex-direction:column;transition:transform .18s,box-shadow .18s;display:flex}.help-feature-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #7c5cbf1f}.help-feature-title{color:var(--text);font-size:1.05rem;font-weight:700}.help-feature-desc{color:var(--muted);font-size:.95rem;line-height:1.7}.faq-list{gap:var(--space-2);margin-top:var(--space-4);flex-direction:column;display:flex}.faq-item{background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) * 1.5);transition:box-shadow .18s;overflow:hidden}.faq-item--open{border-color:var(--brand);box-shadow:0 4px 16px #7c5cbf1a}.faq-question{width:100%;padding:var(--space-3) var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;font-size:1rem;font-weight:600;transition:color .15s;display:flex}.faq-question:hover{color:var(--brand)}.faq-chevron{color:var(--brand);flex-shrink:0;font-size:.7rem}.faq-answer{padding:0 var(--space-4) var(--space-4);color:var(--muted);border-top:1px solid var(--border);padding-top:var(--space-3);margin:0;font-size:.95rem;line-height:1.75}.licenses-grid{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.license-card{background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) * 1.5);padding:var(--space-4);gap:var(--space-2);box-shadow:var(--shadow);flex-direction:column;transition:transform .18s,box-shadow .18s;display:flex}.license-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #7c5cbf1f}.license-card-name{color:var(--text);font-size:1.05rem;font-weight:700}.license-badge{background:var(--surface-2);color:var(--brand);letter-spacing:.04em;border:1px solid var(--border);border-radius:999px;width:fit-content;padding:2px 10px;font-size:.75rem;font-weight:700;display:inline-block}.license-card-version{color:var(--muted);flex:1;font-size:.85rem}.license-card-link{margin-top:auto;font-size:.9rem}@media (max-width:768px){.help-feature-grid,.licenses-grid{grid-template-columns:1fr}}.feedback-form{gap:var(--space-4);margin-top:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) * 1.5);padding:var(--space-5);box-shadow:var(--shadow);flex-direction:column;display:flex}.feedback-row{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.feedback-field{gap:var(--space-1);flex-direction:column;display:flex}.feedback-label{color:var(--text);font-size:.875rem;font-weight:600}.feedback-required{color:var(--brand);margin-left:2px}.feedback-input{padding:.65rem var(--space-3);border:1.5px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);outline:none;width:100%;font-family:inherit;font-size:.95rem;transition:border-color .15s,box-shadow .15s}.feedback-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #7c5cbf26}.feedback-input::placeholder{color:var(--muted);opacity:.7}.feedback-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:2.5rem}.feedback-textarea{resize:vertical;min-height:130px;line-height:1.6}.feedback-checkbox-label{align-items:flex-start;gap:var(--space-2);color:var(--muted);cursor:pointer;font-size:.9rem;line-height:1.5;display:flex}.feedback-checkbox-label input[type=checkbox]{accent-color:var(--brand);cursor:pointer;flex-shrink:0;width:16px;height:16px;margin-top:2px}.feedback-submit{background:var(--brand);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;align-self:flex-start;padding:.65rem 2rem;font-size:1rem;font-weight:600;transition:background .15s,transform .15s}.feedback-submit:hover:not(:disabled){background:var(--brand-600);transform:translateY(-1px)}.feedback-submit:disabled{opacity:.45;cursor:not-allowed}.feedback-success{margin-top:var(--space-4);align-items:center;gap:var(--space-3);text-align:center;padding:var(--space-5);background:var(--surface);border:1px solid var(--brand);border-radius:calc(var(--radius) * 1.5);flex-direction:column;display:flex}.feedback-success-icon{background:var(--brand);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.5rem;font-weight:700;line-height:52px;display:flex}.feedback-success h3{color:var(--text);font-size:1.3rem;font-weight:700}.feedback-success p{color:var(--muted);font-size:1rem}.feedback-reset{border:1.5px solid var(--brand);color:var(--brand);border-radius:var(--radius);cursor:pointer;background:0 0;padding:.5rem 1.5rem;font-size:.9rem;font-weight:600;transition:background .15s,color .15s}.feedback-reset:hover{background:var(--brand);color:#fff}@media (max-width:600px){.feedback-row{grid-template-columns:1fr}.feedback-form{padding:var(--space-4)}}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);box-shadow:var(--shadow);margin-bottom:var(--space-4)}button{border:1px solid var(--border);background-color:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;padding:.5em 1em;font-size:.9rem;font-weight:600;transition:background-color .15s,border-color .15s}button:hover{background-color:var(--surface-2);border-color:var(--brand)}button:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.post-form input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;width:min(520px,100%);padding:.5rem .75rem}img{border-radius:var(--radius);max-width:100%;height:auto;display:block}h1{margin:0 0 var(--space-2);font-size:2rem;line-height:1.2}h2{margin:0}h3{margin:0 0 var(--space-2);color:var(--text)}@media (max-width:1024px){.features-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.sidebar{z-index:100;background:var(--bg);position:fixed;box-shadow:2px 0 10px #0000001a}.sidebar.closed{width:0;overflow:hidden}.features-grid,.wikis-grid{grid-template-columns:1fr}.header-top{gap:var(--space-2);flex-direction:column}.footer-content{gap:var(--space-3);text-align:center;flex-direction:column}}.auth-page{flex:1;align-items:stretch;display:flex}.auth-page--centered{background:linear-gradient(145deg,#3b1f6e 0%,#7c5cbf 60%,#a07de0 100%);justify-content:center;align-items:center;min-height:100%;padding:48px 20px}.auth-page--centered .auth-card{background:#fff;border-radius:12px;width:100%;max-width:440px;padding:48px 40px;box-shadow:0 8px 32px #00000040}.auth-brand-panel{background:linear-gradient(145deg,#3b1f6e 0%,#7c5cbf 60%,#a07de0 100%);flex:1;justify-content:center;align-items:center;padding:48px;display:flex}.auth-brand-img{filter:brightness(0)invert();border-radius:0;width:3201200px;height:auto;margin-bottom:1.5rem}.auth-form-panel{background-color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:480px;padding:48px 20px;display:flex}.auth-card{width:100%;max-width:380px}.auth-title{color:#2d1b4e;margin-bottom:6px;font-size:28px;font-weight:700}.auth-subtitle{color:#999;margin-bottom:28px;font-size:14px}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-field{flex-direction:column;gap:6px;display:flex}.auth-label{color:#444;font-size:14px;font-weight:600}.auth-required{color:#c9a227}.auth-input-wrapper{align-items:center;display:flex;position:relative}.auth-input{box-sizing:border-box;background-color:#fafafa;border:1.5px solid #e5e5e5;border-radius:8px;outline:none;width:100%;padding:13px 18px;font-size:15px;transition:border .2s}.auth-input:focus{background-color:#fff;border-color:#b07ed4}.auth-toggle-password{cursor:pointer;color:#999;background:0 0;border:none;padding:0;font-size:15px;position:absolute;right:12px}.auth-toggle-password:hover{color:#b07ed4}.auth-forgot{text-align:right;font-size:13px}.auth-forgot a{color:#b07ed4;font-weight:500;text-decoration:none}.auth-forgot a:hover{text-decoration:underline}.auth-btn{color:#fff;letter-spacing:1px;cursor:pointer;background:linear-gradient(135deg,#af73da);border:none;border-radius:8px;margin-top:6px;padding:14px;font-size:15px;font-weight:700;transition:opacity .2s}.auth-btn:hover{opacity:.9}.auth-error{color:#e53935;margin:0;font-size:13px}.auth-switch{color:#999;text-align:center;margin-top:24px;font-size:14px}.auth-switch a{color:#b07ed4;font-weight:600;text-decoration:none}.auth-switch a:hover{text-decoration:underline}.modal-overlay{z-index:1000;background-color:#0006;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.modal-card{text-align:center;background:#fff;border-radius:16px;min-width:320px;padding:40px;box-shadow:0 10px 40px #00000026}.modal-icon{margin-bottom:10px;font-size:48px}.modal-title{color:#2d1b4e;margin-bottom:10px;font-size:22px;font-weight:700}.modal-message{color:#666;margin-bottom:24px;font-size:15px}.modal-btn-success{color:#fff;cursor:pointer;background:linear-gradient(135deg,#b07ed4,#c9a227);border:none;border-radius:8px;padding:12px 30px;font-size:15px;font-weight:600}.modal-btn-success:hover{opacity:.9}.modal-btn-error{color:#fff;cursor:pointer;background-color:#f44336;border:none;border-radius:8px;padding:12px 30px;font-size:15px;font-weight:600}.modal-btn-error:hover{background-color:#c62828}.toast{z-index:9999;border-radius:10px;padding:14px 28px;font-size:14px;font-weight:500;animation:.3s fadeInDown;position:fixed;top:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0000001f}.toast p{color:#fff;margin:0}.toast-success{background:linear-gradient(135deg,#b07ed4,#c9a227)}.toast-error{background-color:#e53935}@keyframes fadeInDown{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.upload-page{width:100%;padding:0 var(--space-5) var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.upload-strip{gap:var(--space-4);padding:var(--space-4);grid-template-columns:1fr 320px;align-items:stretch;display:grid}.dropzone-area{border:2px dashed var(--border);background:var(--surface);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;min-height:160px;transition:background .2s,border-color .2s;display:flex}.dropzone-area.dragging,.dropzone-area:hover{background:var(--surface-2);border-color:var(--brand)}.dropzone-label{align-items:center;gap:var(--space-2);text-align:center;cursor:pointer;width:100%;padding:var(--space-4);flex-direction:column;display:flex}.dropzone-label input{display:none}.dropzone-icon{font-size:3rem}.dropzone-link{color:var(--brand);cursor:pointer;font-weight:600;text-decoration:underline}.image-bank{gap:var(--space-2);flex-direction:column;display:flex}.bank-title{margin:0 0 var(--space-2);font-size:1rem;font-weight:700}.image-bank-grid{border:1px dashed var(--border);background:var(--surface);padding:var(--space-4);gap:var(--space-2);border-radius:12px;flex-wrap:wrap;flex:1;align-items:flex-start;min-height:120px;display:flex}.uploaded-files{padding:var(--space-4)}.section-heading{margin:0 0 var(--space-3);color:var(--text);font-size:1rem;font-weight:700}.hint-text{color:var(--muted);font-size:.85rem}.file-list{gap:var(--space-3);flex-direction:column;display:flex}.file-row{align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);grid-template-columns:32px 1fr auto;display:grid}.file-icon{font-size:1.4rem}.file-meta{flex-direction:column;gap:4px;min-width:0;display:flex}.file-name{white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:600;overflow:hidden}.file-progress-track{background:var(--border);border-radius:6px;height:8px;overflow:hidden}.file-progress-fill{background:var(--brand);border-radius:6px;height:100%;transition:width .15s}.file-pct{color:var(--muted);font-size:.75rem}.file-images{gap:var(--space-2);justify-content:flex-end;align-items:center;min-width:120px;display:flex}.file-thumb{object-fit:cover;border:1px solid var(--border);border-radius:6px;width:48px;height:48px}.editor-section{gap:var(--space-3);flex-direction:column;display:flex}.editor-titlebar{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);display:flex}.editor-title-input{color:var(--text);background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:1.6rem;font-weight:700}.editor-title-input::placeholder{color:var(--border)}.tools-bar-h{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.tool-separator{background:var(--border);flex-shrink:0;align-self:center;width:1px;height:22px;margin:0 4px;display:inline-block}.font-size-input{border:1px solid var(--border);background:var(--surface);width:48px;color:var(--text);text-align:center;border-radius:6px;outline:none;align-self:center;padding:4px 6px;font-size:.82rem;font-weight:600}.font-size-input:focus{border-color:var(--brand)}.tool-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:center;border-radius:6px;min-width:30px;padding:5px 10px;font-size:.82rem;font-weight:600;line-height:1;transition:background .15s,border-color .15s}.tool-btn:hover{background:var(--surface-2);border-color:var(--brand)}.tool-btn:active{background:var(--brand);color:#fff;border-color:var(--brand)}.editor-body{gap:var(--space-3);grid-template-columns:220px 1fr;align-items:start;display:grid}.toc-panel{padding:var(--space-4);top:var(--space-4);position:sticky}.toc-panel h3{margin-bottom:var(--space-3);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.9rem}.toc-list{gap:var(--space-2);counter-reset:toc;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.toc-list li a{color:var(--text);border-radius:5px;padding:4px 8px;font-size:.875rem;text-decoration:none;transition:background .15s,color .15s;display:block}.toc-list li a:hover{background:var(--surface);color:var(--brand)}.editor-canvas{padding:var(--space-4) var(--space-5);outline:none;min-height:500px}.editor-canvas:focus{outline:none}.editor-canvas ul{margin:.5em 0;padding-left:2em;list-style:outside}.editor-canvas ol{margin:.5em 0;padding-left:2em;list-style:decimal}.editor-canvas li{margin:.2em 0}.editor-title{margin:0 0 var(--space-1);letter-spacing:-.5px;font-size:2rem;font-weight:800}.editor-sub{margin:0 0 var(--space-4);font-size:.9rem}.editor-block{padding:var(--space-4) var(--space-5);outline:none;min-height:160px}.editor-block:focus-within{background:var(--surface)}.block-heading{margin:0 0 var(--space-3);color:var(--brand);font-size:1.3rem;font-weight:700}.section-divider{background:var(--border);border:none;height:1px;margin:0}.markdown-textarea{width:100%;color:var(--text);resize:vertical;box-sizing:border-box;background:0 0;border:none;outline:none;font-family:Courier New,Courier,monospace;font-size:.9rem;line-height:1.7;display:block}.tool-btn.tool-btn-active{background:var(--brand);color:#fff;border-color:var(--brand)}.tool-color-btn{cursor:pointer;align-items:center;gap:3px;display:inline-flex;position:relative}.color-swatch{border:1px solid #ccc;border-radius:2px;width:10px;height:4px;display:inline-block}.markdown-preview h1,.markdown-preview h2,.markdown-preview h3,.markdown-preview h4{color:var(--brand);margin:1em 0 .4em;line-height:1.3}.markdown-preview h1{font-size:1.9rem}.markdown-preview h2{border-bottom:1px solid var(--border);padding-bottom:.2em;font-size:1.4rem}.markdown-preview h3{font-size:1.1rem}.markdown-preview p{margin:.6em 0;line-height:1.7}.markdown-preview ul{margin:.5em 0;padding-left:2em;list-style:outside}.markdown-preview ol{margin:.5em 0;padding-left:2em;list-style:decimal}.markdown-preview li{margin:.2em 0}.markdown-preview blockquote{border-left:4px solid var(--brand);color:var(--muted);background:var(--surface);border-radius:0 var(--radius) var(--radius) 0;margin:.8em 0;padding:.4em 1em}.markdown-preview code{background:var(--surface-2);border-radius:4px;padding:.15em .4em;font-family:Courier New,monospace;font-size:.88em}.markdown-preview pre{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3);margin:.8em 0;overflow-x:auto}.markdown-preview pre code{background:0 0;padding:0}.markdown-preview a{color:var(--brand);text-decoration:underline}.markdown-preview img{border-radius:var(--radius);max-width:100%;margin:.5em 0}.markdown-preview hr{border:none;border-top:1px solid var(--border);margin:1.2em 0}.markdown-preview strong{font-weight:700}.markdown-preview em{font-style:italic}
