/* Re Prime AI コンシェルジュ */
.rpc{display:flex;flex-direction:column;height:640px;max-height:80vh;border-radius:28px;overflow:hidden;background:rgba(255,255,255,.86);border:1px solid var(--line);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 40px 80px -50px oklch(0.4 0.15 258 / .55);color:var(--ink);font-family:var(--jp)}
.rpc svg path{fill:url(#rpGrad)}
.rpc-head{display:flex;align-items:center;gap:8px;padding:14px 14px 14px 16px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.7)}
.rpc-av{flex:none;width:40px;height:40px;border-radius:12px;background:#05070d;display:grid;place-items:center;box-shadow:0 8px 20px -10px rgba(5,7,13,.7)}
.rpc-av svg{width:22px;height:19px}
.rpc-ttl{flex:1;min-width:0;line-height:1.35}
.rpc-ttl b{display:flex;align-items:baseline;gap:6px;font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rpc-ttl .rpc-brand{font-family:var(--disp,'Outfit',sans-serif);font-weight:800;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);flex:none}
.rpc-ttl span.rpc-state{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rpc-ttl span{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-dim)}
.rpc-ttl span i{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.18);animation:rpcPulse 2s infinite}
@keyframes rpcPulse{50%{box-shadow:0 0 0 6px rgba(34,197,94,0)}}
.rpc-human{flex:none;height:32px;padding:0 11px;border-radius:99px;border:1px solid oklch(0.56 0.21 258 / .35);background:#fff;color:var(--blue);font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:.2s}
.rpc-human:hover{background:var(--blue);color:#fff}
.rpc-human[hidden]{display:none}
.rpc-state i.g{background:#22c55e}.rpc-state i.w{background:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.2)}.rpc-state i.c{background:#94a3b8;animation:none;box-shadow:none}
.rpc.is-human .rpc-head{background:linear-gradient(90deg,rgba(220,252,231,.7),rgba(255,255,255,.7))}
.rpc-sys{align-self:center;font-size:11.5px;color:var(--ink-dim);background:var(--paper-2);padding:5px 12px;border-radius:99px;animation:rpcIn .3s both}
.rpc-m.ag .rpc-b{background:oklch(0.97 0.04 155);border:1px solid oklch(0.9 0.07 155)}
.rpc-mini.ag{background:oklch(0.6 0.15 155);color:#fff;font-size:11px;font-weight:700}
.rpc-who{display:block;font-size:10.5px;font-weight:700;color:oklch(0.5 0.12 155);margin-bottom:2px}
.rpc-wait{display:flex;align-items:center;gap:8px;margin:2px 0 2px 34px;padding:10px 14px;border-radius:14px;background:#fff7ea;color:#9a5b00;font-size:12.5px;line-height:1.6}
.rpc-wait i{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none;animation:rpcDot 1.2s infinite}
.rpc-wait i:nth-child(2){animation-delay:.15s}.rpc-wait i:nth-child(3){animation-delay:.3s}
.rpc-sugg{margin:-4px 0 0 34px}
.rpc-sugg button{padding:8px 14px;border-radius:99px;border:0;background:var(--grad-brand);color:#fff;font-size:12.5px;font-weight:700;cursor:pointer}
.rpc.rpc-ping{animation:rpcPing .6s}
@keyframes rpcPing{30%{box-shadow:0 0 0 6px oklch(0.6 0.15 155 / .25),0 40px 80px -50px oklch(0.4 0.15 258 / .55)}}
.rpc-launch.alert i{background:#ef4444;animation:rpcPulse 1.2s infinite}
.rpc-reset,.rpc-x{flex:none;width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink-dim);font-size:16px;cursor:pointer;transition:.2s}
.rpc-reset:hover,.rpc-x:hover{color:var(--ink);border-color:var(--ink-dim)}
.rpc-x{font-size:20px;line-height:1}
.rpc-log{flex:1;overflow-y:auto;padding:20px 18px 8px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth;overscroll-behavior:contain}
.rpc-m{display:flex;gap:8px;align-items:flex-end;animation:rpcIn .35s cubic-bezier(.2,.8,.2,1) both}
@keyframes rpcIn{from{opacity:0;transform:translateY(8px)}}
.rpc-m.me{justify-content:flex-end}
.rpc-meta{display:flex;flex-direction:column;align-items:flex-end;gap:3px;font-size:10px;color:var(--ink-dim);flex:none}
.rpc-unsend{border:0;background:none;padding:2px 0;font-size:10.5px;color:var(--ink-dim);cursor:pointer;opacity:0;transition:opacity .2s, color .2s;text-decoration:underline;text-underline-offset:2px}
.rpc-m.me:hover .rpc-unsend,.rpc-unsend:focus{opacity:1}
.rpc-unsend:hover{color:oklch(0.55 0.2 25)}
@media (hover:none){.rpc-unsend{opacity:.85}}
.rpc-undo{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 14px 10px;padding:9px 12px 9px 14px;border-radius:12px;background:#0b1220;color:#fff;font-size:12.5px;animation:rpcIn .3s both}
.rpc-undo[hidden]{display:none}
.rpc-undo button{border:0;background:none;color:#7cc4ff;font-weight:700;font-size:12.5px;cursor:pointer}
.rpc-mini{flex:none;width:26px;height:26px;border-radius:8px;background:#05070d;display:grid;place-items:center}
.rpc-mini svg{width:14px;height:12px}
.rpc-b{max-width:82%;padding:11px 14px;border-radius:18px;font-size:14px;line-height:1.75;word-break:break-word}
.rpc-m.ai .rpc-b{background:var(--paper-2);border-bottom-left-radius:6px}
.rpc-m.me .rpc-b{background:var(--grad-brand);color:#fff;border-bottom-right-radius:6px;box-shadow:0 10px 24px -14px oklch(0.56 0.21 258 / .9)}
.rpc-b a{color:var(--blue);text-decoration:underline;text-underline-offset:2px}
.rpc-typing{display:flex;gap:5px;align-items:center;padding:14px 16px}
.rpc-typing i{width:6px;height:6px;border-radius:50%;background:var(--ink-dim);opacity:.4;animation:rpcDot 1.2s infinite}
.rpc-typing i:nth-child(2){animation-delay:.15s}.rpc-typing i:nth-child(3){animation-delay:.3s}
@keyframes rpcDot{30%{opacity:1;transform:translateY(-3px)}}
.rpc-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px}
.rpc-chips:not(:empty){padding-bottom:12px}
.rpc-chips button{padding:8px 13px;border-radius:999px;border:1px solid oklch(0.56 0.21 258 / .35);background:#fff;color:var(--blue);font-size:12.5px;font-weight:700;cursor:pointer;transition:.2s}
.rpc-chips button:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
.rpc-in{display:flex;gap:8px;align-items:flex-end;margin:0 14px;padding:8px 8px 8px 14px;border-radius:18px;background:#fff;border:1px solid var(--line);transition:border-color .2s, box-shadow .2s}
.rpc-in:focus-within{border-color:var(--blue);box-shadow:0 0 0 4px oklch(0.56 0.21 258 / .12)}
.rpc-in textarea{flex:1;resize:none;border:0;outline:0;background:none;font-size:14.5px;line-height:1.6;padding:6px 0;max-height:120px;color:var(--ink)}
.rpc-in button{flex:none;width:40px;height:40px;border-radius:12px;border:0;background:var(--grad-brand);color:#fff;display:grid;place-items:center;cursor:pointer;transition:transform .2s, opacity .2s}
.rpc-in button:hover{transform:translateY(-1px)}
.rpc-in button[disabled]{opacity:.5;cursor:wait}
.rpc-in button svg{width:18px;height:18px}
.rpc-foot{padding:10px 18px 14px;font-size:10.5px;color:var(--ink-dim);text-align:center;line-height:1.6}
.rpc-card{margin:4px 0 4px 34px;border-radius:18px;border:1px solid oklch(0.56 0.21 258 / .35);background:#fff;overflow:hidden;animation:rpcIn .4s both}
.rpc-card-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--blue);background:oklch(0.56 0.21 258 / .06);border-bottom:1px solid oklch(0.56 0.21 258 / .18)}
.rpc-card-h span{padding:3px 9px;border-radius:99px;background:var(--blue);color:#fff;font-size:10.5px;letter-spacing:.02em}
.rpc-card-s{padding:8px 14px 0;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--blue);border-top:1px solid var(--line)}
.rpc-card dl{padding:6px 14px}
.rpc-card dl div{display:grid;grid-template-columns:72px 1fr;gap:8px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:13px;line-height:1.6}
.rpc-card dl div:last-child{border-bottom:0}
.rpc-card dt{color:var(--ink-dim);font-size:11.5px}
.rpc-card-a{display:flex;gap:8px;padding:10px 14px 14px}
.rpc-card-a button{flex:1;padding:11px;border-radius:12px;font-weight:700;font-size:13px;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink)}
.rpc-card-a .rpc-ok{border:0;background:var(--grad-brand);color:#fff;box-shadow:0 12px 24px -14px oklch(0.56 0.21 258 / .9)}
.rpc-done{margin:4px 0 4px 34px;padding:14px 16px;border-radius:16px;background:oklch(0.96 0.04 160);color:oklch(0.38 0.1 160);font-size:13px;line-height:1.7}
.rpc-done b{display:block;font-size:14px}
.rpc-done small{display:block;opacity:.7;margin-top:4px}

/* log children must never shrink (cards with overflow:hidden would collapse) */
.rpc-log > *{flex-shrink:0}

/* ---------- inline contact form ---------- */
.rpc-form{margin:2px 0 4px 34px;padding:16px 16px 14px;border-radius:18px;background:#fff;border:1.5px solid oklch(0.56 0.21 258 / .3);box-shadow:0 18px 40px -26px oklch(0.4 0.15 258 / .6);display:grid;gap:10px;animation:rpcIn .4s both}
.rpc-form-h{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--blue);display:flex;align-items:center;gap:6px}
.rpc-form-h::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--blue)}
.rpc-f{display:grid;gap:5px}
.rpc-f span{font-size:11.5px;font-weight:700;color:var(--ink-dim);display:flex;align-items:center;gap:6px}
.rpc-f b{font-size:9.5px;padding:1px 6px;border-radius:4px;background:var(--blue);color:#fff;font-weight:700}
.rpc-f em{font-style:normal;font-size:9.5px;padding:1px 6px;border-radius:4px;background:#eef1f6;color:var(--ink-dim)}
.rpc-f input{height:42px;padding:0 13px;border-radius:11px;border:1px solid var(--line);background:#fbfcff;font-size:14.5px;color:var(--ink);outline:0;transition:border-color .2s, box-shadow .2s, background .2s}
.rpc-f input:focus{border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px oklch(0.56 0.21 258 / .12)}
.rpc-f input.ng{border-color:oklch(0.6 0.2 25);background:oklch(0.98 0.02 25)}
.rpc-form-err{font-size:12px;color:oklch(0.55 0.2 25);font-weight:700}
.rpc-form-go{margin-top:2px;height:46px;border:0;border-radius:13px;background:var(--grad-brand);color:#fff;font-weight:700;font-size:14px;letter-spacing:.04em;cursor:pointer;box-shadow:0 14px 28px -14px oklch(0.56 0.21 258 / .9);transition:transform .2s}
.rpc-form-go:hover{transform:translateY(-1px)}
.rpc-form-note{font-size:10.5px;color:var(--ink-dim);text-align:center}
.rpc-stage-frame .rpc-form{grid-template-columns:1fr 1fr;padding:20px;max-width:620px}
.rpc-stage-frame .rpc-form-h,.rpc-stage-frame .rpc-form-err,.rpc-stage-frame .rpc-form-go,.rpc-stage-frame .rpc-form-note{grid-column:1 / -1}
@media (max-width:640px){.rpc-stage-frame .rpc-form{grid-template-columns:1fr}}
.rpc-card-a .rpc-ok{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px !important;font-size:14.5px !important;flex:2 !important}
.rpc-card-note{padding:0 14px 14px;font-size:11px;color:var(--ink-dim);text-align:center;margin-top:-4px}
.rpc-card{animation:rpcCard .55s cubic-bezier(.2,.9,.3,1.1) both}
@keyframes rpcCard{from{opacity:0;transform:translateY(14px) scale(.97)}}
.rpc-card .rpc-ok{animation:rpcGlow 2.4s ease-in-out .6s infinite}
@keyframes rpcGlow{50%{box-shadow:0 14px 34px -10px oklch(0.56 0.21 258 / 1),0 0 0 4px oklch(0.56 0.21 258 / .14)}}

/* ---------- choice buttons ---------- */
.rpc-opts{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 4px 34px;animation:rpcIn .35s both}
.rpc-opt{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:999px;border:1.5px solid oklch(0.56 0.21 258 / .38);background:#fff;color:var(--blue);font-size:13px;font-weight:700;cursor:pointer;
  transition:background .18s, color .18s, border-color .18s, transform .18s;animation:rpcOpt .45s cubic-bezier(.2,.9,.3,1.2) both;animation-delay:calc(var(--d) * 55ms)}
@keyframes rpcOpt{from{opacity:0;transform:translateY(8px) scale(.94)}}
.rpc-opt:hover{background:oklch(0.56 0.21 258 / .08);transform:translateY(-1px)}
.rpc-opts:not(.multi) .rpc-opt:active{background:var(--blue);color:#fff}
.rpc-opts.multi .rpc-opt i{width:14px;height:14px;border-radius:4px;border:1.5px solid currentColor;display:grid;place-items:center;flex:none;transition:.15s}
.rpc-opts.multi .rpc-opt.on{background:var(--blue);border-color:var(--blue);color:#fff}
.rpc-opts.multi .rpc-opt.on i{background:#fff;border-color:#fff}
.rpc-opts.multi .rpc-opt.on i::after{content:"";width:7px;height:4px;border-left:2px solid var(--blue);border-bottom:2px solid var(--blue);transform:rotate(-45deg) translate(1px,-1px)}
.rpc-opt-go{flex-basis:100%;padding:11px;border-radius:14px;border:0;background:var(--grad-brand);color:#fff;font-weight:700;font-size:13px;cursor:pointer;box-shadow:0 12px 24px -14px oklch(0.56 0.21 258 / .9);transition:opacity .2s}
.rpc-opt-go[disabled]{opacity:.35;cursor:default;box-shadow:none}
.rpc-opt-hint{flex-basis:100%;font-size:10.5px;color:var(--ink-dim);padding-left:2px}

/* ---------- focus mode (glide to center + enlarge) ---------- */
.rpc-min,.rpc-max{flex:none;width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink-dim);display:grid;place-items:center;cursor:pointer;transition:.2s}
.rpc-min:hover,.rpc-max:hover{color:var(--ink);border-color:var(--ink-dim)}
.rpc-min{display:none}
.rpc-big .rpc-min{display:grid}
.rpc-big .rpc-max{display:none}
.rpc-ph{border-radius:28px;border:1.5px dashed oklch(0.56 0.21 258 / .25);background:oklch(0.56 0.21 258 / .03);display:grid;place-items:center}
.rpc-ph::after{content:"会話は画面中央に表示されています";font-size:12px;color:var(--ink-dim)}
.rpc-dock + .rpc-ph,.rpc-ph:has(+ .rpc-launch){display:none}
.rpc-stage{position:fixed;inset:0;z-index:90;pointer-events:none;display:grid;place-items:center}
.rpc-stage-bg{position:absolute;inset:0;background:rgba(6,10,22,.42);backdrop-filter:blur(10px) saturate(1.2);-webkit-backdrop-filter:blur(10px) saturate(1.2);opacity:0;transition:opacity .6s ease}
.rpc-stage.on{pointer-events:auto}
.rpc-stage.on .rpc-stage-bg{opacity:1}
.rpc-stage-frame{position:relative;width:min(760px,calc(100vw - 32px));height:min(860px,calc(100vh - 48px));display:flex}
.rpc-stage-frame > *{flex:1;min-width:0}
.rpc-stage-frame > .rpc-dock{position:static;opacity:1;transform:none;width:auto;pointer-events:auto}
.rpc-stage-frame > .rv{opacity:1;transform:none}
.rpc.rpc-big,.rpc-big .rpc,.rpc-dock.rpc-big .rpc{height:100% !important;max-height:none !important;border-radius:30px;background:rgba(255,255,255,.97);box-shadow:0 60px 120px -40px rgba(5,10,40,.6),0 0 0 1px rgba(255,255,255,.6)}
.rpc-big .rpc-log{padding:28px 30px 12px;gap:14px}
.rpc-big .rpc-b{font-size:15px;max-width:76%}
.rpc-big .rpc-opt{font-size:14px;padding:11px 18px}
.rpc-big .rpc-in{margin:0 22px}
.rpc-big .rpc-in textarea{font-size:15.5px}
.rpc-big .rpc-head{padding:18px 22px}
html.rpc-focus{overflow:hidden}
html.rpc-focus .rpc-launch{opacity:0 !important;pointer-events:none !important}
html.rpc-focus .hdr,html.rpc-focus .rail{filter:blur(2px)}
@media (max-width:900px){
  .rpc-stage-frame{width:100vw;height:100dvh}
  .rpc.rpc-big,.rpc-big .rpc{border-radius:0}
  .rpc-big .rpc-log{padding:18px 16px 8px}
  .rpc-big .rpc-in{margin:0 12px}
}

/* floating launcher */
.rpc-launch{position:fixed;right:22px;bottom:22px;z-index:70;display:flex;align-items:center;gap:10px;padding:7px 18px 7px 7px;border-radius:999px;border:1px solid rgba(255,255,255,.14);
  background:rgba(10,12,20,.78);color:#fff;font-family:var(--jp);font-weight:700;font-size:13.5px;cursor:pointer;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:0 20px 40px -18px rgba(0,0,0,.7);opacity:0;pointer-events:none;transform:translateY(20px) scale(.95);transition:opacity .4s, transform .5s cubic-bezier(.2,.8,.2,1)}
.rpc-launch svg path{fill:url(#rpGrad)}
.rpc-launch .rpc-av{width:38px;height:38px;border-radius:50%;background:#05070d;border:1px solid rgba(255,255,255,.12)}
.rpc-launch i{position:absolute;right:6px;top:4px;width:9px;height:9px;border-radius:50%;background:#22c55e;border:2px solid #0a0c14}
.rpc-launch.on{opacity:1;pointer-events:auto;transform:none}
.rpc-launch.hide{opacity:0 !important;pointer-events:none !important}
.rpc-launch:hover{background:rgba(10,12,20,.92)}
.rpc-dock{position:fixed;right:22px;bottom:22px;z-index:80;width:min(400px,calc(100vw - 32px));opacity:0;pointer-events:none;transform:translateY(24px) scale(.97);transform-origin:bottom right;transition:opacity .35s, transform .45s cubic-bezier(.2,.8,.2,1)}
.rpc-dock.open{opacity:1;pointer-events:auto;transform:none}
.rpc-dock .rpc{height:min(620px,calc(100vh - 44px));max-height:none;background:rgba(255,255,255,.95);box-shadow:0 40px 90px -30px rgba(5,10,30,.55)}
@media (max-width:900px){
  .rpc{height:560px}
  .rpc-dock{right:12px;bottom:12px;width:calc(100vw - 24px)}
  .rpc-launch{right:14px;bottom:14px}
}

/* mobile: larger tap targets in chat header */
@media (max-width:640px){ .rpc-reset,.rpc-x,.rpc-min,.rpc-max{width:42px;height:42px;border-radius:12px} }

/* narrow headers (dock / small screens): keep the title on one line */
.rpc-dock .rpc-av,.rpc:not(.rpc-big) .rpc-av{width:36px;height:36px;border-radius:11px}
@media (max-width:440px){.rpc-human{padding:0 9px;font-size:11px}.rpc-ttl .rpc-brand{display:none}}
.rpc-dock:not(.rpc-big) .rpc-ttl .rpc-brand{display:none}
