:root{--bg:#f3f5f8;--bg-pattern:none;--surface:#fff;--ink:#151a23;--muted:#5b6474;--rule:#dde2ea;--soft:#e9edf3;--d0:#7a5fc9;--d1:#2f8f22;--d2:#c97800;--d3:#0079c2;--d4:#d1192e;--ok:#2f8f22;--danger:#c62f3b;--on-accent:#fff;--day:var(--d1);--radius:10px;--radius-sm:8px;--mark-radius:9px;--shadow:none;--line-w:6px;--line-style:solid;--font-display:"Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;--display-weight:900;--font-body:"Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;--font-num:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f131a;--surface:#171d27;--ink:#e9edf3;--muted:#9aa4b4;--rule:#2a3241;--soft:#1f2632;--d0:#a48cf0;--d1:#6cc85a;--d2:#f5a623;--d3:#4fb3ff;--d4:#ff6b7a;--ok:#6cc85a;--danger:#ff7a85;--on-accent:#0f131a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f131a;--surface:#171d27;--ink:#e9edf3;--muted:#9aa4b4;--rule:#2a3241;--soft:#1f2632;--d0:#a48cf0;--d1:#6cc85a;--d2:#f5a623;--d3:#4fb3ff;--d4:#ff6b7a;--ok:#6cc85a;--danger:#ff7a85;--on-accent:#0f131a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-skin=notebook]{--bg:#f6f0e1;--bg-pattern:radial-gradient(#7a643c21 1px, transparent 1.4px);--surface:#fffcf4;--ink:#3b3328;--muted:#7a6d5a;--rule:#e6dcc6;--soft:#f0e8d6;--d0:#a0627f;--d1:#5f8c3f;--d2:#b77d22;--d3:#4f7fa6;--d4:#b5643c;--ok:#5f8c3f;--danger:#b4453a;--on-accent:#fffcf4;--radius:18px;--radius-sm:12px;--mark-radius:50%;--shadow:3px 3px 0 #e3d8bf;--line-w:4px;--line-style:dashed;--font-display:"Huninn", "Noto Sans TC", "PingFang TC", system-ui, sans-serif;--display-weight:400;--font-num:"Huninn", "Noto Sans TC", system-ui, sans-serif}@media (prefers-color-scheme:dark){:root[data-skin=notebook]:not([data-theme=light]){--bg:#1e1b16;--bg-pattern:radial-gradient(#efe6d412 1px, transparent 1.4px);--surface:#2a251e;--ink:#efe6d4;--muted:#b3a68f;--rule:#3d362b;--soft:#332d25;--d0:#cf93b0;--d1:#9cc47a;--d2:#e5b45a;--d3:#82b0d6;--d4:#e08f66;--ok:#9cc47a;--danger:#ef8a7e;--on-accent:#1e1b16;--shadow:3px 3px 0 #14110d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-skin=notebook][data-theme=dark]{--bg:#1e1b16;--bg-pattern:radial-gradient(#efe6d412 1px, transparent 1.4px);--surface:#2a251e;--ink:#efe6d4;--muted:#b3a68f;--rule:#3d362b;--soft:#332d25;--d0:#cf93b0;--d1:#9cc47a;--d2:#e5b45a;--d3:#82b0d6;--d4:#e08f66;--ok:#9cc47a;--danger:#ef8a7e;--on-accent:#1e1b16;--shadow:3px 3px 0 #14110d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body{background-color:var(--bg);margin:0}body{color:var(--ink);background-image:var(--bg-pattern);font-family:var(--font-body);padding-top:env(safe-area-inset-top,0px);padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));padding-bottom:calc(84px + env(safe-area-inset-bottom,0px));background-size:18px 18px;font-size:15px;line-height:1.6}body:before{content:"";height:env(safe-area-inset-top,0px);z-index:30;background:var(--bg);position:fixed;inset:0 0 auto}img{max-width:100%}h1,h2,h3{text-wrap:balance;margin:0;line-height:1.3}a{color:inherit}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--day);outline-offset:2px;border-radius:6px}[hidden]{display:none!important}.wrap{max-width:680px;margin:0 auto}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.eyebrow{font-family:var(--font-num);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:12px}.muted{color:var(--muted)}.center-msg{text-align:center;color:var(--muted);justify-items:center;gap:12px;padding:64px 0;display:grid}.trip-head{gap:10px;padding-block:24px 14px;display:grid}.trip-head h1{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:.01em;font-size:clamp(26px,6vw,34px)}.trip-head.compact{gap:4px;padding-block:18px 8px}.trip-head.compact h1{font-size:22px}.trip-head p{color:var(--muted);max-width:60ch;margin:0}.stats{background:var(--rule);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:6px;display:grid;overflow:hidden}.stats>div{background:var(--surface);gap:2px;min-width:0;padding:10px 12px;display:grid}.stats b{font-family:var(--font-num);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:18px}.stats span{color:var(--muted);font-size:12px}@media (width<=440px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);gap:8px;min-width:0;padding:14px;display:grid}.panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);gap:12px;min-width:0;padding:16px;display:grid}.panel>h2,.section-title{font-family:var(--font-display);font-weight:var(--display-weight);font-size:18px}.panel>p{color:var(--muted);margin:0;font-size:14px}.view{gap:16px;padding-top:8px;display:grid}.chip{background:var(--soft);color:var(--muted);white-space:nowrap;border-radius:999px;flex:none;padding:2px 8px;font-size:11px}.btn{border-radius:var(--radius-sm);border:1px solid var(--rule);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:6px 12px;font-size:13px;text-decoration:none;transition:transform .1s;display:inline-flex}.btn:hover{border-color:var(--day)}.btn:active{transform:scale(.96)}.btn svg{flex:none;width:15px;height:15px}.btn.primary,.btn[aria-pressed=true]{background:var(--day);border-color:var(--day);color:var(--on-accent)}.btn.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--rule))}.btn.danger.primary{background:var(--danger);color:var(--on-accent)}.progress{color:var(--muted);align-items:center;gap:10px;font-size:13px;display:flex}.bar{background:var(--soft);border-radius:3px;flex:1;height:6px;overflow:hidden}.bar i{background:var(--day);height:100%;transition:width .3s;display:block}.note{color:var(--muted);border-left:2px solid var(--rule);margin:0;padding-left:10px;font-size:13px}.seg{background:var(--soft);border-radius:calc(var(--radius-sm) + 4px);scrollbar-width:none;gap:4px;padding:4px;display:flex;overflow-x:auto}.seg button{border-radius:var(--radius-sm);cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:0;flex:1 0 auto;padding:7px 12px;font-size:14px}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);font-weight:700;box-shadow:0 1px 2px #00000014}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--soft);padding:8px 6px}th{color:var(--muted);font-size:12px;font-weight:500}td.r,th.r{text-align:right;font-family:var(--font-num);font-variant-numeric:tabular-nums;white-space:nowrap}tfoot td{border-bottom:0;font-weight:700}.hb{background:var(--day);border-radius:4px;min-width:2px;height:8px}code{font-family:var(--font-num);background:var(--soft);border-radius:4px;padding:1px 5px;font-size:.92em}.badge-soon{border:1px dashed var(--muted);color:var(--muted);border-radius:999px;padding:1px 8px;font-size:11px}.days{top:env(safe-area-inset-top,0px);z-index:10;background:var(--bg);background-image:var(--bg-pattern);scrollbar-width:none;background-size:18px 18px;gap:8px;margin-inline:-4px;padding-block:10px;padding-inline:4px;display:flex;position:sticky;overflow-x:auto}.days::-webkit-scrollbar{display:none}.daybtn{border:1px solid var(--rule);background:var(--surface);cursor:pointer;box-shadow:var(--shadow);border-radius:999px;flex:none;align-items:center;gap:8px;padding:6px 14px 6px 6px;display:flex}.daybtn .code{border:3px solid var(--c);width:30px;height:30px;font-family:var(--font-num);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid}.daybtn .lbl{text-align:left;line-height:1.2;display:grid}.daybtn .lbl small{color:var(--muted);font-size:11px}.daybtn[aria-pressed=true]{background:var(--c);border-color:var(--c);color:var(--on-accent)}.daybtn[aria-pressed=true] .code{border-color:var(--on-accent);background:var(--on-accent);color:var(--c)}.daybtn[aria-pressed=true] .lbl small{color:inherit;opacity:.85}.daybtn .today{background:var(--ink);color:var(--bg);border-radius:4px;padding:0 6px;font-size:10px}.dayhead{gap:8px;padding-block:6px 16px;display:grid}.dayhead h2{font-family:var(--font-display);font-weight:var(--display-weight);font-size:20px}.line{padding-left:46px;display:grid;position:relative}.line:before{content:"";border-left:var(--line-w) var(--line-style) var(--day);border-radius:3px;position:absolute;top:18px;bottom:18px;left:18px}.item{min-width:0;position:relative}.stop{padding-block:6px}.mark{border-radius:var(--mark-radius);background:var(--surface);border:3px solid var(--day);z-index:1;align-content:center;place-items:center;width:40px;height:40px;line-height:1;display:grid;position:absolute;top:12px;left:-46px}.mark b{font-family:var(--font-num);color:var(--day);letter-spacing:.04em;font-size:9px}.mark span{font-family:var(--font-num);font-size:15px;font-weight:700}.stop.done .mark{background:var(--day)}.stop.done .mark b,.stop.done .mark span{color:var(--on-accent)}.stop.done .card{opacity:.62}.card .top{align-items:flex-start;gap:10px;display:flex}.card h3{flex:1;min-width:0;font-size:17px;font-weight:700}.goal{margin:0}.meta{color:var(--muted);flex-wrap:wrap;gap:4px 14px;font-size:13px;display:flex}.meta .num{color:var(--ink)}.actions{flex-wrap:wrap;gap:8px;padding-top:2px;display:flex}details.alts{border-top:1px dashed var(--rule);padding-top:8px;font-size:13px}details.alts summary{cursor:pointer;color:var(--day);font-weight:500}details.alts .alt{gap:2px;margin-top:10px;display:grid}details.alts .alt b{font-size:14px}.route{color:var(--muted);gap:10px;padding:8px 0 8px 2px;font-size:13px;display:flex}.route .mode{background:var(--bg);border:2px solid var(--day);width:26px;height:26px;color:var(--day);z-index:1;border-radius:50%;place-items:center;display:grid;position:absolute;top:8px;left:-39px}.route .mode svg{width:14px;height:14px}.route .rt{gap:1px;min-width:0;display:grid}.route .rt b{color:var(--ink);font-weight:500}.memo{padding:8px 0;font-size:13px}.memo .dot{background:var(--surface);border:2px solid var(--day);z-index:1;border-radius:50%;width:10px;height:10px;position:absolute;top:15px;left:-31px}.memo p{color:var(--muted);margin:0}.memo p b{color:var(--ink);margin-right:6px;font-weight:500}.flex{padding-block:6px}.flex .mark{color:var(--day);border-style:dashed;font-size:12px;font-weight:700}.flexbox{border:1px dashed var(--day);border-radius:var(--radius);background:color-mix(in srgb, var(--day) 7%, var(--surface));gap:8px;padding:12px;display:grid}.flexbox>b{font-size:14px}.opt{border-radius:var(--radius-sm);border:1px solid var(--rule);background:var(--surface);cursor:pointer;align-items:flex-start;gap:10px;padding:10px;display:flex}.opt input{accent-color:var(--day);margin-top:5px}.opt .t{gap:2px;min-width:0;display:grid}.opt .t small{color:var(--muted)}.opt:has(input:checked){border-color:var(--day)}.pass{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:minmax(0,1fr) 104px;display:grid;overflow:hidden}.pass .main{gap:10px;min-width:0;padding:14px 16px;display:grid}.pass .stub{border-left:2px dashed var(--rule);text-align:center;background:color-mix(in srgb, var(--day) 8%, var(--surface));align-content:center;gap:6px;padding:14px 12px;display:grid;position:relative}.pass .stub:before,.pass .stub:after{content:"";background:var(--bg);border:1px solid var(--rule);border-radius:50%;width:16px;height:16px;position:absolute;left:-9px}.pass .stub:before{top:-9px}.pass .stub:after{bottom:-9px}.pass .route-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.pass .apt{gap:0;display:grid}.pass .apt b{font-family:var(--font-num);letter-spacing:.02em;font-size:28px;line-height:1.1}.pass .apt span{color:var(--muted);font-size:12px}.pass .apt.to{text-align:right}.pass .path{color:var(--muted);justify-items:center;gap:2px;font-size:11px;display:grid}.pass .path i{border-top:2px dotted var(--rule);width:100%;display:block;position:relative}.pass .path svg{width:18px;height:18px;color:var(--day);background:var(--surface);margin-top:-10px;padding-inline:2px}.pass .times{justify-content:space-between;gap:8px;font-size:13px;display:flex}.pass .times b{font-family:var(--font-num);font-size:16px}.pass .stub small{color:var(--muted);font-size:11px}.pass .stub b{font-family:var(--font-num);font-size:16px}@media (width<=380px){.pass{grid-template-columns:1fr}.pass .stub{border-left:0;border-top:2px dashed var(--rule);grid-auto-flow:column}.pass .stub:before,.pass .stub:after{display:none}}.stay .when{text-align:center;border-radius:var(--radius-sm);background:var(--soft);grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:10px;display:grid}.stay .when b{font-family:var(--font-num);font-size:16px;display:block}.stay .when small,.stay .nights{color:var(--muted);font-size:12px}.kv{color:var(--muted);flex-wrap:wrap;gap:4px 16px;font-size:13px;display:flex}.kv .num{color:var(--ink)}.group{gap:2px;display:grid}.group h3{color:var(--muted);letter-spacing:.05em;padding-top:6px;font-size:13px;font-weight:500}.ck{border-bottom:1px solid var(--soft);align-items:center;gap:10px;padding:9px 4px;display:flex}.ck label{cursor:pointer;flex:1;align-items:center;gap:10px;min-width:0;display:flex}.ck input[type=checkbox]{width:18px;height:18px;accent-color:var(--ok);flex:none}.ck:has(input:checked) label span{color:var(--muted);text-decoration:line-through}.ck .mine{color:var(--muted);border:1px solid var(--rule);border-radius:4px;padding:0 5px;font-size:10px}.ck .del{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:2px 6px;font-size:18px;line-height:1}.addrow{gap:8px;display:flex}.addrow input{border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--bg);flex:1;min-width:0;padding:8px 10px}.fx{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:10px;display:grid}.fx label{color:var(--muted);gap:4px;font-size:12px;display:grid}.fx input{width:100%;font:700 20px var(--font-num);border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--bg);color:var(--ink);padding:10px 12px}.fx .eq{color:var(--muted);padding-bottom:12px}.quick{flex-wrap:wrap;gap:6px;display:flex}.rate{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.rate input{width:90px;font:500 14px var(--font-num);border:1px solid var(--rule);background:var(--bg);color:var(--ink);border-radius:6px;padding:4px 8px}.skins{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.skin{border:2px solid var(--rule);border-radius:var(--radius);cursor:pointer;background:var(--surface);text-align:left;gap:8px;padding:10px;display:grid}.skin[aria-pressed=true]{border-color:var(--day)}.skin .sw{border-radius:8px;height:64px;position:relative;overflow:hidden}.skin .sw.rail{background:#f3f5f8}.skin .sw.rail:before{content:"";background:#2f8f22;border-radius:3px;width:5px;position:absolute;top:8px;bottom:8px;left:18px}.skin .sw.rail:after{content:"D1";color:#2f8f22;text-align:center;background:#fff;border:3px solid #2f8f22;border-radius:5px;width:22px;height:22px;font:700 8px/16px JetBrains Mono,monospace;position:absolute;top:16px;left:9px}.skin .sw.notebook{background:#f6f0e1 radial-gradient(#7a643c2e 1px,#0000 1.4px) 0 0/10px 10px}.skin .sw.notebook:before{content:"";border-left:3px dashed #5f8c3f;position:absolute;top:8px;bottom:8px;left:20px}.skin .sw.notebook:after{content:"";background:#fffcf4;border-radius:12px;height:34px;position:absolute;top:14px;left:34px;right:10px;box-shadow:3px 3px #e3d8bf}.skin b{font-size:14px}.skin small{color:var(--muted);font-size:12px}.triplist{gap:8px;display:grid}.triplist a{border:1px solid var(--rule);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;display:flex}.triplist a[aria-current=true]{border-color:var(--day)}.footnote{color:var(--muted);text-align:center;padding-top:20px;font-size:12px}nav.tabs{z-index:20;background:var(--surface);border-top:1px solid var(--rule);padding:6px max(16px, env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(16px, env(safe-area-inset-left,0px));position:fixed;bottom:0;left:0;right:0}nav.tabs .in{grid-template-columns:repeat(5,1fr);gap:2px;max-width:680px;margin:0 auto;display:grid}nav.tabs a{color:var(--muted);border-radius:var(--radius-sm);justify-items:center;gap:2px;padding:6px 0;font-size:12px;text-decoration:none;display:grid}nav.tabs a svg{width:22px;height:22px}nav.tabs a[aria-current=page]{color:var(--day);font-weight:700}nav.tabs a:active{transform:scale(.94)}.offline{left:50%;bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:25;background:var(--ink);color:var(--bg);border-radius:999px;padding:4px 12px;font-size:12px;position:fixed;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
