:root{--bg:#f8fafc;--bg-pattern:radial-gradient(#e2e8f0 1px,transparent 0);--surface:#ffffff;--surface-hover:#f1f5f9;--surface-raised:#f8fafc;--surface-inset:#f1f5f9;--border:#e2e8f0;--border-strong:#cbd5e1;--border-active:#0284c7;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--text-inverse:#ffffff;--skyline-red:#e4002b;--skyline-blue:#0284c7;--skyline-navy:#0f172a;--brand-blue:#0284c7;--brand-red:#e4002b;--success-bg:#f0fdf4;--success-border:#bbf7d0;--success-text:#15803d;--alert-bg:#fef2f2;--alert-border:#fecaca;--alert-text:#b91c1c;--warn-bg:#fffbeb;--warn-border:#fde68a;--warn-text:#b45309;--shadow-subtle:0 1px 3px 0 rgba(15,23,42,0.05),0 1px 2px -1px rgba(15,23,42,0.05);--shadow-card:0 4px 6px -1px rgba(15,23,42,0.06),0 2px 4px -2px rgba(15,23,42,0.06);--shadow-float:0 12px 30px -10px rgba(15,23,42,0.12)}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;background-color:var(--bg);background-image:radial-gradient(rgba(148,163,184,.25) 1px,transparent 0);background-size:24px 24px;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,Helvetica Neue,Arial,sans-serif;font-size:14.5px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--skyline-blue);text-decoration:none}a:hover{text-decoration:underline}.app{display:flex;flex-direction:column;height:100dvh;max-width:900px;margin:0 auto;background:var(--surface);border-inline:1px solid var(--border);box-shadow:var(--shadow-float);position:relative;overflow:hidden}.header{justify-content:space-between;padding:.85rem 1.4rem;background:#ffffff;border-bottom:1px solid var(--border);z-index:25}.header,.header-left{display:flex;align-items:center;gap:1rem}.header-meta{display:flex;align-items:center;gap:.65rem}.telemetry-tag{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-inset);padding:.2rem .55rem;border-radius:4px;border:1px solid var(--border);display:inline-flex;align-items:center;gap:.35rem}.pulse-dot-green{width:6px;height:6px;border-radius:50%;background-color:#10b981;box-shadow:0 0 6px #10b981;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.3)}}.phone-cta-btn{display:inline-flex;align-items:center;gap:.45rem;background:var(--skyline-navy);color:#ffffff!important;font-size:.78rem;font-weight:700;letter-spacing:.02em;padding:.42rem .95rem;border-radius:6px;border:1px solid rgba(15,23,42,.1);text-decoration:none!important;transition:all .15s ease;white-space:nowrap}.phone-cta-btn:hover{background:#1e293b;transform:translateY(-1px);box-shadow:0 2px 8px rgba(15,23,42,.2)}.phone-cta-btn:active{transform:scale(.98)}.log{flex:1 1;overflow-y:auto;padding:1.25rem 1.4rem .75rem;display:flex;flex-direction:column;gap:1rem;scroll-behavior:smooth;background:#fafbfc}.log::-webkit-scrollbar{width:5px}.log::-webkit-scrollbar-track{background:transparent}.log::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.log::-webkit-scrollbar-thumb:hover{background:#94a3b8}.hero-welcome{display:flex;flex-direction:column;gap:1.15rem;padding:.25rem 0;animation:fadeIn .25s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.hero-header-card{background:#ffffff;border:1px solid var(--border);border-radius:8px;padding:1.25rem 1.35rem;box-shadow:var(--shadow-subtle);position:relative}.hero-header-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding-bottom:.85rem;margin-bottom:.85rem}.protocol-badge{font-family:ui-monospace,SFMono-Regular,monospace;font-size:.7rem;font-weight:700;color:var(--skyline-blue);background:rgba(2,132,199,.08);border:1px solid rgba(2,132,199,.2);padding:.2rem .5rem;border-radius:4px}.hero-subtitle{font-size:.92rem;color:var(--text-secondary);line-height:1.5}.hero-spec-strip{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.9rem}.spec-pill{font-family:ui-monospace,SFMono-Regular,monospace;font-size:.7rem;font-weight:600;color:var(--text-muted);background:var(--surface-inset);padding:.25rem .6rem;border-radius:4px;border:1px solid var(--border)}.hero-section-title{display:flex;align-items:center;justify-content:space-between;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-top:.25rem}.category-tiles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:.65rem;gap:.65rem}.category-tile{display:flex;align-items:flex-start;gap:.85rem;background:#ffffff;border:1px solid var(--border);border-radius:8px;padding:.85rem 1rem;cursor:pointer;text-align:left;transition:all .15s ease;box-shadow:var(--shadow-subtle)}.category-tile:hover{background:#ffffff;border-color:var(--skyline-blue);transform:translateY(-1px);box-shadow:0 4px 12px rgba(2,132,199,.12)}.category-tile:active{transform:scale(.99)}.tile-number{font-family:ui-monospace,SFMono-Regular,monospace;font-size:.7rem;font-weight:800;color:var(--skyline-blue);background:rgba(2,132,199,.08);border:1px solid rgba(2,132,199,.2);width:26px;height:26px;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tile-content{display:flex;flex-direction:column}.tile-title{font-size:.86rem;font-weight:700;color:var(--text-primary);line-height:1.35}.tile-desc{font-size:.74rem;color:var(--text-muted);margin-top:.2rem;line-height:1.35}.msg-row{display:flex;gap:.65rem;align-items:flex-start}.msg-row.user{justify-content:flex-end}.assistant-avatar{width:28px;height:28px;border-radius:6px;background:#ffffff;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--shadow-subtle);padding:3px}.msg{max-width:86%;padding:.85rem 1.1rem;border-radius:8px;font-size:.92rem;line-height:1.55;white-space:pre-wrap;word-wrap:break-word}.msg.user{background:var(--skyline-navy);color:#ffffff;border-bottom-right-radius:2px;font-weight:500}.msg.assistant,.msg.user{box-shadow:var(--shadow-subtle)}.msg.assistant{background:#ffffff;border:1px solid var(--border);color:var(--text-primary);border-bottom-left-radius:2px}.status-hud{display:inline-flex;align-items:center;gap:.5rem;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.76rem;font-weight:600;color:var(--skyline-blue);background:rgba(2,132,199,.08);border:1px solid rgba(2,132,199,.2);padding:.35rem .75rem;border-radius:4px;align-self:flex-start;margin-left:2.3rem;animation:fadeIn .2s ease-in-out}.spinner{width:12px;height:12px;border:2px solid rgba(2,132,199,.2);border-top:2px solid var(--skyline-blue);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.banner{padding:1rem 1.25rem;border-radius:8px;font-size:.88rem;border:1px solid;display:flex;flex-direction:column;gap:.5rem}.banner.ticket{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}.banner-title{display:flex;align-items:center;justify-content:space-between;font-family:ui-monospace,SFMono-Regular,monospace;font-weight:800;text-transform:uppercase;font-size:.72rem;letter-spacing:.08em}.ticket-badge{gap:.5rem;font-size:1.15rem;font-weight:800;color:#065f46;border:1px solid var(--success-border);padding:.35rem .8rem;border-radius:6px;width:-moz-fit-content;width:fit-content;box-shadow:var(--shadow-subtle)}.copy-btn,.ticket-badge{display:inline-flex;align-items:center;font-family:ui-monospace,SFMono-Regular,monospace;background:#ffffff}.copy-btn{border:1px solid var(--success-border);color:var(--success-text);cursor:pointer;font-size:.72rem;font-weight:700;gap:.3rem;padding:.25rem .55rem;border-radius:4px;transition:background .15s ease}.copy-btn:hover{background:#f0fdf4;border-color:var(--success-text)}.banner.transfer{background:var(--alert-bg);border-color:var(--alert-border);color:var(--alert-text)}.quick-tray{padding:.65rem 1.4rem .4rem;background:#ffffff;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.45rem;z-index:20}.quick-tray-header{display:flex;align-items:center;justify-content:space-between;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.quick-chips-scroll{display:flex;gap:.45rem;overflow-x:auto;padding-bottom:.25rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}.quick-chips-scroll::-webkit-scrollbar{display:none}.quick-chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;font-weight:600;padding:.38rem .8rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all .15s ease;flex-shrink:0;box-shadow:var(--shadow-subtle)}.quick-chip:hover{background:var(--surface-hover);border-color:var(--skyline-blue);color:var(--skyline-blue);transform:translateY(-1px)}.quick-chip:active{transform:scale(.98)}.quick-chip.primary{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.quick-chip.primary:hover{background:#1d4ed8;color:#ffffff;border-color:#1d4ed8}.quick-chip.success{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.quick-chip.success:hover{background:#15803d;color:#ffffff;border-color:#15803d}.composer-wrap{padding:.6rem 1.4rem 1.1rem;background:#ffffff;border-top:1px solid var(--border);z-index:25}.composer{display:flex;align-items:flex-end;gap:.65rem;background:#ffffff;border:1px solid var(--border-strong);border-radius:8px;padding:.4rem .55rem .4rem .85rem;transition:border-color .15s ease,box-shadow .15s ease}.composer:focus-within{border-color:var(--skyline-blue);box-shadow:0 0 0 3px rgba(2,132,199,.12)}.composer textarea{flex:1 1;resize:none;font:inherit;font-size:.92rem;color:var(--text-primary);background:transparent;border:none;padding:.35rem 0;min-height:1.6rem;max-height:8rem;line-height:1.45;outline:none}.composer textarea::placeholder{color:var(--text-muted)}.send-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;border:none;background:var(--skyline-navy);color:#ffffff;cursor:pointer;flex-shrink:0;transition:all .15s ease}.send-btn:hover:not(:disabled){background:var(--skyline-blue);transform:translateY(-1px);box-shadow:0 2px 8px rgba(2,132,199,.25)}.send-btn:active:not(:disabled){transform:scale(.97)}.send-btn:disabled{opacity:.35;cursor:not-allowed;background:#cbd5e1}.admin{max-width:1100px;margin:0 auto;padding:2rem 1.4rem 4rem}.admin h1{font-size:1.3rem;font-weight:800;letter-spacing:-.01em;margin:0 0 1.25rem;color:var(--text-primary)}.admin form{display:flex;gap:.65rem;margin-bottom:1.5rem}.admin input{font:inherit;padding:.6rem .85rem;border-radius:6px;border:1px solid var(--border-strong);background:#ffffff;color:var(--text-primary);outline:none}.admin input:focus{border-color:var(--skyline-blue);box-shadow:0 0 0 3px rgba(2,132,199,.12)}.admin button{font:inherit;font-weight:700;padding:.6rem 1.2rem;border-radius:6px;border:none;background:var(--skyline-navy);color:#ffffff;cursor:pointer}.admin button:hover{background:#1e293b}.ticket{background:#ffffff;border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem;margin-bottom:.85rem;box-shadow:var(--shadow-subtle)}.ticket header{display:flex;flex-wrap:wrap;gap:.65rem;align-items:baseline;margin-bottom:.45rem}.ticket code{font-weight:800;color:var(--skyline-blue)}.tag,.ticket code{font-family:ui-monospace,SFMono-Regular,monospace}.tag{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.15rem .5rem;border-radius:4px;border:1px solid var(--border);background:var(--surface-inset);color:var(--text-muted)}.tag.money,.tag.urgent{background:var(--alert-bg);border-color:var(--alert-border);color:var(--alert-text)}.ticket .meta{font-size:.8rem;color:var(--text-muted)}.ticket pre{white-space:pre-wrap;font-size:.84rem;background:var(--surface-inset);border:1px solid var(--border);border-radius:6px;padding:.75rem .9rem;margin:.65rem 0 0;max-height:18rem;overflow:auto}@media (max-width:640px){.header{padding:.75rem 1rem}.log{padding:1rem 1rem .5rem}.category-tiles-grid{grid-template-columns:1fr}.msg{max-width:92%;font-size:.88rem}.header-meta .telemetry-tag:nth-child(2){display:none}}