:root{--ip-bg: #F8F9FB;--ip-surface: #FFFFFF;--ip-surface-2: #F1F3F6;--ip-surface-3: #EAECF0;--ip-border: #E4E7EC;--ip-accent: #4F46E5;--ip-accent-hover: #4338CA;--ip-accent-mid: #6366F1;--ip-accent-light: #EEF2FF;--ip-accent-subtle: rgba(79, 70, 229, .1);--ip-text-primary: #0F172A;--ip-text-secondary: #475569;--ip-text-muted: #94A3B8;--ip-success: #16A34A;--ip-error: #DC2626;--ip-warning: #D97706;--ip-font: "Outfit", system-ui, sans-serif;--ip-font-display: "Outfit", system-ui, sans-serif;--ip-radius: 10px;--ip-radius-sm: 6px;--ip-shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--ip-shadow: 0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);--ip-shadow-md: 0 8px 24px rgba(0,0,0,.1), 0 2px 6px rgba(0,0,0,.05);--ip-shadow-accent: 0 4px 20px rgba(79,70,229,.2);--ip-transition: .18s cubic-bezier(.4, 0, .2, 1);--ip-sidebar-width: 220px;--ip-topbar-height: 56px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%}body{font-family:var(--ip-font);background:var(--ip-bg);color:var(--ip-text-primary);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:var(--ip-font);cursor:pointer}input,select,textarea{font-family:var(--ip-font)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--ip-surface-2)}::-webkit-scrollbar-thumb{background:var(--ip-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--ip-text-muted)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--ip-radius-sm);border:none;font-size:13px;font-weight:500;transition:background var(--ip-transition),opacity var(--ip-transition),color var(--ip-transition),transform var(--ip-transition),box-shadow var(--ip-transition);white-space:nowrap}.btn-sm{padding:5px 12px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--ip-accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--ip-accent-hover);transform:translateY(-1px);box-shadow:var(--ip-shadow-accent)}.btn-secondary{background:#fff;color:var(--ip-text-primary);border:1px solid var(--ip-border)}.btn-secondary:hover:not(:disabled){background:var(--ip-surface-2)}.btn-danger{background:#fff;color:var(--ip-error);border:1px solid var(--ip-error)}.btn-danger:hover:not(:disabled){background:#fef2f2}.btn-ghost{background:transparent;color:var(--ip-text-secondary);border:none}.btn-ghost:hover:not(:disabled){color:var(--ip-text-primary);background:var(--ip-surface-2)}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-label{font-size:13px;font-weight:500;color:var(--ip-text-secondary)}.form-input{background:#fff;border:1px solid var(--ip-border);border-radius:var(--ip-radius-sm);color:var(--ip-text-primary);font-size:14px;padding:8px 12px;width:100%;transition:border-color .15s,box-shadow .15s;outline:none}.form-input:focus{border-color:var(--ip-accent);box-shadow:0 0 0 4px var(--ip-accent-light)}.form-input:read-only{background:var(--ip-surface-2);opacity:.7;cursor:default}.form-select{background:#fff;border:1px solid var(--ip-border);border-radius:var(--ip-radius-sm);color:var(--ip-text-primary);font-size:14px;padding:8px 36px 8px 12px;width:100%;outline:none;transition:border-color .15s,box-shadow .15s;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%2394A3B8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:12px 8px;font-family:var(--ip-font)}.form-select:focus{border-color:var(--ip-accent);box-shadow:0 0 0 3px var(--ip-accent-light)}.card{background:var(--ip-surface);border:1px solid var(--ip-border);border-radius:var(--ip-radius);padding:20px;box-shadow:var(--ip-shadow-sm)}.card-interactive{transition:transform var(--ip-transition),box-shadow var(--ip-transition);cursor:pointer}.card-interactive:hover{transform:translateY(-2px);box-shadow:var(--ip-shadow-md)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ip-text-muted);padding:10px 16px;border-bottom:1px solid var(--ip-border)}.table td{padding:12px 16px;border-bottom:1px solid var(--ip-border);color:var(--ip-text-secondary);font-size:13px}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--ip-surface-2)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:600}.badge-success{background:#dcfce7;color:var(--ip-success)}.badge-warning{background:#fef3c7;color:var(--ip-warning)}.badge-error{background:#fee2e2;color:var(--ip-error)}.badge-muted{background:var(--ip-surface-2);color:var(--ip-text-muted)}.alert{padding:10px 14px;border-radius:var(--ip-radius-sm);font-size:13px;margin-bottom:16px}.alert-error{background:#fef2f2;border:1px solid #FECACA;color:#dc2626}.alert-success{background:#f0fdf4;border:1px solid #BBF7D0;color:#16a34a}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-title{font-size:22px;font-weight:700;color:var(--ip-text-primary);letter-spacing:-.02em}.page-subtitle{font-size:13px;color:var(--ip-text-muted);margin-top:2px}.spinner{width:20px;height:20px;border:2px solid var(--ip-border);border-top-color:var(--ip-accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading-center{display:flex;align-items:center;justify-content:center;padding:60px}.code-block{background:#f8f9fb;border:1px solid var(--ip-border);border-radius:var(--ip-radius-sm);padding:16px;font-family:Menlo,Monaco,Courier New,monospace;font-size:12px;color:var(--ip-text-secondary);overflow-x:auto;white-space:pre;line-height:1.6}.copy-field{display:flex;gap:8px;align-items:center}.copy-field .form-input{flex:1;font-family:Menlo,Monaco,Courier New,monospace;font-size:12px}@media(max-width:640px){.login-panel-left{display:none!important}}.empty-state{text-align:center;padding:60px 20px;color:var(--ip-text-muted)}.empty-state-icon{font-size:40px;margin-bottom:12px;display:block}.empty-state-text{font-size:14px;margin-bottom:16px}.metric-number{font-size:32px;font-family:var(--ip-font-display);font-variant-numeric:tabular-nums;font-weight:400;line-height:1;color:var(--ip-text-primary);letter-spacing:-.02em}.stat-delta{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:500}.stat-delta-up{color:var(--ip-success)}.stat-delta-down{color:var(--ip-error)}.stat-delta-neutral{color:var(--ip-text-muted)}.badge-accent{background:var(--ip-accent-light);color:var(--ip-accent)}.pill-filter{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}.pill-filter-btn{padding:5px 12px;border-radius:99px;border:1px solid var(--ip-border);background:var(--ip-surface);color:var(--ip-text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--ip-transition);font-family:var(--ip-font);white-space:nowrap}.pill-filter-btn:hover{border-color:var(--ip-accent-mid);color:var(--ip-accent)}.pill-filter-btn.active{background:var(--ip-accent);border-color:var(--ip-accent);color:#fff}.progress-bar-track{width:100%;height:10px;background:var(--ip-surface-2);border-radius:99px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:99px;background:var(--ip-accent);transition:width .6s cubic-bezier(.4,0,.2,1);animation:barGrow .7s cubic-bezier(.4,0,.2,1) both}.view-toggle{display:inline-flex;border:1px solid var(--ip-border);border-radius:var(--ip-radius-sm);overflow:hidden}.view-toggle-btn{padding:6px 10px;background:var(--ip-surface);border:none;color:var(--ip-text-muted);cursor:pointer;transition:all var(--ip-transition);font-family:var(--ip-font);display:flex;align-items:center}.view-toggle-btn:not(:last-child){border-right:1px solid var(--ip-border)}.view-toggle-btn:hover{background:var(--ip-surface-2);color:var(--ip-text-primary)}.view-toggle-btn.active{background:var(--ip-accent);color:#fff}.section-header{display:flex;align-items:center;gap:12px;margin:24px 0 16px}.section-header-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ip-text-muted);white-space:nowrap}.section-header-line{flex:1;height:1px;background:var(--ip-border)}.settings-row{display:grid;grid-template-columns:200px 1fr;gap:16px;align-items:start;padding:16px 0;border-bottom:1px solid var(--ip-border)}.settings-row:last-child{border-bottom:none}.settings-row-label{font-size:13px;font-weight:500;color:var(--ip-text-primary);padding-top:8px}.settings-row-hint{font-size:12px;color:var(--ip-text-muted);margin-top:2px;font-weight:400}.collapsible-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;cursor:pointer;padding:12px 0;font-family:var(--ip-font);font-size:14px;font-weight:600;color:var(--ip-text-primary);transition:color var(--ip-transition)}.collapsible-trigger:hover{color:var(--ip-accent)}.collapsible-chevron{transition:transform var(--ip-transition)}.collapsible-chevron.open{transform:rotate(180deg)}.empty-state-card{border:2px dashed var(--ip-border);border-radius:var(--ip-radius);padding:48px 24px;text-align:center;background:var(--ip-surface)}.code-block-header{display:flex;align-items:center;justify-content:space-between;background:var(--ip-surface-2);border:1px solid var(--ip-border);border-bottom:none;border-radius:var(--ip-radius-sm) var(--ip-radius-sm) 0 0;padding:8px 16px;font-size:11px;font-weight:600;color:var(--ip-text-muted);text-transform:uppercase;letter-spacing:.05em}.code-block-header+.code-block{border-radius:0 0 var(--ip-radius-sm) var(--ip-radius-sm)}.sticky-save-bar{position:sticky;bottom:0;background:var(--ip-surface);border-top:1px solid var(--ip-border);padding:16px 24px;display:flex;align-items:center;justify-content:flex-end;gap:12px;box-shadow:0 -4px 16px #0000000f;margin:0 -24px -24px;z-index:10}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes barGrow{0%{width:0!important}}.animate-in{animation:fadeSlideUp .35s cubic-bezier(.4,0,.2,1) both}
