:root{--kal-primary-50:#eef2ff;--kal-primary-100:#e0e7ff;--kal-primary-200:#c7d2fe;--kal-primary-300:#a5b4fc;--kal-primary-400:#818cf8;--kal-primary-500:#6366f1;--kal-primary-600:#4f46e5;--kal-primary-700:#4338ca;--kal-primary-800:#3730a3;--kal-primary-900:#312e81;--kal-primary:var(--kal-primary-500);--kal-primary-hover:var(--kal-primary-600);--kal-primary-active:var(--kal-primary-700);--kal-on-primary:#fff;--kal-accent-400:#a78bfa;--kal-accent-500:#8b5cf6;--kal-accent-600:#7c3aed;--kal-accent:var(--kal-accent-500);--kal-success:#10b981;--kal-warning:#f59e0b;--kal-error:#ef4444;--kal-info:#0ea5e9;--kal-gray-50:#f8fafc;--kal-gray-100:#f1f5f9;--kal-gray-200:#e2e8f0;--kal-gray-300:#cbd5e1;--kal-gray-400:#94a3b8;--kal-gray-500:#64748b;--kal-gray-600:#475569;--kal-gray-700:#334155;--kal-gray-800:#1e293b;--kal-gray-900:#0f172a;--kal-bg:#f6f7fb;--kal-surface:#fff;--kal-surface-muted:#f1f5f9;--kal-border:#e2e8f0;--kal-ink:#0b1020;--kal-ink-muted:#475569;--kal-ink-subtle:#94a3b8;--kal-font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--kal-font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--kal-text-xs:0.75rem;--kal-text-sm:0.875rem;--kal-text-base:1rem;--kal-text-lg:1.125rem;--kal-text-xl:1.25rem;--kal-text-2xl:1.5rem;--kal-text-3xl:1.875rem;--kal-text-4xl:2.25rem;--kal-text-5xl:3rem;--kal-weight-normal:400;--kal-weight-medium:500;--kal-weight-semibold:600;--kal-weight-bold:700;--kal-space-xs:0.25rem;--kal-space-sm:0.5rem;--kal-space-md:1rem;--kal-space-lg:1.5rem;--kal-space-xl:2rem;--kal-space-2xl:3rem;--kal-space-3xl:4rem;--kal-radius-sm:0.25rem;--kal-radius-md:0.5rem;--kal-radius-lg:0.75rem;--kal-radius-xl:1rem;--kal-radius-full:9999px;--kal-shadow-sm:0 1px 2px rgba(15,23,42,.06);--kal-shadow-md:0 4px 12px rgba(15,23,42,.08);--kal-shadow-lg:0 10px 24px rgba(15,23,42,.1);--kal-shadow-xl:0 20px 45px rgba(15,23,42,.14);--kal-transition-fast:120ms ease;--kal-transition-base:200ms ease;--kal-transition-slow:320ms ease;--kal-z-dropdown:1000;--kal-z-sticky:1020;--kal-z-overlay:1040;--kal-z-modal:1050;--kal-z-toast:1080}.dark-theme,:root[data-theme=dark]{--kal-bg:#0b1020;--kal-surface:#151b2e;--kal-surface-muted:#1e293b;--kal-border:#334155;--kal-ink:#f8fafc;--kal-ink-muted:#cbd5e1;--kal-ink-subtle:#94a3b8;--kal-primary:var(--kal-primary-400);--kal-primary-hover:var(--kal-primary-300)}:root{--color-primary:var(--kal-primary);--color-primary-hover:var(--kal-primary-hover);--color-primary-light:var(--kal-primary-100);--color-secondary:var(--kal-accent);--color-secondary-hover:var(--kal-accent-600);--color-success:var(--kal-success);--color-warning:var(--kal-warning);--color-error:var(--kal-error);--color-info:var(--kal-info);--color-bg:var(--kal-surface);--color-bg-secondary:var(--kal-gray-50);--color-bg-tertiary:var(--kal-gray-100);--color-bg-dark:var(--kal-gray-900);--color-text:var(--kal-ink);--color-text-secondary:var(--kal-ink-muted);--color-text-muted:var(--kal-ink-subtle);--color-text-inverse:var(--kal-on-primary);--color-border:var(--kal-border);--color-border-hover:var(--kal-gray-300);--color-border-focus:var(--kal-primary);--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--spacing-3xl:64px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--font-sans:var(--kal-font-sans);--font-mono:var(--kal-font-mono);--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--transition-fast:150ms ease;--transition-normal:250ms ease;--transition-slow:350ms ease;--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070;--z-toast:1080;--sidebar-width:260px;--sidebar-collapsed-width:64px;--topbar-height:56px;--builder-toolbar-height:48px;--panel-width:300px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--color-bg);color:var(--color-text);min-height:100vh}a{color:inherit;text-decoration:none}img,video{max-width:100%;height:auto}button{cursor:pointer;border:none;background:none}button,input,select,textarea{font:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 var(--spacing-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;line-height:1.5;transition:all var(--transition-fast);white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background-color:var(--color-primary);color:var(--color-text-inverse)}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn--secondary{background-color:var(--color-bg-tertiary);color:var(--color-text);border:1px solid var(--color-border)}.btn--secondary:hover:not(:disabled){background-color:var(--color-border)}.btn--ghost{background:transparent;color:var(--color-text-secondary)}.btn--ghost:hover:not(:disabled){background-color:var(--color-bg-tertiary);color:var(--color-text)}.btn--danger{background-color:var(--color-error);color:var(--color-text-inverse)}.btn--danger:hover:not(:disabled){background-color:#eb1515}.btn--sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--text-xs)}.btn--lg{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--text-base)}.btn--icon{padding:var(--spacing-sm);width:36px;height:36px}.input,.select,.textarea{display:block;width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:1.5;background-color:var(--color-bg);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input::-moz-placeholder,.select::-moz-placeholder,.textarea::-moz-placeholder{color:var(--color-text-muted)}.input::placeholder,.select::placeholder,.textarea::placeholder{color:var(--color-text-muted)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.input:disabled,.select:disabled,.textarea:disabled{background-color:var(--color-bg-tertiary);cursor:not-allowed}.input--error{border-color:var(--color-error)}.input--error:focus{box-shadow:0 0 0 3px rgba(239,68,68,.1)}.textarea{resize:vertical;min-height:100px}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23475569' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--color-text);margin-bottom:var(--spacing-xs)}.form-group{margin-bottom:var(--spacing-md)}.form-error{font-size:var(--text-xs);color:var(--color-error);margin-top:var(--spacing-xs)}.card{background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.card--hover:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-hover)}.card--clickable{cursor:pointer}.card--clickable:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary)}.card__header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-md)}.card__title{font-size:var(--text-lg);font-weight:600}.badge{display:inline-flex;align-items:center;padding:2px var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500}.badge--success{background:#dcfce7;color:#166534}.badge--warning{background:#fef3c7;color:#92400e}.badge--error{background:#fee2e2;color:#991b1b}.badge--info{background:#dbeafe;color:#1e40af}.badge--neutral{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background-color:var(--color-primary-light);color:var(--color-primary);font-weight:600;overflow:hidden}.avatar--sm{width:28px;height:28px;font-size:var(--text-xs)}.avatar--md{width:36px;height:36px;font-size:var(--text-sm)}.avatar--lg{width:48px;height:48px;font-size:var(--text-base)}.avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.overlay{position:fixed;inset:0;background-color:rgba(0,0,0,.5);z-index:var(--z-modal-backdrop);display:flex;align-items:center;justify-content:center}.modal{background:var(--color-bg);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:560px;width:90%;max-height:85vh;overflow-y:auto;z-index:var(--z-modal)}.modal::-webkit-scrollbar{width:6px;height:6px}.modal::-webkit-scrollbar-track{background:transparent}.modal::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}.modal::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}.modal__header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-border)}.modal__body,.modal__header{padding:var(--spacing-lg)}.modal__footer{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--color-border);gap:var(--spacing-sm);justify-content:flex-end}.skeleton{background:linear-gradient(90deg,var(--color-bg-tertiary) 25%,var(--color-border) 50%,var(--color-bg-tertiary) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-md)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(1turn)}}[data-sonner-toaster]{font-family:var(--font-sans)!important}body::-webkit-scrollbar{width:6px;height:6px}body::-webkit-scrollbar-track{background:transparent}body::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}body::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}.pp-structure{border-bottom:1px solid var(--color-border);max-height:220px;overflow-y:auto;padding:var(--spacing-xs) 0}.pp-structure__row{display:flex;align-items:center;gap:6px;width:100%;text-align:left;border:none;background:transparent;padding:4px 8px;font-size:12px;line-height:1.4;cursor:pointer;color:var(--color-text)}.pp-structure__row:hover{background:var(--color-bg-tertiary)}.pp-structure__row--active{background:var(--color-primary-light);color:var(--color-primary)}.pp-group{border-top:1px solid var(--color-border);padding-bottom:var(--spacing-sm)}.pp-grouphead{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);padding:var(--spacing-md) var(--spacing-md) var(--spacing-xs)}