:root{--green:#1f7a4d;--bg:#f6f4ee;--card:#fff;--ink:#1d2a22;--mute:#667;--line:#e4e0d4}@media (prefers-color-scheme: dark){:root{--bg:#121a15;--card:#1b261f;--ink:#e9efe9;--mute:#9aa8a0;--line:#2b3a31}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.4 system-ui,sans-serif}.app{max-width:720px;margin:0 auto;padding-bottom:env(safe-area-inset-bottom)}.pad{padding:1rem}header{position:sticky;top:0;z-index:5;background:var(--green);color:#fff;padding:.7rem 1rem;padding-top:calc(.7rem + env(safe-area-inset-top))}header h1{margin:0;font-size:1.1rem}.sync{font-size:.75rem;opacity:.9}.sync.pending,.sync.error{color:#ffd98a}nav{display:flex;background:var(--card);border-bottom:1px solid var(--line)}nav button{flex:1;border:0;border-radius:0;background:none;color:var(--mute);padding:.5rem .1rem;font-size:.72rem;display:flex;flex-direction:column;align-items:center;gap:2px}nav button span{font-size:1.2rem}nav button.on{color:var(--green);font-weight:600;box-shadow:inset 0 -3px var(--green)}main{padding:.8rem;display:grid;grid-template-columns:minmax(0,1fr);gap:.8rem}main>*{min-width:0}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.8rem;margin:0}ul.card{padding:.3rem .8rem}ul{list-style:none;padding:0;margin:.4rem 0}h2{margin:.1rem 0;font-size:1.1rem}small{color:var(--mute);display:block}.dayhead{cursor:pointer}.notes{color:var(--mute);margin:.3rem 0}.item{display:flex;gap:.6rem;align-items:flex-start;padding:.55rem 0;border-top:1px solid var(--line);cursor:pointer}.item .ico{font-size:1.3rem}.item p{margin:.2rem 0 0;font-size:.9rem;color:var(--mute)}.item.booked strong{color:var(--green)}.item.done{opacity:.55}.item a{text-decoration:none;font-size:1.3rem}.when{margin:-.3rem 0 .4rem 2rem}.grow{flex:1}.adds{display:flex;gap:.4rem}button{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:.45rem .8rem;cursor:pointer}button.primary{background:var(--green);color:#fff;border-color:var(--green)}button.danger{color:#b3261e}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0007;display:flex;align-items:flex-end;justify-content:center;z-index:10}.modal{background:var(--card);width:100%;max-width:720px;max-height:92vh;overflow:auto;border-radius:16px 16px 0 0;padding:1rem;display:grid;gap:.6rem}label{display:grid;gap:.2rem;font-size:.85rem;color:var(--mute)}input,select,textarea{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:.5rem}.row{display:flex;gap:.5rem;align-items:center}.blocked{color:#b3261e;font-weight:600;margin:.3rem 0}.travel{margin:.3rem 0}header .who{color:#fff;opacity:.85}.item,.dayhead{cursor:pointer}.readonly .item,.readonly .dayhead{cursor:default}header .where{color:#fff;font-weight:600;margin:.1rem 0}.card.past{opacity:.6}.card.today{border:2px solid var(--green)}.card[id=current-day]{scroll-margin-top:6rem}.badge{color:var(--green);letter-spacing:.04em}.pri{font-size:.65rem;margin-left:.4rem;padding:.05rem .35rem;border-radius:999px;vertical-align:middle;letter-spacing:.03em}.pri.must{background:#ffe9a8;color:#6a4b00}.pri.nice{background:var(--bg);color:var(--mute);border:1px solid var(--line)}details.nice{margin:.2rem 0}details.nice summary{cursor:pointer;color:var(--mute);font-size:.9rem;padding:.3rem 0}.dot{background:#c62828;color:#fff;border-radius:999px;font-size:.65rem;padding:0 .35rem;margin-left:.2rem}button.decide{text-align:left;background:#fff4d6;border-color:#e8c766;color:#5a4300;margin:.4rem 0;width:100%}button.decide.done{background:var(--bg);color:var(--mute);border-color:var(--line)}.decision.decided{opacity:.85}.options{margin:.5rem 0;display:grid;gap:.5rem}.option{border:1px solid var(--line);border-radius:10px;padding:.6rem .7rem}.option p{margin:.2rem 0 0;font-size:.9rem;color:var(--mute)}.option.chosen{border:2px solid var(--green)}.suggest{background:var(--bg);border-radius:8px;padding:.5rem .7rem;margin:.4rem 0}.links{margin:.3rem 0}.links li{padding:.15rem 0}.item a+a{margin-left:.2rem}.option{cursor:pointer}.readonly .option{cursor:default}details.hotels{margin:.2rem 0;border-top:1px solid var(--line)}details.hotels summary{cursor:pointer;padding:.55rem 0;list-style:none;display:flex;gap:.3rem;white-space:nowrap;overflow:hidden}details.hotels summary::-webkit-details-marker{display:none}details.hotels summary:after{content:"▾";margin-left:auto;color:var(--mute);padding-left:.4rem}details.hotels[open] summary:after{content:"▴"}details.hotels .names{color:var(--mute);flex:1;min-width:0;white-space:nowrap;overflow-x:auto;scrollbar-width:none}details.hotels .names::-webkit-scrollbar{display:none}.item .grow{min-width:0}
