@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";:root{--bg-main:#090d16;--bg-card:#111827b3;--bg-card-hover:#1f2937d9;--border-color:#ffffff14;--border-focus:#fc6100;--text-primary:#f3f4f6;--text-secondary:#9ca3af;--text-muted:#6b7280;--accent-strava:#fc6100;--accent-sheets:#0f9d58;--accent-blue:#3b82f6;--status-success:#10b981;--status-warning:#f59e0b;--status-danger:#ef4444;--font-main:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--card-shadow:0 8px 32px 0 #0000005e;--glow-orange:0 0 15px #fc61004d;--glow-green:0 0 15px #0f9d584d;--backdrop-blur:blur(12px);--radius-lg:16px;--radius-md:10px;--radius-sm:6px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-main);color:var(--text-primary);font-family:var(--font-main);background-image:radial-gradient(circle at 10% 20%,#fc610014 0%,#0000 40%),radial-gradient(circle at 90% 80%,#0f9d5814 0%,#0000 40%);background-attachment:fixed;min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-main)}::-webkit-scrollbar-thumb{border-radius:var(--radius-sm);background:#1f2937}::-webkit-scrollbar-thumb:hover{background:#374151}#app{flex-direction:column;width:100%;max-width:1280px;min-height:100vh;margin:0 auto;padding:24px 16px;display:flex}.container{grid-template-columns:320px 1fr;gap:24px;margin-top:24px;display:grid}@media (width<=1024px){.container{grid-template-columns:1fr}}header{background:var(--bg-card);-webkit-backdrop-filter:var(--backdrop-blur);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--card-shadow);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px 28px;display:flex}.brand-section{align-items:center;gap:12px;display:flex}.brand-logo{background:linear-gradient(135deg, var(--accent-strava), var(--accent-sheets));border-radius:var(--radius-md);justify-content:center;align-items:center;width:42px;height:42px;font-size:24px;display:flex;box-shadow:0 4px 15px #fc61004d}.brand-title h1{letter-spacing:-.5px;color:var(--text-primary);font-size:20px;font-weight:700}.brand-title p{color:var(--text-secondary);font-size:12px;font-weight:400}.status-indicator-bar{align-items:center;gap:16px;display:flex}.status-badge{border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);background:#ffffff08;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:500;display:flex}.dot{border-radius:50%;width:8px;height:8px;position:relative}.dot.active{background-color:var(--status-success);box-shadow:0 0 8px var(--status-success);animation:2s infinite pulse-green}.dot.inactive{background-color:var(--status-danger);box-shadow:0 0 8px var(--status-danger)}.sidebar{flex-direction:column;gap:20px;display:flex}.panel-card{background:var(--bg-card);-webkit-backdrop-filter:var(--backdrop-blur);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--card-shadow);padding:24px}.panel-title{color:var(--text-primary);border-bottom:1px solid var(--border-color);align-items:center;gap:8px;margin-bottom:16px;padding-bottom:10px;font-size:16px;font-weight:600;display:flex}.form-group{margin-bottom:16px}.form-group:last-child{margin-bottom:0}label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.form-input{border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-family:var(--font-main);background:#00000040;padding:10px 14px;font-size:14px;transition:all .25s}.form-input:focus{border-color:var(--border-focus);box-shadow:var(--glow-orange);outline:none}.stat-row{border-bottom:1px solid #ffffff0a;justify-content:space-between;align-items:center;padding:12px 0;display:flex}.stat-row:last-child{border-bottom:none;padding-bottom:0}.stat-row:first-child{padding-top:0}.stat-label{color:var(--text-secondary);font-size:13px}.stat-value{color:var(--text-primary);font-size:15px;font-weight:600;font-family:var(--font-mono)}.dashboard-main{flex-direction:column;gap:20px;display:flex}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.button-group{gap:12px;display:flex}.btn{border-radius:var(--radius-md);font-family:var(--font-main);cursor:pointer;border:1px solid #0000;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .25s;display:inline-flex}.btn-primary{background:var(--accent-strava);color:#fff;box-shadow:var(--glow-orange)}.btn-primary:hover:not(:disabled){background:#ff7724;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-secondary{background:var(--accent-sheets);color:#fff;box-shadow:var(--glow-green)}.btn-secondary:hover:not(:disabled){background:#12b767;transform:translateY(-1px)}.btn-secondary:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none!important;transform:none!important}.table-card{padding:0;overflow:hidden}.table-header-area{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.table-title{color:var(--text-primary);font-size:16px;font-weight:600}.table-responsive{width:100%;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%}th,td{border-bottom:1px solid var(--border-color);padding:16px 24px;font-size:14px}th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;background:#00000026;font-size:11px;font-weight:600}tr{transition:background-color .2s}tr:hover:not(.empty-row){background-color:var(--bg-card-hover)}.checkbox-container{cursor:pointer;-webkit-user-select:none;user-select:none;padding-left:24px;display:block;position:relative}.checkbox-container input{opacity:0;cursor:pointer;width:0;height:0;position:absolute}.checkmark{border:1px solid var(--border-color);border-radius:var(--radius-sm);background-color:#ffffff0d;width:18px;height:18px;transition:all .2s;position:absolute;top:-2px;left:0}.checkbox-container:hover input~.checkmark{border-color:var(--text-secondary)}.checkbox-container input:checked~.checkmark{background-color:var(--accent-strava);border-color:var(--accent-strava)}.checkmark:after{content:"";display:none;position:absolute}.checkbox-container input:checked~.checkmark:after{display:block}.checkbox-container .checkmark:after{border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:8px;top:2px;left:5px;transform:rotate(45deg)}.table-input{border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);background:#0000004d;width:90px;padding:6px 10px;font-size:13px;transition:all .2s}.table-input:focus{border-color:var(--border-focus);outline:none}.table-input:disabled{opacity:.5;cursor:not-allowed}.badge{text-transform:uppercase;letter-spacing:.5px;border-radius:9999px;align-items:center;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-success{color:var(--status-success);background:#10b98126;border:1px solid #10b9814d}.badge-pending{color:var(--status-warning);background:#f59e0b26;border:1px solid #f59e0b4d}.empty-row td{text-align:center;color:var(--text-secondary);padding:48px}.spinner{vertical-align:middle;border:3px solid #ffffff0d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}.toast-container{z-index:9999;flex-direction:column;gap:12px;width:calc(100% - 48px);max-width:400px;display:flex;position:fixed;bottom:24px;right:24px}.toast{-webkit-backdrop-filter:var(--backdrop-blur);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);background:#111827f2;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;transition:all .3s;animation:.35s cubic-bezier(.16,1,.3,1) slide-in;display:flex;box-shadow:0 10px 25px #0006}.toast-success{border-left:4px solid var(--status-success)}.toast-error{border-left:4px solid var(--status-danger)}.toast-info{border-left:4px solid var(--accent-blue)}.toast-content{font-size:14px;font-weight:500;line-height:1.4}.toast-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:16px;line-height:1}.toast-close:hover{color:var(--text-primary)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-green{0%{box-shadow:0 0 #10b98180}70%{box-shadow:0 0 0 8px #10b98100}to{box-shadow:0 0 #10b98100}}@keyframes slide-in{0%{opacity:0;transform:translateY(100%)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}.log-list{flex-direction:column;gap:8px;max-height:180px;padding-right:4px;display:flex;overflow-y:auto}.log-item{border-radius:var(--radius-sm);font-size:12px;font-family:var(--font-mono);color:var(--text-secondary);background:#ffffff05;border:1px solid #ffffff08;padding:8px 10px}.log-item.log-success{border-left:2px solid var(--status-success)}.log-item.log-info{border-left:2px solid var(--accent-blue)}.log-time{color:var(--text-muted);margin-top:2px;font-size:10px;display:block}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:48px 24px;display:flex}.athlete-groups{flex-direction:column;display:flex}.date-group{border-bottom:2px solid #ffffff0f}.date-group:last-child{border-bottom:none}.date-header{border-bottom:1px solid var(--border-color);z-index:2;-webkit-backdrop-filter:blur(8px);background:linear-gradient(135deg,#fc610014,#0f9d580f);justify-content:space-between;align-items:center;padding:14px 24px;display:flex;position:sticky;top:0}.date-info{color:var(--accent-strava);align-items:center;gap:10px;display:flex}.date-label{font-size:15px;font-weight:700;font-family:var(--font-mono);letter-spacing:-.3px;color:var(--text-primary)}.date-stats{color:var(--text-secondary);font-size:12px;font-family:var(--font-mono)}.athlete-group{border-bottom:1px solid var(--border-color)}.athlete-group:last-child{border-bottom:none}.athlete-header{background:#ffffff05;border-left:4px solid #0000;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.athlete-info{align-items:center;gap:12px;display:flex}.athlete-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;font-weight:700;display:flex;box-shadow:0 2px 8px #0000004d}.athlete-name{letter-spacing:-.2px;font-size:15px;font-weight:700;display:block}.athlete-stats{color:var(--text-secondary);font-size:12px;font-family:var(--font-mono);margin-top:2px;display:block}.athlete-group table{margin:0}.athlete-group thead th{background:#0000001a;padding:10px 24px;font-size:10px}.athlete-group tbody td{padding:12px 24px}.kudos-count,.comments-count{font-family:var(--font-mono);color:var(--text-muted);font-size:13px;font-weight:600}.kudos-count.has-kudos{color:#f59e0b}.comments-count.has-comments{color:#3b82f6}.comments-row td{background:0 0!important}.comments-list{flex-direction:column;gap:6px;padding-top:4px;display:flex}.comment-bubble{background:#3b82f614;border:1px solid #3b82f61f;border-radius:12px;align-items:baseline;gap:8px;max-width:fit-content;padding:6px 12px;display:inline-flex}.comment-author{color:#60a5fa;white-space:nowrap;font-size:12px;font-weight:700}.comment-text{color:var(--text-primary);font-size:13px}.calc-add-btn{width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:#ffffff0a;border:1.5px solid #ffffff1f;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:16px;font-weight:700;line-height:1;transition:all .2s;display:inline-flex}.calc-add-btn:hover{color:#10b981;background:#10b98126;border-color:#10b981;transform:scale(1.15)}.calc-add-btn.in-calc{color:#fff;background:#10b981;border-color:#10b981;box-shadow:0 0 10px #10b98166}.step-calc{-webkit-backdrop-filter:blur(16px);z-index:1000;background:#111827f2;border:1px solid #ffffff1a;border-right:none;border-radius:16px 0 0 16px;flex-direction:column;width:300px;max-height:70vh;transition:right .35s cubic-bezier(.25,.8,.25,1);display:flex;position:fixed;top:50%;right:-320px;overflow:hidden;transform:translateY(-50%);box-shadow:-4px 0 24px #0006}.step-calc.is-open{right:0}.step-calc-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.step-calc-header h3{color:var(--text-primary);margin:0;font-size:15px;font-weight:700}.step-calc-clear{color:#ef4444;cursor:pointer;background:#ef44441a;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;transition:all .2s;display:flex}.step-calc-clear:hover{background:#ef444440;transform:scale(1.1)}.step-calc-total{border-bottom:1px solid var(--border-color);background:linear-gradient(135deg,#fc61001a,#10b98114);flex-direction:column;align-items:center;padding:20px;display:flex}.step-calc-total-label{text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);margin-bottom:4px;font-size:11px}.step-calc-total-value{font-size:32px;font-weight:800;font-family:var(--font-mono);background:linear-gradient(135deg, var(--accent-strava), #10b981);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.step-calc-list{flex:1;padding:8px 0;overflow-y:auto}.step-calc-item{border-bottom:1px solid #ffffff0a;justify-content:space-between;align-items:center;padding:10px 20px;transition:background .15s;display:flex}.step-calc-item:hover{background:#ffffff08}.step-calc-item:last-child{border-bottom:none}.step-calc-item-info{flex-direction:column;flex:1;min-width:0;display:flex}.step-calc-item-athlete{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.step-calc-item-name{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.step-calc-item-right{flex-shrink:0;align-items:center;gap:8px;margin-left:12px;display:flex}.step-calc-item-steps{font-family:var(--font-mono);color:#10b981;font-size:13px;font-weight:600}.step-calc-remove{color:#ef4444;cursor:pointer;opacity:0;background:#ef44441a;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;transition:all .2s;display:flex}.step-calc-item:hover .step-calc-remove{opacity:1}.step-calc-remove:hover{background:#ef44444d;transform:scale(1.2)}@media (width<=768px){.step-calc{width:260px;right:-280px}.step-calc-total-value{font-size:26px}}footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border-color);margin-top:auto;padding:24px 0 12px;font-size:13px}.file-upload-wrapper{margin-top:4px}.file-upload-label{border:1px dashed var(--border-color);border-radius:var(--radius-md);cursor:pointer;color:var(--text-secondary);text-align:center;background:#ffffff08;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:13px;font-weight:500;transition:all .25s;display:flex}.file-upload-label:hover{border-color:var(--border-focus);color:var(--text-primary);background:#ffffff14}.pagination{border-top:1px solid var(--border-color);background:#00000014;justify-content:center;align-items:center;gap:6px;padding:20px 24px;display:flex}.pagination-btn{border:1px solid var(--border-color);border-radius:var(--radius-sm);min-width:36px;height:36px;color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;background:#ffffff08;justify-content:center;align-items:center;padding:0 8px;font-size:13px;font-weight:500;transition:all .2s;display:inline-flex}.pagination-btn:hover:not(:disabled):not(.active){color:var(--text-primary);background:#ffffff14;border-color:#ffffff26;transform:translateY(-1px)}.pagination-btn:active:not(:disabled){transform:translateY(0)}.pagination-btn.active{background:var(--accent-strava);border-color:var(--accent-strava);color:#fff;font-weight:700;box-shadow:0 0 12px #fc610059}.pagination-btn:disabled{opacity:.3;cursor:not-allowed}.pagination-ellipsis{width:28px;height:36px;color:var(--text-muted);letter-spacing:2px;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.page-size-select{border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;appearance:none;background:#0000004d url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%239ca3af' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") right 8px center no-repeat;padding:6px 26px 6px 10px;font-size:12px;transition:all .2s}.page-size-select:hover{color:var(--text-primary);border-color:#ffffff26}.page-size-select:focus{border-color:var(--border-focus);box-shadow:var(--glow-orange);outline:none}.page-size-select option{color:var(--text-primary);background:#111827}@media (width<=640px){.pagination{gap:4px;padding:16px 12px}.pagination-btn{min-width:32px;height:32px;font-size:12px}.pagination-btn.pagination-num{display:none}.pagination-btn.pagination-num.active{display:inline-flex}.pagination-ellipsis{display:none}}
