.chat-shell{grid-template-columns:272px 1fr;height:100dvh;display:grid;overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:12px;min-height:0;padding:14px 12px;display:flex}.sidebar-top{flex-direction:column;gap:10px;display:flex}.brand{letter-spacing:.01em;font-size:1.05rem;font-weight:700}.conversation-list{flex-direction:column;flex:1;gap:2px;min-height:0;display:flex;overflow-y:auto}.conversation{border-radius:8px;align-items:stretch;display:flex}.conversation:hover,.conversation.active{background:var(--surface-2)}.conversation-open{text-align:left;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:1px;min-width:0;padding:7px 8px;display:flex}.conversation-title{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.icon-button{color:var(--muted);background:0 0;border:0;padding:4px 8px;font-size:1rem}.conversation .icon-button{visibility:hidden}.conversation:hover .icon-button,.conversation.active .icon-button{visibility:visible}.sidebar-bottom{border-top:1px solid var(--border);flex-direction:column;gap:4px;padding-top:10px;display:flex}.link-button{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.chat-main{flex-direction:column;min-width:0;min-height:0;display:flex}.chat-header{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:8px;padding:10px 20px;display:flex}.chat-title{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1rem;overflow:hidden}.menu-button{display:none}.chat-scroll{flex:1;min-height:0;overflow-y:auto}.chat-column{flex-direction:column;gap:16px;max-width:880px;margin:0 auto;padding:24px 20px 32px;display:flex}.empty-state{text-align:center;margin-top:8vh}.empty-state h2{margin:0 0 6px}.suggestions{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin-top:20px;display:grid}.suggestions button{text-align:left;background:var(--surface);justify-content:flex-start;padding:10px 12px}.msg-user{justify-content:flex-end;display:flex}.msg-user .bubble{background:color-mix(in srgb, var(--accent) 12%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 25%, var(--border));white-space:pre-wrap;overflow-wrap:anywhere;border-radius:14px 14px 4px;max-width:78%;padding:9px 13px}.msg-assistant{flex-direction:column;gap:10px;min-width:0;display:flex}.msg-event{color:var(--muted);background:var(--surface-2);text-align:center;border-radius:999px;align-self:center;max-width:90%;padding:4px 12px;font-size:.85rem}.progress-note{color:var(--muted);border-left:2px solid var(--border);margin:0;padding-left:10px;font-size:.9rem}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p,.markdown ul,.markdown ol{margin:.5em 0}.markdown code{background:var(--code-bg);border-radius:4px;padding:1px 5px}.markdown pre code{background:0 0;padding:0}.tool-call{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.tool-chip{color:var(--muted);border:1px solid var(--border);background:var(--surface);border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:.82rem;display:inline-flex}.tool-chip.error{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, var(--border))}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:10px;height:10px;animation:.8s linear infinite spin}.typing{background:radial-gradient(circle closest-side, var(--muted) 90%, transparent) 0 50% / 10px 10px no-repeat, radial-gradient(circle closest-side, var(--muted) 90%, transparent) 50% 50% / 10px 10px no-repeat, radial-gradient(circle closest-side, var(--muted) 90%, transparent) 100% 50% / 10px 10px no-repeat;opacity:.6;width:36px;height:10px;animation:1.2s ease-in-out infinite pulse}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.2}}.widget{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);overflow:hidden}.widget-head{border-bottom:1px solid var(--border);background:var(--surface-2);justify-content:space-between;gap:8px;padding:8px 14px;font-size:.9rem;font-weight:600;display:flex}.widget-body{padding:10px 14px 12px}.widget-body>:first-child{margin-top:0}.table-scroll{overflow-x:auto}.strong{font-weight:600}.small{font-size:.85rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em}.badge{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:.78rem;display:inline-block}.badge.ok{background:var(--success-bg);color:var(--success)}.badge.bad{background:var(--danger-bg);color:var(--danger)}.badge.warn{background:var(--warning-bg);color:var(--warning)}.badge.info{background:color-mix(in srgb, var(--accent) 14%, var(--surface));color:var(--accent)}.chips{flex-wrap:wrap;gap:4px;display:flex}.chip{border:1px solid var(--border);border-radius:999px;padding:0 8px;font-size:.8rem}.kv{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 18px;margin:0;display:grid}.kv div{border-bottom:1px dashed var(--border);justify-content:space-between;gap:8px;padding:3px 0;display:flex}.kv dt{color:var(--muted)}.kv dd{text-align:right;margin:0}.note{background:var(--surface-2);border-radius:8px;padding:8px 10px}.app-icon{border-radius:8px}.timeline{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.timeline-head{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:4px;display:flex}.diff{border:1px solid var(--border);border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.84rem;overflow:hidden}.diff-line{grid-template-columns:18px minmax(0,max-content) minmax(0,1fr);gap:2px 8px;padding:3px 10px;display:grid}.diff-line+.diff-line{border-top:1px solid var(--border)}.diff-sign{font-weight:700}.diff-path{overflow-wrap:anywhere}.diff-value{color:var(--muted);overflow-wrap:anywhere}.diff-added{background:var(--success-bg)}.diff-added .diff-sign{color:var(--success)}.diff-removed{background:var(--danger-bg)}.diff-removed .diff-sign{color:var(--danger)}.diff-changed{background:var(--warning-bg)}.diff-changed .diff-sign{color:var(--warning)}.diff del{color:var(--danger)}.diff ins{color:var(--success);text-decoration:none}.change-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);flex-direction:column;gap:8px;padding:12px 16px 14px;display:flex}.change-card.risk-high{border-left-color:var(--danger)}.change-card.status-executed{border-left-color:var(--success)}.change-card.status-rejected,.change-card.status-expired{border-left-color:var(--border);opacity:.85}.change-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.change-kicker{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.75rem;font-weight:600}.change-title{margin:0;font-size:1.02rem}.change-details{margin:0;padding-left:18px}.change-card p,.change-card .notice{margin:0}.change-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.confirm-step{flex-direction:column;gap:8px;width:100%;display:flex}.enrollment{border-top:1px solid var(--border);flex-wrap:wrap;align-items:flex-start;gap:16px;padding-top:10px;display:flex}.enrollment img{background:#fff;border-radius:8px}.play-frame{width:100%;min-height:80px}.composer{align-items:flex-end;gap:8px;width:100%;max-width:880px;margin:0 auto;padding:12px 20px 18px;display:flex}.composer textarea{resize:none;border-radius:12px;flex:1;max-height:40vh;padding:10px 12px;line-height:1.4}.composer button{border-radius:12px;padding:10px 16px}.sidebar-backdrop{display:none}@media (max-width:820px){.chat-shell{grid-template-columns:1fr}.sidebar{z-index:20;width:min(300px,85vw);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar-open .sidebar{transform:none}.sidebar-open .sidebar-backdrop{z-index:10;background:#00000059;display:block;position:fixed;inset:0}.menu-button{display:inline-flex}.chat-column,.composer{padding-left:12px;padding-right:12px}.msg-user .bubble{max-width:92%}.diff-line{grid-template-columns:18px minmax(0,1fr)}.diff-value{grid-column:2}}.login{place-items:center;min-height:100dvh;padding:16px;display:grid}.login .card{text-align:center;width:100%;max-width:420px}
