/* ==========================================================================
   Growth Tracker theme — "Night garden"
   Glass cards on a deep ink background with soft emerald/indigo aurora.
   ========================================================================== */
:root {
    --gt-num-font: 'Space Grotesk', 'Inter', ui-sans-serif, system-ui, sans-serif;
    --gt-radius: 1.1rem;
    --gt-emerald: #10b981;
    --gt-emerald-soft: #34d399;
    --gt-gold: #fbbf24;
    --gt-rose: #fb7185;
    --gt-sky: #38bdf8;
    --gt-glass: rgb(255 255 255 / .75);
    --gt-glass-border: rgb(15 23 42 / .08);
    --gt-text-dim: rgb(71 85 105);
    --gt-shadow: 0 1px 2px rgb(15 23 42 / .05), 0 8px 24px -12px rgb(15 23 42 / .15);
}
.dark {
    --gt-glass: rgb(255 255 255 / .035);
    --gt-glass-border: rgb(255 255 255 / .07);
    --gt-text-dim: rgb(148 163 184);
    --gt-shadow: 0 1px 0 rgb(255 255 255 / .04) inset, 0 12px 32px -16px rgb(0 0 0 / .6);
}

/* ---------- Page background ---------- */
.fi-body {
    background:
        radial-gradient(900px 500px at 12% -10%, rgb(16 185 129 / .10), transparent 60%),
        radial-gradient(800px 500px at 100% 0%, rgb(99 102 241 / .08), transparent 60%),
        #f6f8fb;
    background-attachment: fixed;
}
.dark .fi-body {
    background:
        radial-gradient(900px 520px at 12% -10%, rgb(16 185 129 / .13), transparent 60%),
        radial-gradient(800px 520px at 100% 0%, rgb(99 102 241 / .12), transparent 60%),
        radial-gradient(700px 600px at 50% 120%, rgb(14 165 233 / .06), transparent 60%),
        #05080f;
    background-attachment: fixed;
}
.dark .fi-topbar, .dark .fi-topbar-ctn > * { background: rgb(5 8 15 / .6) !important; backdrop-filter: blur(14px); }
.dark .fi-sidebar { background: transparent; }

/* Sidebar: active item gets an emerald pill with a glowing edge */
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn {
    background: linear-gradient(90deg, rgb(16 185 129 / .18), rgb(16 185 129 / .04));
    box-shadow: inset 2px 0 0 var(--gt-emerald);
}
.fi-sidebar-item-btn { transition: background .2s ease, transform .2s ease; }
.fi-sidebar-item-btn:hover { transform: translateX(2px); }

/* ---------- Glass sections & cards ---------- */
.fi-section:not(.fi-section-not-contained),
.gt-card-glass {
    background: var(--gt-glass) !important;
    border: 1px solid var(--gt-glass-border);
    border-radius: var(--gt-radius) !important;
    box-shadow: var(--gt-shadow);
    backdrop-filter: blur(14px);
    --tw-ring-color: transparent;
}
.gt-lift { transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, border-color .25s ease; }
.gt-lift:hover {
    transform: translateY(-3px);
    border-color: rgb(16 185 129 / .35);
    box-shadow: var(--gt-shadow), 0 0 0 1px rgb(16 185 129 / .12), 0 18px 40px -18px rgb(16 185 129 / .45);
}

