:root{--neutral-25:#fbfdfb;--neutral-50:#f6faf7;--neutral-100:#edf4ef;--neutral-200:#dfeae2;--neutral-300:#c7d7cc;--neutral-400:#788d80;--neutral-500:#667a6d;--neutral-600:#4a5b51;--neutral-700:#34423a;--neutral-800:#222d26;--neutral-900:#141c17;--forest-50:#ecf5ef;--forest-100:#d5e9dc;--forest-200:#a9d0b8;--forest-400:#4a9068;--forest-500:#2f7850;--forest-600:#1f6540;--forest-700:#174f33;--forest-800:#103b26;--forest-900:#0a2719;--bg-app:var(--neutral-50);--bg-canvas:var(--neutral-100);--surface:#fff;--surface-subtle:var(--neutral-50);--surface-hover:var(--neutral-100);--surface-active:var(--forest-50);--surface-inverse:var(--forest-900);--border:var(--neutral-200);--border-strong:var(--neutral-300);--border-inverse:#ffffff1f;--text:var(--neutral-700);--text-muted:var(--neutral-500);--text-subtle:var(--neutral-400);--text-heading:var(--neutral-900);--text-inverse:#fff;--text-inverse-muted:#ffffff9e;--accent:var(--forest-600);--accent-hover:var(--forest-700);--accent-active:var(--forest-800);--accent-soft:var(--forest-50);--accent-border:var(--forest-200);--on-accent:#fff;--danger:#b42318;--danger-soft:#fef3f2;--danger-border:#fecdca;--success:#077843;--success-soft:#eafaf0;--success-border:#a6e6c1;--warning:#b54708;--warning-soft:#fffaeb;--warning-border:#fedf89;--focus-ring:#1f654042;--shadow-xs:0 1px 2px #0d1f150d;--shadow-sm:0 1px 3px #0d1f1514, 0 1px 2px #0d1f150a;--shadow-md:0 4px 8px -2px #0d1f1514, 0 2px 4px -2px #0d1f150a;--shadow-lg:0 12px 16px -4px #0d1f1514, 0 4px 6px -2px #0d1f1508;--shadow-xl:0 20px 24px -4px #0d1f151a, 0 8px 8px -4px #0d1f150a;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--radius-xs:3px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-std:cubic-bezier(.4, 0, .2, 1);--t-fast:.12s;--t-base:.18s;--t-slow:.32s;--topbar-h:56px;font-family:var(--font-sans);color:var(--text);background:var(--bg-app);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:tabular-nums;font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg-app);min-height:100dvh}#root{flex-direction:column;min-height:100dvh;display:flex}h1,h2,h3,h4{color:var(--text-heading);letter-spacing:-.011em;font-weight:600;line-height:1.25}h1{letter-spacing:-.018em;font-size:1.375rem}h2{font-size:.9375rem}h3{font-size:.875rem}p{margin:0}a{color:var(--accent);font-weight:500;text-decoration:none}a:hover{text-decoration:underline}input,textarea,button,select{font-family:inherit;font-size:inherit;color:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--neutral-300);background-clip:content-box;border:3px solid #0000;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--neutral-400);background-clip:content-box}::selection{background:var(--forest-100);color:var(--forest-900)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=768px){:root{font-size:15px}h1{font-size:1.1875rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.auth-layout{background:var(--surface);flex:1;grid-template-columns:minmax(0,1.1fr) minmax(440px,.9fr);min-height:100dvh;display:grid}.auth-aside{background:radial-gradient(ellipse 70% 60% at 15% 0%, #4a90685c, transparent 65%), radial-gradient(ellipse 60% 55% at 95% 100%, #2f785057, transparent 60%), var(--forest-900);color:var(--text-inverse);flex-direction:column;justify-content:space-between;padding:44px 56px;display:flex;position:relative;overflow:hidden}.auth-aside:before{content:"";pointer-events:none;background-image:linear-gradient(#ffffff0b 1px,#0000 1px),linear-gradient(90deg,#ffffff0b 1px,#0000 1px);background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 70% at 40% 40%,#000 30%,#0000 100%);mask-image:radial-gradient(80% 70% at 40% 40%,#000 30%,#0000 100%)}.auth-aside>*{z-index:1;position:relative}.auth-brand{align-items:center;gap:11px;display:flex}.auth-brand .brand-mark{width:34px;height:34px}.auth-brand .brand-mark svg{width:19px;height:19px}.auth-brand-name{letter-spacing:-.01em;color:var(--text-inverse);font-size:1rem;font-weight:600}.auth-brand-sub{letter-spacing:.08em;text-transform:uppercase;color:var(--text-inverse-muted);font-size:.6875rem;font-weight:500}.auth-pitch{max-width:470px;padding:40px 0}.auth-eyebrow{letter-spacing:.09em;text-transform:uppercase;color:#ffffffc7;background:#ffffff0f;border:1px solid #ffffff29;border-radius:99px;align-items:center;gap:7px;margin-bottom:20px;padding:5px 11px;font-size:.6875rem;font-weight:600;display:inline-flex}.auth-eyebrow svg{width:13px;height:13px}.auth-pitch h2{letter-spacing:-.028em;color:var(--text-inverse);margin-bottom:14px;font-size:2.125rem;font-weight:600;line-height:1.18}.auth-pitch p{color:#ffffffa8;max-width:42ch;font-size:.9375rem;line-height:1.65}.auth-points{flex-direction:column;gap:13px;margin-top:30px;list-style:none;display:flex}.auth-points li{color:#ffffffc2;align-items:flex-start;gap:10px;font-size:.875rem;display:flex}.auth-points svg{color:#8dd6acf2;flex-shrink:0;width:17px;height:17px;margin-top:2px}.auth-aside-foot{color:#ffffff6b;gap:20px;font-size:.75rem;display:flex}.auth-main{background:var(--surface);justify-content:center;align-items:center;padding:40px 32px;display:flex;overflow-y:auto}.auth-card{width:100%;max-width:400px}.auth-card-top{justify-content:flex-end;align-items:center;gap:16px;margin-bottom:22px;display:flex}.auth-card-head{margin-bottom:22px}.auth-card-head h1{letter-spacing:-.022em;margin-bottom:5px;font-size:1.5rem}.auth-card-head p{color:var(--text-muted);font-size:.875rem}.auth-tabs{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--neutral-100);grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;margin-bottom:22px;padding:3px;display:grid}.auth-tab{border-radius:var(--radius-sm);height:32px;color:var(--text-muted);cursor:pointer;transition:background var(--t-fast) var(--ease-std), color var(--t-fast) var(--ease-std), box-shadow var(--t-fast) var(--ease-std);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;padding:0 8px;font-size:.8125rem;font-weight:600;overflow:hidden}.auth-tab:hover:not(.active){color:var(--text-heading)}.auth-tab.active{background:var(--surface);color:var(--forest-700);box-shadow:var(--shadow-xs)}.auth-form{flex-direction:column;gap:15px;display:flex}.auth-form .btn{margin-top:3px}.auth-foot{border-top:1px solid var(--border);color:var(--text-subtle);text-align:center;margin-top:20px;padding-top:16px;font-size:.75rem;line-height:1.55}.auth-mobile-brand{display:none}@media (width<=960px){.auth-layout{grid-template-columns:1fr}.auth-aside{display:none}.auth-mobile-brand{align-items:center;gap:10px;margin-right:auto;display:flex}.auth-mobile-brand .brand-mark{background:linear-gradient(160deg, var(--forest-500), var(--forest-800))}.auth-mobile-brand .brand-name{color:var(--text-heading)}.auth-mobile-brand .brand-sub{color:var(--text-muted)}}@media (width<=480px){.auth-main{padding:28px 18px}.auth-card-head h1{font-size:1.3125rem}}.topbar{z-index:40;height:var(--topbar-h);background:var(--surface-inverse);border-bottom:1px solid var(--forest-800);flex-shrink:0;align-items:center;gap:20px;padding:0 24px;display:flex;position:sticky;top:0}.topbar-brand{align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{border-radius:var(--radius-md);background:linear-gradient(160deg, var(--forest-400), var(--forest-600));color:#fff;flex-shrink:0;place-items:center;width:30px;height:30px;display:grid;box-shadow:inset 0 1px #ffffff2e}.brand-mark svg{width:17px;height:17px}.brand-text{flex-direction:column;min-width:0;line-height:1.15;display:flex}.brand-name{color:var(--text-inverse);letter-spacing:-.01em;font-size:.875rem;font-weight:600}.brand-sub{color:var(--text-inverse-muted);letter-spacing:.02em;font-size:.6875rem;font-weight:500}.topbar-divider{background:var(--border-inverse);flex-shrink:0;width:1px;height:22px}.topbar-section-label{color:var(--text-inverse-muted);white-space:nowrap;font-size:.8125rem;font-weight:500}.topbar-spacer{flex:1}.topbar-user{border-radius:var(--radius-md);border:1px solid var(--border-inverse);background:#ffffff0f;align-items:center;gap:9px;min-width:0;padding:5px 10px 5px 6px;display:flex}.user-avatar{background:var(--forest-400);color:#fff;letter-spacing:.02em;text-transform:uppercase;border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:.6875rem;font-weight:600;display:grid}.user-meta{flex-direction:column;min-width:0;line-height:1.2;display:flex}.user-name{color:var(--text-inverse);text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:.75rem;font-weight:600;overflow:hidden}.user-role{color:var(--text-inverse-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.625rem;font-weight:500}.topbar-btn{border:1px solid var(--border-inverse);border-radius:var(--radius-md);height:32px;color:var(--text-inverse-muted);cursor:pointer;transition:background var(--t-fast) var(--ease-std), color var(--t-fast) var(--ease-std), border-color var(--t-fast) var(--ease-std);white-space:nowrap;background:0 0;align-items:center;gap:7px;padding:0 12px;font-size:.8125rem;font-weight:500;display:inline-flex}.topbar-btn:hover{color:var(--text-inverse);background:#ffffff14;border-color:#ffffff3d}.topbar-btn svg{width:15px;height:15px}.lang-toggle{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--neutral-100);flex-shrink:0;align-items:center;gap:2px;padding:2px;display:inline-flex}.lang-option{border-radius:var(--radius-sm);min-width:30px;height:24px;color:var(--text-muted);letter-spacing:.04em;cursor:pointer;transition:background var(--t-fast) var(--ease-std), color var(--t-fast) var(--ease-std), box-shadow var(--t-fast) var(--ease-std);background:0 0;border:none;padding:0 7px;font-size:.6875rem;font-weight:600}.lang-option:hover:not(.active){color:var(--text-heading)}.lang-option.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-xs)}.lang-toggle-inverse{border-color:var(--border-inverse);background:#ffffff0f}.lang-toggle-inverse .lang-option{color:var(--text-inverse-muted)}.lang-toggle-inverse .lang-option:hover:not(.active){color:var(--text-inverse)}.lang-toggle-inverse .lang-option.active{color:var(--text-inverse);box-shadow:none;background:#ffffff29}.app-shell{background:var(--bg-canvas);flex-direction:column;flex:1;min-height:0;display:flex}.page-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:flex-end;gap:16px;padding:22px 24px 18px;display:flex}.page-header-text{min-width:0}.page-header h1{margin-bottom:3px}.page-header-sub{color:var(--text-muted);font-size:.8125rem}.page-header-actions{flex-shrink:0;gap:8px;margin-left:auto;display:flex}.workspace{flex:1;grid-template-columns:minmax(300px,380px) 1fr;align-items:stretch;gap:16px;min-height:0;padding:16px 24px 24px;display:grid}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-height:0;box-shadow:var(--shadow-xs);flex-direction:column;display:flex;overflow:hidden}.panel-header{border-bottom:1px solid var(--border);background:var(--surface-subtle);flex-shrink:0;align-items:center;gap:10px;height:46px;padding:0 14px;display:flex}.panel-header h2{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);align-items:center;gap:8px;font-size:.8125rem;font-weight:600;display:flex}.count-badge{border-radius:var(--radius-xs);background:var(--neutral-200);min-width:20px;height:20px;color:var(--text);letter-spacing:0;place-items:center;padding:0 6px;font-size:.6875rem;font-weight:600;display:inline-grid}.panel-body{flex:1;min-height:0;overflow-y:auto}.search-wrap{border-bottom:1px solid var(--border);flex-shrink:0;padding:10px 12px;position:relative}.search-wrap svg{width:15px;height:15px;color:var(--text-subtle);pointer-events:none;position:absolute;top:50%;left:23px;transform:translateY(-50%)}.search-input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle);width:100%;height:34px;transition:border-color var(--t-fast) var(--ease-std), box-shadow var(--t-fast) var(--ease-std), background var(--t-fast) var(--ease-std);padding:0 10px 0 32px;font-size:.8125rem}.search-input::placeholder{color:var(--text-subtle)}.search-input:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.prompt-row{text-align:left;border:none;border-bottom:1px solid var(--border);cursor:pointer;width:100%;transition:background var(--t-fast) var(--ease-std), border-left-color var(--t-fast) var(--ease-std);background:0 0;border-left:3px solid #0000;padding:11px 14px 11px 16px;display:block;position:relative}.prompt-row:hover{background:var(--surface-hover)}.prompt-row.active{background:var(--surface-active);border-left-color:var(--accent)}.prompt-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.prompt-row-name{color:var(--text-heading);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:600;font-family:var(--font-mono);letter-spacing:-.01em;margin-bottom:3px;display:block;overflow:hidden}.prompt-row.active .prompt-row-name{color:var(--forest-800)}.prompt-row-preview{-webkit-line-clamp:2;line-clamp:2;color:var(--text-muted);-webkit-box-orient:vertical;font-size:.75rem;line-height:1.45;display:-webkit-box;overflow:hidden}.state-block{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:48px 24px;font-size:.8125rem;display:flex}.state-block svg{width:30px;height:30px;color:var(--text-subtle);stroke-width:1.4px}.state-block strong{color:var(--text)}.spinner{border:2px solid var(--neutral-300);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:15px;height:15px;animation:.6s linear infinite spin}.spinner-on-accent{border-color:#fff #ffffff52 #ffffff52}@keyframes spin{to{transform:rotate(360deg)}}.editor-body{flex-direction:column;flex:1;gap:16px;min-height:0;padding:18px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field-grow{flex:1;min-height:0}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=420px){.field-row{grid-template-columns:1fr}}.field-label{color:var(--text);letter-spacing:.01em;align-items:center;gap:6px;font-size:.75rem;font-weight:600;display:flex}.field-label .req{color:var(--danger);font-weight:500}.field-hint{color:var(--text-subtle);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.6875rem;font-weight:500}.input,.textarea{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);width:100%;color:var(--text-heading);transition:border-color var(--t-fast) var(--ease-std), box-shadow var(--t-fast) var(--ease-std), background var(--t-fast) var(--ease-std)}.input{height:38px;padding:0 11px;font-size:.875rem}.textarea{min-height:200px;font-family:var(--font-mono);resize:none;flex:1;padding:11px;font-size:.8125rem;line-height:1.65}.input::placeholder,.textarea::placeholder{color:var(--text-subtle)}.input:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.input:read-only,.input:disabled{background:var(--neutral-100);color:var(--text-muted);cursor:not-allowed}.input-mono{font-family:var(--font-mono)}.input-affix{display:flex;position:relative}.input-affix .input{padding-right:40px}.affix-btn{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-subtle);cursor:pointer;transition:color var(--t-fast) var(--ease-std), background var(--t-fast) var(--ease-std);background:0 0;border:none;place-items:center;display:grid;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.affix-btn:hover{color:var(--text);background:var(--surface-hover)}.affix-btn svg{width:16px;height:16px}.btn{border-radius:var(--radius-md);letter-spacing:.005em;cursor:pointer;white-space:nowrap;height:36px;transition:background var(--t-fast) var(--ease-std), border-color var(--t-fast) var(--ease-std), color var(--t-fast) var(--ease-std), box-shadow var(--t-fast) var(--ease-std);border:1px solid #0000;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-size:.8125rem;font-weight:600;display:inline-flex}.btn svg{flex-shrink:0;width:15px;height:15px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-xs)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-primary:active:not(:disabled){background:var(--accent-active)}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text);box-shadow:var(--shadow-xs)}.btn-secondary:hover:not(:disabled){background:var(--surface-hover);border-color:var(--neutral-400);color:var(--text-heading)}.btn-ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text-heading)}.btn-sm{height:30px;padding:0 10px;font-size:.75rem}.btn-sm svg{width:14px;height:14px}.btn-block{width:100%}.btn-lg{height:42px;font-size:.875rem}.action-bar{border-top:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding-top:14px;display:flex}.action-bar-spacer{flex:1}.action-bar-note{color:var(--text-subtle);font-size:.75rem}.alert{border-radius:var(--radius-md);border:1px solid;align-items:flex-start;gap:9px;padding:10px 12px;font-size:.8125rem;line-height:1.45;display:flex}.alert svg{flex-shrink:0;width:16px;height:16px;margin-top:1px}.alert-error{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger)}.alert-success{background:var(--success-soft);border-color:var(--success-border);color:var(--success)}.alert-warning{background:var(--warning-soft);border-color:var(--warning-border);color:var(--warning)}.toast-stack{z-index:100;pointer-events:none;flex-direction:column-reverse;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{border:1px solid var(--border);border-left:3px solid var(--neutral-400);border-radius:var(--radius-md);background:var(--surface);min-width:280px;max-width:400px;box-shadow:var(--shadow-lg);color:var(--text-heading);pointer-events:auto;animation:toast-in var(--t-slow) var(--ease-out);align-items:center;gap:10px;padding:11px 14px;font-size:.8125rem;font-weight:500;display:flex}.toast svg{flex-shrink:0;width:16px;height:16px}.toast-success{border-left-color:var(--success)}.toast-success svg{color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-error svg{color:var(--danger)}.toast-exit{animation:toast-out .22s var(--ease-std) forwards}@keyframes toast-in{0%{opacity:0;transform:translate(16px)scale(.98)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes toast-out{to{opacity:0;transform:translate(16px)scale(.98)}}@media (width<=1024px){.workspace{grid-template-rows:minmax(220px,34vh) 1fr;grid-template-columns:1fr}}@media (width<=768px){.topbar{gap:12px;padding:0 14px}.topbar-divider,.topbar-section-label,.user-meta{display:none}.topbar-user{padding:4px}.page-header{flex-direction:column;align-items:stretch;gap:12px;padding:16px 14px}.page-header-actions{margin-left:0}.workspace{gap:12px;padding:12px 14px 16px}.toast-stack{bottom:14px;left:14px;right:14px}.toast{min-width:0;max-width:none}}
