:root{--font:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--bg:#fff;--surface:#f6f7f9;--surface-2:#eceef2;--seg-on:#fff;--line:#e6e8ed;--line-strong:#d3d7df;--ink:#1b1e24;--ink-2:#4b5261;--muted:#7b8393;--focus:#4c8df6;--on-solid:#fff;--run:#2f6fe4;--bike:#1f9d68;--ski:#7a5af0;--holiday:#e2791f;--today:#e5484d;--warn:#a15c07;--danger:#d92d3a;--shadow-sm:0 1px 2px #1018280d;--shadow:0 2px 4px #1018280f, 0 8px 20px #10182814;font-family:var(--font);color:var(--ink);background:var(--bg);font-variant-numeric:tabular-nums}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121418;--surface:#181b21;--surface-2:#20242b;--seg-on:#323844;--line:#272c34;--line-strong:#373e4a;--ink:#eceef2;--ink-2:#b4bac6;--muted:#8a92a1;--focus:#6aa2ff;--on-solid:#10131a;--run:#5b9bff;--bike:#3dcb8c;--ski:#9b84ff;--holiday:#ff9b4a;--today:#ff6369;--warn:#f2b06b;--danger:#ff6b6b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#121418;--surface:#181b21;--surface-2:#20242b;--seg-on:#323844;--line:#272c34;--line-strong:#373e4a;--ink:#eceef2;--ink-2:#b4bac6;--muted:#8a92a1;--focus:#6aa2ff;--on-solid:#10131a;--run:#5b9bff;--bike:#3dcb8c;--ski:#9b84ff;--holiday:#ff9b4a;--today:#ff6369;--warn:#f2b06b;--danger:#ff6b6b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);min-width:880px;min-height:100vh;margin:0}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.app{grid-template-columns:minmax(0,1fr) 380px;min-height:100vh;display:grid}.app.no-side{grid-template-columns:1fr}.planner{min-width:0;padding:28px}.topbar,.toolbar{align-items:center;gap:16px;display:flex}.topbar{min-height:42px}.year-control{align-items:center;gap:8px;display:flex}.year-control h1{letter-spacing:-.02em;margin:0 4px;font-size:28px}.year-control button,.top-actions button,.today-button{border:1px solid var(--line);background:var(--bg);border-radius:8px;min-height:30px;padding:4px 9px}.year-control>button:first-child,.year-control>button:nth-child(3){padding:2px 9px;font-size:22px;line-height:20px}.summary{color:var(--ink-2);margin:0;font-size:13px}.top-actions{gap:8px;margin-left:auto;display:flex}.toolbar{justify-content:space-between;margin:28px 0 16px}.segmented{background:var(--surface-2);border-radius:10px;gap:2px;padding:3px;display:flex}.segmented button,.chip{background:0 0;border:0;border-radius:7px;padding:6px 10px;font-size:13px}.segmented button[aria-pressed=true]{background:var(--seg-on);box-shadow:var(--shadow-sm)}.type-chips{gap:6px;display:flex}.chip{border:1px solid color-mix(in srgb, var(--chip) 35%, var(--line));color:var(--chip)}.chip.run{--chip:var(--run)}.chip.bike{--chip:var(--bike)}.chip.ski{--chip:var(--ski)}.chip.holiday{--chip:var(--holiday)}.chip[aria-pressed=false]{opacity:.4;text-decoration:line-through}.side-panel{border-left:1px solid var(--line);background:var(--surface);flex-direction:column;min-height:100vh;display:flex}.panel-heading{border-bottom:1px solid var(--line);padding:28px 24px 18px}.panel-heading h2{margin:0 0 4px;font-size:18px}.panel-heading p,.panel-footer p{color:var(--muted);margin:0;font-size:12px}.upcoming-list{flex:1;overflow:auto}.upcoming{text-align:left;border:0;border-bottom:1px solid var(--line);background:0 0;grid-template-columns:18px 1fr auto;align-items:start;gap:9px;width:100%;padding:15px 20px;display:grid}.upcoming:hover{background:color-mix(in srgb,var(--surface-2) 70%,transparent)}.upcoming strong,.upcoming small{display:block}.upcoming strong{font-size:13px}.upcoming small,.upcoming em{color:var(--muted);margin-top:3px;font-size:12px;font-style:normal}.panel-footer{border-top:1px solid var(--line);margin-top:auto;padding:16px 20px}.primary{background:var(--ink);color:var(--on-solid);border:0;border-radius:10px;padding:9px 13px;font-weight:600}.primary:disabled{opacity:.5;cursor:not-allowed}.panel-footer .primary{width:100%;margin-bottom:10px}.text-button,.back{color:var(--ink-2);background:0 0;border:0;padding:0;text-decoration:underline}.legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0;font-size:11px;display:flex}.legend span{align-items:center;gap:5px;display:flex}.legend-note{margin-left:auto}.marker{border:2px solid var(--ink-2);border-radius:50%;flex:none;width:14px;height:14px;display:inline-block}.marker.interested{background:0 0}.marker.considering{background:linear-gradient(90deg,var(--ink-2) 50%,transparent 50%)}.marker.registered{background:var(--ink-2)}.marker.done{background:var(--ink-2);position:relative}.marker.done:after{content:"✓";color:var(--on-solid);font-size:9px;position:absolute;inset:-1px 0 0 1px}.marker.skipped{opacity:.55;border-style:dashed}.marker.run{border-color:var(--run)}.marker.bike{border-color:var(--bike)}.marker.ski{border-color:var(--ski)}.marker.holiday{border-color:var(--holiday)}.editor{height:100vh;padding:20px 24px;overflow:auto}.editor .back{margin-bottom:16px}.event-title{border:0;border-bottom:1px solid var(--line);background:0 0;width:100%;margin-bottom:18px;padding:4px 0 10px;font-size:22px;font-weight:700}.field-group{margin:14px 0}.field-group>label,.field-group label,.editor section>label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:8px 0;font-size:11px;display:block}.field-group input,.editor section input,.editor textarea{border:1px solid var(--line-strong);background:var(--bg);border-radius:8px;width:100%;margin-top:4px;padding:7px 8px;font-size:13px;display:block}.field-group.two{grid-template-columns:1fr 1fr;gap:10px;display:grid}.field-group small{color:var(--muted);font-size:11px}.options{flex-wrap:wrap;gap:5px;display:flex}.options button{background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:4px 8px;font-size:12px}.options button[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--on-solid)}.editor section{border-top:1px solid var(--line);margin-top:20px;padding-top:14px}.editor h3{margin:0 0 8px;font-size:13px}.editor textarea{resize:vertical;min-height:90px}.cost-total{border-top:1px solid var(--line);justify-content:space-between;padding-top:8px;font-size:13px;display:flex}.editor footer{border-top:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;margin:24px -24px -20px;padding:16px 24px;display:flex;position:sticky;bottom:-20px}.editor footer>span{color:var(--muted);font-size:12px}.danger{color:var(--danger);background:0 0;border:0;padding:0}.link-input{gap:6px;display:flex}.link-input input{flex:1;min-width:0}.link-input a,.link-input button,.section-heading button,.key-date button{border:1px solid var(--line-strong);background:var(--bg);border-radius:8px;padding:6px 8px;font-size:12px;text-decoration:none}.link-input button:disabled{opacity:.45;cursor:not-allowed}.section-heading{justify-content:space-between;align-items:center;display:flex}.section-heading button{color:var(--ink-2)}.key-date{grid-template-columns:1fr 120px 30px;gap:6px;margin:7px 0;display:grid}.key-date input{margin:0!important}.key-date button{padding:0}.hint{color:var(--muted);font-size:12px}.map-position{border-top:1px solid var(--line);margin-top:20px;padding-top:14px}.map-position summary{cursor:pointer;font-size:13px;font-weight:600}.timeline-scroll{border:1px solid var(--line);background:linear-gradient(180deg,var(--surface),var(--bg) 35%);border-radius:14px;overflow-x:auto}.timeline{position:relative}.month{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;padding-left:8px;font-size:11px;position:absolute;top:14px}.axis{background:var(--line-strong);height:1px;position:absolute;left:28px;right:28px}.stem{background:var(--stem);width:1px;position:absolute}.stem.run,.span.run,.event-card.run,.axis-marker.run{--stem:var(--run)}.stem.bike,.span.bike,.event-card.bike,.axis-marker.bike{--stem:var(--bike)}.stem.ski,.span.ski,.event-card.ski,.axis-marker.ski{--stem:var(--ski)}.stem.holiday,.span.holiday,.event-card.holiday,.axis-marker.holiday{--stem:var(--holiday)}.span{background:color-mix(in srgb,var(--stem) 45%,transparent);border-radius:999px;height:8px;position:absolute}.span.registered{background:linear-gradient(90deg,color-mix(in srgb,var(--stem) 75%,transparent),var(--stem))}.span.considering{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--stem) 50%,transparent),color-mix(in srgb,var(--stem) 50%,transparent) 3px,transparent 3px,transparent 6px)}.axis-marker{width:18px;height:18px;color:var(--stem);background:var(--bg);z-index:4;pointer-events:none;place-items:center;display:grid;position:absolute}.axis-marker.skipped{color:var(--muted)}.event-card{text-align:left;background:color-mix(in srgb,var(--stem) 7%,var(--bg));border:1px solid color-mix(in srgb,var(--stem) 35%,var(--line));height:50px;box-shadow:var(--shadow-sm);border-radius:10px;padding:8px 10px;display:block;position:absolute;overflow:hidden}.event-card:hover{box-shadow:var(--shadow)}.event-card.selected{outline:2px solid var(--ink);outline-offset:2px}.event-card.skipped{opacity:.55;border-style:dashed}.event-card.skipped strong{text-decoration:line-through}.event-card strong,.event-card small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.event-card strong{font-size:13px}.event-card small{color:var(--ink-2);margin-top:2px;font-size:11px}.empty-timeline{color:var(--muted);font-size:13px;position:absolute;left:28px}.empty-timeline button{border:1px solid var(--line-strong);background:var(--bg);border-radius:8px;margin-left:8px;padding:5px 8px}.today-line{background:var(--today);pointer-events:none;z-index:2;width:1px;position:absolute}.today-pill{background:var(--today);color:var(--on-solid);pointer-events:none;z-index:2;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:600;position:absolute;transform:translate(-50%)}
