:root { color: #1f2933; background: #f5f7fa; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-synthesis: none; text-rendering: optimizeLegibility; } * { box-sizing: border-box; } body { min-width: 360px; width: 100vw; height: 100vh; margin: 0; overflow: hidden; background: #f5f7fa; } button, a, select, input, textarea { font: inherit; } button, a { -webkit-tap-highlight-color: transparent; } .side-panel-shell, .app-panel { width: 100%; height: 100%; min-height: 0; } .app-panel { display: grid; grid-template-rows: auto 1fr auto; overflow: hidden; background: #f8fafc; } h1, h2, p { margin: 0; } h1 { color: #102a43; font-size: 18px; line-height: 1.1; } .toolbar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; border-bottom: 1px solid #d9e2ec; background: #d9e2ec; } .tool-button, .icon-button, .visit-button, .danger-button, .primary-button { border: 0; } .tool-button { display: grid; justify-items: center; gap: 3px; min-width: 0; min-height: 50px; padding: 7px 4px; background: #ffffff; color: #334e68; cursor: pointer; } .tool-button svg { width: 17px; height: 17px; stroke-width: 2.3; } .tool-button span { max-width: 100%; overflow: hidden; font-size: 10px; font-weight: 800; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; } .tool-button[data-active="true"] { background: #e6f6ff; color: #075985; } .tool-button:disabled { cursor: not-allowed; opacity: 0.42; } .content-panel { display: grid; grid-template-rows: auto 1fr; min-height: 0; } .view-header { padding: 10px 12px 8px; border-bottom: 1px solid #edf2f7; background: #f8fafc; } .view-header[hidden] { display: none; } .view-header h2 { color: #102a43; font-size: 15px; line-height: 1.2; } .view-header p { margin-top: 2px; color: #52616f; font-size: 11px; line-height: 1.35; } .view-content { display: grid; align-content: start; gap: 8px; min-height: 0; overflow-y: auto; padding: 8px; } .repo-list { display: grid; gap: 0; } .compact-list { display: grid; gap: 0; } .repo-row { display: grid; grid-template-columns: minmax(150px, 1fr) 70px 58px minmax(86px, 0.8fr); align-items: center; gap: 5px; border: 0; border-bottom: 1px solid #d9e2ec; border-radius: 0; padding: 3px 6px; background: #ffffff; } .repo-row:first-child { border-top: 1px solid #d9e2ec; } .workspace-row, .url-row, .agent-row { display: grid; align-items: center; gap: 5px; border-bottom: 1px solid #d9e2ec; padding: 3px 6px; background: #ffffff; } .workspace-row { grid-template-columns: minmax(128px, 0.9fr) minmax(120px, 1fr); } .url-row { grid-template-columns: minmax(150px, 1fr) auto; } .agent-row { grid-template-columns: minmax(0, 1fr) auto; } .workspace-row:first-child, .url-row:first-child, .agent-row:first-child { border-top: 1px solid #d9e2ec; } .repo-main { display: grid; gap: 2px; min-width: 0; } .row-main { display: grid; gap: 1px; min-width: 0; } .item-card { display: grid; gap: 8px; border: 1px solid #d9e2ec; border-radius: 7px; padding: 9px; background: #ffffff; } .dense-card { gap: 7px; } .item-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 9px; } .item-title { min-width: 0; overflow: hidden; color: #102a43; font-size: 12px; font-weight: 850; line-height: 1.25; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; } h2.item-title { white-space: normal; } a.item-title:hover, .repo-link:hover, .url-text:hover { text-decoration: underline; } .repo-meta { overflow: hidden; color: #52616f; font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; } .repo-link-cell { min-width: 0; overflow: hidden; } .commit-message { min-width: 0; overflow: hidden; color: #52616f; font-size: 10px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; } .linked-row { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; color: #52616f; font-size: 11px; } .link-chip { display: inline-flex; align-items: center; border: 1px solid #9fb3c8; border-radius: 999px; padding: 1px 6px; background: #f0f4f8; color: #334e68; font-size: 10px; font-weight: 850; } .path-text { overflow-wrap: anywhere; color: #334e68; font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace; font-size: 10px; line-height: 1.3; } .repo-link-list { display: flex; flex-wrap: wrap; gap: 4px; min-width: 0; } .repo-link, .url-text { overflow-wrap: anywhere; color: #0b6bcb; font-size: 11px; font-weight: 750; text-decoration: none; } .visit-button, .danger-button, .secondary-button, .primary-button { flex: 0 0 auto; border-radius: 6px; padding: 4px 7px; background: #0b6bcb; color: #ffffff; cursor: pointer; font-size: 11px; font-weight: 850; } .url-actions { display: grid; gap: 3px; } .agent-actions, .agent-editor-actions { display: flex; align-items: center; gap: 4px; } .agent-editor-actions .primary-button { width: auto; } .danger-button { background: #fee4e2; color: #9f1d14; } .compact-button { padding: 3px 6px; font-size: 10px; } .secondary-button { border: 1px solid #9fb3c8; background: #eef4f9; color: #243b53; } .secondary-link { display: inline-flex; align-items: center; min-height: 24px; border: 1px solid #9fb3c8; border-radius: 6px; padding: 3px 6px; background: #eef4f9; color: #243b53; font-size: 10px; font-weight: 850; text-decoration: none; } .secondary-button:disabled { cursor: wait; opacity: 0.6; } .primary-button { width: 100%; min-height: 34px; } .primary-button:disabled { cursor: not-allowed; opacity: 0.48; } .empty-state { border: 1px dashed #bcccdc; border-radius: 7px; padding: 14px; color: #52616f; background: #ffffff; font-size: 12px; text-align: center; } .muted { color: #829ab1; font-size: 11px; } .form-stack { display: grid; gap: 12px; } .form-stack label, fieldset { display: grid; gap: 5px; min-width: 0; } .form-stack label > span, legend { color: #52616f; font-size: 11px; font-weight: 850; } fieldset { border: 1px solid #d9e2ec; border-radius: 7px; margin: 0; padding: 8px; } .radio-row { display: flex; grid-template-columns: auto 1fr; align-items: center; gap: 7px; color: #243b53; font-size: 12px; } input[type="text"], input[type="file"], textarea, select { width: 100%; min-height: 32px; border: 1px solid #bcccdc; border-radius: 6px; padding: 6px 8px; background: #ffffff; color: #102a43; font-size: 12px; } textarea { min-height: 112px; line-height: 1.35; resize: vertical; } input[readonly] { background: #f0f4f8; color: #334e68; } .issue-card { gap: 10px; } .issue-section { display: grid; gap: 7px; } .section-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 2px; } .section-heading > span { color: #52616f; font-size: 10px; font-weight: 850; text-transform: uppercase; } .issue-list { display: grid; gap: 0; border-top: 1px solid #d9e2ec; } .issue-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 5px; width: 100%; border-bottom: 1px solid #d9e2ec; padding: 4px 6px; background: #ffffff; } .issue-select-button { display: grid; grid-template-columns: 40px minmax(0, 1fr) 48px 66px; align-items: center; gap: 5px; min-width: 0; border: 0; padding: 0; background: transparent; color: #243b53; cursor: pointer; text-align: left; } .open-issue-select-button { grid-template-columns: 40px minmax(72px, 1fr) minmax(78px, 0.7fr) 46px 66px; } .issue-row[data-selected="true"] { background: #e6f6ff; } .issue-number, .issue-state, .issue-repo, .issue-meta { overflow: hidden; color: #52616f; font-size: 10px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; } .issue-title { min-width: 0; overflow: hidden; color: #102a43; font-size: 11px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; } .issue-comment-card { margin-top: 2px; } .issue-detail-card { gap: 8px; margin-top: 2px; } .issue-detail-actions { display: flex; align-items: center; justify-content: flex-end; gap: 5px; } .inline-heading { padding: 0; } .issue-body-text { max-height: 180px; margin: 0; overflow: auto; border: 1px solid #edf2f7; border-radius: 6px; padding: 6px; background: #fbfdff; color: #243b53; font-family: inherit; font-size: 11px; line-height: 1.4; white-space: pre-wrap; } .issue-attachment-list { display: grid; gap: 3px; margin: 0; padding-left: 16px; color: #52616f; font-size: 11px; } .issue-attachment-list li { display: flex; align-items: center; gap: 5px; min-width: 0; } .issue-attachment-list a { color: #0b6bcb; font-weight: 750; text-decoration: none; } .issue-attachment-list span { margin-left: 4px; color: #829ab1; font-size: 10px; } .issue-comment-chain { display: grid; gap: 6px; } .issue-comment { display: grid; gap: 4px; } .issue-comment-meta { display: flex; justify-content: space-between; gap: 8px; color: #52616f; font-size: 10px; font-weight: 800; } .issue-comment-meta a { color: #0b6bcb; text-decoration: none; } .target-summary { display: grid; gap: 2px; border: 1px solid #d9e2ec; border-radius: 6px; padding: 6px; background: #f8fafc; } .issue-filter-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .compact-select-label { display: flex; align-items: center; gap: 5px; min-width: 0; } .compact-select-label span { color: #52616f; font-size: 10px; font-weight: 850; text-transform: uppercase; } .compact-select-label select { width: auto; min-width: 104px; min-height: 26px; padding: 3px 6px; font-size: 11px; } .target-label, .attachment-heading > span { color: #52616f; font-size: 10px; font-weight: 850; text-transform: uppercase; } .attachment-section { display: grid; gap: 5px; } .attachment-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .attachment-list { display: grid; gap: 2px; margin: 0; padding-left: 16px; color: #334e68; font-size: 11px; line-height: 1.35; } .file-list { display: grid; gap: 3px; } .file-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 6px; border: 1px solid #d9e2ec; border-radius: 6px; padding: 4px; background: #ffffff; color: #334e68; font-size: 10px; } .file-row span:first-child { min-width: 0; overflow: hidden; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; } .file-row span:nth-child(2) { color: #829ab1; font-weight: 750; } .screenshot-list { display: grid; gap: 5px; } .screenshot-item { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: 7px; min-width: 0; margin: 0; border: 1px solid #d9e2ec; border-radius: 6px; padding: 4px; background: #ffffff; } .screenshot-item img { display: block; width: 64px; height: 40px; border-radius: 4px; object-fit: cover; } .screenshot-preview-button { border: 0; padding: 0; background: transparent; cursor: zoom-in; } .screenshot-item figcaption { min-width: 0; overflow: hidden; color: #334e68; font-size: 10px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; } .screenshot-modal { position: fixed; inset: 0; z-index: 10; display: grid; place-items: center; padding: 8px; background: rgba(15, 23, 42, 0.42); } .screenshot-modal-panel { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 8px; width: min(920px, calc(100vw - 16px)); height: min(760px, calc(100vh - 16px)); min-width: 0; min-height: 0; overflow: hidden; border: 1px solid #9fb3c8; border-radius: 8px; padding: 8px; background: #ffffff; } .screenshot-modal-toolbar, .modal-actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .screenshot-modal-toolbar span { min-width: 0; overflow: hidden; color: #102a43; font-size: 11px; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; } .crop-frame { position: relative; display: grid; min-width: 0; min-height: 0; overflow: hidden; border-radius: 6px; background: #102a43; } .crop-frame img { display: block; width: 100%; height: 100%; min-width: 0; min-height: 0; object-fit: contain; } .crop-box { position: absolute; display: block; border: 2px solid #f59e0b; padding: 0; background: transparent; cursor: move; pointer-events: auto; touch-action: none; } .crop-handle { position: absolute; z-index: 1; width: 11px; height: 11px; border: 2px solid #ffffff; border-radius: 2px; background: #f59e0b; box-shadow: 0 1px 3px rgba(15, 23, 42, 0.24); } .crop-handle-nw { top: -7px; left: -7px; cursor: nwse-resize; } .crop-handle-n { top: -7px; left: 50%; transform: translateX(-50%); cursor: ns-resize; } .crop-handle-ne { top: -7px; right: -7px; cursor: nesw-resize; } .crop-handle-e { top: 50%; right: -7px; transform: translateY(-50%); cursor: ew-resize; } .crop-handle-se { right: -7px; bottom: -7px; cursor: nwse-resize; } .crop-handle-s { bottom: -7px; left: 50%; transform: translateX(-50%); cursor: ns-resize; } .crop-handle-sw { bottom: -7px; left: -7px; cursor: nesw-resize; } .crop-handle-w { top: 50%; left: -7px; transform: translateY(-50%); cursor: ew-resize; } .checkbox-row, .form-stack .checkbox-row { display: flex; align-items: center; justify-content: flex-start; gap: 7px; color: #243b53; font-size: 12px; } .checkbox-row input, .form-stack .checkbox-row input { flex: 0 0 auto; width: auto; min-height: 0; margin: 0; } .statusbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 38px; border-top: 1px solid #d9e2ec; padding: 6px 8px 6px 10px; background: #ffffff; } #status { min-width: 0; overflow: hidden; color: #52616f; font-size: 11px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; } #status[data-tone="success"] { color: #1b5e20; } #status[data-tone="error"] { color: #b42318; } .icon-button { display: inline-grid; flex: 0 0 auto; place-items: center; width: 28px; height: 28px; border-radius: 6px; background: #eef4f9; color: #334e68; cursor: pointer; } .icon-button:disabled { cursor: wait; opacity: 0.65; } .icon-button svg { width: 15px; height: 15px; } @media (max-width: 430px) { .repo-row { grid-template-columns: minmax(130px, 1fr) 62px 58px; } .repo-link-cell { display: none; } .workspace-row, .url-row, .agent-row { grid-template-columns: 1fr; } }