:root{--brand-primary: #0167e1;--brand-dark: #012392;--brand-light: #1cd6fe;--brand-gray: #404040;--bg-deep: #020818;--bg-panel: rgba(1, 35, 146, .18);--bg-panel-hover: rgba(1, 103, 225, .12);--border-dim: rgba(28, 214, 254, .14);--border-glow: rgba(28, 214, 254, .38);--accent-cyan: #1cd6fe;--accent-purple: #0167e1;--accent-green: #1cd6fe;--accent-amber: #0167e1;--accent-gold: #1cd6fe;--accent-red: #ff6b6b;--text-primary: #f0f6ff;--text-secondary: rgba(220, 235, 255, .72);--text-muted: rgba(180, 200, 230, .45);--font-display: "Outfit", system-ui, sans-serif;--font-body: "Outfit", system-ui, sans-serif;--font-mono: "Outfit", system-ui, sans-serif;--panel-left: 18.75%;--panel-center: 62.5%;--panel-right: 18.75%;--radius: 6px;--transition: .2s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font-body);font-size:15px;font-weight:400;color:var(--text-primary);background:var(--bg-deep);-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(1,103,225,.12) 0%,transparent 60%),radial-gradient(ellipse 60% 40% at 80% 100%,rgba(28,214,254,.06) 0%,transparent 50%),linear-gradient(160deg,var(--brand-dark) 0%,var(--bg-deep) 45%,#010a1f 100%);pointer-events:none;z-index:0}body:after{content:"";position:fixed;inset:0;background-image:linear-gradient(rgba(28,214,254,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(28,214,254,.025) 1px,transparent 1px);background-size:48px 48px;pointer-events:none;z-index:0}.app-shell{position:relative;z-index:1;display:flex;flex-direction:column;height:100%;padding:12px;gap:8px}.app-shell__grid{display:grid;grid-template-columns:var(--panel-left) var(--panel-center) var(--panel-right);gap:10px;flex:1;min-height:0}.panel{position:relative;display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--border-dim);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);overflow:hidden;min-height:0}.panel--center{border-color:#1cd6fe38;box-shadow:0 0 40px #0167e114,inset 0 1px #1cd6fe1a}.panel--inactive{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.72}.panel__header{display:flex;align-items:flex-start;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid var(--border-dim);flex-shrink:0}.panel__title{font-family:var(--font-display);font-size:14px;font-weight:600;letter-spacing:.04em;text-transform:none;color:var(--brand-light)}.panel--center .panel__title{font-size:18px;font-weight:700;letter-spacing:.06em}.panel__subtitle{font-size:11px;color:var(--text-muted);margin-top:2px}.panel__body{flex:1;overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:rgba(0,212,255,.2) transparent}.panel__corner{position:absolute;width:12px;height:12px;pointer-events:none}.panel__corner--tl{top:0;left:0;border-top:1px solid var(--border-glow);border-left:1px solid var(--border-glow)}.panel__corner--br{bottom:0;right:0;border-bottom:1px solid var(--border-glow);border-right:1px solid var(--border-glow)}.status-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:2px;border:1px solid var(--border-dim);color:var(--text-secondary);white-space:nowrap}.status-badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:pulse-dot 2s ease infinite}.status-badge--idle{color:var(--accent-cyan)}.status-badge--listening{color:var(--accent-green)}.status-badge--thinking{color:var(--accent-purple)}.status-badge--speaking{color:var(--accent-cyan)}.status-badge--interrupted{color:var(--accent-red)}.status-badge--action{color:var(--accent-amber)}.status-badge--confirm{color:var(--accent-gold)}.status-badge--error{color:var(--accent-red)}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.btn{font-family:var(--font-display);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:none;padding:10px 18px;border-radius:2px;border:1px solid transparent;cursor:pointer;transition:all var(--transition);background:transparent;color:var(--text-primary)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--lg{padding:14px 28px;font-size:14px}.btn--sm{padding:6px 12px;font-size:9px}.btn--primary{background:#0167e12e;border-color:var(--brand-primary);color:var(--brand-light);box-shadow:0 0 20px #0167e133}.btn--primary:hover:not(:disabled){background:#0167e14d;box-shadow:0 0 30px #1cd6fe40}.btn--secondary{border-color:var(--border-glow);color:var(--text-secondary)}.btn--secondary:hover:not(:disabled){border-color:var(--accent-purple);color:var(--accent-purple)}.btn--ghost{border-color:var(--border-dim);color:var(--text-secondary)}.btn--ghost:hover:not(:disabled){border-color:var(--border-glow);color:var(--text-primary)}.btn--danger:hover:not(:disabled){border-color:var(--accent-red);color:var(--accent-red)}.avatar-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:16px;gap:16px;position:relative}.avatar-stage__canvas{flex:1;width:100%;min-height:280px;max-height:calc(100% - 140px)}.hologram-avatar,.glb-avatar{position:relative;width:100%;height:100%}.hologram-avatar canvas,.glb-avatar canvas{display:block;width:100%!important;height:100%!important}.glb-avatar__overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center;background:#080c14b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;z-index:2}.glb-avatar__overlay--error{background:#200a0ad1}.glb-avatar__overlay-title{margin:0;font-size:.95rem;font-weight:600;color:var(--text-primary, #e8f0ff)}.glb-avatar__overlay-detail{margin:0;max-width:280px;font-size:.8rem;line-height:1.45;color:var(--text-muted, #8fa3bf)}.glb-avatar__progress-track{width:min(220px,70%);height:6px;margin-top:4px;border-radius:999px;background:#ffffff14;overflow:hidden}.glb-avatar__progress-bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,#00d4ff,#7b61ff);transition:width .2s ease}.hologram-avatar__glow{position:absolute;inset:20%;border-radius:50%;background:radial-gradient(circle,rgba(0,212,255,.08) 0%,transparent 70%);pointer-events:none;transition:opacity .5s;opacity:.5}.hologram-avatar__glow--active{opacity:1;animation:glow-pulse 3s ease infinite}@keyframes glow-pulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.05);opacity:1}}.avatar-stage__controls{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.avatar-stage__hint{font-size:13px;font-weight:300;color:var(--text-muted);text-align:center;font-family:var(--font-body)}.avatar-stage__error{background:#ff444414;border:1px solid rgba(255,107,107,.3);border-radius:var(--radius);padding:12px 16px;max-width:420px;text-align:center;font-size:12px}.avatar-stage__error strong{color:var(--accent-red);display:block;margin-bottom:4px}.avatar-stage__error-hint{margin-top:6px;font-size:11px;color:var(--text-muted)}.avatar-stage__error code{font-family:var(--font-mono);color:var(--accent-cyan)}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.transcript-list{padding:12px;display:flex;flex-direction:column;gap:10px}.transcript-empty,.cockpit-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 16px;gap:12px;color:var(--text-muted);font-size:14px;font-weight:300;line-height:1.6;min-height:200px}.transcript-empty__icon,.cockpit-empty__icon{font-size:24px;color:var(--accent-cyan);opacity:.4}.cockpit-empty__hint{font-size:11px;margin-top:4px}.cockpit-empty__hint strong{color:var(--accent-cyan);font-weight:500}.transcript-entry{padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border-dim);background:#0003;animation:fade-in .25s ease}.transcript-entry--user{border-left:2px solid var(--accent-green)}.transcript-entry--assistant{border-left:2px solid var(--accent-cyan)}.transcript-entry--partial{opacity:.7}.transcript-entry__meta{display:flex;justify-content:space-between;margin-bottom:4px}.transcript-entry__role{font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:none;color:var(--text-muted)}.transcript-entry__time{font-family:var(--font-body);font-size:11px;font-weight:300;color:var(--text-muted)}.transcript-entry__text{font-size:14px;line-height:1.55;color:var(--text-secondary)}.cockpit-status{font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:2px;border:1px solid var(--border-dim);color:var(--text-muted)}.cockpit-status--searching,.cockpit-status--planning{color:var(--accent-amber);border-color:#ffb3474d}.cockpit-status--comparing{color:var(--accent-purple);border-color:#7b61ff4d}.cockpit-status--awaiting_confirmation{color:var(--accent-gold);border-color:#ffd7004d}.cockpit-status--completed{color:var(--accent-green);border-color:#00ffaa4d}.cockpit-status--cancelled,.cockpit-status--failed{color:var(--accent-red);border-color:#ff6b6b4d}.panel--right .panel__body{padding:12px;display:flex;flex-direction:column;gap:14px}.cockpit-task-header__title{font-family:var(--font-display);font-size:11px;letter-spacing:.1em;color:var(--text-primary);margin-bottom:4px}.cockpit-task-header__goal{font-size:11px;color:var(--text-muted);line-height:1.5}.cockpit-section-title{font-family:var(--font-mono);font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.cockpit-timeline__list{list-style:none;display:flex;flex-direction:column;gap:6px}.cockpit-timeline__item{display:flex;gap:8px;font-size:11px;padding:6px 8px;border-left:2px solid var(--border-dim);color:var(--text-secondary)}.cockpit-timeline__item--running{border-left-color:var(--accent-amber);color:var(--accent-amber)}.cockpit-timeline__item--completed{border-left-color:var(--accent-green)}.cockpit-timeline__time{font-family:var(--font-mono);font-size:9px;color:var(--text-muted);flex-shrink:0}.tool-card{padding:10px 12px;border:1px solid var(--border-dim);border-radius:var(--radius);background:#00000026;margin-bottom:6px}.tool-card--running{border-color:#ffb3474d;animation:tool-pulse 1.5s ease infinite}@keyframes tool-pulse{0%,to{box-shadow:none}50%{box-shadow:0 0 12px #ffb3471a}}.tool-card__header{display:flex;justify-content:space-between;margin-bottom:4px}.tool-card__name{font-size:11px;font-weight:500;color:var(--text-primary)}.tool-card__status{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;color:var(--text-muted)}.tool-card__summary{font-size:10px;color:var(--text-muted);line-height:1.4}.hotel-cards{display:flex;flex-direction:column;gap:8px}.hotel-card{padding:10px 12px;border:1px solid var(--border-dim);border-radius:var(--radius);background:#00d4ff08;transition:border-color var(--transition)}.hotel-card:hover{border-color:var(--border-glow)}.hotel-card__header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:2px}.hotel-card__name{font-size:12px;font-weight:500;color:var(--text-primary)}.hotel-card__rating{font-family:var(--font-mono);font-size:10px;color:var(--accent-gold)}.hotel-card__area{font-size:10px;color:var(--text-muted);margin-bottom:4px}.hotel-card__price{font-family:var(--font-mono);font-size:13px;color:var(--accent-cyan)}.hotel-card__per{font-size:10px;color:var(--text-muted)}.hotel-card__cancel{font-size:9px;color:var(--text-muted);margin-top:4px}.confirmation-card{padding:14px;border:1px solid rgba(255,215,0,.3);border-radius:var(--radius);background:#ffd7000a}.confirmation-card__title{font-family:var(--font-display);font-size:10px;letter-spacing:.1em;color:var(--accent-gold);margin-bottom:6px}.confirmation-card__message{font-size:11px;line-height:1.5;color:var(--text-secondary);margin-bottom:12px}.confirmation-card__actions{display:flex;gap:8px}.cockpit-clear{align-self:flex-start;margin-top:4px}@media(max-width:1024px){.app-shell__grid{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.panel--left,.panel--right{max-height:220px}.panel--center{min-height:400px}}@media(max-width:600px){.app-shell{padding:8px}.avatar-stage__controls{flex-direction:column;width:100%}.avatar-stage__controls .btn{width:100%}}
