:root{--bg-base: #f5f6fa;--bg-card: #fff;--bg-muted: #f8f9fa;--bg-sidebar: #f8fafc;--bg-dark: #1e293b;--text-primary: #2c3e50;--text-secondary: #7f8c8d;--text-muted: #94a3b8;--text-dark: #1e293b;--text-mid: #475569;--text-label: #64748b;--text-soft: #555;--text-light: #666;--text-hint: #888;--text-faint: #aaa;--text-dimmed: #999;--text-inverse: #fff;--color-primary: #3498db;--color-primary-hover: #2980b9;--color-success: #27ae60;--color-danger: #e74c3c;--color-warning: #f39c12;--color-secondary: #95a5a6;--color-purple: #9b59b6;--color-teal: #1abc9c;--color-info: #2c3e50;--color-link: #3498db;--color-link-hover: #2980b9;--color-accent: #3b82f6;--color-accent-hover: #2563eb;--color-accent-bg: #eff6ff;--color-accent-border: #bfdbfe;--color-accent-text: #1e40af;--border-light: #f0f0f0;--border-base: #e2e8f0;--border-default: #ddd;--border-muted: #e8ecef;--border-subtle: #f1f5f9;--border-input: #ddd;--radius-xs: 3px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 10px;--radius-pill: 12px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 2px 12px rgba(0,0,0,.08);--shadow-lg: 0 8px 32px rgba(0,0,0,.18);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, sans-serif;--font-mono: "JetBrains Mono", Consolas, monospace;--badge-created-bg: #dfe6e9;--badge-created-color: #636e72;--badge-started-bg: #dfe6fd;--badge-started-color: #2d3aef;--badge-complete-bg: #27ae60;--badge-complete-color: #fff;--badge-published-bg: #27ae60;--badge-published-color: #fff;--badge-failed-bg: #f8d7da;--badge-failed-color: #721c24;--badge-cancelled-bg: #ffeaa7;--badge-cancelled-color: #d35400;--badge-pending-bg: #fff3cd;--badge-pending-color: #856404;--badge-rejected-bg: #f5b7b1;--badge-rejected-color: #78281f;--badge-idle-bg: #bdc3c7;--badge-idle-color: #2c3e50;--badge-autopublish-bg: #cce5ff;--badge-autopublish-color: #004085}body,h1,h2,h3,p,ul,ol,figure{margin:0}input,select,textarea,button{font:inherit}*,*:before,*:after{box-sizing:border-box}.skip-link{position:absolute;top:-100%;left:16px;z-index:9999;padding:8px 16px;background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-size:14px;font-weight:600;text-decoration:none;transition:top .15s}.skip-link:focus{top:8px}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}:focus:not(:focus-visible){outline:none}body.modal-open{overflow:hidden}html,body{height:100%}body{font-family:var(--font-sans);background:var(--bg-base);color:var(--text-primary);overflow:hidden}a{color:var(--color-link);text-decoration:none}a:hover{text-decoration:underline}.app-wrapper{display:flex;height:100vh;overflow:hidden}.app-sidebar{flex-shrink:0;height:100vh;overflow:hidden}.sidebar-wrapper{display:flex;flex-direction:column;height:calc(100vh - 57px)}.sidebar-wrapper nav{flex:1;overflow-y:auto}#main{flex:1;height:100vh;overflow-y:auto}#content{padding:24px}.sidebar-user-footer{padding:12px 16px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:4px}.sf-link{display:flex;align-items:center;gap:8px;font-size:13px;color:#adb5bd;padding:5px 8px;border-radius:var(--radius-sm);text-decoration:none;transition:background .15s,color .15s}.sf-link:hover{background:#ffffff14;color:var(--text-inverse);text-decoration:none}.sf-logout{color:#adb5bd}.sf-logout:hover{color:var(--color-danger)}.page-header{margin-bottom:20px;display:flex;align-items:center;justify-content:space-between}.page-header h1{font-size:22px;font-weight:600}table{width:100%;border-collapse:collapse;background:var(--bg-card);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}thead th{background:var(--bg-muted);padding:10px 14px;text-align:left;font-size:12px;text-transform:uppercase;color:var(--text-secondary);font-weight:600;border-bottom:2px solid #eee;white-space:nowrap;cursor:pointer;user-select:none}thead th:hover{color:var(--text-primary)}tbody td{padding:10px 14px;border-bottom:1px solid var(--border-light);font-size:13px;vertical-align:middle}.col-fit{width:1%;white-space:nowrap}tbody tr{transition:background .1s}tbody tr:hover{background:#e8ecf1}tbody tr[data-status=failed] td:nth-child(2),tbody tr[data-status=rejected] td:nth-child(2),tbody tr[data-status=failed] .project-detail-link,tbody tr[data-status=rejected] .project-detail-link{color:#dc2626}tbody tr[data-status=complete] td:nth-child(2),tbody tr[data-status=published] td:nth-child(2),tbody tr[data-status=complete] .project-detail-link,tbody tr[data-status=published] .project-detail-link{color:#059669}tbody tr.clickable{cursor:pointer}tbody tr.active-task{background:#f0f7ff}.badge{display:inline-block;padding:3px 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge-created{background:var(--badge-created-bg);color:var(--badge-created-color)}.badge-started{background:var(--badge-started-bg);color:var(--badge-started-color)}.badge-complete{background:var(--badge-complete-bg);color:var(--badge-complete-color)}.badge-published{background:var(--badge-published-bg);color:var(--badge-published-color)}.badge-autopublish{background:var(--badge-autopublish-bg);color:var(--badge-autopublish-color)}.badge-failed{background:var(--badge-failed-bg);color:var(--badge-failed-color)}.badge-cancelled{background:var(--badge-cancelled-bg);color:var(--badge-cancelled-color)}.badge-pending{background:var(--badge-pending-bg);color:var(--badge-pending-color)}.badge-rejected{background:var(--badge-rejected-bg);color:var(--badge-rejected-color)}.badge-idle{background:var(--badge-idle-bg);color:var(--badge-idle-color)}.badge-publish-pending{background:var(--badge-pending-bg);color:var(--badge-pending-color)}.badge-publish-failed{background:var(--badge-failed-bg);color:var(--badge-failed-color)}.badge-unpublished{background:var(--color-warning);color:var(--text-inverse)}.badge-tag{background:#d4b8e8;color:#6c3483;padding:2px 6px;border-radius:var(--radius-xs);font-size:11px;text-transform:none}.eta-label{color:var(--color-warning);font-size:10px}.version-badge{margin-left:6px;font-size:10px;background:#e8e8e8;color:var(--text-light);padding:1px 4px;border-radius:var(--radius-xs)}.version-badge.version-complete,.version-badge.version-published{background:var(--badge-complete-bg);color:var(--badge-complete-color)}.version-badge.version-started{background:var(--badge-started-bg);color:var(--badge-started-color)}.version-badge.version-failed,.version-badge.version-rejected{background:var(--badge-failed-bg);color:var(--badge-failed-color)}.version-badge.version-cancelled{background:var(--badge-cancelled-bg);color:var(--badge-cancelled-color)}.commit-link{margin-left:6px;font-size:10px;color:var(--color-accent);text-decoration:none}.commit-link:hover{text-decoration:underline}.btn{display:inline-block;padding:7px 16px;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:opacity .15s}.btn:hover{opacity:.85}.btn-primary{background:var(--color-primary);color:var(--text-inverse)}.btn-success{background:var(--color-success);color:var(--text-inverse)}.btn-danger{background:var(--color-danger);color:var(--text-inverse)}.btn-warning{background:var(--color-warning);color:var(--text-inverse)}.btn-secondary{background:var(--color-secondary);color:var(--text-inverse)}.btn-sm{padding:4px 10px;font-size:12px}.btn-xs{padding:2px 6px;font-size:11px}.btn-outline-primary{background:transparent;color:var(--color-primary);border:1px solid var(--color-primary)}.btn-outline-primary:hover{background:var(--color-primary);color:var(--text-inverse)}.btn-outline-secondary{background:transparent;color:var(--color-secondary);border:1px solid var(--color-secondary)}.btn-outline-secondary:hover{background:var(--color-secondary);color:var(--text-inverse)}.btn-outline-danger{background:transparent;color:var(--color-danger);border:1px solid var(--color-danger)}.btn-outline-danger:hover,.bg-danger{background:var(--color-danger);color:var(--text-inverse)}.bg-success{background:var(--color-success);color:var(--text-inverse)}.bg-warning{background:var(--color-warning);color:var(--text-inverse)}.bg-secondary{background:var(--color-secondary);color:var(--text-inverse)}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;align-items:center}.filters input,.filters select{padding:6px 10px;border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:13px;background:var(--bg-card)}.filters input{width:140px}.pagination{display:flex;align-items:center;gap:8px;margin-top:16px;justify-content:center}.pagination button{padding:6px 12px;border:1px solid var(--border-default);background:var(--bg-card);border-radius:var(--radius-sm);cursor:pointer;font-size:13px}.pagination button:hover{background:#f0f0f0}.pagination button:disabled{opacity:.4;cursor:default}.pagination span{font-size:13px;color:var(--text-secondary)}.card{background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:20px;margin-bottom:16px}.card h3{font-size:16px;margin-bottom:12px}.td-panel{background:var(--bg-sidebar);border:1px solid var(--border-base);border-radius:var(--radius-lg);overflow:hidden}.td-header{padding:12px 20px;background:var(--bg-sidebar);border:1px solid var(--border-base);border-radius:var(--radius-lg)}.td-header-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.td-header-title{font-size:16px;font-weight:700;color:var(--text-dark)}.td-header-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.td-back-btn{background:none;border:1px solid var(--border-base);border-radius:var(--radius-sm);padding:4px 10px;font-size:13px;color:var(--text-label);cursor:pointer;font-family:inherit}.td-back-btn:hover{background:var(--border-base)}.td-status-section{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px 20px;border:1px solid var(--border-base);border-top:none;background:var(--bg-sidebar)}.td-status-col{display:flex;flex-direction:column;gap:6px}.td-meta-label{font-size:12px;color:var(--text-label)}.td-meta-value{font-size:14px;color:var(--text-mid)}.td-status-badge{font-size:12px;font-weight:700;padding:3px 8px;border-radius:var(--radius-sm);display:inline-block;width:fit-content}.td-status-badge:hover{box-shadow:0 1px 4px #0000001f}.td-status-success{background:#d1fae5;color:#059669}.td-status-running{background:#fef3c7;color:#d97706;animation:td-pulse 2s ease-in-out infinite}.td-status-error{background:#fee2e2;color:#dc2626}.td-status-pending{background:#f1f5f9;color:#94a3b8}.td-status-unpublished{background:#fef3c7;color:#b45309;border:1px solid #f59e0b}.td-status-publish-pending{background:#fff3cd;color:#856404}.td-status-publish-failed{background:#f8d7da;color:#721c24}@keyframes td-pulse{0%,to{opacity:1}50%{opacity:.7}}.td-badge-row{display:flex;align-items:center;gap:8px;font-size:13px}.td-two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;align-items:start}@media(max-width:900px){.td-two-col{grid-template-columns:1fr}}.td-section-header{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:700;color:var(--text-dark);padding:12px 20px;border-bottom:1px solid var(--border-base);background:var(--bg-sidebar)}.td-fields-wrap{display:grid;grid-template-columns:2fr 1fr;gap:8px;padding:8px}@media(max-width:700px){.td-fields-wrap{grid-template-columns:1fr}}.td-field-block{background:var(--bg-card);border:1px solid var(--border-base);border-radius:var(--radius-md);min-width:0;max-width:100%;overflow:hidden}.td-field-block-title{font-size:11px;font-weight:700;color:var(--text-label);text-transform:uppercase;letter-spacing:.5px;padding:4px 12px;background:var(--bg-sidebar);border-bottom:1px solid var(--border-base);border-radius:var(--radius-md) var(--radius-md) 0 0}.td-field-row{display:flex;align-items:baseline;justify-content:space-between;padding:4px 12px;border-bottom:1px solid var(--border-subtle);transition:background .1s}.td-field-row:hover{background:var(--border-subtle)}.td-field-row:last-child{border-bottom:none}.td-field-label{font-size:12px;color:var(--text-label);flex-shrink:0;width:100px}.td-field-value{font-size:13px;color:var(--text-dark);text-align:right;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono)}.td-fields-wrap .td-field-row{display:grid;grid-template-columns:96px minmax(0,1fr);gap:0 12px;justify-content:start}.td-fields-wrap .td-field-value{text-align:left}.td-artifact-link{color:var(--text-dark);text-decoration:none}.td-artifact-link:hover{color:var(--color-accent);text-decoration:underline}.td-expand-btn{display:block;width:100%;padding:6px 12px;border:none;background:var(--bg-sidebar);color:var(--color-accent);font-size:12px;font-weight:600;cursor:pointer;border-top:1px solid var(--border-base);text-align:center}.td-expand-btn:hover{background:var(--color-accent-bg);color:var(--color-accent-hover)}.td-uuid-row{display:flex;align-items:center;gap:8px;padding:0 20px 12px}.td-uuid-link{font-size:12px;color:var(--color-accent);text-decoration:none;font-family:var(--font-mono);word-break:break-all}.td-uuid-link:hover{text-decoration:underline;color:var(--color-accent-hover)}.td-link{color:var(--color-accent)!important;text-decoration:none}.td-link:hover{text-decoration:underline;color:var(--color-accent-hover)!important}.td-fail-reason{margin-top:10px;padding:8px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#991b1b;font-size:13px;font-family:JetBrains Mono,Consolas,monospace;word-break:break-word}.td-actions{display:flex;gap:8px;flex-wrap:wrap;padding:16px 0;margin-top:16px}.td-btn{font-size:13px;font-weight:600;padding:6px 14px;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity .15s}.td-btn:hover{opacity:.85}.td-btn-primary{background:var(--color-accent);color:var(--text-inverse)}.td-btn-success{background:#059669;color:var(--text-inverse)}.td-btn-danger{background:#dc2626;color:var(--text-inverse)}.td-btn-warning{background:#d97706;color:var(--text-inverse)}.td-btn-secondary{background:transparent;color:var(--text-mid);border:1px solid var(--border-base)}.td-btn-secondary:hover{background:var(--bg-muted);opacity:1}.td-btn-danger-ghost{background:transparent;color:var(--color-danger);border:1px solid var(--color-danger)}.td-btn-danger-ghost:hover{opacity:1;background:#e74c3c14}.td-qa-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 20px;font-size:12px}.td-qa-input{font-family:inherit;font-size:12px;padding:4px 8px;border:1px solid var(--border-base);border-radius:var(--radius-sm);width:260px}.td-live-log-pre{background:var(--bg-dark);color:#e2e8f0;font-size:12px;font-family:inherit;line-height:1.5;padding:12px 20px;margin:0;max-height:500px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.detail-grid{display:grid;grid-template-columns:130px 1fr;gap:6px 16px;font-size:15px}.detail-grid .label{color:var(--text-secondary);font-weight:500;white-space:nowrap;padding:4px 0}.detail-grid .value{word-break:break-all;min-width:0;padding:4px 0}.status-summary{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.status-count{padding:8px 16px;border-radius:6px;font-size:13px;font-weight:600}.loading{text-align:center;padding:40px;color:var(--text-secondary);font-size:14px}.error-msg{text-align:center;padding:20px;color:var(--color-danger);background:#fdf0ef;border-radius:var(--radius-md);margin:20px 0}.share-link{font-size:12px;color:var(--text-secondary);margin-top:12px}.share-link code{background:var(--border-light);padding:2px 8px;border-radius:var(--radius-xs);font-size:12px;user-select:all}th .sort-ind{font-size:10px;margin-left:4px}.mb-modal-overlay{position:fixed;inset:0;background:#00000073;z-index:200;display:flex;align-items:center;justify-content:center}.mb-modal-box{background:var(--bg-card);border-radius:var(--radius-lg);padding:24px;width:540px;max-width:96vw;max-height:92vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.mb-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;font-size:16px;font-weight:600}.mb-form{display:flex;flex-direction:column;gap:4px}.mb-form-label{font-size:12px;font-weight:600;color:var(--text-soft);text-transform:uppercase;letter-spacing:.4px;margin-top:8px}.mb-form-select,.mb-form-input{padding:6px 10px;border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:13px;background:var(--bg-card);width:100%}.mb-form-textarea{padding:6px 10px;border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:12px;font-family:monospace;width:100%;min-height:100px;resize:vertical}.mb-form-error{color:var(--color-danger);font-size:13px;padding:8px;background:#fdf0ef;border-radius:var(--radius-sm);margin-top:8px}.mb-comp-box{display:flex;flex-wrap:wrap;gap:4px;padding:8px;border:1px solid #eee;border-radius:var(--radius-sm);min-height:36px;max-height:140px;overflow-y:auto;background:#fafafa}.mb-comp-chip{background:#e8f4fd;color:#1a6a9a;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500}.chain-graph{position:relative;overflow-x:auto;padding:20px 10px}.chain-graph-nodes{display:flex;align-items:flex-start;gap:80px;position:relative;z-index:1;min-width:min-content}.chain-graph-svg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}.chain-node{min-width:160px;max-width:220px;border:2px solid var(--border-default);border-radius:var(--radius-xl);background:var(--bg-card);padding:14px 16px;cursor:pointer;transition:box-shadow .2s,border-color .2s;flex-shrink:0}.chain-node:hover{box-shadow:0 4px 16px #0000001f;border-color:#aaa}.chain-node.status-pending{border-color:var(--color-secondary)}.chain-node.status-building{border-color:var(--color-primary);border-width:2px;animation:chainPulse 1.5s ease-in-out infinite}.chain-node.status-complete{border-color:#2ecc71}.chain-node.status-published{border-color:#1a8a4a}.chain-node.status-failed{border-color:var(--color-danger)}.chain-node-add{border-style:dashed;border-color:var(--color-secondary);min-width:100px;display:flex;flex-direction:column;align-items:center;justify-content:center}.chain-node-add:hover{border-color:var(--color-primary)}.chain-node-title{font-weight:700;font-size:15px;margin-bottom:6px}.chain-node-meta{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-wrap:wrap}.chain-node-pkgcount{font-size:12px;color:var(--text-secondary)}.chain-node-actions{display:flex;gap:4px;flex-wrap:wrap}.chain-node-actions .btn{font-size:11px;padding:2px 8px}@keyframes chainPulse{0%,to{box-shadow:0 0 #3498db4d}50%{box-shadow:0 0 0 6px #3498db14}}.auth-form{max-width:400px;margin:60px auto;background:var(--bg-card);padding:32px;border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.auth-form h2{margin-bottom:20px;font-size:20px;color:var(--text-primary)}.auth-form .form-group{margin-bottom:14px}.auth-form .form-group label{display:block;font-size:12px;font-weight:600;color:var(--text-soft);margin-bottom:4px;text-transform:uppercase;letter-spacing:.4px}.auth-form .form-group input{width:100%;padding:8px 10px;border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:14px}.auth-form .form-group input:focus{outline:none;border-color:var(--color-primary)}.auth-form .btn-primary{width:100%;padding:10px;margin-top:8px;font-size:14px}.auth-form .form-error{color:var(--color-danger);font-size:13px;padding:8px;background:#fdf0ef;border-radius:var(--radius-sm)}.auth-form p{margin-top:14px;font-size:13px;color:var(--text-light);text-align:center}.oauth-divider{text-align:center;margin:18px 0 14px;position:relative}.oauth-divider:before{content:"";position:absolute;top:50%;left:0;right:0;border-top:1px solid var(--border-default)}.oauth-divider span{background:var(--bg-card);padding:0 12px;position:relative;color:#999;font-size:13px}.btn-oauth{width:100%;padding:10px;margin-top:8px;font-size:14px;border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;font-weight:500;transition:opacity .15s}.btn-oauth:hover{opacity:.85}.btn-oauth-gitea{background:#609926;color:#fff;border-color:#609926}.btn-oauth-github{background:#24292e;color:#fff;border-color:#24292e}.admin-panel{max-width:960px}.admin-panel h2{margin-bottom:16px}.tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.tab-btn{padding:8px 16px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-card);cursor:pointer;font-size:13px;color:var(--text-primary)}.tab-btn.active{background:var(--color-primary);color:var(--text-inverse);border-color:var(--color-primary)}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{padding:8px 12px;text-align:left;border-bottom:1px solid #eee}.data-table th{background:var(--bg-base);font-weight:600;color:var(--text-primary)}.btn-success{background:var(--color-success);color:var(--text-inverse);border:none;padding:4px 10px;border-radius:var(--radius-sm);cursor:pointer;font-size:12px}.btn-success:hover{background:#219a52}.btn-small{background:#ecf0f1;border:1px solid var(--border-default);padding:3px 8px;border-radius:var(--radius-sm);cursor:pointer;font-size:12px;color:var(--text-primary)}.btn-small:hover{background:#dfe6e9}.admin-user-row{background:var(--bg-card);border:1px solid var(--border-muted);border-radius:var(--radius-md);padding:12px 16px;margin-bottom:8px;cursor:pointer;transition:box-shadow .15s,border-color .15s}.admin-user-row:hover{box-shadow:0 2px 8px #0000001a;border-color:var(--color-primary)}.admin-user-row .user-name{font-weight:600;color:var(--text-primary);font-size:14px}.admin-user-row .user-meta{font-size:12px;color:var(--text-secondary);margin-top:2px}.admin-user-row .user-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.admin-section-title{margin:0 0 10px;font-size:14px;font-weight:700;color:var(--text-primary)}.admin-users-table-wrap{width:100%;max-width:1120px;overflow-x:auto;background:var(--bg-card);border:1px solid var(--border-muted);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.admin-users-table{min-width:720px;margin:0;border-radius:0;box-shadow:none}.admin-users-table th:last-child,.admin-users-table td:last-child{text-align:right}.admin-user-table-row{cursor:pointer}.admin-user-table-row:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.admin-users-user-cell{width:180px}.admin-users-contact-cell{min-width:240px}.admin-users-groups-cell{min-width:240px;white-space:normal}.admin-users-actions-cell{width:1%;white-space:nowrap}.admin-users-full-name{font-weight:500;color:var(--text-primary)}.admin-users-state{color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}@media(max-width:700px){.admin-users-table{min-width:640px}}.admin-registry-table-wrap{width:100%;max-width:1120px;overflow-x:auto;background:var(--bg-card);border:1px solid var(--border-muted);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.admin-registry-table{min-width:760px;margin:0;border-radius:0;box-shadow:none}.admin-registry-table th:last-child,.admin-registry-table td:last-child{text-align:right}.admin-registry-row{cursor:default}.admin-registry-row:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.admin-inline-select{width:100%;max-width:280px;margin-bottom:0;font-size:13px}.admin-groups-table{min-width:820px}.admin-groups-table .group-title{font-weight:700;color:var(--text-primary);font-size:14px}.admin-groups-name-cell{width:210px}.admin-groups-members-cell{min-width:300px;white-space:normal}.admin-groups-add-cell{width:300px}.admin-groups-actions-cell{width:1%;white-space:nowrap}.admin-member-name{color:var(--text-muted);font-size:11px}.admin-platforms-table{min-width:980px}.admin-platform-row{cursor:pointer}.admin-platform-name-cell{min-width:220px}.admin-platform-title{display:inline-flex;align-items:center;gap:8px;min-width:0}.admin-platform-toggle{color:var(--text-muted);font-size:11px;transition:transform .15s}.admin-platform-toggle.is-open{transform:rotate(90deg)}.admin-platform-name{color:var(--text-primary);font-weight:700;font-size:14px}.admin-platform-policy-cell{min-width:190px}.admin-platform-policy-cell .admin-status-chip+.admin-status-chip{margin-left:4px}.admin-platform-actions-cell{width:1%;white-space:nowrap}.admin-status-chip{display:inline-flex;align-items:center;border:1px solid var(--border-muted);border-radius:var(--radius-xs);padding:1px 6px;color:var(--text-secondary);font-size:11px;white-space:nowrap}.admin-status-chip-success{color:var(--color-success);border-color:var(--color-success)}.admin-status-chip-danger{color:var(--color-danger);border-color:var(--color-danger)}.admin-platform-detail-cell{padding:0!important;white-space:normal;text-align:left!important}.admin-platform-detail-content{padding:16px}.admin-group-badge{display:inline-flex;align-items:center;gap:4px;background:#eaf4fd;border:1px solid #aed6f1;color:#1a6fa3;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:600}.admin-group-badge.admin-badge{background:#fef9e7;border-color:#f9ca24;color:#b7950b}.admin-group-badge button{background:none;border:none;color:#e74c3c;cursor:pointer;padding:0;font-size:13px;line-height:1}.admin-create-card{background:var(--bg-card);border:1px solid var(--border-muted);border-radius:var(--radius-md);padding:16px;margin-bottom:16px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.admin-create-card .form-title{font-weight:600;font-size:14px;color:var(--text-primary);margin-bottom:12px}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.admin-group-card{background:var(--bg-card);border:1px solid var(--border-muted);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:10px}.admin-group-card .group-title{font-weight:700;font-size:15px;color:var(--text-primary)}.admin-member-badge{display:inline-flex;align-items:center;gap:6px;background:var(--bg-muted);border:1px solid #dee2e6;border-radius:var(--radius-sm);padding:3px 8px;font-size:12px;color:var(--text-primary)}.admin-member-badge button{background:none;border:none;color:var(--color-danger);cursor:pointer;padding:0;font-size:14px;line-height:1}.modal-overlay{position:fixed;inset:0;background:#00000073;z-index:1000;display:flex;align-items:center;justify-content:center}.modal-box{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:28px;width:440px;max-width:95vw;position:relative}.modal-box h3{font-size:17px;font-weight:700;margin-bottom:16px;color:var(--text-primary)}.modal-close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:20px;color:var(--text-secondary);cursor:pointer;line-height:1}.modal-close:hover{color:var(--text-primary)}.modal-section{margin-top:16px;padding-top:14px;border-top:1px solid #eee}.modal-section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:8px}#toast-container{position:fixed;top:16px;right:16px;z-index:2000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{padding:10px 18px;border-radius:var(--radius-md);font-size:13px;font-weight:500;color:var(--text-inverse);box-shadow:0 4px 12px #00000026;opacity:0;transform:translate(40px);transition:opacity .25s,transform .25s;pointer-events:auto;max-width:380px}.toast-visible{opacity:1;transform:translate(0)}.toast-success{background:var(--color-success)}.toast-error{background:var(--color-danger)}.toast-info{background:var(--color-info)}.mobile-tabbar{display:none}@media(max-width:991.98px){.app-wrapper{flex-direction:column}.app-sidebar{position:fixed!important;left:-280px!important;top:0!important;height:calc(100vh - 56px - env(safe-area-inset-bottom))!important;z-index:1000!important;transition:left .25s ease!important;width:260px!important;min-width:260px!important;max-width:260px!important;margin-left:0!important}.app-sidebar.sidebar-open{left:0!important;box-shadow:4px 0 15px #0000004d}.sidebar-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:999}.sidebar-overlay.active{display:block}#main{margin-left:0!important;width:100%}#content{padding-bottom:calc(64px + env(safe-area-inset-bottom))!important}.app-sidebar .sidebar-wrapper{height:calc(100% - 3.5rem)!important}.mobile-tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:1050;background:#0e1015;border-top:1px solid rgba(255,255,255,.07);padding-bottom:env(safe-area-inset-bottom)}.mtab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:56px;background:none;border:none;color:#8a8a8a;font-family:var(--cdt-mono, ui-monospace, "SF Mono", Menlo, Consolas, monospace);font-size:10px;letter-spacing:.02em;text-decoration:none;text-transform:lowercase;cursor:pointer;-webkit-tap-highlight-color:transparent}.mtab i{font-size:19px;line-height:1}.mtab.active{color:oklch(.696 .17 162.48)}}@media(max-width:767px){#content{padding:56px 16px 16px;padding-bottom:calc(64px + env(safe-area-inset-bottom))}.table-responsive,#tasks-table,#builders-table{overflow-x:auto;-webkit-overflow-scrolling:touch}table{min-width:700px}.filters input{width:100px}}.platform-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.copy-btn{background:none;border:1px solid var(--border-base);border-radius:var(--radius-sm);padding:2px 6px;cursor:pointer;font-size:11px;color:var(--text-label);transition:all .15s;margin-left:6px}.copy-btn:hover{background:var(--border-subtle);border-color:#cbd5e1;color:#334155}.copy-btn.copied{background:#d1fae5;border-color:#6ee7b7;color:#059669}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.iflex{display:inline-flex;align-items:center;gap:4px}.row{display:flex;align-items:center;gap:8px}.row-4{display:flex;align-items:center;gap:4px}.row-6{display:flex;align-items:center;gap:6px}.row-12{display:flex;align-items:center;gap:12px}.row-wrap{display:flex;flex-wrap:wrap;gap:8px}.row-wrap-6{display:flex;flex-wrap:wrap;gap:6px}.row-wrap-12{display:flex;flex-wrap:wrap;gap:12px}.col{display:flex;flex-direction:column;gap:8px}.col-4{display:flex;flex-direction:column;gap:4px}.space-between{display:flex;justify-content:space-between;align-items:center}.justify-end{display:flex;justify-content:flex-end;gap:8px}.justify-center{display:flex;justify-content:center;align-items:center;gap:12px}.actions-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.chk-label{display:flex;align-items:center;gap:4px;cursor:pointer;font-size:13px}.chk-label-6{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:12px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.filters-row{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;align-items:flex-end}.tab-bar{display:flex;gap:0;margin-bottom:16px;border-bottom:2px solid #333}.view-toggle{display:flex;gap:0;border:1px solid #ccc;border-radius:6px;overflow:hidden;font-size:13px}.card-row{display:flex;gap:15px;flex-wrap:wrap;margin-bottom:20px}.list-item-row{display:flex;align-items:center;padding:8px 0;border-bottom:1px solid var(--border-light);gap:10px}.list-item-row-5{display:flex;align-items:center;padding:5px 0;border-bottom:1px solid #f0f0f0;gap:8px}.filter-row{display:flex;align-items:center;gap:8px;margin:8px 0}.card-flex{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.empty-msg{text-align:center;color:var(--text-secondary);padding:20px}.text-muted{color:var(--text-secondary)}.modal-msg{font-size:14px;line-height:1.5;margin-bottom:20px;color:var(--text-primary)}.modal-field-label{display:block;margin-bottom:6px;color:var(--text-secondary);font-size:12px;font-weight:600}.modal-confirm-input{margin-bottom:16px}.modal-box .btn:disabled{cursor:not-allowed;opacity:.45}.platform-header{display:flex;align-items:center;padding:12px 16px;background:#f7f8fa;cursor:pointer;user-select:none;border-bottom:1px solid var(--border-muted)}.admin-row{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #eee;flex-wrap:wrap}.create-form{display:flex;gap:8px;align-items:flex-end;margin-bottom:24px;background:#f9fafb;padding:14px;border-radius:var(--radius-md);border:1px solid #eee}.public-label{display:flex;align-items:center;gap:4px;font-size:13px;white-space:nowrap;cursor:pointer}.bulk-toolbar{display:flex;align-items:center;padding:8px 12px;margin-bottom:8px;background:var(--color-accent-bg);border:1px solid var(--color-accent-border);border-radius:var(--radius-md)}.bulk-toolbar .bulk-count{font-weight:600;font-size:13px;color:#1e40af;margin-right:12px}.dashboard-two-col{display:flex;gap:16px;align-items:flex-start}@media(max-width:900px){.dashboard-two-col{flex-direction:column}}.bf-fresh{color:var(--color-success)}.bf-stale{color:var(--color-danger)}.bf-unknown{color:var(--color-secondary)}.bf-hash{font-size:11px;color:var(--text-soft);margin-left:4px}.bf-hash-head{color:var(--color-danger)}.project-detail-link{font-weight:600;color:var(--color-link);text-decoration:none}.project-detail-link:hover{color:var(--color-link-hover);text-decoration:underline}.pkg-name-stack{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.pkg-page{max-width:1320px;display:flex;flex-direction:column;gap:16px}.pkg-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.85fr);gap:18px;align-items:stretch;background:var(--bg-card);border:1px solid var(--border-base);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:18px}.pkg-hero-main{min-width:0;display:flex;flex-direction:column;gap:8px}.pkg-kicker{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.pkg-kicker-label{color:var(--text-secondary)}.pkg-hero h1{color:var(--text-primary);font-size:28px;font-weight:700;line-height:1.15;overflow-wrap:anywhere}.pkg-hero-meta{color:var(--text-secondary);font-size:13px;min-width:0;overflow-wrap:anywhere}.pkg-hero-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.pkg-tracker-panel{min-width:0}.pkg-tracker-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border-muted);flex-wrap:wrap}.pkg-tracker-row:last-child{border-bottom:none}.pkg-tracker-list{flex:0 0 auto;min-width:0}.pkg-tracker-versions{display:flex;gap:12px;flex:1;min-width:0;flex-wrap:wrap}.pkg-tracker-version{display:flex;flex-direction:column;gap:2px;min-width:0}.pkg-tracker-version-label{font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.pkg-tracker-checked{font-size:11px;margin-left:auto}.platform-chip{font-size:12px;padding:2px 8px;border-radius:4px;white-space:nowrap}.page-header{margin-bottom:16px}.page-header-sub{font-size:13px;margin-top:4px}.projects-results-header{font-size:13px;color:var(--text-secondary);margin-bottom:8px}.projects-table{width:100%;border-collapse:collapse}.projects-table th,.projects-table td{padding:8px 10px;border-bottom:1px solid var(--border-muted);text-align:left;vertical-align:middle}.projects-table th{font-size:12px;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.projects-platform-chips{display:flex;gap:4px;flex-wrap:wrap}.pkg-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);gap:16px;align-items:start}.pkg-layout>.pkg-panel:only-child{grid-column:1 / -1}.pkg-panel{background:var(--bg-card);border:1px solid var(--border-base);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;min-width:0}.pkg-panel-header{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:11px 14px;background:var(--bg-muted);border-bottom:1px solid var(--border-base)}.pkg-panel-header h2{font-size:14px;font-weight:700;color:var(--text-primary)}.pkg-panel-body{overflow-x:auto}.pkg-panel-footer{display:flex;justify-content:flex-end;padding:10px 14px;border-top:1px solid var(--border-subtle)}.pkg-table{min-width:720px;margin:0;border:0;border-radius:0;box-shadow:none}.pkg-table th:last-child,.pkg-table td:last-child{text-align:right}.pkg-table .empty-msg{text-align:center!important}.pkg-link{color:var(--color-link);text-decoration:none}.pkg-link:hover{color:var(--color-link-hover);text-decoration:underline}.pkg-git{font-family:var(--font-mono);font-size:12px}.pkg-code{font-family:var(--font-mono);font-size:12px;color:var(--text-primary);background:transparent}.pkg-commit-pair{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.pkg-commit-arrow{color:var(--text-muted);font-family:var(--font-mono);font-size:11px}.pkg-head-hash{color:var(--color-danger)}.pkg-chip{display:inline-flex;align-items:center;min-height:20px;border:1px solid var(--border-muted);border-radius:var(--radius-xs);padding:1px 7px;font-size:11px;font-weight:700;line-height:1.4;white-space:nowrap;text-transform:uppercase}.pkg-chip-success{color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 45%,var(--border-muted))}.pkg-chip-danger{color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 45%,var(--border-muted))}.pkg-chip-warning{color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 45%,var(--border-muted))}.pkg-chip-info{color:#2980b9;border-color:color-mix(in srgb,#2980b9 45%,var(--border-muted))}.pkg-chip-muted{color:var(--text-secondary)}.ver-stickers{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}.pkg-actions{display:inline-flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}.pkg-reason-cell{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1100px){.pkg-hero,.pkg-layout{grid-template-columns:1fr}.pkg-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.pkg-hero{padding:14px}.pkg-hero h1{font-size:22px}}.stat-card{padding:16px;border-radius:var(--radius-lg);text-align:center;min-width:120px}.stat-card-value{font-size:28px;font-weight:700;color:var(--text-inverse)}.stat-card-label{font-size:12px;color:#fffc;margin-top:4px}.stat-card-primary{background:var(--color-primary)}.stat-card-purple{background:var(--color-purple)}.stat-card-warning{background:var(--color-warning)}.stat-card-teal{background:var(--color-teal)}.stat-card-danger{background:var(--color-danger)}.period-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.period-stat-value{font-size:24px;font-weight:600}.period-stat-value.total{color:var(--text-primary)}.period-stat-value.success{color:var(--color-success)}.period-stat-value.failed{color:var(--color-danger)}.period-stat-value.canceled{color:var(--color-secondary)}.period-stat-label{font-size:11px;color:var(--text-secondary)}.view-toggle-btn{padding:5px 14px;border:none;cursor:pointer;transition:background .15s;background:var(--bg-card);color:var(--text-primary)}.view-toggle-btn.active{background:var(--color-primary);color:var(--text-inverse);font-weight:600}.status-icon{font-size:14px;flex-shrink:0;width:18px;text-align:center}.skip-link{position:absolute;top:-100%;left:0;background:var(--color-primary);color:var(--text-inverse);padding:8px 16px;z-index:9999;font-size:14px;text-decoration:none;border-bottom-right-radius:var(--radius-md)}.skip-link:focus{top:0}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.btn:focus-visible{outline-offset:2px;box-shadow:0 0 0 3px #3498db4d}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(prefers-color-scheme:dark){:root{--bg-base: #0f172a;--bg-card: #1e293b;--bg-muted: #1a2332;--bg-sidebar: #1e293b;--bg-dark: #0f172a;--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #64748b;--text-dark: #f1f5f9;--text-mid: #cbd5e1;--text-label: #94a3b8;--text-soft: #94a3b8;--text-light: #94a3b8;--text-inverse: #0f172a;--color-primary: #60a5fa;--color-primary-hover: #93bbfd;--color-success: #4ade80;--color-danger: #f87171;--color-warning: #fbbf24;--color-secondary: #64748b;--color-purple: #c084fc;--color-teal: #2dd4bf;--color-info: #e2e8f0;--color-link: #60a5fa;--color-link-hover: #93bbfd;--color-accent: #60a5fa;--color-accent-hover: #3b82f6;--color-accent-bg: #1e3a5f;--color-accent-border: #2563eb;--color-accent-text: #93c5fd;--border-light: #1e293b;--border-base: #334155;--border-default: #475569;--border-muted: #334155;--border-subtle: #1e293b;--border-input: #475569;--shadow-sm: 0 1px 3px rgba(0,0,0,.3);--shadow-md: 0 2px 12px rgba(0,0,0,.3);--shadow-lg: 0 8px 32px rgba(0,0,0,.5);--badge-created-bg: #334155;--badge-created-color: #94a3b8;--badge-started-bg: #1e1b4b;--badge-started-color: #818cf8;--badge-complete-bg: #166534;--badge-complete-color: #bbf7d0;--badge-published-bg: #166534;--badge-published-color: #bbf7d0;--badge-failed-bg: #450a0a;--badge-failed-color: #fca5a5;--badge-cancelled-bg: #422006;--badge-cancelled-color: #fbbf24;--badge-pending-bg: #422006;--badge-pending-color: #fbbf24;--badge-rejected-bg: #450a0a;--badge-rejected-color: #fca5a5;--badge-idle-bg: #475569;--badge-idle-color: #e2e8f0;--badge-autopublish-bg: #1e3a5f;--badge-autopublish-color: #93c5fd}body{background:var(--bg-base);color:var(--text-primary)}a{color:var(--color-link)}a:hover{color:var(--color-link-hover)}thead th{background:var(--bg-muted);border-bottom-color:var(--border-base);color:var(--text-secondary)}tbody td{border-bottom-color:var(--border-base)}tbody tr:hover{background:var(--bg-muted)}tbody tr.active-task{background:#60a5fa1a}.card{background:var(--bg-card);box-shadow:var(--shadow-sm)}.stat-card{box-shadow:var(--shadow-sm)}input,select,textarea,.auth-form .form-group input{background:var(--bg-muted);color:var(--text-primary);border-color:var(--border-input)}.admin-user-row{background:var(--bg-card);border-color:var(--border-base)}.admin-user-row:hover{border-color:var(--color-primary)}.modal-box,.mb-modal-box{background:var(--bg-card)}.modal-section{border-top-color:var(--border-base)}.toast-info{background:var(--color-info);color:var(--text-inverse)}.pagination button{background:var(--bg-card);border-color:var(--border-base);color:var(--text-primary)}.pagination button:hover{background:var(--bg-muted)}.platform-header{background:var(--bg-muted);border-bottom-color:var(--border-base)}.loading{color:var(--text-secondary)}.error-msg{background:#7f1d1d33;color:var(--color-danger)}.chain-node{background:var(--bg-card);border-color:var(--border-base)}}.uppercase{text-transform:uppercase;letter-spacing:.4px}.nowrap{white-space:nowrap}.mono{font-family:var(--font-mono)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-soft{color:var(--text-soft)}.text-light{color:var(--text-light)}.text-faint{color:var(--text-faint)}.text-danger{color:var(--color-danger)}.break-all{word-break:break-all}.field-label{font-size:11px;font-weight:600;color:var(--text-soft);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}@media(max-width:768px){#content{padding:12px}.data-table,table:not(.data-table){display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.page-header{flex-direction:column;align-items:flex-start;gap:8px}.filters,.filters-row{flex-direction:column}.filters input,.filters select{width:100%!important}[style*=grid-template-columns]{grid-template-columns:1fr!important}.detail-grid{grid-template-columns:1fr;gap:4px 0}.status-summary{flex-direction:column}.pagination{flex-wrap:wrap;justify-content:center}.card{padding:14px}.mb-form-input,.mb-form-select{width:100%!important}}@media(max-width:480px){.page-header h1{font-size:18px}.page-header h2{font-size:16px}.badge{padding:2px 6px;font-size:10px}.mb-modal-box,.modal-box{max-width:96vw;padding:16px}}.labels-card{background:var(--cdt-surface, var(--bg-card))!important;border:1px solid var(--cdt-rule-2, var(--border-default))!important;border-radius:0!important;box-shadow:none!important;padding:16px;margin:16px 0 14px;color:var(--cdt-ink, var(--text-primary))}.labels-card>h3{font-size:12px;color:var(--cdt-ink-2, var(--text-secondary));font-family:var(--cdt-mono, inherit);margin:0 0 8px;text-transform:none;letter-spacing:0}.label-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.td-field-block .label-chips{padding:8px 12px;margin-top:0}.label-chip{display:inline-flex;align-items:center;gap:4px;background:color-mix(in srgb,#818cf8 14%,transparent);color:var(--cdt-ink, #fff);border:1px solid color-mix(in srgb,#818cf8 45%,transparent);border-radius:0;padding:3px 6px 3px 10px;font-family:var(--cdt-mono, inherit);font-size:11px;font-weight:500;cursor:pointer;user-select:none}.label-chip:hover{background:color-mix(in srgb,#818cf8 28%,transparent);border-color:#818cf8}.label-chip-x{opacity:.55;padding:0 4px;font-size:13px;line-height:1}.label-chip-x:hover{opacity:1;color:var(--cdt-down, #e74c3c)}.label-input{font-family:var(--cdt-mono, inherit);font-size:11px;background:transparent!important;color:var(--cdt-ink, inherit)!important;border:1px solid var(--cdt-rule-2, var(--border-default))!important;border-radius:0!important;padding:3px 8px;outline:none;width:150px;flex:0 0 auto;margin-left:auto;caret-color:var(--cdt-accent, var(--color-primary))}.label-input::placeholder{color:var(--cdt-ink-4, var(--text-secondary))}.label-input:focus{border-color:var(--cdt-accent, var(--color-primary))!important}.pub-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.pub-metric{min-height:86px;display:flex;flex-direction:column;justify-content:space-between;background:var(--bg-muted);border:1px solid var(--border-muted);border-left:3px solid var(--border-muted);border-radius:var(--radius-md);padding:10px;min-width:0}.pub-metric-value{color:var(--text-primary);font-family:var(--font-mono);font-size:18px;font-weight:700}.pub-metric-label{color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.pub-metric-hint{color:var(--text-muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pub-metric-success{border-left-color:var(--color-success)}.pub-metric-warning{border-left-color:var(--color-warning)}.pub-metric-danger{border-left-color:var(--color-danger)}.pub-panel-badge{display:inline-block;min-width:22px;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:700;color:var(--text-inverse);background:var(--color-secondary);text-align:center}.pub-badge-warning{background:var(--color-warning)}.pub-badge-danger{background:var(--color-danger)}.pub-users{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pub-table{min-width:0!important;width:100%;table-layout:auto}.pub-table th,.pub-table td{white-space:nowrap}.pub-table td:last-child,.pub-table th:last-child{width:100%}.pub-files-open{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.pub-files-summary{display:flex;justify-content:space-between;gap:12px;color:var(--text-secondary);font-size:12px;margin:4px 0 12px}.pub-files-list{max-height:64vh;overflow:auto;border:1px solid var(--border-muted);background:var(--bg-muted)}.pub-files-item{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;align-items:baseline;padding:6px 10px;border-bottom:1px solid var(--border-subtle);font-size:12px}.pub-files-item:last-child{border-bottom:none}.pub-files-item code{overflow-wrap:anywhere;white-space:normal}.pub-files-kind{color:var(--text-muted);font-family:var(--font-mono);font-size:11px;text-transform:uppercase}@media(max-width:980px){.pub-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
