@import"https://fonts.googleapis.com/css2?family=Black+Han+Sans&family=Barlow:wght@400;500;600&family=Barlow+Condensed:wght@700;900&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d0d0d;--surface: #2a2a2a;--surface2: #333;--border: #444;--accent: #e8ff00;--accent2: #ff4500;--accent3: #44aaff;--text: #f0f0f0;--muted: #888;--font-head: "Black Han Sans", sans-serif;--font-cond: "Barlow Condensed", sans-serif;--font-body: "Barlow", sans-serif}html,body{background:#0d0d0d!important;min-height:100%}body{color:var(--text);font-family:var(--font-body)}.app{min-height:100vh;max-width:900px;margin:0 auto;padding:0 16px 60px}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-box{background:var(--surface);border:1px solid var(--border);padding:40px 32px;width:100%;max-width:400px}.auth-box h1{font-family:var(--font-head);font-size:2rem;color:var(--accent);margin-bottom:8px}.auth-box p{color:var(--muted);font-family:var(--font-cond);letter-spacing:1px;font-size:13px;text-transform:uppercase;margin-bottom:28px}.auth-field{margin-bottom:16px}.auth-field label{display:block;font-family:var(--font-cond);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.auth-field input{width:100%;background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:12px;font-family:var(--font-body);font-size:15px;outline:none}.auth-field input:focus{border-color:var(--accent)}.btn-auth{width:100%;background:var(--accent);color:#000;border:none;padding:13px;font-family:var(--font-cond);font-size:15px;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;margin-top:8px}.btn-auth:hover{background:#fff}.auth-switch{margin-top:20px;text-align:center;font-family:var(--font-cond);font-size:13px;color:var(--muted)}.auth-switch button{background:none;border:none;color:var(--accent);cursor:pointer;font-family:var(--font-cond);font-size:13px;text-decoration:underline}.auth-error{color:var(--accent2);font-family:var(--font-cond);font-size:13px;margin-top:10px;text-align:center}.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-divider span{font-family:var(--font-cond);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}.btn-google{width:100%;background:#fff;color:#222;border:none;padding:13px;font-family:var(--font-cond);font-size:15px;font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:background .15s}.btn-google:hover{background:#e8e8e8}.btn-google:disabled{opacity:.5;cursor:not-allowed}.btn-google svg{flex-shrink:0}.header{padding:20px 0 16px;border-bottom:3px solid var(--accent);margin-bottom:32px;display:flex;align-items:center;justify-content:space-between}.header-title{font-family:var(--font-head);font-size:clamp(1.2rem,5vw,2rem);font-weight:900;line-height:1;letter-spacing:-1px;white-space:nowrap;color:var(--accent)}.header-sub{font-family:var(--font-cond);font-size:13px;letter-spacing:3px;color:var(--muted);text-transform:uppercase}.btn-logout{background:none;border:1px solid var(--border);color:var(--muted);padding:6px 12px;font-family:var(--font-cond);font-size:11px;letter-spacing:2px;text-transform:uppercase;cursor:pointer;margin-top:0}.btn-logout:hover{border-color:var(--accent2);color:var(--accent2)}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-bottom:32px}.stat-box{background:var(--surface);padding:16px;border-left:3px solid var(--border)}.stat-box:first-child{border-left-color:var(--accent)}.stat-num{font-family:var(--font-cond);font-size:2.5rem;font-weight:900;color:var(--accent);line-height:1}.stat-label{font-family:var(--font-cond);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-top:4px}.add-panel{background:var(--surface);border:1px solid var(--border);padding:24px;margin-bottom:32px}.add-panel h2{font-family:var(--font-cond);font-size:1.4rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text);margin-bottom:20px;display:flex;align-items:center;gap:10px}.add-panel h2:before{content:"";display:block;width:4px;height:20px;background:var(--accent)}.form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;align-items:end}@media (max-width: 600px){.form-grid{grid-template-columns:1fr 1fr}}.log-wod-bar{display:flex;justify-content:flex-end;margin-bottom:16px}.btn-log-wod{width:auto;padding:11px 24px}.wod-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.create-form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px}.wod-chart{display:block;width:100%;height:80px}@media (max-width: 600px){.app{padding:0 12px 80px}.header{padding:14px 0 12px;margin-bottom:20px}.stat-box{padding:10px 8px}.stat-num{font-size:1.8rem}.stat-label{font-size:10px}.add-panel{padding:16px;margin-bottom:20px}.form-grid,.wod-form-grid{grid-template-columns:1fr!important}.create-form-grid{grid-template-columns:1fr 1fr!important}.pb-value{font-size:1.3rem;padding:12px 10px 12px 8px}.pb-movement{font-size:.95rem}.auth-wrap{padding:16px}.auth-box{padding:28px 20px}.filter-tag{padding:7px 10px;font-size:11px}.log-wod-bar{display:block}.btn-log-wod{width:100%}.toast{bottom:16px;right:12px;left:12px;text-align:center}.history-item{flex-wrap:wrap;gap:4px}.hi-note{flex:none}}.field label{display:block;font-family:var(--font-cond);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.field select,.field input,.field textarea{width:100%;background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:10px 12px;font-family:var(--font-body);font-size:14px;outline:none;transition:border-color .15s;-moz-appearance:none;appearance:none;-webkit-appearance:none;box-sizing:border-box}.field select:focus,.field input:focus,.field textarea:focus{border-color:var(--accent)}.field select option{background:#222}.btn-add{background:var(--accent);color:#000;border:none;padding:11px 28px;font-family:var(--font-cond);font-size:15px;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;width:100%;transition:background .15s,transform .1s;margin-top:4px}.btn-add:hover{background:#fff}.btn-add:active{transform:scale(.98)}.btn-add:disabled{opacity:.5;cursor:not-allowed}.filter-bar{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.filter-bar input{flex:1;min-width:140px;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:9px 14px;font-family:var(--font-body);font-size:14px;outline:none}.filter-bar input:focus{border-color:var(--accent)}.filter-tag{background:var(--surface2);border:1px solid var(--border);color:var(--muted);padding:8px 14px;font-family:var(--font-cond);font-size:12px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all .15s;white-space:nowrap}.filter-tag.active{background:var(--accent);color:#000;border-color:var(--accent)}.pb-grid{display:grid;gap:2px}.pb-row{background:var(--surface);border-left:3px solid transparent;display:grid;grid-template-columns:1fr auto auto;align-items:center;transition:border-color .2s}.pb-row:hover{border-left-color:var(--accent)}.pb-row.new-entry{border-left-color:var(--accent2);animation:flash 1s ease-out}@keyframes flash{0%{background:#2a1500}to{background:var(--surface)}}.pb-main{padding:14px 16px;cursor:pointer}.pb-movement{font-family:var(--font-cond);font-size:1.05rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text)}.pb-date{font-size:12px;color:var(--muted);margin-top:2px;font-family:var(--font-cond);letter-spacing:1px}.pb-value{font-family:var(--font-cond);font-size:1.8rem;font-weight:900;color:var(--accent);padding:14px 20px 14px 12px;white-space:nowrap}.pb-actions{display:flex;flex-direction:column;gap:0}.btn-hist,.btn-del{background:none;border:none;cursor:pointer;padding:8px 12px;font-size:14px;line-height:1;transition:color .15s,background .15s;color:var(--muted)}.btn-hist:hover{color:var(--accent);background:#e8ff0012}.btn-del:hover{color:var(--accent2);background:#ff450012}.history-panel{background:var(--surface2);border-left:3px solid var(--accent);padding:12px 16px;margin-top:2px;margin-bottom:2px}.history-panel h4{font-family:var(--font-cond);font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.history-list{display:flex;flex-direction:column;gap:4px}.history-item{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border)}.history-item:last-child{border-bottom:none}.hi-val{font-family:var(--font-cond);font-size:1.1rem;font-weight:700;color:var(--text)}.hi-val.is-pb{color:var(--accent)}.hi-date{font-family:var(--font-cond);font-size:12px;color:var(--muted);letter-spacing:1px}.hi-note{font-size:12px;color:var(--muted);font-style:italic;flex:1;text-align:center;padding:0 10px}.btn-del-entry{background:none;border:none;color:var(--border);cursor:pointer;font-size:14px;padding:2px 6px;transition:color .15s}.btn-del-entry:hover{color:var(--accent2)}.pr-badge{font-family:var(--font-cond);font-size:10px;letter-spacing:2px;background:var(--accent2);color:#fff;padding:2px 6px;text-transform:uppercase;margin-left:8px;vertical-align:middle}.empty-state{text-align:center;padding:60px 20px;color:var(--muted);font-family:var(--font-cond);letter-spacing:2px;text-transform:uppercase;font-size:14px}.loading{text-align:center;padding:60px 20px;color:var(--muted);font-family:var(--font-cond);letter-spacing:3px;text-transform:uppercase;font-size:13px}.toast{position:fixed;bottom:24px;right:24px;background:var(--accent);color:#000;padding:12px 20px;font-family:var(--font-cond);font-size:14px;font-weight:700;letter-spacing:1px;text-transform:uppercase;animation:slideUp .3s ease-out;z-index:100}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.gym-tab-content{animation:gymFade .2s ease-out}@keyframes gymFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.wod-library-page{padding-bottom:60px}.wod-search-wrap{position:relative;margin-bottom:12px}.wod-search-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--muted);pointer-events:none}.wod-search-input{width:100%;padding:11px 40px;font-size:14px;font-family:var(--font-body);background:var(--surface);border:1px solid var(--border);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}.wod-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #e8ff001a}.wod-search-input::placeholder{color:var(--muted)}.wod-search-clear{position:absolute;right:11px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--muted);font-size:20px;line-height:1;padding:2px 5px}.wod-search-clear:hover{color:var(--text)}.wod-filter-card{background:var(--surface);border:1px solid var(--border);padding:12px 16px;margin-bottom:12px}.wod-filter-group{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;padding:6px 0}.wod-filter-group+.wod-filter-group{border-top:1px solid var(--border)}.wod-filter-label{font-family:var(--font-cond);font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;min-width:74px;padding-top:7px}.wod-pills{display:flex;flex-wrap:wrap;gap:6px}.wod-pill{display:inline-block;padding:5px 13px;font-size:12px;font-family:var(--font-cond);letter-spacing:.5px;cursor:pointer;border:1px solid var(--border);color:var(--muted);background:transparent;transition:all .14s;-webkit-user-select:none;user-select:none}.wod-pill:hover{border-color:var(--muted);color:var(--text)}.wod-pill.active{background:var(--accent);color:#000;border-color:var(--accent);font-weight:700}.wod-active-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;align-items:center}.wod-active-chip{display:flex;align-items:center;gap:4px;font-family:var(--font-cond);font-size:11px;padding:3px 10px 3px 12px;background:var(--surface2);border:1px solid var(--border);color:var(--text)}.wod-active-chip button{background:none;border:none;cursor:pointer;font-size:15px;line-height:1;color:var(--muted);padding:0 0 0 2px}.wod-active-chip button:hover{color:var(--accent2)}.wod-clear-all{background:none;border:1px solid var(--border);color:var(--muted);font-family:var(--font-cond);font-size:11px;letter-spacing:1px;text-transform:uppercase;padding:3px 10px;cursor:pointer}.wod-clear-all:hover{border-color:var(--accent2);color:var(--accent2)}.wod-results-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.wod-results-count{font-family:var(--font-cond);font-size:13px;color:var(--muted);letter-spacing:1px}.wod-sort-select{font-family:var(--font-cond);font-size:12px;color:var(--muted);background:var(--surface);border:1px solid var(--border);padding:5px 10px;cursor:pointer}.wod-sort-select:focus{outline:none;border-color:var(--accent)}.wod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.wod-card{background:var(--surface);border:1px solid var(--border);padding:16px 18px;cursor:default;transition:border-color .15s,box-shadow .15s;display:flex;flex-direction:column;gap:0}.wod-card:hover{border-color:#666;box-shadow:0 2px 8px #0006}.wod-card.hero{border-left:3px solid #3b82f6}.wod-card.benchmark{border-left:3px solid #d97706}.wod-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px}.wod-card-name{font-size:15px;font-weight:600;font-family:var(--font-cond);letter-spacing:.5px;color:var(--text);line-height:1.3}.wod-card-desc{font-size:12px;color:var(--muted);line-height:1.55;margin-bottom:10px;font-family:var(--font-body)}.wod-card-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.wod-tag{font-size:10px;padding:3px 8px;background:var(--surface2);color:var(--muted);border:1px solid var(--border)}.wod-equip-tag{font-size:10px;padding:3px 8px;background:#0f2c1f;color:#4ade80;border:1px solid #166534}.wod-time-tag{font-size:10px;padding:3px 8px;font-weight:500;font-family:var(--font-cond)}.wod-special-badge{font-size:10px;padding:3px 8px;font-weight:600;font-family:var(--font-cond);letter-spacing:.5px}.wod-hero-badge{background:#1e3a5f;color:#93c5fd;border:1px solid #2563eb44}.wod-girl-badge{background:#3b2500;color:#fbbf24;border:1px solid #d9770644}.wod-badge{font-size:10px;font-weight:700;font-family:var(--font-cond);letter-spacing:.5px;padding:3px 9px;white-space:nowrap;flex-shrink:0}.wod-badge-amrap{background:#eaf3de;color:#3b6d11}.wod-badge-fortime{background:#faece7;color:#993c1d}.wod-badge-emom{background:#e6f1fb;color:#185fa5}.wod-badge-tabata{background:#fbeaf0;color:#993556}.wod-badge-chipper{background:#eeedfe;color:#3c3489}.wod-badge-ladder{background:#faeeda;color:#854f0b}.wod-meta{display:flex;gap:14px;border-top:1px solid var(--border);padding-top:9px;margin-top:auto}.wod-meta-item{font-family:var(--font-cond);font-size:11px;color:var(--muted);letter-spacing:.5px}.wod-meta-item span{color:var(--text);font-weight:600}.wod-empty-state{text-align:center;padding:4rem 1rem;color:var(--muted);font-family:var(--font-cond);letter-spacing:1px}.wod-empty-state strong{display:block;color:var(--text);font-size:15px;margin-bottom:6px}@media (max-width: 600px){.wod-grid{grid-template-columns:1fr}.wod-filter-label{min-width:60px}}.skill-grid{display:grid;gap:2px}.skill-card{background:var(--surface);border-left:3px solid transparent;transition:border-color .2s}.skill-card:hover,.skill-card.mastered{border-left-color:var(--accent)}.skill-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;cursor:pointer;gap:12px}.skill-name{font-family:var(--font-cond);font-size:1.05rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text)}.skill-next{font-family:var(--font-cond);font-size:12px;color:var(--muted);letter-spacing:1px;margin-top:3px}.skill-count{font-family:var(--font-cond);font-size:1.6rem;font-weight:900;color:var(--accent);white-space:nowrap}.skill-bar{height:5px;background:var(--surface2);margin:0 16px 14px}.skill-bar-fill{height:100%;background:var(--accent);transition:width .3s ease}.skill-ladder{border-top:1px solid var(--border);padding:12px 16px 16px}.skill-mark-date{display:flex;align-items:center;gap:10px;margin-bottom:12px}.skill-mark-date label{font-family:var(--font-cond);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}.skill-mark-date input{background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:6px 10px;font-family:var(--font-body);font-size:13px;outline:none}.skill-mark-date input:focus{border-color:var(--accent)}.skill-step{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.skill-step:last-child{border-bottom:none}.skill-step-num{font-family:var(--font-cond);font-size:13px;font-weight:700;color:var(--muted);background:var(--surface2);width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.skill-step.achieved .skill-step-num{background:var(--accent);color:#000}.skill-step-body{flex:1}.skill-step-name{font-family:var(--font-cond);font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text)}.skill-step.achieved .skill-step-name{color:var(--accent)}.skill-step-desc{font-size:13px;color:var(--muted);margin-top:2px;line-height:1.4}.skill-step-date{font-family:var(--font-cond);font-size:11px;letter-spacing:1px;color:var(--accent);margin-top:4px;text-transform:uppercase}.skill-step-toggle{background:none;border:1px solid var(--border);color:var(--muted);width:32px;height:32px;cursor:pointer;font-size:15px;line-height:1;flex-shrink:0;transition:all .15s}.skill-step-toggle:hover{border-color:var(--accent);color:var(--accent)}.skill-step-toggle.on{background:var(--accent);border-color:var(--accent);color:#000}.skill-step-toggle:disabled{opacity:.5;cursor:not-allowed}.skill-loading{text-align:center;padding:3rem 1rem;color:var(--muted);font-family:var(--font-cond);letter-spacing:1px}@media (max-width: 600px){.skill-head{padding:12px 12px 8px}.skill-bar{margin:0 12px 12px}.skill-ladder{padding:10px 12px 14px}.skill-count{font-size:1.3rem}}
