.top-bar{height:var(--header-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.top-bar-inner{max-width:1280px;height:100%;padding:0 var(--space-6);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.top-bar-brand{align-items:center;gap:var(--space-3);color:inherit;text-decoration:none;display:flex}.top-bar-title{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md)}.top-bar-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--color-primary-muted);color:var(--color-primary-dark)}.top-bar-actions{align-items:center;gap:var(--space-4);display:flex}.top-bar-email{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.top-bar-logout{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);cursor:pointer;background:0 0}.top-bar-logout:hover{border-color:var(--color-primary);color:var(--color-primary)}.status-badge{padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap;display:inline-block}.status-badge--success{background:var(--color-success-bg);color:var(--color-success)}.status-badge--error{background:var(--color-error-bg);color:var(--color-error)}.status-badge--warning{background:var(--color-warning-bg);color:var(--color-warning)}.status-badge--neutral{background:var(--color-neutral-bg);color:var(--color-neutral)}.tabs{gap:var(--space-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-5);display:flex}.tabs-item{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px}.tabs-item:hover{color:var(--color-text)}.tabs-item--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.subsection-heading{margin:0 0 var(--space-4);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.meta-item-span{grid-column:1/-1}.easysurvey-block{margin-bottom:var(--space-6)}.empty-inline{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.timeline-list{gap:var(--space-2);flex-direction:column;display:flex}.timeline-item{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.timeline-row{gap:var(--space-4);width:100%;padding:var(--space-3) var(--space-4);background:var(--color-surface);text-align:left;cursor:pointer;font-size:var(--font-size-sm);border:none;grid-template-columns:180px 1fr auto auto;align-items:center;display:grid}.timeline-row:hover{background:var(--color-primary-muted)}.timeline-time{color:var(--color-text-secondary);white-space:nowrap}.timeline-operation{font-weight:var(--font-weight-medium)}.timeline-chevron{color:var(--color-text-muted);font-size:var(--font-size-xs)}.timeline-detail{border-radius:0;margin:0}.timeline-detail-empty{padding:var(--space-3) var(--space-4);background:var(--color-bg)}.ai-messages-section{margin-bottom:var(--space-8)}.chat-list{gap:var(--space-3);flex-direction:column;display:flex}.chat-bubble{max-width:85%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--font-size-sm)}.chat-bubble--user{background:var(--color-primary-muted);align-self:flex-end}.chat-bubble--assistant{background:var(--color-bg);border:1px solid var(--color-border);align-self:flex-start}.chat-role{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-1)}.chat-content{white-space:pre-wrap;word-break:break-word}.question-list{padding-left:var(--space-5);margin:0}.question-item{margin-bottom:var(--space-4)}.question-title{font-weight:var(--font-weight-medium);margin-bottom:var(--space-1)}.question-meta{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.option-list{padding-left:var(--space-5);font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}@media (width<=768px){.timeline-row{grid-template-rows:auto auto;grid-template-columns:1fr auto}.timeline-time{grid-column:1/-1}}.login-page{min-height:100dvh;padding:var(--space-6);justify-content:center;align-items:center;display:flex}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-md);padding:var(--space-8)}.login-title{margin:0 0 var(--space-2);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.login-subtitle{margin:0 0 var(--space-6);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.login-form{gap:var(--space-4);flex-direction:column;display:flex}.login-label{gap:var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);flex-direction:column;display:flex}.login-label input{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.login-label input:focus{outline:2px solid var(--color-primary-muted);border-color:var(--color-primary)}.login-password-row{gap:var(--space-2);display:flex}.login-password-row input{flex:1}.login-password-toggle{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0 var(--space-3);font-size:var(--font-size-xs);cursor:pointer;white-space:nowrap;background:0 0}.login-forgot{font-size:var(--font-size-sm);color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0}.login-error{font-size:var(--font-size-sm);color:var(--color-error);margin:0}.login-info{font-size:var(--font-size-sm);color:var(--color-success);margin:0}.login-submit,.login-google{width:100%;padding:var(--space-3);border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);cursor:pointer;border:none}.login-submit{background:var(--gradient-cta);color:#fff}.login-submit:disabled,.login-google:disabled{opacity:.6;cursor:not-allowed}.login-separator{align-items:center;gap:var(--space-3);margin:var(--space-5) 0;color:var(--color-text-muted);font-size:var(--font-size-sm);display:flex}.login-separator:before,.login-separator:after{content:"";background:var(--color-border);flex:1;height:1px}.login-google{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text)}.login-google:hover:not(:disabled){border-color:var(--color-primary)}.login-back{margin-top:var(--space-4);color:var(--color-primary);font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:none}.projects-toolbar{align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.projects-search{max-width:480px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);flex:1}.projects-search:focus{outline:2px solid var(--color-primary-muted);border-color:var(--color-primary)}.projects-count{font-size:var(--font-size-sm);color:var(--color-text-secondary);white-space:nowrap}.market-chip{align-items:center;gap:var(--space-2);padding:2px var(--space-2);border-radius:var(--radius-md);background:var(--color-bg);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);display:inline-flex}.market-chip--empty{background:0 0}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-main{padding:var(--space-6);flex:1;width:100%;max-width:1280px;margin:0 auto;overflow:auto}.page-title{margin:0 0 var(--space-2);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.page-subtitle{margin:0 0 var(--space-6);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.back-link{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-decoration:none;display:inline-flex}.back-link:hover{color:var(--color-primary)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-body{padding:var(--space-5)}.meta-grid{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.meta-item-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:var(--space-1)}.meta-item-value{font-size:var(--font-size-sm);word-break:break-word}.data-table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.data-table th,.data-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top}.data-table th{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background:var(--color-bg);white-space:nowrap}.data-table tbody tr{cursor:pointer;transition:background .12s}.data-table tbody tr:hover{background:var(--color-primary-muted)}.data-table tbody tr.no-click{cursor:default}.data-table tbody tr.no-click:hover{background:0 0}.empty-state{padding:var(--space-8);text-align:center;color:var(--color-text-secondary)}.error-banner{padding:var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-md);background:var(--color-error-bg);color:var(--color-error);font-size:var(--font-size-sm)}.loading-state{padding:var(--space-8);text-align:center;color:var(--color-text-secondary)}.brief-block{white-space:pre-wrap;font-size:var(--font-size-sm);color:var(--color-text);margin:0;line-height:1.6}.json-pre{padding:var(--space-4);color:#cdd6f4;border-radius:var(--radius-md);font-size:var(--font-size-xs);white-space:pre-wrap;word-break:break-word;background:#1e1e2e;margin:0;overflow-x:auto}.market-badges{gap:var(--space-2);flex-wrap:wrap;display:flex}.link-button{color:var(--color-primary);font-weight:var(--font-weight-medium);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.link-button:hover{color:var(--color-primary-hover)}.toggle-row{align-items:center;gap:var(--space-3);margin:var(--space-4) 0;display:flex}.toggle-row label{font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer}.section-heading{margin:0 0 var(--space-4);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.mono-id{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:var(--font-size-xs);word-break:break-all}:root{--color-primary:#7636f5;--color-primary-start:#6126ff;--color-primary-end:#7a36f5;--color-primary-dark:#381086;--color-primary-muted:#7636f51f;--color-primary-hover:#5620e8;--color-accent:#824ff2;--gradient-cta:linear-gradient(135deg, var(--color-primary-start) 0%, var(--color-primary-end) 100%);--color-bg:#f6f3ff;--color-surface:#fff;--color-border:#e5e0ed;--color-border-strong:#d8d0e4;--color-text:#211a30;--color-text-secondary:#6e667d;--color-text-muted:#9a93a8;--color-success:#12b76a;--color-success-bg:#ecfdf3;--color-error:#d92d20;--color-error-bg:#fef3f2;--color-warning:#f79009;--color-warning-bg:#fffaeb;--color-neutral-bg:#f2f4f7;--color-neutral:#667085;--header-height:56px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-full:999px;--shadow-sm:0 4px 12px #2e1a520f;--shadow-md:0 16px 32px #2e1a5217;--font-sans:"Plus Jakarta Sans", Inter, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.5rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100dvh;margin:0}body{font-family:var(--font-sans);font-size:var(--font-size-md);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;line-height:1.5}button,input,textarea,select{font:inherit}a{color:var(--color-primary)}