.fi-section-header-heading { font-weight: 650; letter-spacing: -.01em; }
.fi-btn { transition: transform .15s ease, box-shadow .2s ease, filter .2s ease; }
.fi-btn:hover { transform: translateY(-1px); filter: brightness(1.08); }
.fi-btn:active { transform: translateY(0) scale(.97); }
.fi-modal-window { border-radius: 1.25rem !important; }
.dark .fi-modal-window { background: #0b1220 !important; border: 1px solid var(--gt-glass-border); }

/* Numbers use a characterful grotesk */
.gt-num { font-family: var(--gt-num-font); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }

/* Entrance animation for dashboard blocks */
@keyframes gt-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.gt-rise { animation: gt-rise .6s cubic-bezier(.2,.8,.2,1) backwards; } /* backwards: no transform left behind (a transform would trap position:fixed modals) */
.gt-rise-2 { animation-delay: .08s; } .gt-rise-3 { animation-delay: .16s; } .gt-rise-4 { animation-delay: .24s; } .gt-rise-5 { animation-delay: .32s; }

/* Skeleton shimmer for any lazy placeholder */
@keyframes gt-shimmer { from { background-position: -600px 0; } to { background-position: 600px 0; } }
.fi-wi-widget [wire\:loading], .gt-skeleton {
    background: linear-gradient(90deg, transparent, rgb(255 255 255 / .06), transparent) var(--gt-glass);
    background-size: 600px 100%;
    animation: gt-shimmer 1.4s linear infinite;
}

/* Full-screen FX canvas */
.gt-fx-canvas { position: fixed; inset: 0; width: 100vw; height: 100vh; pointer-events: none; z-index: 60; }

/* Dashboard header: heading lives in the hero now */
.gt-dashboard .fi-header { justify-content: flex-end; }

@media (prefers-reduced-motion: reduce) {
    .gt-rise, .gt-buddy *, .gt-sky * { animation: none !important; }
    .gt-lift:hover { transform: none; }
}

/* ==========================================================================
   Hero: sky + Growth Buddy
   ========================================================================== */
.gt-hero {
    position: relative; overflow: hidden; border-radius: 1.4rem; min-height: 230px;
    border: 1px solid var(--gt-glass-border); box-shadow: var(--gt-shadow);
    display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 1rem;
    padding: 1.6rem 1.8rem 1.4rem; color: #fff; isolation: isolate;
}
.gt-sky { position: absolute; inset: 0; z-index: -1; transition: background 1s ease; }
.gt-sky--morning { background: linear-gradient(160deg, #fcd9b8 0%, #f9a8a8 30%, #7dd3fc 75%, #38bdf8 100%); }
.gt-sky--afternoon { background: linear-gradient(170deg, #0ea5e9 0%, #38bdf8 45%, #a5f3fc 100%); }
.gt-sky--evening { background: linear-gradient(170deg, #1e1b4b 0%, #6d28d9 38%, #db2777 70%, #fb923c 100%); }
.gt-sky--night { background: linear-gradient(175deg, #020617 0%, #0b1638 55%, #1e1b4b 100%); }
.gt-sky::after { /* soft vignette so text stays readable */
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(90deg, rgb(2 6 23 / .45) 0%, rgb(2 6 23 / .15) 55%, transparent 100%);
}
.gt-sky--afternoon::after, .gt-sky--morning::after { background: linear-gradient(90deg, rgb(2 6 23 / .38) 0%, rgb(2 6 23 / .08) 60%, transparent 100%); }

.gt-orb { position: absolute; border-radius: 999px; }
.gt-orb--sun { width: 90px; height: 90px; right: 34%; top: 26px;
    background: radial-gradient(circle, #fff7d6 0%, #fde68a 40%, rgb(251 191 36 / 0) 72%);
    animation: gt-pulse 6s ease-in-out infinite; }
.gt-orb--sunset { width: 150px; height: 150px; right: 30%; bottom: -60px;
    background: radial-gradient(circle, #fff1c7 0%, #fdba74 35%, rgb(251 146 60 / 0) 70%);
    animation: gt-pulse 7s ease-in-out infinite; }
.gt-orb--moon { width: 46px; height: 46px; right: 52%; top: 22px; background: #f1f5f9;
    box-shadow: 0 0 40px 8px rgb(241 245 249 / .25); }
.gt-orb--moon::after { content: ''; position: absolute; inset: -4px -14px 4px 14px; border-radius: 999px; background: #0b1638; }
@keyframes gt-pulse { 50% { transform: scale(1.06); opacity: .92; } }

.gt-star { position: absolute; width: 2px; height: 2px; border-radius: 999px; background: #fff; animation: gt-twinkle 3s ease-in-out infinite; }
@keyframes gt-twinkle { 50% { opacity: .2; } }
.gt-cloud { position: absolute; height: 18px; border-radius: 999px; background: rgb(255 255 255 / .55); filter: blur(1px); animation: gt-drift 40s linear infinite; }
.gt-cloud::before, .gt-cloud::after { content: ''; position: absolute; background: inherit; border-radius: 999px; }
.gt-cloud::before { width: 55%; height: 26px; left: 15%; top: -12px; }
.gt-cloud::after { width: 35%; height: 20px; left: 50%; top: -8px; }
@keyframes gt-drift { from { transform: translateX(-120px); } to { transform: translateX(1400px); } }

.gt-hero-copy { position: relative; max-width: 620px; }
.gt-hero-eyebrow { font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; opacity: .8; font-weight: 600; }
.gt-hero-title { font-family: var(--gt-num-font); font-size: clamp(1.6rem, 2.6vw, 2.35rem); font-weight: 700; letter-spacing: -.03em; line-height: 1.1; margin: .25rem 0 .9rem; text-shadow: 0 2px 20px rgb(0 0 0 / .25); }

.gt-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.gt-chip {
    display: inline-flex; align-items: center; gap: .45rem; padding: .4rem .75rem; border-radius: 999px;
    background: rgb(255 255 255 / .14); border: 1px solid rgb(255 255 255 / .22); backdrop-filter: blur(8px);
    font-size: .8rem; font-weight: 600; white-space: nowrap;
}
.gt-chip .gt-num { font-size: .95rem; }
.gt-flame { display: inline-block; transform-origin: 50% 90%; animation: gt-flicker 1.2s ease-in-out infinite; }
.gt-flame--cold { filter: grayscale(1); opacity: .6; animation: none; }
@keyframes gt-flicker { 0%,100% { transform: scale(1) rotate(-3deg); } 50% { transform: scale(1.12) rotate(3deg); } }

.gt-xp { margin-top: 1rem; max-width: 420px; }
.gt-xp-row { display: flex; justify-content: space-between; font-size: .75rem; font-weight: 600; opacity: .9; margin-bottom: .35rem; }
.gt-xp-track { height: .55rem; border-radius: 999px; background: rgb(255 255 255 / .18); overflow: hidden; }
.gt-xp-fill { height: 100%; border-radius: 999px; background: linear-gradient(90deg, #6ee7b7, #fde68a); box-shadow: 0 0 14px rgb(253 230 138 / .6); transition: width 1.4s cubic-bezier(.2,.8,.2,1); }

/* Buddy + speech bubble */
.gt-buddy-wrap { position: relative; display: flex; align-items: flex-end; gap: .75rem; }
.gt-bubble {
    position: relative; max-width: 250px; margin-bottom: 130px; padding: .7rem .9rem; border-radius: 1rem 1rem .25rem 1rem;
    background: rgb(255 255 255 / .96); color: #0f172a; font-size: .82rem; line-height: 1.35; font-weight: 500;
    box-shadow: 0 10px 30px -10px rgb(0 0 0 / .4); animation: gt-pop .5s cubic-bezier(.2,1.4,.4,1) .4s both;
}
.gt-bubble a { color: #047857; font-weight: 700; }
@keyframes gt-pop { from { opacity: 0; transform: scale(.6) translateY(10px); transform-origin: bottom right; } }

.gt-buddy { width: 176px; height: 220px; margin-bottom: -.4rem; cursor: pointer; filter: drop-shadow(0 12px 18px rgb(0 0 0 / .35)); }
.gt-buddy .gt-plant { transform-origin: 80px 134px; animation: gt-sway 5s ease-in-out infinite; }
@keyframes gt-sway { 0%,100% { transform: rotate(-2.5deg); } 50% { transform: rotate(2.5deg); } }
.gt-buddy .gt-leaf { transform-box: fill-box; transform-origin: 0% 50%; animation: gt-leaf 3.2s ease-in-out infinite; }
.gt-buddy .gt-leaf:nth-child(2n) { animation-delay: -1.2s; }
@keyframes gt-leaf { 50% { transform: rotate(-8deg); } }
.gt-buddy .gt-eye { transform-box: fill-box; transform-origin: center; animation: gt-blink 4.5s infinite; }
@keyframes gt-blink { 0%, 92%, 100% { transform: scaleY(1); } 95% { transform: scaleY(.1); } }
.gt-buddy .gt-body { transform-origin: 80px 195px; }
.gt-buddy--happy .gt-body { animation: gt-hop 1.6s ease-in-out infinite; }
@keyframes gt-hop { 0%,60%,100% { transform: translateY(0) scale(1,1); } 70% { transform: translateY(0) scale(1.05,.95); } 82% { transform: translateY(-8px) scale(.97,1.03); } }
.gt-buddy--sleepy .gt-plant { animation-duration: 9s; }
.gt-buddy--sleepy .gt-body { animation: gt-breathe 4s ease-in-out infinite; }
@keyframes gt-breathe { 50% { transform: scale(1.02, .98); } }
.gt-buddy--worried .gt-body { animation: gt-shiver 3s ease-in-out infinite; }
@keyframes gt-shiver { 0%, 88%, 100% { transform: translateX(0); } 90% { transform: translateX(-1.5px); } 94% { transform: translateX(1.5px); } }
.gt-buddy-host.gt-buddy--cheer .gt-body { animation: gt-cheer .9s cubic-bezier(.2,1.6,.4,1) 2 !important; }
@keyframes gt-cheer { 0%,100% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-22px) rotate(-6deg); } 60% { transform: translateY(-10px) rotate(5deg); } }
.gt-buddy:hover .gt-body { animation: gt-cheer .9s cubic-bezier(.2,1.6,.4,1) 1; }
.gt-zzz { font: 700 14px var(--gt-num-font); fill: #e2e8f0; animation: gt-float-z 3s ease-in-out infinite; }
.gt-zzz:nth-of-type(2) { animation-delay: 1s; } .gt-zzz:nth-of-type(3) { animation-delay: 2s; }
@keyframes gt-float-z { 0% { opacity: 0; transform: translate(0,0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translate(14px,-26px); } }
.gt-sweat { animation: gt-drip 2.4s ease-in infinite; }
@keyframes gt-drip { 0%, 40% { opacity: 0; transform: translateY(-4px); } 55% { opacity: 1; } 100% { opacity: 0; transform: translateY(10px); } }
.gt-fruit { transform-box: fill-box; transform-origin: 50% 0; animation: gt-dangle 2.8s ease-in-out infinite; }
@keyframes gt-dangle { 50% { transform: rotate(8deg); } }

@media (max-width: 900px) {
    .gt-hero { grid-template-columns: 1fr; padding: 1.25rem; }
    .gt-buddy-wrap { justify-content: flex-end; }
    .gt-bubble { margin-bottom: 90px; max-width: 200px; }
    .gt-buddy { width: 118px; height: 148px; }
}

/* ==========================================================================
   KPI cards
   ========================================================================== */
.gt-kpis-top { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.gt-kpis-bottom { display: grid; gap: 1rem; margin-top: 1rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.gt-kpi { padding: 1.2rem 1.3rem; position: relative; overflow: hidden; }
.gt-kpi-label { display: flex; align-items: center; gap: .45rem; font-size: .8rem; font-weight: 600; color: var(--gt-text-dim); }
.gt-kpi-label svg { width: 1rem; height: 1rem; }
.gt-kpi-value { font-family: var(--gt-num-font); font-size: 2rem; font-weight: 700; letter-spacing: -.03em; line-height: 1.1; margin-top: .35rem; }
.gt-kpi-value.lg { font-size: 2.6rem; }
.gt-kpi-sub { font-size: .8rem; color: var(--gt-text-dim); margin-top: .35rem; }
.gt-pos { color: #10b981; } .gt-neg { color: #fb7185; } .gt-warn { color: #fbbf24; }
.dark .gt-pos { color: #34d399; }

.gt-freedom { display: grid; grid-template-columns: auto 1fr; gap: 1.2rem; align-items: center; }
.gt-gauge { width: 150px; height: 150px; }
.gt-gauge-arc { transition: stroke-dashoffset 1.6s cubic-bezier(.2,.8,.2,1); }
.gt-milestone { margin-top: .8rem; padding: .55rem .7rem; border-radius: .7rem; font-size: .78rem;
    background: rgb(16 185 129 / .09); border: 1px dashed rgb(16 185 129 / .35); }

.gt-split { display: flex; height: .55rem; border-radius: 999px; overflow: hidden; margin-top: .9rem; gap: 2px; }
.gt-split > span { display: block; height: 100%; transition: flex-grow 1.2s ease; }
.gt-legend { display: flex; justify-content: space-between; font-size: .75rem; color: var(--gt-text-dim); margin-top: .4rem; }
.gt-spark { position: absolute; right: 0; bottom: 0; width: 55%; height: 70px; opacity: .9; pointer-events: none; }
.gt-spark path.line { stroke-dasharray: 600; stroke-dashoffset: 600; animation: gt-draw 1.8s ease forwards .3s; }
@keyframes gt-draw { to { stroke-dashoffset: 0; } }

.gt-mini-track { height: .4rem; border-radius: 999px; background: rgb(120 120 120 / .18); overflow: hidden; margin-top: .7rem; position: relative; }
.gt-mini-fill { height: 100%; border-radius: 999px; transition: width 1.2s cubic-bezier(.2,.8,.2,1); }
.gt-target-tick { position: absolute; top: -2px; bottom: -2px; width: 2px; background: #fbbf24; border-radius: 2px; }
.gt-dots { display: flex; gap: .3rem; margin-top: .7rem; }
.gt-dot { flex: 1; height: 1.6rem; border-radius: .4rem; background: rgb(120 120 120 / .14); display: grid; place-items: center; font-size: .6rem; color: var(--gt-text-dim); }
.gt-dot.on { background: linear-gradient(180deg, #34d399, #059669); color: #fff; box-shadow: 0 4px 12px -4px rgb(16 185 129 / .6); }

/* ==========================================================================
   Existing widgets (goals, board, heads-up) refinements
   ========================================================================== */
.gt-track { height: .6rem !important; }
.gt-bar { background-image: linear-gradient(90deg, rgb(255 255 255 / .0), rgb(255 255 255 / .25)) !important; transition: width 1.2s cubic-bezier(.2,.8,.2,1) !important; }
.gt-col { transition: background .2s ease, box-shadow .2s ease; border: 1px dashed transparent; }
.gt-col.is-over { background: rgb(16 185 129 / .10) !important; border-color: rgb(16 185 129 / .5); box-shadow: inset 0 0 0 1px rgb(16 185 129 / .15); }
.gt-card[draggable="true"] { cursor: grab; transition: transform .2s ease, box-shadow .2s ease, opacity .2s; }
.gt-card[draggable="true"]:hover { transform: translateY(-2px); box-shadow: 0 10px 22px -12px rgb(0 0 0 / .5); }
.gt-card.is-dragging { opacity: .4; transform: rotate(-2deg) scale(.98); }
.gt-col--earning .gt-card {
    border-color: rgb(251 191 36 / .55) !important;
    background: linear-gradient(135deg, rgb(251 191 36 / .16), rgb(251 191 36 / .03)) !important;
    box-shadow: 0 0 0 1px rgb(251 191 36 / .15), 0 10px 26px -14px rgb(251 191 36 / .7) !important;
}
.gt-col--earning h4 { color: #fbbf24; }
.gt-col--killed .gt-card { opacity: .55; text-decoration: line-through; }
.gt-empty-drop { font-size: .75rem; color: var(--gt-text-dim); border: 1px dashed rgb(120 120 120 / .3); border-radius: .6rem; padding: .8rem .5rem; text-align: center; }
.gt-alert { align-items: center !important; justify-content: space-between; border-radius: .7rem !important; }
.gt-alert-cta { white-space: nowrap; font-weight: 700; font-size: .78rem; padding: .25rem .6rem; border-radius: 999px; background: rgb(255 255 255 / .08); border: 1px solid rgb(255 255 255 / .12); }
.gt-alert-cta:hover { background: rgb(255 255 255 / .15); }
.gt-win { align-items: center; }
.gt-win-badge { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: .5rem; background: rgb(16 185 129 / .14); margin-right: .55rem; font-size: .8rem; flex: none; }

/* ==========================================================================
   Focus timer
   ========================================================================== */
.gt-focus { height: 100%; }
.gt-focus.is-running { border-color: rgb(251 113 133 / .35) !important; box-shadow: var(--gt-shadow), 0 0 40px -18px rgb(251 113 133 / .7) !important; }
.gt-focus-body { display: grid; grid-template-columns: 132px 1fr; gap: 1.1rem; align-items: center; margin-top: .6rem; }
.gt-focus-ring { width: 132px; height: 132px; }
.gt-focus.is-running .gt-focus-ring { animation: gt-pulse 4s ease-in-out infinite; }
.gt-focus-controls { display: grid; gap: .6rem; min-width: 0; }
.gt-select {
    width: 100%; padding: .5rem .7rem; border-radius: .6rem; font-size: .85rem;
    background: rgb(120 120 120 / .08); border: 1px solid var(--gt-glass-border); color: inherit;
}
.dark .gt-select option, .dark .gt-select optgroup { background: #0b1220; }
.gt-shake { animation: gt-shake .4s ease; border-color: #fb7185 !important; }
@keyframes gt-shake { 20%, 60% { transform: translateX(-5px); } 40%, 80% { transform: translateX(5px); } }
.gt-btn {
    padding: .45rem .85rem; border-radius: .6rem; font-size: .82rem; font-weight: 650;
    background: rgb(120 120 120 / .12); border: 1px solid var(--gt-glass-border); transition: transform .15s, filter .2s, background .2s;
}
.gt-btn:hover { filter: brightness(1.15); transform: translateY(-1px); }
.gt-btn--go { background: linear-gradient(135deg, #fb7185, #f97316); color: #fff; border-color: transparent; box-shadow: 0 8px 20px -10px rgb(249 115 22 / .8); }
.gt-btn--ghost { background: transparent; }
@media (max-width: 520px) { .gt-focus-body { grid-template-columns: 1fr; justify-items: center; } }

/* Segmented control (strategy / presets) */
.gt-seg { display: inline-flex; padding: 3px; border-radius: .7rem; background: rgb(120 120 120 / .12); gap: 2px; }
.gt-seg button { padding: .4rem .75rem; border-radius: .55rem; font-size: .8rem; font-weight: 600; color: var(--gt-text-dim); transition: background .2s, color .2s; }
.gt-seg button.on { background: var(--gt-glass); color: inherit; box-shadow: 0 1px 3px rgb(0 0 0 / .25); }
.dark .gt-seg button.on { background: rgb(255 255 255 / .1); color: #fff; }
.gt-seg--sm button { padding: .3rem .6rem; }

/* ==========================================================================
   Debt planner
   ========================================================================== */
.gt-planner-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; }
.gt-slider-row { display: flex; justify-content: space-between; align-items: baseline; margin-top: 1.1rem; }
.gt-range { width: 100%; margin: .5rem 0 0; accent-color: #10b981; height: 6px; cursor: pointer; }
.gt-planner-grid { display: grid; gap: .8rem; margin-top: 1rem; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.gt-plan-box { padding: .8rem 1rem; border-radius: .9rem; background: rgb(120 120 120 / .07); border: 1px solid var(--gt-glass-border); }
.gt-plan-box--you { background: rgb(16 185 129 / .08); border-color: rgb(16 185 129 / .3); }
.gt-plan-box--save { background: rgb(251 191 36 / .08); border-color: rgb(251 191 36 / .35); }
.gt-plan-big { font-size: 1.5rem; font-weight: 700; margin: .15rem 0; letter-spacing: -.02em; }
.gt-order-row { display: grid; grid-template-columns: 1.6rem minmax(0, 1.4fr) minmax(80px, 1fr) auto; gap: .7rem; align-items: center; padding: .35rem 0; font-size: .85rem; }
.gt-order-n { display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 999px; background: rgb(16 185 129 / .15); color: #34d399; font-weight: 700; font-size: .75rem; }
.gt-order-track { height: .45rem; border-radius: 999px; background: rgb(120 120 120 / .15); overflow: hidden; }
.gt-order-bar { height: 100%; border-radius: 999px; background: linear-gradient(90deg, #10b981, #fbbf24); transition: width .5s cubic-bezier(.2,.8,.2,1); }

/* ==========================================================================
   Page stat strips (every resource page)
   ========================================================================== */
.gt-strip { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.gt-tile .gt-kpi-value { font-size: 1.7rem; }
.gt-tile-text { font-size: 1.25rem !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gt-tile-icon { display: inline-grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: .55rem; background: rgb(120 120 120 / .12); font-size: .9rem; transition: transform .3s cubic-bezier(.2,1.6,.4,1); }
.gt-tile:hover .gt-tile-icon { transform: scale(1.18) rotate(-8deg); }

/* Heatmap */
.gt-heat { position: relative; display: flex; gap: 5px; overflow-x: auto; padding-bottom: 1.8rem; justify-content: flex-start; }
.gt-heat-days { display: grid; grid-template-rows: repeat(7, 20px); gap: 5px; font-size: .62rem; color: var(--gt-text-dim); margin-right: 2px; }
.gt-heat-days span { height: 20px; line-height: 20px; }
.gt-heat-week { display: grid; grid-template-rows: repeat(7, 20px); gap: 5px; width: 20px; flex: none; }
.gt-heat-cell { display: inline-block; border-radius: 5px; width: 20px; height: 20px; animation: gt-pop-cell .4s cubic-bezier(.2,1.4,.4,1) both; transition: transform .15s; }
.gt-heat-cell:hover { transform: scale(1.35); outline: 1px solid rgb(255 255 255 / .4); z-index: 1; }
@keyframes gt-pop-cell { from { opacity: 0; transform: scale(.3); } }
.gt-heat-0 { background: rgb(120 120 120 / .14); }
.gt-heat-1 { background: rgb(16 185 129 / .3); }
.gt-heat-2 { background: rgb(16 185 129 / .55); }
.gt-heat-3 { background: rgb(16 185 129 / .8); }
.gt-heat-4 { background: #34d399; box-shadow: 0 0 10px rgb(52 211 153 / .5); }
.gt-heat-future { background: transparent; border: 1px dashed rgb(120 120 120 / .18); }
.gt-heat-cell.is-today { outline: 2px solid #fbbf24; outline-offset: 1px; }
.gt-heat-tip { position: absolute; left: 0; bottom: 0; font-size: .75rem; font-weight: 600; padding: .2rem .55rem; border-radius: .4rem; background: rgb(120 120 120 / .18); }

/* Breakdown legend */
.gt-breakdown-legend { display: flex; flex-wrap: wrap; gap: .4rem .9rem; margin-top: .8rem; }
.gt-breakdown-item { display: inline-flex; align-items: center; gap: .4rem; font-size: .8rem; padding: .25rem .5rem; border-radius: .5rem; cursor: default; transition: background .2s; }
.gt-breakdown-item i { width: .65rem; height: .65rem; border-radius: 3px; display: inline-block; }
.gt-breakdown-item.is-on { background: rgb(120 120 120 / .15); }

/* Progress-bar table column */
.gt-col-bar { display: flex; align-items: center; gap: .6rem; min-width: 150px; padding: 0 .75rem; }
.gt-col-bar-track { flex: 1; height: .45rem; border-radius: 999px; background: rgb(120 120 120 / .16); overflow: hidden; }
.gt-col-bar-fill { height: 100%; width: var(--w); border-radius: 999px; animation: gt-grow 1s cubic-bezier(.2,.8,.2,1) both; }
@keyframes gt-grow { from { width: 0; } }
.gt-col-bar .gt-num { font-size: .8rem; font-weight: 700; min-width: 2.6rem; text-align: right; }

/* ==========================================================================
   Tables
   ========================================================================== */
.fi-ta-ctn { background: var(--gt-glass) !important; border: 1px solid var(--gt-glass-border); border-radius: var(--gt-radius) !important; box-shadow: var(--gt-shadow); backdrop-filter: blur(14px); overflow: hidden; --tw-ring-color: transparent; }
.fi-ta-header-cell { font-size: .72rem !important; text-transform: uppercase; letter-spacing: .06em; color: var(--gt-text-dim); }
.fi-ta-row { transition: background .2s ease, box-shadow .2s ease; animation: gt-row-in .45s cubic-bezier(.2,.8,.2,1) backwards; }
.fi-ta-row:nth-child(1) { animation-delay: .03s } .fi-ta-row:nth-child(2) { animation-delay: .06s } .fi-ta-row:nth-child(3) { animation-delay: .09s }
.fi-ta-row:nth-child(4) { animation-delay: .12s } .fi-ta-row:nth-child(5) { animation-delay: .15s } .fi-ta-row:nth-child(6) { animation-delay: .18s }
.fi-ta-row:nth-child(7) { animation-delay: .21s } .fi-ta-row:nth-child(8) { animation-delay: .24s } .fi-ta-row:nth-child(n+9) { animation-delay: .27s }
@keyframes gt-row-in { from { opacity: 0; transform: translateY(6px); } }
.fi-ta-row:hover { background: rgb(16 185 129 / .06) !important; box-shadow: inset 3px 0 0 var(--gt-emerald); }
.fi-ta-row .fi-badge { transition: transform .2s; }
.fi-ta-row:hover .fi-badge { transform: scale(1.06); }
.fi-ta-empty-state-icon-bg { background: rgb(16 185 129 / .12) !important; animation: gt-pulse 3s ease-in-out infinite; }
.fi-ta-search-field .fi-input-wrp { border-radius: .7rem; }

/* ==========================================================================
   Forms & modals
   ========================================================================== */
.fi-modal-close-overlay { backdrop-filter: blur(6px); background: rgb(2 6 23 / .55) !important; }
.fi-modal-window { animation: gt-modal-in .35s cubic-bezier(.2,1.2,.4,1) backwards; }
@keyframes gt-modal-in { from { opacity: 0; transform: translateY(18px) scale(.97); } }
.fi-modal-window .fi-modal-heading, .fi-modal-heading { font-family: var(--gt-num-font); letter-spacing: -.02em; }
.fi-input-wrp { transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease; border-radius: .7rem !important; }
.fi-input-wrp:focus-within { box-shadow: 0 0 0 3px rgb(16 185 129 / .22), 0 8px 24px -12px rgb(16 185 129 / .5) !important; --tw-ring-color: rgb(16 185 129 / .7) !important; }
.fi-fo-field-label { transition: color .2s; }
.fi-fo-field:focus-within .fi-fo-field-label { color: #34d399; }
.fi-input { font-variant-numeric: tabular-nums; }
.fi-fo-field-wrp-error-message { animation: gt-shake .35s ease; }
.fi-toggle, button[role="switch"] { transition: box-shadow .25s ease, background .25s ease !important; }
button[role="switch"][aria-checked="true"] { box-shadow: 0 0 14px -2px rgb(16 185 129 / .7); }
.fi-fieldset, .fi-fo-fieldset { border-radius: .9rem !important; border-color: var(--gt-glass-border) !important; background: rgb(120 120 120 / .04); }
.gt-amount-hint { font-size: .75rem; margin-top: .35rem; color: #34d399; font-weight: 600; animation: gt-rise .25s ease both; }
.gt-amount-hint span { color: var(--gt-text-dim); font-weight: 500; }

/* Buttons: ripple */
.fi-btn { position: relative; overflow: hidden; }
.gt-ripple { position: absolute; border-radius: 999px; transform: scale(0); background: rgb(255 255 255 / .35); animation: gt-ripple .6s ease-out; pointer-events: none; }
@keyframes gt-ripple { to { transform: scale(4); opacity: 0; } }

/* Notifications */
.fi-no-notification:not(.fi-inline) { border-radius: 1rem !important; backdrop-filter: blur(14px); }
.fi-no-notification:not(.fi-inline).fi-status-success { box-shadow: 0 0 0 1px rgb(16 185 129 / .3), 0 18px 40px -18px rgb(16 185 129 / .6) !important; }

/* Notifications slide-over (bell panel) */
.fi-modal-slide-over .fi-modal-window { animation: none; border-radius: 1.25rem 0 0 1.25rem !important; }
.dark .fi-modal-slide-over .fi-modal-window { background: #0b1220 !important; border-left: 1px solid var(--gt-glass-border); }
.fi-no-notifications .fi-modal-heading { font-family: var(--gt-num-font); font-weight: 700; letter-spacing: -.02em; }
.fi-no-notification.fi-inline { border-radius: 0 !important; box-shadow: none !important; backdrop-filter: none; transition: background .2s ease; }
.fi-no-notification.fi-inline:hover { background: rgb(120 120 120 / .07); }
.fi-no-notification-unread-ctn { background: rgb(16 185 129 / .06); }
.dark .fi-no-notification-unread-ctn { background: rgb(16 185 129 / .08); }
.fi-no-notification.fi-inline .fi-no-notification-title { font-weight: 650; }
.fi-no-notification.fi-inline .fi-no-notification-date { font-size: .72rem; opacity: .7; }
.fi-no-notification.fi-inline .fi-no-notification-body { line-height: 1.5; }
.fi-no-notification.fi-inline .fi-no-notification-actions .fi-link { font-weight: 700; }

/* Page transition on SPA navigation */
/* Opacity only: .fi-page contains the page's modals, and any transform on it would turn their
   position:fixed into position:absolute (modal as tall as the page, can't scroll). */
@keyframes gt-fade { from { opacity: 0; } }
.gt-page-in .fi-page { animation: gt-fade .35s ease backwards; }
.fi-header-heading { font-family: var(--gt-num-font); letter-spacing: -.03em; }

/* ==========================================================================
   Mini buddy (every page except the dashboard)
   ========================================================================== */
.gt-mini-buddy { position: fixed; right: 18px; bottom: 16px; z-index: 40; display: flex; align-items: flex-end; gap: .5rem; }
.gt-mini-buddy .gt-buddy { width: 70px; height: 88px; filter: drop-shadow(0 8px 14px rgb(0 0 0 / .45)); }
.gt-mini-card {
    opacity: 0; transform: translateY(8px) scale(.96); pointer-events: none; transition: all .25s cubic-bezier(.2,1.2,.4,1);
    background: rgb(255 255 255 / .97); color: #0f172a; border-radius: 1rem 1rem .25rem 1rem; padding: .7rem .85rem; width: 220px; font-size: .78rem; line-height: 1.35;
    box-shadow: 0 16px 40px -14px rgb(0 0 0 / .55); margin-bottom: 64px;
}
.gt-mini-buddy:hover .gt-mini-card, .gt-mini-buddy.is-talking .gt-mini-card { opacity: 1; transform: none; pointer-events: auto; }
.gt-mini-card b { font-family: var(--gt-num-font); }
.gt-mini-card .gt-xp-track { background: rgb(15 23 42 / .1); height: .4rem; margin: .45rem 0 .3rem; }
.gt-mini-card a { color: #047857; font-weight: 700; }
@media (max-width: 640px) { .gt-mini-buddy { right: 8px; bottom: 8px; } .gt-mini-buddy .gt-buddy { width: 54px; height: 68px; } }

/* Shortcut cheat-sheet */
.gt-keys { position: fixed; inset: 0; z-index: 70; display: grid; place-items: center; background: rgb(2 6 23 / .6); backdrop-filter: blur(6px); animation: gt-rise .2s ease both; }
.gt-keys-card { width: min(420px, calc(100vw - 32px)); background: #0b1220; color: #e2e8f0; border: 1px solid rgb(255 255 255 / .1); border-radius: 1.2rem; padding: 1.2rem 1.3rem; box-shadow: 0 30px 80px -20px rgb(0 0 0 / .8); }
.gt-keys-card h3 { font-family: var(--gt-num-font); font-weight: 700; font-size: 1.1rem; margin-bottom: .7rem; }
.gt-keys-row { display: flex; justify-content: space-between; padding: .38rem 0; font-size: .85rem; border-bottom: 1px solid rgb(255 255 255 / .06); }
kbd.gt-kbd { font: 600 .75rem var(--gt-num-font); padding: .12rem .45rem; border-radius: .35rem; background: rgb(255 255 255 / .1); border: 1px solid rgb(255 255 255 / .15); margin-left: .2rem; }

/* ==========================================================================
   Auth pages (login / register / password reset) — split screen
   ========================================================================== */
.fi-simple-layout:has(.gt-auth-brand) {
    display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); min-height: 100vh; align-items: stretch;
}
.fi-simple-layout:has(.gt-auth-brand) .fi-simple-main-ctn { display: flex; align-items: center; justify-content: center; padding: 3rem 1.5rem; min-height: 100vh; }
.fi-simple-layout:has(.gt-auth-brand) .fi-simple-main {
    position: relative; width: 100%; max-width: 430px; margin: 110px 0 0; padding: 2.4rem 2.1rem 2.1rem !important;
    background: var(--gt-glass) !important; border: 1px solid var(--gt-glass-border); border-radius: 1.5rem !important;
    box-shadow: var(--gt-shadow), 0 40px 90px -40px rgb(16 185 129 / .4) !important; backdrop-filter: blur(18px);
    animation: gt-rise .6s cubic-bezier(.2,.8,.2,1) .1s backwards; --tw-ring-color: transparent;
}
.fi-simple-layout:has(.gt-auth-brand) .fi-simple-main::before { /* thin emerald top edge */
    content: ''; position: absolute; left: 12%; right: 12%; top: -1px; height: 2px; border-radius: 2px;
    background: linear-gradient(90deg, transparent, #34d399, transparent);
}
.fi-simple-layout:has(.gt-auth-brand) .fi-logo { display: none; }
.fi-simple-layout:has(.gt-auth-brand) .fi-simple-header-heading { font-family: var(--gt-num-font); font-size: 1.7rem; font-weight: 700; letter-spacing: -.03em; }
.fi-simple-layout:has(.gt-auth-brand) .fi-simple-header-subheading { margin-top: .35rem; }
.fi-simple-layout:has(.gt-auth-brand) .fi-simple-header-subheading a,
.fi-simple-layout:has(.gt-auth-brand) .fi-simple-header-subheading .fi-link { font-weight: 700; color: #34d399 !important; }
.fi-simple-layout:has(.gt-auth-brand) .fi-input-wrp { min-height: 2.9rem; }
.fi-simple-layout:has(.gt-auth-brand) form .fi-btn[type="submit"],
.fi-simple-layout:has(.gt-auth-brand) .fi-btn.fi-color-primary {
    min-height: 2.95rem; font-size: .95rem; border-radius: .85rem; letter-spacing: .01em;
    background: linear-gradient(135deg, #10b981, #059669) !important; box-shadow: 0 14px 30px -12px rgb(16 185 129 / .85);
}
.fi-simple-layout:has(.gt-auth-brand) form .fi-btn[type="submit"]::after { /* shine sweep */
    content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgb(255 255 255 / .28) 50%, transparent 70%);
    transform: translateX(-120%); animation: gt-shine 3.5s ease-in-out 1.2s infinite;
}
@keyframes gt-shine { 0%, 60% { transform: translateX(-120%); } 100% { transform: translateX(120%); } }

/* ---------- Brand panel ---------- */
.gt-auth-brand {
    position: relative; overflow: hidden; isolation: isolate; color: #ecfdf5; padding: 2.3rem 3rem 2rem;
    display: flex; flex-direction: column; min-height: 100vh;
    background: linear-gradient(160deg, #022c22 0%, #064e3b 42%, #0b1220 100%);
}
.gt-auth-aurora span { position: absolute; border-radius: 999px; filter: blur(64px); opacity: .5; z-index: -1; animation: gt-aurora 16s ease-in-out infinite alternate; }
.gt-auth-aurora span:nth-child(1) { width: 440px; height: 440px; background: #10b981; top: -140px; left: -100px; }
.gt-auth-aurora span:nth-child(2) { width: 380px; height: 380px; background: #6366f1; bottom: -140px; right: -80px; animation-delay: -5s; opacity: .38; }
.gt-auth-aurora span:nth-child(3) { width: 260px; height: 260px; background: #fbbf24; top: 48%; left: 58%; animation-delay: -9s; opacity: .14; }
@keyframes gt-aurora { to { transform: translate(60px, 40px) scale(1.15); } }
.gt-auth-grid { position: absolute; inset: 0; z-index: -1; opacity: .09;
    background-image: linear-gradient(rgb(255 255 255 / .6) 1px, transparent 1px), linear-gradient(90deg, rgb(255 255 255 / .6) 1px, transparent 1px);
    background-size: 44px 44px; mask-image: radial-gradient(ellipse at 30% 35%, #000 15%, transparent 72%); }

.gt-auth-logo { display: inline-flex; align-items: center; gap: .65rem; font-family: var(--gt-num-font); font-weight: 700; font-size: 1.15rem; letter-spacing: -.02em; color: #fff; }
.gt-auth-mark { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: .8rem; background: linear-gradient(135deg, #34d399, #059669); box-shadow: 0 10px 24px -8px rgb(16 185 129 / .8); }

.gt-auth-copy { margin-top: auto; padding-top: 2rem; max-width: 540px; animation: gt-rise .7s cubic-bezier(.2,.8,.2,1) both; }
.gt-auth-eyebrow { display: inline-flex; align-items: center; gap: .5rem; font-size: .72rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
    padding: .35rem .75rem; border-radius: 999px; background: rgb(255 255 255 / .07); border: 1px solid rgb(255 255 255 / .12); color: rgb(209 250 229 / .85); }
.gt-auth-eyebrow i { width: .45rem; height: .45rem; border-radius: 99px; background: #34d399; box-shadow: 0 0 0 0 rgb(52 211 153 / .7); animation: gt-ping 2s infinite; }
@keyframes gt-ping { 70% { box-shadow: 0 0 0 8px rgb(52 211 153 / 0); } 100% { box-shadow: 0 0 0 0 rgb(52 211 153 / 0); } }
.gt-auth-copy h1 { margin-top: 1rem; font-family: var(--gt-num-font); font-size: clamp(2.1rem, 3.5vw, 3.2rem); font-weight: 700; line-height: 1.04; letter-spacing: -.04em; color: #fff; }
.gt-auth-copy h1 span { background: linear-gradient(90deg, #6ee7b7, #fde68a, #6ee7b7); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: gt-gradient 6s linear infinite; }
@keyframes gt-gradient { to { background-position: 200% 0; } }
.gt-auth-copy p { margin-top: 1rem; font-size: 1rem; line-height: 1.6; color: rgb(209 250 229 / .75); max-width: 470px; }

/* Product preview card with 3D tilt */
.gt-auth-preview-wrap { margin: 2rem 0 1.4rem; perspective: 1200px; max-width: 470px; animation: gt-rise .8s cubic-bezier(.2,.8,.2,1) .25s both; }
.gt-auth-preview {
    position: relative; padding: 1rem 1.1rem 1.1rem; border-radius: 1.2rem;
    background: linear-gradient(160deg, rgb(255 255 255 / .1), rgb(255 255 255 / .04)); border: 1px solid rgb(255 255 255 / .14);
    box-shadow: 0 40px 80px -30px rgb(0 0 0 / .7), inset 0 1px 0 rgb(255 255 255 / .12); backdrop-filter: blur(14px);
    transform: rotateX(var(--rx, 6deg)) rotateY(var(--ry, -10deg)); transition: transform .4s cubic-bezier(.2,.8,.2,1); transform-style: preserve-3d;
}
.gt-ap-head { display: flex; align-items: center; gap: .7rem; font-size: .72rem; color: rgb(209 250 229 / .6); margin-bottom: .8rem; }
.gt-ap-dots { display: inline-flex; gap: 4px; } .gt-ap-dots i { width: 7px; height: 7px; border-radius: 99px; background: rgb(255 255 255 / .25); }
.gt-ap-dots i:nth-child(1) { background: #fb7185; } .gt-ap-dots i:nth-child(2) { background: #fbbf24; } .gt-ap-dots i:nth-child(3) { background: #34d399; }
.gt-ap-body { display: grid; grid-template-columns: 118px 1fr; gap: 1rem; align-items: center; }
.gt-ap-gauge svg { width: 118px; height: 118px; }
.gt-ap-arc { stroke-dashoffset: 226; animation: gt-ap-arc 1.8s cubic-bezier(.2,.8,.2,1) .5s forwards; }
@keyframes gt-ap-arc { to { stroke-dashoffset: 140; } }
.gt-ap-label { font-size: .72rem; color: rgb(209 250 229 / .6); }
.gt-ap-big { font-size: 1.6rem; font-weight: 700; color: #6ee7b7; letter-spacing: -.02em; }
.gt-ap-bars { display: flex; align-items: flex-end; gap: 6px; height: 56px; margin-top: .5rem; }
.gt-ap-bars span { flex: 1; height: var(--h); border-radius: 5px 5px 2px 2px; background: linear-gradient(180deg, #34d399, #059669); transform-origin: bottom; animation: gt-ap-bar .9s cubic-bezier(.2,1.2,.4,1) both; }
.gt-ap-bars span:last-child { background: linear-gradient(180deg, #fde68a, #f59e0b); }
@keyframes gt-ap-bar { from { transform: scaleY(0); } }
.gt-ap-row { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: .75rem; font-size: .78rem; color: rgb(236 253 245 / .85); }
.gt-ap-row b { color: #fde68a; font-family: var(--gt-num-font); }
.gt-ap-track { width: 38%; height: 6px; border-radius: 99px; background: rgb(255 255 255 / .1); overflow: hidden; }
.gt-ap-track span { display: block; height: 100%; width: 0; border-radius: 99px; background: linear-gradient(90deg, #10b981, #34d399); animation: gt-ap-fill 1.6s cubic-bezier(.2,.8,.2,1) .9s forwards; }
.gt-ap-track--gold span { background: linear-gradient(90deg, #f59e0b, #fde68a); animation-name: gt-ap-fill2; }
@keyframes gt-ap-fill { to { width: 34%; } } @keyframes gt-ap-fill2 { to { width: 62%; } }
.gt-ap-toast, .gt-ap-streak {
    position: absolute; padding: .5rem .8rem; border-radius: .8rem; font-size: .75rem; white-space: nowrap; color: #0f172a;
    background: #fff; box-shadow: 0 18px 40px -14px rgb(0 0 0 / .6); transform: translateZ(40px);
}
.gt-ap-toast { right: -26px; top: 38%; animation: gt-toast 6s ease-in-out 1.5s infinite; opacity: 0; }
.gt-ap-toast b { color: #059669; }
@keyframes gt-toast { 0% { opacity: 0; transform: translateZ(40px) translateY(10px) scale(.9); } 8%, 45% { opacity: 1; transform: translateZ(40px) translateY(0) scale(1); } 55%, 100% { opacity: 0; transform: translateZ(40px) translateY(-8px) scale(.95); } }
.gt-ap-streak { left: -22px; bottom: -16px; background: #111827; color: #fde68a; border: 1px solid rgb(251 191 36 / .35); animation: gt-float 5s ease-in-out infinite; }
.gt-auth-caption { margin-top: 1.4rem; font-size: .72rem; color: rgb(209 250 229 / .5); padding-left: .2rem; }
@keyframes gt-float { 50% { transform: translateZ(40px) translateY(-8px); } }

.gt-auth-features { display: flex; flex-wrap: wrap; gap: .5rem; }
.gt-auth-features span { font-size: .78rem; padding: .4rem .75rem; border-radius: 999px; background: rgb(255 255 255 / .06); border: 1px solid rgb(255 255 255 / .1); color: rgb(236 253 245 / .85); }
.gt-auth-foot { margin-top: 1.2rem; font-size: .76rem; color: rgb(209 250 229 / .55); }

/* ---------- Sprout, the login guardian ---------- */
.gt-guard { position: absolute; left: 50%; top: -118px; width: 150px; margin-left: -75px; pointer-events: none; --px: 0; --py: 0; }
.gt-guard-svg { width: 150px; height: 138px; overflow: visible; filter: drop-shadow(0 14px 18px rgb(0 0 0 / .35)); }
.gt-g-body { animation: gt-g-bob 4s ease-in-out infinite; transform-box: view-box; transform-origin: 100px 176px; }
@keyframes gt-g-bob { 50% { transform: translateY(-3px); } }
.gt-g-sprout { transform-box: view-box; transform-origin: 100px 72px; animation: gt-sway 5s ease-in-out infinite; }
.gt-g-eye { transform-box: fill-box; transform-origin: center; animation: gt-blink 5s infinite; }
.gt-g-pupil { transform: translate(calc(var(--px) * 5px), calc(var(--py) * 4px)); transition: transform .18s ease-out; }
.gt-g-brow { transition: transform .25s ease; transform-box: fill-box; transform-origin: center; }
.gt-g-cheek { opacity: .45; transition: opacity .3s; }
.gt-g-mouth > * { opacity: 0; transition: opacity .15s; }
.gt-guard .m-smile { opacity: 1; }
.gt-g-hand { transform-box: view-box; transform-origin: 0 0; transition: transform .45s cubic-bezier(.3,1.4,.5,1); }
.gt-g-hand-l { transform: translate(48px, 142px) rotate(150deg) scale(1.35); }
.gt-g-hand-r { transform: translate(152px, 142px) rotate(30deg) scale(1.35); }

.gt-guard.is-watching .m-smile { opacity: 0; } .gt-guard.is-watching .m-o { opacity: 1; }
.gt-guard.is-watching .gt-g-brow { transform: translateY(-2px); }
.gt-guard.is-hiding .gt-g-hand-l { transform: translate(48px, 142px) rotate(325deg) scale(2.3); }
.gt-guard.is-hiding .gt-g-hand-r { transform: translate(152px, 142px) rotate(-145deg) scale(2.3); }
.gt-guard.is-hiding .gt-g-cheek { opacity: .95; }
.gt-guard.is-hiding .m-smile { opacity: 0; } .gt-guard.is-hiding .m-o { opacity: 1; }
.gt-guard.is-peeking .gt-g-hand-l { transform: translate(48px, 142px) rotate(325deg) scale(2.3); }
.gt-guard.is-peeking .gt-g-hand-r { transform: translate(152px, 142px) rotate(-100deg) scale(1.7); }
.gt-guard.is-peeking .gt-g-cheek { opacity: .95; }
.gt-guard.is-happy .m-smile, .gt-guard.is-happy .m-o { opacity: 0 !important; } .gt-guard.is-happy .m-happy { opacity: 1; }
.gt-guard.is-happy .gt-g-cheek { opacity: .95; }
.gt-guard.is-happy .gt-g-body { animation: gt-g-hop .7s cubic-bezier(.2,1.6,.4,1) 1; }
@keyframes gt-g-hop { 40% { transform: translateY(-14px); } }
.gt-guard.is-sad .m-smile, .gt-guard.is-sad .m-o, .gt-guard.is-sad .m-happy { opacity: 0 !important; } .gt-guard.is-sad .m-sad { opacity: 1; }
.gt-guard.is-sad .gt-g-brow-l { transform: rotate(14deg) translateY(2px); } .gt-guard.is-sad .gt-g-brow-r { transform: rotate(-14deg) translateY(2px); }
.gt-guard.is-sad .gt-g-body { animation: gt-g-shake .5s ease 1; }
@keyframes gt-g-shake { 20%, 60% { transform: translateX(-6px); } 40%, 80% { transform: translateX(6px); } }

.gt-guard-bubble {
    position: absolute; left: 118px; top: 6px; white-space: nowrap; padding: .45rem .75rem; border-radius: .9rem .9rem .9rem .25rem;
    background: #fff; color: #0f172a; font-size: .78rem; font-weight: 600; box-shadow: 0 12px 30px -12px rgb(0 0 0 / .5);
    transition: opacity .25s, transform .25s cubic-bezier(.2,1.4,.4,1); animation: gt-pop .5s cubic-bezier(.2,1.4,.4,1) .7s both;
}
.gt-guard-bubble.is-changing { opacity: 0; transform: scale(.85) translateY(4px); }

@media (max-width: 1023px) {
    .fi-simple-layout:has(.gt-auth-brand) { grid-template-columns: 1fr; }
    .gt-auth-brand { min-height: auto; padding: 1.3rem 1.25rem 1.5rem; }
    .gt-auth-copy { margin-top: 1rem; padding-top: 0; }
    .gt-auth-copy h1 { font-size: 1.7rem; }
    .gt-auth-copy p, .gt-auth-preview-wrap, .gt-auth-features, .gt-auth-foot, .gt-auth-eyebrow { display: none; }
    .fi-simple-layout:has(.gt-auth-brand) .fi-simple-main-ctn { min-height: auto; padding: 1rem 16px 2.5rem; }
    .gt-guard-bubble { left: auto; right: 118px; border-radius: .9rem .9rem .25rem .9rem; }
}
@media (prefers-reduced-motion: reduce) { .gt-auth-preview { transform: none; } .gt-g-body, .gt-g-sprout, .gt-g-eye { animation: none !important; } }

/* Password strength meter (register) */
.gt-strength { margin-top: .45rem; }
.gt-strength-bars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
.gt-strength-bars i { height: 4px; border-radius: 99px; background: rgb(120 120 120 / .2); transition: background .25s; }
.gt-strength-label { font-size: .72rem; margin-top: .3rem; color: var(--gt-text-dim); }



/* ==========================================================================
   Background patterns (switch from the topbar; remembered per browser)
   ========================================================================== */
html { --gt-pat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22'%3E%3Ccircle cx='11' cy='11' r='1.2' fill='%23000'/%3E%3C/svg%3E"); --gt-pat-size: 22px 22px; --gt-pat-ink: 255 255 255; --gt-pat-alpha: .10; --mx: 50vw; --my: -400px; }
html:not(.dark) { --gt-pat-ink: 15 23 42; --gt-pat-alpha: .09; }
html[data-gt-pattern="grid"] { --gt-pat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44'%3E%3Cpath d='M44 0H0V44' fill='none' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E"); --gt-pat-size: 44px 44px; }
html[data-gt-pattern="topo"] { --gt-pat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='480' fill='none' stroke='%23000' stroke-width='1'%3E%3Cpath d='M0 15.0 L12 18.3 L24 21.3 L36 23.8 L48 25.8 L60 26.9 L72 27.3 L84 26.9 L96 25.8 L108 24.1 L120 22.0 L132 19.8 L144 17.5 L156 15.6 L168 14.0 L180 12.9 L192 12.5 L204 12.5 L216 13.0 L228 13.9 L240 15.0 L252 16.1 L264 17.0 L276 17.5 L288 17.5 L300 17.1 L312 16.0 L324 14.4 L336 12.5 L348 10.2 L360 8.0 L372 5.9 L384 4.2 L396 3.1 L408 2.7 L420 3.1 L432 4.2 L444 6.2 L456 8.7 L468 11.7 L480 15.0'/%3E%3Cpath d='M0 47.2 L12 49.4 L24 51.9 L36 54.5 L48 56.9 L60 59.0 L72 60.5 L84 61.5 L96 61.6 L108 61.0 L120 59.5 L132 57.2 L144 54.4 L156 51.0 L168 47.4 L180 43.8 L192 40.4 L204 37.4 L216 34.9 L228 33.0 L240 31.9 L252 31.6 L264 31.8 L276 32.7 L288 33.9 L300 35.4 L312 37.0 L324 38.5 L336 39.7 L348 40.7 L360 41.4 L372 41.8 L384 41.9 L396 41.8 L408 41.8 L420 41.8 L432 42.1 L444 42.7 L456 43.8 L468 45.3 L480 47.2'/%3E%3Cpath d='M0 82.1 L12 81.7 L24 81.2 L36 80.9 L48 80.6 L60 80.4 L72 80.3 L84 80.1 L96 79.9 L108 79.5 L120 78.9 L132 78.1 L144 76.9 L156 75.5 L168 73.8 L180 71.9 L192 69.9 L204 67.9 L216 66.1 L228 64.5 L240 63.3 L252 62.5 L264 62.3 L276 62.6 L288 63.4 L300 64.8 L312 66.6 L324 68.7 L336 71.0 L348 73.4 L360 75.7 L372 77.8 L384 79.6 L396 81.1 L408 82.2 L420 82.9 L432 83.3 L444 83.3 L456 83.0 L468 82.6 L480 82.1'/%3E%3Cpath d='M0 108.6 L12 107.9 L24 107.1 L36 106.3 L48 105.5 L60 104.7 L72 104.1 L84 103.5 L96 103.1 L108 102.8 L120 102.7 L132 102.6 L144 102.6 L156 102.6 L168 102.7 L180 102.7 L192 102.7 L204 102.7 L216 102.6 L228 102.6 L240 102.5 L252 102.4 L264 102.4 L276 102.4 L288 102.6 L300 102.9 L312 103.4 L324 103.9 L336 104.6 L348 105.4 L360 106.3 L372 107.1 L384 107.9 L396 108.6 L408 109.2 L420 109.6 L432 109.8 L444 109.8 L456 109.6 L468 109.2 L480 108.6'/%3E%3Cpath d='M0 137.2 L12 136.7 L24 136.2 L36 135.5 L48 134.7 L60 134.0 L72 133.2 L84 132.5 L96 131.9 L108 131.5 L120 131.3 L132 131.2 L144 131.3 L156 131.6 L168 132.1 L180 132.6 L192 133.2 L204 133.8 L216 134.4 L228 135.0 L240 135.4 L252 135.8 L264 136.0 L276 136.2 L288 136.2 L300 136.2 L312 136.1 L324 136.1 L336 136.0 L348 136.0 L360 136.1 L372 136.3 L384 136.5 L396 136.7 L408 137.0 L420 137.3 L432 137.5 L444 137.6 L456 137.6 L468 137.5 L480 137.2'/%3E%3Cpath d='M0 163.3 L12 163.0 L24 162.7 L36 162.3 L48 161.6 L60 160.8 L72 159.9 L84 158.9 L96 157.9 L108 157.0 L120 156.3 L132 155.9 L144 155.9 L156 156.3 L168 157.2 L180 158.5 L192 160.2 L204 162.2 L216 164.4 L228 166.7 L240 168.9 L252 171.0 L264 172.8 L276 174.2 L288 175.1 L300 175.5 L312 175.5 L324 175.0 L336 174.0 L348 172.8 L360 171.5 L372 170.0 L384 168.6 L396 167.2 L408 166.1 L420 165.2 L432 164.5 L444 164.0 L456 163.7 L468 163.4 L480 163.3'/%3E%3Cpath d='M0 180.1 L12 180.7 L24 181.9 L36 183.5 L48 185.4 L60 187.3 L72 189.2 L84 190.8 L96 192.1 L108 193.0 L120 193.6 L132 193.9 L144 194.0 L156 194.0 L168 194.1 L180 194.4 L192 194.9 L204 195.9 L216 197.2 L228 199.0 L240 201.0 L252 203.2 L264 205.4 L276 207.5 L288 209.2 L300 210.4 L312 211.0 L324 210.7 L336 209.7 L348 207.9 L360 205.3 L372 202.2 L384 198.7 L396 195.0 L408 191.3 L420 187.9 L432 184.9 L444 182.6 L456 181.0 L468 180.2 L480 180.1'/%3E%3Cpath d='M0 210.3 L12 210.0 L24 210.5 L36 212.0 L48 214.1 L60 217.0 L72 220.2 L84 223.7 L96 227.1 L108 230.2 L120 232.8 L132 234.8 L144 236.1 L156 236.5 L168 236.2 L180 235.3 L192 233.9 L204 232.2 L216 230.4 L228 228.7 L240 227.2 L252 226.2 L264 225.6 L276 225.5 L288 225.9 L300 226.6 L312 227.5 L324 228.5 L336 229.2 L348 229.7 L360 229.6 L372 229.0 L384 227.8 L396 226.0 L408 223.7 L420 221.1 L432 218.4 L444 215.7 L456 213.3 L468 211.5 L480 210.3'/%3E%3Cpath d='M0 253.7 L12 252.3 L24 251.0 L36 250.0 L48 249.5 L60 249.5 L72 250.0 L84 251.1 L96 252.7 L108 254.6 L120 256.7 L132 258.7 L144 260.6 L156 262.2 L168 263.2 L180 263.6 L192 263.5 L204 262.6 L216 261.3 L228 259.4 L240 257.4 L252 255.2 L264 253.1 L276 251.2 L288 249.8 L300 248.9 L312 248.6 L324 248.8 L336 249.6 L348 250.8 L360 252.2 L372 253.8 L384 255.3 L396 256.6 L408 257.5 L420 258.0 L432 257.9 L444 257.4 L456 256.5 L468 255.2 L480 253.7'/%3E%3Cpath d='M0 288.2 L12 288.3 L24 288.0 L36 287.6 L48 287.0 L60 286.4 L72 285.8 L84 285.3 L96 285.0 L108 284.9 L120 285.1 L132 285.4 L144 286.0 L156 286.7 L168 287.5 L180 288.1 L192 288.7 L204 289.0 L216 289.0 L228 288.7 L240 288.1 L252 287.1 L264 286.0 L276 284.6 L288 283.2 L300 281.8 L312 280.5 L324 279.5 L336 278.9 L348 278.6 L360 278.7 L372 279.2 L384 280.0 L396 281.1 L408 282.4 L420 283.7 L432 285.0 L444 286.2 L456 287.1 L468 287.8 L480 288.2'/%3E%3Cpath d='M0 321.8 L12 323.0 L24 324.0 L36 324.7 L48 325.1 L60 325.1 L72 324.8 L84 324.2 L96 323.3 L108 322.3 L120 321.1 L132 319.8 L144 318.5 L156 317.1 L168 315.8 L180 314.6 L192 313.5 L204 312.4 L216 311.5 L228 310.6 L240 309.8 L252 309.1 L264 308.4 L276 307.8 L288 307.3 L300 306.9 L312 306.6 L324 306.5 L336 306.6 L348 306.9 L360 307.4 L372 308.1 L384 309.1 L396 310.3 L408 311.8 L420 313.4 L432 315.1 L444 316.9 L456 318.6 L468 320.3 L480 321.8'/%3E%3Cpath d='M0 356.1 L12 356.7 L24 356.9 L36 356.9 L48 356.5 L60 355.8 L72 354.7 L84 353.3 L96 351.6 L108 349.6 L120 347.5 L132 345.2 L144 343.0 L156 340.7 L168 338.7 L180 336.8 L192 335.2 L204 334.0 L216 333.1 L228 332.6 L240 332.5 L252 332.8 L264 333.4 L276 334.2 L288 335.3 L300 336.5 L312 337.9 L324 339.3 L336 340.8 L348 342.3 L360 343.8 L372 345.3 L384 346.8 L396 348.2 L408 349.6 L420 350.9 L432 352.2 L444 353.4 L456 354.4 L468 355.4 L480 356.1'/%3E%3Cpath d='M0 378.1 L12 377.4 L24 376.9 L36 376.6 L48 376.4 L60 376.3 L72 376.2 L84 376.0 L96 375.7 L108 375.2 L120 374.5 L132 373.5 L144 372.3 L156 371.0 L168 369.6 L180 368.2 L192 366.9 L204 365.9 L216 365.2 L228 365.0 L240 365.2 L252 365.9 L264 367.1 L276 368.7 L288 370.6 L300 372.7 L312 375.0 L324 377.2 L336 379.2 L348 380.9 L360 382.3 L372 383.2 L384 383.7 L396 383.8 L408 383.5 L420 382.8 L432 381.9 L444 380.9 L456 379.9 L468 378.9 L480 378.1'/%3E%3Cpath d='M0 404.4 L12 402.3 L24 400.5 L36 399.2 L48 398.4 L60 398.2 L72 398.6 L84 399.5 L96 400.8 L108 402.5 L120 404.2 L132 405.8 L144 407.2 L156 408.2 L168 408.7 L180 408.7 L192 408.1 L204 407.2 L216 405.9 L228 404.4 L240 402.8 L252 401.5 L264 400.4 L276 399.8 L288 399.8 L300 400.3 L312 401.3 L324 402.8 L336 404.6 L348 406.6 L360 408.6 L372 410.4 L384 411.9 L396 412.8 L408 413.2 L420 412.9 L432 412.0 L444 410.5 L456 408.7 L468 406.5 L480 404.4'/%3E%3Cpath d='M0 439.2 L12 437.1 L24 434.7 L36 432.1 L48 429.5 L60 427.3 L72 425.5 L84 424.4 L96 424.0 L108 424.4 L120 425.6 L132 427.4 L144 429.7 L156 432.3 L168 435.0 L180 437.5 L192 439.6 L204 441.3 L216 442.2 L228 442.5 L240 442.2 L252 441.2 L264 439.8 L276 438.0 L288 436.3 L300 434.6 L312 433.2 L324 432.3 L336 432.0 L348 432.2 L360 433.0 L372 434.3 L384 435.8 L396 437.6 L408 439.2 L420 440.6 L432 441.6 L444 442.0 L456 441.8 L468 440.8 L480 439.2'/%3E%3Cpath d='M0 461.0 L12 461.1 L24 460.9 L36 460.4 L48 459.5 L60 458.5 L72 457.4 L84 456.4 L96 455.6 L108 455.2 L120 455.4 L132 456.1 L144 457.4 L156 459.4 L168 461.8 L180 464.7 L192 467.9 L204 471.0 L216 474.0 L228 476.6 L240 478.7 L252 480.1 L264 480.6 L276 480.4 L288 479.4 L300 477.7 L312 475.5 L324 472.9 L336 470.2 L348 467.4 L360 464.9 L372 462.7 L384 461.0 L396 459.9 L408 459.2 L420 459.0 L432 459.2 L444 459.6 L456 460.2 L468 460.7 L480 461.0'/%3E%3C/svg%3E"); --gt-pat-size: 480px 480px; }
html[data-gt-pattern="leaves"] { --gt-pat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cg transform='translate%2830 34%29 rotate%28-8%29 scale%281%29' fill='none' stroke='%23000' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M0 10V-2'/%3E%3Cpath d='M0 2C0-4-5-7-10-7c0 5 4 9 10 9Z'/%3E%3Cpath d='M0-1c0-5 4-8 10-8 0 5-4 8-10 8Z'/%3E%3C/g%3E%3Cg transform='translate%2890 94%29 rotate%2812%29 scale%280.8%29' fill='none' stroke='%23000' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M0 10V-2'/%3E%3Cpath d='M0 2C0-4-5-7-10-7c0 5 4 9 10 9Z'/%3E%3Cpath d='M0-1c0-5 4-8 10-8 0 5-4 8-10 8Z'/%3E%3C/g%3E%3Ccircle cx='92' cy='26' r='1.3' fill='%23000'/%3E%3Ccircle cx='24' cy='92' r='1.3' fill='%23000'/%3E%3C/svg%3E"); --gt-pat-size: 120px 120px; }

.fi-body::before, .fi-body::after {
    content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 0;
    -webkit-mask-image: var(--gt-pat), var(--gt-fade); mask-image: var(--gt-pat), var(--gt-fade);
    -webkit-mask-size: var(--gt-pat-size), 100% 100%; mask-size: var(--gt-pat-size), 100% 100%;
    -webkit-mask-repeat: repeat, no-repeat; mask-repeat: repeat, no-repeat;
    -webkit-mask-composite: source-in; mask-composite: intersect;
    transition: opacity .4s ease;
}
/* Base layer: fades out toward the bottom so tables stay calm */
.fi-body::before {
    --gt-fade: linear-gradient(180deg, #000 0%, rgb(0 0 0 / .75) 45%, rgb(0 0 0 / .25) 100%);
    background: rgb(var(--gt-pat-ink) / var(--gt-pat-alpha));
}
/* Glow layer: the pattern lights up emerald around the cursor */
.fi-body::after {
    --gt-fade: radial-gradient(260px circle at var(--mx) var(--my), #000 0%, transparent 70%);
    background: rgb(52 211 153 / .55);
}
html[data-gt-pattern="none"] .fi-body::before, html[data-gt-pattern="none"] .fi-body::after { opacity: 0; }
.fi-layout, .fi-simple-layout { position: relative; z-index: 1; }
@media (prefers-reduced-motion: reduce) { .fi-body::after { display: none; } }

/* Pattern switcher */
.gt-pat-btn { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: .7rem; color: var(--gt-text-dim); transition: background .2s, color .2s, transform .2s; }
.gt-pat-btn:hover { background: rgb(120 120 120 / .14); color: #34d399; transform: rotate(-8deg); }
.gt-pat-menu { position: absolute; right: 0; top: calc(100% + .5rem); z-index: 50; width: 250px; padding: .75rem; border-radius: 1rem;
    background: #0b1220; border: 1px solid rgb(255 255 255 / .1); box-shadow: 0 24px 60px -20px rgb(0 0 0 / .7); }
html:not(.dark) .gt-pat-menu { background: #fff; border-color: rgb(15 23 42 / .1); }
.gt-pat-menu h4 { font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gt-text-dim); margin-bottom: .6rem; }
.gt-pat-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: .45rem; }
.gt-pat-swatch { aspect-ratio: 1; border-radius: .6rem; border: 1px solid rgb(120 120 120 / .25); position: relative; overflow: hidden; transition: transform .15s, border-color .2s; background: rgb(120 120 120 / .08); }
.gt-pat-swatch::before { content: ''; position: absolute; inset: 0; background: rgb(var(--gt-pat-ink) / .55);
    -webkit-mask-image: var(--sw); mask-image: var(--sw); -webkit-mask-size: var(--sws); mask-size: var(--sws); }
.gt-pat-swatch:hover { transform: translateY(-2px); }
.gt-pat-swatch.on { border-color: #34d399; box-shadow: 0 0 0 2px rgb(52 211 153 / .35); }
.gt-pat-label { font-size: .62rem; text-align: center; margin-top: .25rem; color: var(--gt-text-dim); }

/* Swatch previews */
.gt-pat-swatch[data-p="dots"] { --sw: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22'%3E%3Ccircle cx='11' cy='11' r='1.2' fill='%23000'/%3E%3C/svg%3E"); --sws: 11px 11px; }
.gt-pat-swatch[data-p="grid"] { --sw: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44'%3E%3Cpath d='M44 0H0V44' fill='none' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E"); --sws: 16px 16px; }
.gt-pat-swatch[data-p="topo"] { --sw: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='480' fill='none' stroke='%23000' stroke-width='1'%3E%3Cpath d='M0 15.0 L12 18.3 L24 21.3 L36 23.8 L48 25.8 L60 26.9 L72 27.3 L84 26.9 L96 25.8 L108 24.1 L120 22.0 L132 19.8 L144 17.5 L156 15.6 L168 14.0 L180 12.9 L192 12.5 L204 12.5 L216 13.0 L228 13.9 L240 15.0 L252 16.1 L264 17.0 L276 17.5 L288 17.5 L300 17.1 L312 16.0 L324 14.4 L336 12.5 L348 10.2 L360 8.0 L372 5.9 L384 4.2 L396 3.1 L408 2.7 L420 3.1 L432 4.2 L444 6.2 L456 8.7 L468 11.7 L480 15.0'/%3E%3Cpath d='M0 47.2 L12 49.4 L24 51.9 L36 54.5 L48 56.9 L60 59.0 L72 60.5 L84 61.5 L96 61.6 L108 61.0 L120 59.5 L132 57.2 L144 54.4 L156 51.0 L168 47.4 L180 43.8 L192 40.4 L204 37.4 L216 34.9 L228 33.0 L240 31.9 L252 31.6 L264 31.8 L276 32.7 L288 33.9 L300 35.4 L312 37.0 L324 38.5 L336 39.7 L348 40.7 L360 41.4 L372 41.8 L384 41.9 L396 41.8 L408 41.8 L420 41.8 L432 42.1 L444 42.7 L456 43.8 L468 45.3 L480 47.2'/%3E%3Cpath d='M0 82.1 L12 81.7 L24 81.2 L36 80.9 L48 80.6 L60 80.4 L72 80.3 L84 80.1 L96 79.9 L108 79.5 L120 78.9 L132 78.1 L144 76.9 L156 75.5 L168 73.8 L180 71.9 L192 69.9 L204 67.9 L216 66.1 L228 64.5 L240 63.3 L252 62.5 L264 62.3 L276 62.6 L288 63.4 L300 64.8 L312 66.6 L324 68.7 L336 71.0 L348 73.4 L360 75.7 L372 77.8 L384 79.6 L396 81.1 L408 82.2 L420 82.9 L432 83.3 L444 83.3 L456 83.0 L468 82.6 L480 82.1'/%3E%3Cpath d='M0 108.6 L12 107.9 L24 107.1 L36 106.3 L48 105.5 L60 104.7 L72 104.1 L84 103.5 L96 103.1 L108 102.8 L120 102.7 L132 102.6 L144 102.6 L156 102.6 L168 102.7 L180 102.7 L192 102.7 L204 102.7 L216 102.6 L228 102.6 L240 102.5 L252 102.4 L264 102.4 L276 102.4 L288 102.6 L300 102.9 L312 103.4 L324 103.9 L336 104.6 L348 105.4 L360 106.3 L372 107.1 L384 107.9 L396 108.6 L408 109.2 L420 109.6 L432 109.8 L444 109.8 L456 109.6 L468 109.2 L480 108.6'/%3E%3Cpath d='M0 137.2 L12 136.7 L24 136.2 L36 135.5 L48 134.7 L60 134.0 L72 133.2 L84 132.5 L96 131.9 L108 131.5 L120 131.3 L132 131.2 L144 131.3 L156 131.6 L168 132.1 L180 132.6 L192 133.2 L204 133.8 L216 134.4 L228 135.0 L240 135.4 L252 135.8 L264 136.0 L276 136.2 L288 136.2 L300 136.2 L312 136.1 L324 136.1 L336 136.0 L348 136.0 L360 136.1 L372 136.3 L384 136.5 L396 136.7 L408 137.0 L420 137.3 L432 137.5 L444 137.6 L456 137.6 L468 137.5 L480 137.2'/%3E%3Cpath d='M0 163.3 L12 163.0 L24 162.7 L36 162.3 L48 161.6 L60 160.8 L72 159.9 L84 158.9 L96 157.9 L108 157.0 L120 156.3 L132 155.9 L144 155.9 L156 156.3 L168 157.2 L180 158.5 L192 160.2 L204 162.2 L216 164.4 L228 166.7 L240 168.9 L252 171.0 L264 172.8 L276 174.2 L288 175.1 L300 175.5 L312 175.5 L324 175.0 L336 174.0 L348 172.8 L360 171.5 L372 170.0 L384 168.6 L396 167.2 L408 166.1 L420 165.2 L432 164.5 L444 164.0 L456 163.7 L468 163.4 L480 163.3'/%3E%3Cpath d='M0 180.1 L12 180.7 L24 181.9 L36 183.5 L48 185.4 L60 187.3 L72 189.2 L84 190.8 L96 192.1 L108 193.0 L120 193.6 L132 193.9 L144 194.0 L156 194.0 L168 194.1 L180 194.4 L192 194.9 L204 195.9 L216 197.2 L228 199.0 L240 201.0 L252 203.2 L264 205.4 L276 207.5 L288 209.2 L300 210.4 L312 211.0 L324 210.7 L336 209.7 L348 207.9 L360 205.3 L372 202.2 L384 198.7 L396 195.0 L408 191.3 L420 187.9 L432 184.9 L444 182.6 L456 181.0 L468 180.2 L480 180.1'/%3E%3Cpath d='M0 210.3 L12 210.0 L24 210.5 L36 212.0 L48 214.1 L60 217.0 L72 220.2 L84 223.7 L96 227.1 L108 230.2 L120 232.8 L132 234.8 L144 236.1 L156 236.5 L168 236.2 L180 235.3 L192 233.9 L204 232.2 L216 230.4 L228 228.7 L240 227.2 L252 226.2 L264 225.6 L276 225.5 L288 225.9 L300 226.6 L312 227.5 L324 228.5 L336 229.2 L348 229.7 L360 229.6 L372 229.0 L384 227.8 L396 226.0 L408 223.7 L420 221.1 L432 218.4 L444 215.7 L456 213.3 L468 211.5 L480 210.3'/%3E%3Cpath d='M0 253.7 L12 252.3 L24 251.0 L36 250.0 L48 249.5 L60 249.5 L72 250.0 L84 251.1 L96 252.7 L108 254.6 L120 256.7 L132 258.7 L144 260.6 L156 262.2 L168 263.2 L180 263.6 L192 263.5 L204 262.6 L216 261.3 L228 259.4 L240 257.4 L252 255.2 L264 253.1 L276 251.2 L288 249.8 L300 248.9 L312 248.6 L324 248.8 L336 249.6 L348 250.8 L360 252.2 L372 253.8 L384 255.3 L396 256.6 L408 257.5 L420 258.0 L432 257.9 L444 257.4 L456 256.5 L468 255.2 L480 253.7'/%3E%3Cpath d='M0 288.2 L12 288.3 L24 288.0 L36 287.6 L48 287.0 L60 286.4 L72 285.8 L84 285.3 L96 285.0 L108 284.9 L120 285.1 L132 285.4 L144 286.0 L156 286.7 L168 287.5 L180 288.1 L192 288.7 L204 289.0 L216 289.0 L228 288.7 L240 288.1 L252 287.1 L264 286.0 L276 284.6 L288 283.2 L300 281.8 L312 280.5 L324 279.5 L336 278.9 L348 278.6 L360 278.7 L372 279.2 L384 280.0 L396 281.1 L408 282.4 L420 283.7 L432 285.0 L444 286.2 L456 287.1 L468 287.8 L480 288.2'/%3E%3Cpath d='M0 321.8 L12 323.0 L24 324.0 L36 324.7 L48 325.1 L60 325.1 L72 324.8 L84 324.2 L96 323.3 L108 322.3 L120 321.1 L132 319.8 L144 318.5 L156 317.1 L168 315.8 L180 314.6 L192 313.5 L204 312.4 L216 311.5 L228 310.6 L240 309.8 L252 309.1 L264 308.4 L276 307.8 L288 307.3 L300 306.9 L312 306.6 L324 306.5 L336 306.6 L348 306.9 L360 307.4 L372 308.1 L384 309.1 L396 310.3 L408 311.8 L420 313.4 L432 315.1 L444 316.9 L456 318.6 L468 320.3 L480 321.8'/%3E%3Cpath d='M0 356.1 L12 356.7 L24 356.9 L36 356.9 L48 356.5 L60 355.8 L72 354.7 L84 353.3 L96 351.6 L108 349.6 L120 347.5 L132 345.2 L144 343.0 L156 340.7 L168 338.7 L180 336.8 L192 335.2 L204 334.0 L216 333.1 L228 332.6 L240 332.5 L252 332.8 L264 333.4 L276 334.2 L288 335.3 L300 336.5 L312 337.9 L324 339.3 L336 340.8 L348 342.3 L360 343.8 L372 345.3 L384 346.8 L396 348.2 L408 349.6 L420 350.9 L432 352.2 L444 353.4 L456 354.4 L468 355.4 L480 356.1'/%3E%3Cpath d='M0 378.1 L12 377.4 L24 376.9 L36 376.6 L48 376.4 L60 376.3 L72 376.2 L84 376.0 L96 375.7 L108 375.2 L120 374.5 L132 373.5 L144 372.3 L156 371.0 L168 369.6 L180 368.2 L192 366.9 L204 365.9 L216 365.2 L228 365.0 L240 365.2 L252 365.9 L264 367.1 L276 368.7 L288 370.6 L300 372.7 L312 375.0 L324 377.2 L336 379.2 L348 380.9 L360 382.3 L372 383.2 L384 383.7 L396 383.8 L408 383.5 L420 382.8 L432 381.9 L444 380.9 L456 379.9 L468 378.9 L480 378.1'/%3E%3Cpath d='M0 404.4 L12 402.3 L24 400.5 L36 399.2 L48 398.4 L60 398.2 L72 398.6 L84 399.5 L96 400.8 L108 402.5 L120 404.2 L132 405.8 L144 407.2 L156 408.2 L168 408.7 L180 408.7 L192 408.1 L204 407.2 L216 405.9 L228 404.4 L240 402.8 L252 401.5 L264 400.4 L276 399.8 L288 399.8 L300 400.3 L312 401.3 L324 402.8 L336 404.6 L348 406.6 L360 408.6 L372 410.4 L384 411.9 L396 412.8 L408 413.2 L420 412.9 L432 412.0 L444 410.5 L456 408.7 L468 406.5 L480 404.4'/%3E%3Cpath d='M0 439.2 L12 437.1 L24 434.7 L36 432.1 L48 429.5 L60 427.3 L72 425.5 L84 424.4 L96 424.0 L108 424.4 L120 425.6 L132 427.4 L144 429.7 L156 432.3 L168 435.0 L180 437.5 L192 439.6 L204 441.3 L216 442.2 L228 442.5 L240 442.2 L252 441.2 L264 439.8 L276 438.0 L288 436.3 L300 434.6 L312 433.2 L324 432.3 L336 432.0 L348 432.2 L360 433.0 L372 434.3 L384 435.8 L396 437.6 L408 439.2 L420 440.6 L432 441.6 L444 442.0 L456 441.8 L468 440.8 L480 439.2'/%3E%3Cpath d='M0 461.0 L12 461.1 L24 460.9 L36 460.4 L48 459.5 L60 458.5 L72 457.4 L84 456.4 L96 455.6 L108 455.2 L120 455.4 L132 456.1 L144 457.4 L156 459.4 L168 461.8 L180 464.7 L192 467.9 L204 471.0 L216 474.0 L228 476.6 L240 478.7 L252 480.1 L264 480.6 L276 480.4 L288 479.4 L300 477.7 L312 475.5 L324 472.9 L336 470.2 L348 467.4 L360 464.9 L372 462.7 L384 461.0 L396 459.9 L408 459.2 L420 459.0 L432 459.2 L444 459.6 L456 460.2 L468 460.7 L480 461.0'/%3E%3C/svg%3E"); --sws: 160px 160px; }
.gt-pat-swatch[data-p="leaves"] { --sw: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cg transform='translate%2830 34%29 rotate%28-8%29 scale%281%29' fill='none' stroke='%23000' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M0 10V-2'/%3E%3Cpath d='M0 2C0-4-5-7-10-7c0 5 4 9 10 9Z'/%3E%3Cpath d='M0-1c0-5 4-8 10-8 0 5-4 8-10 8Z'/%3E%3C/g%3E%3Cg transform='translate%2890 94%29 rotate%2812%29 scale%280.8%29' fill='none' stroke='%23000' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M0 10V-2'/%3E%3Cpath d='M0 2C0-4-5-7-10-7c0 5 4 9 10 9Z'/%3E%3Cpath d='M0-1c0-5 4-8 10-8 0 5-4 8-10 8Z'/%3E%3C/g%3E%3Ccircle cx='92' cy='26' r='1.3' fill='%23000'/%3E%3Ccircle cx='24' cy='92' r='1.3' fill='%23000'/%3E%3C/svg%3E"); --sws: 48px 48px; }
.gt-pat-swatch[data-p="none"]::before { display: none; }
.gt-pat-swatch[data-p="none"]::after { content: "∅"; position: absolute; inset: 0; display: grid; place-items: center; color: var(--gt-text-dim); font-size: .9rem; }

/* ==========================================================================
   Admin panel (/admin)
   ========================================================================== */
.gt-funnel { display: grid; gap: .7rem; margin-top: .9rem; }
.gt-funnel-bar { width: var(--w); min-width: 150px; padding: .55rem .8rem; border-radius: .7rem; color: #fff; font-size: .85rem; white-space: nowrap;
    box-shadow: 0 10px 24px -14px rgb(139 92 246 / .8); animation: gt-funnel .9s cubic-bezier(.2,.8,.2,1) var(--d) both; transform-origin: left; }
.gt-funnel-bar b { font-size: 1.05rem; margin-right: .25rem; }
@keyframes gt-funnel { from { transform: scaleX(.05); opacity: 0; } }
.gt-funnel-meta { display: flex; justify-content: space-between; font-size: .72rem; color: var(--gt-text-dim); margin-top: .25rem; }
.gt-funnel-conv { font-weight: 700; }
.gt-adopt-row { display: grid; grid-template-columns: 9.5rem 1fr 3rem; gap: .7rem; align-items: center; font-size: .82rem; }
.gt-adopt-row .gt-num { text-align: right; font-weight: 700; font-size: .8rem; }
.gt-cohort { border-collapse: separate; border-spacing: 4px; font-size: .78rem; width: 100%; }
.gt-cohort th { font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; color: var(--gt-text-dim); font-weight: 600; text-align: center; padding: .2rem; }
.gt-cohort th:first-child, .gt-cohort td:first-child { text-align: left; white-space: nowrap; }
.gt-cohort td { text-align: center; }
.gt-cohort-cell { display: block; padding: .45rem .3rem; border-radius: .45rem; font-weight: 700; color: #fff; background: rgb(139 92 246 / var(--a)); transition: transform .15s; }
.gt-cohort-cell:hover { transform: scale(1.08); }
.gt-cohort-na { color: var(--gt-text-dim); }
.gt-hours { display: grid; grid-template-columns: 2.2rem repeat(24, 1fr); gap: 3px; margin: .9rem 0 .6rem; align-items: center; }
.gt-hours-h { font-size: .6rem; color: var(--gt-text-dim); }
.gt-hours-d { font-size: .68rem; color: var(--gt-text-dim); }
.gt-hours-c { aspect-ratio: 1; border-radius: 3px; background: rgb(139 92 246 / var(--a)); outline: 1px solid rgb(120 120 120 / .12); transition: transform .12s; }
.gt-hours-c:hover { transform: scale(1.4); outline-color: #c4b5fd; }
.gt-feed { display: grid; gap: .15rem; margin-top: .7rem; }
.gt-feed-item { display: flex; align-items: center; gap: .7rem; padding: .45rem .3rem; border-radius: .6rem; transition: background .2s; animation: gt-row-in .4s ease both; }
.gt-feed-item:hover { background: rgb(120 120 120 / .08); }
.gt-feed-icon { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: .6rem; background: rgb(120 120 120 / .12); flex: none; }
.gt-avatar { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 999px; flex: none; font-weight: 700; font-size: .85rem; color: #fff;
    background: linear-gradient(135deg, hsl(var(--h) 70% 55%), hsl(calc(var(--h) + 40) 70% 45%)); }
.gt-streak-dots { margin-left: auto; width: 70px; height: .4rem; border-radius: 99px; background: rgb(120 120 120 / .16); overflow: hidden; flex: none; }
.gt-streak-dots span { display: block; height: 100%; width: var(--w); background: linear-gradient(90deg, #8b5cf6, #34d399); border-radius: 99px; animation: gt-grow 1s ease both; }
.gt-risk { margin-left: auto; white-space: nowrap; font-size: .72rem; font-weight: 700; padding: .2rem .55rem; border-radius: 99px; background: rgb(251 191 36 / .14); color: #fbbf24; }
.gt-risk.high { background: rgb(251 113 133 / .14); color: #fb7185; }
.gt-online { display: inline-block; width: .55rem; height: .55rem; border-radius: 99px; background: #34d399; box-shadow: 0 0 0 0 rgb(52 211 153 / .7); animation: gt-ping 2s infinite; margin-right: .35rem; }
.gt-activity-bars { display: flex; align-items: flex-end; gap: 3px; height: 70px; }
.gt-activity-bars span { flex: 1; height: var(--h); border-radius: 3px 3px 1px 1px; background: linear-gradient(180deg, #a78bfa, #7c3aed); animation: gt-ap-bar .6s cubic-bezier(.2,1.2,.4,1) both; transform-origin: bottom; }
.gt-feature-pill { font-size: .78rem; padding: .3rem .6rem; border-radius: 99px; background: rgb(120 120 120 / .1); color: var(--gt-text-dim); }
.gt-feature-pill.on { background: rgb(139 92 246 / .15); color: inherit; }
.gt-feature-pill b { margin-left: .2rem; }

/* ==========================================================================
   Brand logo (default mark + wordmark, or uploaded image)
   ========================================================================== */
.dr-logo { display: inline-flex; align-items: center; gap: .55rem; height: var(--dr-h, 2rem); line-height: 1; }
.dr-logo .dr-mark { height: 100%; width: auto; flex: none; filter: drop-shadow(0 6px 14px rgb(16 185 129 / .35)); }
.dr-wordmark { font-family: var(--gt-num-font); font-weight: 700; letter-spacing: -.035em; font-size: calc(var(--dr-h, 2rem) * .66); color: inherit; white-space: nowrap; }
.dr-wordmark small { font-family: 'Inter', sans-serif; font-size: .5em; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; margin-left: .45em;
    padding: .25em .55em; border-radius: 99px; background: rgb(139 92 246 / .18); color: #c4b5fd; vertical-align: middle; }
.dr-logo:hover .dr-mark-leaf-l { transform: rotate(-10deg); } .dr-logo:hover .dr-mark-leaf-r { transform: rotate(8deg); }
.dr-mark-leaf { transform-box: fill-box; transform-origin: 100% 100%; transition: transform .35s cubic-bezier(.2,1.6,.4,1); }
.dr-mark-leaf-r { transform-origin: 0% 100%; }
.gt-auth-logo .dr-wordmark { color: #fff; }

/* Focus timer: break mode + permission button */
.gt-focus.is-break { border-color: rgb(52 211 153 / .4) !important; box-shadow: var(--gt-shadow), 0 0 40px -18px rgb(52 211 153 / .7) !important; }
.gt-bell-btn { font-size: .72rem; font-weight: 700; padding: .2rem .55rem; border-radius: 99px; background: rgb(251 191 36 / .14); color: #fbbf24; border: 1px solid rgb(251 191 36 / .35); margin-left: .4rem; }
.gt-bell-btn:hover { background: rgb(251 191 36 / .25); }
