:root{--color-bg:#fafafa;--color-surface:#fff;--color-border:#e4e4e7;--color-border-subtle:#f4f4f5;--color-text:#18181b;--color-text-muted:#71717a;--color-text-faint:#a1a1aa;--color-secondary-bg:#fff;--color-secondary-border:#e4e4e7;--color-secondary-text:#18181b;--color-secondary-hover:#f4f4f5;--color-accent:#4f46e5;--color-accent-hover:#4338ca;--color-accent-subtle:#eef2ff;--color-accent-text:#4338ca;--color-focus-ring:#6366f1;--color-status-open-bg:#ecfdf5;--color-status-open-text:#047857;--color-status-progress-bg:#fffbeb;--color-status-progress-text:#b45309;--color-status-blocked-bg:#fef2f2;--color-status-blocked-text:#b91c1c;--color-status-done-bg:#f4f4f5;--color-status-done-text:#52525b;--font-sans:"Inter", system-ui, sans-serif;--font-size-body:14px;--font-size-meta:12px;--font-size-title:20px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--space-1:8px;--space-2:16px;--space-3:24px;--sidebar-width:240px;--list-row-min-height:48px;--radius-sm:6px;--radius-md:8px;--breakpoint-desktop:1280px}.btn{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;line-height:1.25;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}a.btn,a.btn:hover{text-decoration:none}.btn--primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn--primary:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:#fff;text-decoration:none}.btn--secondary{background:var(--color-secondary-bg);color:var(--color-secondary-text);border-color:var(--color-secondary-border)}.btn--secondary:hover:not(:disabled){background:var(--color-secondary-hover);text-decoration:none}.btn--ghost{color:var(--color-text);background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){background:var(--color-border-subtle);text-decoration:none}.btn--danger{background:var(--color-danger,#c62828);color:#fff;border-color:var(--color-danger,#c62828)}.btn--danger:hover:not(:disabled){background:color-mix(in srgb, var(--color-danger,#c62828) 85%, #000);border-color:color-mix(in srgb, var(--color-danger,#c62828) 85%, #000);color:#fff;text-decoration:none}.input,.textarea,.select{width:100%;padding:var(--space-1) var(--space-2);font-size:var(--font-size-body);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color .15s;display:block}.input::placeholder,.textarea::placeholder{color:var(--color-text-faint)}.input:focus,.textarea:focus,.select:focus{border-color:var(--color-focus-ring);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-focus-ring) 25%, transparent);outline:none}.textarea{resize:vertical;min-height:120px}.form-field{flex-direction:column;gap:4px;display:flex}.form-stack{gap:var(--space-2);flex-direction:column;display:flex}.form-actions{gap:var(--space-1);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.confirm-panel{padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.form-label{font-size:var(--font-size-meta);font-weight:var(--font-weight-medium);color:var(--color-text)}.form-help{font-size:var(--font-size-meta);color:var(--color-text-muted);margin:0;line-height:1.5}.link-button{color:var(--color-accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.link-button:hover{color:var(--color-accent-hover)}.badge{font-size:var(--font-size-meta);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);white-space:nowrap;align-items:center;padding:2px 8px;line-height:1.4;display:inline-flex}.badge--open{background:var(--color-status-open-bg);color:var(--color-status-open-text)}.badge--progress{background:var(--color-status-progress-bg);color:var(--color-status-progress-text)}.badge--blocked{background:var(--color-status-blocked-bg);color:var(--color-status-blocked-text)}.badge--done{background:var(--color-status-done-bg);color:var(--color-status-done-text)}.badge--label{background:color-mix(in srgb, var(--label-hue,#71717a) 10%, transparent);color:var(--label-hue,#52525b)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.state-panel{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3);text-align:center;flex-direction:column;display:flex}.state-panel__title{font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--color-text)}.state-panel__description{font-size:var(--font-size-meta);color:var(--color-text-muted);max-width:320px}.state-panel__message{font-size:var(--font-size-body);color:var(--color-text-muted)}.loading-spinner{border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:24px;height:24px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg, var(--color-border-subtle) 25%, var(--color-border) 50%, var(--color-border-subtle) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.2s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.page-layout{background:var(--color-bg);min-height:100vh;display:flex}.page-layout__sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;flex-shrink:0;display:flex}.page-layout__brand{align-items:center;gap:var(--space-1);padding:var(--space-2);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text);border-bottom:1px solid var(--color-border-subtle);display:flex}.page-layout__nav{padding:var(--space-1);flex:1}.page-layout__nav-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.page-layout__nav-link{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--color-text-muted);border-radius:var(--radius-sm);text-decoration:none;transition:background-color .15s,color .15s;display:flex}.page-layout__nav-link:hover{background:var(--color-border-subtle);color:var(--color-text);text-decoration:none}.page-layout__nav-link--active,.page-layout__nav-link--active:hover{background:var(--color-accent-subtle);color:var(--color-accent-text)}.page-layout__nav-icon{flex-shrink:0;width:18px;height:18px;display:flex}.page-layout__workspace{padding:var(--space-2);border-top:1px solid var(--color-border-subtle);font-size:var(--font-size-meta);color:var(--color-text-muted)}.page-layout__user{justify-content:space-between;align-items:center;gap:var(--space-1);padding:var(--space-2);border-top:1px solid var(--color-border-subtle);font-size:var(--font-size-meta);color:var(--color-text-muted);display:flex}.page-layout__main{flex-direction:column;flex:1;min-width:0;display:flex}.page-layout__app-bar{align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex}.page-layout__content{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.workspace-search{align-items:flex-end;gap:var(--space-2);flex:1;max-width:36rem;display:flex;position:relative}.workspace-search .form-field{flex:1;margin:0}.workspace-search__archived-toggle{align-items:center;gap:var(--space-1);font-size:var(--font-size-meta);color:var(--color-text-muted);white-space:nowrap;padding-bottom:var(--space-1);display:flex}.workspace-search__dropdown{z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md,0 4px 12px #0000001f);max-height:20rem;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.workspace-search__status{padding:var(--space-2);font-size:var(--font-size-meta);color:var(--color-text-muted);margin:0}.workspace-search__status--error{color:var(--color-danger,#c62828)}.workspace-search__results{margin:0;padding:0;list-style:none}.workspace-search__result{padding:var(--space-1) var(--space-2);color:inherit;border-bottom:1px solid var(--color-border-subtle);flex-direction:column;gap:2px;text-decoration:none;display:flex}.workspace-search__result:hover{background:var(--color-border-subtle)}.workspace-search__result-title{font-weight:var(--font-weight-medium);color:var(--color-text)}.workspace-search__result-meta{font-size:var(--font-size-meta);color:var(--color-text-muted)}.github-import-page{padding:var(--space-3);max-width:48rem}.github-import-page__header{margin-bottom:var(--space-3)}.github-import-form{gap:var(--space-2);margin-bottom:var(--space-3);flex-direction:column;display:flex}.github-import-form__actions{gap:var(--space-2);display:flex}.tickets-command{flex:1;min-height:0;display:flex}.tickets-command__list-pane{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;width:100%;display:flex}.tickets-command__list-header{padding:var(--space-2);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.tickets-command__list-actions{align-items:center;gap:var(--space-1);display:flex}.tickets-command__list-body{flex:1;overflow-y:auto}.tickets-command__detail-pane{background:var(--color-surface);flex-direction:column;flex:1;min-width:0;display:none;overflow-y:auto}.tickets-command__detail-empty{color:var(--color-text-muted);font-size:var(--font-size-meta);flex:1;justify-content:center;align-items:center;display:flex}.tickets-command--desktop .tickets-command__list-pane{flex-shrink:0;width:360px}.tickets-command--desktop .tickets-command__detail-pane{display:flex}.tickets-command--mobile-detail .tickets-command__list-pane{display:none}.tickets-command--mobile-detail .tickets-command__detail-pane{width:100%;display:flex}.ticket-list{margin:0;padding:0;list-style:none}.ticket-row{min-height:var(--list-row-min-height);padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--color-border-subtle);cursor:pointer;color:inherit;flex-direction:column;justify-content:center;text-decoration:none;transition:background-color .15s;display:flex}.ticket-row:hover{background:var(--color-bg);text-decoration:none}.ticket-row--selected{background:var(--color-accent-subtle)}.ticket-row__title{align-items:center;gap:var(--space-1);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--color-text);min-width:0;display:flex}.ticket-row__title-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ticket-display-id{flex-shrink:0;text-decoration:none}.ticket-display-id--github:hover{text-decoration:none}.ticket-breadcrumb{padding:0 var(--space-3)}.ticket-breadcrumb__list{gap:var(--space-1);font-size:var(--font-size-meta);color:var(--color-text-muted);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.ticket-breadcrumb__item+.ticket-breadcrumb__item:before{content:"/";margin-right:var(--space-1);color:var(--color-text-muted)}.ticket-breadcrumb__item--current{color:var(--color-text)}.activity-timeline__ticket-ref{font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.ticket-detail__identity{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.ticket-detail__display-id{font-size:var(--font-size-meta);color:var(--color-text-muted);margin:0}.ticket-row__meta{align-items:center;gap:var(--space-1);font-size:var(--font-size-meta);color:var(--color-text-muted);margin-top:2px;display:flex}.project-detail{gap:var(--space-3);padding:var(--space-3);flex-direction:column;display:flex}.project-detail__header{justify-content:space-between;align-items:flex-start;gap:var(--space-2);flex-wrap:wrap;display:flex}.project-detail__actions{gap:var(--space-1);flex-wrap:wrap;display:flex}.project-detail__slug{font-size:var(--font-size-meta);color:var(--color-text-muted);margin:0}.project-detail__meta-bar{align-items:center;gap:var(--space-2);font-size:var(--font-size-meta);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.project-detail__description{white-space:pre-wrap;margin:0;line-height:1.6}.project-detail__description--empty{color:var(--color-text-muted);font-style:italic}.project-detail__related{gap:var(--space-2);flex-direction:column;display:flex}.project-detail__related-group{gap:var(--space-1);flex-direction:column;display:flex}.project-list{margin:0;padding:0;list-style:none}.project-list__item{padding:var(--space-2);border-bottom:1px solid var(--color-border);color:inherit;text-decoration:none;display:block}.project-list__item:hover{background:var(--color-bg);text-decoration:none}.project-list__item--selected{background:var(--color-accent-subtle)}.project-list__name{font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.project-list__slug{font-size:var(--font-size-meta);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;display:block;overflow:hidden}.ticket-detail{gap:var(--space-3);padding:var(--space-3);flex-direction:column;display:flex}.ticket-detail__header{gap:var(--space-1);flex-direction:column;display:flex}.ticket-detail__title-row{justify-content:space-between;align-items:flex-start;gap:var(--space-2);flex-wrap:wrap;display:flex}.ticket-detail__actions{gap:var(--space-1);flex-wrap:wrap;display:flex}.ticket-detail__meta-bar{align-items:center;gap:var(--space-2);font-size:var(--font-size-meta);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.ticket-detail__body{font-size:var(--font-size-body);color:var(--color-text);overflow-wrap:anywhere;line-height:1.6}.ticket-detail__body--empty{color:var(--color-text-muted);white-space:pre-wrap;font-style:italic}.markdown-prose{overflow-wrap:anywhere;line-height:1.6}.markdown-prose>:first-child{margin-top:0}.markdown-prose>:last-child{margin-bottom:0}.markdown-prose h1,.markdown-prose h2,.markdown-prose h3,.markdown-prose h4,.markdown-prose h5,.markdown-prose h6{margin:var(--space-2) 0 var(--space-1);font-weight:var(--font-weight-medium);color:var(--color-text);line-height:1.35}.markdown-prose h1{font-size:calc(var(--font-size-body) * 1.35)}.markdown-prose h2{font-size:calc(var(--font-size-body) * 1.2)}.markdown-prose h3,.markdown-prose h4,.markdown-prose h5,.markdown-prose h6{font-size:var(--font-size-body)}.markdown-prose p,.markdown-prose ul,.markdown-prose ol,.markdown-prose blockquote,.markdown-prose pre{margin:0 0 var(--space-2)}.markdown-prose ul,.markdown-prose ol{padding-left:1.5em}.markdown-prose li+li{margin-top:var(--space-1)}.markdown-prose li>p{margin-bottom:var(--space-1)}.markdown-prose blockquote{padding-left:var(--space-2);border-left:3px solid var(--color-border);color:var(--color-text-muted)}.markdown-prose code{border-radius:var(--radius-sm);background:var(--color-border-subtle);padding:.1em .35em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.9em}.markdown-prose pre{padding:var(--space-2);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);overflow-x:auto}.markdown-prose pre code{background:0 0;border-radius:0;padding:0}.markdown-prose a{color:var(--color-accent);text-decoration:underline}.markdown-prose a:hover{color:var(--color-accent-hover)}.markdown-prose--inline{display:inline}.markdown-prose--inline>*{margin:0;display:inline}.mention{color:var(--color-accent-text);background:var(--color-accent-subtle);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium);padding:0 .2em}.ticket-detail__section{gap:var(--space-1);flex-direction:column;display:flex}.ticket-detail__section-heading{font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--color-text)}.ticket-detail__edit-form{gap:var(--space-2);flex-direction:column;display:flex}.ticket-detail__edit-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.ticket-detail__edit-actions,.ticket-detail__confirm-actions{gap:var(--space-1);flex-wrap:wrap;display:flex}.ticket-detail__confirm{padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.ticket-detail__error{color:var(--color-danger,#b42318);font-size:var(--font-size-meta)}.activity-timeline{border-top:1px solid var(--color-border);background:var(--color-bg);padding:var(--space-3)}.activity-timeline__heading{font-size:var(--font-size-body);font-weight:var(--font-weight-medium);margin-bottom:var(--space-2);color:var(--color-text)}.activity-timeline__list{margin:0;padding:0;list-style:none;position:relative}.activity-timeline__list:before{content:"";background:var(--color-border);width:2px;position:absolute;top:8px;bottom:8px;left:11px}.timeline-event{gap:var(--space-2);padding:var(--space-1) 0;display:flex;position:relative}.timeline-event__icon{background:var(--color-surface);border:2px solid var(--color-border);width:24px;height:24px;color:var(--color-text-muted);z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.timeline-event__content{justify-content:space-between;align-items:baseline;gap:var(--space-1);flex-wrap:wrap;flex:1;min-width:0;display:flex}.timeline-event__summary{font-size:var(--font-size-body);color:var(--color-text)}.timeline-event__timestamp{font-size:var(--font-size-meta);color:var(--color-text-muted);white-space:nowrap}.auth-shell{min-height:100vh;padding:var(--space-3);background:var(--color-bg);justify-content:center;align-items:center;display:flex}.auth-card{width:100%;max-width:400px;padding:var(--space-3)}.auth-card__title{margin-bottom:var(--space-3);text-align:center}.auth-form{gap:var(--space-2);flex-direction:column;display:flex}.auth-form__error{font-size:var(--font-size-meta);color:var(--color-status-blocked-text)}.auth-dev-hint{margin-top:var(--space-3);padding:var(--space-2);font-size:var(--font-size-meta);color:var(--color-text-muted);background:var(--color-border-subtle);border-radius:var(--radius-md)}.auth-dev-hint pre{margin:var(--space-1) 0;padding:var(--space-1);background:var(--color-surface);border-radius:var(--radius-sm);font-size:11px;overflow-x:auto}.create-form{gap:var(--space-2);flex-direction:column;max-width:640px;display:flex}.page-header{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);background:var(--color-surface);justify-content:space-between;align-items:center;display:flex}.page-content{padding:var(--space-3)}.detail-back-link{padding:var(--space-2) var(--space-3) 0;font-size:var(--font-size-meta);align-items:center;gap:4px;display:inline-flex}.ticket-collaboration{gap:var(--space-3);flex-direction:column;display:flex}.ticket-collaboration__error{color:var(--color-danger,#c62828);font-size:var(--font-size-meta)}.ticket-collaboration__chips{gap:var(--space-1);margin-bottom:var(--space-1);flex-wrap:wrap;display:flex}.ticket-collaboration__chips>button{cursor:pointer;background:0 0;border:none;padding:0}.ticket-collaboration__picker{gap:var(--space-1);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.ticket-collaboration__comments{margin:0 0 var(--space-2);gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.ticket-collaboration__comments p,.ticket-comment__body{margin-top:var(--space-1)}.ticket-collaboration [data-testid=mention-autocomplete]{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.ticket-collaboration [data-testid=mention-autocomplete] button{padding:var(--space-1);color:var(--color-accent);cursor:pointer;text-align:left;font-size:var(--font-size-meta);background:0 0;border:none}.ticket-collaboration [data-testid=mention-autocomplete] button:hover{background:var(--color-border-subtle)}*,:before,:after{box-sizing:border-box}html{font-family:var(--font-sans);font-size:var(--font-size-body);font-weight:var(--font-weight-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;line-height:1.5}body{min-height:100vh;margin:0}#root{min-height:100vh}h1,h2,h3{font-weight:var(--font-weight-semibold);margin:0}h1{font-size:var(--font-size-title)}h2{font-size:var(--font-size-body);font-weight:var(--font-weight-medium)}p{margin:0}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover);text-decoration:underline}button,input,textarea,select{font:inherit}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
