:root{color-scheme:light;--text: #1f2328;--text-secondary: #59636e;--text-tertiary: #818b98;--border: #d1d9e0;--border-muted: #e6eaef;--surface: #ffffff;--canvas: #f6f8fa;--canvas-subtle: #eef1f4;--accent: #0969da;--accent-hover: #0550ae;--accent-muted: #ddf4ff;--accent-fg: #0550ae;--success: #1a7f37;--success-bg: #dafbe1;--warning: #9a6700;--warning-bg: #fff8c5;--danger: #cf222e;--danger-bg: #ffebe9;--purple: #8250df;--purple-bg: #fbefff;--nav: #0d1117;--nav-text: #e6edf3;--nav-muted: #8b949e;--nav-hover: rgba(177, 186, 196, .12);--shadow: 0 1px 0 rgba(31, 35, 40, .04);--shadow-md: 0 3px 6px rgba(31, 35, 40, .06), 0 0 0 1px rgba(31, 35, 40, .04);--shadow-lg: 0 8px 24px rgba(31, 35, 40, .12), 0 0 0 1px rgba(31, 35, 40, .04);--r: 6px;--r-lg: 10px;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--top: 48px;--side: 244px;--ease: .12s ease;font-family:var(--font);font-size:14px;line-height:1.5;color:var(--text);background:var(--canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:var(--r);background:var(--accent);color:#fff;cursor:pointer;min-height:32px;padding:0 12px;font-size:14px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background var(--ease),border-color var(--ease),color var(--ease),box-shadow var(--ease)}button:hover:not(:disabled){background:var(--accent-hover)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}button.ghost{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow)}button.ghost:hover:not(:disabled){background:var(--canvas);border-color:var(--text-tertiary)}button.subtle{background:var(--accent-muted);color:var(--accent-fg)}button.subtle:hover:not(:disabled){background:#b6e3ff}button.danger{background:var(--danger)}button.danger:hover:not(:disabled){background:#a40e26}button.icon-btn{width:32px;min-width:32px;padding:0;background:transparent;color:var(--text-secondary)}button.icon-btn:hover:not(:disabled){background:var(--canvas-subtle);color:var(--text)}input,select,textarea{width:100%;min-height:32px;padding:5px 10px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);transition:border-color var(--ease),box-shadow var(--ease)}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}input:hover,select:hover,textarea:hover{border-color:var(--text-tertiary)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #0969da26}textarea{min-height:96px;resize:vertical;line-height:1.5;padding:8px 10px}label.field{display:grid;gap:6px;font-size:12px;font-weight:600;color:var(--text-secondary)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--canvas)}.login-card{width:min(400px,100%);background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-md);padding:32px;display:grid;gap:20px}.login-brand{display:flex;align-items:center;gap:12px}.login-brand .logo{width:36px;height:36px;border-radius:8px;background:var(--nav);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px;letter-spacing:-.02em}.login-brand h1{margin:0;font-size:20px;font-weight:600;letter-spacing:-.02em;line-height:1.25}.login-brand p{margin:2px 0 0;color:var(--text-secondary);font-size:13px}.login-form{display:grid;gap:12px}.login-form>button[type=submit]{margin-top:4px;min-height:36px;font-weight:600}.login-error{background:var(--danger-bg);color:var(--danger);border:1px solid #ffcecb;border-radius:var(--r);padding:8px 10px;font-size:13px}.login-divider{display:flex;align-items:center;gap:12px;color:var(--text-tertiary);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border-muted)}.demo-users{display:grid;gap:4px}.demo-users button{justify-content:flex-start;text-align:left;background:transparent;color:var(--text-secondary);border:1px solid transparent;font-weight:400;font-size:13px;min-height:40px;padding:8px 10px;border-radius:var(--r)}.demo-users button:hover{background:var(--canvas);color:var(--text);border-color:var(--border-muted)}.demo-users strong{display:block;color:var(--text);font-weight:600;font-size:13px}.demo-users .role-hint{display:block;font-size:12px;color:var(--text-secondary);margin-top:1px;font-weight:500}.demo-users .role-blurb{display:block;font-size:12px;color:var(--text-tertiary);margin-top:2px;line-height:1.35}.demo-users button.demo-primary{border-color:var(--border);background:var(--canvas)}.demo-users .demo-main{flex:1;min-width:0}.demo-users{gap:6px}.demo-users button{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-height:auto;padding:10px 12px}.demo-badge{flex-shrink:0;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--accent-fg);background:var(--accent-muted);border:1px solid #b6e3ff;border-radius:100px;padding:2px 8px;line-height:16px}.login-help{margin:-8px 0 0;font-size:12px;color:var(--text-tertiary);line-height:1.4}.app-shell{min-height:100vh;display:grid;grid-template-rows:var(--top) 1fr}.topbar{display:flex;align-items:center;gap:8px;padding:0 16px;background:var(--nav);color:var(--nav-text);z-index:30;border-bottom:1px solid #21262d}.topbar .brand{display:flex;align-items:center;gap:8px;color:var(--nav-text);font-weight:600;font-size:14px;text-decoration:none;padding:4px 8px 4px 0;margin-right:4px}.topbar .brand:hover{text-decoration:none;color:#fff}.topbar .brand .logo{width:24px;height:24px;border-radius:5px;background:#238636;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700}.top-nav{display:flex;align-items:center;gap:2px;min-width:0;overflow-x:auto;scrollbar-width:none}.top-nav::-webkit-scrollbar{display:none}.top-nav button{background:transparent;color:var(--nav-muted);font-weight:500;font-size:13px;min-height:32px;padding:0 10px;border-radius:var(--r)}.top-nav button:hover,.top-nav button.active{background:var(--nav-hover);color:#fff}.top-search{flex:1;max-width:360px;margin-left:8px}.top-search input{min-height:30px;background:#161b22;border-color:#30363d;color:var(--nav-text);font-size:13px;box-shadow:none}.top-search input::placeholder{color:var(--nav-muted)}.top-search input:hover{border-color:#484f58}.top-search input:focus{background:#0d1117;border-color:var(--accent);box-shadow:0 0 0 3px #0969da40;color:#fff}.top-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.top-actions button.create{background:#238636;font-size:13px;font-weight:600;min-height:30px}.top-actions button.create:hover{background:#2ea043}.top-actions button.logout{background:transparent;color:var(--nav-muted);border:1px solid #30363d;font-size:13px;min-height:30px}.top-actions button.logout:hover{background:var(--nav-hover);color:var(--nav-text);border-color:#484f58}.user-chip{display:flex;align-items:center;gap:8px;color:var(--nav-text);font-size:12px;font-weight:500;max-width:160px}.user-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:600;background:#656d76;color:#fff;flex-shrink:0}.avatar.lg{width:36px;height:36px;font-size:13px}.avatar.sm{width:20px;height:20px;font-size:9px}.app-body{display:grid;grid-template-columns:var(--side) minmax(0,1fr);height:calc(100vh - var(--top));min-height:0}.sidebar{background:var(--surface);border-right:1px solid var(--border-muted);padding:12px 8px 20px;display:grid;align-content:start;gap:18px;overflow:auto}.sidebar h3{margin:0 0 4px;padding:0 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.side-link{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:transparent;color:var(--text-secondary);border-radius:var(--r);min-height:32px;padding:0 8px;font-weight:500;font-size:13px}.side-link:hover{background:var(--canvas);color:var(--text)}.side-link.active{background:var(--accent-muted);color:var(--accent-fg)}.side-link .dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.side-link .nav-icon{display:none}.main{min-width:0;overflow:auto;padding:24px 28px 40px;background:var(--canvas)}.page-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:20px}.page-header h1{margin:0;font-size:22px;font-weight:600;letter-spacing:-.02em;line-height:1.25}.page-header .subtitle{margin:4px 0 0;color:var(--text-secondary);font-size:13px;max-width:52ch}.page-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.breadcrumbs{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-tertiary);margin-bottom:8px;font-weight:500}.breadcrumbs button{background:transparent;color:var(--text-secondary);min-height:auto;padding:0;font-size:12px;font-weight:500}.breadcrumbs button:hover{color:var(--accent);background:transparent;text-decoration:underline;text-underline-offset:2px}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}.metric-card{background:var(--surface);border:1px solid var(--border-muted);border-radius:var(--r-lg);padding:14px 16px;display:grid;gap:4px}.metric-card .label{font-size:12px;color:var(--text-secondary);font-weight:500}.metric-card .value{font-size:24px;font-weight:600;letter-spacing:-.03em;line-height:1.2;font-variant-numeric:tabular-nums}.metric-card .hint{font-size:12px;color:var(--text-tertiary)}.panel{background:var(--surface);border:1px solid var(--border-muted);border-radius:var(--r-lg);padding:16px}.panel h2{margin:0 0 12px;font-size:14px;font-weight:600}.two-col{display:grid;grid-template-columns:1.3fr 1fr;gap:12px}@media(max-width:960px){.app-body{grid-template-columns:1fr}.sidebar{display:none}.two-col{grid-template-columns:1fr}}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.project-card{background:var(--surface);border:1px solid var(--border-muted);border-radius:var(--r-lg);padding:16px;display:grid;gap:10px;cursor:pointer;text-align:left;color:inherit;transition:border-color var(--ease),box-shadow var(--ease)}.project-card:hover{border-color:var(--border);box-shadow:var(--shadow-md);background:var(--surface)}.project-card .head{display:flex;align-items:center;gap:10px}.project-card .key-badge,.key-badge{width:36px;height:36px;border-radius:6px;display:grid;place-items:center;color:#fff;font-weight:700;font-size:11px;flex-shrink:0}.project-card h3{margin:0;font-size:14px;font-weight:600}.project-card p{margin:0;color:var(--text-secondary);font-size:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-card .meta{display:flex;gap:12px;font-size:12px;color:var(--text-tertiary);padding-top:10px;border-top:1px solid var(--border-muted)}.project-tabs{display:flex;gap:0;border-bottom:1px solid var(--border-muted);margin-bottom:16px}.project-tabs button{background:transparent;color:var(--text-secondary);border-radius:0;border-bottom:2px solid transparent;margin-bottom:-1px;min-height:36px;font-weight:500;font-size:13px;padding:0 12px}.project-tabs button:hover{color:var(--text);background:transparent}.project-tabs button.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600;background:transparent}.filters-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.filters-bar input,.filters-bar select{width:auto;min-width:140px;min-height:30px;font-size:13px;background:var(--surface)}.filters-bar input{min-width:200px}.board-wrap{display:grid;gap:10px}.board-hint{margin:0;font-size:12px;color:var(--text-tertiary);line-height:1.4}.board-hint em{font-style:normal;color:var(--warning);font-weight:500}.board{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:10px;align-items:start;overflow-x:auto;padding-bottom:8px}.column-empty{padding:20px 10px;text-align:center;font-size:12px;color:var(--text-tertiary);border:1px dashed var(--border);border-radius:var(--r);margin:2px}.column{background:var(--canvas-subtle);border-radius:var(--r-lg);padding:8px;min-height:420px;display:grid;align-content:start;gap:6px;border:1px solid transparent;transition:border-color var(--ease),background var(--ease)}.column.drop-ready{border-color:var(--accent);background:var(--accent-muted)}.column-header{display:flex;align-items:center;justify-content:space-between;padding:4px 6px 6px}.column-header strong{font-size:12px;font-weight:600;color:var(--text-secondary)}.column-header .count{color:var(--text-tertiary);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;min-width:18px;text-align:center}.issue-card{background:var(--surface);border:1px solid var(--border-muted);border-radius:var(--r);padding:10px;display:grid;gap:8px;cursor:grab;text-align:left;color:inherit;width:100%;box-shadow:var(--shadow);transition:border-color var(--ease),box-shadow var(--ease)}.issue-card:hover{border-color:var(--border);box-shadow:var(--shadow-md);background:var(--surface)}.issue-card:active{cursor:grabbing}.issue-card:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #0969da26}.issue-card.dragging{opacity:.5}.issue-card .title{font-size:13px;font-weight:500;color:var(--text);line-height:1.4}.issue-card .foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.issue-card .left-meta{display:flex;align-items:center;gap:6px;min-width:0}.issue-key{font-size:12px;font-weight:500;color:var(--text-tertiary);font-variant-numeric:tabular-nums;font-family:var(--mono)}.type-icon{width:16px;height:16px;border-radius:3px;display:inline-grid;place-items:center;font-size:10px;font-weight:700;color:#fff;flex-shrink:0;line-height:1}.priority-bars{display:inline-flex;align-items:flex-end;gap:1px;height:11px}.priority-bars i{display:block;width:2.5px;border-radius:1px;background:currentColor;opacity:.2}.priority-bars i.on{opacity:1}.labels{display:flex;flex-wrap:wrap;gap:4px}.label-chip{background:var(--canvas);color:var(--text-secondary);border:1px solid var(--border-muted);border-radius:100px;font-size:11px;font-weight:500;padding:0 7px;line-height:18px}.points{background:var(--canvas);border:1px solid var(--border-muted);border-radius:100px;font-size:11px;font-weight:600;color:var(--text-secondary);min-width:20px;height:18px;display:grid;place-items:center;padding:0 6px;font-variant-numeric:tabular-nums}.backlog-layout{display:grid;gap:12px}.backlog-section{background:var(--surface);border:1px solid var(--border-muted);border-radius:var(--r-lg);overflow:hidden}.backlog-section header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--canvas);border-bottom:1px solid var(--border-muted)}.backlog-section header h3{margin:0;font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px}.backlog-section header .goal{color:var(--text-tertiary);font-size:12px;font-weight:400;margin-top:2px}.backlog-row{display:grid;grid-template-columns:28px 88px minmax(0,1fr) 100px 120px 40px 36px;gap:10px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--border-muted);background:transparent;color:inherit;width:100%;text-align:left;border-radius:0;min-height:40px;font-weight:400}.backlog-row:last-child{border-bottom:0}.backlog-row:hover{background:var(--canvas)}.backlog-row .title{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.status-pill{display:inline-flex;align-items:center;border-radius:100px;font-size:11px;font-weight:600;padding:1px 8px;line-height:18px;background:var(--canvas);color:var(--text-secondary);border:1px solid var(--border-muted);white-space:nowrap}.status-pill.inprogress{background:var(--accent-muted);color:var(--accent-fg);border-color:#b6e3ff}.status-pill.inreview{background:var(--purple-bg);color:var(--purple);border-color:#ecd8ff}.status-pill.done{background:var(--success-bg);color:var(--success);border-color:#aceebb}.status-pill.todo,.status-pill.backlog{background:var(--canvas);color:var(--text-secondary)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f232866;z-index:40;display:grid;justify-items:end;animation:fade-in .12s ease}.drawer{width:min(520px,100vw);height:100%;background:var(--surface);box-shadow:var(--shadow-lg);display:grid;grid-template-rows:auto 1fr;animation:slide-in .16s ease;border-left:1px solid var(--border-muted)}.drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-muted)}.drawer-header .key-row{display:flex;align-items:center;gap:8px;color:var(--text-tertiary);font-size:12px;font-weight:500;margin-bottom:6px}.drawer-header h2{margin:0;font-size:18px;font-weight:600;letter-spacing:-.02em;line-height:1.3}.drawer-body{overflow:auto;padding:20px;display:grid;gap:20px;align-content:start}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-grid .full{grid-column:1 / -1}.comments{display:grid;gap:12px}.comment{display:grid;grid-template-columns:auto 1fr;gap:10px}.comment .bubble{background:var(--canvas);border:1px solid var(--border-muted);border-radius:var(--r-lg);padding:10px 12px}.comment .meta{display:flex;gap:8px;align-items:baseline;margin-bottom:4px;font-size:12px;color:var(--text-tertiary)}.comment .meta strong{color:var(--text);font-size:13px;font-weight:600}.comment-form{display:grid;gap:8px}.subtasks{display:grid;gap:4px}.subtask-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--canvas);border:1px solid var(--border-muted);border-radius:var(--r);font-size:13px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f232873;z-index:50;display:grid;place-items:center;padding:20px;animation:fade-in .12s ease}.modal{width:min(520px,100%);max-height:min(90vh,700px);overflow:auto;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-lg);border:1px solid var(--border-muted);padding:20px;display:grid;gap:14px}.modal h2{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.issue-list{display:grid}.issue-list-row{display:grid;grid-template-columns:24px 72px minmax(0,1fr) 100px 28px;gap:10px;align-items:center;padding:8px 6px;border-bottom:1px solid var(--border-muted);background:transparent;color:inherit;width:100%;text-align:left;border-radius:var(--r);font-weight:400}.issue-list-row:last-child{border-bottom:0}.issue-list-row:hover{background:var(--canvas)}.activity-list{display:grid}.activity-item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid var(--border-muted);font-size:13px}.activity-item:last-child{border-bottom:0}.activity-item .detail{color:var(--text-secondary);line-height:1.45}.activity-item .detail strong{color:var(--text);font-weight:600}.activity-item time{color:var(--text-tertiary);font-size:12px;white-space:nowrap;padding-top:1px}.empty{color:var(--text-tertiary);font-size:13px;padding:28px 16px;text-align:center;border:1px dashed var(--border);border-radius:var(--r-lg);background:transparent;line-height:1.5;display:grid;gap:6px;justify-items:center}.empty:before{display:none}.empty-title{color:var(--text-secondary);font-weight:600;font-size:13px}.empty-hint{font-size:12px;color:var(--text-tertiary);max-width:36ch}.empty-action{margin-top:8px;min-height:30px;font-size:13px}.callout{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px 16px;padding:14px 16px;margin-bottom:16px;background:var(--accent-muted);border:1px solid #b6e3ff;border-radius:var(--r-lg)}.callout-title{display:block;font-size:13px;color:var(--text);margin-bottom:4px}.callout-text{margin:0;font-size:13px;color:var(--text-secondary);line-height:1.45;max-width:62ch}.callout-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.panel-head h2{margin:0}.panel-link{min-height:28px;font-size:12px;padding:0 10px}.panel-lead{margin:0 0 12px;font-size:12px;color:var(--text-tertiary)}.section-title{margin:0 0 10px;font-size:13px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:8px}.section-count{font-size:12px;font-weight:500;color:var(--text-tertiary);background:var(--canvas);border:1px solid var(--border-muted);border-radius:100px;padding:0 7px;line-height:18px}.quick-status{display:grid;gap:8px}.quick-status-actions{display:flex;flex-wrap:wrap;gap:6px}.quick-status-actions button{min-height:28px;font-size:12px}[data-theme=dark] .callout{background:#121d2f;border-color:#1f3a5f}[data-theme=dark] .demo-badge{background:#121d2f;border-color:#1f3a5f;color:#58a6ff}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--nav);color:#fff;padding:10px 16px;border-radius:var(--r);box-shadow:var(--shadow-lg);z-index:100;font-size:13px;font-weight:500;animation:fade-in .12s ease;max-width:min(400px,calc(100vw - 32px))}.loading-bar{height:2px;background:var(--accent);position:fixed;top:var(--top);left:0;right:0;z-index:30;transform-origin:left;animation:load-pulse 1s ease-in-out infinite}.spinner{width:24px;height:24px;border:2px solid var(--border-muted);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite;margin:40px auto}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in{0%{transform:translate(12px);opacity:.85}to{transform:translate(0);opacity:1}}@keyframes load-pulse{0%,to{opacity:.35}50%{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.role-badge{display:inline-flex;align-items:center;background:var(--accent-muted);color:var(--accent-fg);border-radius:100px;font-size:11px;font-weight:600;padding:1px 8px;line-height:18px;border:1px solid #b6e3ff;white-space:nowrap;text-transform:none}.role-badge.admin{background:var(--purple-bg);color:var(--purple);border-color:#ecd8ff}.role-select{width:auto;min-width:128px;min-height:28px;font-size:13px;padding:2px 8px}.user-admin-list{display:grid}.user-admin-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-muted)}.user-admin-row:last-child{border-bottom:0}.user-admin-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.matrix-scroll{overflow-x:auto;border:1px solid var(--border-muted);border-radius:var(--r)}.perm-matrix{width:100%;border-collapse:collapse;font-size:12px}.perm-matrix th,.perm-matrix td{border-bottom:1px solid var(--border-muted);border-right:1px solid var(--border-muted);padding:8px 10px;text-align:center}.perm-matrix th{background:var(--canvas);font-weight:600;color:var(--text-secondary);font-size:11px;white-space:normal;max-width:96px;line-height:1.3;vertical-align:bottom}.perm-matrix td:first-child,.perm-matrix th:first-child{text-align:left;position:sticky;left:0;background:var(--surface);z-index:1;font-weight:600;white-space:nowrap}.perm-matrix td.grant{color:var(--success);font-weight:600;background:#f0fff4}.perm-matrix td.deny{color:var(--border)}.role-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.role-card{background:var(--canvas);border:1px solid var(--border-muted);border-radius:var(--r);padding:12px;display:grid;gap:4px}.role-card strong{font-size:13px;font-weight:600}.role-card .role-id{font-size:11px;color:var(--text-tertiary);font-family:var(--mono)}.role-card p{margin:0;font-size:12px;color:var(--text-secondary);line-height:1.4}.member-table-head,.member-row{display:grid;grid-template-columns:minmax(0,1.4fr) 150px 88px;gap:12px;align-items:center;padding:10px 14px}.member-table-head{background:var(--canvas);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary);border-bottom:1px solid var(--border-muted)}.member-row{border-bottom:1px solid var(--border-muted)}.member-row:last-child{border-bottom:0}.perm-chip-list{display:flex;flex-wrap:wrap;gap:4px}.perm-chip{background:var(--canvas);border:1px solid var(--border-muted);border-radius:3px;font-size:10px;font-weight:500;color:var(--text-secondary);padding:1px 5px;font-family:var(--mono)}@media(max-width:1100px){.board{grid-template-columns:repeat(4,minmax(220px,1fr))}.backlog-row{grid-template-columns:24px 72px minmax(0,1fr) 90px 28px}.backlog-row .hide-sm{display:none}}@media(max-width:720px){.top-search,.user-chip span{display:none}.field-grid{grid-template-columns:1fr}.main{padding:16px}}::selection{background:#b6e3ff}.main,.sidebar,.drawer-body{scrollbar-width:thin;scrollbar-color:var(--border) transparent}[data-theme=dark]{color-scheme:dark;--text: #e6edf3;--text-secondary: #8b949e;--text-tertiary: #6e7681;--border: #30363d;--border-muted: #21262d;--surface: #0d1117;--canvas: #010409;--canvas-subtle: #161b22;--accent: #2f81f7;--accent-hover: #58a6ff;--accent-muted: #121d2f;--accent-fg: #58a6ff;--success: #3fb950;--success-bg: #12261e;--warning: #d29922;--warning-bg: #2a2111;--danger: #f85149;--danger-bg: #2d1214;--purple: #a371f7;--purple-bg: #1c1529;--nav: #010409;--nav-text: #e6edf3;--nav-muted: #8b949e;--nav-hover: rgba(177, 186, 196, .12);--shadow: 0 0 0 1px rgba(240, 246, 252, .04);--shadow-md: 0 3px 12px rgba(1, 4, 9, .6), 0 0 0 1px rgba(240, 246, 252, .06);--shadow-lg: 0 12px 32px rgba(1, 4, 9, .75), 0 0 0 1px rgba(240, 246, 252, .06)}[data-theme=dark] .topbar{border-bottom-color:#21262d}[data-theme=dark] .top-search input{background:#0d1117;border-color:#30363d}[data-theme=dark] .top-search input:focus{background:#010409}[data-theme=dark] .top-actions button.create{background:#238636}[data-theme=dark] .top-actions button.create:hover{background:#2ea043}[data-theme=dark] .login-shell{background:var(--canvas)}[data-theme=dark] .login-card{background:var(--surface);border-color:var(--border)}[data-theme=dark] .issue-card:hover,[data-theme=dark] .project-card:hover{border-color:#484f58}[data-theme=dark] .status-pill.inprogress{background:#121d2f;border-color:#1f3a5f;color:#58a6ff}[data-theme=dark] .status-pill.inreview{background:#1c1529;border-color:#3d2a5c;color:#a371f7}[data-theme=dark] .status-pill.done{background:#12261e;border-color:#1b4332;color:#3fb950}[data-theme=dark] .perm-matrix td.grant{background:#12261e;color:#3fb950}[data-theme=dark] .role-badge{background:#121d2f;border-color:#1f3a5f;color:#58a6ff}[data-theme=dark] .role-badge.admin{background:#1c1529;border-color:#3d2a5c;color:#a371f7}[data-theme=dark] .column.drop-ready{background:#121d2f;border-color:#2f81f7}[data-theme=dark] .issue-list-row:hover,[data-theme=dark] .backlog-row:hover{background:#161b22}[data-theme=dark] ::selection{background:#1f3a5f;color:#e6edf3}.theme-btn{background:transparent!important;color:var(--nav-muted)!important;border:1px solid #30363d!important;min-height:30px!important;min-width:30px;padding:0 8px!important;font-size:12px!important;font-weight:600!important}.theme-btn:hover{background:var(--nav-hover)!important;color:var(--nav-text)!important;border-color:#484f58!important}.kbd-hint{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--text-tertiary);font-weight:500}.kbd{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;background:var(--surface);color:var(--text-secondary);font-size:10px;font-family:var(--mono);font-weight:600;line-height:1}.shortcuts-panel{display:grid;gap:8px}.shortcuts-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--border-muted);font-size:13px}.shortcuts-row:last-child{border-bottom:0}.shortcuts-row span{color:var(--text-secondary)}.shortcuts-row .keys{display:flex;gap:4px}.stat-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border-muted);font-size:13px;color:var(--text-secondary)}.stat-row:last-child{border-bottom:0}.stat-row strong{color:var(--text);font-variant-numeric:tabular-nums}.footer-hint{margin-top:24px;display:flex;flex-wrap:wrap;gap:12px 20px;color:var(--text-tertiary);font-size:12px}.footer-hint .kbd-hint{gap:6px}.user-table-head,.user-table-row{display:grid;grid-template-columns:minmax(180px,1.6fr) 120px 100px 90px auto;gap:12px;align-items:center;padding:10px 14px}.user-table-head{background:var(--canvas);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary);border-bottom:1px solid var(--border-muted)}.user-table-row{border-bottom:1px solid var(--border-muted)}.user-table-row:last-child{border-bottom:0}.user-identity{display:flex;align-items:center;gap:10px;background:transparent;color:inherit;min-height:auto;padding:0;justify-content:flex-start;text-align:left;font-weight:400;width:100%}.user-identity:hover{background:transparent;color:var(--accent-fg)}.user-identity strong{display:block;font-size:13px;font-weight:600}.user-meta{display:block;font-size:12px;color:var(--text-tertiary);font-weight:400}.user-meta-cell{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.user-row-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.user-row-actions .ghost{min-height:28px;font-size:12px;padding:0 10px}.access-project-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;width:100%;text-align:left;background:transparent;color:inherit;border-radius:var(--r);min-height:44px;padding:8px 6px;font-weight:400;border-bottom:1px solid var(--border-muted)}.access-project-row:last-child{border-bottom:0}.access-project-row:hover{background:var(--canvas)}.access-steps{margin:0;padding-left:18px;color:var(--text-secondary);font-size:13px;line-height:1.55;display:grid;gap:8px}.access-steps strong{color:var(--text)}.modal-wide{width:min(720px,100%)}.modal-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.modal-divider{border:0;border-top:1px solid var(--border-muted);margin:4px 0}.assign-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.assign-row select{width:auto;min-width:160px;min-height:32px}.assign-row button{min-height:32px}@media(max-width:900px){.user-table-head{display:none}.user-table-row{grid-template-columns:1fr;gap:8px;padding:14px;border-bottom:1px solid var(--border-muted)}.user-row-actions{justify-content:flex-start}}.inline-input{min-height:30px;font-size:13px}.repo-row .inline-input{width:100%}.hook-list{display:grid;gap:12px}.hook-item{display:grid;gap:6px;padding:12px;background:var(--canvas);border:1px solid var(--border-muted);border-radius:var(--r)}.hook-url{display:block;font-family:var(--mono);font-size:12px;padding:8px 10px;background:var(--surface);border:1px solid var(--border-muted);border-radius:var(--r);word-break:break-all}.deploy-log{margin:6px 0 0;padding:8px;font-size:11px;font-family:var(--mono);background:var(--canvas);border-radius:var(--r);max-height:80px;overflow:auto;white-space:pre-wrap;color:var(--text-tertiary)}.deploy-pipeline{margin-top:14px;padding:12px;border:1px solid var(--border-muted);border-radius:var(--r);background:var(--canvas)}.deploy-progress-head{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--text-secondary)}.deploy-progress-title{display:flex;align-items:center;gap:8px;min-width:0}.pipeline-total{font-family:var(--mono);color:var(--text-primary)}.pipeline-live{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border:1px solid var(--border-muted);border-radius:999px;color:var(--text-tertiary);font-size:10px;font-weight:600;letter-spacing:.02em}.pipeline-live.connected{color:var(--success);border-color:color-mix(in srgb,var(--success) 35%,var(--border-muted))}.pipeline-live-dot{font-size:9px}.deploy-progress-track{height:7px;margin:10px 0 12px;overflow:hidden;border-radius:99px;background:var(--border-muted)}.deploy-progress-track span{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .24s ease}.deploy-pipeline-current{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px;margin:0 0 12px;color:var(--text-tertiary);font-size:11px}.deploy-pipeline-current strong{color:var(--text-primary)}.deploy-pipeline-rail{display:grid;grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:0;min-width:520px}.deploy-pipeline.compact .deploy-pipeline-rail{min-width:440px}.deploy-pipeline-step{display:grid;grid-template-rows:20px auto auto;gap:4px;min-width:0;color:var(--text-tertiary);font-size:12px}.deploy-pipeline-step strong,.deploy-pipeline-step small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deploy-pipeline-step small{color:var(--text-tertiary);font-size:10px}.pipeline-stage-track{display:flex;align-items:center;width:100%}.pipeline-connector{display:block;height:2px;flex:1;margin:0 4px;background:var(--border-muted)}.pipeline-connector.done{background:var(--success)}.deploy-report-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-muted)}.deploy-pipeline-step.current{color:var(--accent-fg);font-weight:600}.deploy-pipeline-step.current .pipeline-dot{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 15%,transparent);animation:pipeline-pulse 1.5s ease-in-out infinite}.deploy-pipeline-step.done{color:var(--success)}.deploy-pipeline-step.failed{color:var(--danger)}.deploy-pipeline-step.cancelled{color:var(--text-secondary)}.pipeline-dot{display:inline-flex;width:18px;height:18px;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:50%;font-size:11px}.pipeline-percent{font-family:var(--mono);font-size:11px}@keyframes pipeline-pulse{0%,to{opacity:1}50%{opacity:.55}}.pipeline-library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-top:12px}.pipeline-report{margin-top:12px}.pipeline-report-metrics{margin:12px 0 0}.pipeline-report-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);gap:18px;margin-top:14px}.pipeline-report-table,.pipeline-report-bars{display:grid;gap:7px}.pipeline-report-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--border-muted)}.pipeline-report-row>div:first-child{display:grid;gap:2px;min-width:0}.pipeline-report-row-stats{display:grid;gap:2px;text-align:right;white-space:nowrap}.pipeline-report-bar-row{display:grid;grid-template-columns:38px 1fr 24px;align-items:center;gap:7px;font-size:12px;font-variant-numeric:tabular-nums}.pipeline-report-bar-row>span{color:var(--text-secondary)}.pipeline-report-bar-row>strong{text-align:right}.pipeline-report-bar-track{height:8px;overflow:hidden;border-radius:999px;background:var(--border-muted)}.pipeline-report-bar-track i{display:block;height:100%;border-radius:inherit;background:var(--accent)}.pipeline-report-empty{margin-top:12px;padding:18px;border:1px dashed var(--border-muted);border-radius:var(--r-lg);color:var(--text-secondary);text-align:center}.pipeline-preflight{margin-top:12px}.pipeline-preflight-list{display:grid;gap:8px;margin-top:12px}.pipeline-preflight-stage{padding:10px 12px;border:1px solid var(--border-muted);border-radius:var(--r-lg);background:var(--canvas)}.pipeline-preflight-stage.failed{border-color:color-mix(in srgb,var(--danger) 45%,var(--border-muted))}.pipeline-preflight-stage.warning{border-color:color-mix(in srgb,var(--warning) 45%,var(--border-muted))}.pipeline-preflight-stage-head,.pipeline-preflight-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.pipeline-preflight-stage-head>div:first-child{display:grid;gap:2px}.pipeline-preflight-checks{display:grid;gap:4px;margin-top:8px;font-size:12px}.pipeline-preflight-check{display:flex;gap:7px;align-items:flex-start;color:var(--text-secondary)}.pipeline-preflight-check>span{width:15px;color:var(--success);font-weight:700;text-align:center}.pipeline-preflight-check.warning>span{color:var(--warning)}.pipeline-preflight-check.error>span{color:var(--danger)}.pipeline-preflight-actions,.pipeline-recovery{margin-top:12px}.pipeline-recovery-list{display:grid;gap:6px;margin-top:12px}.pipeline-recovery-row{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(0,1.3fr) auto;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--border-muted)}.pipeline-recovery-note{margin:12px 0 0}.pipeline-recovery-errors{display:grid;gap:5px;margin-top:12px;padding:10px;border:1px solid color-mix(in srgb,var(--danger) 45%,var(--border-muted));border-radius:var(--r-lg);color:var(--danger);font-size:12px}@media(max-width:760px){.pipeline-report-grid,.pipeline-recovery-row{grid-template-columns:1fr}}.pipeline-card,.pipeline-stage-editor{display:grid;gap:10px;padding:12px;border:1px solid var(--border-muted);border-radius:var(--r-lg);background:var(--canvas)}.pipeline-card-head,.pipeline-stage-editor-head,.pipeline-card-run,.pipeline-card-actions,.pipeline-builder-actions,.pipeline-history-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pipeline-card-head,.pipeline-stage-editor-head{justify-content:space-between}.pipeline-stage-summary{display:grid;gap:5px;font-size:12px;color:var(--text-secondary)}.pipeline-stage-summary span{display:flex;align-items:baseline;gap:6px}.pipeline-stage-summary i{display:inline-grid;width:18px;height:18px;place-items:center;border-radius:50%;background:var(--accent-muted);color:var(--accent-fg);font-style:normal;font-size:10px}.pipeline-stage-summary small{color:var(--text-tertiary)}.pipeline-card-run{padding-top:8px;border-top:1px solid var(--border-muted);color:var(--text-secondary);font-size:12px}.pipeline-card-run button{margin-left:auto}.pipeline-card-actions{padding-top:2px}.pipeline-history{display:grid;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border-muted)}.pipeline-history-list{display:grid;gap:6px}.pipeline-history-row{padding:8px 0;border-bottom:1px solid var(--border-muted);font-size:12px}.pipeline-history-row strong{min-width:140px}.pipeline-history-row button:last-child{margin-left:auto}.pipeline-active-run{margin-top:12px}.pipeline-run-log{max-height:220px}.pipeline-error{color:var(--danger)}.pipeline-builder-modal{width:min(980px,100%);max-height:min(92vh,900px)}.pipeline-builder-intro{display:flex;gap:6px;flex-wrap:wrap;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border-muted));border-radius:var(--r);background:var(--accent-muted);color:var(--text-secondary);font-size:12px}.pipeline-builder-intro strong{color:var(--accent-fg)}.pipeline-builder-stages{display:grid;gap:10px}.pipeline-approval-toggle{display:flex;align-items:center;gap:7px;color:var(--text-secondary);font-size:12px;font-weight:600}.pipeline-approval-toggle input{width:auto}.pipeline-builder-actions{justify-content:flex-end}.pipeline-builder-actions span{flex:1}.form-grid{display:grid;gap:10px}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:680px){.deploy-pipeline{overflow-x:auto}.deploy-progress-title{flex-wrap:wrap}.form-grid-2,.form-grid-3{grid-template-columns:1fr}.pipeline-history-row strong{min-width:0}}.gh-link-list{display:grid;gap:8px}.gh-link-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--border-muted);font-size:13px}.gh-link-row:last-child{border-bottom:0}code{font-family:var(--mono);font-size:.9em;background:var(--canvas);border:1px solid var(--border-muted);border-radius:3px;padding:0 4px}.deploy-ref-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:16px}.deploy-env-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.deploy-env-card{border:1px solid var(--border-muted);border-radius:var(--r-lg);padding:16px;display:grid;gap:8px;background:var(--canvas);align-content:start}.deploy-env-card.ready{background:var(--surface);border-color:var(--border)}.deploy-env-card.missing{opacity:.85}.deploy-env-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.deploy-env-top strong{font-size:16px;font-weight:600}.deploy-target-name{margin:0;font-size:13px;font-weight:600;color:var(--text)}.deploy-missing{margin:0;font-size:12px;color:var(--warning);font-weight:500}.deploy-env-card button{width:100%;min-height:36px;margin-top:4px;font-weight:600}.deploy-btn-prod{background:#cf222e}.deploy-btn-prod:hover:not(:disabled){background:#a40e26}.deploy-env-card.env-qa .deploy-btn{background:#8250df}.deploy-env-card.env-qa .deploy-btn:hover:not(:disabled){background:#6639ba}.deploy-env-card.env-dev .deploy-btn{background:#1a7f37}.deploy-env-card.env-dev .deploy-btn:hover:not(:disabled){background:#116329}@media(max-width:900px){.deploy-env-grid{grid-template-columns:1fr}}[data-theme=dark] .deploy-btn-prod{background:#f85149;color:#0d1117}[data-theme=dark] .deploy-env-card.env-qa .deploy-btn{background:#a371f7;color:#0d1117}[data-theme=dark] .deploy-env-card.env-dev .deploy-btn{background:#3fb950;color:#0d1117}.deploy-env-card.maint{border-color:var(--warning);opacity:.9}.deploy-card-actions{margin-top:4px}.panel-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.deploy-table-head,.deploy-target-row{grid-template-columns:1.4fr .5fr 1fr auto}.deploy-row-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.deploy-row-actions button{min-height:28px;font-size:12px}.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px 16px}.check-row{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text-secondary);cursor:pointer;line-height:1.35}.check-row input{margin-top:2px;width:15px;height:15px;flex-shrink:0}.deploy-modal{width:min(720px,96vw);max-height:min(90vh,900px);display:flex;flex-direction:column}.deploy-modal-body{overflow:auto;padding:4px 4px 12px;flex:1}.deploy-section-title{margin:18px 0 8px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.deploy-section-title:first-child{margin-top:0}.deploy-textarea{width:100%;min-height:72px;font-family:var(--mono);font-size:12px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);color:var(--text);resize:vertical}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.modal-header h2{margin:0}.tenants-grid{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:12px;align-items:start}@media(max-width:900px){.tenants-grid{grid-template-columns:1fr}}.tenant-list{display:grid;gap:8px}.tenant-card{display:flex;gap:10px;align-items:flex-start;text-align:left;width:100%;padding:10px 12px;border:1px solid var(--border-muted);border-radius:var(--r-lg);background:var(--canvas);cursor:pointer}.tenant-card:hover{border-color:var(--border);background:var(--surface)}.tenant-card.active{border-color:var(--accent, #0052cc);box-shadow:0 0 0 1px var(--accent, #0052cc)}.tenant-card-body{display:grid;gap:2px;min-width:0}.tenant-dot{width:10px;height:10px;border-radius:50%;margin-top:5px;flex-shrink:0}.docker-host-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-top:10px}.docker-host-card{display:grid;gap:4px;text-align:left;padding:12px;border:1px solid var(--border-muted);border-radius:var(--r-lg);background:var(--canvas);cursor:pointer}.docker-host-card:hover,.docker-host-card.active{border-color:var(--accent, #0052cc);background:var(--surface)}.docker-host-card.error{border-color:var(--danger)}.docker-actions{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.member-chips{display:flex;flex-wrap:wrap;gap:6px}.provision-method-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 16px}.provision-method-tabs button.active{background:var(--accent, #0052cc);color:#fff;border-color:transparent}.resource-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border-muted)}.resource-tabs button.active{background:var(--accent, #0052cc);color:#fff;border-color:transparent}.eyebrow{display:block;margin-bottom:4px;color:var(--accent-fg);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.ops-guide{margin:-4px 0 14px;background:linear-gradient(135deg,var(--surface),var(--accent-muted));border-color:#b6e3ff}.ops-guide-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.ops-guide h2{margin:0 0 4px;font-size:16px}.audit-trail{margin:0 0 14px}.audit-header-actions{display:flex;flex-wrap:wrap;gap:8px}.audit-filters{display:flex;align-items:flex-end;gap:10px;margin-top:14px}.audit-filters .field{margin:0}.audit-search-field{flex:1 1 280px}.audit-action-field{flex:0 1 220px}.audit-clear{min-height:38px}.dependency-plan{margin:12px 0;padding:12px;border:1px solid color-mix(in srgb,var(--accent, #0969da) 28%,var(--border-muted));border-radius:var(--r-md, 8px);background:color-mix(in srgb,var(--accent-muted, #ddf4ff) 45%,var(--canvas))}.dependency-plan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.dependency-plan-head strong{display:block;font-size:14px}.dependency-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.dependency-plan-grid>div{display:grid;gap:3px;min-width:0}.dependency-plan-grid strong{font-size:12px;font-weight:600}.dependency-plan-packages{margin:12px 0 0}.dependency-plan-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px}.host-deploy-preflight{margin:12px 0;padding:12px;border:1px solid var(--border-muted);border-radius:var(--r-md, 8px);background:var(--canvas)}.host-preflight-capabilities{display:flex;flex-wrap:wrap;gap:8px 14px;margin:12px 0;color:var(--text-muted, #656d76);font-size:12px}.host-preflight-capabilities strong{color:var(--text, #24292f)}.host-preflight-fix{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-muted)}.host-preflight-fix>div{display:grid;gap:3px}.host-capabilities-panel{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-muted)}.host-capability-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}.host-capability-card{display:grid;gap:3px;min-width:0;padding:9px 10px;border:1px solid var(--border-muted);border-radius:var(--r-md, 8px);background:var(--canvas)}.host-capability-card strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.host-capability-card .status-pill{justify-self:start}.host-health-panel{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-muted)}.host-health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.host-health-card{display:grid;gap:3px;min-width:0;padding:10px;border:1px solid var(--border-muted);border-radius:var(--r-md, 8px);background:var(--canvas)}.host-health-card strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.host-exposure-panel{margin:0 0 14px;padding:12px;border:1px solid var(--border-muted);border-radius:var(--r-md, 8px);background:var(--canvas-subtle, var(--canvas))}.host-exposure-summary{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;margin-top:10px}.host-exposure-table{margin-top:10px;overflow:hidden;border:1px solid var(--border-muted);border-radius:var(--r-md, 8px)}.host-exposure-row{display:grid;grid-template-columns:.7fr 1.4fr .5fr 1fr .8fr;gap:10px;align-items:center;min-width:0;padding:9px 10px;border-top:1px solid var(--border-muted);background:var(--canvas);font-size:12px}.host-exposure-row:first-child{border-top:0}.host-exposure-row code,.host-exposure-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.host-exposure-head{color:var(--text-muted, #656d76);font-size:11px;font-weight:600;text-transform:uppercase}.host-posture-panel{margin-bottom:12px;padding:12px;border:1px solid var(--border-muted);border-radius:var(--r-md, 8px);background:var(--canvas-subtle, var(--canvas))}.host-posture-list{display:grid;gap:0;margin-top:10px;overflow:hidden;border:1px solid var(--border-muted);border-radius:var(--r-md, 8px)}.host-posture-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 10px;border-top:1px solid var(--border-muted);background:var(--canvas)}.host-posture-row:first-child{border-top:0}.host-posture-row>div{display:grid;gap:2px;min-width:0}.host-posture-icon{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:13px;font-weight:700}.host-posture-icon.pass{background:var(--success-subtle, #dafbe1);color:var(--success, #1a7f37)}.host-posture-icon.warning{background:var(--attention-subtle, #fff8c5);color:var(--attention, #9a6700)}.host-posture-icon.error{background:var(--danger-subtle, #ffebe9);color:var(--danger, #cf222e)}.host-services-panel{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-muted)}.host-services-summary{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.host-services-table{margin-top:10px;overflow:hidden;border:1px solid var(--border-muted);border-radius:var(--r-md, 8px)}.host-services-row{display:grid;grid-template-columns:1.2fr .7fr 2fr auto;gap:10px;align-items:center;min-width:0;padding:9px 10px;border-top:1px solid var(--border-muted);background:var(--canvas);font-size:12px}.host-services-row:first-child{border-top:0}.host-services-row>*{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.host-services-row button{overflow:visible;white-space:nowrap}.host-service-actions{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.host-service-actions .action-menu summary{min-height:28px;padding:4px 8px;font-size:12px}.host-services-head{color:var(--text-muted, #656d76);font-size:11px;font-weight:600;text-transform:uppercase}.host-service-log{max-height:260px;margin:0 10px 10px;padding:10px;overflow:auto;border:1px solid var(--border-muted);border-radius:var(--r-md, 8px);background:var(--canvas-subtle, #f6f8fa);color:var(--text, #24292f);font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.host-service-log-error{margin:0 10px 10px}.host-updates-panel{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-muted)}.host-updates-summary{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.host-updates-table{margin-top:10px;overflow:hidden;border:1px solid var(--border-muted);border-radius:var(--r-md, 8px)}.host-updates-row{display:grid;grid-template-columns:1.3fr 1.2fr auto;gap:10px;align-items:center;min-width:0;padding:9px 10px;border-top:1px solid var(--border-muted);background:var(--canvas);font-size:12px}.host-updates-row:first-child{border-top:0}.host-updates-row>*{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.host-updates-head{color:var(--text-muted, #656d76);font-size:11px;font-weight:600;text-transform:uppercase}.audit-event-list{display:grid;gap:0;margin-top:12px;overflow:hidden;border:1px solid var(--border-muted);border-radius:var(--r-md, 8px)}.audit-event-row{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(0,1.7fr) minmax(150px,.8fr);gap:14px;align-items:center;padding:11px 12px;border-top:1px solid var(--border-muted);background:var(--canvas)}.audit-event-row:first-child{border-top:0}.audit-event-action,.audit-event-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px;min-width:0}.audit-event-body{display:grid;gap:2px;min-width:0}.audit-event-body span{overflow:hidden;color:var(--text-muted, #656d76);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.audit-event-meta{justify-content:flex-end;color:var(--text-muted, #656d76);font-size:12px;text-align:right}.ops-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.ops-step{display:flex;align-items:flex-start;gap:10px;min-width:0;padding:12px;border:1px solid rgba(9,105,218,.18);border-radius:var(--r-lg);background:#ffffff9e}.ops-step-number{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border-radius:50%;background:var(--accent);color:#fff;font-size:12px;font-weight:700}@media(max-width:760px){.dependency-plan-grid{grid-template-columns:1fr}.host-capability-grid,.host-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.host-exposure-row{grid-template-columns:.7fr 1.2fr .5fr 1fr}.host-exposure-row>:last-child{grid-column:1 / -1;justify-self:start}.host-posture-row{grid-template-columns:24px minmax(0,1fr)}.host-posture-row>:last-child{grid-column:2;justify-self:start}.host-services-row{grid-template-columns:1.2fr .8fr}.host-services-row>:nth-child(3){grid-column:1 / -1}.host-services-row>:last-child{grid-column:auto;justify-self:start}.host-service-actions{grid-column:1 / -1}.host-updates-row{grid-template-columns:1.2fr auto}.host-updates-row>:last-child{grid-column:auto}.audit-filters{align-items:stretch;flex-direction:column}.audit-action-field,.audit-search-field{flex-basis:auto}.audit-event-row{grid-template-columns:1fr;gap:7px}.audit-event-meta{justify-content:flex-start;text-align:left}}.ops-step div{display:grid;gap:3px}.ops-step strong{font-size:13px}.ops-step span:not(.ops-step-number){color:var(--text-secondary);font-size:12px;line-height:1.4}.workspace-summary{border-color:var(--accent);box-shadow:0 0 0 1px #0969da14}.workspace-summary-actions,.resource-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.workspace-stat-row{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border-muted);color:var(--text-secondary);font-size:12px}.workspace-stat-row strong{color:var(--text);font-size:15px;margin-right:3px}.action-menu{position:relative}.action-menu summary,.advanced-options summary{cursor:pointer;list-style:none}.action-menu summary::-webkit-details-marker,.advanced-options summary::-webkit-details-marker{display:none}.action-menu summary{min-height:32px;display:inline-flex;align-items:center;padding:0 10px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);color:var(--text-secondary);font-size:13px;font-weight:500}.action-menu summary:after{content:"▾";margin-left:6px;font-size:11px}.action-menu[open] summary,.action-menu summary:hover{border-color:var(--text-tertiary);color:var(--text)}.action-menu-popover{position:absolute;z-index:3;top:calc(100% + 6px);right:0;display:grid;gap:4px;min-width:190px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}.action-menu-popover button{justify-content:flex-start;width:100%}.danger-text{color:var(--danger)!important}.field-hint-card{display:grid;align-content:center;gap:3px;min-height:64px;padding:10px 12px;border:1px dashed var(--border);border-radius:var(--r);background:var(--canvas);color:var(--text-secondary);font-size:12px;line-height:1.4}.field-hint-card strong{color:var(--text);font-size:12px}.advanced-options{margin:12px 0;border-top:1px solid var(--border-muted);border-bottom:1px solid var(--border-muted)}.advanced-options summary{padding:10px 0;color:var(--text-secondary);font-size:12px;font-weight:600}.advanced-options summary:before{content:"▸";display:inline-block;width:16px;color:var(--accent)}.advanced-options[open] summary:before{content:"▾"}.advanced-options-body{display:grid;gap:12px;padding:0 0 12px}.resource-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.resource-summary-grid .callout{margin:0}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:560px){.field-row,.ops-steps{grid-template-columns:1fr}.workspace-summary-actions,.resource-actions{justify-content:flex-start;width:100%}}.provision-jobs{display:grid;gap:10px}.provision-job{border:1px solid var(--border-muted);border-radius:var(--r-lg);padding:10px 12px;background:var(--canvas)}.provision-job.running,.provision-job.pending{border-color:var(--accent, #0052cc)}.provision-job.failed{border-color:var(--danger)}.provision-job-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.provision-log{max-height:200px;margin-top:8px;font-size:12px;white-space:pre-wrap;word-break:break-word}.provision-live .provision-log{max-height:280px}.infra-metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:12px}.infra-metrics .metric-card{display:grid;gap:2px;padding:12px 14px;border:1px solid var(--border-muted);border-radius:var(--r-lg);background:var(--surface)}.infra-metrics .metric-card strong{font-size:1.4rem;line-height:1.2}.infra-metrics .metric-ok strong{color:var(--success, #1a7f37)}.infra-metrics .metric-warn strong{color:var(--warning, #9a6700)}.infra-metrics .metric-bad strong{color:var(--danger)}.infra-split{display:grid;grid-template-columns:1.1fr .9fr;gap:12px;align-items:start}@media(max-width:900px){.infra-split{grid-template-columns:1fr}}.infra-error-list,.infra-cluster-list{display:grid;gap:8px;margin-top:12px;max-height:520px;overflow:auto}.infra-error-row,.infra-cluster-card{display:block;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--border-muted);border-radius:var(--r-lg);background:var(--canvas);cursor:pointer}.infra-error-row:hover,.infra-cluster-card:hover{border-color:var(--accent, #0052cc);background:var(--surface)}.infra-error-row.severity-error{border-color:color-mix(in srgb,var(--danger) 45%,var(--border-muted))}.infra-error-top,.infra-cluster-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.infra-cluster-head{margin-bottom:4px}.infra-cluster-card.status-down{border-color:var(--danger)}.infra-cluster-card.status-degraded{border-color:color-mix(in srgb,#9a6700 50%,var(--border-muted))}.infra-mini-list{margin:8px 0 0;padding-left:1.1rem;font-size:12px;color:var(--text-muted, #656d76)}.infra-event-list{display:grid;gap:8px;margin-top:8px}.infra-event-row{padding:8px 10px;border:1px solid var(--border-muted);border-radius:var(--r-md, 8px);background:var(--canvas)}.database-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.database-card{border:1px solid var(--border, #d0d7de);border-radius:10px;padding:14px;background:var(--surface, #fff)}.database-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.database-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;margin-top:12px;color:var(--muted, #57606a);font-size:12px}.database-facts strong{color:var(--text, #24292f);margin-right:4px}.database-card-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:14px}.database-form-section{margin-top:14px;padding-top:14px;border-top:1px solid var(--border, #d0d7de)}.database-job-history{border-top:1px solid var(--border, #d0d7de);padding-top:14px}.one-time-secret{margin-top:8px;padding:10px;border-radius:8px;background:color-mix(in srgb,var(--accent, #0969da) 8%,transparent)}@media(max-width:760px){.database-grid,.database-facts{grid-template-columns:1fr}}
