:root{--color-bg: #f7f7f8;--color-surface: #ffffff;--color-surface-alt: #f0f1f3;--color-border: #dcdfe4;--color-text: #1a1d21;--color-text-muted: #5b6270;--color-primary: #2f5bea;--color-primary-hover: #2549bf;--color-primary-contrast: #ffffff;--color-danger: #c0362c;--color-danger-bg: #fbe9e7;--color-success: #1f8a4c;--color-success-bg: #e6f4ea;--color-warning: #9a6b00;--color-warning-bg: #fff3d6;--color-focus: #2f5bea;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--shadow-sm: 0 1px 2px rgba(20, 22, 30, .08);--shadow-md: 0 4px 16px rgba(20, 22, 30, .12);--chart-1: #2f5bea;--chart-2: #e7833f;--chart-3: #1f8a4c;--chart-4: #9a4bc9;--chart-5: #c0362c}@media(prefers-color-scheme:dark){:root{--color-bg: #14161a;--color-surface: #1c1f25;--color-surface-alt: #23262d;--color-border: #33373f;--color-text: #eceef1;--color-text-muted: #9aa1ad;--color-primary: #6d8bf5;--color-primary-hover: #86a0f7;--color-primary-contrast: #0c1020;--color-danger: #e5776e;--color-danger-bg: #3a201d;--color-success: #52c17e;--color-success-bg: #17301f;--color-warning: #e0b256;--color-warning-bg: #362a0f;--color-focus: #6d8bf5;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .5);--chart-1: #6d8bf5;--chart-2: #f0a35f;--chart-3: #52c17e;--chart-4: #c07bea;--chart-5: #e5776e}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--color-primary)}.app-shell{display:flex;flex-direction:column;min-height:100%}.app-header{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.app-title{font-weight:700;font-size:16px;margin-right:var(--space-4);white-space:nowrap}.app-nav{display:flex;gap:var(--space-1);flex-wrap:wrap;flex:1}.app-nav a{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);text-decoration:none;color:var(--color-text-muted);font-weight:500}.app-nav a.active,.app-nav a[aria-current=page]{background:var(--color-surface-alt);color:var(--color-text)}.app-main{flex:1;padding:var(--space-5);max-width:1200px;width:100%;margin:0 auto}.select{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.identity{display:flex;align-items:center;gap:var(--space-2);font-size:13px;color:var(--color-text-muted)}.role-badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:var(--color-surface-alt);border:1px solid var(--color-border)}.role-badge.admin{background:var(--color-success-bg);color:var(--color-success);border-color:transparent}.role-badge.editor{background:var(--color-warning-bg);color:var(--color-warning);border-color:transparent}.role-badge.viewer{background:var(--color-surface-alt);color:var(--color-text-muted)}.pill{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.pill.live{background:var(--color-success-bg);color:var(--color-success)}.pill.killed{background:var(--color-danger-bg);color:var(--color-danger)}button.btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;font-weight:600}button.btn:hover{background:var(--color-surface-alt)}button.btn:disabled{opacity:.5;cursor:not-allowed}button.btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-contrast)}button.btn.primary:hover{background:var(--color-primary-hover)}button.btn.danger{background:var(--color-danger-bg);border-color:transparent;color:var(--color-danger)}button.btn.small{padding:var(--space-1) var(--space-2);font-size:12px}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3)}.field label{font-weight:600;font-size:12px;color:var(--color-text-muted)}.field input[type=text],.field input[type=number],.field input[type=search],.field input:not([type]),.field select,.field textarea{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface)}.field .hint{font-size:12px;color:var(--color-text-muted)}.field .error{font-size:12px;color:var(--color-danger)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4)}table.table{width:100%;border-collapse:collapse}table.table th,table.table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);font-size:13px}table.table th{color:var(--color-text-muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em}table.table tbody tr:hover{background:var(--color-surface-alt)}.tag{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--color-surface-alt);border:1px solid var(--color-border);font-size:11px;margin-right:4px}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.status-dot.on{background:var(--color-success)}.status-dot.off{background:var(--color-text-muted)}.status-dot.killed{background:var(--color-danger)}.empty-state{text-align:center;padding:var(--space-7) var(--space-4);color:var(--color-text-muted)}.toast-container{position:fixed;top:var(--space-4);right:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);z-index:1000}.toast{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);max-width:360px}.toast.error{border-color:var(--color-danger);background:var(--color-danger-bg)}.toast .toast-title{font-weight:700;margin-bottom:2px}.modal-backdrop{position:fixed;inset:0;background:#0a0c1066;display:flex;align-items:center;justify-content:center;z-index:900}.modal{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);max-width:480px;width:100%;box-shadow:var(--shadow-md)}.row{display:flex;gap:var(--space-3);align-items:center}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.spacer{flex:1}.tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-4)}.tabs button{background:none;border:none;padding:var(--space-2) var(--space-4);cursor:pointer;font-weight:600;color:var(--color-text-muted);border-bottom:2px solid transparent}.tabs button.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.rule-card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-3);background:var(--color-surface-alt)}.condition-row{display:grid;grid-template-columns:1.2fr 1.2fr 1.6fr auto;gap:var(--space-2);align-items:start;margin-bottom:var(--space-2)}.distribution-row{display:grid;grid-template-columns:1fr 100px auto;gap:var(--space-2);align-items:center;margin-bottom:var(--space-2)}.percent-indicator{font-weight:700}.percent-indicator.ok{color:var(--color-success)}.percent-indicator.bad{color:var(--color-danger)}pre.diff,pre.json-view{background:var(--color-surface-alt);padding:var(--space-3);border-radius:var(--radius-sm);overflow:auto;font-family:var(--font-mono);font-size:12px;max-height:400px}.diff-added{background:var(--color-success-bg);color:var(--color-success)}.diff-removed{background:var(--color-danger-bg);color:var(--color-danger);text-decoration:line-through}.link-button{background:none;border:none;color:var(--color-primary);cursor:pointer;padding:0;font:inherit;text-decoration:underline}.muted{color:var(--color-text-muted)}.sign-in-screen{min-height:100%;display:flex;align-items:center;justify-content:center}.sign-in-card{width:360px;max-width:calc(100vw - 32px);text-align:center}.sign-in-card form,.sign-in-card .field{text-align:left}.sign-in-card form .btn{width:100%}.dev-sign-in hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-5) 0 var(--space-4)}.vendor-list{list-style:none;margin:var(--space-4) 0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.vendor-choice{width:100%;display:flex;justify-content:space-between;align-items:center}.workspace-setup{max-width:520px;margin:var(--space-7) auto;text-align:center}
