:root{--bg: #ffffff;--fg: #1a1a1a;--muted: #6b6b6b;--line: #e4e4e4;--accent: #1f5f8b;--accent-fg: #ffffff;--card: #fafafa;--warn-bg: #fff4d6;--warn-fg: #6b4a00;--radius: 12px;--gap: 12px;--font: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:var(--font);font-size:17px;line-height:1.4}#app{min-height:100vh;display:flex;flex-direction:column;padding-bottom:72px}.view{padding:16px;display:flex;flex-direction:column;gap:var(--gap);max-width:560px;width:100%;margin:0 auto}h1{font-size:1.35rem;margin:4px 0 0}h1.tagline{font-size:1.3rem;line-height:1.3}h2{font-size:1.05rem;margin:0}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:8px;width:100%;text-align:left;color:inherit;font:inherit}button.card{cursor:pointer}.label{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.big{font-size:1.35rem;font-weight:600}.muted{color:var(--muted)}.small{font-size:.9rem}.accent{color:var(--accent)}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row.between{justify-content:space-between}.hidden{display:none}.tasks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.task{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:inherit;font:inherit;text-align:left;cursor:pointer;min-height:52px}.task .box{width:26px;height:26px;border:2px solid var(--accent);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:var(--accent-fg);flex:none}.task.done .box{background:var(--accent)}.task.done .task-label{text-decoration:line-through;color:var(--muted)}.budget-editor{gap:12px}.budget-list{display:flex;flex-direction:column;gap:10px}.budget-row{border-top:1px solid var(--line);padding-top:8px;display:flex;flex-direction:column;gap:6px}.field{display:flex;flex-direction:column;gap:2px;font-size:.85rem;color:var(--muted);flex:1;min-width:80px}input[type=number],input[type=text],select{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);min-width:0;flex:1}.check-inline{display:inline-flex;align-items:center;gap:6px;font-size:.9rem}.badge{font-size:.75rem;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}.badge-confirmed{border-color:var(--accent);color:var(--accent)}.badge-estimate{background:var(--warn-bg);color:var(--warn-fg);border-color:transparent}button{font:inherit;padding:10px 14px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--fg);cursor:pointer;min-height:44px}button.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.code{display:block;word-break:break-all;font-size:.8rem;padding:8px;background:var(--bg);border:1px dashed var(--line);border-radius:8px;user-select:all}.about{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0}.about dt{color:var(--muted)}.about dd{margin:0}.nav{position:fixed;bottom:0;left:0;right:0;display:flex;border-top:1px solid var(--line);background:var(--bg)}.nav a{flex:1;text-align:center;padding:14px 8px;text-decoration:none;color:var(--muted);font-weight:600}.nav a.active{color:var(--accent)}.offline{background:var(--warn-bg);color:var(--warn-fg);padding:10px 16px;font-size:.95rem;text-align:center}.save-failed{background:#fde2e2;color:#7a1f1f;padding:10px 16px;font-size:.95rem;text-align:center}.notice{background:var(--warn-bg);color:var(--warn-fg);padding:10px 16px;font-size:.95rem;display:flex;gap:12px;align-items:center;justify-content:space-between}.notice-close{min-height:0;padding:6px 10px;background:transparent;border-color:var(--warn-fg);color:var(--warn-fg)}.toast-host{position:fixed;left:0;right:0;bottom:64px;display:flex;justify-content:center;pointer-events:none;padding:0 16px;z-index:10}.toast{pointer-events:auto;background:var(--fg);color:var(--bg);padding:10px 14px;border-radius:10px;display:flex;gap:12px;align-items:center;max-width:560px;width:100%}.toast-action{background:transparent;border:1px solid var(--bg);color:var(--bg);padding:6px 10px;min-height:0}.plan-inputs .field{display:flex;flex-direction:column;gap:4px}.plan-inputs select,.plan-inputs input[type=date]{font:inherit;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);min-height:44px}.chips{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.chips legend{width:100%;margin-bottom:4px}.chip{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;min-height:44px}.card.warn{background:var(--warn-bg);color:var(--warn-fg)}.notice-plain{background:var(--bg)}.plan-days{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--gap)}.plan-day h2{font-size:1.05rem;margin:0}.slot{border-top:1px solid var(--line);padding-top:8px}.slot-gap .muted{font-style:italic}.stops{margin:4px 0 0;padding-left:18px}.stops .ko{display:block;color:var(--muted)}.plan-warnings ul,.plan-book ul{margin:0;padding-left:18px}.chips .chip{width:auto;flex:0 0 auto}.next-up .big{font-size:1.15rem;font-weight:600}.slot-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.done{display:inline-flex;align-items:center;gap:6px;min-height:44px}.slot.is-done .stops,.slot.is-done>.muted{opacity:.55}.place{margin-bottom:8px}.place-en{display:block;font-weight:600}.place-actions,.place-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.mini{font:inherit;font-size:.85rem;padding:8px 10px;min-height:40px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--accent);text-decoration:none;display:inline-flex;align-items:center}.copy-fallback{position:fixed;left:-9999px}@media print{.no-print,.nav,.offline,.save-failed,.notice,.toast{display:none!important}.place-links .mini{border:0;padding:0 8px 0 0;min-height:0;color:#1f5f8b;text-decoration:underline}.card{break-inside:avoid;border-color:#999;background:#fff}.done input{display:none}.slot[data-check=done] .slot-head .label:after{content:"  [x] done"}.slot[data-check=open] .slot-head .label:after{content:"  [ ]"}.done span{display:none}body{font-size:11pt}}.verify-banner{background:#fff4d6;color:#5a4300;border-bottom:2px solid #c99a00;padding:10px 16px;font-size:.95rem;font-weight:600;text-align:center}
