.card{background:var(--color-surface);border-style:solid;border-width:var(--style-border-width);border-color:var(--surface-card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);transition:box-shadow var(--transition), border-color var(--transition)}.card:hover{box-shadow:var(--shadow-sm)}.card-header{padding:calc(var(--style-card-padding) - 4px) var(--style-card-padding);border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;display:flex}.card-header h3{font-size:var(--text-base);font-weight:var(--style-heading-weight);letter-spacing:var(--style-tracking);color:var(--color-text)}.card-body{padding:var(--style-card-padding)}.card-footer{padding:var(--space-4) var(--style-card-padding);border-top:1px solid var(--color-border-light);background:var(--color-bg);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.card{margin-bottom:var(--style-card-gap)}.stat-grid>.card,.dash-grid>.card,.detail-grid>.card,.kanban-board>.card,.project-card-grid>.card,.gitlab-quality-grid>.card,.gitlab-issue-grid>.card,.gitlab-conn-grid>.card{margin-bottom:0}.stat-grid{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-xs);transition:all var(--transition);row-gap:var(--space-1);column-gap:var(--space-3);grid-template-columns:1fr auto;grid-template-areas:"label icon""value value""meta meta";display:grid;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--color-primary);height:3px;position:absolute;top:0;left:0;right:0}.stat-card.stat-teal:before{background:var(--color-primary)}.stat-card.stat-amber:before{background:var(--color-accent)}.stat-card.stat-green:before{background:var(--color-success)}.stat-card.stat-red:before{background:var(--color-danger)}.stat-card.stat-info:before{background:var(--color-info)}.stat-card:has(>.skeleton-icon):before{display:none}.stat-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary-border);transform:translateY(-2px)}.stat-card .stat-icon{border-radius:var(--radius-md);grid-area:icon;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:flex}.stat-card .stat-icon.teal{background:var(--color-primary-bg);color:var(--color-primary)}.stat-card .stat-icon.amber{background:var(--color-accent-bg);color:var(--color-accent)}.stat-card .stat-icon.green{background:var(--color-success-bg);color:var(--color-success)}.stat-card .stat-icon.red{background:var(--color-danger-bg);color:var(--color-danger)}.stat-card .stat-icon.info{background:var(--color-info-bg);color:var(--color-info)}.stat-card .stat-label{font-size:var(--text-sm);color:var(--color-text-secondary);grid-area:label;align-self:center}.stat-card .stat-value{font-size:var(--text-3xl);color:var(--color-text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;grid-area:value;font-weight:700;line-height:1.2}.stat-card .stat-meta{font-size:var(--text-xs);color:var(--color-text-tertiary);grid-area:meta}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#f0efec 25%,#e8e7e3 50%,#f0efec 75%) 0 0/200% 100%;animation:1.5s ease-in-out infinite skeleton-shimmer}.skeleton-text{width:100%;height:14px;margin-bottom:8px}.skeleton-text.short{width:60%}.skeleton-value{border-radius:var(--radius);width:80px;height:36px}.skeleton-icon{border-radius:var(--radius-md);width:44px;height:44px}.stat-card>.skeleton-icon{grid-area:icon}.stat-card>.skeleton-text{grid-area:label;align-self:center;margin-bottom:0}.stat-card>.skeleton-value{grid-area:value;width:60%;height:30px}.btn{font-family:inherit;font-size:var(--text-sm);border-radius:var(--radius);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid transparent;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-weight:550;line-height:1.4;text-decoration:none;display:inline-flex}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-primary{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.btn-primary:hover{background:var(--color-primary-light);border-color:var(--color-primary-light)}.btn-primary:active{background:var(--color-primary-dark)}.btn-accent{background:var(--color-accent);color:var(--color-white);border-color:var(--color-accent)}.btn-accent:hover{background:var(--color-accent-light);border-color:var(--color-accent-light)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-surface-hover);border-color:var(--color-text-tertiary)}.btn-ghost{color:var(--color-text-secondary);background:0 0;border-color:transparent}.btn-ghost:hover{background:var(--color-surface-hover);color:var(--color-text)}.btn-danger{background:var(--color-danger);color:var(--color-white);border-color:var(--color-danger)}.btn-danger:hover{filter:brightness(1.06)}.btn-danger:active{filter:brightness(.9)}.btn-error{background:var(--color-danger);color:var(--color-white);border-color:var(--color-danger)}.btn-error:hover{filter:brightness(1.06)}.btn-error:active{filter:brightness(.9)}.btn-outline{color:var(--color-text-secondary);border-color:var(--color-border);background:0 0}.btn-outline:hover{background:var(--color-surface-hover);color:var(--color-text);border-color:var(--color-text-tertiary)}.btn-outline:active{background:var(--color-border)}.btn-outline-primary{color:var(--color-primary);border-color:var(--color-primary);background:0 0}.btn-outline-primary:hover{background:var(--color-primary-bg);color:var(--color-primary-dark)}.btn-outline-danger,.btn-danger-outline{color:var(--color-danger);border-color:var(--color-danger);background:0 0}.btn-outline-danger:hover,.btn-danger-outline:hover{background:var(--color-danger-bg);color:var(--color-danger)}.btn-sm{font-size:var(--text-xs);padding:5px 10px}.btn-xs{border-radius:var(--radius-sm);padding:2px 8px;font-size:11px}.btn-lg{font-size:var(--text-base);padding:10px 22px}.btn-warning-outline{color:var(--color-warning);border-color:var(--color-warning);background:0 0}.btn-warning-outline:hover{background:var(--color-warning-bg);color:var(--color-warning)}.btn-warning{background:var(--color-warning);color:var(--color-white);border-color:var(--color-warning)}.btn-warning:hover{filter:brightness(1.06)}.btn-warning:active{filter:brightness(.9)}.btn:disabled,.btn.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn .spinner-sm{border:2px solid;border-right-color:transparent;border-radius:50%;width:14px;height:14px;animation:.6s linear infinite spin}.btn-success{background:var(--color-success);color:var(--color-white);border-color:var(--color-success)}.btn-success:hover{filter:brightness(1.06)}.btn-success:active{filter:brightness(.9)}.btn-icon{border-radius:var(--radius);width:32px;height:32px;padding:0}.btn-icon.btn-sm{width:28px;height:28px}.btn-icon.btn-lg{width:40px;height:40px}.btn-group{display:inline-flex}.btn-group .btn+.btn{margin-left:0}.btn-group .btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .btn:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group .btn-primary+.btn-primary{border-left:1px solid rgba(255,255,255,.25)}.btn-group .btn-secondary+.btn-secondary{border-left-color:var(--color-border)}.btn:active:not(:disabled){transform:scale(.97)}.btn-toolbar{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.btn-toolbar .btn-toolbar-spacer{flex:1}.action-cell{align-items:center;gap:var(--space-2);white-space:nowrap;display:flex}.action-menu{display:inline-flex;position:relative}.action-menu-backdrop{z-index:1990;position:fixed;inset:0}.action-menu-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:140px;box-shadow:var(--shadow-md);padding:4px;animation:.15s fadeInUp}.action-menu-item{text-align:left;border-radius:var(--radius-sm);width:100%;font-family:inherit;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;padding:7px 12px;display:block}.action-menu-item:hover{background:var(--color-surface-hover)}.action-menu-item.danger{color:var(--color-danger)}.action-menu-item.danger:hover{background:var(--color-danger-bg)}.action-menu-item:disabled{opacity:.5;cursor:not-allowed}.dropdown-wrap{display:inline-flex;position:relative}.dropdown-backdrop{z-index:59;position:fixed;inset:0}.dropdown-panel{z-index:60;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:160px;box-shadow:var(--shadow-md);padding:4px;position:absolute;top:calc(100% + 4px);left:0}.dropdown-item{align-items:center;gap:var(--space-2);width:100%;padding:10px var(--space-4);text-align:left;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;background:0 0;border:none;display:flex}.dropdown-item:hover{background:var(--color-surface-hover)}.dropdown-item-danger{color:var(--color-danger)}.dropdown-item-danger:hover{background:var(--color-danger-bg)}.dropdown-item-icon{text-align:center;flex-shrink:0;width:18px}.dropdown-item-label{flex:1}.dropdown-item-kbd{font-size:var(--text-xs);color:var(--color-text-tertiary);background:var(--color-bg-muted);border-radius:var(--radius-sm);padding:1px 6px}.dropdown-divider{border-top:1px solid var(--color-border-light);margin:4px 0}