:root{--navy:#203150;--navy-soft:#2c4066;--gold:#b29a5b;--gold-soft:#c9b378;--bg:#ffffff;--bg-tint:#f6f7f9;--bubble-user:#203150;--bubble-ai:#f3f4f7;--text:#1c2431;--text-soft:#5b6472;--border:#e4e7ec}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%}body{color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic,Meiryo,sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased}.app,body{background:var(--bg)}.app{display:flex;flex-direction:column;height:100dvh;max-width:820px;margin:0 auto}.header{justify-content:space-between;padding:14px 18px;background:var(--navy);color:#fff;border-bottom:3px solid var(--gold)}.header,.header .brand{display:flex;align-items:center;gap:12px}.header .brand{min-width:0}.header .avatar{width:38px;height:38px;border-radius:50%;background:var(--gold);color:var(--navy);display:grid;place-items:center;font-weight:700;font-size:15px;flex-shrink:0}.header .titles{min-width:0}.header .title{font-weight:700;font-size:15px;line-height:1.3}.header .subtitle{font-size:11.5px;color:var(--gold-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-btn{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:8px;padding:6px 12px;font-size:12.5px;cursor:pointer;flex-shrink:0}.header-actions{display:flex;gap:8px;flex-shrink:0}a.logout-btn{text-decoration:none}.logout-btn:hover{background:rgba(255,255,255,.12)}.messages{flex:1 1;overflow-y:auto;padding:20px 16px 8px;background:var(--bg-tint)}.empty{text-align:center;color:var(--text-soft);padding:36px 16px}.empty h2{color:var(--navy);font-size:18px;margin:0 0 8px}.examples{display:flex;flex-direction:column;gap:8px;max-width:440px;margin:20px auto 0}.example-chip{text-align:left;background:#fff;border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:10px;padding:11px 14px;color:var(--text);font-size:13.5px;cursor:pointer}.example-chip:hover{border-color:var(--gold);background:#fffdf7}.row{display:flex;margin-bottom:14px}.row.user{justify-content:flex-end}.row.assistant{justify-content:flex-start}.bubble{max-width:82%;padding:11px 15px;border-radius:16px;font-size:14.5px;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}.row.user .bubble{background:var(--bubble-user);color:#fff;border-bottom-right-radius:5px}.row.assistant .bubble{background:#fff;color:var(--text);border:1px solid var(--border);border-bottom-left-radius:5px}.bubble.md{white-space:normal}.bubble.md>:first-child{margin-top:0}.bubble.md>:last-child{margin-bottom:0}.bubble.md ol,.bubble.md p,.bubble.md table,.bubble.md ul{margin:0 0 10px}.bubble.md h1,.bubble.md h2,.bubble.md h3,.bubble.md h4{margin:16px 0 8px;font-size:15.5px;font-weight:700;line-height:1.5;color:var(--navy)}.bubble.md ol,.bubble.md ul{padding-left:1.3em}.bubble.md li{margin:3px 0}.bubble.md strong{font-weight:700}.bubble.md hr{border:none;border-top:1px solid var(--border);margin:14px 0}.bubble.md table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:13.5px}.bubble.md td,.bubble.md th{border:1px solid var(--border);padding:6px 9px;text-align:left;white-space:nowrap}.bubble.md th{background:var(--bg-tint);font-weight:700}.bubble .thinking{color:var(--text-soft)}.bubble .thinking .dots:after{content:"";animation:dots 1.5s steps(4) infinite}@keyframes dots{0%{content:""}25%{content:"・"}50%{content:"・・"}75%{content:"・・・"}}.bubble .cursor{display:inline-block;width:7px;height:15px;background:var(--gold);margin-left:2px;vertical-align:text-bottom;animation:blink 1s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}.composer{display:flex;gap:10px;align-items:flex-end;padding:12px 14px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:#fff}.composer textarea{flex:1 1;resize:none;border:1px solid var(--border);border-radius:12px;padding:11px 13px;font-size:15px;font-family:inherit;line-height:1.5;max-height:160px;outline:none;color:var(--text)}.composer textarea:focus{border-color:var(--gold);box-shadow:0 0 0 2px rgba(178,154,91,.18)}.send-btn{background:var(--navy);color:#fff;border:none;border-radius:12px;padding:0 18px;height:44px;font-size:14.5px;font-weight:700;cursor:pointer;flex-shrink:0}.send-btn:hover:not(:disabled){background:var(--navy-soft)}.send-btn:disabled{opacity:.45;cursor:not-allowed}.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:24px;background:linear-gradient(160deg,#f6f7f9,#eef0f4)}.login-card{width:100%;max-width:380px;background:#fff;border-radius:18px;border:1px solid var(--border);border-top:4px solid var(--gold);padding:32px 28px;box-shadow:0 12px 40px rgba(32,49,80,.1)}.login-card .logo{width:56px;height:56px;border-radius:50%;background:var(--navy);color:var(--gold);display:grid;place-items:center;font-weight:700;font-size:18px;margin:0 auto 18px}.login-card h1{text-align:center;color:var(--navy);font-size:19px;margin:0 0 4px}.login-card p.lead{text-align:center;color:var(--text-soft);font-size:13px;margin:0 0 24px}.login-card label{display:block;font-size:12.5px;color:var(--text-soft);margin-bottom:6px}.login-card input{width:100%;border:1px solid var(--border);border-radius:11px;padding:12px 14px;font-size:15px;outline:none;margin-bottom:16px}.login-card input:focus{border-color:var(--gold);box-shadow:0 0 0 2px rgba(178,154,91,.18)}.login-card button{width:100%;background:var(--navy);color:#fff;border:none;border-radius:11px;padding:13px;font-size:15px;font-weight:700;cursor:pointer}.login-card button:hover:not(:disabled){background:var(--navy-soft)}.login-card button:disabled{opacity:.5;cursor:not-allowed}.login-error{color:#c0392b;font-size:13px;text-align:center;margin:0 0 14px}.login-success{color:#1e7a46;background:#eef8f1;border:1px solid #cfe9d8;border-radius:10px;font-size:13.5px;line-height:1.7;padding:12px 14px;margin:0 0 16px}.login-card .hint{font-size:12px;color:var(--text-soft);margin:-10px 0 16px}.login-links{margin-top:18px;text-align:center;font-size:13px;line-height:2}.login-links a{color:var(--navy)}@media (max-width:480px){.bubble{max-width:88%}}.adm{max-width:820px;margin:0 auto;min-height:100dvh;background:var(--bg-tint)}.adm-body{padding:16px}.adm-tabs{display:flex;gap:6px;margin-bottom:12px}.adm-tab{flex:1 1;border:1px solid var(--border);background:#fff;color:var(--text-soft);border-radius:10px;padding:9px 6px;font-size:13.5px;font-weight:700;cursor:pointer}.adm-tab.on{background:var(--navy);border-color:var(--navy);color:#fff}.adm-count{display:inline-block;margin-left:6px;min-width:22px;padding:0 6px;border-radius:999px;background:rgba(178,154,91,.25);font-size:12px}.adm-search{width:100%;border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:14px;margin-bottom:12px;outline:none}.adm-search:focus{border-color:var(--gold)}.adm-notice{background:#eef8f1;border:1px solid #cfe9d8;color:#1e7a46;border-radius:10px;padding:10px 12px;font-size:13px;margin:0 0 12px}.adm-bulk{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin-bottom:12px}.adm-bulk .adm-btn{margin-left:auto}.adm-check{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-soft)}.adm-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.adm-row{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px 14px;flex-wrap:wrap;align-items:center;justify-content:space-between}.adm-main,.adm-row{display:flex;gap:10px}.adm-main{align-items:flex-start;min-width:0;flex:1 1 260px}.adm-main input[type=checkbox]{margin-top:5px;width:18px;height:18px}.adm-who{min-width:0}.adm-name{font-weight:700;color:var(--navy)}.adm-badge{margin-left:8px;font-size:11px;font-weight:700;color:var(--gold);border:1px solid var(--gold);border-radius:6px;padding:0 6px}.adm-email{font-size:13px;overflow-wrap:anywhere}.adm-email,.adm-meta{color:var(--text-soft)}.adm-meta{font-size:12px}.adm-actions{display:flex;gap:6px;flex-wrap:wrap}.adm-btn{border:1px solid var(--border);background:#fff;color:var(--text);border-radius:9px;padding:7px 12px;font-size:13px;font-weight:700;cursor:pointer}.adm-btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}.adm-btn.danger{background:#c0392b;border-color:#c0392b;color:#fff}.adm-btn:disabled{opacity:.5;cursor:not-allowed}.adm-empty{text-align:center;color:var(--text-soft);padding:32px 0}