*{box-sizing:border-box}html,body{height:100%;margin:0}html{background:#f8f4f7}body{min-width:320px;color:#493844;background:#f8f4f7;font-family:"Noto Sans JP","Yu Gothic",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}button,textarea{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}.role-screen{position:relative;display:flex;min-height:100dvh;align-items:center;justify-content:center;padding:32px 20px;background:radial-gradient(circle at 80% 8%,rgba(215,155,198,.2),transparent 22rem),#f8f4f7}.role-card{width:100%;max-width:460px;text-align:center}.brand-mark{width:42px;height:42px;display:block;border-radius:50%;box-shadow:0 8px 24px rgba(112,62,100,.13)}.brand-mark.large{width:68px;height:68px;margin:auto}.brand-kicker{margin:17px 0 0;color:#8b7a86;font-size:11px;font-weight:800;letter-spacing:.1em}.role-card h1{margin:8px 0 0;color:#412f3b;font-size:29px;line-height:1.35;letter-spacing:-.03em}.role-lead{margin:13px 0 0;color:#766973;font-size:13px;line-height:1.95}.role-list{display:grid;gap:12px;margin-top:30px}.role-option{display:grid;grid-template-columns:56px 1fr 16px;align-items:center;gap:13px;width:100%;min-height:92px;padding:17px;border:1px solid #e5d9e1;border-radius:24px;background:#fff;color:#463440;text-align:left;box-shadow:0 12px 34px rgba(69,43,62,.07);transition:transform .15s ease,box-shadow .15s ease}.role-option:hover{box-shadow:0 14px 38px rgba(69,43,62,.11)}.role-option:active{transform:scale(.98)}.role-option strong{display:block;font-size:16px;font-weight:900}.role-option small{display:block;margin-top:5px;color:#82747e;font-size:10px;line-height:1.65}.role-option b{color:#b9abb5;font-size:22px}.role-icon{display:grid;width:56px;height:56px;place-items:center;border-radius:50%;font-size:26px;font-weight:700}.role-icon.family{color:#a7448d;background:#f4dfec}.role-icon.institution{color:#71609b;background:#eae5f4}.privacy-note{margin:20px 0 0;padding:11px 14px;border-radius:15px;color:#756b7a;background:#f0edf5;font-size:10px;line-height:1.8}.icon-button{display:grid;width:38px;height:38px;flex:0 0 auto;place-items:center;border:0;border-radius:50%;color:#71626d;background:#f5eff3;font-size:19px}.role-close{position:absolute;top:max(16px,env(safe-area-inset-top));right:16px;background:#fff;box-shadow:0 4px 15px rgba(80,50,70,.08)}.chat-screen{height:100dvh;min-height:520px;display:flex;flex-direction:column;overflow:hidden;background:#f8f4f7}.chat-header{z-index:3;flex:0 0 auto;padding:max(10px,env(safe-area-inset-top)) 14px 10px;border-bottom:1px solid #e9e0e6;background:rgba(255,255,255,.97);backdrop-filter:blur(12px)}.chat-header-inner{display:flex;max-width:520px;margin:auto;align-items:center;gap:10px}.mark-wrap{position:relative;flex:0 0 auto}.mark-wrap i{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border:2px solid #fff;border-radius:50%;background:#68a877}.chat-title{min-width:0;flex:1}.chat-title strong{display:block;color:#453440;font-size:14px;font-weight:900}.chat-title small{display:block;margin-top:2px;color:#7e947f;font-size:9px}.audience-change{min-height:34px;padding:0 12px;border:0;border-radius:999px;color:#755f70;background:#f4eff6;font-size:10px;font-weight:900}.conversation{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain}.conversation-inner{max-width:520px;margin:auto;padding:17px 15px 28px}.privacy-pill{width:max-content;max-width:100%;margin:0 auto 19px;padding:7px 12px;border-radius:999px;color:#8a7c86;background:#ede7ec;font-size:9px;font-weight:800}.messages{display:grid;gap:18px}.message-user{max-width:86%;margin-left:auto;padding:12px 15px;border-radius:20px 20px 5px 20px;color:#fff;background:#a7448d;font-size:14px;font-weight:700;line-height:1.75;box-shadow:0 6px 18px rgba(167,68,141,.14);white-space:pre-wrap}.assistant-row{display:flex;align-items:flex-start;gap:9px}.assistant-avatar,.bot-dot{display:grid;width:32px;height:32px;flex:0 0 auto;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(145deg,#c86baa,#8d4b87);font-family:serif;font-size:14px}.assistant-content{min-width:0;flex:1}.assistant-bubble{padding:14px 15px;border:1px solid #e7dee4;border-radius:5px 20px 20px 20px;background:#fff;box-shadow:0 3px 12px rgba(72,48,65,.05)}.assistant-bubble.safety{border-color:#e9b8af;background:#fffdfc}.assistant-bubble .answer{margin:0;color:#55444f;font-size:13px;font-weight:500;line-height:2;white-space:pre-wrap}.assistant-bubble .notice{margin:11px 0 0;padding:9px 10px;border-radius:11px;color:#806436;background:#fff4e2;font-size:10px;font-weight:700;line-height:1.75}.assistant-bubble .disclaimer{margin:11px 0 0;padding-top:10px;border-top:1px solid #f0e8ed;color:#8b7e87;font-size:10px;line-height:1.7}.followups{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.followups button{padding:8px 12px;border:1px solid #d9ced6;border-radius:999px;color:#6e5b68;background:#fff;font-size:10px;font-weight:800;line-height:1.5;box-shadow:0 2px 6px rgba(70,46,63,.04)}.contact-card{margin-top:10px;padding:14px;border:1px solid #e1d6de;border-radius:18px;background:#fff;box-shadow:0 2px 8px rgba(70,46,63,.04)}.contact-card strong{display:block;font-size:12px}.contact-card p{margin:4px 0 0;color:#7e717a;font-size:10px;line-height:1.6}.contact-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:11px}.contact-actions a{display:flex;min-height:42px;align-items:center;justify-content:center;border:1px solid #d9cdd5;border-radius:999px;color:#715f6b;background:#fff;text-decoration:none;font-size:11px;font-weight:900}.contact-actions a:first-child{border-color:#a7448d;color:#fff;background:#a7448d}.contact-meta{text-align:center!important;color:#9a8e96!important;font-size:9px!important}.quick-section{margin-top:22px}.quick-section h2{margin:0 0 8px;color:#8a7885;font-size:10px;letter-spacing:.05em}.quick-list{display:grid;gap:7px}.quick-list button{display:grid;grid-template-columns:22px 1fr 12px;align-items:center;gap:7px;min-height:50px;padding:11px 13px;border:1px solid #e3d9e0;border-radius:16px;color:#66535f;background:#fff;text-align:left;font-size:12px;font-weight:800;line-height:1.55;box-shadow:0 2px 7px rgba(70,46,63,.04)}.quick-list button span:first-child{color:#a7448d;font-size:16px}.quick-list button span:last-child{color:#c0b3bc;font-size:18px}.typing{display:flex;align-items:center;gap:9px;margin-top:18px}.typing>span:last-child{padding:11px 13px;border:1px solid #e7dee4;border-radius:5px 20px 20px 20px;color:#81747d;background:#fff;font-size:10px;font-weight:800}.typing i{display:inline-block;width:4px;height:4px;margin-right:2px;border-radius:50%;background:#a7448d;animation:pulse 1s infinite}.typing i:nth-child(2){animation-delay:.12s}.typing i:nth-child(3){animation-delay:.24s}@keyframes pulse{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}.composer-wrap{z-index:3;flex:0 0 auto;padding:9px 12px max(8px,env(safe-area-inset-bottom));border-top:1px solid #e8dfe5;background:#fff}.composer{display:flex;max-width:520px;margin:auto;align-items:flex-end;gap:7px;padding:7px 7px 7px 14px;border:1px solid #d8ccd4;border-radius:20px;background:#fff;box-shadow:0 7px 22px rgba(66,43,59,.07)}.composer:focus-within{border-color:#b05a98;box-shadow:0 0 0 4px rgba(176,90,152,.1)}.composer textarea{min-width:0;min-height:38px;max-height:88px;flex:1;resize:none;padding:8px 0;border:0;outline:0;color:#4e3b48;background:transparent;font-size:16px;line-height:1.45}.composer textarea::placeholder{color:#a99ea5}.composer button{display:grid;width:40px;height:40px;flex:0 0 auto;place-items:center;border:0;border-radius:50%;color:#fff;background:#a7448d;font-size:16px;transition:transform .15s ease}.composer button:active{transform:scale(.95)}.composer button:disabled{opacity:.35}.composer-wrap>p{margin:5px 0 0;color:#9b8f97;text-align:center;font-size:8px}button:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid rgba(176,80,152,.25);outline-offset:2px}@media(min-width:620px){.chat-screen{width:100%;margin:auto}.conversation-inner{padding-left:20px;padding-right:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
