:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#edf0e8;--surface:#fbfcf8;--surface-2:#f2f5ec;--surface-3:#e3e8da;--ink:#1c2a21;--muted:#5d6b60;--faint:#87947f;--line:#d3dbca;--accent:#1e6b46;--accent-strong:#145333;--accent-deep:#0f3f27;--accent-soft:#dbead9;--gold:#b5821f;--danger:#b0452e;--danger-soft:#f7e6df;--easy:#3f7f5a;--moderate:#96781f;--hard:#b05a24;--expert:#8d3050;--radius-lg:20px;--radius-md:14px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:28px;--space-7:40px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--ease-out:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{background:var(--ground);color:var(--ink);font-family:var(--font-sans);margin:0;line-height:1.55}::selection{background:var(--accent-soft);color:var(--accent-deep)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line);border-radius:var(--radius-pill)}::-webkit-scrollbar-track{background:0 0}#app{max-width:1120px;margin:0 auto;padding:24px 20px 64px}.app-header{background:var(--accent-deep);color:#f3f6ee;border-radius:var(--radius-lg);margin-bottom:var(--space-6);animation:header-in .5s var(--ease-out) both;padding:36px 32px 32px;position:relative;overflow:hidden}@keyframes header-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.header-contours{pointer-events:none;width:100%;height:100%;animation:22s linear infinite alternate contour-drift;position:absolute;inset:0}@keyframes contour-drift{0%{transform:translate(0)scale(1)}to{transform:translate(-14px)scale(1.02)}}.header-contours path{fill:none;stroke:#ffffff1a;stroke-width:2px;stroke-linecap:round}.header-contours .header-ridge{stroke:#ffffff3d;stroke-width:2.5px}.brand-row{align-items:center;gap:16px;display:flex;position:relative}.brand-mark{color:#eaf2e5;background:#ffffff1f;border-radius:16px;flex:none;justify-content:center;align-items:center;width:54px;height:54px;display:inline-flex}.brand-mark svg{width:36px;height:36px}.brand-text h1{letter-spacing:-.03em;margin:0 0 2px;font-size:clamp(1.5rem,1rem + 1.6vw,2rem);font-weight:800;line-height:1.15}.brand-text .subtitle{color:#eaf2e5c2;margin:0;font-size:.95rem}.card{background:var(--surface);border-radius:var(--radius-lg);margin-bottom:var(--space-6);animation:card-in .5s var(--ease-out) both;padding:24px}@keyframes card-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}#form-section{animation-delay:30ms}#list-section{animation-delay:80ms}#stats-section{animation-delay:.13s}#routes-section{animation-delay:.18s}#wish-section{animation-delay:.23s}#data-section{animation-delay:.28s}.workspace-grid .card,.split-grid .card{margin-bottom:0}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.section-head h2{letter-spacing:-.015em;align-items:center;gap:8px;margin:0;font-size:1.16rem;font-weight:800;display:flex}.section-head select{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:4px 10px;font-size:.82rem;font-weight:600}.section-head h2:before{content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 14'%3E%3Cpath d='M1 9 C5 5 8 11 12 7 S19 4 25 7' fill='none' stroke='%231e6b46' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") 50%/contain no-repeat;flex:none;width:24px;height:12px}.section-head .muted{font-size:.82rem}.muted{color:var(--muted)}.hint,.hint-inline{color:var(--muted);font-size:.82rem}.hint{margin:0 0 14px}.hint-inline{font-weight:400}.req{color:var(--danger)}.form-row{gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.form-row label{color:var(--muted);flex-direction:column;gap:6px;min-width:118px;font-size:.8rem;font-weight:600;display:flex}.form-row label.grow{flex:220px}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface-2);border-radius:var(--radius-md);accent-color:var(--accent);border:1px solid #0000;padding:9px 12px;transition:background .15s,border-color .15s,box-shadow .15s}input:hover,select:hover,textarea:hover{background:var(--surface-3)}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;background:#fff}input::placeholder,textarea::placeholder{color:var(--faint)}textarea{resize:vertical}.form-actions{gap:10px;display:flex}.form-error{color:var(--danger);margin:4px 0 10px;font-size:.9rem;font-weight:600}button{font:inherit;cursor:pointer;background:var(--surface-3);color:var(--ink);border-radius:var(--radius-pill);transition:background .15s ease, transform .12s var(--ease-out);border:0;padding:8px 16px;font-weight:600}button:hover{background:var(--line)}button:active{transform:translateY(1px)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.primary{background:var(--accent);color:#fff}button.primary:hover{background:var(--accent-strong)}button.danger{color:var(--danger);background:0 0}button.danger:hover{background:var(--danger-soft);color:var(--danger)}button:disabled{opacity:.55;cursor:default;transform:none}.hike-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.hike-item{background:var(--surface-2);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:14px;padding:14px 16px 14px 20px;transition:background .15s;display:flex;position:relative}.hike-item:hover{background:var(--surface-3)}.hike-item.active{background:var(--accent-soft)}.hike-item.active:before{content:"";border-radius:0 var(--radius-pill) var(--radius-pill) 0;background:var(--accent);width:4px;position:absolute;top:12%;bottom:12%;left:0}.hike-main{min-width:0}.hike-title{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;display:flex}.hike-title strong{font-size:1.02rem;font-weight:700}.hike-meta{flex-wrap:wrap;gap:6px 16px;font-size:.84rem;display:flex}.hike-actions{flex-shrink:0;gap:6px;display:flex}.hike-actions button{padding:5px 12px;font-size:.82rem;font-weight:600}.badge{border-radius:var(--radius-pill);white-space:nowrap;padding:2px 10px;font-size:.75rem;font-weight:600;line-height:1.7;display:inline-block}.badge.region{background:var(--surface-3);color:var(--muted)}.badge.diff-easy{color:var(--easy);background:#e1efe2}.badge.diff-moderate{color:var(--moderate);background:#f3edda}.badge.diff-hard{color:var(--hard);background:#f9e8db}.badge.diff-expert{color:var(--expert);background:#f6e2e9}.badge.prio-1{background:var(--surface-3);color:var(--muted)}.badge.prio-2{color:var(--moderate);background:#f3edda}.badge.prio-3{color:var(--hard);background:#f9e8db}.stars{color:var(--gold);letter-spacing:1px;font-size:.9em}.detail-name{letter-spacing:-.02em;margin:0 0 14px;font-size:1.25rem;font-weight:800}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:0 0 18px;display:grid}.detail-grid div{background:var(--surface-2);border-radius:10px;padding:10px 12px}.detail-grid dt{color:var(--muted);font-size:.74rem;font-weight:600}.detail-grid dd{margin:2px 0 0;font-weight:600}.detail-note h4{color:var(--muted);margin:0 0 6px;font-size:.84rem;font-weight:700}.detail-note p{white-space:pre-wrap;background:var(--surface-2);border-radius:10px;margin:0;padding:10px 12px}.detail-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.filter-bar{background:var(--surface-2);border-radius:var(--radius-md);flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:14px;padding:14px;display:flex}.filter-bar label{color:var(--muted);flex-direction:column;gap:4px;font-size:.74rem;font-weight:600;display:flex}.filter-bar label.grow{flex:180px}.filter-bar input,.filter-bar select{padding:6px 10px;font-size:.86rem}#filter-reset{padding:6px 14px;font-size:.84rem}#filter-reset:disabled{opacity:.5;cursor:default}.stat-grid{margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;display:grid}.stat-tile{background:var(--surface-2);border-radius:var(--radius-md);flex-direction:column;gap:2px;padding:14px 16px;transition:background .15s;display:flex}.stat-tile:hover{background:var(--surface-3)}.stat-label{color:var(--muted);font-size:.74rem;font-weight:600}.stat-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.3rem;font-weight:800}.stat-sub{color:var(--muted);font-size:.74rem}.stat-tile.stat-hero{background:var(--accent);grid-column:span 2;position:relative;overflow:hidden}.stat-tile.stat-hero:after{content:"";opacity:.14;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 90'%3E%3Cpath d='M-10 66 C 36 56 64 78 96 64 S 168 44 230 58' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M-10 50 C 24 42 52 60 82 48 S 150 30 230 42' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M-10 34 C 20 26 44 42 68 32 S 128 18 230 28' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M-10 18 C 14 12 30 24 48 16 S 96 6 230 14' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") 50%/cover no-repeat;position:absolute;inset:0}.stat-tile.stat-hero .stat-label,.stat-tile.stat-hero .stat-value,.stat-tile.stat-hero .stat-sub{z-index:1;position:relative}.stat-tile.stat-hero .stat-label{color:#fffc}.stat-tile.stat-hero .stat-value{color:#fff;font-size:1.9rem}.stat-tile.stat-hero .stat-sub{color:#ffffffb8}.stat-block{margin-bottom:var(--space-6)}.stat-block h3{color:var(--muted);margin:0 0 10px;font-size:.9rem;font-weight:700}.stats-empty{margin:0;font-size:.86rem}.bar-row{grid-template-columns:minmax(74px,116px) 1fr minmax(96px,auto);align-items:center;gap:10px;margin-bottom:8px;font-size:.84rem;display:grid}.bar-label{white-space:nowrap;text-overflow:ellipsis;color:var(--ink);font-weight:600;overflow:hidden}.bar-track{border-radius:var(--radius-pill);background:var(--surface-3);height:10px;overflow:hidden}.bar-fill{border-radius:var(--radius-pill);background:var(--accent);height:100%;transition:width .3s var(--ease-out)}.bar-fill.diff-easy{background:var(--easy)}.bar-fill.diff-moderate{background:var(--moderate)}.bar-fill.diff-hard{background:var(--hard)}.bar-fill.diff-expert{background:var(--expert)}.bar-value{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.month-chart{align-items:flex-end;gap:4px;height:150px;padding-top:8px;display:flex}.month-col{flex-direction:column;flex:1 1 0;justify-content:flex-end;align-items:center;gap:4px;min-width:0;height:100%;display:flex}.month-bar-wrap{background:var(--surface-3);border-radius:6px;flex:auto;align-items:flex-end;width:100%;display:flex;overflow:hidden}.month-bar{background:var(--accent);width:100%;transition:height .3s var(--ease-out), background .15s ease;border-radius:6px 6px 0 0}.month-col:hover .month-bar{background:var(--accent-strong)}.month-col:hover .month-label{color:var(--ink)}.month-label{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.68rem}.record-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.record-card{background:var(--surface-2);border-radius:var(--radius-md);padding:14px 16px 14px 20px;position:relative}.record-card:before{content:"";border-radius:0 var(--radius-pill) var(--radius-pill) 0;background:var(--accent);width:4px;position:absolute;top:16%;bottom:16%;left:0}.record-card .record-title{color:var(--muted);font-size:.74rem;font-weight:600}.record-card .record-name{margin-top:2px;font-weight:700}.record-card .record-meta{color:var(--muted);font-size:.78rem}.goal-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px;display:flex}.goal-head h3{color:var(--ink);margin:0;font-size:.95rem}.goal-head h3 .muted{font-weight:500}.goal-inputs{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.goal-input{color:var(--muted);flex-direction:column;gap:4px;font-size:.76rem;font-weight:600;display:flex}.goal-input input,.goal-input select{width:110px;padding:6px 10px}.goal-progress{border-radius:var(--radius-pill);background:var(--surface-3);height:14px;overflow:hidden}.goal-fill{background:var(--accent);border-radius:var(--radius-pill);height:100%;transition:width .3s var(--ease-out)}.goal-fill.reached{background:var(--gold)}.goal-caption{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:6px;font-size:.8rem;display:flex}.field-hint{color:var(--danger);margin:6px 0 0;font-size:.8rem}.stat-value.up{color:var(--easy)}.stat-value.down{color:var(--hard)}.route-grid{grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:10px;display:grid}.route-card{text-align:left;background:var(--surface-2);border-radius:var(--radius-md);width:100%;color:var(--ink);transition:background .15s ease, transform .15s var(--ease-out);flex-direction:column;align-items:flex-start;gap:8px;padding:16px;display:flex}.route-card:hover{background:var(--accent-soft);transform:translateY(-2px)}.route-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.route-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.route-name{font-weight:700}.route-stats{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 12px;font-size:.8rem;display:flex}.route-stats strong{color:var(--accent);font-size:.95rem}.route-last{font-size:.76rem}.wish-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.wish-item{background:var(--surface-2);border-radius:var(--radius-md);justify-content:space-between;align-items:flex-start;gap:14px;padding:14px 16px 14px 20px;transition:background .15s;display:flex;position:relative}.wish-item:hover{background:var(--surface-3)}.wish-item.active{background:var(--accent-soft)}.wish-item:before{content:"";border-radius:0 var(--radius-pill) var(--radius-pill) 0;background:var(--muted);width:4px;position:absolute;top:14%;bottom:14%;left:0}.wish-item.prio-2:before{background:var(--moderate)}.wish-item.prio-3:before{background:var(--hard)}.wish-item.active:before{background:var(--accent)}.wish-main{min-width:0}.wish-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.wish-meta{flex-wrap:wrap;gap:6px 14px;margin-top:3px;font-size:.8rem;display:flex}.wish-note{white-space:pre-wrap;margin:6px 0 0;font-size:.84rem}.wish-actions{flex-wrap:wrap;flex-shrink:0;gap:6px;display:flex}.wish-actions button{padding:5px 12px;font-size:.82rem;font-weight:600}.empty-state{background:var(--surface-2);border-radius:var(--radius-md);text-align:center;margin-bottom:14px;padding:36px 20px 28px}.empty-state:before{content:"";opacity:.9;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 88'%3E%3Cpath d='M10 70 C36 58 52 80 74 68 S112 52 130 64' fill='none' stroke='%238fa88f' stroke-width='2.5' stroke-linecap='round'/%3E%3Cpath d='M8 56 C30 46 54 66 74 54 S112 38 132 50' fill='none' stroke='%236f9279' stroke-width='2.5' stroke-linecap='round'/%3E%3Cpath d='M16 42 C34 32 52 50 70 40 S100 26 118 36' fill='none' stroke='%231e6b46' stroke-width='2.5' stroke-linecap='round'/%3E%3Cpath d='M40 28 C52 22 62 30 72 24 S92 14 102 20' fill='none' stroke='%231e6b46' stroke-width='2.5' stroke-linecap='round'/%3E%3Ccircle cx='74' cy='25' r='3.2' fill='%23b5821f'/%3E%3C/svg%3E") 50%/contain no-repeat;width:140px;height:88px;margin:0 auto 14px;display:block}.empty-state .empty-title{margin:0 0 4px;font-size:1.02rem;font-weight:800}.empty-state .empty-text{margin:0 0 14px;font-size:.88rem}.empty-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.data-actions{flex-wrap:wrap;gap:10px;display:flex}body.busy,body.busy .data-actions button{cursor:progress}.notice{margin-bottom:var(--space-6);border-radius:var(--radius-md);color:#6b5310;background:#f6efd8;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;font-size:.88rem;font-weight:600;display:flex}.notice-error{background:var(--danger-soft);color:#8a3320}.notice-text{flex:320px;min-width:0}.notice-actions{flex-wrap:wrap;gap:8px;display:flex}.notice-actions button{padding:4px 12px;font-size:.8rem}.toast-host{z-index:50;pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:fixed;bottom:16px;right:16px}.toast{pointer-events:auto;cursor:pointer;border-radius:var(--radius-md);background:var(--ink);color:#f6f8f2;overflow-wrap:anywhere;max-width:min(88vw,340px);animation:toast-in .2s var(--ease-out);padding:10px 14px;font-size:.86rem;box-shadow:0 10px 30px #1b2a2138}.toast-success{background:var(--accent-strong)}.toast-error{background:var(--danger)}.toast-out{opacity:0;pointer-events:none;transition:opacity .22s,transform .22s;transform:translateY(6px)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.workspace-grid{gap:var(--space-6);margin-bottom:var(--space-6);grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;display:grid}.workspace-left{gap:var(--space-6);flex-direction:column;display:flex;position:sticky;top:16px}.split-grid{gap:var(--space-6);margin-bottom:var(--space-6);grid-template-columns:1fr 1fr;display:grid}@media (width<=900px){.workspace-grid{grid-template-columns:1fr}.workspace-left{position:static}.split-grid{grid-template-columns:1fr}}@media (width<=640px){#app{padding:16px 12px 56px}.app-header{padding:26px 20px 24px}.brand-mark{border-radius:14px;width:44px;height:44px}.brand-mark svg{width:30px;height:30px}.brand-text h1{font-size:1.42rem}.brand-text .subtitle{font-size:.86rem}.card{padding:18px 16px}.form-row{gap:10px}.form-row label,.form-row label.grow{flex:100%;min-width:0}.filter-bar label,.filter-bar label.grow{flex:46%;min-width:0}.filter-bar label.grow{flex-basis:100%}.filter-bar{gap:8px;padding:10px}#filter-reset{flex:100%}.goal-head{align-items:stretch}.goal-inputs{width:100%}.goal-input{flex:120px}.goal-input input,.goal-input select{width:100%}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(104px,1fr))}.stat-tile.stat-hero{grid-column:1/-1}.record-grid,.route-grid{grid-template-columns:1fr}.data-actions{flex-direction:column}.data-actions button{width:100%}.hike-item{flex-direction:column;align-items:stretch}.hike-actions{flex-wrap:wrap;justify-content:flex-end}.detail-grid{grid-template-columns:1fr 1fr}.wish-item{flex-direction:column;align-items:stretch}.wish-actions{justify-content:flex-end}.bar-row{grid-template-columns:minmax(58px,84px) 1fr auto}}@media (width<=400px){.filter-bar label,.filter-bar label.grow{flex:100%}.detail-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.hike-title strong,.detail-name,.detail-note p,.route-name,.bar-label,.record-name{overflow-wrap:anywhere;word-break:break-word}
