/* Plan a round: a conversation you can also touch. Light and roomy; chips, a schematic map, swipeable cards, one-tap pills.
   Motion is short and stops for people who ask for less (prefers-reduced-motion). Uses page tokens (--ink, --gm, --cream3 ...). */
body.plan-mode .pagehead-wrap{min-height:0;padding-bottom:22px}
body.plan-mode .pagehead-wrap::after{height:auto;width:96px;top:14px;right:max(14px,calc(50% - 560px));animation:pc-float 6s ease-in-out infinite}
body.plan-mode .ph-sub,body.plan-mode .mode-toggle~.host-menu{display:none}
body.plan-mode .ph-title{font-size:clamp(28px,4.5vw,40px);margin-bottom:10px}
@keyframes pc-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(4deg)}}
@keyframes pc-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes pc-pop{0%{transform:scale(.9);opacity:0}60%{transform:scale(1.04)}100%{transform:scale(1);opacity:1}}
@keyframes pc-dot{0%,80%,100%{transform:scale(.55);opacity:.4}40%{transform:scale(1);opacity:1}}
@keyframes pc-pulse{0%{r:10;opacity:.5}100%{r:20;opacity:0}}
@keyframes pc-in{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}

.pc{max-width:760px;margin:0 auto;padding:10px max(18px,env(safe-area-inset-left)) 40px;display:flex;flex-direction:column;min-height:min(72vh,760px);position:relative}
.pc-bar{display:flex;justify-content:flex-end;padding:2px 0 8px}
.pc-bar-actions{display:flex;gap:18px;align-items:center}
.pc-saved{position:relative}.pc-saved summary{list-style:none;cursor:pointer}.pc-saved summary::-webkit-details-marker{display:none}
.pc-saved-list{position:absolute;right:0;top:100%;z-index:30;background:#fff;border:1px solid var(--cream3);padding:10px 14px;min-width:220px;display:grid;gap:4px;box-shadow:0 10px 24px rgba(0,0,0,.08);animation:pc-pop .18s ease}
.pc-saved-list .tl{justify-content:flex-start;text-align:left}
.ic{width:18px;height:18px;flex:none}

/* plan chips */
.pc-chips{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.pc-chips::-webkit-scrollbar{display:none}
.pc-chip{display:inline-flex;align-items:center;gap:7px;flex:none;min-height:38px;padding:0 13px;border:1px solid var(--ink);background:#fff;border-radius:99px;font-size:13.5px;font-weight:500;color:var(--ink);cursor:pointer;transition:transform .15s,background .15s,color .15s;animation:pc-pop .25s ease both}
.pc-chip:hover{transform:translateY(-1px)}.pc-chip:active{transform:scale(.97)}
.pc-chip.soft{border-style:dashed;border-color:var(--ink3);color:var(--ink3)}
.pc-chip.open{background:var(--ink);color:var(--cream)}.pc-chip.quiet{padding:0 10px;border-color:var(--cream3);color:var(--ink3)}
.pc-pop{position:absolute;z-index:40;margin-top:-4px;background:#fff;border:1px solid var(--ink);padding:12px;box-shadow:0 14px 30px rgba(28,50,38,.14);max-width:calc(100% - 8px);animation:pc-pop .18s ease}
.pc-opts{display:flex;flex-wrap:wrap;gap:8px}
.pc-opt{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 14px;border:1px solid var(--cream3);background:#fff;border-radius:99px;font-size:13.5px;font-weight:500;cursor:pointer;transition:transform .12s,border-color .12s}
.pc-opt:hover{border-color:var(--ink)}.pc-opt:active{transform:scale(.96)}.pc-opt.on{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.pc-step{display:flex;align-items:center;gap:18px}.pc-step b{font-size:26px;min-width:28px;text-align:center;font-weight:600}
.pc-round{width:42px;height:42px;border-radius:50%;border:1px solid var(--ink);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .12s}
.pc-round:active{transform:scale(.92)}.pc-round[disabled]{opacity:.35;pointer-events:none}
.pc-place{display:flex;gap:8px;margin-bottom:10px}.pc-place input{flex:1;min-width:0;padding:10px 12px;border:1px solid var(--cream3);border-radius:2px;font:16px var(--sans)}

/* thread */
.pc-thread{flex:1;padding:14px 0 14px;display:flex;flex-direction:column;gap:22px}
.rise{animation:pc-rise .32s ease both}
.pc-welcome{padding:26px 0 8px}
.pc-welcome h2{font-family:var(--script);font-weight:400;font-size:clamp(28px,5vw,38px);line-height:1.4;margin-bottom:18px}
.pc-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:520px}
.pc-tile{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:18px 16px;background:#fff;border:1px solid var(--cream3);font-size:15px;font-weight:600;text-align:left;cursor:pointer;animation:pc-rise .45s ease both;animation-delay:calc(var(--i) * 70ms);transition:transform .18s,border-color .18s,box-shadow .18s}
.pc-tile .ic{width:26px;height:26px;color:var(--gm)}
.pc-tile:hover{transform:translateY(-3px);border-color:var(--ink);box-shadow:0 10px 22px rgba(28,50,38,.1)}.pc-tile:active{transform:scale(.98)}
.pc-msg.user{display:flex;justify-content:flex-end}
.pc-bubble{max-width:86%;background:var(--ink);color:var(--cream);padding:11px 16px;border-radius:18px 18px 4px 18px;font-size:15.5px;line-height:1.5;overflow-wrap:anywhere}
.pc-text{max-width:620px;font-size:16.5px;line-height:1.62;color:var(--ink)}.pc-text p+p{margin-top:8px}.pc-text ul{margin:6px 0 0 18px}
.pc-fine{font-size:13px;color:var(--ink3);line-height:1.5;margin-top:8px}
.pc-working{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink3);margin-top:8px}
.pc-dots{display:inline-flex;gap:4px}.pc-dots i{width:7px;height:7px;border-radius:50%;background:var(--gm);animation:pc-dot 1.2s infinite ease-in-out}.pc-dots i:nth-child(2){animation-delay:.15s}.pc-dots i:nth-child(3){animation-delay:.3s}

/* results: map + swipeable cards */
.pc-set{margin-top:14px}
.pc-map{background:linear-gradient(180deg,#e9e4d6,#e1dccb);border:1px solid var(--cream3);height:190px;margin-bottom:12px;overflow:hidden}
.pc-map svg{width:100%;height:100%;display:block}
.pc-ring{fill:rgba(63,107,76,.07);stroke:var(--gm);stroke-width:1.2;stroke-dasharray:4 4}
.pc-home .halo{fill:rgba(28,50,38,.15)}.pc-home circle:last-child{fill:var(--ink)}
.pc-pin{cursor:pointer;animation:pc-pop .4s ease both;animation-delay:var(--d)}
.pc-pin .dot{fill:var(--gm);stroke:#fff;stroke-width:2;transition:fill .15s}.pc-pin text{fill:#fff;font:600 11px var(--sans);pointer-events:none}
.pc-pin .pulse{fill:var(--gm);opacity:0}.pc-pin.on .dot{fill:var(--ink)}.pc-pin.on .pulse{animation:pc-pulse 1.4s infinite}
.pc-pin:hover .dot,.pc-pin:focus .dot{fill:var(--ink)}.pc-pin:focus{outline:none}
.pc-cards{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 12px;margin:0 -2px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.pc-cards.one{display:block}
.pc-card{flex:0 0 min(300px,80%);scroll-snap-align:start;background:#fff;border:1px solid var(--cream3);padding:15px 16px 14px;position:relative;cursor:pointer;animation:pc-in .4s ease both;animation-delay:calc(var(--i) * 80ms);transition:border-color .18s,transform .18s,box-shadow .18s}
.pc-cards.one .pc-card{flex:none;max-width:420px}
.pc-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(28,50,38,.09)}.pc-card.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.pc-card header{display:grid;gap:3px;padding-right:30px}
.pc-badge{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gm);font-weight:600}
.pc-card h4{font-family:var(--sans);font-size:17px;font-weight:600;line-height:1.3;display:flex;gap:9px;align-items:baseline}
.pc-n{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--gm);color:#fff;font-size:11px;font-weight:600;flex:none;transform:translateY(-1px)}
.pc-drop{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--ink3);background:none;border:0;cursor:pointer;transition:background .15s,color .15s}
.pc-drop:hover{background:var(--cream2);color:var(--red,#a63d32)}.pc-drop .ic{width:16px;height:16px}
.pc-meta{display:flex;align-items:center;gap:7px;font-size:14px;color:var(--ink3);margin-top:8px}.pc-meta .ic{width:16px;height:16px}
.pc-status{margin-top:6px;font-size:13.5px;color:var(--ink3)}.pc-status.ok{color:var(--gm);font-weight:600}
.pc-times{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.pc-times span{display:inline-flex;flex-direction:column;align-items:center;border:1px solid var(--gm);padding:5px 11px;font-weight:600;min-width:66px;border-radius:2px}
.pc-times small{font-size:10.5px;color:var(--gm);font-weight:500}
.pc-card footer{margin-top:12px}
.pc-compare{margin-top:14px;max-width:720px;overflow-x:auto;border:1px solid var(--cream3);background:#fff;animation:pc-rise .35s ease both}
.pc-compare table{border-collapse:collapse;width:100%;min-width:420px;font-size:13.5px}
.pc-compare th,.pc-compare td{padding:10px 12px;border-bottom:1px solid var(--cream3);text-align:left;vertical-align:top}
.pc-compare thead th{font-weight:600}.pc-compare tbody th{font-weight:500;white-space:nowrap}
.pc-legend{display:flex;flex-wrap:wrap;gap:6px 16px;padding:10px 12px;font-size:12.5px;color:var(--ink3)}.pc-legend b{color:var(--ink)}

/* one-tap replies */
.pc-follow{display:flex;gap:8px;flex-wrap:wrap;margin-top:-4px}
.pc-pill{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 14px;border:1px solid var(--ink);background:transparent;border-radius:99px;font-size:13.5px;font-weight:500;cursor:pointer;animation:pc-pop .35s ease both;animation-delay:calc(var(--i) * 60ms);transition:background .15s,color .15s,transform .12s}
.pc-pill:hover{background:var(--ink);color:var(--cream)}.pc-pill:active{transform:scale(.96)}
.pc-link{display:flex;gap:10px;align-items:center;margin-top:12px;max-width:620px}
.pc-link input{flex:1;min-width:0;padding:11px 12px;border:1px solid var(--cream3);background:#fff;font:13px var(--mono);border-radius:2px}

/* composer */
.pc-composer{position:sticky;bottom:0;display:flex;gap:10px;align-items:flex-end;padding:10px 0 calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--cream2) 80%,transparent)}
.pc-composer textarea{flex:1;min-width:0;resize:none;max-height:140px;padding:14px 18px;border:1px solid var(--ink);border-radius:26px;background:#fff;font:400 16px/1.45 var(--sans);color:var(--ink);transition:box-shadow .15s}
.pc-composer textarea:focus{outline:none;box-shadow:0 0 0 3px rgba(63,107,76,.25)}
.pc-go{width:50px;height:50px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:var(--cream);border:0;cursor:pointer;transition:transform .15s,opacity .15s}
.pc-go:hover:not([disabled]){transform:scale(1.06)}.pc-go:active{transform:scale(.94)}.pc-go[disabled]{opacity:.35;cursor:default}.pc-go.stop{background:#fff;color:var(--ink);border:1px solid var(--ink)}.pc-go .ic{width:20px;height:20px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
@media(min-width:640px){.pc-chips{flex-wrap:wrap;overflow:visible}}

/* voice */
.pc-go.mic{background:#fff;color:var(--ink);border:1px solid var(--ink)}
.pc-go.mic.on{background:var(--gm);color:#fff;border-color:var(--gm);position:relative}
.pc-go.mic.on::after{content:'';position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--gm);opacity:.5;animation:pc-ring 1.3s ease-out infinite}
@keyframes pc-ring{from{transform:scale(.85);opacity:.6}to{transform:scale(1.25);opacity:0}}
.pc-voice-note{min-height:0;font-size:13px;color:var(--ink3);margin:-4px 4px 0}
.pc-voice-note:empty{display:none}
.pc-go .mic-l{display:none}
