:root{
  --bg:#f7f2e8;--card:#fffdf8;--ink:#17362e;--muted:#6f786f;--accent:#d98b55;
  --soft:#edf2ec;--line:#dfe4dc;--danger:#b65b4c;--warn:#f5ead8;--ok:#e8f2e8
}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(180deg,#fbf8f3 0%,var(--bg) 100%);color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
.app{min-height:100vh;display:flex;justify-content:center}
.shell{width:min(820px,100%);padding:22px 18px 60px}
.brand{text-align:center;font-weight:900;letter-spacing:.16em;font-size:14px;margin-bottom:14px}
.progress{height:4px;background:#e4e5de;border-radius:8px;overflow:hidden;margin:0 5px 28px}.progress span{display:block;height:100%;background:var(--accent);transition:.25s}
.card{background:var(--card);border:1px solid var(--line);border-radius:28px;padding:30px 26px;box-shadow:0 12px 35px #17352d0b}
.mascot{text-align:center;font-size:58px;margin:2px 0 14px}
h1,h2{text-align:center;letter-spacing:-.035em;margin:0 0 12px}
h1{font-size:38px;line-height:1.08}h2{font-size:30px}
.lead{text-align:center;color:var(--muted);line-height:1.6;max-width:560px;margin:0 auto 24px}
.small{text-align:center;color:var(--muted);font-size:12px;margin-top:13px}
.field{margin:18px 0}.field label{display:block;font-weight:750;margin-bottom:8px}
.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:15px;background:#fff;padding:15px 16px;outline:none;font:inherit}
.field textarea{min-height:115px;resize:vertical}
.actions{display:flex;gap:10px;margin-top:24px}
.btn{border:0;border-radius:15px;padding:14px 18px;font-weight:800;cursor:pointer}
.primary{background:var(--ink);color:#fff;flex:1}.secondary{background:var(--soft);color:var(--ink)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.choice{border:1px solid var(--line);background:#fff;border-radius:16px;padding:16px;text-align:left;font-weight:750;cursor:pointer}
.choice.selected{border:2px solid var(--ink);background:#eaf5f3}
.counter{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);background:#fff;border-radius:16px;padding:13px 15px;margin:10px 0}
.controls{display:flex;align-items:center;gap:15px}.round{width:32px;height:32px;border:0;border-radius:50%;background:var(--soft);font-weight:900;cursor:pointer}
.slider{width:100%}.slider-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin-top:7px}
.note{background:#eaf5f3;border-radius:18px;padding:16px;margin:18px 0;line-height:1.5}
.warn{background:var(--warn)}
.eyebrow{text-align:center;color:var(--muted);font-size:13px;font-weight:800;letter-spacing:.05em;margin-bottom:8px}
.day{margin-top:30px}.day-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:10px}
.day-title{font-size:12px;font-weight:900;letter-spacing:.12em;color:var(--muted)}
.day-summary{font-weight:800;font-size:18px}
.day-tools{display:flex;gap:6px;flex-wrap:wrap}
.pill{font-size:11px;border:1px solid var(--line);border-radius:999px;padding:7px 9px;background:#fff;cursor:pointer}
.activity{background:#fff;border:1px solid var(--line);border-radius:19px;padding:17px;margin:10px 0}
.activity h3{margin:2px 0 6px;font-size:18px}.meta{font-size:13px;color:var(--muted);line-height:1.55}
.route{font-size:12px;color:var(--muted);margin:8px 0 2px;padding-left:6px}
.why{margin-top:11px;padding:11px 12px;background:#F6F2EC;border-radius:12px;font-size:13px;line-height:1.5}
.details{margin-top:11px;border-top:1px solid var(--line);padding-top:10px}.details summary{cursor:pointer;font-weight:800;font-size:13px}
.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px;font-size:12px;color:var(--muted)}
.activity-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}
.mini{font-size:12px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:#fff;cursor:pointer}.remove{color:var(--danger)}
.chat{display:flex;gap:8px;margin-top:22px}.chat input{flex:1;padding:13px;border:1px solid var(--line);border-radius:14px}
.chat button{border:0;border-radius:14px;background:var(--accent);color:white;padding:0 17px;font-weight:900}
.switchrow{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid var(--line);background:#fff;border-radius:16px;padding:14px 15px;margin:10px 0}
.tagbar{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:15px}.tag{background:#fff;border:1px solid var(--line);padding:7px 10px;border-radius:999px;font-size:12px;color:var(--muted)}
.weekstrip{display:flex;gap:8px;overflow-x:auto;padding:4px 0 10px;margin:10px 0 20px;scrollbar-width:none}.weekstrip::-webkit-scrollbar{display:none}
.weekday{min-width:118px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px}.weekday strong{display:block;font-size:13px;margin-bottom:4px}.weekday span{font-size:12px;color:var(--muted)}
.day-stats{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}.stat{font-size:11px;background:#F6F2EC;border-radius:999px;padding:7px 9px;color:var(--muted)}
.activity-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.badge{font-size:11px;border-radius:999px;background:#eaf5f3;padding:6px 8px;white-space:nowrap}
.syrah-tip{margin-top:10px;padding:10px 12px;border-left:3px solid #E5B26B;background:#f0faf8;border-radius:10px;font-size:13px;line-height:1.45}
.activity.locked{outline:2px solid #d8b57f;background:#fffaf1}
.activity.removed{display:none}


.mascot-mark{width:96px;height:96px;border-radius:50%;margin:2px auto 16px;background:#F6F2EC;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 6px 18px rgba(15,42,58,.08),inset 0 0 0 1px #dbe5e3}.mascot-img{width:94%;height:94%;object-fit:contain;object-position:center}

.mascot-bandana{position:absolute;bottom:3px;left:28px;width:27px;height:19px;background:#27A69A;clip-path:polygon(0 0,100% 0,50% 100%);border-radius:4px}
.mascot-bandana:after{content:"✣";position:absolute;left:8px;top:-1px;color:white;font-size:11px}
.brand-lockup{text-align:center;margin-bottom:15px}.brand-name{font-family:Georgia,serif;font-style:italic;font-weight:800;font-size:25px;letter-spacing:-.03em;color:#0F2A3A}.brand-sub{font-size:10px;letter-spacing:.18em;color:#27A69A;font-weight:900}
.syrah-bubble{display:flex;gap:10px;align-items:flex-start}.syrah-mini{flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:#F6F2EC;overflow:hidden;display:flex;align-items:center;justify-content:center}.syrah-mini img{width:94%;height:94%;object-fit:contain}

@media(max-width:560px){.card{padding:25px 18px}h1{font-size:34px}.grid{grid-template-columns:1fr 1fr}.details-grid{grid-template-columns:1fr}.day-head{align-items:flex-start;flex-direction:column}}

.daytabs{display:flex;gap:8px;overflow-x:auto;padding:3px 0 14px;margin:8px 0 10px;scrollbar-width:none}.daytabs::-webkit-scrollbar{display:none}
.daytab{border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px 13px;min-width:78px;cursor:pointer;color:var(--ink);font-weight:800}.daytab span{display:block;font-size:10px;color:var(--muted);font-weight:600;margin-top:3px}.daytab.active{background:var(--ink);color:#fff;border-color:var(--ink)}.daytab.active span{color:#dce9ed}
.day-panel{display:none}.day-panel.active{display:block}
.day-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin:8px 0 12px}.day-hero h3{margin:0;font-size:20px}.day-hero p{margin:4px 0 0;color:var(--muted);font-size:13px}
.day-quick{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 14px}.quiet-btn{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 11px;font-size:12px;cursor:pointer;color:var(--ink)}
.compact-act{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;margin:9px 0}.compact-row{display:flex;gap:12px}.compact-time{flex:0 0 52px;font-weight:900;color:var(--accent);font-size:13px;padding-top:2px}.compact-main{flex:1;min-width:0}.compact-main h4{margin:0 0 4px;font-size:15px}.compact-sub{font-size:12px;color:var(--muted);line-height:1.45}.compact-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.compact-actions button{border:0;background:var(--soft);border-radius:999px;padding:7px 9px;font-size:11px;cursor:pointer;color:var(--ink)}
.free-card{background:linear-gradient(135deg,#eef8f6,#fffaf0);border:1px dashed #b9d8d3}.free-card h4{color:var(--accent)}
.drawer{display:none;margin-top:12px;padding:12px;border-radius:12px;background:#f8faf9;border:1px solid var(--line);font-size:12px;line-height:1.55;color:var(--muted)}.drawer.open{display:block}
.routebox{display:none;background:#f7fbfa;border:1px solid var(--line);border-radius:16px;padding:14px;margin:8px 0 14px}.routebox.open{display:block}.route-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px}.route-stop{background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 9px}.route-arrow{color:var(--accent);font-weight:900}
.replace-menu{display:none;margin-top:10px;padding:10px;border-radius:12px;background:#fff8ee;border:1px solid #ead8bb}.replace-menu.open{display:block}.replace-menu p{margin:0 0 8px;font-size:12px;font-weight:800}.replace-reasons{display:flex;gap:6px;flex-wrap:wrap}.replace-reasons button{border:1px solid #ead8bb;background:#fff;border-radius:999px;padding:6px 8px;font-size:10px;cursor:pointer}
.surprise{background:#fff5df!important}
@media(max-width:560px){.day-hero{display:block}.day-hero .day-tools{margin-top:10px}.compact-row{gap:8px}.compact-time{flex-basis:44px}}
.brand-with-mascot{display:flex;align-items:center;justify-content:center;gap:9px}
.brand-mascot{width:46px;height:46px;border-radius:50%;object-fit:contain;background:#F6F2EC}
.autocomplete-wrap{position:relative}
.autocomplete-list{display:none;position:absolute;z-index:40;left:0;right:0;top:100%;margin-top:6px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 32px rgba(15,42,58,.12);max-height:260px;overflow-y:auto;padding:5px}
.autocomplete-list.open{display:block}
.autocomplete-item{display:block;width:100%;text-align:left;border:0;background:#fff;padding:10px 11px;border-radius:9px;cursor:pointer;color:var(--ink)}
.autocomplete-item:hover{background:var(--soft)}
