@import "https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800;900&display=swap";
:root{--sage:#c2c0a6;--olive:#9e9d88;--stone:#757465;--bark:#4d4c42;--mist:#d3d3d3;--ink:#181818;--white:#fff;--sage-50:#f6f5f0;--sage-100:#ecebe2;--sage-200:#dcdacb;--sage-300:#c2c0a6;--sage-400:#aba98f;--sage-500:#9e9d88;--sage-600:#757465;--sage-700:#5e5d51;--sage-800:#4d4c42;--sage-900:#33322c;--neutral-0:#fff;--neutral-50:#f7f7f6;--neutral-100:#efefed;--neutral-200:#d3d3d3;--neutral-300:#b7b7b4;--neutral-400:#8e8e8a;--neutral-500:#6b6b67;--neutral-600:#4a4a47;--neutral-700:#2e2e2c;--neutral-800:#1f1f1e;--neutral-900:#181818;--success:#6e7a4f;--warning:#b8923e;--danger:#a6473c;--info:#5e6e73;--surface-page:var(--white);--surface-raised:var(--neutral-50);--surface-sunken:var(--sage-50);--surface-card:var(--white);--surface-inverse:var(--ink);--surface-inverse-2:var(--bark);--surface-accent:var(--sage);--text-strong:var(--ink);--text-body:#2e2e2c;--text-muted:var(--stone);--text-subtle:var(--neutral-400);--text-on-dark:var(--white);--text-on-dark-muted:#b9b8ac;--text-on-accent:var(--ink);--border-subtle:var(--neutral-200);--border-default:var(--neutral-300);--border-strong:var(--ink);--border-accent:var(--sage);--accent:var(--ink);--accent-hover:#000;--accent-soft:var(--sage);--accent-soft-hover:var(--sage-400);--focus-ring:var(--bark);--selection-bg:var(--sage);--selection-fg:var(--ink);--font-display:"Lovelo", "League Spartan", "Montserrat", system-ui, sans-serif;--font-sans:"Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extra:800;--fw-black:900;--fs-display-xl:88px;--fs-display-l:64px;--fs-display-m:48px;--fs-h1:40px;--fs-h2:32px;--fs-h3:24px;--fs-h4:20px;--fs-body-lg:18px;--fs-body:16px;--fs-body-sm:14px;--fs-caption:12px;--fs-overline:11px;--lh-tight:1.02;--lh-snug:1.15;--lh-normal:1.5;--lh-relaxed:1.65;--ls-display:.04em;--ls-heading:.01em;--ls-overline:.18em;--ls-body:0em;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-32:128px;--container-max:1320px;--container-wide:1440px;--gutter:24px;--section-y:96px;--radius-none:0px;--radius-xs:2px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-pill:999px;--radius-card:var(--radius-sm);--border-hairline:1px;--border-medium:2px;--border-heavy:3px;--shadow-none:none;--shadow-xs:0 1px 2px #1818180f;--shadow-sm:0 2px 6px #18181814;--shadow-md:0 8px 24px #1818181a;--shadow-lg:0 18px 48px #18181824;--shadow-focus:0 0 0 3px #4d4c4259;--ease-standard:cubic-bezier(.2, 0, .1, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--dur-fast:.12s;--dur-normal:.22s;--dur-slow:.42s;--z-base:0;--z-sticky:100;--z-overlay:800;--z-modal:900;--z-toast:1000}::selection{background:var(--selection-bg);color:var(--selection-fg)}.m2-surface{background:var(--surface-page);color:var(--text-body);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-normal)}.m2-surface-inverse{background:var(--surface-inverse);color:var(--text-on-dark)}.m2-surface-accent{background:var(--surface-sunken);color:var(--text-body)}.m2-display{font-family:var(--font-sans);font-weight:var(--fw-black);font-size:var(--fs-display-m);line-height:var(--lh-tight);letter-spacing:var(--ls-display);text-transform:uppercase;color:var(--text-strong)}.m2-page-title{font-family:var(--font-sans);font-weight:var(--fw-black);font-size:var(--fs-h1);line-height:var(--lh-snug);letter-spacing:var(--ls-heading);text-transform:uppercase;color:var(--text-strong)}.m2-section-title{font-family:var(--font-sans);font-weight:var(--fw-extra);font-size:var(--fs-h3);line-height:var(--lh-snug);letter-spacing:var(--ls-heading);text-transform:uppercase;color:var(--text-strong);padding-bottom:var(--space-3);border-bottom:var(--border-hairline) solid var(--border-subtle);margin-bottom:var(--space-5)}.m2-overline{font-family:var(--font-sans);font-weight:var(--fw-bold);font-size:var(--fs-overline);letter-spacing:var(--ls-overline);text-transform:uppercase;color:var(--text-muted)}.m2-surface-inverse .m2-section-title,.m2-surface-inverse .m2-page-title,.m2-surface-inverse .m2-display{color:var(--text-on-dark)}.m2-surface-inverse .m2-overline{color:var(--accent-soft)}.m2-card{background:var(--surface-card);color:var(--text-body);border:var(--border-hairline) solid var(--border-subtle);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);overflow:hidden}.m2-card-lg{padding:var(--space-6)}.m2-card-interactive{cursor:pointer;transition:box-shadow var(--dur-normal) var(--ease-standard), transform var(--dur-normal) var(--ease-standard)}.m2-card-interactive:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.m2-card-accent{background:var(--sage-100);border-color:var(--sage-200);color:var(--text-body)}.m2-card-dark{background:var(--surface-inverse);border-color:var(--surface-inverse);color:var(--text-on-dark)}.m2-divider{height:var(--border-hairline);background:var(--border-subtle);border:none}.m2-btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) 22px;font-family:var(--font-sans);font-weight:var(--fw-bold);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;border:var(--border-medium) solid transparent;border-radius:var(--radius-pill);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), transform var(--dur-fast) var(--ease-standard);font-size:13px;line-height:1;text-decoration:none;display:inline-flex}.m2-btn:disabled{opacity:.45;cursor:not-allowed}.m2-btn:not(:disabled):active{transform:translateY(1px)}.m2-btn-sm{padding:var(--space-2) var(--space-4);gap:var(--space-2);font-size:12px}.m2-btn-lg{padding:var(--space-4) 30px;gap:var(--space-3);font-size:15px}.m2-btn-block{width:100%;display:flex}.m2-btn-primary{background:var(--accent-soft);color:var(--text-on-accent);border-color:var(--accent-soft);border-radius:var(--radius-pill)}.m2-btn-primary:not(:disabled):hover{background:var(--accent-soft-hover);border-color:var(--accent-soft-hover)}.m2-btn-glow,.m2-surface-inverse .m2-btn-primary,.home-academy-card .m2-btn-primary{box-shadow:0 2px 18px #c2c0a68c}.m2-btn-outline{color:var(--text-strong);border-color:var(--border-strong);background:0 0}.m2-btn-outline:not(:disabled):hover{background:var(--accent);color:var(--white)}.m2-btn-soft{background:var(--accent-soft);color:var(--text-on-accent);border-color:var(--accent-soft)}.m2-btn-soft:not(:disabled):hover{background:var(--accent-soft-hover);border-color:var(--accent-soft-hover)}.m2-btn-ghost{color:var(--text-strong);background:0 0;border-color:#0000}.m2-btn-ghost:not(:disabled):hover{background:var(--neutral-100)}.m2-btn-inverse{background:var(--white);color:var(--text-strong);border-color:var(--white)}.m2-btn-inverse:not(:disabled):hover{background:var(--neutral-100)}.m2-surface-inverse .m2-btn-ghost{color:var(--text-on-dark)}.m2-surface-inverse .m2-btn-ghost:not(:disabled):hover{background:#ffffff14}.m2-surface-inverse .m2-btn-outline{color:var(--text-on-dark);border-color:var(--text-on-dark)}.m2-surface-inverse .m2-btn-outline:not(:disabled):hover{background:var(--white);color:var(--text-strong)}.m2-btn-icon{letter-spacing:0;width:38px;height:38px;color:var(--text-muted);border:var(--border-hairline) solid var(--border-subtle);border-radius:var(--radius-pill);cursor:pointer;transition:color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard);background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.m2-btn-icon:hover{color:var(--text-strong);border-color:var(--border-default)}.m2-label{font-family:var(--font-sans);font-weight:var(--fw-bold);font-size:var(--fs-overline);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:7px;display:block}.m2-input,.m2-select,.m2-textarea{background:var(--white);width:100%;min-width:0;color:var(--text-strong);font-family:var(--font-sans);font-size:var(--fs-body-sm);padding:11px var(--space-4);border:1.5px solid var(--border-default);border-radius:var(--radius-sm);transition:border-color var(--dur-fast) var(--ease-standard)}.m2-input:focus,.m2-select:focus,.m2-textarea:focus{border-color:var(--border-strong);outline:none}.m2-input::placeholder,.m2-textarea::placeholder{color:var(--text-subtle)}.m2-input-lg{padding:var(--space-3) var(--space-4);font-size:var(--fs-body)}.m2-input-error,.m2-input-error:focus{border-color:var(--danger)}.m2-textarea{resize:vertical;min-height:88px;line-height:var(--lh-normal)}.m2-select{appearance:none;cursor:pointer;padding-right:var(--space-8)}.m2-form-body{gap:var(--space-4);flex-direction:column;display:flex}.m2-form-field{min-width:0}.m2-form-row{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.m2-form-hint{font-size:var(--fs-caption);line-height:var(--lh-normal);color:var(--text-muted);margin-top:var(--space-1);display:block}.m2-form-error{font-size:var(--fs-caption);color:var(--danger);margin-top:var(--space-1);display:block}.m2-badge{align-items:center;gap:var(--space-1);font-family:var(--font-sans);font-weight:var(--fw-bold);font-size:var(--fs-overline);letter-spacing:.1em;text-transform:uppercase;padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);border:var(--border-hairline) solid transparent;background:var(--neutral-100);color:var(--text-body);display:inline-flex}.m2-badge-accent{background:var(--sage);color:var(--text-on-accent)}.m2-badge-dark{background:var(--ink);color:var(--text-on-dark)}.m2-badge-outline{border-color:var(--border-default);color:var(--text-body);background:0 0}.m2-badge-success{background:var(--success);color:var(--white)}.m2-badge-warning{background:var(--warning);color:var(--white)}.m2-badge-danger{background:var(--danger);color:var(--white)}.m2-tag{align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-weight:var(--fw-semibold);font-size:var(--fs-caption);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);border:var(--border-hairline) solid var(--border-default);color:var(--text-body);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);background:0 0;display:inline-flex}.m2-tag:hover{border-color:var(--border-strong)}.m2-tag-selected{background:var(--accent);border-color:var(--accent);color:var(--white)}.m2-tag-gray{background:var(--neutral-100);border-color:var(--neutral-100);color:var(--text-muted);cursor:default}.m2-stat{gap:var(--space-1);flex-direction:column;display:flex}.m2-stat-value{font-family:var(--font-sans);font-weight:var(--fw-black);font-size:var(--fs-display-m);line-height:var(--lh-tight);letter-spacing:var(--ls-display);color:var(--text-strong)}.m2-stat-label{font-family:var(--font-sans);font-weight:var(--fw-bold);font-size:var(--fs-overline);letter-spacing:var(--ls-overline);text-transform:uppercase;color:var(--text-muted)}.m2-stat-sub{font-size:var(--fs-caption);color:var(--text-subtle)}.m2-stat-sage .m2-stat-value{color:var(--stone)}.m2-surface-inverse .m2-stat-value{color:var(--text-on-dark)}.m2-surface-inverse .m2-stat-label{color:var(--text-on-dark-muted)}.m2-avatar{border-radius:var(--radius-sm);object-fit:cover;background:var(--neutral-100);border:var(--border-hairline) solid var(--border-subtle);width:40px;height:40px;display:block}.m2-progress{height:var(--space-2);background:var(--neutral-100);border-radius:var(--radius-xs);width:100%;overflow:hidden}.m2-progress-fill{background:var(--accent);border-radius:var(--radius-xs);height:100%;transition:width var(--dur-normal) var(--ease-standard)}.m2-nav-item{align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-weight:var(--fw-bold);font-size:var(--fs-caption);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:color var(--dur-fast) var(--ease-standard);display:inline-flex}.m2-nav-item:hover,.m2-nav-item-active{color:var(--text-strong)}.m2-logo{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:var(--text-strong);font-weight:900}.m2-logo-accent{color:var(--accent-soft)}.m2-modal-scrim{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:var(--z-overlay);padding:var(--space-4);background:#1818188c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.m2-modal{background:var(--surface-card);color:var(--text-body);border:var(--border-hairline) solid var(--border-subtle);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);width:100%;max-width:520px;z-index:var(--z-modal);padding:var(--space-6);gap:var(--space-5);max-height:calc(100dvh - var(--space-8));flex-direction:column;display:flex;overflow:hidden}.m2-modal>.m2-modal-title,.m2-modal>.m2-modal-actions{flex:none}.m2-modal>.m2-form-body{min-height:0;padding-bottom:var(--space-1);flex:auto;overflow-y:auto}.m2-modal-title{font-family:var(--font-sans);font-weight:var(--fw-extra);font-size:var(--fs-h4);letter-spacing:var(--ls-heading);text-transform:uppercase;color:var(--text-strong);margin:0}.m2-modal-actions{gap:var(--space-2);padding-top:var(--space-5);border-top:var(--border-hairline) solid var(--border-subtle);justify-content:flex-end;display:flex}.m2-btn:focus-visible,.m2-btn-icon:focus-visible,.m2-tag:focus-visible,.m2-nav-item:focus-visible,.m2-card-interactive:focus-visible{outline:var(--border-medium) solid var(--focus-ring);outline-offset:2px}.m2-input:focus-visible,.m2-select:focus-visible,.m2-textarea:focus-visible{box-shadow:var(--shadow-focus);outline:none}@media (max-width:600px){.m2-form-row{grid-template-columns:1fr}.m2-modal-actions{flex-direction:column-reverse}.m2-modal-actions .m2-btn{width:100%}.modal-overlay.m2-sheet-overlay{align-items:flex-end;padding:0}.modal-overlay.m2-sheet-overlay .m2-modal{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:100%;max-height:92dvh;padding-bottom:calc(var(--space-6) + env(safe-area-inset-bottom));border-bottom:none}}@media (prefers-reduced-motion:reduce){.m2-btn,.m2-card-interactive,.m2-input,.m2-tag,.m2-progress-fill{transition:none}.m2-btn:not(:disabled):active,.m2-card-interactive:hover{transform:none}}:root{--stufe-beginner:var(--success);--stufe-intermediate:var(--info)}.m2-stufe{padding:2px var(--space-2);border:var(--border-hairline) solid transparent;border-radius:var(--radius-xs);font-family:var(--font-sans);font-size:var(--fs-overline);font-weight:var(--fw-extra);letter-spacing:var(--ls-overline);text-transform:uppercase;color:var(--white);background:var(--stufe,var(--stone));align-items:center;display:inline-flex}.m2-stufe-beginner{--stufe:var(--stufe-beginner)}.m2-stufe-intermediate{--stufe:var(--stufe-intermediate)}.m2-tag-beginner{--stufe:var(--stufe-beginner)}.m2-tag-intermediate{--stufe:var(--stufe-intermediate)}.m2-tag-beginner:before,.m2-tag-intermediate:before{content:"";background:var(--stufe);border-radius:50%;flex-shrink:0;width:8px;height:8px}.m2-tag-beginner.m2-tag-selected,.m2-tag-intermediate.m2-tag-selected{background:var(--stufe);border-color:var(--stufe);color:var(--white)}.m2-tag-beginner.m2-tag-selected:before,.m2-tag-intermediate.m2-tag-selected:before{background:var(--white)}*,:before,:after{box-sizing:border-box;margin:0;padding:0;font-family:var(--font-sans)!important}html,body{background:var(--surface-card);color:var(--text-strong);-webkit-font-smoothing:antialiased;max-width:100vw;min-height:100vh;overflow-x:hidden}html{height:100%;overflow-y:auto}body{flex-direction:column;min-height:100vh;display:flex;position:relative}main{flex-direction:column;flex:1 0 auto;display:flex}@media (max-width:768px){body{padding-bottom:80px}main{margin-bottom:0}[style*=desktopMenu]{display:none!important}[style*=burger]{display:flex!important}}@media (min-width:769px){[style*=burger],[style*=mobileOverlay]{display:none!important}}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-box{background:var(--surface-card);border-radius:var(--radius-sm);width:100%;max-width:400px;padding:32px;box-shadow:0 24px 64px #00000026}.modal-title{color:var(--text-strong);letter-spacing:-.3px;margin-bottom:10px;font-size:20px;font-weight:800}.modal-desc{color:var(--text-muted);margin-bottom:28px;font-size:14px;font-weight:500;line-height:1.6}.modal-actions{gap:10px;display:flex}.modal-btn-cancel{border:1.5px solid var(--border-default);height:48px;color:var(--text-strong);border-radius:var(--radius-pill);font-family:var(--font-sans);cursor:pointer;background:0 0;flex:1;font-size:14px;font-weight:700;transition:border-color .2s,background .2s}.modal-btn-cancel:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-raised)}.modal-btn-cancel:disabled,.modal-btn-confirm:disabled{opacity:.5;cursor:not-allowed}.modal-btn-confirm:hover:not(:disabled){filter:brightness(.88)}.admin-modal-save:hover:not(:disabled){background:var(--neutral-700)}.modal-btn-confirm{background:var(--danger);height:48px;color:var(--text-on-dark);border-radius:var(--radius-pill);font-family:var(--font-sans);cursor:pointer;border:none;flex:1;font-size:14px;font-weight:800;transition:background .2s}.modal-btn-confirm:disabled,.modal-btn-cancel:disabled{opacity:.5;cursor:not-allowed}.admin-modal-box{max-width:520px!important}.admin-form{flex-direction:column;gap:14px;display:flex}.admin-form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (max-width:480px){.admin-form-row{grid-template-columns:1fr}}.admin-field{flex-direction:column;gap:6px;display:flex}.admin-label{color:var(--text-muted);letter-spacing:.8px;text-transform:uppercase;font-size:11px;font-weight:700}.admin-input{border:1.5px solid var(--border-default);border-radius:var(--radius-sm);height:46px;font-family:var(--font-sans);color:var(--text-strong);background:var(--surface-raised);outline:none;padding:0 14px;font-size:14px;font-weight:500;transition:border-color .2s,background .2s}.admin-input:focus{border-color:var(--border-strong);background:var(--white)}.admin-modal-save{background:var(--surface-inverse);height:48px;color:var(--accent-soft);border-radius:var(--radius-pill);font-family:var(--font-sans);cursor:pointer;border:none;flex:1;font-size:14px;font-weight:800;transition:background .2s}.admin-modal-save:disabled{opacity:.5;cursor:not-allowed}.admin-tag{border-radius:var(--radius-xs);color:var(--success);letter-spacing:.3px;background:#6e7a4f1f;padding:3px 8px;font-size:10px;font-weight:700}.admin-tag-empty{color:var(--text-subtle);font-size:11px;font-weight:500}.modal-icon-danger{color:var(--danger);margin-bottom:20px}
.bottom-nav{background:var(--surface-inverse);border-top:var(--border-hairline) solid #ffffff14;z-index:100;height:64px;padding:0 8px;padding-bottom:env(safe-area-inset-bottom);justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{border-radius:var(--radius-sm);color:var(--text-on-dark-muted);flex-direction:column;flex:1;align-items:center;gap:4px;padding:8px 4px;text-decoration:none;transition:all .2s;display:flex}.bottom-nav-item:hover{background:#ffffff0d}.bottom-nav-icon{color:inherit;justify-content:center;align-items:center;transition:transform .2s,color .2s;display:flex}.bottom-nav-icon svg{display:block}.bottom-nav-item--active{color:var(--accent-soft)}.bottom-nav-item--active .bottom-nav-icon{color:var(--accent-soft);transform:scale(1.1)translateY(-2px)}.bottom-nav-label{color:inherit;font-size:10px;font-weight:700;font-family:var(--font-sans);letter-spacing:.3px}.bottom-nav-item--active .bottom-nav-label{color:var(--accent-soft)}
.main-footer{background:var(--surface-page);border-top:var(--border-hairline) solid var(--border-subtle);width:100%;font-family:var(--font-sans);flex-shrink:0;padding:15px 0}.footer-content{flex-direction:column;align-items:center;gap:4px;display:flex}.footer-brand{font-weight:var(--fw-extra);color:var(--text-strong);font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:var(--ls-overline)}.footer-bottom{font-size:var(--fs-overline);color:var(--text-subtle);align-items:center;gap:10px;display:flex}.footer-link{color:var(--text-subtle);text-decoration:none;transition:color .2s}.footer-link:hover{color:var(--text-strong)}.footer-divider{color:var(--border-subtle)}.footer-year{font-weight:500}
