:root{--bg: #c7d7f2;--text: #0b0f14;--muted: rgba(0,0,0,.45);--white: #ffffff;--line: #0b0f14;--blue: #2f57ff;--green: #39e36a;--gray: rgba(0,0,0,.28);--red: #ff3b30}*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;background:var(--bg) url(/background.png) no-repeat center/cover;color:var(--text);overflow:hidden;-webkit-text-size-adjust:100%}#app{height:100%;overflow:hidden}.screen{height:100%;display:flex;flex-direction:column;justify-content:flex-start;padding:calc(48px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));overflow:hidden}.hero{height:80px}.screen.main-view .hero{display:none}.spiral{width:68px;height:68px}.spiral.small{width:46px;height:46px}.spiral-wrap .spiral.small{width:100%;height:100%}.panel{display:flex;flex-direction:column;gap:24px}.title{font-size:28px;font-weight:600;line-height:1.15}.fields{display:grid;gap:0;margin-top:8px}.login .fields{margin-top:32px}.name .fields{margin-top:46px}.fields label{font-size:12px;color:var(--muted);margin-bottom:6px}.fields input{border:none;border-bottom:1px solid rgba(0,0,0,.4);background:transparent;padding:6px 2px 8px;font-size:16px;margin-bottom:30px}.fields input:last-of-type{margin-bottom:0}.pill{margin-top:52px;height:54px;border-radius:999px;border:1.5px solid rgba(0,0,0,.7);background:transparent;width:78%;margin-left:auto;margin-right:auto;display:block}.hint{font-size:12px;color:var(--muted);margin-top:12px;min-height:16px}.main{display:flex;flex-direction:column;min-height:70vh;position:relative}.notify-toggle{position:fixed;top:calc(20px + env(safe-area-inset-top));right:20px;z-index:8;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;color:#0000006b;background:transparent;appearance:none;-webkit-appearance:none}.notify-toggle.on{color:var(--blue)}.notify-toggle:disabled{opacity:.5}.notify-toggle svg{width:21px;height:21px;display:block}.screen.sheet-open .hero,.screen.sheet-open .status,.screen.sheet-open .route,.screen.sheet-open .notify-toggle{opacity:0;pointer-events:none}.status{font-size:28px;font-weight:600;margin-top:12px;white-space:pre-line}.sheet{position:fixed;left:0;right:0;bottom:0;background:#f7f7fb;border-radius:28px 28px 0 0;padding:16px 18px 20px;box-shadow:0 -12px 30px #0000001f;transition:transform .35s ease;transform:translateY(72%);z-index:5;touch-action:none;height:92vh}.sheet.open{transform:translateY(0)}.sheet-handle{text-align:center;font-size:12px;color:#0006;margin-bottom:12px}.sheet.open .sheet-handle{opacity:0;pointer-events:none}.sheet-header{display:flex;justify-content:space-between;align-items:center;padding:4px 4px 12px;position:relative}.sheet-identity{display:flex;align-items:center;gap:8px}.spiral-wrap{position:relative;width:62px;height:62px;display:flex;align-items:center;justify-content:center}.sheet-name{font-weight:600}.ring{width:12px;height:12px;border-radius:50%;border:2px solid var(--gray);position:absolute;right:-2px;bottom:-2px}.ring.green{border-color:var(--green)}.ring.gray{border-color:var(--gray)}.ring.red{border-color:var(--red)}.sheet-close{border:none;background:transparent;font-size:26px;color:#0006;opacity:0;pointer-events:none}.sheet.open .sheet-close{opacity:1;pointer-events:auto}.chat{display:flex;flex-direction:column;gap:12px;height:70vh}.sheet:not(.open) .chat{display:none}.sheet:not(.open) .sheet-header{justify-content:center;padding:0}.sheet:not(.open) .sheet-identity{flex-direction:column;gap:6px}.sheet:not(.open) .sheet-name{display:none}.sheet:not(.open) .sheet-close{display:none}.sheet:not(.open) .spiral-wrap{width:82px;height:82px}.sheet:not(.open) .sheet-header{padding-top:18px}.sheet.open .sheet-header{justify-content:center;padding-top:0;margin-top:-8px}.sheet.open .sheet-identity{flex-direction:column;gap:6px}.sheet.open .sheet-name{display:block}.sheet.open .sheet-close{position:absolute;right:6px;top:0}.sheet.open .spiral-wrap{width:58px;height:58px}.sheet.open .sheet-close{top:-14px}.sheet.open .sheet-name{font-weight:400;font-size:13px}.chat-log{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-right:4px}.message-row{display:flex;flex-direction:column}.message-row.user,.message-row.ai{width:fit-content;max-width:80%}.message-row.user{align-self:flex-end;align-items:flex-end}.message-row.ai{align-self:flex-start;align-items:flex-start}.message-row.system{align-items:center}.message{max-width:100%;padding:10px 12px;border-radius:14px;font-size:14px;line-height:1.35;white-space:pre-wrap;overflow-wrap:anywhere}.message.user{align-self:flex-end;background:#2f57ff1f;border:1px solid rgba(47,87,255,.3)}.message.user.sending{opacity:.7}.message.user.failed{opacity:.9;border-style:dashed;border-color:#ff3b3080}.message.ai{align-self:flex-start;background:#0000000a;border:1px solid rgba(0,0,0,.08)}.message.system{align-self:center;background:#00000005;border:1px dashed rgba(0,0,0,.2);color:var(--muted);font-size:12px}.message-meta{font-size:11px;color:#00000061;margin-top:2px;padding:0 4px}.message-row.ai .message-meta{align-self:flex-end}.message-row.user .message-meta{align-self:flex-start}.date-sep{align-self:center;font-size:11px;color:#00000073;margin:6px 0}.chat-input{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.chat-input textarea{width:100%;min-height:42px;max-height:152px;padding:10px 12px;border-radius:20px;border:1px solid rgba(0,0,0,.2);background:#fff;font-size:16px;line-height:22px;font-family:inherit;resize:none;overflow-y:hidden;white-space:pre-wrap;word-break:break-word}.chat-input button{border-radius:999px;border:1px solid rgba(0,0,0,.2);background:#fff;padding:10px 14px;font-size:16px;min-width:64px}.footer-note{text-align:center;color:var(--muted);font-size:12px}.typing{display:flex;align-items:center;height:18px;margin-left:6px}.typing-bubble{display:inline-flex;gap:6px;padding:6px 10px;border-radius:999px;background:#ffffff59;border:1px solid rgba(0,0,0,.08);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.typing-bubble .dot{width:6px;height:6px;border-radius:50%;background:#00000059;animation:dot-float 1.1s infinite ease-in-out}.typing-bubble .dot:nth-child(2){animation-delay:.15s}.typing-bubble .dot:nth-child(3){animation-delay:.3s}@keyframes dot-float{0%{transform:translateY(2px);opacity:.55}50%{transform:translateY(-4px);opacity:1}to{transform:translateY(2px);opacity:.55}}@media(min-height:860px){.sheet.open{transform:translateY(0)}}
