:root{color-scheme:light;font-family:Segoe UI,Arial,sans-serif;color:#111;background:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-height:100vh;background:#fff}button,input{font:inherit}button{cursor:pointer}.municipal-page{min-height:100vh;padding:28px;background:#fff;color:#111}.municipal-empty{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:24px;background:#fff}.municipal-launch-card{display:grid;grid-template-columns:64px minmax(0,1fr);gap:20px;width:min(920px,100%);border:1px solid #d1d5db;border-radius:8px;background:#fff;padding:28px}.municipal-launch-card h1,.municipal-app-header h1,.municipal-panel-title-row h2,.municipal-datasets-panel h2{margin:0;line-height:1}.municipal-launch-card h1{font-size:1.5rem}.municipal-launch-card p,.municipal-app-header p{margin:8px 0 0;color:#475569}.municipal-eyebrow{margin:0 0 10px!important;color:#536075!important;font-size:.75rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.municipal-launch-icon,.municipal-title-icon{display:flex;align-items:center;justify-content:center;background:#111;color:#fff}.municipal-launch-icon{width:56px;height:56px;border-radius:8px}.municipal-inline-alert{display:flex;align-items:center;gap:10px;margin-top:18px;border:1px solid #fecaca;border-radius:8px;background:#fef2f2;padding:14px 16px;color:#b91c1c}.municipal-host-link{display:inline-flex;margin-top:12px;color:#111;font-size:.875rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}.municipal-spin{animation:municipal-spin .8s linear infinite}@keyframes municipal-spin{to{transform:rotate(360deg)}}.municipal-app-card{min-height:calc(100vh - 56px);border:1px solid #d1d5db;border-radius:8px;background:#fff;overflow:hidden}.municipal-app-header{display:flex;min-height:96px;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #d1d5db;padding:22px 28px}.municipal-title-block{display:flex;min-width:0;align-items:center;gap:16px}.municipal-title-icon{width:44px;height:44px;flex:0 0 auto;border-radius:8px}.municipal-app-header h1{font-size:1.55rem;font-weight:800}.municipal-app-header p{font-size:.94rem}.municipal-header-actions{display:flex;align-items:center;gap:8px}.municipal-credit-meter{display:inline-flex;height:40px;align-items:center;gap:6px;border:1px solid #cfd7e3;border-radius:6px;padding:0 12px;color:#111;font-size:.85rem}.municipal-credit-meter strong{font-size:1rem}.municipal-credit-meter span{color:#64748b;font-weight:700}.municipal-icon-button{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border:1px solid #cfd7e3;border-radius:6px;background:#fff;color:#111}.municipal-workspace{position:relative;display:grid;grid-template-columns:300px minmax(420px,1fr) 360px;min-height:calc(100vh - 153px)}.municipal-data-banner{position:absolute;left:18px;right:18px;top:12px;z-index:10;display:flex;align-items:center;gap:8px;border:1px solid #fecaca;border-radius:8px;background:#fef2f2;padding:10px 12px;color:#b91c1c;font-size:.86rem;font-weight:700}.municipal-chat-list,.municipal-chat-panel,.municipal-datasets-panel{min-width:0}.municipal-chat-list{border-right:1px solid #d1d5db;padding:20px 18px}.municipal-panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.municipal-panel-title-row h2,.municipal-datasets-panel h2{font-size:1.25rem;font-weight:800}.municipal-primary-button,.municipal-send-button,.municipal-download-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #111111;border-radius:6px;background:#111;color:#fff;font-weight:800}.municipal-primary-button{height:40px;padding:0 14px}.municipal-chat-items{display:flex;flex-direction:column;margin-top:14px}.municipal-chat-row{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;border:0;border-bottom:1px solid #e5e7eb;border-radius:6px;background:#fff;padding:14px 8px;text-align:left;color:#111}.municipal-chat-row.is-active{background:#f1f5f9}.municipal-chat-row strong,.municipal-chat-row small{display:block}.municipal-chat-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem}.municipal-chat-row small{margin-top:4px;color:#64748b}.municipal-chat-panel{display:flex;flex-direction:column;border-right:1px solid #d1d5db;padding:18px 24px 20px}.municipal-chat-date{display:flex;align-items:center;gap:14px;color:#64748b;font-size:.8rem;text-align:center}.municipal-chat-date:before,.municipal-chat-date:after{content:"";height:1px;flex:1;background:#e5e7eb}.municipal-messages{display:flex;flex:1;flex-direction:column;gap:18px;padding:28px 0;overflow:auto}.municipal-message-row{display:flex;max-width:78%;align-items:flex-start;gap:12px}.municipal-message-row.is-user{align-self:flex-end;flex-direction:row-reverse}.municipal-avatar{display:inline-flex;width:36px;height:36px;flex:0 0 auto;align-items:center;justify-content:center;border-radius:999px;background:#111;color:#fff;font-size:.72rem;font-weight:900}.municipal-message-row.is-user .municipal-avatar{background:#eef2f7;color:#111}.municipal-message-bubble{border-radius:8px;background:#f1f5f9;padding:12px 14px;color:#111827;font-size:.95rem;line-height:1.45}.municipal-message-row.is-user .municipal-message-bubble{background:#e8f1ff}.municipal-message-time{margin-top:6px;color:#64748b;font-size:.8rem}.municipal-message-row.is-user .municipal-message-time{text-align:right}.municipal-chat-input-row{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:10px}.municipal-chat-input-row input{min-width:0;height:48px;border:1px solid #cfd7e3;border-radius:6px;padding:0 14px;color:#111}.municipal-chat-input-row input:focus{border-color:#111;outline:none}.municipal-send-button{height:48px}.municipal-datasets-panel{padding:20px 18px}.municipal-dataset-list{display:flex;flex-direction:column;gap:12px;margin-top:14px}.municipal-dataset-card{border:1px solid #d9e1ec;border-radius:8px;padding:16px}.municipal-dataset-top,.municipal-dataset-title{display:flex;align-items:flex-start;gap:10px}.municipal-dataset-top{justify-content:space-between}.municipal-dataset-title{min-width:0}.municipal-dataset-title h3{margin:0;font-size:.98rem;line-height:1.3}.municipal-status{display:inline-flex;margin-top:12px;border-radius:6px;padding:3px 10px;font-size:.78rem;font-weight:800}.municipal-status.is-ready{background:#dcfce7;color:#15803d}.municipal-status.is-building{background:#dbeafe;color:#1d4ed8}.municipal-status.is-review{background:#fef3c7;color:#92400e}.municipal-status.is-failed{background:#fee2e2;color:#b91c1c}.municipal-dataset-stats,.municipal-dataset-meta{margin:10px 0 0;color:#475569;font-size:.9rem}.municipal-dataset-stats{display:flex;flex-wrap:wrap;gap:7px}.municipal-dataset-meta{color:#64748b}.municipal-download-button{height:40px;margin-top:16px;padding:0 16px}@media(max-width:1100px){.municipal-workspace{grid-template-columns:260px minmax(380px,1fr)}.municipal-datasets-panel{grid-column:1 / -1;border-top:1px solid #d1d5db}}@media(max-width:760px){.municipal-page{padding:12px}.municipal-app-header,.municipal-title-block{align-items:flex-start}.municipal-app-header,.municipal-workspace{display:flex;flex-direction:column}.municipal-chat-list,.municipal-chat-panel{border-right:0;border-bottom:1px solid #d1d5db}.municipal-message-row{max-width:100%}}
