:root{color-scheme:light;--ink:#192721;--muted:#77827b;--line:#e7eae5;--paper:#f7f8f4;--green:#286746;--green-dark:#194c33;--orange:#cb7540}*{box-sizing:border-box}html{min-width:320px;background:var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.app-shell{min-height:100vh}.topbar{height:68px;padding:0 max(28px,calc((100vw - 1120px)/2));display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line)}.wordmark{display:inline-flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none;font-size:16px;font-weight:750;letter-spacing:.02em}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:var(--green);color:#fff}.brand-mark svg{width:20px;height:20px}.logout{border:0;background:transparent;color:var(--green);font-size:13px;font-weight:650}.content{max-width:1120px;margin:0 auto;padding:42px 24px 34px}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin:0 0 27px}.eyebrow{margin:0 0 11px;color:var(--green);font-size:10px;font-weight:800;letter-spacing:.15em}.hero h1{margin:0;font-size:clamp(33px,5vw,48px);line-height:1.16;letter-spacing:-.045em;font-weight:780}.desktop-break:before{content:" ";white-space:pre}.hero-subtitle{margin:13px 0 0;color:var(--muted);font-size:14px}.progress-card{width:min(365px,42%);padding:18px 20px 15px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 5px 18px #233b2708}.progress-head,.progress-foot{display:flex;justify-content:space-between;align-items:center}.progress-head{font-size:13px;color:#536259}.progress-head strong{font-size:20px;color:var(--ink)}.progress-head small,.summary-card small{font-size:13px;color:#87928a;font-weight:500}.progress-track{height:7px;margin:14px 0 9px;border-radius:99px;background:#edf0eb;overflow:hidden}.progress-track span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#36845b,#85ad72);transition:width .25s}.progress-foot{font-size:11px;color:var(--muted)}.sync-label{display:flex;align-items:center;gap:5px;color:var(--green)}.sync-label svg{width:14px;height:14px}.summary-row{display:flex;align-items:center;gap:12px;margin-bottom:26px}.summary-card{display:flex;align-items:center;gap:11px;padding:12px 15px;min-width:185px;background:#fff;border:1px solid var(--line);border-radius:12px}.summary-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px}.summary-icon.green{background:#edf5ee;color:#387a51}.summary-icon.orange{background:#fbf1e9;color:var(--orange)}.summary-card div{display:grid;gap:2px}.summary-card strong{font-size:16px}.summary-card div>span{font-size:11px;color:var(--muted)}.button{display:inline-flex;justify-content:center;align-items:center;gap:7px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#435148;font-size:12px;font-weight:650;padding:10px 13px}.button:hover{border-color:#b7c8b9;background:#fdfefb}.button.primary{background:var(--green);border-color:var(--green);color:#fff}.button:disabled{opacity:.6;cursor:wait}.button.full{width:100%;margin-top:14px}.export-button{margin-left:auto}.section-tabs{display:flex;gap:25px;border-bottom:1px solid var(--line)}.section-tabs button{position:relative;display:flex;align-items:center;gap:7px;border:0;background:none;padding:0 2px 13px;color:#7b867f;font-size:13px;font-weight:650}.section-tabs button.active{color:var(--green-dark)}.section-tabs button.active:after{position:absolute;content:"";height:2px;bottom:-1px;left:0;right:0;background:var(--green);border-radius:2px}.section-tabs button span{padding:2px 6px;border-radius:99px;background:#eef1ed;color:#78837b;font-size:10px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:19px 0 17px}.category-list{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.category-chip{padding:7px 11px;border:1px solid transparent;border-radius:99px;background:#eef1ec;color:#67736b;font-size:11px;white-space:nowrap}.category-chip.selected{background:var(--green);color:#fff}.search-box{display:flex;align-items:center;gap:8px;flex-shrink:0;width:220px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:white;color:#87928a}.search-box input{width:100%;border:0;outline:0;color:var(--ink);font-size:11px}.search-box button{padding:0;border:0;background:none;color:var(--muted);font-size:18px;line-height:1}.list-heading{display:flex;align-items:center;justify-content:space-between;margin:5px 0 12px}.list-heading h2{margin:0;font-size:15px;letter-spacing:-.01em}.list-heading>span{color:var(--muted);font-size:11px}.item-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.item-card{display:flex;gap:11px;min-height:112px;padding:15px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;transition:border-color .16s,background .16s}.item-card:hover{border-color:#ccd8cc}.item-card.is-packed{background:#fbfdf9}.pack-toggle{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;margin-top:1px;border:1.5px solid #cbd3ca;border-radius:6px;background:#fff;color:#fff;padding:1px}.pack-toggle svg{width:14px;height:14px}.pack-toggle.checked{border-color:var(--green);background:var(--green)}.item-main{min-width:0;flex:1}.item-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.item-title-row h3{margin:0;font-size:13px;font-weight:700;line-height:1.5}.is-packed h3{color:#758077}.priority{padding:3px 7px;border-radius:5px;font-size:9px;white-space:nowrap}.priority-must{background:#f8ece7;color:#ab5638}.priority-conditional{background:#f8f1df;color:#9b782f}.priority-optional{background:#eef1ed;color:#68766c}.item-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:5px;color:#8a938c;font-size:10px}.item-meta span+span:before{content:"·";margin-right:7px;color:#bbc2bc}.item-note{margin:8px 0 0;color:#657168;font-size:11px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.item-bottom{display:flex;gap:14px;margin-top:9px;color:#98a199;font-size:10px}.item-bottom b{color:#56635a;font-weight:650}.empty-state{padding:40px;text-align:center;color:var(--muted);font-size:13px}.check-heading{margin:22px 0 14px}.check-heading p{margin:5px 0 0;color:var(--muted);font-size:12px}.check-list{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff}.check-row{display:flex;align-items:center;gap:12px;width:100%;min-height:53px;padding:10px 15px;border:0;border-bottom:1px solid #eef0ec;background:#fff;text-align:left}.check-row:last-child{border-bottom:0}.check-row:hover{background:#fbfcf9}.check-box{display:grid;place-items:center;flex:0 0 19px;width:19px;height:19px;border:1.5px solid #cbd3ca;border-radius:6px;color:#fff}.check-box svg{width:14px;height:14px}.check-box.checked{border-color:var(--green);background:var(--green)}.check-name{flex:1;font-size:12px;font-weight:600}.check-row.done .check-name{color:#859087;text-decoration:line-through}.check-category,.check-priority{color:#89948c;font-size:10px}.footer{display:flex;justify-content:space-between;gap:12px;margin-top:26px;padding-top:14px;border-top:1px solid var(--line);color:#929b94;font-size:10px}.footer span:first-child{display:flex;align-items:center;gap:6px}.footer svg{width:15px;height:15px}.loading-screen,.error-screen{display:grid;place-items:center;min-height:100vh;background:var(--paper);color:var(--muted);font-size:13px}.loading-screen{display:flex;justify-content:center;gap:10px}.spinner{width:20px;height:20px;border:2px solid #dce5dc;border-top-color:var(--green);border-radius:50%;animation:spin .9s linear infinite}.spinner.small{width:14px;height:14px}.error-card,.auth-card{max-width:390px;margin:20px;padding:34px;background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:0 12px 40px #1c30220a}.error-card>svg{color:var(--green)}.error-card h1,.auth-card h1{font-size:24px;letter-spacing:-.03em}.error-card p{margin:0 0 20px;line-height:1.7;font-size:13px;color:var(--muted)}.auth-card{width:min(390px,calc(100% - 32px));margin:0;padding:34px}.auth-card .brand-mark{margin-bottom:24px}.auth-card h1{margin:0;font-size:36px;line-height:1.18}.auth-copy{margin:13px 0 25px;color:var(--muted);font-size:13px;line-height:1.7}.auth-card form{display:grid;gap:8px}.auth-card label{margin-top:9px;color:#59665d;font-size:12px;font-weight:650}.auth-card input{width:100%;height:43px;padding:10px 12px;border:1px solid #dce3dc;border-radius:9px;background:#fff;outline:none;color:var(--ink)}.auth-card input:focus{border-color:#528667;box-shadow:0 0 0 3px #28674614}.privacy-note{display:flex;align-items:center;gap:6px;margin:23px 0 0;color:#87938a;font-size:10px}.privacy-note svg{width:14px;height:14px;color:#48815c}.message{margin:4px 0 0;color:#a94c32;font-size:12px;line-height:1.5}.message[hidden]{display:none}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:740px){.topbar{height:58px;padding:0 18px}.content{padding:29px 16px 26px}.hero{display:block;margin-bottom:18px}.hero h1{font-size:36px}.desktop-break:before{content:""}.desktop-break{display:block}.hero-subtitle{font-size:12px;margin-top:9px}.progress-card{width:100%;margin-top:20px;padding:15px 16px}.summary-row{gap:8px;margin-bottom:21px}.summary-card{min-width:0;flex:1;gap:8px;padding:9px 8px}.summary-icon{width:30px;height:30px}.summary-card strong{font-size:14px}.summary-card div>span{font-size:9px;white-space:nowrap}.export-button{width:40px;height:40px;padding:0;font-size:0;gap:0;flex:0 0 40px}.export-button svg{width:17px}.section-tabs{gap:20px}.toolbar{align-items:flex-start;flex-direction:column;padding:15px 0 13px}.category-list{flex-wrap:nowrap;width:calc(100vw - 32px);overflow:auto;padding-bottom:3px;scrollbar-width:none}.category-list::-webkit-scrollbar{display:none}.category-chip{padding:7px 10px}.search-box{width:100%}.item-grid{grid-template-columns:1fr;gap:8px}.item-card{min-height:100px;padding:13px 12px}.item-title-row h3{font-size:12px}.check-category{display:none}.check-row{gap:10px;padding:10px 12px}.check-name{font-size:11px}.check-priority{font-size:9px}.footer{font-size:9px}.footer span:last-child{text-align:right}.auth-card{padding:28px}.auth-card h1{font-size:32px}}
@media(min-width:741px) and (max-width:960px){.item-grid{grid-template-columns:1fr}.toolbar{align-items:flex-start;flex-direction:column}.search-box{width:100%}}
/* Clear, thumb-friendly editing controls for the trail list. */
.action-bar{display:flex;gap:9px;align-items:center;margin:18px 0 3px}.action-bar .button{min-height:42px;font-size:13px}.action-main{padding-inline:18px}.filter-row{display:flex;align-items:center;justify-content:space-between;color:#66756b;font-size:12px;margin:0 0 12px}.filters{display:flex;gap:6px}.filter-chip{border:0;border-radius:7px;background:transparent;color:#617168;padding:8px 11px}.filter-chip.active{background:#e4eee6;color:#194c33;font-weight:700}.sort-hint{font-size:12px;color:#69776d;margin:0 0 12px}.item-actions{display:flex;align-items:center;gap:6px;margin-top:12px;border-top:1px solid #eef1ed;padding-top:8px}.item-actions button,.category-entry button{min-width:38px;min-height:36px;padding:6px 9px;border:0;border-radius:7px;background:#f1f5ef;color:#315e45;font-size:12px}.item-actions button:disabled{opacity:.35}.item-actions .spacer{flex:1}.drag-handle{display:grid;place-items:center;min-width:35px;min-height:38px;font-size:19px;color:#879a8a;touch-action:none;user-select:none}.drag-handle.dragging{background:#dbe9dc;color:#194c33}.save-alert{display:grid;gap:10px;margin:0 0 18px;padding:13px;background:#fff1e8;border:1px solid #efd2bf;border-radius:10px;color:#7f4227;font-size:13px;line-height:1.5}.save-alert>div{display:flex;gap:8px;flex-wrap:wrap}.sync-error{color:#a13b23}.form-hint{font-size:12px;line-height:1.6;color:#6f7d73}.menu-actions{display:grid;gap:10px}.menu-actions .button{min-height:46px;justify-content:flex-start;font-size:14px}dialog{border:0;border-radius:16px;padding:22px;width:min(600px,calc(100% - 28px));max-height:min(85vh,800px);overflow:auto;box-shadow:0 20px 65px #0b1f1666;color:var(--ink)}dialog::backdrop{background:#12271db3}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modal-head h2{font-size:19px;margin:0}.modal-close{border:0;background:#eef3ed;width:38px;height:38px;border-radius:50%;font-size:22px;color:#3e5d49}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid label{display:grid;gap:6px;font-size:13px;font-weight:650;color:#43574b}.form-grid label.wide{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{width:100%;min-width:0;min-height:44px;padding:10px;border:1px solid #cbd9cc;border-radius:8px;background:#fff;color:#192721;font-size:16px}.form-grid textarea{min-height:90px;resize:vertical}.category-manage{display:grid;gap:8px}.category-entry{display:flex;align-items:center;gap:5px;padding:8px;border-radius:9px;background:#f6f8f4}.category-entry span{flex:1;min-width:0;overflow-wrap:anywhere;font-size:13px;font-weight:650}.category-entry button{background:white}.button:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #7bab86;outline-offset:2px}
@media(max-width:740px){.hero{margin-bottom:14px}.hero h1{font-size:30px}.hero .eyebrow{display:none}.hero-subtitle{margin-top:6px}.progress-card{margin-top:14px}.content{padding-top:20px}.action-bar{position:sticky;top:0;z-index:5;padding:10px 0;background:var(--paper);margin:5px 0 0}.action-bar .button{flex:1;padding-inline:8px}.item-title-row h3{font-size:14px}.item-meta,.item-note,.item-bottom{font-size:12px}.category-chip{font-size:13px;min-height:38px}.search-box input{font-size:16px}.check-name{font-size:13px}.check-row{min-height:52px}.footer{padding-bottom:env(safe-area-inset-bottom)}dialog{padding:18px;max-height:85dvh}.category-entry button{padding-inline:6px;min-width:34px}}
.batch-bar{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:10px 0;color:#315e45;font-size:13px}.batch-bar>span{font-weight:700;margin-right:auto}.batch-bar .button{min-height:38px}.batch-choice{display:grid;place-items:center;align-self:flex-start;min-width:30px;min-height:32px}.batch-choice input{width:20px;height:20px;accent-color:#286746}#batch-move-form label{display:grid;gap:8px;color:#43574b;font-size:14px}#batch-move-form select{width:100%;min-height:44px;padding:8px;border:1px solid #cbd9cc;border-radius:8px;background:#fff;font-size:16px}@media(max-width:740px){.action-bar .button{font-size:12px}.action-bar{gap:5px}.batch-bar .button{flex:1 0 auto}.batch-bar>span{width:100%}}
.route-planner{max-width:800px;margin:22px auto 0}.route-intro h2,.suggestion-head h3,.result-header h3{margin:0;font-size:18px}.route-intro p,.result-header p{color:#69776d;font-size:13px;line-height:1.6}.route-planner form{padding:20px;background:#fff;border:1px solid var(--line);border-radius:14px}.plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.plan-grid label,.plan-category{display:grid;gap:7px;color:#43574b;font-size:13px;font-weight:650}.plan-grid .plan-wide{grid-column:1/-1}.plan-grid input,.plan-grid select,.plan-category select{width:100%;min-width:0;min-height:44px;padding:9px 10px;border:1px solid #cbd9cc;border-radius:8px;color:var(--ink);background:white;font-size:16px}.place-search{display:flex;gap:8px}.place-search input{flex:1;min-width:0}.place-search .button{white-space:nowrap}.plan-conditions{border:0;padding:0;margin:18px 0 8px;display:flex;gap:12px 18px;flex-wrap:wrap;color:#43574b;font-size:13px}.plan-conditions legend{font-weight:700;margin-bottom:9px}.plan-conditions label{display:flex;align-items:center;gap:6px;min-height:30px}.plan-conditions input,.suggestion-row input{width:19px;height:19px;accent-color:#286746;flex-shrink:0}.plan-submit{min-height:44px;padding-inline:22px;font-size:14px}.plan-notice{padding:10px 12px;border-radius:8px;background:#edf4eb;color:#315c3e;font-size:13px;line-height:1.5}.route-result{padding-top:24px}.weather-panel,.plan-warning{margin:14px 0;padding:16px;border-radius:12px;background:#edf4eb;color:#315442;font-size:13px;line-height:1.6}.weather-panel p,.plan-warning p{margin:6px 0}.weather-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:8px}.weather-days>div{display:grid;gap:3px;padding:10px;border-radius:8px;background:#fff}.weather-days small,.weather-credit{font-size:11px;color:#65776a}.plan-warning{background:#fff5e9;color:#77542e}.route-result a{color:#286746;text-decoration:underline}.suggestion-head{display:flex;align-items:center;justify-content:space-between;margin:24px 0 10px}.suggestion-head h3{font-size:16px}.suggestion-head span{font-size:12px;color:#728075}.suggestion-row{display:flex;gap:11px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer}.suggestion-row input{margin:2px 0}.suggestion-row span{display:grid;gap:4px}.suggestion-row strong{font-size:13px;color:#263c2e}.suggestion-row small{font-size:12px;color:#718076;line-height:1.5}.suggestion-row.already{opacity:.6}.plan-category{margin-top:14px;max-width:300px}.route-result>.plan-submit{margin-top:20px}@media(max-width:740px){.section-tabs{gap:12px}.section-tabs button{font-size:12px;white-space:nowrap}.route-planner{margin-top:16px}.route-planner form{padding:15px}.plan-grid{gap:11px}.suggestion-head{align-items:flex-start;gap:10px}.suggestion-head span{text-align:right}.plan-category{max-width:none}}
/* Stack date and duration on narrow screens; iOS date controls have a large intrinsic width. */
.plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.plan-grid>label,.plan-grid>.plan-wide{min-width:0}
.plan-grid input[type="date"]{max-width:100%;min-width:0}
@media(max-width:600px){.plan-grid{grid-template-columns:minmax(0,1fr)}.plan-grid .plan-wide{grid-column:auto}}
