:root{--purple:#6d28d9;--purple-dark:#4c1d95;--purple-light:#ede9fe;--orange:#f97316;--orange-dark:#ea580c;--orange-light:#ffedd5;--bg:#f8fafc;--surface:#fff;--text:#0f172a;--muted:#475569;--border:#e2e8f0;--success:#10b981;--nav-height:68px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);min-width:320px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;overflow-x:hidden}body.modal-open{overflow:hidden}img,svg,iframe{max-width:100%}button,input,select,textarea{font:inherit}html{scroll-padding-top:calc(var(--nav-height) + 18px)}:target{scroll-margin-top:calc(var(--nav-height) + 18px)}p,li,td,h1,h2,h3,h4,code,.id-mono,.verify-box{overflow-wrap:anywhere}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}header.navbar{z-index:1000;height:var(--nav-height);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:#fffffff5;justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #0f172a0a}.brand{min-height:44px;color:var(--purple-dark);cursor:pointer;align-items:center;gap:10px;font-size:1.25rem;font-weight:800;text-decoration:none;display:flex}.brand-badge{background:linear-gradient(135deg, var(--purple), var(--orange));color:#fff;border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.1rem;font-weight:900;display:flex;box-shadow:0 4px 10px #6d28d940}.brand span.accent{color:var(--orange)}nav.nav-links{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.nav-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 14px;font-size:.92rem;font-weight:600;transition:all .15s}.nav-btn:hover{background:var(--purple-light);color:var(--purple)}.nav-btn.active{background:var(--purple);color:#fff}.nav-actions{align-items:center;gap:10px;display:flex}.btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:.92rem;font-weight:700;transition:transform .12s,box-shadow .15s,background .15s;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:linear-gradient(135deg, var(--orange), var(--orange-dark));color:#fff;box-shadow:0 4px 12px #f9731647}.btn-primary:hover{box-shadow:0 6px 16px #f9731661}.btn-purple{background:var(--purple);color:#fff;box-shadow:0 4px 12px #6d28d938}.btn-purple:hover{background:var(--purple-dark)}.btn-outline{color:var(--purple);border:1.5px solid var(--purple);background:#fff}.btn-outline:hover{background:var(--purple-light)}.btn-sm{border-radius:8px;padding:6px 12px;font-size:.82rem}main.app-container{max-width:1240px;min-height:calc(100vh - var(--nav-height));margin:0 auto;padding:28px 20px 64px}.page{animation:.2s fadeIn;display:none}.page.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.section-header h2{color:var(--text);font-size:1.55rem;font-weight:800}.section-header p{color:var(--muted);font-size:.95rem}.grid-3{grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr));gap:20px;margin-bottom:32px;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:22px;margin-bottom:32px;display:grid}.grid-3>*,.grid-2>*{min-width:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:18px;min-width:0;padding:24px;box-shadow:0 2px 8px #0f172a08}.card-hover{transition:transform .15s,box-shadow .15s,border-color .15s}.card-hover:hover{border-color:var(--purple);transform:translateY(-3px);box-shadow:0 12px 24px #6d28d914}.tag{text-transform:uppercase;letter-spacing:.03em;border-radius:6px;padding:4px 10px;font-size:.76rem;font-weight:700;display:inline-block}.tag-purple{background:var(--purple-light);color:var(--purple-dark)}.tag-orange{background:var(--orange-light);color:var(--orange-dark)}.tag-green{color:#065f46;background:#d1fae5}.tabs{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.tab-btn{border:1.5px solid var(--border);color:var(--muted);cursor:pointer;background:#fff;border-radius:10px;padding:9px 16px;font-size:.88rem;font-weight:700}.tab-btn.active{background:var(--purple);color:#fff;border-color:var(--purple)}.child-card{border:2px solid var(--border);background:#fff;border-radius:18px;flex-direction:column;justify-content:space-between;gap:16px;padding:20px;display:flex}.child-card.selected{border-color:var(--orange);box-shadow:0 8px 20px #f973161f}.progress-bar{background:#e2e8f0;border-radius:999px;width:100%;height:10px;margin:8px 0;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--purple), var(--orange));border-radius:999px;height:100%;transition:width .3s}.table-wrap{border:1px solid var(--border);background:#fff;border-radius:16px;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:.9rem}th,td{border-bottom:1px solid var(--border);padding:14px 16px}th{background:var(--purple-light);color:var(--purple-dark);font-weight:800}.modal-backdrop{z-index:2000;background:#0f172a99;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.modal-backdrop.open{display:flex}.modal-box{background:#fff;border-radius:20px;width:100%;max-width:480px;padding:26px;box-shadow:0 24px 48px #0f172a40}.form-group{margin-bottom:14px}.form-group label{color:var(--text);margin-bottom:6px;font-size:.85rem;font-weight:700;display:block}.form-control{border:1.5px solid var(--border);border-radius:10px;width:100%;padding:10px 12px;font-size:.92rem}.toast.is-error{border-left-color:#dc2626}.toast.is-info{border-left-color:#38bdf8}.toast.is-success{border-left-color:var(--orange)}.toast{color:#fff;border-left:5px solid var(--orange);z-index:3000;background:#1e1b4b;border-radius:12px;padding:14px 20px;font-size:.9rem;font-weight:600;display:none;position:fixed;bottom:22px;right:22px;box-shadow:0 12px 28px #0f172a40}@media (width<=860px){header.navbar{flex-wrap:wrap;gap:10px;height:auto;padding:12px 16px}}.dropdown{position:relative}.dropdown-menu{border:1px solid var(--border);z-index:1200;background:#fff;border-radius:14px;min-width:240px;padding:8px;display:none;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 16px 32px #0f172a29}.dropdown-menu.open{display:block}.dropdown-menu button,.dropdown-menu a{text-align:left;width:100%;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:11px 12px;font-size:.9rem;font-weight:600;text-decoration:none;display:block}.dropdown-menu button:hover,.dropdown-menu a:hover{background:var(--purple-light);color:var(--purple)}.dropdown-menu .menu-label{letter-spacing:.06em;color:#94a3b8;text-transform:uppercase;padding:8px 12px 4px;font-size:.72rem;font-weight:800}.header-xp{background:var(--purple-light);border:1.5px solid var(--purple);color:var(--purple-dark);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:7px 12px;font-size:.82rem;font-weight:800;display:flex}.header-xp b{color:var(--orange-dark)}.verify-box{border:1.5px dashed var(--purple);background:#f8fafc;border-radius:14px;padding:18px}.id-mono{color:var(--purple-dark);background:var(--purple-light);border-radius:6px;padding:3px 8px;font-family:ui-monospace,Menlo,monospace;font-weight:800}.check-list{gap:8px;list-style:none;display:grid}.check-list li{padding-left:26px;font-size:.92rem;position:relative}.check-list li:before{content:"✓";background:var(--success);color:#fff;border-radius:50%;place-items:center;width:20px;height:20px;font-size:.72rem;font-weight:900;display:grid;position:absolute;top:0;left:0}@media (width<=860px){.header-xp span.hide-m{display:none}}.hamburger-btn{width:44px;height:44px;color:var(--purple);border:1.5px solid var(--purple);cursor:pointer;background:#fff;border-radius:10px;flex:none;justify-content:center;align-items:center;font-size:1.35rem;font-weight:800;line-height:1;display:flex}.hamburger-btn:hover{background:var(--purple-light)}.hamburger-panel{border:1px solid var(--border);z-index:1300;background:#fff;border-radius:16px;min-width:290px;max-width:calc(100vw - 24px);max-height:calc(100vh - 90px);padding:12px;display:none;position:absolute;top:calc(100% + 2px);right:12px;overflow-y:auto;box-shadow:0 20px 40px #0f172a2e}.hamburger-panel.open{display:block}.hamburger-panel #mainNav{flex-flow:column;align-items:stretch;gap:6px;width:100%;display:flex}.hamburger-panel #mainNav .nav-btn{text-align:left;width:100%}.hamburger-panel .dropdown{width:100%}.hamburger-panel .dropdown-menu{box-shadow:none;border:0;border-top:1px solid var(--border);border-radius:0;min-width:0;margin:6px 0 0;padding:6px 0 6px 8px;position:static}.hamburger-panel .dropdown-menu button,.hamburger-panel .dropdown-menu a{padding:10px}a.nav-btn,a.btn,a.header-xp{text-decoration:none}.site-footer{color:#cbd5e1;background:#0f172a;margin-top:24px}.footer-inner{gap:14px;max-width:1240px;margin:0 auto;padding:32px 20px;display:grid}.footer-inner strong{color:#fff;font-size:1.1rem}.footer-inner p{color:#94a3b8;max-width:520px;font-size:.88rem}.footer-links{flex-wrap:wrap;gap:10px 18px;display:flex}.footer-links a{color:#cbd5e1;font-size:.9rem;font-weight:600;text-decoration:none}.footer-links a:hover{color:#fb923c}.footer-copy{color:#64748b;font-size:.8rem}[hidden]{display:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:-100px;left:max(12px, env(safe-area-inset-left));z-index:4000;background:var(--purple-dark);color:#fff;border-radius:10px;padding:12px 16px;font-weight:800;text-decoration:none;position:fixed;box-shadow:0 10px 24px #0f172a40}.skip-link:focus{top:max(12px, env(safe-area-inset-top))}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--orange);outline-offset:2px}:where(button,.btn,.tab-btn,.code-block-chip,.nav-btn,a.btn):active{transform:scale(.97)}:where(button,input,select,textarea):disabled{cursor:not-allowed;opacity:.65}.is-busy,[aria-busy=true]{cursor:progress}.is-busy{opacity:.8}.is-busy:after{content:"";border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:14px;height:14px;animation:.7s linear infinite fa-spin}@keyframes fa-spin{to{transform:rotate(360deg)}}.form-message{border-radius:10px;margin-top:10px;padding:10px 12px;font-size:.86rem;font-weight:700;line-height:1.4}.form-message.is-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.form-message.is-success{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.skeleton{background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9 37%,#e2e8f0 63%) 0 0/400% 100%;border-radius:8px;animation:1.2s infinite fa-shimmer}.skeleton-line{height:14px;margin-bottom:10px}.skeleton-line.w-60{width:60%}.skeleton-line.w-40{width:40%}.skeleton-block{height:56px;margin-top:12px}@keyframes fa-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.empty-state{text-align:center;border:1.5px dashed var(--border);background:#fff;border-radius:16px;grid-column:1/-1;padding:34px 18px}.empty-state h3{color:var(--text);margin-bottom:6px}.empty-state p{color:var(--muted);max-width:460px;margin:0 auto;font-size:.92rem}.offline-banner{left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom));z-index:2500;color:#78350f;background:#fffbeb;border:1px solid #f59e0b;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;max-width:560px;margin:0 auto;padding:12px 14px;font-size:.88rem;font-weight:700;display:flex;position:fixed;box-shadow:0 12px 28px #0f172a2e}.footer-legal{border-top:1px solid #1e293b;flex-wrap:wrap;gap:8px 16px;padding-top:12px;display:flex}.footer-legal a{color:#cbd5e1;font-size:.84rem;font-weight:600;text-decoration:none}.footer-legal a:hover{color:#fb923c;text-decoration:underline}.modal-box{overscroll-behavior:contain;max-height:calc(100vh - 32px);overflow-y:auto}.table-wrap{-webkit-overflow-scrolling:touch}@media (width<=860px){header.navbar{padding-left:max(14px, env(safe-area-inset-left));padding-right:max(14px, env(safe-area-inset-right))}main.app-container{padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right))}.btn,.btn-sm,.tab-btn,.nav-btn,.dropdown-menu a,.dropdown-menu button,.code-block-chip,.footer-links a,.footer-legal a,.header-xp{min-height:44px}.hamburger-panel{right:max(12px, env(safe-area-inset-right))}.footer-inner{padding-bottom:max(32px, calc(32px + env(safe-area-inset-bottom)))}}@media (width<=480px){header.navbar{gap:8px;padding:10px 12px}.brand{font-size:1.08rem}.brand-badge{width:34px;height:34px}.nav-actions{gap:6px}.nav-actions .btn-primary{padding:8px 10px;font-size:.8rem}.header-xp{padding:6px 9px;font-size:.76rem}.section-header h2{font-size:1.3rem}.modal-box{padding:20px}.toast{left:12px;right:12px;bottom:max(12px, env(safe-area-inset-bottom))}}@media (width<=380px){.header-xp #headerXpId,.header-xp .hide-m{display:none}}@media (height<=520px) and (orientation:landscape){.hamburger-panel{max-height:calc(100vh - 12px)}.modal-box{max-height:calc(100vh - 16px)}}@media (width<=640px){header.navbar{align-items:flex-start}.nav-actions{flex-wrap:wrap;justify-content:flex-end;width:100%}.header-xp .xp-streak{display:none}}@media (width<=480px){.nav-actions .btn-primary{flex:auto}.leader-row{flex-direction:column;align-items:flex-start}.leader-row>div{width:100%;min-width:0}.cert-frame{border-width:6px;padding:20px}.cert-frame h1{font-size:1.5rem!important}.modal-backdrop{padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left))}}@media (width<=360px){.brand{gap:7px;font-size:1rem}.brand-badge{width:32px;height:32px;font-size:.95rem}.nav-actions{gap:5px}.nav-actions .btn-primary{padding:8px 9px;font-size:.76rem}.header-xp{padding:6px 8px;font-size:.74rem}}@media (width<=320px){header.navbar{padding:8px 10px}main.app-container{padding-left:12px;padding-right:12px}.card{padding:18px}.section-header h2{font-size:1.18rem}}
