.app-icon-glyph[data-v-bb62dcff]{line-height:1}.site-footer[data-v-3306624e]{margin-top:50px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-light);padding:40px clamp(24px,3vw,46px) 20px}.footer-content[data-v-3306624e]{display:grid;grid-template-columns:2fr 1fr;gap:40px}.footer-logo[data-v-3306624e]{display:flex;align-items:center;gap:12px;margin-bottom:16px}.footer-logo-icon[data-v-3306624e]{width:42px;height:42px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--accent),var(--navy-500));display:flex;align-items:center;justify-content:center;font-size:var(--fs-md);font-weight:var(--fw-black);color:var(--white);flex-shrink:0}.footer-logo h3[data-v-3306624e]{color:var(--heading);font-size:var(--fs-md);line-height:1.2}.footer-logo p[data-v-3306624e]{font-size:var(--fs-xs);color:var(--muted);line-height:1.3}.footer-tagline[data-v-3306624e]{font-size:var(--fs-sm);line-height:1.7;color:var(--text-light);max-width:380px}.footer-col h4[data-v-3306624e]{color:var(--muted);font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}.footer-col ul[data-v-3306624e]{list-style:none;padding:0}.footer-col li[data-v-3306624e]{margin-bottom:8px;font-size:var(--fs-sm);color:var(--text-light)}.footer-col a[data-v-3306624e]{color:var(--text-light);text-decoration:none;transition:color .2s}.footer-col a[data-v-3306624e]:hover{color:var(--accent)}.footer-bottom[data-v-3306624e]{margin-top:36px;padding-top:18px;border-top:1px solid var(--border);text-align:center}.footer-bottom p[data-v-3306624e]{font-size:var(--fs-xs);color:var(--muted)}@media (max-width: 980px){.footer-content[data-v-3306624e]{grid-template-columns:1fr;gap:28px}.site-footer[data-v-3306624e]{padding:32px 28px 16px}}.user-menu[data-v-44598b3e]{position:relative;margin-left:auto}.user-menu-trigger[data-v-44598b3e]{display:flex;align-items:center;gap:6px;padding:4px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);cursor:pointer;transition:background .2s,border-color .2s}.user-menu-trigger[data-v-44598b3e]:hover{background:var(--surface-light);border-color:var(--primary)}.user-menu-avatar[data-v-44598b3e]{width:34px;height:34px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--primary),var(--navy-700));color:var(--white);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:var(--fw-bold)}.user-menu-avatar-img[data-v-44598b3e]{width:34px;height:34px;border-radius:var(--radius-md);-o-object-fit:cover;object-fit:cover}.user-menu-chevron[data-v-44598b3e]{color:var(--text-light);transition:transform .2s}.user-menu-chevron.open[data-v-44598b3e]{transform:rotate(180deg)}.user-menu-dropdown[data-v-44598b3e]{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow);z-index:100;overflow:hidden}.user-menu-header[data-v-44598b3e]{padding:14px 16px;display:flex;flex-direction:column;gap:2px}.user-menu-header strong[data-v-44598b3e]{font-size:var(--fs-sm);color:var(--heading)}.user-menu-header span[data-v-44598b3e]{font-size:var(--fs-xs);color:var(--text-light)}.user-menu-divider[data-v-44598b3e]{height:1px;background:var(--border)}.user-menu-item[data-v-44598b3e]{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;font-family:inherit;font-size:var(--fs-sm);color:var(--text);background:none;border:none;cursor:pointer;text-align:left;transition:background .15s}.user-menu-item[data-v-44598b3e]:hover{background:var(--surface-light)}.user-menu-item svg[data-v-44598b3e]{flex-shrink:0;color:var(--text-light)}.user-menu-item--danger[data-v-44598b3e]{color:var(--danger)}.user-menu-item--danger svg[data-v-44598b3e]{color:var(--danger)}.menu-fade-enter-active[data-v-44598b3e],.menu-fade-leave-active[data-v-44598b3e]{transition:opacity .15s,transform .15s}.menu-fade-enter-from[data-v-44598b3e],.menu-fade-leave-to[data-v-44598b3e]{opacity:0;transform:translateY(-4px)}.desktop-topbar[data-v-520cb763]{display:flex;align-items:center;justify-content:flex-end;padding:12px 24px;border-bottom:1px solid var(--border);background:var(--surface)}.desktop-topbar-spacer[data-v-520cb763]{flex:1}@media (max-width: 980px){.desktop-topbar[data-v-520cb763]{display:none}}.edit-form[data-v-520cb763]{display:flex;flex-direction:column;gap:16px}.edit-form label[data-v-520cb763]{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--heading)}.edit-form input[data-v-520cb763]{font-family:inherit;font-size:var(--fs-base);padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-light);color:var(--text);outline:none;transition:border-color .2s}.edit-form input[data-v-520cb763]:focus{border-color:var(--primary)}.edit-error[data-v-520cb763]{font-size:var(--fs-sm);color:var(--danger);margin:0;text-align:center}.edit-success[data-v-520cb763]{font-size:var(--fs-sm);color:var(--success);margin:0;text-align:center}.save-btn[data-v-520cb763]{font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);padding:10px 20px;border-radius:var(--radius-md);border:none;background:var(--primary);color:var(--white);cursor:pointer}.save-btn[data-v-520cb763]:disabled{opacity:.6;cursor:default}.avatar-upload[data-v-520cb763]{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:8px}.avatar-preview[data-v-520cb763],.avatar-placeholder[data-v-520cb763]{width:80px;height:80px;border-radius:var(--radius-lg);-o-object-fit:cover;object-fit:cover}.avatar-placeholder[data-v-520cb763]{background:linear-gradient(135deg,var(--primary),var(--navy-700));color:var(--white);display:flex;align-items:center;justify-content:center;font-size:var(--fs-xl);font-weight:var(--fw-bold)}.avatar-change-btn[data-v-520cb763]{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--primary);cursor:pointer;padding:6px 12px;border-radius:var(--radius-md);background:var(--primary-light);transition:background .2s}.avatar-change-btn[data-v-520cb763]:hover{background:var(--primary);color:var(--white)}.password-input-wrap[data-v-520cb763]{position:relative;display:flex}.password-input-wrap input[data-v-520cb763]{flex:1;padding-right:40px}.password-toggle[data-v-520cb763]{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:14px;padding:4px}.password-hint[data-v-520cb763]{font-size:11px;color:var(--text-light)}.password-hint.valid[data-v-520cb763]{color:var(--success)}.password-hint.error[data-v-520cb763]{color:var(--danger)}.confirm-label[data-v-9b238993]{display:flex;flex-direction:column;gap:8px;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--heading);margin-bottom:8px}.confirm-label input[data-v-9b238993]{font-family:inherit;font-size:var(--fs-base);font-weight:var(--fw-regular);padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-light);color:var(--text);outline:none;transition:border-color .2s}.confirm-label input[data-v-9b238993]:focus{border-color:var(--danger)}.delete-btn[data-v-9b238993]{font-family:inherit;font-size:var(--fs-base);font-weight:var(--fw-medium);padding:10px 20px;border-radius:var(--radius-md);border:none;background:var(--danger);color:var(--white);cursor:pointer}.delete-btn[data-v-9b238993]:disabled{opacity:.4;cursor:default}.project-grid[data-v-728cff37]{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px;margin-top:24px}.project-card[data-v-728cff37]{display:flex;align-items:flex-start;gap:18px;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-decoration:none;color:inherit;box-shadow:var(--shadow-sm);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;position:relative}.project-card[data-v-728cff37]:hover{border-color:var(--accent);box-shadow:var(--shadow)}.project-icon[data-v-728cff37]{flex-shrink:0;width:48px;height:48px;border-radius:var(--radius-md);background:var(--primary-light);border:1px solid var(--border);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:var(--fs-md);font-weight:var(--fw-black);letter-spacing:-.02em}.project-body h4[data-v-728cff37]{font-size:var(--fs-md);margin-bottom:6px}.project-body p[data-v-728cff37]{font-size:var(--fs-sm);color:var(--text-light);margin-bottom:12px;line-height:1.6}.project-tags[data-v-728cff37]{display:flex;flex-wrap:wrap;gap:6px}.project-tags span[data-v-728cff37]{font-size:var(--fs-2xs);font-weight:var(--fw-medium);color:var(--primary-dark);background:var(--primary-light);border:1px solid var(--border);padding:2px 10px;border-radius:var(--radius-full)}.project-arrow[data-v-728cff37]{position:absolute;top:22px;right:22px;color:var(--muted);display:flex;transition:transform .25s ease,color .25s ease}.project-card:hover .project-arrow[data-v-728cff37]{transform:translate(4px);color:var(--accent)}.project-tags span[data-v-728cff37]{color:var(--primary-dark);background:var(--primary-light);border:1px solid var(--border)}.project-delete-btn[data-v-728cff37]{position:absolute;bottom:14px;right:14px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer;opacity:0;transition:opacity .2s ease,background .2s ease,color .2s ease}.project-card:hover .project-delete-btn[data-v-728cff37]{opacity:1}.project-delete-btn[data-v-728cff37]:hover{background:var(--danger-bg);color:var(--danger)}.login-page[data-v-e7a44585]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:20px}.login-card[data-v-e7a44585]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:40px;max-width:400px;width:100%;text-align:center}.brand-mark[data-v-e7a44585]{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--primary),var(--accent));color:var(--white);font-weight:var(--fw-black);font-size:var(--fs-xl);margin-bottom:16px}.login-card h1[data-v-e7a44585]{font-size:var(--fs-2xl);margin:0 0 4px;color:var(--heading)}.login-sub[data-v-e7a44585]{font-size:var(--fs-sm);color:var(--text-light);margin:0 0 28px}.login-form[data-v-e7a44585]{display:flex;flex-direction:column;gap:16px;text-align:left}.login-form label[data-v-e7a44585]{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--heading)}.login-form input[data-v-e7a44585]{font-family:inherit;font-size:var(--fs-base);padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-light);color:var(--text);outline:none;transition:border-color .2s}.login-form input[data-v-e7a44585]:focus{border-color:var(--primary)}.login-error[data-v-e7a44585]{font-size:var(--fs-sm);color:var(--danger);margin:0;text-align:center}.login-success[data-v-e7a44585]{font-size:var(--fs-sm);color:var(--success);margin:0;text-align:center}.login-btn[data-v-e7a44585]{font-family:inherit;font-size:var(--fs-base);font-weight:var(--fw-bold);padding:12px 20px;border-radius:var(--radius-md);border:none;background:var(--primary);color:var(--white);cursor:pointer;transition:background .2s,opacity .2s}.login-btn[data-v-e7a44585]:hover:not(:disabled){background:var(--primary-dark)}.login-btn[data-v-e7a44585]:disabled{opacity:.6;cursor:default}.login-btn--outline[data-v-e7a44585]{background:transparent;border:1px solid var(--border);color:var(--text)}.login-btn--outline[data-v-e7a44585]:hover:not(:disabled){background:var(--surface-light);border-color:var(--primary)}.login-footer[data-v-e7a44585]{font-size:var(--fs-sm);color:var(--text-light);margin:20px 0 0}.login-link[data-v-e7a44585]{font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--primary);background:none;border:none;cursor:pointer;text-decoration:underline}.login-link[data-v-e7a44585]:hover{color:var(--primary-dark)}.base-btn[data-v-082c3df6]{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius-md);border:1px solid transparent;font-family:inherit;font-weight:var(--fw-bold);white-space:nowrap;text-decoration:none;cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .2s,box-shadow .2s}.base-btn[data-v-082c3df6]:disabled{opacity:.6;cursor:default}.base-btn--sm[data-v-082c3df6]{height:32px;padding:0 12px;font-size:var(--fs-xs)}.base-btn--md[data-v-082c3df6]{height:38px;padding:0 16px;font-size:var(--fs-sm)}.base-btn--lg[data-v-082c3df6]{height:44px;padding:0 20px;font-size:var(--fs-base)}.base-btn--icon-only[data-v-082c3df6]{padding:0}.base-btn--icon-only.base-btn--sm[data-v-082c3df6]{width:32px}.base-btn--icon-only.base-btn--md[data-v-082c3df6]{width:38px}.base-btn--icon-only.base-btn--lg[data-v-082c3df6]{width:44px}.base-btn--solid.base-btn--primary[data-v-082c3df6]{background:var(--primary);border-color:var(--primary);color:var(--white)}.base-btn--solid.base-btn--accent[data-v-082c3df6]{background:var(--accent);border-color:var(--accent);color:var(--white)}.base-btn--solid.base-btn--danger[data-v-082c3df6]{background:var(--danger);border-color:var(--danger);color:var(--white)}.base-btn--solid[data-v-082c3df6]:not(:disabled):hover{box-shadow:var(--shadow-sm);filter:brightness(1.06)}.base-btn--outline.base-btn--primary[data-v-082c3df6]{color:var(--primary);border-color:var(--primary)}.base-btn--outline.base-btn--accent[data-v-082c3df6]{color:var(--accent);border-color:var(--accent)}.base-btn--outline.base-btn--danger[data-v-082c3df6]{color:var(--danger);border-color:var(--danger)}.base-btn--outline.base-btn--muted[data-v-082c3df6]{color:var(--text-light);border-color:var(--border)}.base-btn--outline[data-v-082c3df6]:not(:disabled):hover{background:var(--surface-light);border-color:var(--primary)}.base-btn--outline.base-btn--primary[data-v-082c3df6]:not(:disabled):hover{background:var(--primary-light)}.base-btn--icon-only.base-btn--outline[data-v-082c3df6]{background:var(--surface-light)}.base-btn--icon-only.base-btn--outline.base-btn--primary[data-v-082c3df6]:not(:disabled):hover{background:var(--primary-light)}.base-btn--dashed[data-v-082c3df6]{border-style:dashed}.base-btn--dashed[data-v-082c3df6]:not(:disabled):hover{border-style:solid}.base-btn-icon[data-v-082c3df6]{display:flex;align-items:center;justify-content:center;line-height:0}.base-btn-icon.spinning[data-v-082c3df6]{animation:base-btn-spin-082c3df6 .8s linear infinite}@keyframes base-btn-spin-082c3df6{to{transform:rotate(360deg)}}.icon-btn[data-v-d1a7eedd]{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--primary);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;line-height:1;transition:background .15s ease,opacity .15s ease}.icon-btn[data-v-d1a7eedd]:hover:not(:disabled){background:var(--primary-light)}.icon-btn[data-v-d1a7eedd]:disabled{opacity:.3;cursor:default}.icon-btn--sm[data-v-d1a7eedd]{width:28px;height:28px;font-size:var(--fs-xs)}.icon-btn--md[data-v-d1a7eedd]{width:36px;height:36px;font-size:var(--fs-md)}.icon-btn--lg[data-v-d1a7eedd]{width:46px;height:46px;font-size:var(--fs-xl)}.icon-btn--dark[data-v-d1a7eedd]{border:1px solid rgba(255,255,255,.14);background:#ffffff0d;color:#fff}.icon-btn--dark[data-v-d1a7eedd]:hover:not(:disabled){background:#ffffff1f}.icon-btn--round[data-v-d1a7eedd]{border-radius:50%}.sprint-metrics-empty[data-v-5ee3050f]{color:var(--muted);font-size:var(--fs-sm)}.metrics-nav[data-v-5ee3050f]{display:flex;align-items:center;gap:14px;margin-bottom:26px;flex-wrap:wrap}.metrics-nav[data-v-5ee3050f] .base-btn{flex-shrink:0}.metrics-nav select[data-v-5ee3050f]{flex:1;width:100%;font-family:inherit;font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--heading);padding:9px 36px 9px 12px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%238b9099' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:border-color .2s,box-shadow .2s}.metrics-nav select[data-v-5ee3050f]:hover{border-color:var(--primary)}.metrics-nav select[data-v-5ee3050f]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.metrics-summary[data-v-5ee3050f]{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:30px}.metrics-stat[data-v-5ee3050f]{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px 18px;display:flex;flex-direction:column;gap:5px;overflow:hidden;transition:border-color .18s ease,transform .18s ease}.metrics-stat[data-v-5ee3050f]:before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,var(--primary),transparent);opacity:0;transition:opacity .18s ease}.metrics-stat[data-v-5ee3050f]:hover{border-color:var(--primary);transform:translateY(-2px)}.metrics-stat[data-v-5ee3050f]:hover:before{opacity:1}.metrics-stat--reveal[data-v-5ee3050f]{animation:statReveal-5ee3050f .42s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--d, 0) * 55ms)}@keyframes statReveal-5ee3050f{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.metrics-label[data-v-5ee3050f]{font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.metrics-stat-value[data-v-5ee3050f]{font-size:var(--fs-xl);font-weight:var(--fw-black);color:var(--heading);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.metrics-stat-value--tight[data-v-5ee3050f]{font-size:var(--fs-md);font-weight:var(--fw-bold)}.metrics-stat-sub[data-v-5ee3050f]{font-size:var(--fs-2xs);color:var(--muted)}.metrics-chart-title[data-v-5ee3050f]{font-size:var(--fs-md);margin:28px 0 14px;color:var(--heading);font-weight:var(--fw-bold)}.metrics-chart[data-v-5ee3050f]{height:270px;width:100%}.metrics-charts-row[data-v-5ee3050f]{display:grid;grid-template-columns:1.3fr 1fr;gap:32px;align-items:start}.metrics-charts-col[data-v-5ee3050f]{min-width:0}.metrics-charts-col--donut[data-v-5ee3050f]{display:flex;flex-direction:column;align-items:center}.metrics-donut-wrap[data-v-5ee3050f]{position:relative;width:100%;max-width:300px;aspect-ratio:1}.metrics-donut[data-v-5ee3050f]{height:100%;width:100%}.metrics-donut-center[data-v-5ee3050f]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.metrics-donut-center strong[data-v-5ee3050f]{font-size:var(--fs-3xl);font-weight:var(--fw-black);color:var(--heading);line-height:1}.metrics-donut-center span[data-v-5ee3050f]{font-size:var(--fs-2xs);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:4px}.metrics-task-list[data-v-5ee3050f]{list-style:none;padding:0;display:flex;flex-direction:column;gap:12px}.task-row[data-v-5ee3050f]{display:flex;flex-direction:column;gap:5px;animation:taskReveal-5ee3050f .36s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--d, 0) * 40ms)}@keyframes taskReveal-5ee3050f{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.task-row-top[data-v-5ee3050f]{display:flex;align-items:center;gap:10px;font-size:var(--fs-xs)}.task-dot[data-v-5ee3050f]{width:9px;height:9px;border-radius:50%;flex-shrink:0}.task-name[data-v-5ee3050f]{flex:1;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-pct[data-v-5ee3050f]{font-weight:var(--fw-bold);color:var(--heading);font-variant-numeric:tabular-nums;width:44px;text-align:right;flex-shrink:0}.task-bar-track[data-v-5ee3050f]{height:5px;border-radius:var(--radius-full);background:var(--border);overflow:hidden}.task-bar-fill[data-v-5ee3050f]{height:100%;width:var(--w, 0%);background:var(--bar-color, var(--primary));border-radius:var(--radius-full);animation:barGrow-5ee3050f .6s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--d, 0) * 40ms + .12s)}@keyframes barGrow-5ee3050f{0%{width:0%}}.task-dur[data-v-5ee3050f]{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted)}.metrics-carousel-wrap[data-v-5ee3050f]{position:relative;display:flex;align-items:center;gap:6px}.metrics-project-track[data-v-5ee3050f]{display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;flex:1;min-width:0;padding-right:4px}.metrics-project-track[data-v-5ee3050f]::-webkit-scrollbar{display:none}.metrics-chart-title-row[data-v-5ee3050f]{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.metrics-chart-title-row .metrics-chart-title[data-v-5ee3050f]{margin-top:0}.filter-clear[data-v-5ee3050f]{font-family:inherit;font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--primary);background:var(--primary-light);border:1px solid transparent;border-radius:var(--radius-full);padding:5px 12px;cursor:pointer;transition:background .15s ease}.filter-clear[data-v-5ee3050f]:hover{background:var(--primary);color:var(--white)}.project-card[data-v-5ee3050f]{font-family:inherit;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent, var(--primary));border-radius:var(--radius-md);padding:10px 14px;width:220px;flex-shrink:0;display:flex;flex-direction:column;gap:6px;cursor:pointer;animation:statReveal-5ee3050f .4s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--d, 0) * 45ms);transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease,border-color .15s ease}.project-card[data-v-5ee3050f]:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.project-card[data-v-5ee3050f]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.project-card--active[data-v-5ee3050f]{border-color:var(--accent, var(--primary));box-shadow:0 0 0 1px var(--accent, var(--primary));background:var(--surface-light)}.project-card--dimmed[data-v-5ee3050f]{opacity:.45}.project-card--dimmed[data-v-5ee3050f]:hover{opacity:.75}.project-card-head[data-v-5ee3050f]{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.project-card-name[data-v-5ee3050f]{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card-pct[data-v-5ee3050f]{font-size:var(--fs-md);font-weight:var(--fw-black);color:var(--heading);font-variant-numeric:tabular-nums;flex-shrink:0}.project-card-track[data-v-5ee3050f]{height:5px;border-radius:var(--radius-full);background:var(--border);overflow:hidden}.project-card-fill[data-v-5ee3050f]{height:100%;width:var(--w, 0%);background:var(--accent, var(--primary));border-radius:var(--radius-full);animation:barGrow-5ee3050f .6s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--d, 0) * 45ms + .15s)}.project-card-dur[data-v-5ee3050f]{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted)}@media (prefers-reduced-motion: reduce){.metrics-stat--reveal[data-v-5ee3050f],.task-row[data-v-5ee3050f],.task-bar-fill[data-v-5ee3050f],.project-card[data-v-5ee3050f],.project-card-fill[data-v-5ee3050f]{animation:none!important;transition:none!important}}@media (max-width: 960px){.metrics-summary[data-v-5ee3050f]{grid-template-columns:repeat(2,1fr)}.metrics-charts-row[data-v-5ee3050f]{grid-template-columns:1fr}.metrics-donut-wrap[data-v-5ee3050f]{max-width:280px}}@media (max-width: 620px){.metrics-summary[data-v-5ee3050f]{grid-template-columns:1fr}}.user-hero-content[data-v-9cb2729d]{display:flex;flex-direction:column;align-items:flex-start}.user-hero-content .tag[data-v-9cb2729d]{margin-bottom:14px}.user-identity-row[data-v-9cb2729d]{display:flex;align-items:center;gap:16px}.user-identity[data-v-9cb2729d]{display:flex;flex-direction:column;justify-content:center}.user-avatar[data-v-9cb2729d],.user-avatar-img[data-v-9cb2729d]{flex-shrink:0;width:84px;height:84px;border-radius:var(--radius-lg);border:1px solid var(--border-light);box-shadow:var(--shadow-sm)}.user-avatar[data-v-9cb2729d]{background:linear-gradient(155deg,var(--primary),var(--navy-700));color:var(--white);display:flex;align-items:center;justify-content:center;font-size:var(--fs-2xl);font-weight:var(--fw-black);letter-spacing:-.02em}.user-avatar-img[data-v-9cb2729d]{-o-object-fit:cover;object-fit:cover}.user-identity-row .user-identity h1[data-v-9cb2729d]{margin:0 0 2px;font-size:var(--fs-3xl);line-height:1.15}.user-role[data-v-9cb2729d]{font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--text-light);margin:0}.section-lede[data-v-9cb2729d]{color:var(--text-light);margin:-8px 0 24px;max-width:62ch}@media (max-width: 560px){.user-identity-row[data-v-9cb2729d]{gap:12px}.user-avatar[data-v-9cb2729d],.user-avatar-img[data-v-9cb2729d]{width:64px;height:64px;font-size:var(--fs-xl)}}.base-card[data-v-b98ee79d]{background:var(--surface-light);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-5);transition:border-color .2s ease;display:flex;flex-direction:column}.base-card[data-v-b98ee79d]:hover{border-color:var(--accent)}.base-card--highlight[data-v-b98ee79d]{padding:var(--space-6)}.base-card--highlight[data-v-b98ee79d]:hover{background:var(--surface)}.base-card-header[data-v-b98ee79d]{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.base-card-icon[data-v-b98ee79d]{flex-shrink:0;font-size:var(--fs-base);width:34px;height:34px;border-radius:var(--radius-md);background:var(--primary-light);display:flex;align-items:center;justify-content:center;line-height:1}.base-card-title[data-v-b98ee79d]{font-size:var(--fs-sm);font-weight:var(--fw-bold);margin:0;margin-bottom:var(--space-3)}.base-card--highlight .base-card-title[data-v-b98ee79d]{font-size:var(--fs-md)}.base-card-list[data-v-b98ee79d]{padding-left:18px;font-size:var(--fs-sm);color:var(--text-light)}.base-card-list li[data-v-b98ee79d]{margin-bottom:6px}.base-card-text[data-v-b98ee79d]{font-size:var(--fs-base);color:var(--text-light);margin-bottom:0}.base-card--table-fact[data-v-b98ee79d]{border-top:4px solid var(--primary)}.base-card--table-dimension[data-v-b98ee79d]{border-top:4px solid var(--accent)}.table-grid[data-v-abb8ed62]{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-4);margin-top:12px;align-items:stretch}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#c678dd}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:#98c379}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#d19a66}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-title.class_,.hljs-class .hljs-title{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}.page-meta[data-v-c4e63967]{display:flex;align-items:center;gap:14px;margin:0 0 10px;background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:16px 22px;box-shadow:var(--shadow-sm)}.meta-chips[data-v-c4e63967]{display:flex;flex-wrap:wrap;gap:14px;flex:1}.meta-chip[data-v-c4e63967]{display:flex;flex-direction:column;gap:2px;padding-right:22px;border-right:1px solid var(--border-light)}.meta-chip[data-v-c4e63967]:last-child{border-right:none;padding-right:0}.meta-label[data-v-c4e63967]{font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.meta-chip strong[data-v-c4e63967]{font-size:var(--fs-sm);color:var(--heading);font-weight:var(--fw-medium)}.branch code[data-v-c4e63967]{font-size:var(--fs-xs)}.meta-actions[data-v-c4e63967]{flex-shrink:0;margin-left:auto;padding-left:14px;border-left:1px solid var(--border-light)}@media (max-width: 980px){.page-meta[data-v-c4e63967]{flex-direction:column;align-items:stretch}.meta-chip[data-v-c4e63967]{border-right:none;padding-right:0}.meta-actions[data-v-c4e63967]{margin-left:0;padding-left:0;border-left:none;padding-top:14px;border-top:1px solid var(--border-light)}}.meta-actions-group[data-v-9a66a704]{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.meta-actions-group[data-v-9a66a704] .base-btn--outline{background:var(--surface-light)}.meta-actions-group[data-v-9a66a704] .base-btn--outline.base-btn--primary:not(:disabled):hover{background:var(--primary-light)}.refresh-error[data-v-9a66a704]{color:var(--danger);font-size:var(--fs-sm);margin-top:-20px;margin-bottom:20px}.page-tabs[data-v-9a66a704]{margin-bottom:var(--space-2)}.page-tab-list[data-v-9a66a704]{display:flex;flex-wrap:wrap;gap:var(--space-2);background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--space-2);box-shadow:var(--shadow-sm)}.page-tab-btn[data-v-9a66a704]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;padding:var(--space-3) var(--space-5);font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--muted);cursor:pointer;border-radius:var(--radius-md);transition:color .2s ease,background .2s ease}.page-tab-btn[data-v-9a66a704]:hover{color:var(--primary);background:var(--primary-light)}.page-tab-btn.active[data-v-9a66a704]{color:#04121f;background:var(--accent)}.pres-topbar[data-v-3d42a8b6]{display:flex;align-items:center;gap:16px;padding:16px 24px;flex-shrink:0}.pres-exit[data-v-3d42a8b6]{width:38px;height:38px;border-radius:8px;background:#ffffff14;color:#fff;text-decoration:none;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}.pres-exit[data-v-3d42a8b6]:hover{background:#ffffff29}.pres-week-select[data-v-3d42a8b6]{font-family:inherit;font-size:13px;font-weight:500;color:#e7eaef;background:#ffffff14 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%238b9099' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center;border:1px solid rgba(255,255,255,.16);border-radius:6px;padding:7px 32px 7px 12px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:border-color .2s,box-shadow .2s}.pres-week-select[data-v-3d42a8b6]:hover{border-color:#ffffff4d}.pres-week-select[data-v-3d42a8b6]:focus{outline:none;border-color:#1cbed8;box-shadow:0 0 0 2px #1cbef440}.pres-week-select option[data-v-3d42a8b6]{background:#1a1e25;color:#e7eaef;padding:8px 12px}.pres-week-label[data-v-3d42a8b6]{font-size:13px;font-weight:500;color:#eaf1fbbf}.pres-topbar-right[data-v-3d42a8b6]{margin-left:auto;display:flex;align-items:center;gap:12px}.pres-timer[data-v-3d42a8b6]{font-family:SF Mono,Fira Code,monospace;font-size:13px;font-weight:700;color:#6ba3d6;background:#ffffff0f;padding:6px 12px;border-radius:6px}.pres-timer.warn[data-v-3d42a8b6]{color:#e6a54a}.pres-timer.danger[data-v-3d42a8b6]{color:#e66767}.pres-footer[data-v-569450b2]{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:18px;padding:16px 24px 22px}.pres-counter[data-v-569450b2]{font-family:SF Mono,Fira Code,monospace;font-size:12px;color:#eaf1fb80}.pres-dots[data-v-569450b2]{display:flex;gap:8px}.pres-dot[data-v-569450b2]{width:8px;height:8px;border-radius:50%;border:none;background:#fff3;cursor:pointer;padding:0}.pres-dot.active[data-v-569450b2]{background:#1cbed8;width:22px;border-radius:6px}.pres-export-overlay[data-v-775f3eb1]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000d21d9;z-index:1000;display:flex;align-items:center;justify-content:center}.pres-export-box[data-v-775f3eb1]{display:flex;flex-direction:column;align-items:center;gap:16px}.pres-export-box p[data-v-775f3eb1]{font-size:13px;color:#e7eaef;font-weight:500}.pres-spinner[data-v-775f3eb1]{width:40px;height:40px;border-radius:50%;border:3px solid rgba(255,255,255,.15);border-top-color:#1cbed8;animation:pres-spin-775f3eb1 .8s linear infinite}@keyframes pres-spin-775f3eb1{to{transform:rotate(360deg)}}.slide-title[data-v-49fa7417]{display:flex;flex-direction:column;align-items:center;text-align:center}.pres-tag[data-v-49fa7417]{display:inline-block;background:#1cbef429;border:1px solid rgba(28,190,244,.4);color:#1cbed8;padding:6px 16px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.04em;margin-bottom:24px}.slide-title h1[data-v-49fa7417]{font-size:clamp(2rem,5vw,3.5rem);font-weight:900;color:#fff;margin:0 0 14px;letter-spacing:-.02em}.pres-daterange[data-v-49fa7417]{font-size:15px;color:#eaf1fba6;margin-top:6px}.pres-author[data-v-49fa7417]{margin-top:26px;font-size:15px;color:#eaf1fb8c}.pres-stats[data-v-8bfe9710]{display:flex;gap:48px;margin-bottom:32px}.pres-stat[data-v-8bfe9710]{display:flex;flex-direction:column;gap:4px;text-align:center}.pres-stat strong[data-v-8bfe9710]{font-size:32px;color:#fff;font-weight:900}.pres-stat span[data-v-8bfe9710]{font-size:12px;color:#eaf1fb99;text-transform:uppercase;letter-spacing:.06em}.pres-chart-wrap[data-v-8bfe9710]{width:100%}.pres-chart[data-v-8bfe9710]{width:100%;height:380px}.contributions-layout[data-v-3faae2e5]{display:flex;gap:60px;align-items:center;width:100%}.contributions-donut[data-v-3faae2e5]{flex:0 0 400px;height:400px;position:relative}.donut-chart[data-v-3faae2e5]{width:100%;height:100%}.donut-center[data-v-3faae2e5]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.donut-center strong[data-v-3faae2e5]{font-size:28px;font-weight:900;color:#fff;line-height:1}.donut-center span[data-v-3faae2e5]{font-size:12px;color:#eaf1fb80;text-transform:uppercase;letter-spacing:.06em;margin-top:4px}.contributions-list[data-v-3faae2e5]{flex:1;display:flex;flex-direction:column;gap:18px;min-width:0}.contrib-row[data-v-3faae2e5]{animation:contribReveal-3faae2e5 .4s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--d, 0) * 50ms)}@keyframes contribReveal-3faae2e5{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.contrib-header[data-v-3faae2e5]{display:flex;align-items:center;gap:12px;margin-bottom:6px}.contrib-color[data-v-3faae2e5]{width:12px;height:12px;border-radius:3px;flex-shrink:0}.contrib-name[data-v-3faae2e5]{flex:1;font-size:16px;color:#eaf1fbeb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contrib-pct[data-v-3faae2e5]{font-size:18px;font-weight:700;color:#fff;min-width:52px;text-align:right}.contrib-track[data-v-3faae2e5]{height:8px;border-radius:999px;background:#ffffff14;overflow:hidden}.contrib-fill[data-v-3faae2e5]{height:100%;border-radius:999px;transition:width .6s cubic-bezier(.22,1,.36,1)}.contrib-dur[data-v-3faae2e5]{font-size:13px;color:#eaf1fb80;font-family:SF Mono,Fira Code,monospace}.pres-chart-wrap[data-v-0fd79316],.pres-chart[data-v-0fd79316]{width:100%}.pres-content-body[data-v-3ed1cd11]{width:100%;display:flex;gap:40px;align-items:center;text-align:left}.pres-content-body[data-v-3ed1cd11]:not(.has-diagram){justify-content:center}.pres-bullets[data-v-3ed1cd11]{flex:1}.pres-diagram[data-v-3ed1cd11]{flex:1.2;max-width:440px}.pres-diagram[data-v-3ed1cd11] .diagram-wrap{margin:0}.pres-note[data-v-3ed1cd11]{margin-top:24px;font-size:13px;color:#eaf1fb8c;font-style:italic}.pres-thanks[data-v-9ac7d94d]{font-size:20px;color:#6ba3d6;font-weight:500}.presentation[data-v-653c3f55]{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(90% 90% at 20% 0%,rgba(79,157,255,.1),transparent 55%),linear-gradient(160deg,#0d1017,#07090d 75%);color:#e7eaef;display:flex;flex-direction:column;font-family:Inter,sans-serif;z-index:500}.pres-progress[data-v-653c3f55]{height:3px;background:#ffffff14;flex-shrink:0}.pres-progress span[data-v-653c3f55]{display:block;height:100%;background:linear-gradient(90deg,#1cbed8,#3987e5);transition:width .3s ease}.pres-empty[data-v-653c3f55]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center}.pres-empty a[data-v-653c3f55]{color:#1cbed8}.pres-stage[data-v-653c3f55]{position:relative;flex:1;display:flex;align-items:center;justify-content:center;padding:16px 64px;overflow:hidden}.pres-slide[data-v-653c3f55]{width:100%;max-width:1040px;text-align:center;display:flex;flex-direction:column;align-items:center}.pres-slide-wide[data-v-653c3f55]{max-width:100%}.pres-nav[data-v-653c3f55]{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.14);background:#ffffff0d;color:#fff;font-size:20px;cursor:pointer}.pres-nav[data-v-653c3f55]:hover:not(:disabled){background:#ffffff1f}.pres-nav[data-v-653c3f55]:disabled{opacity:.25;cursor:default}.pres-nav.prev[data-v-653c3f55]{left:20px}.pres-nav.next[data-v-653c3f55]{right:20px}.slide-fade-enter-active[data-v-653c3f55],.slide-fade-leave-active[data-v-653c3f55]{transition:opacity .25s ease,transform .25s ease}.slide-fade-enter-from[data-v-653c3f55]{opacity:0;transform:translate(24px)}.slide-fade-leave-to[data-v-653c3f55]{opacity:0;transform:translate(-24px)}@media (max-width: 900px){.pres-stage[data-v-653c3f55]{padding:16px 50px}}:root{--navy-900: #0a2540;--navy-800: #103a63;--navy-700: #17518c;--navy-600: #1f6bb8;--navy-500: #3987e5;--navy-100: #9db8dc;--navy-50: #16233a;--heading-navy: #f2f6fc;--accent: #4f9dff;--accent-soft: rgba(79, 157, 255, .14);--blue-erp: #3987e5;--gray-50: #16181c;--gray-100: #262a31;--gray-600: #8b9099;--gray-700: #aab0ba;--gray-900: #d7dbe2;--bg: #0c0e12;--surface: #14171d;--surface-light: #1a1e25;--border: #262a31;--border-light: #20242b;--primary: var(--accent);--primary-light: rgba(79, 157, 255, .12);--primary-dark: #9dc2ff;--success: #3ecf8e;--success-bg: rgba(62, 207, 142, .13);--warning: #e5b84b;--warning-bg: rgba(229, 184, 75, .14);--danger: #f16a6d;--danger-bg: rgba(241, 106, 109, .14);--text: #e7eaef;--text-light: var(--gray-700);--muted: var(--gray-600);--heading: var(--heading-navy);--shadow: 0 16px 48px rgba(0, 0, 0, .5);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-hover: 0 20px 50px rgba(0, 0, 0, .55);--sidebar-width: 286px;--white: #fff;--dg-1: #3987e5;--dg-2: #d95926;--dg-3: #199e70;--dg-4: #c98500;--dg-5: #9085e9;--dg-6: #e66767;--dg-line: #4a5160;--dg-node-bg: #1a1e25;--dg-node-text: #e7eaef;--fs-2xs: 11px;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 14px;--fs-md: 16px;--fs-lg: 19px;--fs-xl: 22px;--fs-2xl: 28px;--fs-3xl: 34px;--fs-hero: 46px;--fw-regular: 400;--fw-medium: 600;--fw-bold: 700;--fw-black: 800;--font-mono: Consolas, "SF Mono", monospace;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 44px}:root{--pres-highlight-warm: #f0c674;--pres-highlight-cool: #9dd6ff;--pres-danger: #f16a6d;--pres-tint: #dfe6f2}:root[data-theme=light]{--navy-900: #0a2540;--navy-800: #103a63;--navy-700: #17518c;--navy-600: #1f6bb8;--navy-500: #1f6bb8;--navy-100: #b8cae4;--navy-50: #eef3fb;--heading-navy: #0e1b2e;--accent: #1f6bb8;--accent-soft: rgba(31, 107, 184, .1);--gray-50: #f4f6f9;--gray-100: #e4e8ee;--gray-600: #6b727d;--gray-700: #4d545e;--gray-900: #2b3038;--bg: #f6f7f9;--surface: #ffffff;--surface-light: #f9fafc;--border: #e4e8ee;--border-light: #edf0f4;--primary: #1f6bb8;--primary-light: #eef3fb;--primary-dark: #103a63;--success: #12995c;--success-bg: #e4f6ed;--warning: #b07d10;--warning-bg: #fbf1d8;--danger: #d33f43;--danger-bg: #fbe4e5;--text: #1a1d22;--text-light: #4d545e;--muted: #6b727d;--heading: #0e1b2e;--shadow: 0 12px 32px rgba(15, 30, 55, .1);--shadow-sm: 0 1px 3px rgba(15, 30, 55, .07);--shadow-hover: 0 18px 40px rgba(15, 30, 55, .13);--dg-1: #2a78d6;--dg-2: #eb6834;--dg-3: #1baf7a;--dg-4: #4a3aa7;--dg-5: #eda100;--dg-6: #e34948;--dg-line: #b8c0cc;--dg-node-bg: #ffffff;--dg-node-text: #1a1d22;--pres-highlight-warm: #b07d10;--pres-highlight-cool: #1f6bb8;--pres-danger: #d33f43;--pres-tint: #0e1b2e}:root[data-theme=light] code{background:var(--navy-50);color:var(--navy-700)}:root[data-theme=light] th{background:var(--navy-50);color:var(--navy-700);border-bottom-color:var(--navy-100)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);font-family:Inter,sans-serif;color:var(--text);line-height:1.75}::-moz-selection{background:var(--navy-500);color:var(--white)}::selection{background:var(--navy-500);color:var(--white)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#2c313a;border-radius:var(--radius-full);border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:#3a404b}:root[data-theme=light] ::-webkit-scrollbar-thumb{background:#c4cdd5}:root[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#99a8b5}h1,h2,h3,h4{color:var(--heading);letter-spacing:-.01em}code{background:#4f9dff1a;color:#9dc2ff;padding:1px 6px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.88em}pre code{background:transparent;color:inherit;padding:0;border-radius:0;font-size:inherit;display:block}.mono{font-family:Consolas,SF Mono,monospace;font-size:.92em;letter-spacing:-.01em}.note{margin-top:var(--space-3);display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--fs-base)}.sub-title+.note{margin-top:var(--space-3)}.note-icon{flex-shrink:0;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-2xs);font-weight:var(--fw-black);color:var(--white)}.note-text{color:var(--gray-900)}.note.success{background:var(--success-bg)}.note.success .note-icon{background:var(--success)}.note.warning{background:var(--warning-bg)}.note.warning .note-icon{background:var(--warning)}.note.danger{background:var(--danger-bg)}.note.danger .note-icon{background:var(--danger)}.formula-list{margin-top:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.sub-title+.formula-list{margin-top:var(--space-3)}.formula-row{display:flex;align-items:baseline;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface-light);border:1px solid var(--border-light);border-radius:var(--radius-md);flex-wrap:wrap}.formula-label{flex-shrink:0;min-width:120px;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--muted)}.formula-expr{color:var(--navy-700);font-size:var(--fs-sm)}@media (max-width: 620px){.formula-row{flex-direction:column;gap:4px}}.layout{display:flex;min-height:100vh}.sidebar{--sb-fg: #e9edf4;--sb-fg-muted: #8a93a3;--sb-fg-dim: #6a7383;--sb-item: #aab2c0;--sb-hover-bg: rgba(255, 255, 255, .05);--sb-active-bg: rgba(79, 157, 255, .14);--sb-active-fg: #ffffff;--sb-border: rgba(255, 255, 255, .07);--sb-accent: var(--accent);width:var(--sidebar-width);background:#0a0c11;border-right:1px solid var(--sb-border);color:var(--sb-fg);position:fixed;left:0;top:0;bottom:0;padding:0;display:flex;flex-direction:column;z-index:100}:root[data-theme=light] .sidebar{--sb-fg: #eef3fb;--sb-fg-muted: #9fb2ce;--sb-fg-dim: #7d92b3;--sb-item: #c3d1e6;--sb-hover-bg: rgba(255, 255, 255, .07);--sb-active-bg: rgba(79, 157, 255, .2);--sb-active-fg: #ffffff;--sb-border: rgba(255, 255, 255, .09);background:#0d1a2d;border-right-color:transparent}.sidebar-head{padding:20px 16px 14px;border-bottom:1px solid var(--sb-border)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;padding:6px;border-radius:var(--radius-md);transition:background .18s ease}.brand:hover{background:var(--sb-hover-bg)}.brand-mark{width:40px;height:40px;border-radius:11px;background:linear-gradient(140deg,#4f9dff,#1f6bb8);box-shadow:0 4px 14px #1f6bb866,inset 0 1px #ffffff40;display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);font-weight:var(--fw-black);color:#fff;letter-spacing:-.02em;flex-shrink:0}.brand-text{display:flex;flex-direction:column;gap:1px;min-width:0}.brand-title{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--sb-fg);letter-spacing:-.01em;line-height:1.2}.brand-sub{font-size:var(--fs-2xs);color:var(--sb-fg-muted);line-height:1.2}.sidebar-scroll{flex:1;overflow-y:auto;padding:12px 12px 16px;display:flex;flex-direction:column;gap:2px}.sidebar-scroll::-webkit-scrollbar{width:8px}.sidebar-scroll::-webkit-scrollbar-thumb{background:#ffffff1f;border:2px solid transparent;background-clip:padding-box;border-radius:var(--radius-full)}.sidebar-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff38;background-clip:padding-box}.nav-section{display:flex;flex-direction:column;gap:2px}.nav-heading{display:flex;align-items:center;justify-content:space-between;margin:18px 8px 6px;font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.09em;text-transform:uppercase;color:var(--sb-fg-dim)}.nav-heading-action{width:22px;height:22px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--sb-fg-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:var(--fs-sm);transition:background .18s ease,color .18s ease}.nav-heading-action:hover{background:var(--sb-hover-bg);color:var(--sb-active-fg)}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-md);text-decoration:none;color:var(--sb-item);font-size:var(--fs-sm);font-weight:var(--fw-medium);position:relative;transition:background .16s ease,color .16s ease;min-width:0}.nav-item:hover{background:var(--sb-hover-bg);color:var(--sb-fg)}.nav-item.active{background:var(--sb-active-bg);color:var(--sb-active-fg)}.nav-item.active:before{content:"";position:absolute;left:-12px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:0 var(--radius-full) var(--radius-full) 0;background:var(--sb-accent)}.nav-item-icon{flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--sb-fg-muted);transition:color .16s ease}.nav-item:hover .nav-item-icon,.nav-item.active .nav-item-icon{color:var(--sb-accent)}.nav-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-group{display:flex;flex-direction:column}.nav-group-row{display:flex;align-items:center;gap:2px}.nav-group-link{flex:1;min-width:0}.nav-group-toggle{flex-shrink:0;width:26px;height:30px;border:none;background:transparent;color:var(--sb-fg-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--radius-sm);transition:background .16s ease,color .16s ease}.nav-group-toggle:hover{background:var(--sb-hover-bg);color:var(--sb-fg)}.nav-group-caret{display:flex;font-size:var(--fs-sm);transition:transform .2s ease}.nav-group.open .nav-group-caret{transform:rotate(90deg)}.nav-group-children{display:flex;flex-direction:column;gap:1px;margin:2px 0 4px 19px;padding-left:11px;border-left:1px solid var(--sb-border)}.nav-subitem{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:var(--radius-sm);text-decoration:none;color:var(--sb-item);font-size:var(--fs-sm);transition:background .16s ease,color .16s ease;min-width:0}.nav-subitem:hover{background:var(--sb-hover-bg);color:var(--sb-fg)}.nav-subitem.active{color:var(--sb-active-fg);font-weight:var(--fw-medium)}.nav-subitem-dot{flex-shrink:0;width:5px;height:5px;border-radius:50%;background:var(--sb-fg-dim);transition:background .16s ease}.nav-subitem:hover .nav-subitem-dot,.nav-subitem.active .nav-subitem-dot{background:var(--sb-accent)}.sidebar-foot{padding:12px;border-top:1px solid var(--sb-border);display:flex;flex-direction:column;gap:12px}.theme-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border-radius:var(--radius-md);border:1px solid var(--sb-border);background:var(--sb-hover-bg);color:var(--sb-item);font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease}.theme-toggle-icon{display:flex;font-size:var(--fs-md);flex-shrink:0;color:var(--sb-fg-muted);transition:color .18s ease}.theme-toggle:hover{background:#4f9dff1f;border-color:#4f9dff52;color:var(--sb-active-fg)}.theme-toggle:hover .theme-toggle-icon{color:var(--sb-accent)}.sidebar-meta{display:flex;flex-direction:column;gap:1px;padding:0 4px;color:var(--sb-fg-dim);font-size:var(--fs-2xs);line-height:1.5}main{margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width));padding:var(--space-6) 20px var(--space-8)}.hero{background:radial-gradient(120% 140% at 15% 0%,rgba(79,157,255,.14),transparent 55%),var(--surface);color:var(--text);border-radius:var(--radius-xl);overflow:hidden;position:relative;margin-bottom:10px;border:1px solid var(--border)}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.03),transparent 30%)}.hero-content{position:relative;z-index:2;padding:var(--space-8) var(--space-8)}.tag{display:inline-flex;align-items:center;gap:8px;background:var(--accent-soft);border:1px solid rgba(79,157,255,.28);color:var(--accent);padding:5px 14px;border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:var(--fw-medium);letter-spacing:.06em;text-transform:uppercase;margin-bottom:22px}.hero h1{font-size:var(--fs-hero);font-weight:var(--fw-black);margin-bottom:16px;color:var(--heading);letter-spacing:-.03em;line-height:1.05}.hero p{color:var(--text-light);font-size:var(--fs-md)}.hero-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--space-4);margin-top:var(--space-6)}.hero-card{background:var(--surface-light);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px 20px;display:flex;flex-direction:column;justify-content:center;gap:8px;min-height:100px;transition:border-color .2s}.hero-card:hover{border-color:var(--accent)}.hero-card h3{font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:0;overflow-wrap:anywhere}.hero-card span{font-size:clamp(14px,1.2vw,17px);font-weight:var(--fw-bold);color:var(--heading);line-height:1.35;overflow-wrap:anywhere;word-break:break-word}.section{background:var(--surface);padding:var(--space-7);border-radius:var(--radius-lg);margin-bottom:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--border);animation:fadeIn .4s ease both}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.section{animation:none}}.section h2{font-size:var(--fs-2xl);margin-bottom:22px;position:relative;padding-left:16px;letter-spacing:-.02em}.section h2:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:var(--radius-full);background:var(--accent)}.section p{color:var(--text-light);margin-bottom:20px}.info{margin-top:var(--space-3);border-radius:var(--radius-md);padding:var(--space-5) var(--space-6);border-left:4px solid transparent}.sub-title+.info{margin-top:var(--space-3)}.info.success{background:var(--success-bg);border-left-color:var(--success)}.info.warning{background:var(--warning-bg);border-left-color:var(--warning)}.info.danger{background:var(--danger-bg);border-left-color:var(--danger)}.info-head{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.info-icon{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:var(--fw-black);color:var(--white)}.info.success .info-icon{background:var(--success)}.info.warning .info-icon{background:var(--warning)}.info.danger .info-icon{background:var(--danger)}.info strong{font-size:var(--fs-md);font-weight:var(--fw-bold)}.info.success strong{color:var(--success)}.info.warning strong{color:var(--warning)}.info.danger strong{color:var(--danger)}.info-body{color:var(--gray-900)}.info-body :deep(strong){background:#0000000b;padding:1px 5px;border-radius:var(--radius-sm);font-weight:var(--fw-medium);color:inherit}.info ul{padding-left:22px}.info li{margin-bottom:9px;color:var(--gray-900)}.code-block,.code-container{margin-top:12px;background:#0a0c10;border:1px solid var(--border);border-radius:var(--radius-md);overflow:auto;max-height:420px}.sub-title+.code-block,.sub-title+.code-wrap{margin-top:12px}.code-container.expanded{max-height:none}.code-block pre,.code-container pre{overflow:auto;padding:28px 30px;margin:0;white-space:pre}.code-block code,.code-container pre{background:transparent;color:#cfe0f5;font-size:var(--fs-sm);font-family:var(--font-mono)}.code-container .hljs{background:transparent;padding:0}.code-block::-webkit-scrollbar,.code-container::-webkit-scrollbar,.code-block pre::-webkit-scrollbar,.code-container pre::-webkit-scrollbar{width:7px;height:7px}.code-block::-webkit-scrollbar-track,.code-container::-webkit-scrollbar-track,.code-block pre::-webkit-scrollbar-track,.code-container pre::-webkit-scrollbar-track{background:transparent}.code-block::-webkit-scrollbar-thumb,.code-container::-webkit-scrollbar-thumb,.code-block pre::-webkit-scrollbar-thumb,.code-container pre::-webkit-scrollbar-thumb{background:#4f9dff47;border-radius:var(--radius-full);border:none}.code-block::-webkit-scrollbar-thumb:hover,.code-container::-webkit-scrollbar-thumb:hover,.code-block pre::-webkit-scrollbar-thumb:hover,.code-container pre::-webkit-scrollbar-thumb:hover{background:#4f9dff80}.code-block,.code-container,.code-block pre,.code-container pre{scrollbar-width:thin;scrollbar-color:rgba(79,157,255,.28) transparent}.code-expand-btn{display:block;width:100%;margin-top:8px;padding:10px;background:var(--surface-light);border:1px solid var(--border-light);border-radius:var(--radius-md);color:var(--primary);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;text-align:center}.code-expand-btn:hover{background:var(--primary-light)}table{width:100%;border-collapse:collapse;margin-top:var(--space-3);font-size:var(--fs-sm)}.sub-title+table{margin-top:var(--space-3)}th{background:var(--surface-light);color:var(--heading);padding:var(--space-3) var(--space-4);text-align:left;font-weight:var(--fw-bold);border-bottom:1px solid var(--border);white-space:nowrap}td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);vertical-align:top;color:var(--gray-900)}tbody tr:hover{background:var(--surface-light)}.mono-cell{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-light)}.mermaid{margin:0 auto;display:flex;justify-content:center}.mermaid svg{max-width:100%;height:auto}blockquote{border-left:3px solid var(--accent);background:var(--surface-light);padding:20px 26px;border-radius:0 var(--radius-md) var(--radius-md) 0;margin:25px 0;color:var(--text)}hr{border:none;height:1px;background:var(--border);margin:60px 0}.mobile-topbar{display:none;position:fixed;top:0;left:0;right:0;height:56px;background:#0a0c11;border-bottom:1px solid var(--border);color:#fff;align-items:center;gap:12px;padding:0 14px;z-index:1100}:root[data-theme=light] .mobile-topbar{background:#0d1a2d}.hamburger{width:40px;height:40px;border:none;background:#ffffff0f;border-radius:var(--radius-md);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;transition:background .18s ease}.hamburger:hover{background:#ffffff1f}.hamburger span{display:block;width:17px;height:2px;border-radius:var(--radius-sm);background:#fff}.mobile-brand{display:flex;align-items:center;gap:10px;font-weight:var(--fw-bold);font-size:var(--fs-base);color:#fff}.mobile-logo{width:30px;height:30px;border-radius:9px;background:linear-gradient(140deg,#4f9dff,#1f6bb8);display:flex;align-items:center;justify-content:center;font-size:var(--fs-2xs);font-weight:var(--fw-black);color:#fff;letter-spacing:-.02em}.mobile-theme-toggle{margin-left:auto;width:40px;height:40px;border:none;background:#ffffff0f;border-radius:var(--radius-md);cursor:pointer;font-size:var(--fs-md);color:#fff;display:flex;align-items:center;justify-content:center;transition:background .18s ease}.mobile-theme-toggle:hover{background:#ffffff1f}.sidebar-overlay{display:none}@media (max-width: 980px){.mobile-topbar{display:flex}.sidebar{transform:translate(-100%);transition:transform .28s ease;z-index:1200;box-shadow:0 0 40px #0006}.sidebar.open{transform:translate(0)}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#04060a99;z-index:1150}main{margin:0;width:100%;padding:76px clamp(14px,4vw,24px) 28px}.hero-content{padding:32px 28px}.hero h1{font-size:var(--fs-3xl)}.section{padding:24px 20px}}@media (max-width: 600px){.hero-content{padding:26px 20px}}.section-header{margin-bottom:var(--space-6)}.section-header-top{display:flex;gap:var(--space-4);align-items:center;margin-bottom:var(--space-3)}.section-number{flex-shrink:0;width:46px;height:46px;border-radius:var(--radius-md);background:var(--primary-light);border:1px solid var(--border);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:var(--fw-black);font-size:var(--fs-md);letter-spacing:-.02em}.section-header h2{font-size:var(--fs-xl);line-height:1.15;margin:0;padding-left:0;letter-spacing:-.02em}.section-header h2:before{display:none}.section-header p{color:var(--text-light);line-height:1.6;margin:0}.sub-title{font-size:var(--fs-lg);margin:var(--space-6) 0 var(--space-4);padding-top:var(--space-5);border-top:1px solid var(--border-light);display:flex;align-items:center;gap:var(--space-3)}.sub-title:before{content:"";width:10px;height:10px;border-radius:var(--radius-sm);background:var(--primary);display:inline-block}.diagram-wrap{position:relative;margin:var(--space-7) 0;background:radial-gradient(120% 120% at 0% 0%,rgba(79,157,255,.05),transparent 60%),var(--surface);padding:var(--space-7) var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--border)}.diagram-wrap.zoomable{cursor:zoom-in}.diagram-wrap :deep(.dg-sub),.lightbox-inner .dg-sub{display:block;margin-top:3px;font-size:.78em;font-weight:400;opacity:.72;letter-spacing:.01em}.diagram-wrap :deep(.nodeLabel),.diagram-wrap :deep(.edgeLabel){font-weight:600}.diagram-wrap :deep(.edgeLabel){font-size:.82em}.diagram-wrap :deep(.edgeLabel),.diagram-wrap :deep(.edgeLabel *),.diagram-wrap :deep(.edgeLabels div),.diagram-wrap :deep(.edgeLabels span),.diagram-wrap :deep(.edgeLabels p),.diagram-wrap :deep(.edgeLabels foreignObject div){background:transparent!important;background-color:transparent!important;color:var(--text)!important}.diagram-wrap :deep(.edgeLabel rect),.diagram-wrap :deep(.edgeLabels rect),.diagram-wrap :deep(.edgeLabel .labelBkg),.diagram-wrap :deep(.edgeLabels .labelBkg){fill:transparent!important;opacity:0!important}.diagram-wrap :deep(text),.diagram-wrap :deep(.nodeLabel),.diagram-wrap :deep(.edgeLabel),.diagram-wrap :deep(.cluster-label),.diagram-wrap :deep(span),.diagram-wrap :deep(div){text-shadow:none!important;filter:none!important}.diagram-wrap :deep(.cluster-label){font-size:.74em;font-weight:700;letter-spacing:.1em}.diagram-wrap :deep(.cluster rect){rx:16;ry:16;stroke-width:1.5px}.zoom-hint{position:absolute;top:12px;right:12px;background:var(--surface-light);border:1px solid var(--border);color:var(--muted);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:.04em;text-transform:uppercase;padding:5px 10px;border-radius:var(--radius-full);display:flex;align-items:center;gap:6px;pointer-events:none;transition:opacity .2s}.diagram-wrap:hover .zoom-hint{color:var(--accent);border-color:var(--accent)}.architecture-highlight{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-4);margin-top:var(--space-2)}.highlight-card{background:var(--surface-light);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-6);transition:border-color .2s ease,background .2s ease}.highlight-card:hover{border-color:var(--accent);background:var(--surface)}.highlight-card{display:flex;flex-direction:column}.highlight-card-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.highlight-card .icon{flex-shrink:0;font-size:var(--fs-base);width:34px;height:34px;border-radius:var(--radius-md);background:var(--primary-light);display:flex;align-items:center;justify-content:center;line-height:1}.highlight-card h3{font-size:var(--fs-md);font-weight:var(--fw-bold);margin:0}.highlight-card p{font-size:var(--fs-base);color:var(--text-light);margin-bottom:0}.flow-container{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap;margin-top:var(--space-5);padding:var(--space-6);background:var(--surface-light);border-radius:var(--radius-lg);border:1px solid var(--border-light)}.flow-item{flex:1;min-width:140px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-3);text-align:center;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;justify-content:center;align-items:center;transition:border-color .2s ease}.flow-item:hover{border-color:var(--accent)}.flow-item strong{display:block;margin:6px 0 4px;font-size:var(--fs-base);font-weight:var(--fw-bold)}.flow-item span{font-size:var(--fs-xs);color:var(--muted)}.flow-icon{font-size:var(--fs-xl)}.flow-item.primary{border-top:3px solid var(--dg-1)}.flow-item.aws{border-top:3px solid var(--dg-5)}.flow-item.python{border-top:3px solid var(--dg-3)}.flow-item.redis{border-top:3px solid var(--dg-6)}.flow-arrow{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:var(--fs-lg);padding:0 2px}.architecture-box{margin-top:12px;padding:var(--space-7);background:var(--surface-light);border:1px solid var(--border-light);border-radius:var(--radius-lg)}.sub-title+.architecture-box{margin-top:var(--space-5)}.architecture-box h3{font-size:var(--fs-md);font-weight:var(--fw-bold);margin-bottom:var(--space-5)}.steps-intro{margin-bottom:var(--space-5)}.sequence{display:flex;flex-direction:column;gap:var(--space-4)}.sequence-step{display:flex;gap:var(--space-4);align-items:center;background:var(--surface);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);border:1px solid var(--border-light)}.sequence-step span{flex-shrink:0;width:30px;height:30px;border-radius:var(--radius-full);background:var(--primary);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);font-weight:var(--fw-bold)}.sequence-step p{margin-bottom:0;color:var(--text-light);font-size:var(--fs-base)}.cards-grid{display:grid;grid-template-columns:repeat(var(--cards-cols, 3),1fr);gap:var(--space-4);margin-top:var(--space-5)}@media (max-width: 900px){.cards-grid{grid-template-columns:repeat(min(var(--cards-cols, 3),2),1fr)}}@media (max-width: 560px){.cards-grid{grid-template-columns:1fr}}.table-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-4);margin-top:12px;align-items:stretch}.sub-title+.table-grid{margin-top:var(--space-5)}.etl-process{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4)}.etl-item{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--space-4);transition:border-color .2s ease}.etl-item:hover{border-color:var(--accent)}.etl-item-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.etl-item-header span{flex-shrink:0;width:28px;height:28px;border-radius:var(--radius-sm);background:var(--primary-light);color:var(--primary-dark);display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:var(--fw-bold)}.etl-item-header h4{font-size:var(--fs-base);font-weight:var(--fw-bold);margin:0;white-space:nowrap}.etl-item p{font-size:var(--fs-xs);color:var(--text-light);margin-bottom:0}.progress-bar{position:fixed;top:0;left:0;height:4px;width:0%;background:linear-gradient(90deg,var(--navy-500),var(--accent));z-index:1200;transition:width .1s ease-out}.back-to-top{position:fixed;right:25px;bottom:25px;width:46px;height:46px;border-radius:var(--radius-full);background:var(--accent);color:#04121f;border:none;cursor:pointer;font-size:var(--fs-md);box-shadow:var(--shadow);display:none;align-items:center;justify-content:center;z-index:999;transition:transform .2s ease,background .2s ease}.back-to-top.visible{display:flex}.back-to-top:hover{transform:translateY(-4px)}.floating-menu{position:fixed;right:25px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:var(--space-3);z-index:999}.floating-menu a{width:45px;height:45px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;background:var(--surface);color:var(--navy-500);text-decoration:none;font-weight:var(--fw-bold);box-shadow:0 5px 20px #00000026;position:relative}.floating-menu a.active{background:var(--primary);color:var(--white)}.floating-menu span{position:absolute;right:55px;opacity:0;white-space:nowrap;transition:.2s;background:var(--navy-900);color:var(--white);padding:4px var(--space-3);border-radius:var(--radius-sm);font-size:var(--fs-xs)}.floating-menu a:hover span{opacity:1}@media (max-width: 980px){.floating-menu{display:none}}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#04060ae0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:none;align-items:center;justify-content:center;flex-direction:column}.lightbox-overlay.open{display:flex}.lightbox-stage{width:92vw;height:78vh;overflow:hidden;display:flex;align-items:center;justify-content:center;cursor:grab;touch-action:none}.lightbox-stage:active{cursor:grabbing}.lightbox-inner{transform-origin:center center;transition:transform .05s linear;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-7);display:flex;align-items:center;justify-content:center}.lightbox-inner svg{max-width:none!important;width:min(84vw,1500px);height:auto;max-height:70vh}.lightbox-inner img{max-width:min(84vw,1500px);max-height:70vh;height:auto;border-radius:var(--radius-sm);display:block}.lightbox-toolbar{margin-top:var(--space-5);display:flex;align-items:center;gap:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);padding:6px}.lightbox-toolbar button{width:40px;height:40px;border-radius:var(--radius-full);border:none;background:transparent;color:var(--text);font-size:var(--fs-md);cursor:pointer;font-weight:var(--fw-bold);display:flex;align-items:center;justify-content:center;transition:background .18s ease,color .18s ease}.lightbox-toolbar button:hover{background:var(--primary-light);color:var(--primary)}.lightbox-close{position:absolute;top:22px;right:28px;width:44px;height:44px;border-radius:var(--radius-full);border:1px solid rgba(255,255,255,.18);background:#ffffff1a;color:#fff;font-size:var(--fs-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .18s ease}.lightbox-close:hover{background:#ffffff38}.lightbox-caption{color:#ffffffb8;font-size:var(--fs-sm);margin-top:12px}.tab-group{margin-top:var(--space-5)}.tab-list{display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--border-light);margin-bottom:var(--space-6)}.tab-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;border-bottom:2px solid transparent;padding:var(--space-3) var(--space-4);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--muted);cursor:pointer;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color .2s ease,background .2s ease,border-color .2s ease}.tab-btn:hover{color:var(--primary);background:var(--primary-light)}.tab-btn.active{color:var(--primary);border-bottom-color:var(--accent);background:var(--primary-light)}.tab-panel>*:first-child{margin-top:0}@media (max-width: 760px){.flow-container{flex-direction:column}.flow-arrow{transform:rotate(90deg);padding:6px 0}.section-header-top{flex-direction:column;align-items:flex-start;gap:var(--space-2)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#04060ab8;z-index:2100;display:flex;align-items:center;justify-content:center;padding:20px}.modal-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 30px;box-shadow:var(--shadow);width:100%;max-width:var(--modal-w, 460px)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.modal-cancel-btn{font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);padding:8px 16px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.modal-cancel-btn:hover{background:var(--surface-light)}.pres-h2{font-size:28px;color:#fff;margin-bottom:30px;font-weight:900}.slide-base{display:flex;flex-direction:column;align-items:center;width:100%}.pres-bullets{list-style:none;padding:0;display:flex;flex-direction:column;gap:16px}.pres-bullets li{font-size:15px;line-height:1.6;color:#eaf1fbeb;padding-left:22px;position:relative}.pres-bullets li:before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:3px;background:#1cbed8}.pres-bullets-lg li{font-size:18px}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.visible{visibility:visible}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.flex-shrink{flex-shrink:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.border{border-width:1px}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media print{.mobile-topbar,.sidebar,aside,.footer,footer,.back-to-top,.progress-bar,.floating-menu,.sidebar-overlay,.no-print,.meta-actions-group,.page-meta,.zoom-hint,.team-metrics,.tag{display:none!important}html,body,#app,.layout,main{display:block!important;margin:0!important;padding:0!important;width:100%!important;max-width:none!important;background:#fff!important}main{padding:0!important}body,main,.hero,.hero p,.section,p,li,td,th{color:#24292f!important;font-family:-apple-system,Segoe UI,Helvetica Neue,Arial,sans-serif!important;font-size:10.5pt!important;line-height:1.6!important}@page{margin:16mm 14mm}.hero{background:none!important;box-shadow:none!important;border:none!important;border-bottom:1px solid #d0d7de!important;padding:0 0 4mm!important;margin-bottom:6mm!important}.hero h1{color:#1a1a1a!important;font-size:20pt!important;font-weight:700!important;margin:0 0 3mm!important}.hero-grid{display:flex!important;flex-wrap:wrap;gap:4mm;margin-top:4mm!important}.hero-card{background:none!important;border:none!important;box-shadow:none!important;padding:0!important;color:#24292f!important}.hero-card h3{font-size:8pt!important;text-transform:uppercase;letter-spacing:.03em;color:#57606a!important;font-weight:600!important;margin:0!important}.hero-card span{font-size:9.5pt!important;color:#24292f!important}.section{-moz-column-break-before:page;break-before:page;page-break-before:always;-moz-column-break-inside:avoid;break-inside:avoid;background:none!important;border:none!important;box-shadow:none!important;padding:0!important;margin:0 0 6mm!important}.hero+.section,.section:first-of-type{-moz-column-break-before:auto;break-before:auto;page-break-before:auto}.section-header{border:none!important;background:none!important;padding:0!important;margin-bottom:4mm!important}.section-number{display:none!important}.section-header-top h2,.section-header h2{font-size:15pt!important;font-weight:700!important;color:#1a1a1a!important;border-bottom:1px solid #d0d7de!important;padding-bottom:2mm!important;margin:0 0 3mm!important}.section-header p{color:#57606a!important;font-size:9.5pt!important}code{background:#eef0f2!important;color:#24292f!important;border:none!important;border-radius:3px;padding:.1em .35em!important;font-family:SF Mono,Consolas,monospace!important;font-size:9pt!important}strong{font-weight:700!important;color:#1a1a1a!important}.code-container{background:#f6f8fa!important;border:1px solid #d0d7de!important;border-radius:6px;box-shadow:none!important;max-height:none!important;overflow:visible!important}.code-container pre{background:none!important}.code-container code{background:none!important;padding:0!important}.code-expand-btn{display:none!important}.info{background:#f6f8fa!important;border:none!important;border-left:3px solid #8a97a6!important;box-shadow:none!important;border-radius:0 4px 4px 0;padding:3mm 4mm!important;-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.info.success{border-left-color:#1a7f37!important}.info.warning{border-left-color:#9a6700!important}.info.danger{border-left-color:#cf222e!important}.info.note{border-left-color:#57606a!important}.info-head{color:#1a1a1a!important;font-weight:700!important}.info-icon{display:none!important}.info-body,.info-body li{color:#24292f!important}.cards-grid{display:block!important}.base-card{background:none!important;border:none!important;border-bottom:1px solid #eaeef2!important;box-shadow:none!important;border-radius:0!important;padding:3mm 0!important;-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.base-card .base-card-title{color:#1a1a1a!important;font-size:10.5pt!important;font-weight:700!important}.base-card .base-card-list li{color:#24292f!important}.etl-process,.sequence{display:block!important}.etl-item,.sequence-step{background:none!important;border:none!important;border-bottom:1px solid #eaeef2!important;box-shadow:none!important;border-radius:0!important;padding:3mm 0!important;-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.etl-item-header span,.sequence-step span{background:#eef0f2!important;color:#1a1a1a!important}.etl-item-header h4{color:#1a1a1a!important;white-space:normal!important}.etl-item p,.sequence-step p{color:#24292f!important}table{border-collapse:collapse!important;width:100%!important}th,td{border:1px solid #d0d7de!important;padding:1.5mm 3mm!important}th{background:#f6f8fa!important;font-weight:700!important;color:#1a1a1a!important}.zoom-hint{display:none!important}.diagram-wrap{border:none!important;background:none!important;box-shadow:none!important;padding:0!important;cursor:default!important}.mermaid,.mermaid svg,.mermaid svg *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.info-box,table,pre,.diagram-wrap,.mermaid,.mermaid svg{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.diagram-wrap,.mermaid,.mermaid svg,img{max-width:100%!important;height:auto!important}a{text-decoration:none;color:#0969da!important}h1,h2,h3,h4,.section-header{-moz-column-break-after:avoid;break-after:avoid;page-break-after:avoid}}
