:root{
  --bg:#0a1020;--bg2:#0e1628;--panel:#151d30;--panel2:#1b2539;--panel3:#202d43;
  --line:#283349;--txt:#eff3fa;--muted:#90a0b8;--muted2:#667993;--accent:#bcef6a;
  --accent-dark:#263d24;--cyan:#71c6d4;--violet:#b3a1f7;--coral:#f6a98b;--danger:#ff9c9c;
  --shadow:0 16px 50px rgba(0,0,0,.16);--radius:18px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--txt);font:14px/1.55 -apple-system,BlinkMacSystemFont,'Pretendard Variable','Noto Sans KR','Apple SD Gothic Neo','Malgun Gothic',sans-serif;letter-spacing:-.025em}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{line-height:1.28;letter-spacing:-.04em}svg{display:block}::selection{background:#bcef6a;color:#111c22}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.app-shell{display:flex;min-height:100vh}.app-shell[hidden]{display:none}.sidebar{width:244px;flex:none;background:#0c1425;border-right:1px solid #1e2a3d;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:30px 18px 22px;z-index:20}.brand-block{display:flex;align-items:center;gap:11px;padding:0 8px 42px}.brand-mark{width:40px;height:40px;display:grid;place-items:center;background:var(--accent);border-radius:12px;color:#0f1d18;font-size:29px;font-weight:800;transform:rotate(-7deg)}.brand-mark span{transform:rotate(7deg) translateY(-1px)}.brand-words b{display:block;font-size:20px;letter-spacing:-.08em;line-height:1.1;font-weight:900}.brand-words b span{color:var(--accent)}.brand-words small{font-size:9px;letter-spacing:.16em;color:#91a1b7;white-space:nowrap}.nav-caption{padding-left:17px;font-size:10px;letter-spacing:.13em;color:#62758c;font-weight:800;margin-bottom:14px}.desktop-nav{display:flex;flex-direction:column;gap:5px}.nav-link{border:none;background:transparent;color:#95a4ba;min-height:47px;padding:0 16px;border-radius:11px;display:flex;align-items:center;gap:13px;text-align:left;width:100%;font-size:13px;font-weight:650;transition:.18s}.nav-link svg{width:19px;height:19px;stroke-width:1.9}.nav-link:hover{background:#182439;color:#f0f5fa}.nav-link.active{background:#22352b;color:var(--accent)}.nav-link.active:before{content:'';width:3px;height:18px;position:absolute;left:19px;border-radius:2px;background:var(--accent)}.nav-link.active svg{margin-left:0}.sidebar-bottom{margin-top:auto}.sidebar-tip{background:#1a2a2a;border:1px solid #304137;padding:17px 15px 18px;border-radius:15px}.tiny-bolt{display:block;color:var(--accent);font-size:20px;margin-bottom:4px}.sidebar-tip b{display:block;font-size:12px;margin-bottom:7px}.sidebar-tip small{color:#9cab9d;font-size:11px;line-height:1.65}.sidebar-status{display:flex;align-items:center;gap:8px;font-size:10px;color:#7f91a8;margin:25px 12px 0}.status-dot{height:7px;width:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px #bcef6a12}.content-shell{min-width:0;flex:1;max-width:1800px}.topbar{height:82px;border-bottom:1px solid #1f2b3f;display:flex;justify-content:space-between;align-items:center;padding:0 39px}.crumb{display:flex;gap:13px;align-items:center;font-size:12px;color:#7c90ab}.crumb-home{font-weight:800;letter-spacing:.05em}.crumb-slash{color:#45576e}.crumb strong{color:#d7e2f0}.topbar-actions{display:flex;align-items:center;gap:16px}.top-date{font-size:12px;color:#8699b3}.icon-button{width:36px;height:36px;border:1px solid #344258;border-radius:12px;display:grid;place-items:center;background:#202d42;color:#e4f2fd}.icon-button svg{width:17px}.icon-button:hover{border-color:var(--accent);color:var(--accent)}.avatar{border:none;width:34px;height:34px;background:#bacdf6;color:#17243c;font-size:13px;font-weight:900;border-radius:50%}.page-content{padding:35px 39px 70px;max-width:1550px;margin:0 auto}.page-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:26px}.eyebrow{font-size:11px;font-weight:850;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:8px;margin-bottom:11px}.eyebrow:before{content:'';width:15px;height:2px;border-radius:3px;background:var(--accent)}.page-heading h1{font-size:29px;margin-bottom:9px;font-weight:850}.page-sub{color:var(--muted);font-size:13px;margin-bottom:0;line-height:1.8}.heading-actions{display:flex;align-items:center;gap:10px}.btn{border:1px solid var(--line);background:#202c3d;color:var(--txt);padding:10px 17px;border-radius:10px;font-weight:750;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;transition:.18s}.btn svg{width:16px;height:16px}.btn:hover{background:#2a3b4c;border-color:#5e7188}.btn-primary{background:var(--accent);border-color:var(--accent);color:#142117}.btn-primary:hover{background:#d0fb88;border-color:#d0fb88}.btn-ghost{background:transparent}.btn-danger{color:var(--danger)}.btn-sm{padding:8px 11px;font-size:11px}.btn-lg{padding:13px 20px}.btn-icon{width:36px;height:36px;padding:0}.label-chip,.mode-chip,.type-pill{display:inline-flex;align-items:center;gap:5px;border-radius:99px;padding:4px 10px;background:#243147;border:1px solid #34425b;color:#adbed2;font-size:10px;font-weight:800;white-space:nowrap}.label-chip.accent{background:#bcef6a13;border-color:#bcef6a45;color:var(--accent)}.label-chip.cyan{color:var(--cyan);border-color:#71c6d43b;background:#71c6d416}.label-chip.violet{color:var(--violet);border-color:#b3a1f73b;background:#b3a1f718}.label-chip.coral{color:var(--coral);border-color:#f6a98b3b;background:#f6a98b18}
.hero{min-height:258px;border:1px solid #3a5340;border-radius:20px;background:radial-gradient(ellipse at 100% -20%,#36533f 0%,transparent 55%),linear-gradient(115deg,#1d352e,#142331 65%,#172335);padding:31px 34px;position:relative;overflow:hidden;display:grid;grid-template-columns:1fr 200px;align-items:center;margin-bottom:23px}.hero:after{content:'';position:absolute;width:320px;height:320px;border:1px solid #bcef6a22;border-radius:50%;right:-116px;top:-75px;box-shadow:0 0 0 58px #bcef6a08,0 0 0 116px #bcef6a05;pointer-events:none}.hero-content{position:relative;z-index:1}.hero .hero-label{color:var(--accent);font-size:10px;letter-spacing:.18em;font-weight:800;margin-bottom:11px}.hero h2{font-size:29px;letter-spacing:-.055em;margin:0 0 13px;line-height:1.38;max-width:660px}.hero h2 em{color:var(--accent);font-style:normal}.hero p{color:#b0c4c4;margin:0 0 22px;font-size:12px;line-height:1.8}.hero-stats{display:flex;align-items:center;gap:24px}.hero-stat span{display:block;font-size:10px;color:#98b1aa;margin-bottom:1px}.hero-stat strong{font-size:18px;letter-spacing:-.05em;font-variant-numeric:tabular-nums}.hero-stat strong em{font-style:normal;font-size:11px;color:#b0c5bf;margin-left:5px;font-weight:500}.hero-stats > i{display:block;width:1px;height:30px;background:#416452}.hero-side{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}.hero-ring{position:relative;width:144px;height:144px;display:grid;place-items:center}.hero-ring svg{position:absolute;inset:0;width:100%;height:100%}.hero-ring .ring-inner{text-align:center}.hero-ring b{display:block;font-size:32px;font-variant-numeric:tabular-nums;letter-spacing:-.06em}.hero-ring small{font-size:10px;color:#b2c5b5}.hero-side p{margin:7px 0 0;color:#adbdc2;font-size:11px}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:24px}.stat-card,.panel{border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow)}.stat-card{padding:21px 22px 20px;min-height:138px;position:relative}.stat-icon{position:absolute;top:20px;right:19px;width:35px;height:35px;border-radius:11px;display:grid;place-items:center;background:#263e35;color:var(--accent)}.stat-icon svg{width:18px;height:18px}.stat-icon.cyan{color:var(--cyan);background:#1d3643}.stat-icon.purple{color:var(--violet);background:#2b2947}.stat-icon.orange{color:var(--coral);background:#42332f}.stat-title{color:#93a3bb;font-size:11px;font-weight:650;margin-bottom:16px}.stat-value{display:flex;align-items:baseline;gap:5px;white-space:nowrap}.stat-value strong{font-size:29px;letter-spacing:-.06em;font-variant-numeric:tabular-nums;line-height:1}.stat-value small{font-size:12px;color:#9aaac0}.stat-foot{margin-top:12px;color:#73879f;font-size:10px}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.58fr) minmax(310px,1fr);gap:20px;margin-bottom:21px}.panel{padding:24px 25px}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:21px}.panel-header h3{font-size:16px;margin:0 0 5px;font-weight:800}.panel-header p{font-size:11px;color:#879ab3;margin:0}.text-link{font-size:11px;font-weight:700;background:none;color:var(--accent);border:none;padding:3px 0}.mini-line{height:1px;background:#2d3b50;margin:21px 0}.chart-wrap{height:217px;position:relative}.chart-wrap svg{width:100%;height:100%;overflow:visible}.chart-legend{display:flex;gap:17px;font-size:10px;color:#8597af;margin-top:9px}.chart-legend span:before{content:'';display:inline-block;width:8px;height:8px;border-radius:2px;background:var(--accent);margin-right:7px}.chart-legend span.alt:before{background:var(--cyan)}.chart-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);background:linear-gradient(transparent 98%,#283448 100%);background-size:100% 25%;border-radius:12px}.chart-empty .empty-icon{color:#62798d;margin-bottom:10px}.chart-empty p{font-size:12px;margin:0}.chart-empty small{font-size:10px;color:#75869a;margin-top:6px}.progress-card{border:1px solid #2d3b4d;background:#192537;border-radius:13px;padding:17px 17px;margin-bottom:12px}.progress-card:last-child{margin-bottom:0}.progress-top{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:13px}.progress-title{font-size:12px;font-weight:750}.progress-info{font-size:10px;color:#8ba0b6}.progress-bar{height:7px;background:#324154;border-radius:99px;overflow:hidden}.progress-bar span{height:100%;display:block;background:var(--accent);border-radius:99px}.progress-bar.purple span{background:var(--violet)}.progress-bottom{display:flex;justify-content:space-between;color:#8092aa;font-size:10px;margin-top:8px}.progress-bottom strong{color:#dfe6ec;font-weight:750}.goal-stack{display:grid;gap:12px}.goal-row{display:flex;justify-content:space-between;align-items:center;border:1px solid #354458;border-radius:11px;padding:13px 15px;background:#1a283a}.goal-row .goal-name{font-size:11px;color:#a7b6c9;display:block}.goal-row .goal-value{font-size:17px;font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-weight:850}.goal-row strong{font-size:12px;color:var(--accent);font-weight:750}
.activity-list{display:flex;flex-direction:column}.activity-row{display:grid;grid-template-columns:64px minmax(110px,1fr) 68px 72px 66px 32px;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #273448}.activity-row:last-child{border-bottom:0;padding-bottom:0}.run-date{font-size:11px;color:#8a9db6}.run-primary b{display:block;font-size:12px;font-weight:800}.run-primary small{display:block;font-size:10px;color:#7f93ac;margin-top:3px}.run-number{font-weight:800;font-size:12px;font-variant-numeric:tabular-nums}.run-number small{display:block;color:#7e91a8;font-size:10px;font-weight:450}.type-pill{font-size:10px;border-radius:6px;padding:5px 8px;justify-content:center}.type-pill.easy{color:#bcef6a;background:#243d31;border-color:#315545}.type-pill.tempo{color:#f3bb7b;background:#40342f;border-color:#5a4231}.type-pill.interval{color:#bda8fc;background:#302d4a;border-color:#4e426e}.type-pill.long{color:#83cedf;background:#263b47;border-color:#335363}.type-pill.race{color:#f49cb2;background:#473042;border-color:#694354}.more-dot{height:28px;width:28px;display:grid;place-items:center;color:#91a4be;border:none;border-radius:8px;background:transparent}.more-dot:hover{color:var(--accent);background:#27394e}.empty-panel{padding:30px 20px;text-align:center;color:var(--muted)}.empty-panel .empty-icon{margin:0 auto 12px;color:#71829a}.empty-panel b{display:block;color:#d9e3ef;font-size:13px;margin-bottom:5px}.empty-panel p{font-size:11px;margin-bottom:15px}.empty-panel button{margin:auto}
.shoe-mini{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #283549}.shoe-mini:last-child{border:0}.shoe-icon{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:12px;background:#233648;color:var(--cyan)}.shoe-icon svg{width:23px}.shoe-mini-main{flex:1;min-width:0}.shoe-mini-main b{font-size:11px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shoe-mini-main p{margin:3px 0 0;font-size:10px;color:#8397b0}.shoe-mini-right{font-size:11px;font-weight:750}.shoe-mini-right small{display:block;text-align:right;color:#8799af;font-size:9px;font-weight:400}
.section-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:20px;margin-bottom:21px}.table-panel{overflow:hidden}.table-filters{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px}.filter{background:#1c2a3e;color:#9caec4;border:1px solid #324056;border-radius:9px;padding:7px 11px;font-size:11px;font-weight:750}.filter.active{background:#2b402b;color:var(--accent);border-color:#548051}.run-full-list{display:flex;flex-direction:column;gap:10px}.run-card{padding:17px 18px;border:1px solid #2c3c52;background:#19263a;border-radius:13px;display:flex;align-items:center;gap:17px}.run-card:hover{border-color:#485c76}.run-card .run-card-icon{height:43px;width:43px;flex:none;border-radius:12px;background:#253b38;color:var(--accent);display:grid;place-items:center}.run-card .run-card-icon svg{width:20px}.run-card .run-card-copy{min-width:0;flex:1}.run-card h3{font-size:13px;margin:0 0 4px}.run-card p{font-size:11px;color:#879bb3;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-card-metrics{display:flex;gap:25px;flex:none}.run-card-metrics span small{display:block;font-size:10px;color:#879ab0}.run-card-metrics span strong{font-size:13px;font-variant-numeric:tabular-nums}.run-card-tools{display:flex;gap:4px;align-items:center}.run-snapshot{width:42px;height:42px;object-fit:cover;border:1px solid #53657a;border-radius:8px}.muted{color:var(--muted)}.subtle{font-size:11px;color:#7f94ad}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.highlight-metric{border:1px solid #35465c;border-radius:13px;background:#1c2a3e;padding:17px 18px}.highlight-metric p{font-size:11px;color:#9aacc1;margin:0 0 7px}.highlight-metric strong{font-size:26px;font-variant-numeric:tabular-nums;letter-spacing:-.05em}.highlight-metric small{font-size:10px;color:#7f93af;display:block;margin-top:4px}.info-note{padding:13px 17px;border:1px solid #465b4b;background:#243629;border-radius:11px;font-size:11px;color:#c2d8bf;line-height:1.75}.info-note b{color:var(--accent)}
.shoe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.shoe-card{padding:23px 23px 21px;border-radius:17px;border:1px solid #314058;background:#192639;min-width:0}.shoe-card-head{display:flex;align-items:flex-start;gap:15px;margin-bottom:24px}.shoe-card-icon{width:56px;height:56px;border-radius:15px;background:#2b394d;display:grid;place-items:center;flex:none}.shoe-card-icon svg{width:30px}.shoe-card-title{flex:1;min-width:0}.shoe-card-title small{color:#8199b0;font-size:10px}.shoe-card-title h3{font-size:16px;margin:3px 0 7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shoe-card .shoe-distance{font-size:30px;letter-spacing:-.06em;font-variant-numeric:tabular-nums;font-weight:850}.shoe-card .shoe-distance small{font-size:12px;font-weight:450;color:#91a6ba;letter-spacing:0}.shoe-remaining{font-size:11px;color:#8ca1b7;display:flex;justify-content:space-between;margin-bottom:10px}.shoe-actions{margin-top:18px;display:flex;justify-content:flex-end;gap:8px}.shoe-color{width:11px;height:11px;display:inline-block;border-radius:50%;vertical-align:middle;margin-right:6px}.shoe-status{font-size:10px;font-weight:750;display:inline-flex;color:#bcef6a}
.coach-hero{background:linear-gradient(125deg,#203931,#182a35);border:1px solid #476249;border-radius:17px;padding:25px;display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:19px}.coach-hero .coach-mark{width:52px;height:52px;border-radius:17px;background:#c6f57f;color:#243423;display:grid;place-items:center;font-size:26px;font-weight:bold;flex:none}.coach-hero h2{font-size:19px;margin:0 0 7px}.coach-hero p{font-size:12px;color:#abc1b6;margin:0;line-height:1.7}.coach-hero .btn{margin-left:auto}.analysis-box{border:1px solid #324158;background:#1b293e;border-radius:13px;padding:20px 22px;line-height:1.85;font-size:12px;color:#d5e0ef;white-space:pre-wrap}.analysis-box h4{margin-bottom:8px}.cycle-list{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:11px}.cycle-card{padding:17px 14px;min-height:177px;border:1px solid #344459;border-radius:12px;background:#1b2a3e}.cycle-card.highlight{border-color:#bcef6a75;background:#24382e}.cycle-num{font-size:10px;font-weight:800;color:var(--accent);letter-spacing:.08em;display:flex;justify-content:space-between}.cycle-card h4{font-size:13px;margin:13px 0 6px}.cycle-card p{font-size:11px;color:#becadb;margin:0 0 8px;font-weight:750}.cycle-card small{font-size:10px;color:#8da1b6;line-height:1.7;display:block}.bullet-insights{display:flex;flex-direction:column;gap:12px}.insight-row{display:flex;gap:13px;padding:15px;border:1px solid #344157;background:#1c293c;border-radius:11px}.insight-symbol{height:34px;width:34px;display:grid;place-items:center;border-radius:10px;background:#2f4837;color:var(--accent);flex:none}.insight-symbol svg{height:17px}.insight-row b{font-size:12px;display:block;margin-bottom:5px}.insight-row p{font-size:11px;color:#92a8bb;margin:0;line-height:1.8}
.settings-form{display:flex;flex-direction:column;gap:17px;max-width:720px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field label{font-size:11px;color:#b5c3d4;font-weight:750}.field input,.field textarea,.field select{width:100%;border:1px solid #3a4c65;background:#111c2e;border-radius:10px;color:#f0f5fb;min-height:43px;padding:10px 12px;font-size:13px;outline:none}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent)}.field input::placeholder,.field textarea::placeholder{color:#667b93}.field textarea{min-height:82px;resize:vertical}.field .field-hint{font-size:10px;color:#778ca5}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:7px}.form-actions .btn{min-width:110px}.color-options{display:flex;gap:9px;align-items:center}.color-opt{height:25px;width:25px;border-radius:50%;border:2px solid transparent;outline:2px solid transparent}.color-opt.selected{outline-color:white;outline-offset:2px}.settings-block{margin-bottom:19px}.settings-block h3{font-size:16px;margin-bottom:8px}.settings-block p{font-size:12px;line-height:1.8;color:#93a6be}.settings-block .btn{margin-right:7px;margin-bottom:7px}
.modal-backdrop{position:fixed;inset:0;z-index:100;background:#030710ce;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto}.modal{width:min(100%,635px);max-height:min(95vh,900px);overflow-y:auto;border:1px solid #475771;border-radius:20px;background:#182439;box-shadow:0 35px 100px #0009}.modal-head{padding:23px 26px 17px;display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #2a3a50}.modal-head h2{font-size:19px;margin:0 0 5px}.modal-head p{font-size:11px;color:#8da3bc;margin:0}.modal-body{padding:24px 26px 27px}.modal-close{height:31px;width:31px;background:#253349;border:1px solid #3b4c66;border-radius:9px;display:grid;place-items:center;color:#aabbd0}.modal-close svg{height:17px}.drop-zone{position:relative;min-height:135px;border:1.5px dashed #587057;background:#24382e;border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;color:#bed9b6;padding:21px;text-align:center;gap:7px;margin-bottom:15px}.drop-zone.dragover{background:#2f4d34;border-color:var(--accent)}.drop-zone svg{width:25px;height:25px;color:var(--accent)}.drop-zone b{font-size:12px}.drop-zone small{font-size:10px;color:#93afa2}.drop-zone input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}.preview-list{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:13px}.preview-tile{height:91px;width:100px;background:#24364a;border:1px solid #506176;border-radius:10px;overflow:hidden;position:relative}.preview-tile img{width:100%;height:100%;object-fit:cover}.preview-tile button{position:absolute;top:2px;right:2px;background:#0a111ecb;border:none;color:white;border-radius:50%;width:20px;height:20px}.import-tools{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.import-status{font-size:11px;color:#9fbbc4}.step-label{font-size:10px;color:#90a6c0;letter-spacing:.1em;font-weight:900;margin:16px 0 14px}.modal-sep{height:1px;background:#344359;margin:15px 0}.confirm-text{font-size:13px;color:#c7d4e4;line-height:1.8}.thumbnail-large{max-width:100%;max-height:65vh;display:block;border-radius:8px;margin:auto}.image-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.image-gallery img{width:100%;height:auto;border:1px solid #42536b;border-radius:8px}.helper-note{font-size:10px;color:#8da0b7;line-height:1.7;margin-top:10px}
.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#0b1323}.login-banner{background:radial-gradient(circle at 16% 18%,#426d45,#1d382d 49%,#152535 95%);display:flex;flex-direction:column;justify-content:center;padding:9vw;position:relative;overflow:hidden}.login-banner:before{content:'';height:500px;width:500px;border:1px solid #bcef6a20;border-radius:50%;position:absolute;bottom:-260px;right:-100px;box-shadow:0 0 0 75px #bcef6a08,0 0 0 150px #bcef6a06}.login-banner .big-arrow{font-weight:900;font-size:90px;color:var(--accent);line-height:1;margin-bottom:22px}.login-banner h1{font-size:52px;max-width:600px;font-weight:900;letter-spacing:-.07em}.login-banner h1 span{color:var(--accent)}.login-banner p{max-width:420px;color:#b4c9c2;font-size:15px;line-height:2}.login-form-wrap{display:grid;place-items:center;padding:40px}.login-form-card{width:min(100%,385px)}.login-form-card .eyebrow{margin-bottom:16px}.login-form-card h2{font-size:27px;margin-bottom:12px}.login-form-card p{color:#96a7bd;font-size:12px;line-height:1.9;margin-bottom:24px}.login-form-card .field{margin-bottom:17px}.login-error{font-size:12px;color:var(--danger);margin-top:12px;min-height:18px}.login-card-foot{color:#617892;font-size:11px;margin-top:30px;line-height:1.8}
.skeleton{animation:pulse 1.5s infinite alternate;color:#91a4bb}@keyframes pulse{from{opacity:.5}to{opacity:1}}#toast-root{position:fixed;z-index:200;bottom:25px;right:25px;display:grid;gap:9px}.toast{background:#283b3a;border:1px solid #54735b;box-shadow:0 9px 40px #0006;color:#e9f5ea;font-size:12px;border-radius:11px;padding:12px 18px;max-width:min(90vw,420px);animation:toastIn .22s ease}.toast.error{background:#4a303b;border-color:#b56980}@keyframes toastIn{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.mobile-nav{display:none}
@media(min-width:1500px){.page-content{padding-left:55px;padding-right:55px}.hero{min-height:275px}}
@media(max-width:1250px){.sidebar{width:210px;padding:25px 12px}.page-content{padding:30px 24px}.topbar{padding:0 24px}.stats-grid{gap:10px}.stat-card{padding:20px 15px}.dashboard-grid{grid-template-columns:1.4fr 1fr;gap:13px}.panel{padding:20px}.cycle-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:980px){.sidebar{width:76px;align-items:center;padding:23px 7px}.brand-block{padding:0 0 35px}.brand-words,.nav-caption,.nav-link span,.sidebar-bottom{display:none}.nav-link{width:52px;justify-content:center;padding:0}.nav-link.active:before{left:0}.desktop-nav{width:100%;align-items:center}.dashboard-grid,.section-grid{grid-template-columns:1fr}.hero{grid-template-columns:1fr 165px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shoe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-banner{padding:6vw}.login-banner h1{font-size:40px}}
@media(max-width:650px){.app-shell{display:block}.sidebar{display:none}.content-shell{min-height:100vh}.topbar{height:63px;padding:0 19px}.top-date,.crumb-home,.crumb-slash{display:none}.crumb strong{font-size:13px}.topbar-actions{gap:10px}.page-content{padding:26px 16px 110px}.page-heading{align-items:flex-start;margin-bottom:21px}.page-heading h1{font-size:24px}.page-heading .page-sub{font-size:12px}.page-heading .heading-actions .btn{font-size:11px;padding:9px 12px}.page-heading .heading-actions .btn svg{display:none}.hero{display:block;padding:24px 23px;min-height:0;border-radius:17px}.hero:after{width:180px;height:180px;top:-50px;right:-90px}.hero h2{font-size:25px}.hero p{font-size:11px}.hero-stats{gap:17px}.hero-stat strong{font-size:16px}.hero-side{display:none}.stats-grid{gap:11px}.stat-card{min-height:127px;padding:17px}.stat-icon{height:29px;width:29px;top:16px;right:13px}.stat-icon svg{width:16px}.stat-title{font-size:10px;margin-bottom:16px;max-width:90px}.stat-value strong{font-size:25px}.stat-foot{margin-top:11px}.panel{padding:19px 17px;border-radius:15px}.panel-header h3{font-size:15px}.dashboard-grid,.section-grid{gap:14px;margin-bottom:14px}.chart-wrap{height:195px}.activity-row{grid-template-columns:53px minmax(70px,1fr) 56px 55px 24px;gap:8px}.activity-row .type-pill{display:none}.run-primary b{font-size:11px}.run-number{font-size:11px}.goal-row{padding:11px}.mobile-nav{position:fixed;z-index:60;bottom:0;left:0;right:0;background:#111d30f2;border-top:1px solid #304259;display:flex;padding:8px 8px max(9px,env(safe-area-inset-bottom));justify-content:space-around;backdrop-filter:blur(15px)}.mobile-nav button{border:none;display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;background:transparent;color:#8497ae;font-size:10px;padding:6px 3px 4px;border-radius:9px;font-weight:700}.mobile-nav button svg{height:21px;width:21px}.mobile-nav button.active{color:var(--accent)}.run-card{display:grid;grid-template-columns:41px minmax(0,1fr) auto;gap:9px;padding:13px}.run-card .run-card-icon{width:39px;height:39px}.run-card-metrics{grid-column:2/4;gap:20px}.run-card-metrics span strong{font-size:12px}.run-card-tools{grid-column:3;grid-row:1}.run-snapshot{display:none}.shoe-grid,.two-col,.three-col,.form-grid{grid-template-columns:1fr}.cycle-list{grid-template-columns:repeat(2,minmax(0,1fr))}.cycle-card{min-height:165px;padding:14px}.coach-hero{display:grid;grid-template-columns:40px 1fr;padding:19px}.coach-hero .coach-mark{width:40px;height:40px;font-size:23px}.coach-hero .btn{grid-column:1/3;margin:0}.coach-hero h2{font-size:16px}.modal-backdrop{padding:0;align-items:flex-end}.modal{border-radius:20px 20px 0 0;max-height:94vh;border-bottom:0}.modal-head{padding:20px 20px 14px}.modal-body{padding:20px 20px max(26px,env(safe-area-inset-bottom))}.form-actions{position:sticky;bottom:-22px;background:#182439;padding:12px 0 0;margin-bottom:0;z-index:2}.login-page{display:block}.login-banner{padding:40px 26px 27px;min-height:270px}.login-banner .big-arrow{font-size:45px;margin:0 0 8px}.login-banner h1{font-size:32px;margin-bottom:10px}.login-banner p{font-size:11px;max-width:290px;margin-bottom:0}.login-form-wrap{display:block;padding:33px 25px}.login-form-card{margin:auto}.login-form-card h2{font-size:22px}#toast-root{bottom:88px;right:15px;left:15px}}
@media(max-width:350px){.hero h2{font-size:22px}.stat-value strong{font-size:21px}.stat-foot{font-size:9px}.cycle-list{grid-template-columns:1fr}}

/* White / blue editorial theme — flat colors, no gradients */
:root {
  --bg:#f8fafc; --bg2:#f8fafc; --panel:#ffffff; --panel2:#f6f9ff; --panel3:#eef4ff;
  --line:#e2e8f0; --txt:#152338; --muted:#65748a; --muted2:#8997a8;
  --accent:#1765ea; --accent-dark:#eaf2ff; --cyan:#1765ea; --violet:#1765ea;
  --coral:#1765ea; --danger:#d43243; --shadow:none; --radius:14px;
}
body {background:var(--bg);color:var(--txt)}
::selection {background:#dce9ff;color:#103d82}
.sidebar {background:#fff;border-right:1px solid var(--line)}
.brand-mark {transform:none;background:#1765ea;color:#fff;border-radius:11px}
.brand-mark span {transform:none}
.brand-words b span {color:#1765ea}
.brand-words small,.nav-caption,.sidebar-status,.top-date,.crumb,.page-sub,.stat-foot,.stat-title,.panel-header p {color:var(--muted)}
.nav-link {color:#62718a}
.nav-link:hover {background:#f1f5fb;color:#1c3659}
.nav-link.active {background:#eaf2ff;color:#1765ea}
.nav-link.active:before {background:#1765ea}
.sidebar-tip {background:#f5f8fe;border-color:var(--line)}
.sidebar-tip small {color:var(--muted)}
.status-dot {background:#1765ea;box-shadow:none}
.topbar {border-bottom:1px solid var(--line);background:#fff}
.crumb strong {color:#203148}
.crumb-slash {color:#acb5c2}
.icon-button,.modal-close {background:#fff;border-color:var(--line);color:#2465d0}
.icon-button:hover,.modal-close:hover {background:#eef4ff}
.avatar {background:#eaf2ff;color:#1765ea}
.eyebrow {color:#1765ea}
.eyebrow:before {background:#1765ea}
.btn {background:#fff;color:#27415e;border-color:#d9e2ed}
.btn:hover {background:#f0f5fe;border-color:#b2cdf8}
.btn-primary {background:#1765ea;color:#fff;border-color:#1765ea}
.btn-primary:hover {background:#0d51d6;border-color:#0d51d6}
.btn-danger {color:#be2d41}
.label-chip,.mode-chip,.type-pill {background:#f5f8fd;border:1px solid #e2e9f3;color:#536881}
.label-chip.accent {background:#ebf2ff;border-color:#d6e5ff;color:#175bd2}
.label-chip.cyan,.label-chip.violet,.label-chip.coral {background:#eef4ff;border-color:#d9e7ff;color:#1765ea}
.hero {background:#eef5ff;border-color:#d8e8ff;min-height:220px;overflow:hidden}
.hero:after {display:none;content:none;box-shadow:none}
.hero .hero-label,.hero h2 em {color:#1765ea}
.hero p,.hero-stat span,.hero-stat strong em,.hero-ring small,.hero-side p {color:#60748c}
.hero-stats > i {background:#c4d7f5}
.hero-ring svg circle:first-child {stroke:#cbdcf7}
.hero-ring svg circle:last-child {stroke:#1765ea}
.stat-card,.panel {background:#fff;border-color:var(--line);box-shadow:none}
.stat-card {min-height:132px}
.stat-icon,.stat-icon.cyan,.stat-icon.purple,.stat-icon.orange {background:#edf4ff;color:#1765ea}
.stat-title {color:#738097}
.stat-foot,.stat-value small {color:#7c8b9c}
.panel-header p {color:#8693a5}
.text-link {color:#1765ea}
.mini-line {background:#e9eef6}
.chart-empty {background:#f8fafe}
.chart-empty .empty-icon {color:#8da6d6}
.chart-empty small,.chart-legend {color:#8292a6}
.progress-card,.goal-row,.shoe-card,.run-card,.highlight-metric,.cycle-card,.insight-row {background:#fff;border-color:var(--line)}
.progress-card {background:#f5f9ff}
.progress-title,.shoe-mini-main b {color:#203148}
.progress-info,.run-number small,.run-date,.shoe-mini-main p,.shoe-mini-right small,.goal-row .goal-name,.highlight-metric p,.highlight-metric small,.shoe-card-title small,.shoe-card .shoe-distance small,.run-card p,.run-card-metrics span small,.cycle-card small,.insight-row p {color:#77879d}
.progress-bar {background:#e4ebf5}
.progress-bar span,.progress-bar.purple span {background:#1765ea}
.goal-row strong {color:#1765ea}
.activity-row,.shoe-mini {border-color:#edf1f6}
.shoe-icon,.shoe-card-icon,.run-card .run-card-icon {background:#eaf2ff;color:#1765ea}
.type-pill.easy,.type-pill.tempo,.type-pill.interval,.type-pill.long,.type-pill.race {color:#1765ea;background:#eff5ff;border-color:#dceaff}
.empty-panel b {color:#293c55}
.filter {background:#fff;color:#667892;border-color:#e1e8f3}
.filter.active {background:#eaf2ff;color:#1765ea;border-color:#b9d2ff}
.run-card:hover {border-color:#b8d1f5}
.info-note {background:#f1f6ff;border-color:#d8e7fb;color:#526987}
.info-note b {color:#1b5bd1}
.coach-hero {background:#eff5ff;border-color:#dce9fc}
.coach-hero .coach-mark,.insight-symbol {background:#dceaff;color:#1765ea}
.coach-hero p,.cycle-card p {color:#60748a}
.cycle-card.highlight {background:#eff6ff;border-color:#9bbffd}
.field label,.confirm-text {color:#40546d}
.field input,.field textarea,.field select {background:#fff;border-color:#d7e1ec;color:#183050}
.field input::placeholder,.field textarea::placeholder {color:#a4afbf}
.field .field-hint,.helper-note,.settings-block p {color:#78899e}
.color-opt.selected {outline-color:#1765ea}
.modal-backdrop {background:#1d2c43a3}
.modal {background:#fff;border-color:#dae5ef;box-shadow:0 24px 70px #16345d2b}
.modal-head {border-color:#e6ecf3}
.modal-head p,.import-status,.step-label {color:#7b8da6}
.drop-zone {background:#f4f8ff;border-color:#a6c7f5;color:#2a507d}
.drop-zone.dragover {background:#eaf3ff;border-color:#1765ea}
.drop-zone small {color:#7b93b2}
.preview-tile {background:#f4f8ff;border-color:#d8e2ef}
.modal-sep {background:#e6ecf2}
.form-actions {background:#fff}
.image-gallery img {border-color:#d7e2ef}
.login-page {background:#fff}
.login-banner {background:#edf5ff}
.login-banner:before {display:none;content:none;box-shadow:none}
.login-banner h1 {color:#1b2e47}
.login-banner h1 span,.login-banner .big-arrow {color:#1765ea}
.login-banner p,.login-form-card p,.login-card-foot {color:#778aa2}
.skeleton {color:#7b8da5}
.toast {background:#eff6ff;color:#1e4a90;border:1px solid #b8d5ff;box-shadow:0 6px 22px #1c43861a}
.toast.error {background:#fff1f2;color:#b4233a;border-color:#ffc7cf}
/* Date / week-month controls */
.period-toolbar {display:flex;justify-content:space-between;align-items:center;gap:14px;margin:-1px 0 18px;flex-wrap:wrap}
.period-toggle {display:inline-flex;gap:3px;border:1px solid #dae4f0;border-radius:10px;background:#fff;padding:4px}
.period-toggle button {background:transparent;border:0;color:#77879a;padding:8px 19px;border-radius:7px;font-size:12px;font-weight:750;min-width:65px}
.period-toggle button.active {background:#1765ea;color:#fff}
.period-nav {display:flex;gap:8px;align-items:center;color:#435870;font-size:12px;font-weight:700}
.period-nav span {min-width:158px;text-align:center;font-variant-numeric:tabular-nums}
.period-nav button {display:grid;place-items:center;width:33px;height:33px;font-size:22px;line-height:1;color:#31547b;background:#fff;border:1px solid #e0e7f0;border-radius:9px}
.period-nav button:disabled {opacity:.32}
.period-nav button:not(:disabled):hover {background:#eff5ff}
@media (max-width:650px) {
  .mobile-nav {background:#ffffffed;border-top:1px solid #e3eaf3}
  .mobile-nav button {color:#75869e}
  .mobile-nav button.active {color:#1765ea}
  .period-toolbar {margin:0 0 17px;gap:10px}
  .period-toggle {flex:1}
  .period-toggle button {flex:1}
  .period-nav {width:100%;justify-content:space-between}
  .period-nav span {flex:1}
  .hero {padding:22px 21px}
  .hero h2 {font-size:23px}
  .page-heading .heading-actions {flex-shrink:0}
}
/* Adaptive running coach: calm white / blue, no gradients */
.smart-card {margin:0 0 18px;border:1px solid #d9e5f4;border-radius:15px;background:#fff;overflow:hidden}
.smart-top {display:flex;justify-content:space-between;gap:12px;align-items:center;padding:17px 22px 0;font-size:12px;font-weight:800;color:#1765ea}
.smart-meta {color:#8795a8;font-size:11px;font-weight:650}
.smart-main {display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:30px;padding:16px 22px 21px;align-items:center}
.smart-main h2 {margin:0 0 7px;font-size:25px;letter-spacing:-.04em;color:#162b47}
.smart-target {margin:0;color:#415775;font-size:14px;font-weight:680;line-height:1.6}
.smart-reason {margin:13px 0 0;font-size:12px;color:#1765ea;font-weight:680;line-height:1.65}
.smart-original {margin-top:7px;font-size:11px;color:#7a8da3;line-height:1.6}
.smart-original strong {color:#314a70}
.smart-goal {border-left:1px solid #e6edf6;padding:12px 0 12px 25px;display:flex;flex-direction:column;gap:6px}
.smart-goal span {font-size:11px;color:#8595a8}
.smart-goal strong {font-size:28px;letter-spacing:-.05em;font-variant-numeric:tabular-nums;color:#1765ea}
.smart-goal small {font-size:11px;color:#607590}
.smart-actions {display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid #e7edf5;background:#fafcff;padding:13px 22px}
.smart-actions .btn {font-size:11px;min-height:35px}
.smart-summary {display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:20px}
.smart-summary>div {background:#fff;border:1px solid #e1e8f1;padding:15px 18px;border-radius:12px}
.smart-summary span {display:block;font-size:11px;color:#73859a;margin-bottom:8px}
.smart-summary strong {font-size:25px;line-height:1;color:#1d4788;font-variant-numeric:tabular-nums}
.smart-panel {margin-bottom:20px}
.smart-steps {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.smart-step {min-height:123px;position:relative;border:1px solid #e0e8f2;padding:14px 15px;border-radius:11px;display:flex;flex-direction:column;gap:6px;background:#fff}
.smart-step.current {border-color:#1765ea;background:#f5f9ff}
.smart-step span {color:#1765ea;font-size:11px;font-weight:850}
.smart-step b {font-size:13px;color:#243b5a}
.smart-step small {font-size:11px;color:#7b8da2;line-height:1.5}
.smart-step i {font-style:normal;position:absolute;right:12px;top:13px;color:#1765ea;font-size:10px;font-weight:800}
.smart-history {display:flex;flex-direction:column;gap:0}
.smart-history>div {display:grid;grid-template-columns:65px minmax(92px,1fr) minmax(85px,1fr) minmax(110px,1.3fr);gap:8px;align-items:center;padding:13px 0;border-bottom:1px solid #ecf1f7;font-size:11px}
.smart-history>div:last-child {border:0}
.smart-history span {color:#7c8fa7}
.smart-history b {color:#253f60;font-size:12px}
.smart-history small {color:#687e97;line-height:1.6}
.smart-goal-insight {display:flex;flex-direction:column;gap:8px;font-size:12px;color:#586f8b}
.smart-goal-insight strong {color:#1765ea;font-size:18px;letter-spacing:-.025em}
.smart-goal-insight p {font-size:12px;line-height:1.65;margin:0}
.smart-ai {display:flex;align-items:center;justify-content:space-between;gap:14px;margin:18px 0 10px;padding:0 3px;color:#71839c;font-size:11px}
.program-editor {display:grid;gap:12px;margin-top:15px}
.program-input-row {display:grid;grid-template-columns:36px 105px minmax(115px,1fr) minmax(150px,1.4fr) 32px;gap:7px;align-items:center}
.program-input-row b {font-size:11px;color:#1765ea}
.program-input-row input,.program-input-row select {min-width:0;background:#fff;border:1px solid #d7e1ec;border-radius:8px;padding:9px 8px;color:#183050;font-size:11px}
.program-input-row .btn {padding:7px 0;justify-content:center}
.program-tools {display:flex;align-items:center;gap:12px;margin:16px 0;font-size:11px;color:#8091a8}
.coach-hero,.analysis-box {background:#fff;border-color:#e0e8f2;color:#1e3554}
@media(max-width:900px) {
  .smart-main {grid-template-columns:minmax(0,1fr) 190px;gap:16px}
  .smart-steps {grid-template-columns:repeat(2,minmax(0,1fr))}
  .smart-summary {grid-template-columns:repeat(2,1fr)}
}
@media(max-width:650px) {
  .smart-top {padding:15px 16px 0}
  .smart-main {grid-template-columns:1fr;gap:7px;padding:14px 16px 19px}
  .smart-main h2 {font-size:23px}
  .smart-goal {border-left:0;border-top:1px solid #e6edf6;padding:15px 0 0;margin-top:8px;display:grid;grid-template-columns:1fr auto;align-items:center}
  .smart-goal strong {font-size:23px;grid-row:span 2}
  .smart-goal small {font-size:10px}
  .smart-actions {padding:11px 16px}
  .smart-actions .btn {flex:1;justify-content:center;padding:9px 7px;white-space:nowrap;font-size:10px}
  .smart-actions .btn:last-child {flex:1}
  .smart-summary {gap:9px}
  .smart-summary>div {padding:12px 15px}
  .smart-steps {grid-template-columns:1fr 1fr;gap:8px}
  .smart-step {min-height:130px;padding:12px}
  .smart-history>div {grid-template-columns:52px 1fr 1fr;gap:6px}
  .smart-history>div small:last-child {grid-column:2/4}
  .program-input-row {grid-template-columns:40px minmax(0,1fr) 30px;gap:6px}
  .program-input-row b {grid-row:1/3}
  .program-input-row select {grid-column:2;grid-row:1}
  .program-input-row input:nth-of-type(1) {grid-column:2;grid-row:2}
  .program-input-row input:nth-of-type(2) {grid-column:2;grid-row:3}
  .program-input-row .btn {grid-column:3;grid-row:1}
  .program-input-row {padding-bottom:10px;border-bottom:1px solid #e8edf5}
  .smart-ai {flex-wrap:wrap}
}

.smart-stats {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}
.smart-stats>div {background:#fff;border:1px solid #e2e8f1;border-radius:12px;padding:16px 20px;min-height:98px}
.smart-stats span {display:block;font-size:11px;color:#71849b;margin-bottom:8px}
.smart-stats strong {color:#233d60;font-size:24px;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.smart-stats small {font-size:11px;margin-left:5px;color:#6a7f98;font-weight:500}
@media(max-width:650px){.smart-stats {gap:8px}.smart-stats>div{padding:13px 10px;min-height:78px}.smart-stats strong{font-size:19px}.smart-stats small{display:inline;font-size:10px;margin-left:3px}}

/* Screenshot auto-record — flat white / blue */
.auto-options {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 6px}
.auto-options .field label {color:#526987}
#auto-status {display:flex;align-items:center;gap:6px;min-height:22px;font-size:12px;color:#526987;margin:6px 0 10px}
#auto-status svg {animation:auto-spin 1.2s linear infinite}
@keyframes auto-spin {to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){#auto-status svg{animation:none}}
.auto-results {display:flex;flex-direction:column;gap:8px}
.auto-item {display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"thumbs main state" "thumbs actions actions";gap:6px 12px;align-items:center;border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;background:#fff}
.auto-item.undone,.auto-item.duplicate {opacity:.6}
.auto-thumbs {grid-area:thumbs;display:flex;gap:4px}
.auto-thumbs img {width:34px;height:60px;object-fit:cover;border-radius:6px;border:1px solid #e2e8f0}
.auto-main {grid-area:main;display:flex;flex-direction:column;gap:2px;min-width:0}
.auto-main b {font-size:13px;color:#152338}
.auto-main small {font-size:12px;color:#65748a;font-variant-numeric:tabular-nums}
.auto-main .auto-detail {color:#8997a8;font-size:11px}
.auto-state {grid-area:state;font-size:11px;font-weight:700;color:#65748a;white-space:nowrap}
.auto-state.ok {color:#1765ea}
.auto-state.warn {color:#b45309}
.auto-actions {grid-area:actions;display:flex;gap:6px;justify-content:flex-end}
.auto-actions:empty {display:none}
@media(max-width:650px){.auto-options{grid-template-columns:1fr 1fr}.auto-thumbs img{width:28px;height:50px}}

/* Coach chat — flat white / blue */
.sr-only {position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.chat {display:flex;flex-direction:column;height:calc(100dvh - 190px);min-height:420px;max-width:860px;margin:0 auto;border:1px solid #e2e8f0;border-radius:16px;background:#fff;overflow:hidden}
.chat-list {flex:1;overflow-y:auto;padding:20px 18px;display:flex;flex-direction:column;gap:10px;background:#fbfcfe}
.chat-empty {margin:auto;text-align:center;color:#65748a}
.chat-empty b {display:block;color:#152338;font-size:15px;margin-bottom:6px}
.chat-empty p {font-size:12px;margin:0}
.msg {display:flex;flex-direction:column;max-width:88%}
.msg.user {align-self:flex-end;align-items:flex-end}
.msg.coach {align-self:flex-start;align-items:stretch}
.msg .bubble {border-radius:14px;padding:10px 13px;font-size:13px;line-height:1.65;color:#152338;word-break:break-word}
.msg.user .bubble {background:#1765ea;color:#fff;border-bottom-right-radius:4px}
.msg.coach .bubble {background:#fff;border:1px solid #e2e8f0;border-bottom-left-radius:4px}
.msg .bubble p {margin:0 0 6px}.msg .bubble p:last-child {margin-bottom:0}
.msg .bubble ul {margin:2px 0 8px;padding-left:18px}.msg .bubble li {margin:2px 0}
.msg .bubble b {font-weight:750}
.msg.coach .bubble b {color:#0f3f99}
.bubble.typing {display:flex;align-items:center;gap:7px;color:#526987}
.bubble.typing svg {animation:auto-spin 1.2s linear infinite}
.msg-images {display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px;justify-content:flex-end}
.msg-images img {height:74px;max-width:132px;object-fit:cover;border-radius:8px;border:1px solid #ffffff55}
.msg-records {align-self:flex-end;display:flex;flex-direction:column;gap:5px;max-width:88%}
.record-chip {display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:#40546d;background:#f1f6ff;border:1px solid #d8e7fb;border-radius:10px;padding:7px 10px}
.record-chip svg {color:#1765ea;flex:none}
.record-chip span {flex:1;min-width:0}
.record-chip b {color:#152338;font-variant-numeric:tabular-nums}
.record-chip.warn {background:#fff8eb;border-color:#f6dfb0}.record-chip.warn svg {color:#b45309}
.record-chip.undone,.record-chip.muted {background:#f6f8fb;border-color:#e2e8f0;color:#8997a8}.record-chip.undone svg,.record-chip.muted svg {color:#8997a8}
.proposal-card {display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin-top:6px;border:1px solid #cfe0fb;background:#f4f8ff;border-radius:12px;padding:11px 12px;font-size:12px;color:#40546d}
.proposal-card>svg {color:#1765ea;margin-top:2px}
.proposal-body b {color:#152338;font-size:13px}
.proposal-body ul {margin:5px 0;padding-left:16px}.proposal-body li {margin:2px 0}
.proposal-body small {display:block;color:#65748a;line-height:1.5}
.proposal-body small.warn {color:#b45309;margin-top:3px}
.proposal-actions {grid-column:2;display:flex;gap:6px;align-items:center;margin-top:4px}
.proposal-card.dismissed,.proposal-card.blocked {background:#f8fafc;border-color:#e2e8f0}
.chat-composer {border-top:1px solid #e2e8f0;padding:10px 12px;background:#fff}
.chat-attachments {display:flex;gap:6px;flex-wrap:wrap}
.chat-attachments:not(:empty) {margin-bottom:8px}
.chat-attachments .preview-tile {width:56px;height:56px}
.chat-row {display:flex;gap:8px;align-items:flex-end}
.chat-row textarea {flex:1;resize:none;min-height:42px;max-height:140px;border:1px solid #d7e1ec;border-radius:12px;padding:10px 12px;font:inherit;font-size:14px;color:#152338;background:#fff;outline:none}
.chat-row textarea:focus {border-color:#1765ea}
.chat-row .btn {height:42px;min-width:42px;padding:0 12px}
.chat-attach {cursor:pointer}
.chat-tools {display:flex;align-items:center;gap:8px;margin-top:7px;font-size:11px;color:#65748a}
.chat-tools select {border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#40546d;font-size:11px;padding:4px 6px;max-width:160px}
.chat-tools-sep {flex:1}
@media(max-width:650px){
  body.chat-page .page-content {padding-bottom:80px}
  .chat {height:calc(100dvh - 63px - 26px - 82px);border-radius:14px;min-height:360px}
  .chat-list {padding:14px 10px}
  .msg,.msg-records {max-width:94%}
  .chat-row textarea {font-size:16px} /* avoids iOS zoom on focus */
}

/* Running shoes with photos — flat white / blue */
.shoe-grid {grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.shoe-card {padding:0;overflow:hidden;display:flex;flex-direction:column}
.shoe-photo {aspect-ratio:4/3;background:#f6f8fb;display:grid;place-items:center;color:#a9bad0;overflow:hidden}
.shoe-photo img {width:100%;height:100%;object-fit:cover;display:block}
.shoe-card.retired .shoe-photo img {filter:grayscale(.7);opacity:.75}
.shoe-card-body {padding:14px 16px 15px;display:flex;flex-direction:column}
.shoe-card-title {display:flex;flex-direction:column;gap:1px}
.shoe-card-title small {font-size:11px;color:#65748a;font-weight:700;letter-spacing:.02em}
.shoe-card-title h3 {font-size:15px;margin:0;color:#152338}
.shoe-card-title .label-chip {align-self:flex-start;margin-top:5px}
.shoe-card .shoe-distance {font-size:30px;font-weight:800;color:#152338;letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:10px 0 8px}
.shoe-card .shoe-distance small {font-size:13px;font-weight:600;color:#65748a;margin-left:4px}
.shoe-card .progress-bar, .shoe-mini .progress-bar {background:#e8eef6}
.shoe-card .progress-bar span, .shoe-mini .progress-bar span {background:#1765ea}
.shoe-card .shoe-remaining {display:flex;justify-content:space-between;font-size:11px;color:#65748a;margin-top:6px}
.shoe-meta {font-size:11px;color:#8997a8;margin-top:3px}
.shoe-card .shoe-actions {display:flex;gap:6px;margin-top:12px}
button.shoe-mini {width:100%;background:none;border:0;border-bottom:1px solid #edf1f6;text-align:left;cursor:pointer;color:inherit;font:inherit}
button.shoe-mini:last-child {border-bottom:0}
button.shoe-mini:hover .shoe-mini-main b {color:#1765ea}
.shoe-thumb {width:58px;height:44px;border-radius:8px;overflow:hidden;background:#f6f8fb;flex:none;display:grid;place-items:center;color:#a9bad0}
.shoe-thumb img {width:100%;height:100%;object-fit:cover;display:block}
.shoe-mini-main {flex:1;min-width:0}
.shoe-mini-main b {display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shoe-mini-main .progress-bar {height:5px;margin-top:7px}
.shoe-mini-right {font-variant-numeric:tabular-nums;font-weight:750;color:#152338}
.shoe-photo-field {display:flex;gap:14px;align-items:center}
.shoe-photo-field .shoe-photo {width:168px;border-radius:12px;border:1px solid #e2e8f0}
.shoe-photo-tools {display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.shoe-photo-tools label {cursor:pointer}
@media(max-width:650px){.shoe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.shoe-card-body{padding:11px 12px 12px}.shoe-card .shoe-distance{font-size:24px}.shoe-card .shoe-actions .btn{flex:1;padding:7px 6px}.shoe-meta{display:none}}

/* Intensity colours — pastel mint → butter → peach → coral. Bars/chips use the pastels;
   text uses a deeper tone of the same hue (≥4.5:1 on white and on its chip). */
:root {
  --int0:#c8d4cf; --int1:#a6e3b8; --int2:#ffe08a; --int3:#ffbe8c; --int4:#ff9c92; --int5:#e3e8ee;
  --int0t:#56655f; --int1t:#2b7a46; --int2t:#8a6400; --int3t:#a84a0f; --int4t:#b83028; --int5t:#8a97a8;
}
.int-t0 {color:var(--int0t)!important}.int-t1 {color:var(--int1t)!important}.int-t2 {color:var(--int2t)!important}.int-t3 {color:var(--int3t)!important}.int-t4 {color:var(--int4t)!important}
.int-chip {display:inline-flex;align-items:center;gap:5px;margin-left:6px;padding:2px 8px;border-radius:99px;font-size:10px;font-weight:750;white-space:nowrap;vertical-align:middle}
.int-chip::before {content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.int-chip.lv0 {color:var(--int0t);background:color-mix(in srgb,var(--int0) 32%,#fff)}
.int-chip.lv1 {color:var(--int1t);background:color-mix(in srgb,var(--int1) 32%,#fff)}
.int-chip.lv2 {color:var(--int2t);background:color-mix(in srgb,var(--int2) 32%,#fff)}
.int-chip.lv3 {color:var(--int3t);background:color-mix(in srgb,var(--int3) 32%,#fff)}
.int-chip.lv4 {color:var(--int4t);background:color-mix(in srgb,var(--int4) 32%,#fff)}
.int-chip::before {background:var(--dot,currentColor)}
.record-chip .int-chip {margin-left:0}
.run-primary small .int-chip {margin:0 6px 0 0;font-size:9.5px;padding:1px 6px}
.int-summary {display:flex;flex-direction:column;gap:7px;margin-top:10px}
.int-dist {display:flex;gap:2px;height:7px;border-radius:4px;overflow:hidden;background:#eef2f6}
.int-dist span {display:block;height:100%}
.int-dist-text {display:flex;flex-wrap:wrap;gap:4px 14px;font-size:11px;color:#65748a}
.int-dist-text i {display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.int-dist-text b {color:#152338;font-variant-numeric:tabular-nums}

/* Dashboard calendar (Samsung-Health style): circle colour = intensity, size = distance */
.cal {margin-top:2px}
.cal-head,.cal-grid {display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-head span {text-align:center;font-size:12px;font-weight:600;color:#65748a;padding:4px 0 8px;border-bottom:1px solid #e3e8ef}
.cal-head span.sun {color:#d14343}
.cal-grid {padding-top:4px}
.cal-cell {height:54px;display:grid;place-items:center;min-width:0}
.cal-num {width:30px;height:30px;display:grid;place-items:center;border-radius:50%;font-size:13px;color:#152338;font-variant-numeric:tabular-nums}
.cal-cell.out {opacity:.32}
.cal-dot {--dmin:28px;--dmax:48px;--t:0;width:calc(var(--dmin) + (var(--dmax) - var(--dmin)) * var(--t));max-width:100%;aspect-ratio:1/1;border-radius:50%;
  display:grid;place-items:center;padding:0;border:1px solid transparent;font:inherit;font-size:13px;font-weight:700;color:#152338;font-variant-numeric:tabular-nums;cursor:pointer;transition:transform .12s}
.cal-dot:hover {transform:scale(1.05)}
.cal-dot:focus-visible {outline:2px solid #1765ea;outline-offset:2px}
.cal-dot.lv0 {background:var(--int0);border-color:color-mix(in srgb,var(--int0t) 25%,transparent)}
.cal-dot.lv1 {background:var(--int1);border-color:color-mix(in srgb,var(--int1t) 25%,transparent)}
.cal-dot.lv2 {background:var(--int2);border-color:color-mix(in srgb,var(--int2t) 25%,transparent)}
.cal-dot.lv3 {background:var(--int3);border-color:color-mix(in srgb,var(--int3t) 25%,transparent)}
.cal-dot.lv4 {background:var(--int4);border-color:color-mix(in srgb,var(--int4t) 25%,transparent)}
.cal-dot.lv5 {background:var(--int5);border-color:#cdd5df}
.cal-cell.today .cal-num {box-shadow:inset 0 0 0 2px #1765ea;color:#1765ea;font-weight:700}
.cal-cell.today .cal-dot {box-shadow:0 0 0 2px #fff,0 0 0 4px #1765ea}
.cal-cell.selected .cal-dot {box-shadow:0 0 0 2px #fff,0 0 0 4px #152338}
.cal-week .cal-cell {height:58px}
.cal-detail {min-height:28px;margin-top:8px;padding-top:8px;border-top:1px solid #edf1f6;font-size:12px;color:#40546d;display:flex;flex-direction:column;gap:4px}
.cal-hint {color:#8997a8;font-size:11px}
.cal-run {display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.cal-run b {color:#152338}
.cal-run span {font-variant-numeric:tabular-nums}
.cal-run .int-chip {margin-left:0}
@media (prefers-reduced-motion:reduce){.cal-dot{transition:none}.cal-dot:hover{transform:none}}
@media(max-width:650px){.cal-cell{height:48px}.cal-dot{--dmin:26px;--dmax:42px;font-size:12px}.cal-num{width:28px;height:28px;font-size:12px}.cal-week .cal-cell{height:50px}}

/* Insights: last 8 weeks as calendar rows */
.cal8 {display:flex;flex-direction:column}
.cal8-row {display:grid;grid-template-columns:52px repeat(7,minmax(0,1fr)) 48px;align-items:center}
.cal8-head span {text-align:center;font-size:12px;font-weight:600;color:#65748a;padding:4px 0 8px;border-bottom:1px solid #e3e8ef}
.cal8-head span.sun {color:#d14343}
.cal8 .cal-cell {height:44px}
.cal8 .cal-dot {--dmin:24px;--dmax:40px;font-size:11px}
.cal8 .cal-num {width:24px;height:24px;font-size:11px;color:#8997a8}
.cal8-label {font-size:11px;color:#8997a8;font-variant-numeric:tabular-nums}
.cal8-total {text-align:right;font-size:12px;font-weight:700;color:#40546d;font-variant-numeric:tabular-nums}
.cal8-head .cal8-total {font-weight:600;color:#8997a8}
.cal8-row.current {background:#f6f9ff;border-radius:10px}
.cal8-row.current .cal8-label {color:#1765ea;font-weight:700;padding-left:6px}
.cal8-row.current .cal8-total {padding-right:6px;color:#152338}
@media(max-width:650px){.cal8-row{grid-template-columns:38px repeat(7,minmax(0,1fr)) 36px}.cal8 .cal-cell{height:38px}.cal8 .cal-dot{--dmin:22px;--dmax:32px;font-size:10px}.cal8 .cal-num{width:22px;height:22px;font-size:10px}.cal8-label,.cal8-total{font-size:10px}}

/* Route maps (rebuilt from screenshot maps). Map left, lap list right; stacked on phones. */
.route-chip {display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border-radius:99px;border:1px solid var(--line);background:var(--panel2);color:var(--muted);font-size:10px;font-weight:700;white-space:nowrap}
.route-chip svg {flex:none}
button.route-chip {cursor:pointer}
button.route-chip:hover {color:var(--txt)}
.route-chip:not(.off) svg {animation:route-pulse 1.4s ease-in-out infinite}
@keyframes route-pulse {50%{opacity:.35}}
.route-dot {color:var(--accent)}
.record-chip .route-chip,.record-chip .route-dot {margin-left:2px}
.modal.modal-wide {width:min(100%,1040px)}
.route-view {display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:14px;align-items:start}
.route-map-box {position:relative;height:min(62vh,560px);min-height:320px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#e9eef3}
#route-map {position:absolute;inset:0}
.route-seg {position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:500;display:flex;background:var(--panel);border:1px solid var(--line);border-radius:99px;padding:3px;box-shadow:0 2px 10px rgba(20,35,56,.12)}
.route-seg button {border:0;background:transparent;font-size:12px;font-weight:700;color:var(--muted);padding:5px 12px;border-radius:99px}
.route-seg button[aria-pressed="true"] {background:var(--txt);color:var(--panel)}
.route-legend {position:absolute;left:10px;bottom:10px;z-index:500;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px 9px;font-size:10px;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap;max-width:calc(100% - 20px)}
.route-legend:empty {display:none}
.route-legend i {display:inline-block;width:14px;height:4px;border-radius:2px;margin-right:4px;vertical-align:middle}
.route-laps {border:1px solid var(--line);border-radius:14px;overflow:hidden;max-height:min(62vh,560px);overflow-y:auto}
.route-laps:empty {display:none}
.route-lap {display:grid;grid-template-columns:26px 1fr 1fr 1fr;align-items:center;gap:4px;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--txt);font-size:12px;text-align:left;padding:8px 12px;font-variant-numeric:tabular-nums}
.route-lap:last-child {border-bottom:0}
.route-lap:hover {background:var(--panel2)}
.route-lap[aria-pressed="true"] {background:var(--panel3)}
.route-lap.head {font-size:10px;color:var(--muted);background:var(--panel2);position:sticky;top:0}
.route-lap .n {display:grid;place-items:center;width:20px;height:20px;border-radius:50%;font-size:10px;font-weight:800;color:#fff;background:var(--accent)}
.route-lap .hr {color:var(--muted)}
.route-lap:focus-visible,.route-seg button:focus-visible {outline:2px solid var(--accent);outline-offset:-2px}
.route-note {grid-column:1/-1;margin:0;font-size:11px;color:var(--muted);line-height:1.7}
.route-reason {font-size:14px;font-weight:650;line-height:1.6}
.route-km {display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid #152338;font-size:11px;font-weight:800;color:#152338;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.route-pin {width:16px;height:16px;border-radius:50%;border:3px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.route-pin.start {background:#2b7a46}.route-pin.finish {background:#152338}
@media(max-width:800px){.route-view{grid-template-columns:1fr}.route-map-box{height:52vh}.route-laps{max-height:none}}
@media(prefers-reduced-motion:reduce){.route-chip svg{animation:none}}
