@import url("https://fonts.googleapis.com/css2?family=Syne:wght@700;800&family=DM+Sans:wght@400;500;700&display=swap");:root{--bg:#09090b;--bg2:#121214;--bg3:#18181b;--surface-1:rgba(22,22,26,0.65);--surface-2:rgba(34,34,40,0.68);--surface-bar:rgba(14,14,17,0.82);--glass-border:rgba(255,255,255,0.12);--glass-border-strong:rgba(255,255,255,0.18);--glass-highlight:inset 0 1px 1px rgba(255,255,255,0.12),inset 0 0 0 1px rgba(255,255,255,0.05);--glass-blur:blur(40px) saturate(180%);--shadow-glass:0 8px 32px rgba(0,0,0,0.45);--card:var(--surface-1);--card-border:var(--glass-border);--border:rgba(255,255,255,0.06);--glass:var(--surface-1);--accent:#c8f542;--accent-glow:rgba(200,245,66,0.22);--accent-dim:rgba(200,245,66,0.10);--neon-cyan:#22d3ee;--neon-cyan-glow:rgba(34,211,238,0.22);--neon-purple:#a855f7;--neon-purple-glow:rgba(168,85,247,0.22);--neon-amber:#fbbf24;--neon-amber-glow:rgba(251,191,36,0.22);--red:#ef4444;--text:#fafafa;--text2:#a1a1aa;--text3:#6b6b76;--font-display:"Syne",sans-serif;--font-body:"DM Sans",sans-serif;--r:12px;--r2:26px;--r3:32px;--r-pill:999px;--sidebar-w:260px;--topbar-h:56px;--main-px:48px;--main-py:40px}@media (max-width:1024px){:root{--sidebar-w:80px;--main-px:32px}}@media (max-width:768px){:root{--sidebar-w:0px;--main-px:20px;--main-py:24px}}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);background-attachment:fixed;color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}@media (max-width:768px){body{font-size:14px;padding-bottom:80px}}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--surface-2);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--text3)}.app-topbar,.card,.drawer,.glass-panel,.mobile-nav,.modal,.sidebar{background:var(--surface-1);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border)}.glass-panel{border-radius:var(--r3);box-shadow:var(--shadow-glass),var(--glass-highlight)}.neon-glow{box-shadow:0 0 20px var(--accent-glow)}@supports not (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))){.card,.glass-panel,.modal{background:var(--bg2)}.app-topbar,.drawer,.mobile-nav,.sidebar{background:var(--bg)}}.shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--surface-bar);border-right:1px solid var(--glass-border);position:fixed;top:0;left:0;height:100vh;display:flex;flex-direction:column;padding:32px 20px;z-index:100;overflow:hidden;transition:width .3s ease,min-width .3s ease}@media (max-width:1024px){.sidebar{padding:32px 12px}}@media (max-width:768px){.sidebar{display:none}}.main{margin-left:var(--sidebar-w);padding:var(--main-py) var(--main-px);max-width:1200px;width:100%;transition:margin-left .3s ease}@media (max-width:768px){.main{max-width:100%;padding-top:calc(var(--main-py) + var(--topbar-h))}}.app-topbar{display:none;position:fixed;top:0;left:0;right:0;height:var(--topbar-h);align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--glass-border);z-index:900}@media (max-width:768px){.app-topbar{display:flex}}.hamburger{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--r-pill);background:var(--surface-1);border:1px solid var(--glass-border);color:var(--text);cursor:pointer;transition:background .2s}.hamburger:hover{background:var(--surface-2)}.drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:1100}.drawer{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:82vw;background:var(--surface-bar);border-right:1px solid var(--glass-border);box-shadow:var(--shadow-glass);z-index:1101;display:flex;flex-direction:column;padding:24px 16px;overflow-y:auto}.drawer-footer{margin-top:auto;padding-top:20px;border-top:1px solid var(--border)}.mobile-nav{display:none;position:fixed;bottom:16px;left:16px;right:16px;height:72px;background:var(--surface-bar);border:1px solid var(--glass-border);border-radius:var(--r-pill);box-shadow:var(--shadow-glass);z-index:1000;padding:8px 10px;justify-content:space-around;align-items:stretch}@media (max-width:768px){.mobile-nav{display:flex}}.m-nav-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--text3);text-decoration:none;font-size:10px;font-weight:600;transition:color .2s;flex:1 1;border-radius:var(--r-pill)}.m-nav-item.active{color:var(--accent)}.m-nav-item>span,.m-nav-item>svg{position:relative;z-index:1}.m-nav-icon{font-size:20px}.logo{gap:12px;margin-bottom:48px;padding:0 8px}.logo,.logo-mark{display:flex;align-items:center}.logo-mark{width:36px;height:36px;border-radius:12px;background:var(--accent);box-shadow:0 0 12px var(--accent-glow);justify-content:center;font-size:18px;color:#000;flex-shrink:0}.logo-mark,.logo-text{font-family:var(--font-display);font-weight:800}.logo-text{font-size:20px;color:var(--text);letter-spacing:-.02em;transition:opacity .2s ease}@media (max-width:1024px){.sidebar .logo-text{display:none}.sidebar .logo{justify-content:center;padding:0}}.nav-section{margin-bottom:32px}.nav-label{font-size:11px;font-weight:700;color:var(--text3);letter-spacing:.1em;text-transform:uppercase;padding:0 12px;margin-bottom:12px}@media (max-width:1024px){.sidebar .nav-label{display:none}}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--r-pill);color:var(--text2);cursor:pointer;font-size:14px;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);margin-bottom:4px;text-decoration:none;border:1px solid transparent}.nav-item:hover{background:var(--surface-1);color:var(--text);border-color:var(--glass-border)}.nav-item.active{background:var(--accent-dim);color:var(--accent);border-color:rgba(200,245,66,.2)}.nav-icon{font-size:18px;opacity:.8;flex-shrink:0}.nav-item span{transition:opacity .2s ease}@media (max-width:1024px){.sidebar .nav-item{justify-content:center;padding:12px 0}.sidebar .nav-item span{display:none}}.page-header{margin-bottom:32px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}@media (max-width:768px){.page-header{flex-direction:column;align-items:flex-start}}.page-title{font-family:var(--font-display);font-weight:800;font-size:34px;color:var(--text);letter-spacing:-.03em}@media (max-width:768px){.page-title{font-size:28px}}.page-sub{color:var(--text2);font-size:15px;margin-top:6px}.card{border-radius:var(--r2);padding:24px;box-shadow:var(--shadow-glass),var(--glass-highlight);transition:border-color .25s ease,background .25s ease,transform .2s ease,box-shadow .25s ease}@media (max-width:768px){.card{padding:20px}}.card:hover{border-color:var(--glass-border-strong);background:var(--surface-2);box-shadow:var(--shadow-glass),0 0 24px var(--accent-dim)}.card:active{transform:scale(.98)}.card-title{font-family:var(--font-display);font-weight:700;font-size:17px;color:var(--text);margin-bottom:20px;display:flex;align-items:center;gap:10px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}@media (max-width:1200px){.metric-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.metric-grid{grid-template-columns:1fr}}.metric-card{background:var(--surface-2);border:1px solid var(--glass-border);border-radius:var(--r2);padding:22px;position:relative;overflow:hidden;box-shadow:var(--glass-highlight)}.metric-card:after{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:var(--accent);opacity:.3}.metric-label{font-size:12px;color:var(--text2);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.metric-val{font-family:var(--font-display);font-size:28px;font-weight:800;color:var(--text)}.metric-unit{font-size:14px;margin-left:4px;font-family:var(--font-body)}.metric-sub,.metric-unit{color:var(--text3);font-weight:500}.metric-sub{font-size:13px;margin-top:6px}.dashboard-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}@media (max-width:1024px){.dashboard-grid{grid-template-columns:1fr}}.prog-wrap{margin-bottom:18px}.prog-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.prog-name{font-size:14px;color:var(--text2);font-weight:500}.prog-nums{font-size:14px;color:var(--text);font-weight:600;font-family:var(--font-display)}.prog-track{height:8px;background:var(--bg3);border-radius:99px;overflow:hidden}.prog-fill{height:100%;border-radius:99px;transition:width .8s cubic-bezier(.34,1.56,.64,1)}.prog-green .prog-fill{background:var(--accent);box-shadow:0 0 10px var(--accent-glow)}.prog-cyan .prog-fill{background:var(--neon-cyan);box-shadow:0 0 10px var(--neon-cyan-glow)}.prog-purple .prog-fill{background:var(--neon-purple);box-shadow:0 0 10px var(--neon-purple-glow)}.prog-amber .prog-fill{background:var(--neon-amber);box-shadow:0 0 10px var(--neon-amber-glow)}.btn{padding:13px 26px;border-radius:var(--r-pill);background:var(--accent);color:#000;border:none;cursor:pointer;font-weight:700;font-size:14px;font-family:var(--font-display);transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.btn:hover{background:#d4ff5c;transform:translateY(-2px);box-shadow:0 6px 18px var(--accent-glow)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn-ghost{min-width:60px;min-height:60px;display:flex;align-items:center;justify-content:center;background:var(--surface-1);border:1px solid var(--glass-border);color:var(--text2);padding:11px 20px;border-radius:var(--r-pill);cursor:pointer;font-size:13px;font-weight:600;transition:all .2s}.btn-ghost:hover{background:var(--surface-2);color:var(--text);border-color:var(--glass-border-strong)}@media (max-width:768px){.btn-ghost{min-height:44px;min-width:44px}}.layout-aside{display:grid;grid-template-columns:1fr 340px;gap:24px}@media (max-width:1024px){.layout-aside{grid-template-columns:1fr}}.auto-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}@media (max-width:640px){.feature-grid{grid-template-columns:1fr}}.stack{display:grid;gap:16px}.stack-lg{display:grid;gap:24px}.icon-tile{width:var(--tile-size,44px);height:var(--tile-size,44px);border-radius:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--tile-color,var(--accent));border:1px solid var(--glass-border)}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{font-size:11px;font-weight:600;padding:4px 12px;border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--glass-border)}.chip,.note-box{color:var(--text2)}.note-box{border-left:4px solid var(--accent);border-radius:var(--r2);padding:18px;font-size:14px;line-height:1.6}.note-box,.stat-row{background:var(--surface-1)}.stat-row{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-radius:var(--r-pill);border:1px solid var(--glass-border)}.search-bar{display:flex;gap:12px;margin-bottom:24px}@media (max-width:480px){.search-bar{flex-direction:column}}.search-input{flex:1 1;background:var(--bg3);border:1px solid var(--glass-border);border-radius:var(--r-pill);padding:14px 20px;color:var(--text);font-size:15px;outline:none;transition:all .2s;width:100%}.search-input:focus{border-color:var(--accent);background:var(--bg2);box-shadow:0 0 0 4px var(--accent-dim)}.results-list{max-height:400px;overflow-y:auto;margin-top:12px}.result-item{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:var(--r2);cursor:pointer;transition:all .2s;border:1px solid transparent}.result-item:hover{background:var(--surface-1);border-color:var(--glass-border)}.result-name{font-weight:600;color:var(--text);font-size:15px}.result-macros{font-size:12px;color:var(--text3);margin-top:2px}.result-cal{font-family:var(--font-display);font-weight:700;color:var(--accent)}.log-entry{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--border)}.log-entry:last-child{border-bottom:none}.log-name{font-weight:600;font-size:15px}.log-qty{font-size:13px;color:var(--text3);margin-top:2px}.log-right{display:flex;align-items:center;gap:16px}.log-cal{font-family:var(--font-display);font-weight:700;font-size:16px}.log-del{background:transparent;border:none;color:var(--text3);cursor:pointer;font-size:18px;transition:color .2s;padding:6px}.log-del:hover{color:var(--red)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:1200;display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:100%;max-width:440px;background:var(--surface-bar);border-radius:var(--r3);padding:48px;box-shadow:var(--shadow-glass),var(--glass-highlight);max-height:90vh;overflow-y:auto;overscroll-behavior:contain}@media (max-width:480px){.modal-overlay{align-items:flex-end;padding:0}.modal{max-width:100%;padding:24px 20px calc(24px + env(safe-area-inset-bottom));border-radius:var(--r3) var(--r3) 0 0;max-height:92vh}}.modal-title{font-family:var(--font-display);font-weight:800;font-size:24px;margin-bottom:8px}.modal-sub{color:var(--text2);font-size:14px;margin-bottom:24px}.qty-row{display:flex;align-items:center;gap:12px;margin-bottom:24px}.qty-input{width:110px;background:var(--bg3);border:1px solid var(--glass-border);border-radius:var(--r-pill);padding:12px;color:var(--text);font-family:var(--font-display);font-weight:700;font-size:18px;text-align:center}.qty-unit{color:var(--text3);font-weight:600;text-transform:uppercase;font-size:12px;letter-spacing:.05em}.preview-macros{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:32px;padding:20px;background:var(--bg3);border-radius:var(--r2)}@media (max-width:400px){.preview-macros{grid-template-columns:repeat(2,1fr)}}.preview-macro{text-align:center}.preview-macro-val{font-family:var(--font-display);font-weight:800;font-size:18px}.preview-macro-label{font-size:10px;color:var(--text3);text-transform:uppercase;font-weight:700;margin-top:4px}.step-ring-wrap{position:relative;margin:0 auto 20px;width:180px;height:180px}.step-ring svg{transform:rotate(-90deg)}.ring-bg{fill:none;stroke:var(--bg3);stroke-width:12}.ring-fill{fill:none;stroke:var(--accent);stroke-width:12;stroke-linecap:round;transition:stroke-dashoffset 1s cubic-bezier(.4,0,.2,1);filter:drop-shadow(0 0 6px var(--accent-glow))}.ring-center{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring-pct{font-family:var(--font-display);font-weight:800;font-size:32px;line-height:1}.ring-sub{font-size:12px;color:var(--text3);font-weight:600;margin-top:4px}.spinner{width:36px;height:36px;border-radius:50%;border:3px solid var(--surface-2);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.alert-error{background:rgba(255,90,90,.12);border:1px solid rgba(255,90,90,.35);color:#ff9a9a;font-size:13px;font-weight:600;padding:10px 14px;border-radius:var(--r-pill);display:flex;align-items:center;gap:8px}.training-grid{display:grid;grid-template-columns:1fr 320px;gap:24px}@media (max-width:1024px){.training-grid{grid-template-columns:1fr}}.day-tabs{display:flex;overflow-x:auto;gap:8px;padding-bottom:8px;scrollbar-width:none}.day-tabs::-webkit-scrollbar{display:none}.day-tab{background:transparent;color:var(--text3);border-radius:var(--r-pill);transition:all .2s;flex:1 1;min-width:64px;padding:12px 0;border:none;cursor:pointer}.day-tab.active{background:var(--surface-2);color:var(--text)}.day-tab.rest-day.active{background:var(--surface-1)}.ex-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}.ex-row:last-child{border-bottom:none}.badge{padding:4px 12px;border-radius:var(--r-pill);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.badge-train{background:var(--accent-dim);color:var(--accent)}.badge-rest{background:var(--surface-2);color:var(--text3)}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media (max-width:1024px){.report-grid{grid-template-columns:1fr}.report-grid .card:last-of-type{grid-column:auto!important}}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media (max-width:1024px){.grid-2{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-reduced-transparency:reduce){.app-topbar,.card,.drawer,.glass-panel,.mobile-nav,.modal,.sidebar{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--bg2)}}.skeleton{position:relative;overflow:hidden;background:var(--surface-2);border:1px solid var(--glass-border);border-radius:var(--r2)}.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);animation:skeleton-shimmer 1.6s infinite}@keyframes skeleton-shimmer{to{transform:translateX(100%)}}.privacy-blur{filter:blur(8px);opacity:.6;-webkit-user-select:none;user-select:none;transition:filter .3s ease,opacity .3s ease}.privacy-blur:hover{filter:blur(0);opacity:1}[data-ui=glass]{--g-fill:rgba(28,30,40,0.45);--g-fill-bar:rgba(18,20,28,0.55);--g-fill-nested:rgba(40,42,54,0.55);--g-border:rgba(255,255,255,0.16);--g-border-soft:rgba(255,255,255,0.10);--g-highlight:inset 0 1px 0 rgba(255,255,255,0.22);--g-blur:blur(36px) saturate(160%);--g-shadow:0 8px 30px rgba(0,0,0,0.40)}[data-ui=glass] .app-topbar,[data-ui=glass] .drawer,[data-ui=glass] .mobile-nav,[data-ui=glass] .sidebar{background:var(--g-fill-bar);backdrop-filter:var(--g-blur);-webkit-backdrop-filter:var(--g-blur);border-color:var(--g-border);box-shadow:var(--g-shadow),var(--g-highlight)}[data-ui=glass] .card,[data-ui=glass] .glass-panel,[data-ui=glass] .modal{background:var(--g-fill);backdrop-filter:var(--g-blur);-webkit-backdrop-filter:var(--g-blur);border:1px solid var(--g-border);box-shadow:var(--g-shadow),var(--g-highlight)}[data-ui=glass] .btn-ghost{background:var(--g-fill);backdrop-filter:var(--g-blur);-webkit-backdrop-filter:var(--g-blur);border-color:var(--g-border);box-shadow:var(--g-highlight)}[data-ui=glass] .chip,[data-ui=glass] .icon-tile,[data-ui=glass] .metric-card,[data-ui=glass] .note-box,[data-ui=glass] .qty-input,[data-ui=glass] .result-item,[data-ui=glass] .search-input,[data-ui=glass] .stat-row{background:var(--g-fill-nested);border-color:var(--g-border-soft);box-shadow:var(--g-highlight)}[data-ui=glass] .nav-item:hover{background:var(--g-fill-nested);border-color:var(--g-border-soft)}[data-ui=glass] .nav-item.active{background:var(--accent-dim);border-color:rgba(200,245,66,.28);box-shadow:var(--g-highlight)}@media (prefers-reduced-transparency:reduce){[data-ui=glass] .app-topbar,[data-ui=glass] .btn-ghost,[data-ui=glass] .card,[data-ui=glass] .drawer,[data-ui=glass] .glass-panel,[data-ui=glass] .mobile-nav,[data-ui=glass] .modal,[data-ui=glass] .sidebar{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--surface-bar)}[data-ui=glass] .chip,[data-ui=glass] .icon-tile,[data-ui=glass] .metric-card,[data-ui=glass] .note-box,[data-ui=glass] .qty-input,[data-ui=glass] .result-item,[data-ui=glass] .search-input,[data-ui=glass] .stat-row{background:var(--surface-2)}}@media (prefers-contrast:more){[data-ui=glass]{--g-fill:rgba(18,20,26,0.92);--g-fill-bar:rgba(14,16,22,0.95);--g-fill-nested:rgba(22,24,30,0.92);--g-border:rgba(255,255,255,0.28)}}@supports not (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))){[data-ui=glass] .app-topbar,[data-ui=glass] .drawer,[data-ui=glass] .mobile-nav,[data-ui=glass] .modal,[data-ui=glass] .sidebar{background:var(--bg)}[data-ui=glass] .btn-ghost,[data-ui=glass] .card,[data-ui=glass] .chip,[data-ui=glass] .glass-panel,[data-ui=glass] .icon-tile,[data-ui=glass] .metric-card,[data-ui=glass] .note-box,[data-ui=glass] .qty-input,[data-ui=glass] .result-item,[data-ui=glass] .search-input,[data-ui=glass] .stat-row{background:var(--bg2)}}