:root{--bg:#f2f2f7;--card:#fff;--text:#1c1c1e;--muted:#6b6b72;--line:#e2e2e7;--accent:#1d3f72;--on-accent:#fff;--accent-soft:#e6ecf5;--done:#2e7d32;--danger:#c62828;--toast:#1c1c1e;--toast-text:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#000;--card:#1c1c1e;--text:#f2f2f7;--muted:#a1a1a8;--line:#2f2f33;--accent:#9dbbea;--on-accent:#0b1a30;--accent-soft:#1f2a3a;--done:#66bb6a;--danger:#ff6b6b;--toast:#3a3a3c;--toast-text:#fff}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{font-size:16px}.app{max-width:560px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 8px) 16px calc(env(safe-area-inset-bottom) + 96px);margin:0 auto}h1{margin:8px 0 12px;font-size:22px}h2{margin:24px 0 8px;font-size:17px}.card{background:var(--card);border-radius:14px;margin-bottom:10px;padding:12px 14px}.muted{color:var(--muted)}.small{font-size:14px}.btn{background:var(--accent);min-width:44px;min-height:44px;color:var(--on-accent);cursor:pointer;border:0;border-radius:12px;padding:0 16px;font-weight:600}.btn.block{width:100%}.btn.ghost{color:var(--accent);background:0 0}.btn.soft{background:var(--accent-soft);color:var(--accent)}.btn.danger{color:var(--danger);background:0 0}.btn:disabled{opacity:.5}.icon-btn{width:44px;height:44px;color:var(--accent);cursor:pointer;background:0 0;border:0;border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.field{margin-bottom:14px;display:block}.field>span,.field>label>span{color:var(--muted);margin-bottom:4px;font-size:14px;display:block}.input{border:1px solid var(--line);background:var(--card);border-radius:10px;width:100%;min-height:44px;padding:10px 12px}.input:focus{outline:2px solid var(--accent);outline-offset:-1px}textarea.input{resize:vertical;min-height:160px;line-height:1.4}.week-head{justify-content:space-between;align-items:center;gap:4px;display:flex}.week-head h1{text-align:center;flex:1;margin:0;font-size:19px}.week-sub{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;min-height:44px;display:flex}.chip{background:var(--accent-soft);min-height:32px;color:var(--accent);cursor:pointer;border:0;border-radius:999px;padding:4px 12px;font-size:14px;font-weight:600}.chip.empty{border:1px dashed var(--accent);background:0 0;font-weight:500}.tap{cursor:pointer;background:0 0;border:0;align-items:center;min-width:44px;min-height:44px;padding:0;display:inline-flex}.tiles{grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 14px;display:grid}.tile{background:var(--card);border-radius:14px;min-height:64px;padding:10px 14px}.tile.wide{grid-column:1/-1;justify-content:space-between;align-items:center;gap:8px;display:flex}.tile .label{color:var(--muted);font-size:14px}.tile .value{margin-top:2px;font-size:20px;font-weight:700}.day{border:2px solid #0000;gap:12px;padding:12px 14px;display:flex}.day.today{border-color:var(--accent)}.day-label{flex:none;width:48px}.day-label b{font-size:16px;display:block}.day-label span{color:var(--muted);font-size:14px}.today-tag{background:var(--accent);color:var(--on-accent);border-radius:6px;margin-top:4px;padding:1px 6px;font-size:14px;font-weight:600;display:inline-block}.day-items{flex:1;min-width:0}.training{text-align:left;cursor:pointer;background:0 0;border:0;gap:8px;width:100%;min-height:44px;padding:6px 0;display:flex}.training+.training{border-top:1px solid var(--line)}.training .body{flex:1;min-width:0}.training .type{font-weight:700}.training .text{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:2px}.training .km{color:var(--muted);flex:none;padding-top:2px;font-size:14px}.week-actions{flex-direction:column;gap:8px;margin-top:8px;display:flex}.tabbar{z-index:10;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);position:fixed;bottom:0;left:0;right:0}.tabbar nav{grid-template-columns:repeat(5,1fr);max-width:560px;margin:0 auto;display:grid}.tab{min-height:56px;color:var(--muted);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 0;font-size:14px;display:flex}.tab.active{color:var(--accent);font-weight:600}.tab svg{width:24px;height:24px}.sheet-backdrop{z-index:20;background:#00000059;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:560px;max-height:92dvh;padding:16px 16px calc(env(safe-area-inset-bottom) + 16px);border-radius:18px 18px 0 0;overflow-y:auto}.sheet h2{margin-top:0}.sheet-buttons{grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;display:grid}.type-options{flex-wrap:wrap;gap:8px;max-height:180px;margin-top:8px;display:flex;overflow-y:auto}.type-options .chip{min-height:44px}.type-options .chip.selected{background:var(--accent);color:var(--on-accent)}.list-row{border-bottom:1px solid var(--line);align-items:center;gap:8px;min-height:48px;display:flex}.list-row:last-child{border-bottom:0}.list-row .grow{overflow-wrap:anywhere;flex:1;min-width:0}.row-form{gap:8px;margin-top:10px;display:flex}.row-form .input{flex:1}.toast{z-index:30;left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom) + 68px);background:var(--toast);max-width:528px;color:var(--toast-text);border-radius:12px;align-items:center;gap:8px;margin:0 auto;padding:4px 4px 4px 16px;display:flex;position:fixed}.toast .grow{flex:1}.toast .count{font-variant-numeric:tabular-nums;opacity:.8;font-size:14px}.toast button{min-height:44px;color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0 12px;font-weight:700;display:inline-flex}.offline{text-align:center;color:var(--muted);margin-bottom:4px;font-size:14px}.error{color:var(--danger);margin:4px 0 12px;font-size:14px}.rotate{display:none}@media (orientation:landscape) and (height<=500px){.rotate{z-index:100;background:var(--bg);text-align:center;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}}.training .text a{color:var(--accent);overflow-wrap:anywhere;max-width:100%;margin:-12px 0;padding:12px 0;display:inline-block}.review-banner{border:1px solid var(--accent);text-align:left;cursor:pointer;width:100%;min-height:48px;color:var(--accent);justify-content:space-between;align-items:center;gap:8px;font-weight:600;display:flex}.review-item{border-bottom:1px solid var(--line);padding:12px 0}.review-item:last-child{border-bottom:0}.review-item p{margin:4px 0 8px}.review-actions{flex-wrap:wrap;gap:8px;display:flex}.tile-btn{text-align:left;cursor:pointer;color:inherit;font:inherit;border:0;width:100%}.race-tile{min-width:0}.race-name{overflow-wrap:anywhere;margin-top:2px;font-weight:600}.race-left{text-align:right;flex:none}.plan-row{border-bottom:1px solid var(--line);padding:10px 0}.plan-row:last-child{border-bottom:0}.plan-head{text-align:left;cursor:pointer;width:100%;min-height:44px;color:inherit;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:0;display:flex}.training .km{white-space:nowrap}.race-row{border:0;border-bottom:1px solid var(--line);text-align:left;width:100%;min-height:56px;color:inherit;cursor:pointer;background:0 0;align-items:center;gap:12px;padding:10px 0;display:flex}.race-row:last-child{border-bottom:0}.race-row .grow{overflow-wrap:anywhere;flex:1;min-width:0}.race-goal{min-height:1.2em;margin-top:2px;display:block}.segmented{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.segmented button{border:1px solid var(--accent);min-height:44px;color:var(--accent);cursor:pointer;background:0 0;border-radius:10px;flex:1;padding:0 10px;font-weight:600}.segmented button.on{background:var(--accent);color:var(--on-accent)}.macro-head{align-items:flex-start;gap:8px;display:flex}.macro-toggle{text-align:left;min-height:44px;color:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:2px;padding:4px 0;display:flex}.meso-head{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:10px;padding-top:6px;display:flex}.race-row:disabled{cursor:default;opacity:1}.result{color:var(--done);overflow-wrap:anywhere;margin-top:6px;font-weight:600}.details{margin-top:4px}.details-bar{border:0;border-top:1px solid var(--line);width:100%;min-height:44px;color:var(--accent);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;padding:0;font-weight:600;display:flex}.details-body{padding-bottom:6px}.laps{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}.laps th{text-align:left;color:var(--muted);padding:4px 4px 4px 0;font-weight:500}.laps td{border-top:1px solid var(--line);padding:3px 4px 3px 0}.facts{grid-template-columns:auto 1fr;gap:4px 12px;margin:10px 0 0;font-size:14px;display:grid}.facts dt{color:var(--muted)}.facts dd{overflow-wrap:anywhere;margin:0}.activity-extra{border:2px dashed var(--line);border-radius:12px;margin-top:8px;padding:8px 10px}.extra-tag{background:var(--accent-soft);color:var(--accent);border-radius:6px;margin-left:6px;padding:1px 6px;font-size:14px;font-weight:600;display:inline-block}.ask{margin-top:6px}.ask .btn{margin:4px 0 0}.key-help{margin-top:14px}.key-help summary{min-height:44px;color:var(--accent);cursor:pointer;align-items:center;font-weight:600;display:flex}.key-help ol{padding-left:20px;line-height:1.5}.key-help a{color:var(--accent);margin:-12px 0;padding:12px 0;display:inline-block}.upload{cursor:pointer;justify-content:center;align-items:center;display:flex}
